Показать сообщение отдельно
Старый 11.09.2011, 19:18   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от 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.
Vladimir_S вне форума  
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070