Табулирование функции (Паскаль -> Си) - C (СИ)
Формулировка задачи:
Здравствуйте. Было дано условие:
Даны действительные числа a, b (a < b), натуральное число n, функ-ция у = f(x), определенная на отрезке [а, b]. Для значений аргумента xi = a+ih (i = 0, 1, ..., n), h=(b – а)/n вычислить значения функции yi=f(xi) (i = 0, 1, ..., n). Вывести хi и уi (i = 0, 1, ..., n) в виде таблицы из двух колонок. В i-ю строку таблицы заносятся соответствующие значения хi и уi. Рассмотреть следую функцию:у =корень х(в квадрате)+2 , а = –3, b = 5, n = 40;
Есть код на паскале:
Помогите пожалуйста перевести его в Си, заранее спасибо
var x,y,h:real; a,b,i:integer; begin a:=-3; b:=5; h:=(b-a)/40; for i := 0 to 40 do begin x:=a+(i*h); y:=Sqrt(sqr(x)+2); Writeln(i,' x=',x:4:2,' y=',y:4:2); end; readln; end.
Решение задачи: «Табулирование функции (Паскаль -> Си)»
textual
Листинг программы
#include <stdio.h> #include <math.h> float x, y, h; int i; float a, b; /* Да, на pascal'e integer, но по заданию действительные=float */ int main() { a = -3; b = 5; h = (b-a)/40.0; for (i=0; i<=40; i++) { x = a + (i*h); y = sqrt(x*x + 2); printf("%d x=%.2f y=%.2f\n",i, x, y); } getchar(); /* Ожидание */ return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
и . - Объявление переменных: x, y, h, i, a, b.
- В главном цикле программы происходит заполнение таблицы значений функции.
- Вычисление шага h: (b-a)/40.
- Задание начального значения переменной i равным 0.
- Вычисление значения x по формуле: x = a + (i*h).
- Вычисление значения y по формуле: y = sqrt(x*x + 2).
- Вывод на экран значения переменной i, значения переменной x и значения переменной y.
- Увеличение значения переменной i на 1.
- Повторение пунктов 6-9 до тех пор, пока значение переменной i не станет равным 41.
- Ожидание нажатия клавиши для завершения работы программы.
- Возврат 0, означающий успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д