
C/C++
Хелпаните, кто-нибудь! Программирование на языке С/С++.
Вывести на экран таблицу значений функции...


#include <stdio.h>
double y(double x)
{ return 1.6 - x * (1. + x * (2.8 - x * 5.4)); }
int main() { double a, b, h, x; int i, n; for (;;)
{ printf("a b h » "); scanf("%lf%lf%lf", &a, &b, &h);
n = (b - a) / h; for (i = 0; i <= n; i++) { x = a + i * h;
printf("%9.6f »%20.12f\n", x, y(x)); } } }
__________✨_______✨________✨___________
Тут надо сказать пару слов. Эта функция относится к разряду кубических, у которых всегда есть один вещественный ноль (точка пересечения графика с осью абсцисс) и то ли есть, то ли нет пара экстремумов (у этой - есть !). При больши́х |х| идёт заурядный кубический рост |у|~|x|³, что даже неинтересно просматривать на экране. Самое интересное с у происходит при небольших х по абсолютной величине, для которых и надо подгонять спецификацию вывода, а для больших |х| надо, естественно, и вывод весь менять! И ещё такие соображения: полиномы всегда лучше и эффективнее всего вычислять по экономичной схеме Горнера, как у меня, где вместо восьми арифметических операций их используется на четверть меньше, а x+=h для больших циклов (да и для небольших тоже !) писàть просто глупо, так как аргумент x зачастую имеет склонность уплывать куда-то к чёрту на куличики, а при такой вот записи x=a+i*h он никуда не уплывёт! ʘ‿ʘ

double y(double x)
{ return 1.6 - x * (1. + x * (2.8 - x * 5.4)); }
int main() { double a, b, h, x; int i, n; for (;;)
{ printf("a b h » "); scanf("%lf%lf%lf", &a, &b, &h);
n = (b - a) / h; for (i = 0; i <= n; i++) { x = a + i * h;
printf("%9.6f »%20.12f\n", x, y(x)); } } }
__________✨_______✨________✨___________
Тут надо сказать пару слов. Эта функция относится к разряду кубических, у которых всегда есть один вещественный ноль (точка пересечения графика с осью абсцисс) и то ли есть, то ли нет пара экстремумов (у этой - есть !). При больши́х |х| идёт заурядный кубический рост |у|~|x|³, что даже неинтересно просматривать на экране. Самое интересное с у происходит при небольших х по абсолютной величине, для которых и надо подгонять спецификацию вывода, а для больших |х| надо, естественно, и вывод весь менять! И ещё такие соображения: полиномы всегда лучше и эффективнее всего вычислять по экономичной схеме Горнера, как у меня, где вместо восьми арифметических операций их используется на четверть меньше, а x+=h для больших циклов (да и для небольших тоже !) писàть просто глупо, так как аргумент x зачастую имеет склонность уплывать куда-то к чёрту на куличики, а при такой вот записи x=a+i*h он никуда не уплывёт! ʘ‿ʘ

#include <stdlib.h>
#include <stdio.h>
double function(double x) {
return 5.4 * x * x * x - 2.8 * x * x - x + 1.6;
}
double real(const char* msg) {
double value;
printf(msg);
scanf_s("%lf", &value);
while (getchar() != '\n');
return value;
}
int main(void) {
double a = real("a: ");
double b = real("b: ");
double h = real("h: ");
double end = b + h / 10.0;
double x;
for (x = a; x < end; x += h) {
printf("%8.2lf %22.4lf\n", x, function(x));
}
system("pause > nul");
return 0;
}
#include <stdio.h>
double function(double x) {
return 5.4 * x * x * x - 2.8 * x * x - x + 1.6;
}
double real(const char* msg) {
double value;
printf(msg);
scanf_s("%lf", &value);
while (getchar() != '\n');
return value;
}
int main(void) {
double a = real("a: ");
double b = real("b: ");
double h = real("h: ");
double end = b + h / 10.0;
double x;
for (x = a; x < end; x += h) {
printf("%8.2lf %22.4lf\n", x, function(x));
}
system("pause > nul");
return 0;
}
Похожие вопросы
- Стоит ли начинать изучение программированию с языка C?
- Программирование на языке C++
- Программирование на языке Си
- Программирование на языке C++
- Какую тему курсовой выбрать для супер новичка программирования на языке C++?
- Программирование на языке C++. Двухмерные массивы чисел
- Нужна помощь в программировании на языке C++
- Программирование, любой язык
- Программирование на языках C/C++
- Программирование. Основы языка Си.