Помогите написать программу(Паскаль) 2. Для заданного набора коэффициентов a, b, c, d...

0 голосов
47 просмотров

Помогите написать программу(Паскаль)
2. Для заданного набора коэффициентов a, b, c, d найдите наименьшее значение функции y = a x3 + b x2 + cx + d и значение аргумента, при котором оно получено. Значение х изменяется от 0 до 2 с шагом 0,2.


Информатика (136 баллов) | 47 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Var a,b,c,d,x,y,h,minx,miny:real; i:integer;
begin
writeln('a, b, c, d:');
readln(a,b,c,d);
h:=0.2;
x:=0; y:=a*x*x*x+b*x*x+c*x+d;
writeln(x:2:1,' ',y:5:2);
minx:=0; miny:=y;
for i:=1 to round((2-0)/h)+1 do
 begin
 x:=x+h;
 y:=a*x*x*x+b*x*x+c*x+d;
 writeln(x:2:1,' ',y:5:2);
 if y end;
writeln('min = y(',minx:2:1,') = ',miny:5:2);
end.

Пример:
a, b, c, d:
3 2 -1 4
0.0  4.00
0.2  3.90
0.4  4.11
0.6  4.77
0.8  6.02
1.0  8.00
1.2 10.86
1.4 14.75
1.6 19.81
1.8 26.18
2.0 34.00
2.2 43.42
min = y(0.2) =  3.90

(194k баллов)
0 голосов

Var a,b,c,d,x,Min:real;
Begin
WriteLn('f(x) = ax^3 +bx^2 +cx +d');
Write('a = ');ReadLn(a);
Write('b = ');ReadLn(b);
Write('c = ');ReadLn(c);
Min:=0;
x:=0;
Repeat
if Min*(a*Min*Min+b*Min+c) > x*(a*x*x+b*x+c) then Min:=x;
x:=x+0.2;
Until x>2;
Write('d = ');ReadLn(d);
WriteLn('Min(f) = f(',Min,') = ',Min*(a*Min*Min+b*Min+c)+d)
End.


Пример работы программы:

f(x) = ax^3 +bx^2 +cx +d
a = 15
b = -17
c = -70
d = 0
Min(f) = f(1.6) = -94.08

(34.0k баллов)