Иллюстрированный самоучитель по С++ для начинающих

Решения (задачи 240-252)

Задача 247.

// Рекурсивная функция "Факториал"
#include "stdio.h" #include "conio.h"
unsigned int factor(unsigned int k)
{
if (k == 1).
return(1); else
return(k*factor(k-1));
void main(
unsigned int n; // число, факториал которого надо вычислить
unsigned int f; // факториал числа п
puts("Вычисление факториалаХп");
puts("Введите число, факториал которого надо вычислить");
printf(" › ");
scanf("%u", &n);
f = factor(n);
printf("Факториал числа %u равен %u", n, f);
printf("Хп Для завершения нажмите Enter");
getch();

Задача 248.

// Рекурсивный узор из окружностей
#include <graphics.h> #include <stdio.h> #include <conio.h> #include <dos.h>
#define PATHTODRIVER "c: WborlandcWbgiW"
// элемент узора
void elem(int x, int у, int r, int p)
11 у., у, г – координаты и радиус центра
// основного элемента узора
// р – порядок узора
if (P)
circle(x, у, г);
delay(100);
elem(x+r, у, r/2, р-1);
elem(x, y-r, r/2, р-1);
elem(x-r, у, r/2, р-1);
+r, г/2, р-1);
void main(void) {
int gdriver = DETECT; // драйвер
int gmode; // режим
int errorcode; // код ошибки
initgraph(&gdriver, &gmode, PATHTODRIVER); errorcode = graphresult();
if (errorcode = grOk) {
elem(320, 240, 60, 5); // рисуем узор 5-го порядка
outtext("Для завершения нажмите Enter");
getch();
closegraph(); // выход из графического режима
else
printf("Ошибка: %d\n", errorcode);
puts("Для завершения нажмите Enter");
getch();

Задача 249.

// Вычисляет сопротивление
// n-звенной электрической цепи
#include <stdio.h>
#include <conio.h>
float rl(r2,r3;
// величины сопротивлений, из которых состоит цепь
// вычисляет сопротивление цепи n-го порядка
float rсер(int n)
{
float r; // сопротивление цепи п if (n – 1)
return(rl + r2 + гЗ); else
{
г = rcep(n-l);
return (rl + r2*r/(r2+r) + r3);
void main ()
{
int refloat re;
// количество звеньев (порядок) цепи
// сопротивление цепи
puts("Хп Вычисление сопротивления электрической цепи");
puts("Введите величины сопротивлений (Ом):");
printf("r1 › ");
scanf("%f", &rl);
printf("r2 › ");
scanf("%f", &r2);
printf("r3 › ");
scanf("If", &r3);
printf("Порядок цепи › ");
scanf("%i", &n);
re = rcep(n); // величины сопротивлений передаются
// функции гсер через глобальные переменные
printf("Сопротивление цепи:");
if (re > 100)
{
гс /= 1000;
printf("%5.2f кОм\п", гс);
else
printf("%5.2f Ом\п", re);
рииз("\п Для завершения нажмите Enter");
getch();
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.