Программа табулирования функции - C (СИ)
Формулировка задачи:
Написал программу табулирования функции с помощью цикла for, подскажите пожалуйста как написать программу табулирования этой функции но уже при помощи МАССИВА.
Код программы табулирования функции с помощью цикла for:
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main ()
{
float xn,xk,dx,f,x;
int c,i,m,n;
clrscr();
{
printf("Vvedite granitsi intervala xn, xk \n");
scanf("%f %f",&xn,&xk);
printf("Vvedite shag m \n");
scanf(" %d",&m);
x=xn;
n=1;
printf(" Funkciya y=sin(x) \n");
printf("------------------------------------------------\n");
printf("| n | x | f(x) |\n");
while(x<=xk)
{
f=sin(x);
printf("| %5d | %5.2f | %5.2f |\n",n,x,f);
x=x+m;
n=n+1;
}
printf("________________________________________________\n");
printf(" \n");
printf("Dlya vixoda nazmite 1\n");
scanf(" ");
}}Решение задачи: «Программа табулирования функции»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
int main ()
{
float xn,xk,x,m;
int n;
printf("Vvedite granitsi intervala xn, xk \n");
scanf("%f %f",&xn,&xk);
printf("Vvedite shag m \n");
scanf(" %f",&m);
x=xn;
n=0;
printf(" Funkciya y=sin(x) \n");
printf("------------------------------------------------\n");
printf("| n | x | f(x) |\n");
float* f=(float*) malloc (((xk-xn)+1)*sizeof(float*));
for(x=xn;x<xk;x+=m)
{
f[n]=sin(x);
printf("| %d | %5.2f | %5.2f |\n",n+1,x,f[n]);
n=n+1;
}
printf("<br>\n");
printf(" \n");
getch();
free(f);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек:
, , , . - Объявление переменных: float xn, xk, x, m; int n;
- Вывод запроса на ввод границ интервала и шага: printf(
Vvedite granitsi intervala xn, xk \n); scanf(%f %f,&xn,&xk); printf(Vvedite shag m \n); scanf(%f,&m); - Инициализация переменной x значением xn и переменной n значением 0: x=xn; n=0;
- Вывод названия функции и интервала: printf(
Funkciya y=sin(x) \n); printf(------------------------------------------------\n); printf(| n | x | f(x) |\n); - Выделение памяти под массив f: float f=(float) malloc (((xk-xn)+1)sizeof(float));
- Цикл пошагового приближения значения x от xn до xk с шагом m: for(x=xn;x<xk;x+=m)
- Вычисление значения функции sin(x) и сохранение его в массиве f: f[n]=sin(x);
- Вывод значения x, f(x) и номера строки в таблице: printf(
| %d | %5.2f | %5.2f |\n,n+1,x,f[n]); - Увеличение значения переменной n на единицу: n=n+1;
- Вывод горизонтальной линии для разделения таблицы: printf(
________________________________________________\n); - Вывод пустой строки: printf(
\n); - Завершение работы программы: getch();
- Освобождение памяти, выделенной под массив f: free(f);
- Возврат значения 0, что означает успешный конец работы программы: return 0;