Народна Освіта » Інформатика » § 41. Алгоритми з повтореннями. Цикл із параметром оператор циклу з параметром For

НАРОДНА ОСВІТА

§ 41. Алгоритми з повтореннями. Цикл із параметром оператор циклу з параметром For

Цикл із параметром

оператор циклу з параметром For

Цикл із параметром (лічильником) використовують у випадках, коли відома кількість повторень циклу. Оператор For забезпечує повторення команд, кероване параметром циклу.

Синтаксис оператора For:

For <параметр> := NV to KV do <оператор>;

Тут <параметр> — змінна порядкового типу;

NV і KV — константи, змінні або вирази того самого типу, що й параметр;

<оператор> — простий або складений оператор (тіло циклу).

Порядок виконання циклу:

1) параметр отримує значення виразу NV;

2) поки параметр не перевищує значення KV, виконується <оператор> і значення параметра збільшується на одиницю відповідного типу.

Повторити п’ять разів виведення вікна повідомлення:

For i := 1 to 5 do ShowMessage('i = '+IntToStr(i));

Якщо кінцеве значення параметра циклу менше від початкового (KV < NV), то цикл не виконається жодного разу.

Проаналізувати, чому цикл не виконується жодного разу.

For A := 10 to 0 do S = S + A;

Якщо при використанні форми То кінцеве значення параметра циклу менше за початкове, то цикл не виконається жодного разу.

Для того щоб реалізувати цикл зі зміною параметра від більшого значення до меншого, використовують форму циклу For зі словом DownTo. Значення параметра з кожною ітерацією зменшується на одиницю:

For <параметр> := NV downto KV do <оператор>;

У такому випадку параметр щоразу отримує не наступне, а попереднє значення свого типу.

Знайти значення виразу An.

У класичній мові Pascal відсутня стандартна функція піднесення до степеня. Щоб обчислити St = An, скористаємося означенням степеня: St = А. А. ... . А, де кількість множників дорівнює п.

St := 1;

For i := 1 to N do St := St * A;

Реалізувати зворотний відлік від 10 до 0 у компоненті Label.

Щоб значення лічильника змінювалось від більшого значення до меншого, скористаємось формою циклу For зі словом downto:

For A := 10 downto 0 do begin Labell.Caption := IntToStr(A);

Application.ProcessMessages;

Sleep(1000) end;

 

Обчислити факторіал числа n (рис. 41.1) за формулою пі = 1 · 2 · 3 ·... · п. var i, n, f: Integer; begin

n := StrToInt (Editi.Text); f := 1;

For i := 2 to n do f := f * i ;

Edit2.Text := IntToStr(f); end;

З клавіатури вводяться п’ять дійсних чисел, серед яких можуть бути як додатні, так і від’ємні числа. Знайти середнє арифметичне додатних чисел. var i, k: Integer; a, Sr: Double; begin Sr := 0;

k := 0; // лічильник додатних чисел For i := 1 to 5 do begin

a := StrToFloat(InputBox('BBec™ 5 чисел', IntToStr(i), '0'));

If a > 0 Then begin

k := k + 1; Sr := Sr + a; end; end;

Sr := Sr / k;

Editl .Text := FloatToStr(Sr); end;

Компонент список (ListBox)

Для виведення значень змінних у кілька рядків зручно скористатися компонентом ListBox (Список).

Компонент ListBox(вкладка Standard на Палітрі компонентів)

призначений для зберігання й опрацювання текстових даних. Кожен рядок ListBox зберігає рядок символів (String).

Доступ до рядків надає властивість Items цього компонента.

Для додавання рядка до списку програмним шляхом призначено метод Add.

Синтаксис виклику методу Add:

ListBox1.Items.Add(Ήовий_pядок');

г дати до списку ListBox значення виразу 2х: ListBox1.Items.Add(IntToStr (2 * х));

Щоб очистити вміст списку, для елемента керування ListBox викликають метод Clear:

ListBoxI .Clear;

Властивість Count зберігає кількість рядків, доданих до списку.

Додати до списку ListBox літери із заданого діапазону (рис. 41.2): var i, nv, kv: Char; begin

 

nv := Editl .Text[1]; kv := Edit2.Text[1];

For i := nv to kv do ListBox1.Items.Add (i); end;

Питання для самоперевірки

1. Поясніть структуру і правила виконання оператора циклу з параметром. Якого типу може бути параметр циклу?

2. Як змінюється параметр циклу? З яким кроком? У якому діапазоні? Скільки разів виконується тіло циклу?

3. В якому випадку застосовується форма циклу For зі словом downto?

4. Які переваги дає використання елемента керування ListBox при виведенні значень виразів (змінних)?

5. Чому дорівнює значення змінної S після виконання циклу:

а) S := 0; For і := 5 to 7 do S := S + 1;

б) S := 0; For і := 10 downto 6 do S := S + 1;

в) S := 0; For і := 'A' to 'D' do S := S + 1;

6. Знайдіть помилки в наведених фрагментах програми:

а) Y := 0; For X := 0.1 to 0.9 do Y := Y + Sin (X);

б) K := 81; Y := 1; For і := 1 to Sqrt (K) do Y := Y * 2;

в) K := 0; For і := 9 to 1 do K := K * 2;

 

Вправа 41

Визначити всі дільники числа n (крім 1 і самого числа). Якщо дільники відсутні, повідомити, що n — просте число.

1) Створіть новий проект. Змініть заголовок форми на «Цикл For». Розмістіть на формі компонент Edit для введення числа n згідно з рисунком.

2) Додайте на форму компонент ListBox згідно з рисунком.

3) Додайте на форму кнопку Button1. Змініть заголовок доданої кнопки на «Знайти дільники».

4) Перевірте, чи є число n простим:

• переберіть всі числа від 2 до (n div 2). Якщо число і є дільником числа n, то і додається до списку ListBox;

• якщо після завершення перебору можливих дільників число елементів списку залишилось рівним 0, то повідомити, що n — просте число.

5) Створіть процедуру обробки події onclick для кнопки Знайти дільники. У програмному коді цієї процедури запишіть оператори, що реалізують алгоритм, зазначений у п. 4:

var i, n: Integer; begin

ListBox! .Clear; // очищення списку

n := StrToInt(Editl.Text); // введення числа n For i := 2 to n div 2 do If n mod i = 0 Then

ListBoxl.Items. Add(IntToStr (i));

If ListBoxl .Count = 0

Then ListBoxl.Items.Add(IntToStr (n) + ' — просте число');

end;

6) Запустіть проект на виконання. Перевірте роботу програми для різних значень n. Збережіть проект у папці Вправа 41.

Комп’ютерне тестування

Виконайте тестове завдання 41 з автоматичною перевіркою на сайті interactive.ranok.com.ua.

 

Це матеріал з підручника Інформатика 8 клас Бондаренко

 

Категорія: Інформатика

Автор: admin от 7-10-2016, 22:44, Переглядів: 3866