Примеры решения задач. Два человека одновременно делают вклад на одинаковую сумму
Задача 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);____________________________________________
Массивы как способ организации данных
Дата добавления: 2015-12-11; просмотров: 797;