Занести в массив значения функции - 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;
}

Объяснение кода листинга программы

В этом коде:

  1. Создаются переменные x1, x2, y1, y2, dx и dy, которые задают границы для переменных x и y, а также шаги для их перебора.
  2. Вычисляется размерность массива n с помощью функции ceil, которая округляет результат в большую сторону. Здесь (x2-x1+1) - это количество переменных x, которые будут рассмотрены, (y2-y1+1) - количество переменных y. dx и dy здесь используются как коэффициенты, на которые увеличивается значение переменной при каждом шаге.
  3. Осуществляется выделение памяти под массив fa с помощью функции malloc. Здесь n*sizeof(double) означает, что будет выделена память под массив из n элементов типа double.
  4. Задаются начальные значения переменных x и y, а также инициализируется счетчик i равным 0.
  5. Происходит перебор всех значений x и y в заданных границах с помощью двух вложенных циклов. При каждой итерации внутрь функции f(x,y) передаются значения x и y, и результат присваивается соответствующему элементу массива fa. После каждой итерации счетчик i увеличивается на 1.
  6. Выводится содержимое массива fa с помощью цикла for, в котором переменная j итерируется от 0 до i-1. Каждый элемент массива выводится с помощью функции printf, а затем с помощью fflush и getchar считывается ввод пользователя, чтобы программа не закрылась сразу после вывода.
  7. В конце программы возвращается 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы