ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Примеры решения задач. Два человека одновременно делают вклад на одинаковую суммуЗадача 1 Два человека одновременно делают вклад на одинаковую сумму. Первый под 10% годовых, а второй под 7%. Определить, когда у первого денег на счете будет в 2 раза больше, чем у второго. Итак, нам необходимы две переменных для хранения суммы сбережений. S 1 - сумма вклада 1 -го человека, S2 - сумма вклада 2-го человека. Пока количество прошедших лет равно 0 (L:=0;), суммы вкладов одинаковые, допустим по 1000 рублей. Но через год (L:=L+1;) у одного сумма вырастет на 10% 1.S1-S1+SP0.1 {10/100}, а у второго только на 7% 2. S2:=S2+S2*0.07 {7/100} 3.L-L+1; и через некоторое время у 1-го сумма вклада становится в 2 раза больше, чем у 2-го (S1->S2*2;). (Подумайте, почему нельзя записать S1^2*S2?!). Итак, действия 1,2,3 являются операторами, требующими многократного выполнения: до тех пор ПОКА S1>=2*S2; Программа выглядит следующим образом: Const N=1000; { интересно, важна сумма вклада или нет? } Var Sl,S2:Real; L:Word; Begin S1:=N; S2:=N; L:=0; Repeat Sl-Sl+SPO.l; S2:=S2+S2*0.07; L-L+l; Until S1>=2*S2; WriteLn(' Пройдет ',L,' лет'); ReadLn; End. Задача 2 Вкладчик банка положил на свой банковский счет сумму 1000 рублей, через сколько лет его сумма возрастет в 100 раз, если известен годовой процент? Сумма через год = Сумма + Сумма * год. процент /100; пока Сумма не станет больше 100.000; Var S,P:Real; L: Integer; Begin WriteLn(' Введите годовой процент'); ReadLn(P); S:=1000; L:=0; Repeat S-S+S^P/lOO; L:=L+1; Until S> 100000; WriteLn(' Сумма возрастет в 100 раз через ',L,' лет'); ReadLn; End. Задачей (Для решения задачи нужны дополнительные знания: символьный тип данных). Реализовать движение курсора по экрану с помощью клавиш управления курсором {LEFT} и {RIGHT}. Для решения этой задачи необходимо знать коды пяти клавиш. #27 {ESC} #72 {UP} #80 {DOWN} #75 {LEFT} #77 {RIGHT} Мы управляем курсором, пока не нажата клавиша {ESC}. Repeat Until С=#27; Движение курсора влево Write(#8); Движение курсора вправо Write(''); Функция считывания кода клавиши ReadKey;{ Модуль Crt} Uses Crt; Const Left = #75; Right = #77; Esc = #27; Var. C:Char; Begin Repeat C^ReadKey; IfC=RightThenWrite("); IfC= Left Then Write(#8); Until С = Esc; End. Задача 4 Подсчитать сумму цифр заданного числа. Выделение из числа каждого разряда происходит по следующему принципу: d:=a mod 10; { выделяем последний разряд } а:=а div 10; { убираем разряд из числа } Это мы будем делать ПОКА ао0. Выход а=0; Окончательный вариант программы: Var A:LongInt; S:Byte; D:Byte; Begin WriteLn(' Введите число'); ReadLn(A); S:=0; Repeat D:=Amod 10; A:=Adiv 10; S:= S + D; Until a=0; WriteLn(' Сумма цифр числа', A,' равна ',S); ReadLn; End. Упражнение 15. 1. Что получим в результате выполнения цикла, сколько раз он выполнится? S:=0; Repeat S:=S+I; I:=l+2; UntiH>10; WriteLn(S); P:=l; I:=l; Repeat P:=P*1; I:=l+3; Until K10; WriteLn(P); A-.=l; B-2; Repeat Begin A:=A-1; B:=B+1; Until A + 2*B < 0; WriteLn(A; ',B); ____________________________________________ Не нашли, что искали? Воспользуйтесь поиском:
|