Табулирование функции, поиск ошибки - C (СИ)
Формулировка задачи:
Приветствую!
Яростно нуждаюсь в вашей помощи. Имеется функция вида y=(x^3 +2x -14)/(7x)
Собственно сам код
Учитываем, что пользователь вводит целые значения x, y, ym. Алгоритм вроде бы правильный, но если всё совсем плохо, то предложите более подходящий вариант этого задания.
Ещё вопрос, как удачно вписать туда ограничение на кол-во точек(пока значение функции не превысит верхний предел YM, но не больше чем в 25 точках.)
Благодарю за внимание.
/*Заданы начальное значение аргумента A, верхний предел функции YM, шаг H. Значения функции вычисляются в точках A, A + H, A + 2*H, A + 3*H, … пока значение функции не превысит верхний предел YM, но не больше чем в 25 точках. */ #include <stdio.h> int ym, i, a, h; void vvod(int *a, int *h, int *ym) { //Deklaracija peremennih, a tak ze zapros dannih u polzovatelja // printf("Privetstvuju! Zadajte nachalnoe znachenie argumenta (x), \n x= "); scanf("%d", a); printf("Zadajte verhnij predel funkcii(YM), \n YM= "); scanf("%d", ym); printf("Zadajte shag argumenta(H), \n H= "); scanf("%d", h); } void vich(int *x, float *y, int a, int h, int ym) //vichislenie funkcii, sozdanie massiva { int i; i=0; x[i]=a; do { y[i]=(x[i]*x[i]*x[i] + 2*x[i] - 14)/(7*x[i]); i++; x[i]=a+i*h; } while (y[i]<ym); } void vivod(int *x, float *y, int ym) // cikl vivoda informacii { int i; printf("X: Y\n"); while(y[i]<ym) { printf("%d | %f\n", x[i], y[i]); } } int main(void) //glavnaja programma { int i, a, *x, h, ym; float *y; vvod (&a, &ym, &h); vich (a, y, x, h, ym); vivod (x, y, ym); system("pause"); printf("nazmite enter"); getchar(); return 0; }
Решение задачи: «Табулирование функции, поиск ошибки»
textual
Листинг программы
void vi4islenie(int a, int b, int c, int h, float x[20], float y[20]) { // ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д