Занести в массив значения функции - C (СИ)
Формулировка задачи:
Помогите, пожалуйста
надо занести в массив значения функции f(x, y) = (x + y)^2, 0<=x<=5, 0<=y<=3 и вывести его на экран.
Решение задачи: «Занести в массив значения функции»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <math.h> double f(double x, double y) { return pow(x+y,2); } int main (){ double x1=0,x2=5,y1=0,y2=3,dx=1,dy=1; //границы по x,y и шаги int n=ceil((x2-x1+1)/dx)*ceil((y2-y1+1)/dy); //размерность массива, необязательно точная double *fa=(double *)malloc(n*sizeof(double)); double x,y; int i=0; for (x=x1; x<=x2+1e-9; x+=dx) for (y=y1; y<=y2+1e-9; y+=dy) fa[i++]=f(x,y); int j; for (j=0; j<i; j++) printf ("%.2lf ",fa[j]); fflush (stdin); getchar (); return 0; }
Объяснение кода листинга программы
В этом коде:
- Создаются переменные
x1
,x2
,y1
,y2
,dx
иdy
, которые задают границы для переменныхx
иy
, а также шаги для их перебора. - Вычисляется размерность массива
n
с помощью функцииceil
, которая округляет результат в большую сторону. Здесь(x2-x1+1)
- это количество переменныхx
, которые будут рассмотрены,(y2-y1+1)
- количество переменныхy
.dx
иdy
здесь используются как коэффициенты, на которые увеличивается значение переменной при каждом шаге. - Осуществляется выделение памяти под массив
fa
с помощью функцииmalloc
. Здесьn*sizeof(double)
означает, что будет выделена память под массив изn
элементов типаdouble
. - Задаются начальные значения переменных
x
иy
, а также инициализируется счетчикi
равным 0. - Происходит перебор всех значений
x
иy
в заданных границах с помощью двух вложенных циклов. При каждой итерации внутрь функцииf(x,y)
передаются значенияx
иy
, и результат присваивается соответствующему элементу массиваfa
. После каждой итерации счетчикi
увеличивается на 1. - Выводится содержимое массива
fa
с помощью циклаfor
, в котором переменнаяj
итерируется от 0 доi-1
. Каждый элемент массива выводится с помощью функцииprintf
, а затем с помощьюfflush
иgetchar
считывается ввод пользователя, чтобы программа не закрылась сразу после вывода. - В конце программы возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д