1. Lazarus.ОПЕРАТОРИ ПОВТОРЕННЯ
Алгоритм розв’язання багатьох завдань передбачає для досягнення результату виконання
певної послідовності дій кілька разів, тобто, є циклічними. У програмі цикл може бути
реалізований за допомогою конструкцій for, while і repeat.
Оператор циклу for … do
Оператор FOR використовується в тому випадку, коли деяку послідовність дій треба
виконати кілька разів, причому число повторень заздалегідь відомо.
Загальний вигляд оператора for … do:
for <лічильник>: = <поч_знач> to <кін_знач> do
begin
<Тіло циклу>
End;
де:
лічильник - змінна-лічильник числа повторень;
поч_знач - вираз, що визначає початкове значення лічильника циклу;
кін_знач - вираз, що визначає кінцеве значення лічильника циклу;
тіло циклу - оператори, які будуть повторюватися.
Змінна-лічильник, вирази поч_знач і кін_знач повинні бути цілого типу. Кількість
повторень циклу можна обчислити за формулою: кін_знач - поч_знач +1.
Якщо між begin і end знаходиться тільки один оператор, то begin і end можна не писати.
Наприклад, в результаті виконання наступного програмного коду:
tab1:=' ';
for i:= 1 to 5 do
begin
tab1:= tab1 + IntToStr(i) + ' ' + IntToStr(i*i) + chr(13);
2. end;
Змінна tabl буде відображати таблицю квадратів чисел. Якщо в операторі for замість слова,
to записати Downto, то після чергового виконання тіла циклу значення лічильника буде не
збільшуватися, а зменшуватися.
Оператори циклу з умовою while і repeat
Оператори while і repeat використовуються в тому випадку, коли деяку послідовність дій
треба виконати кілька разів, причому необхідне число повторень під час розробки програми
невідомо і може бути визначено тільки під час роботи програми.
Оператор циклу з передумовою while .. do
Загальний вигляд оператора:
While умова do
begin
<тіло циклу>
end;
де умова - вираз логічного типу, визначальна умова виконання тіла циклу. Оператори тіла
циклу виконуються, поки умова не стане хибною (False).
Оператор циклу з післяумовою repeat… until
Загальний вигляд оператора:
repeat
<тіло циклу>
until умова
де умова - вираз логічного типу, визначальна умова завершення циклу.
Оператори тіла циклу виконуються доти, поки умова не стане істинною (True).Зверніть
увагу на відмінності. В операторі while … do вихід з циклу ВІДБУВАЄТЬСЯ ТОДІ, коли
умова стане хибною, а в операторі repeat … until - коли умова стане істинною.
Практична робота
Завдання. Напишіть програму, яка визначить по дохід вкладу з урахуванням обраних
простих або складних відсотків. Прості відсотки нараховуються після закінчення терміну
вкладу, складні відсотки нараховуються щомісяця і додається до суми вкладу.
Хід виконання роботи
1. Завантажте Lazarus, створіть новий проект. Збережіть файли проекту в папці Дохід за
вкладом.
2. Створіть Інтерфейс за зразком.
3. 3. Напишіть обробник події для кнопки Обчислити.
procedure TForm1.Button1Click(Sender: TObject);
var
sum:real; // сума вкладу
pr: real; // відсоткова ставка
period: integer; // термін вкладу
profit: real; //дохід по вкладу
sum2: real; //сума нарахування
//методом складних відсотків
i: integer;
begin
sum:=StrToFloat(Edit1.text);
pr:=StrToFloat(Edit2.text);
period:=StrToInt(Edit3.text);
if RadioGroup1.ItemIndex=0 then
// Вибрано перемикач Прості відсотки
4. profit:=sum*(pr/100/12)*period
else
// Вибрано перемикач Складні відсотки
begin
sum2:=sum;
for i:=1 to period do
sum2:= sum2+sum2*(pr/100/12);
profit:=sum2-sum;
end;
sum:=sum+profit;
Label4.Visible:=True;
Label4.Caption:='Дохід: '+FloatToStrF(profit,ffFixed,8,2)
+#13+'Сума в кінці терміну вкладу: '+FloatToStrF(sum, ffFixed,8,2);
end;
4. Перевірте роботу програми!
Функції перетворення
Функції перетворення типів часто використовуються при введенні і виведенні інформації
Наприклад, для того щоб вивести в поле виведення (компонент Label) діалогового вікна
значення змінної Real, необхідно перетворити число в рядок символів, що зображає дане
число. Це можна зробити за допомогою функції FloatToStr, яка повертає рядкове
представлення значення виразу, вказаного в якості параметра функції.
Основні функції перетворення типів
Функція Опис
Chr(n) Символ, код якого дорівнює n.
IntToStr(k) Рядок, який є представленням цілого k.
FloatToStr(n) Рядок, що є представленням дійсного n.
FloatToStrF(n,f,k,m) Рядок, що є зображенням дійсного n. При виконанні
функції вказують: f - формат; k - точністm (загальна
кількість цифр); m - кількість цифр після десяткової
коми. Можливі наступні значення параметра Формат:
ffGeneral - загальний числовий формат;
5. ffFixed - фіксований формат;
ffCurrency - грошовий формат.
StrToInt(s) Ціле, зображенням якого є рядок s.
StrToFloat(s) Дійсний, зображенням, якого є рядок s.
Round(n) Ціле, отримане шляхом округленняn n за відомими
правилами.
Trunc(n) Ціле, отримане шляхом відкидання дробової частини n.
Frac(n) Дробове, що представляє собою дробову частину
дійсного п.
Int(n) Дробове, що представляє собою цілу частину дійсного п.
Найбільш часто програма може отримувати вихідні дані з вікна введення або з поля
редагування (Edit компонент). Для перетворення даних в числовий тип використовують
відповідну функцію.
Наприклад, для перетворення в дійсний тип використовується оператор:
Funt: = StrToFloat (Edit1.Text);