| Тема. Цикл із передумовою. Вправи
Команда циклу з передумовою в мові програмування Object Pascal має такий вигляд:
while <логічний вираз> do
begin
<команди тіла циклу>
end;
Виконання цієї команди відбувається так:
- обчислюється значення логічного виразу; якщо це значення true, то виконуються команди тіла циклу, після чого знову обчислюється значення логічного виразу, і якщо це значення знову true, то знову виконуються команди тіла циклу, після чого знову обчислюється значення логічного виразу;
- якщо значення логічного виразу дорівнює false, то команди тіла циклу не виконуються, а виконується команда, наступна за циклом.
Звертаємо вашу увагу:
-
якщо в тілі циклу лише одна команда, то операторні дужки begin і end можна не ставити;
-
серед команд тіла циклу можуть бути й лінійні фрагменти, і розгалуження, й інші цикли.
Компонент ListBox (Список).
Для виведення отримуваних у циклі значень змінних у кілька рядків зручно скористатися компонентом ListBox (Список).
- Компонент Listbox (вкладка Standard на палітрі компонентів) призначений для зберігання й опрацювання текстових даних.
- Кожен рядок Listbox зберігає рядок даних у форматі String.
- Доступ до рядків надає властивість Items цього компонента.
- Для додавання рядка до списку програмним шляхом призначено метод Add. Синтаксис його виклику такий:
ListBox1.Items.Add(‘Новий_рядок');
Наприклад, додати до списку ListBox значення виразу 2 * х:
ListBox1.ltems.Add (IntToStr (2 * х));
- Щоб очистити вміст списку, для елемента керування ListBox викликають метод Clear:
ListBox1.Clear;
- Властивість Count зберігає кількість рядків, доданих до списку.
|
Багаторядкове текстове поле.
Компонент Memo
- є вікном редагування багаторядкового тексту.
Властивості компонента Memo
Методи компонента Memo
|
Розглянемо задачі, алгоритм розв'язування яких містить цикл з передумовою.
Вправа 3. Знайти суму 20 елементів послідовності чисел 2,5; 3,0; 3,5; 4,0...
|
Алгоритм проекта
|
Программный код
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; a, s: real;
begin
// вводятся начальные значения:
S := 0; // суммы S
i := 0; // счетчика слагаемых и
a:= 2.5; // значение первого элемента последовательности
While i < 20 do begin
listbox1.Items.add('i= '+ inttostr(i)+ ' a= '+ FormatFloat('00.00', a)+ ' s = ' + floattostr(s));
S := S + a; // элемент последовательности добавляется в сумму S
a := a + 0.5; // вычисляется очередной элемент последовательности
i := i + 1; {увеличение значения переменной, контролирующей
условие продолжения цикла. на единицу}
end;
end;
|
Вправа 4.
Программный код проекта
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer; a, s: single;
begin
s:=1; // начальное значение суммы
a:=1; // значение первого элемента последовательности
i:=1; // номер первого элемента последовательности
While a > 0.01 do
begin
ListBox1.Items.Add(' i = ' + inttostr(i) + ' ' + 'a = ' +FormatFloat('0.####', a)); //вывод текущих значений переменных i, a, s
ListBox2.Items.Add(' s = ' + FormatFloat('0.###', s));
i := i + 1;
a := 1/i; // вычисление следующего элемента последовательности
s := s + a;// накопление суммы элементов последовательности
end;
end;
|
Алгоритм проекта
|
Вариант 2.( поле Memo замена ListBox)
memo1.lines.Add(' i = ' + inttostr(i) + #9 + 'a =' + #9+ FormatFloat('00.###', a )+ #9 +'s = '+ #9 + FormatFloat('00.###', s)); //вывод текущих значений переменных i, a, sзначений переменных i, a, s
|
Завдання 3. Самостійне виконання:
| |