Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Цикл! Зацикливание

Автор: rs-mms 12.05.2009 14:31

Program fermer; 
uses crt;
var
S: real; {отпускная цена}
S2,S3: real; {изменяемая цена}
P: real; {процент}
N: integer;
begin
writeln('Введите отпускную цену: ');
readln(S);
writeln('Введите процент: ');
readln(P);
N:=0;
S3 := S;
repeat
S2:=S3*(1 + P/100); {повышение цены зимой}
S3:=S2*(1 - P/100); {понижение цены летом}
N:=N+1;
until (S3=S); {проверка условия}
writeln('Цена на молоко', S3, 'через', N, 'лет');
readln;
end.

Автор: volvo 12.05.2009 16:19

М
rs-mms, в следующий раз добавляй теги для подсветки синтаксиса самостоятельно + измени название темы, иначе она будет закрыта...



P.S. Еще бы узнать, что делает эта программа (в смысле, что должна делать...)

Автор: rs-mms 14.05.2009 14:01

Вот условие задачи:
Каждый год животновод в начале зимы повышает отпускную цену на молоко на р%, а каждое лето понижает на такое же количество процентов. Изменится ли цена на молоко, если да, то в какую сторону и через сколько N лет?



Добавлено через 1 мин.
Вот условие задачи:
Каждый год животновод в начале зимы повышает отпускную цену на молоко на р%, а каждое лето понижает на такое же количество процентов. Изменится ли цена на молоко, если да, то в какую сторону и через сколько N лет?


Автор: Ozzя 14.05.2009 16:27

Условие выхода из цикла не работает, потому что нарастающую по цене считаете неверно.

Автор: rs-mms 16.05.2009 21:20

Ну а как надо? Подскажите пожалуйста!

Автор: volvo 16.05.2009 21:36

Опять же не совсем понятно:

Цитата
Каждый год животновод в начале зимы повышает отпускную цену на молоко на р%, а каждое лето понижает на такое же количество процентов. Изменится ли цена на молоко, если да, то в какую сторону и через сколько N лет?
Что значит выделенное? Измениться ли цена, и через сколько лет? Да, изменится, уже после первого же прибавления. Цена уже другая. Имеется в виду в конце года? Да, тоже изменится, потому что если прибавить X% к числу и потом от вновь полученного отнять X% - то исходное число получено не будет:
N := 0; 
S3 := S;
repeat
S2:=S3*(1 + P/100); { повышение цены зимой }
S3:=S2*(1 - P/100); { понижение цены летом }
N:=N+1;
until (S3 <> S); { проверка условия (условие изменилось) }
writeln('Цена на молоко', S3:10:3, 'через', N, 'лет');

Так что все-таки находим?

Автор: Гость 16.05.2009 21:41

Условие задачи дано преподавателем.

Автор: volvo 16.05.2009 21:45

Цитата
Условие задачи дано преподавателем.
Уточнить никак нельзя?

Автор: rs-mms 16.05.2009 21:47

Я у нее спрашивала только про то какую цену надо менять отпускную или уже измененную, дала ответ что измененную. А что-то еще уточнять уже поздно, сессия в понедельник.

Добавлено через 4 мин.
Спасибо! Получается надо было только знак = поменять на <> и все работает!