Задача на систему циклов - Pascal
Формулировка задачи:
Доброго времени суток!
Хочу попросить помощи в решении данной задачи, т.к. у меня выходит очень длинный скрипт.
Задача:
Никола Тесла очень любил эксперименты с электричеством. Проведя со своим помощником первый успешный опыт при силе тока 0,001 Ампер в понедельник первого числа, Тесла ежедневно увеличивал силу тока в 1,5 раза, а его помощник втайне уменьшал в конце каждой недели силу тока на 0,005 Ампер. Какого числа Тесла лишится своего помощника, если сила тока в 0,2 Ампер для него смертельна?
Буду очень благодарен!
Решение задачи: «Задача на систему циклов»
textual
Листинг программы
const
A = 0.001;
B = 0.2;
M = 1.5;
D = 0.005;
var
amp: Real;
i: Word;
begin
amp := A; i := 1;
repeat
Inc(i); amp := amp * M;
if amp >= B then Break; // могло так случиться, что уменьшать уже некому
if i mod 7 = 0 then amp := amp - D;
until False;
WriteLn('ANSWER - ', i, ': ', amp:0:5);
end.
Объяснение кода листинга программы
- Объявляются константы:
-
Aсо значением 0.001 -Bсо значением 0.2 -Mсо значением 1.5 -Dсо значением 0.005 - Объявляются переменные:
-
ampтипа Real -iтипа Word - Присваивается значение переменным:
-
ampприсваивается значениеA-iприсваивается значение 1 - Начинается цикл
repeat1. Увеличивается значение переменнойiна 1 (Inc(i)) 2. Умножается значение переменнойampнаM3. Проверяется условие, если значение переменнойampбольше или равноB, то происходит выход из цикла (Break) 4. Проверяется условие, если остаток от деления значения переменнойiна 7 равен 0, то к значению переменнойampприбавляется-D - Цикл продолжается до тех пор, пока не будет выполнено условие
False(при этом фактический выход осуществляется по командеBreak) - Выводится на экран результат в виде строкового сообщения, которое включает значения переменных
iиampс округлением до 5 знаков после запятой. Надеюсь, это поможет!