Протабулировать функцию - C (СИ) (73538)
Формулировка задачи:
не могу понять где ошибка... только начали изучать С , а учитель такой ... что в общем помогите ребят))
#include<stdio.h> #include<math.h> #include<conio.h> void main() { const float a=19.6, b=1.71,e=2.68,s=1,t=3, p=2, z=2.0, x0=1.5, delta_x= 0.78; const int n=25; int i=1; float y=0.0, x=x0; printf("Rezultati tabulyacii funkcii:"); for (;i<=n ; printf("\nX=%7.5f\tY=%7.5f",x,((x<=1))? sqrt(pow(x,4)+a*b) :((x>=1)&&(x<=2.8))? x*pow(e,a*x) :(x>=2.8)? x/(pow(a,2)+sqrt(pow(b,2))): i++, x+=delta_x)); }
Решение задачи: «Протабулировать функцию»
textual
Листинг программы
#include <stdio.h> #include <math.h> double func(double x, double a, double b) { if (x < 1.0) { return pow( pow(x, 4) + a*b, 0.25 ); } else if (x > 1.0 && x < 2.8) { return x * exp(a*x); } else { return x / ( pow(a, 2) + pow( pow(b, 2), 1.0/3.0 ) ); } } int main() { const double a = 0.91, b = 1.8; const double x0 = 0.333, xk = 4.1, dx = 0.321; for (double x = x0; x < xk; x += dx) { printf("x = %lf\ty = %lf\n", x, func(x, a, b)); } return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Определяется функция с тремя аргументами и возвращаемым значением типа double
- В функции происходит проверка значения первого аргумента. Если x меньше 1.0, то возвращается результат вычисления выражения pow(pow(x,4)+a*b),0.25)
- Если x больше или равно 1.0 и меньше 2.8, то возвращается результат вычисления выражения xexp(ax)
- Если x больше или равно 2.8, то возвращается результат вычисления выражения x/(pow(a,2)+pow(pow(b,2),1.0/3.0))
- В функции main() определяются константы a, b, x0, xk, dx
- Задается цикл for, который выполняет вычисления функции для каждого значения x от x0 до xk с шагом dx и выводит результаты на экран
- В конце функции main() возвращается 0, что означает успешное выполнение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д