Помогите пожалуйста решить задачку двумя способами, через цикл repeat until
и через for
С repeat
Код:
Program z1;
var a,b,c,x,y:real;
begin
a:=2.8;
b:=-0.3;
c:=4;
x:=0.8;
repeat
if x<1.4 then
y:=(a+b*x)/sqrt(x*x+4)
else
if x=1.4 then
y:=a*(x*x)+b*x+c
else
y:=a/x+exp(a*b);
writeln ('x=',x:8:2,' y=',y:8:2);
x:=x+0.2;
until x>2.8;
end.
А вот в for в паскале шаг может быть равен только единице, да и числа только целые, вот пример реализации, думаю пойдёт.
Код:
Program z1;
var a,b,c,y,f:real;
x:integer;
begin
a:=2.8;
b:=-0.3;
c:=4;
For x:=8 to 26 do
begin
if x mod 2 = 0 then begin
f:=x/10;
if f<1.4 then
y:=(a+b*f)/sqrt(f*f+4)
else
if f=1.4 then
y:=a*(f*f)+b*f+c
else
y:=a/f+exp(a*b);
writeln ('x=',x/10:8:2,' y=',y:8:2);
end;
end;
end.