Цитата:
Сообщение от Olga89
в строке «until i>10;» выдает ошибку «Ожидается логическое выражение» Помогите пожалуйста! Что не хватает?
|
Ошибок нет. Вероятно, какие-то "задвиги" или транслятора, или компа. Для проверки слегка "подчистил" Вашу программу, исправив не очень существенные огрехи. Проверял в таком виде:
Код:
program prog_1;
const
a=10.0;
b=11.0;
n=10;
var
s, x, h : real;
i : integer;
begin
h:=(b-a)/(n-1);
writeln ('a= ',a:0:3);
writeln ('b= ',b:0:3);
writeln ('n= ',n);
writeln ('h= ',h:0:8);
writeln;
x:=a;
s:=0;
i:=1;
repeat
s:=s+(sin(x))/sqr(x+2);
x:=x+h;
i:=i+1;
until i>10;
writeln ('s= ',s:0:8);
readln;
end.
Вот чего не понимаю, так это зачем тут применять цикл Repeat-Until, когда можно обойтись простым For...to...do? С ним такой вариант:
Код:
program prog_1;
const
a=10.0;
b=11.0;
n=10;
var
s, x, h : real;
i : integer;
begin
h:=(b-a)/(n-1);
writeln ('a= ',a:0:3);
writeln ('b= ',b:0:3);
writeln ('n= ',n);
writeln ('h= ',h:0:8);
writeln;
s:=0;
for i:=1 to n do
begin
x:=a+h*(i-1);
s:=s+(sin(x))/sqr(x+2);
end;
writeln ('s= ',s:0:8);
readln;
end.