Второй вариант – как на Паскале
#include #include void main() { double a, b, e, x, c, fa, fc; int n; printf("Введите границы отрезка и точность: "); scanf("%lf%lf%lf", &a, &b, &e); n = 0; while (fabs(a - b) > e) { c = (a + b) / 2; fa = f(a); fc = f(c); if (fa * fc < 0) b = c; else a = c; n++; } x = (a + b) / 2; printf("Корень уравнения = %lf\nЧисло итераций = %d\n", x, n); }
Третий вариант – весь алгоритм помещен в заголовок цикла for
#include #include void main() { double a, b, e, x, c, fa, fc; int n; printf("Введите границы отрезка и точность: "); scanf("%lf%lf%lf", &a, &b, &e); for (n = 0; fabs(a - b) > e; c = (a + b) / 2, fa = f(a), fc = f(c), fa * fc < 0 ? b = c : a = c, n++) ; // Для объединения нескольких операторов // в выражении приращения цикла for // используется // операция последовательного вычисления x = (a + b) / 2; printf("Корень уравнения = %lf\nЧисло итераций = %d\n", x, n); }
3.2. Функция с переменным числом параметров, аналогичная функции printf
#include #include void print(char *format, ...); void main() { int a = 45, b = 87; double f = 2.75; print("dfd", a, f, b); } void print(char * format, ...) { va_list list; // Переменная для работы со списком аргументов int n, i; double f; va_start(list, format); // Инициализация указателя на список аргументов for (i = 0; format[i]; i++) switch(format[i]) { case 'd': n = va_arg(list, int); // Выбираем очередной параметр printf("%d\n", n); break; case 'f': f = va_arg(list, double); // Выбираем очередной параметр printf("%lf\n", f); break; } va_end(list); // Сброс указателя на список аргументов в NULL }
К операторам передачи управления относят оператор безусловный передачи управления (goto), оператор возврата из функций (return), оператор выхода из цикла или переключателя (break) и оператор перехода к следующей итерации цикла (continue)
Оператор — это отдельное предложение на языке программирования, имеющее законченный смысл. На языке C++ любой оператор заканчивается символом ; (точка с запятой). При этом надо учитывать один нюанс: если в языках типа Паскаль точка с запятой — разделитель между операторами, то в C++ и других C-подобных языках — это обязательная часть оператора.
Операторы условно можно подразделить на две категории: исполняемые — с их помощью реализуется алгоритм решаемой задачи, и описательные, необходимые для определения типов пользователя и объявления объектов программы, например, переменных.
Рассмотрим подробнее исполняемые операторы.
Достарыңызбен бөлісу: |