Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2009, 17:01   #1
ai\ekcah^p
Форумчанин
 
Аватар для ai\ekcah^p
 
Регистрация: 03.05.2009
Сообщений: 112
По умолчанию помогите найти ошибку - паскаль

Написать программу для вычисления заданного выражения и вывода на экран полученного значения, используя заданный циклический оператор
-0,5 + 0,7 – 0,9 +...+ 0,23 Repeat

PROGRAM LAB2;
var s,x,t,z,p:real;
begin
s:=-0.5;x:=2;t:=10;z:=-1;p:=0;
repeat
s:=s+p;
z:=-1*z;
p:=z*(5+x)/t;
x:=x+2;
if x>4 then t:=100;
until p>0.23;
writeln('summa=',s);
end.
ai\ekcah^p вне форума Ответить с цитированием
Старый 11.05.2009, 17:31   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так как-то:
Код:
uses crt;
var s,x,z,t:real;
begin
clrscr;
s := 0;
x := 5;
z := -1;
repeat
 if x<10 then t := 10
 else t := 100;
 s := s + z*(x/t);
 x := x + 2;
 z := -z;
until x>23;
writeln('summa=',s:5:2);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 11.05.2009, 17:32   #3
Larec
 
Регистрация: 10.05.2009
Сообщений: 4
По умолчанию

После первого прогона у тебя P=0.7, а это больше 0.23 поэтому надо до этого один раз прогнать цикл.Поменял условие с p>0.23 на p=0.23 и в конце добавил s:=s+p; т.к. -0.25<0.23!Надеюсь поймёшь!
Код:
PROGRAM LAB2;
var s,x,t,z,p:real;
begin
s:=-0.5;x:=2;t:=10;z:=-1;p:=0;
s:=s+p;
z:=-1*z;
p:=z*(5+x)/t;
x:=x+2;
if x>4 then t:=100;
repeat
s:=s+p;
z:=-1*z;
p:=z*(5+x)/t;
x:=x+2;
if x>4 then t:=100;
until p=0.23;
s:=s+p;
writeln('summa=',s);
end.
Larec вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку Pirat_of Microsoft Office Access 2 08.05.2009 00:42
Найти ошибку в задаче на ПАскаль Анжелика Помощь студентам 3 16.01.2009 00:55
Паскаль, не могу найти ошибку в программе Julinja Помощь студентам 2 17.11.2008 20:42
Паскаль. Не могу найти ошибку. Нужна помощь! Nexx Помощь студентам 10 06.12.2007 19:12