Тема: TurboPascal. Різні цикли.
Треба щоб програма працювала відразу з трьома циклами.
Ось код:
uses crt;
label q,w,e,r,t;
var b,c,x,y,ymax,ymin: real;
z: byte;
begin
clrscr;
c:=0.2;
q: writeln('Vubratu tup zadachi');
writeln('1 - while..do..');
writeln('2 - repeat..until..');
writeln('3 - if..then..goto');
writeln('4 - Buxid');
read(z);
case z of
1: goto w;
2: goto e;
3: goto r;
4: goto t;
end;
w:
begin
write('X=');
readln(x);
ymax:=100;
ymin:=-100;
while x<=b do
begin
if x<-1 then y:=pi+sqrt(sin(x)/exp(x+pi)) else
if (x>=-1) and (x<1) then y:=sqr(cos(x))+(1.2*exp(ln(10)*(-1/6))) else
y:=sqr(sin(exp(ln(x)*3)))+(x*ln(x+1));
if y>ymax then y:=ymax;
if y<ymin then y:=ymin;
end;
writeln('x=',x:15,'y=',y:15);
x:=x+c;
end;
begin
writeln('ymax=',ymax:15:5,'ymin=',ymin:15:5);
writeln;
writeln('Їа®Ја ¬ а®Ў®вг § ЄiзЁ« ');
goto q;
end;
e:
repeat
write('X=');
readln(x);
ymax:=100;
ymin:=-100;
y:=(pi+sqrt(sin(x)/exp(x+pi)));
begin
if x<-1 then y:=pi+sqrt(sin(x)/exp(x+pi)) else
if (x>=-1) and (x<1) then y:=sqr(cos(x))+(1.2*exp(ln(10)*(-1/6))) else
y:=sqr(sin(exp(ln(x)*3)))+(x*ln(x+1));
if y>ymax then y:=ymax;
if y<ymin then y:=ymin;
writeln('x=',x:15);
writeln('y=',y:15);
writeln;
x:=x+c;
end;
until (x<b);
begin
writeln('ymax=',ymax:15:5,'ymin=',ymin:15:5);
writeln;
writeln('Їа®Ја ¬ а®Ў®вг § ЄiзЁ« ');
goto q;
end;
r:
write('X=');
readln(x);
ymax:=100;
ymin:=-100;
begin
if x<-1 then y:=pi+sqrt(sin(x)/exp(x+pi));
if (x>=-1) and (x<1) then y:=sqr(cos(x))+(1.2*exp(ln(10)*(-1/6)));
if x>=1 then y:=sqr(sin(exp(ln(x)*3)))+(x*ln(x+1));
if y>ymax then y:=ymax;
if y<ymin then y:=ymin;
writeln('x=',x:15,'y=',y:15);
writeln;
x:=x+c;
end;
begin
writeln('ymax=',ymax:15:5,'ymin=',ymin:15:5);
writeln;
writeln('Їа®Ја ¬ а®Ў®вг § ЄiзЁ« ');
goto q;
end;
t:
end.
Програма працює, але якщо іксу задати початкове значення меньше ніж значення В програма не працює і видає помилку 207.