Описание функции - C (СИ) (69726)
Формулировка задачи:
Подскажите, как переделать код, чтобы в main() был чисто ввод значений и вывод результата. Вычисления должны быть представлены как функция и идти до main().
#include<stdio.h> #include<math.h> double f(double x) { return x*x+2*x-4; } int main() { double a, b, x, y1, y2; const double eps=0.01, d=eps/10; printf("Vvedite a, b, : \n"); scanf("%le%le", &a, &b); while (b-a > 2*eps) { x=(a+b)/2; y1=f(x-d); y2=f(x+d); (y1 < y2 ? b=x+d : a=x-d); } x=(a+b)/2; y1=f(x); printf("x = %.2lf \ny = %.2lf \n\n",x, y1); return 0; }
Решение задачи: «Описание функции»
textual
Листинг программы
#include<stdio.h> #include<math.h> double f(double x) { return x*x+2*x-4; } void raschet(double &a, double &b, double &x, double &y1) { const double eps=0.01, d=eps/10; double y2; while (b-a > 2*eps) { x=(a+b)/2; y1=f(x-d); y2=f(x+d); ((y1 < y2) ? b=x+d : a=x-d); } x=(a+b)/2; y1=f(x); } int main() { double a, b, x, y1; printf("Vvedite a, b, : \n"); scanf("%le%le", &a, &b); raschet(a, b, x, y1); printf("x = %.2lf \ny = %.2lf \n\n",x, y1); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем функцию с именем f, которая принимает один аргумент типа double и возвращает double
- Определяем функцию raschet, которая принимает пять аргументов типа double по ссылке и выполняет численный метод для решения квадратного уравнения
- В функции raschet определяем константу eps и переменную d, которая используется для контроля сходимости
- Задаем начальные значения переменных a, b, x и y1
- С помощью функции printf выводим сообщение с просьбой ввести значения переменных a и b
- С помощью функции scanf считываем значения переменных a и b и сохраняем их в соответствующих переменных
- Вызываем функцию raschet, передавая в нее значения переменных a, b, x и y1
- В функции raschet в цикле while выполняем численный метод для решения квадратного уравнения, пока разница между значениями a и b больше 2*eps
- Внутри цикла вычисляем значение x, как среднее арифметическое a и b
- Вычисляем значения y1 и y2, используя функцию f и передавая в нее значения x и x+d
- С помощью условного оператора if меняем значения a и b, если значение y1 меньше значения y2
- После выхода из цикла while вычисляем значение x, как среднее арифметическое a и b
- Вычисляем значение y1, используя функцию f и передавая в нее значение x
- С помощью функции printf выводим значения переменных x и y1
- Возвращаем 0 из функции main, чтобы указать, что программа успешно завершилась
- Программа завершается
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д