Інформація про новину
  • Переглядів: 25
  • Дата: 19-10-2021, 19:56
19-10-2021, 19:56

6.10. Цикл з лічильником в Lazarus

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





Попередня сторінка:  6.9. Прапорці. Перемикачі в Lazarus
Наступна сторінка:   6.11. Цикл з передумовою в Lazarus

1. Які процеси називають циклічними? Наведіть приклади.

2. Що таке цикл в алгоритмі? Що таке тіло циклу?

3. Який вигляд має команда циклу з лічильником у мові програмування? Як вона виконується?

Команда циклу з лічильником

Ви вже знаєте, що в багатьох алгоритмах одна або кілька команд повинні повторюватися багато разів поспіль. Недоцільно включати в алгоритм ці команди стільки разів, скільки вони повинні повторюватися, тому що кількість разів повторення може бути дуже велика або навіть заздалегідь невідома.

У таких випадках потрібно в алгоритмах використовувати цикли. Нагадаємо, що цикл в алгоритмі - це фрагмент алгоритму, який може повторюватися поспіль більше ніж один раз.

У мовах програмування є кілька команд, які можуть реалізувати цикл. Одна з них - команда циклу з лічильником. Її доцільно використовувати в тих випадках, коли кількість повторень команд тіла циклу відома ще до початку виконання циклу.

Для тих, хто вивчає Pascal

Загальний вигляд команди циклу з лічильником у Pascal такий:

Рядок for <ім'я змінної> := <вираз1> to <вираз2> do (англ. for - для, to - до, do - робити, виконувати) називається рядком заголовка команди циклу з лічильником. Змінна в рядку заголовка команди циклу з лічильником, що стоїть перед знаком присвоювання, називається лічильником циклу.

Лічильник циклу, виразі і вираз2 мають набувати тільки цілих значень. Якщо тіло циклу складається лише з однієї команди, операторні дужки begin і end можна не використовувати.

Блок-схему команди циклу з лічильником наведено на малюнку 6.76.

Виконується команда циклу з лічильником так:

1. Змінна-лічильник циклу набуває значення виразі.

2. Обчислюється значення логічного виразу змінна < вираз2.

3. Якщо значення логічного виразу true, то виконуються команди тіла циклу і після цього виконується дія 4; якщо false, то виконання команди циклу закінчується і далі виконується команда, наступна за командою циклу.

4. Збільшується значення лічильника циклу на 1.

5. Повторюється виконання дії 2.

Для ілюстрації виконання команди циклу з лічильником розглянемо фрагмент проекту, у якому обчислюється сума

Блок-схему цього фрагмента проекту наведено на малюнку 6.77.

Виконаємо цей фрагмент проекту.

Звертаємо вашу увагу, що після закінчення виконання команди циклу з лічильником значення лічильника циклу (змінної і) на 1 більше, ніж значення ви-раз2, і це значення, за потреби, можна використовувати в наступних командах.

Аля тих, хто хоче знати більше

Існує різновид команди циклу з лічильником, у якому лічильник не збільшується на 1, а зменшується на 1:

(англ. downto - униз до).

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

Аля тих, хто вивчає Python

Загальний вигляд команди циклу з лічильником у мові Python такий:

Рядок for <ім’я змінної> in гапде(<кількість повторень:*) (англ. for - для, in range - в діапазоні) називається рядком заголовка команди циклу з лічильником. Змінна в рядку заголовка команди циклу з лічильником називається лічильником циклу.

Функція гапде(<кількість повторень>) утворює (генерує) набір послідовних цілих чисел, перше з яких 0, а останнє - на 1 менше від заданої кількості повто-

рень (усього чисел стільки, скільки задано кількість повторень). Наприклад, функція гапде(3) генерує набір чисел 0, 1,2, усього 3 числа. Змінна-лічильник циклу послідовно набуває значень із цього набору чисел.

Блок-схему команди циклу з лічильником у Python наведено на малюнку 6.78.

Виконується команда циклу з лічильником так:

1. Функція гапде(<кількість повторень>) генерує набір чисел від 0 до (кількість повторень- 1).

2. Виконується перевірка, чи є в наборі числа, які ще не використовувалися і могли б стати новим значенням змінної-лічильника циклу.

3. Якщо результат перевірки True, то змінна-лічильник циклу набуває значення першого з набору чисел, які ще не використовувалися, і після цього виконується дія 4; якщо False, то виконання команди циклу закінчується і далі виконується команда, наступна за командою циклу.

4. Виконуються команди тіла циклу.

5. Повторюється виконання дії 2.

У записі команди циклу з лічильником усі команди тіла циклу повинні бути записані з однаковим відступом від першої літери слова for.

Для ілюстрації виконання команди циклу з лічильником розглянемо проект, у якому обчислюється сума

Аля тих, хто хоче знати більше

Функція гаіще(<початок>, <кінець>, <крок>) у загальному випадку має три аргументи цілого типу:

• початок - перше ціле число, яке потрапить до згенерованого набору;

• кінець - ціле число, яке не ввійде до згенерованого набору і яке більше за всі числа з набору, якщо крок > 0, і менше від всіх чисел з набору, якщо крок < 0.

• крок - різниця між кожними двома сусідніми цілими числами в згене-рованому наборі чисел.

Наприклад, функція range(3, 9, 2) згенерує такий набір чисел: З, 3 + 2-5, 5 + 2-7. Наступне число 7 + 2 = 9 не увійде в набір чисел, оскільки воно не менше, ніж другий аргумент функції.

Тестування проекту із циклом з лічильником

Під час тестування проекту, що містить цикл з лічильником, доцільно підбирати такі набори вхідних даних, щоб тіло циклу виконувалося різну кількість разів: 1 раз; 2 рази; 3 рази; 5 разів, іншу кількість разів.

Працюємо з комп'ютером

Виконайте тренувальні завдання за посиланням

https://cutt.ly/lhdrkPJ

або QR-кодом.

Найважливіше в цьому пункті

Цикл в алгоритмі - це фрагмент алгоритму, який може повторюватися поспіль більше ніж один раз. Цикл з лічильником використовується і в тих випадках, коли перед його виконанням відомо, скільки разів повинні виконатися команди тіла циклу.

Аля тих, хто вивчає Pascal

Рядок for <ім'я змінної;* := <вираз1> to <вираз2> do називається рядком заголовка команди циклу з лічильником. Змінна в рядку заголовка команди циклу з лічильником, що стоїть перед знаком присвоювання, називається лічильником циклу. Лічильник циклу, виразі і вираз2 мають набувати тільки цілих значень.

Виконується команда циклу з лічильником так:

1. Змінна-лічильник циклу набуває значення виразі.

2. Обчислюється значення логічного виразу змінна < вираз2.

3. Якщо значення логічного виразу true, то виконуються команди тіла циклу й після цього виконується дія 4; якщо false, то виконання команди циклу закінчується і далі виконується команда, наступна за командою циклу.

4. Збільшується значення лічильника циклу на 1.

5. Повторюється виконання дії 2.

Аля тих, хто вивчає Python

Загальний вигляд команди циклу з лічильником у мові Python такий:

for <ім’я змінної;* in гапде(<кількість повторень;*):

<команди тіла циклу>

Рядок for <ім’я змінної^ in гапде(<кількість повторень>) називається рядком заголовка команди циклу з лічильником. Змінна в рядку заголовка команди циклу з лічильником називається лічильником циклу.

Функція гапде(<кількість повторень>) утворює (генерує) набір послідовних цілих чисел, перше з яких 0, а останнє - на 1 менше від заданої кількості повторень. Змінна-лічильник циклу послідовно набуває значень із цього набору чисел.

Виконується команда циклу з лічильником так:

1. Функція гапде(<кількість повторень>) генерує набір чисел від 0 до (кількість повторень- 1).

2. Виконується перевірка, чи є в наборі числа, які ще не використовувалися і могли б стати новим значенням змінної-лічильника циклу.

3. Якщо результат перевірки True, то змінна-лічильник циклу набуває значення першого з набору чисел, які ще не використовувалися, і після цього виконується дія 4; якщо False, то виконання команди циклу закінчується і далі виконується команда, наступна за командою циклу.

4. Виконуються команди тіла циклу.

5. Повторюється виконання дії 2.

У записі команди циклу з лічильником усі команди тіла циклу повинні бути записані з однаковим відступом від першої літери в слові for.

Аайте вілповілі на запитання

1°. Що таке цикл в алгоритмі?

2°. Який вигляд має команда циклу з лічильником у мові програмування?

З*. Як виконується команда циклу з лічильником у мові програмування?

4*. Який вигляд має блок-схема циклу з лічильником? Поясніть виконання такого фрагмента алгоритму.

5*. Чи можуть команди тіла циклу з лічильником виконуватися тільки один раз? Поясніть свою відповідь. Наведіть приклад.

6*. Чи можуть команди тіла циклу з лічильником не виконуватися жодного разу? Поясніть свою відповідь. Наведіть приклад.

7*. Чи може виконання циклу з лічильником ніколи не закінчитися? Поясніть свою відповідь. Наведіть приклад.

8*. На яких тестових наборах вхідних даних доцільно тестувати проект із циклами?

9*. У чому полягають відмінності у виконанні основних алгоритмічних структур: слідування, розгалуження, цикл?

Виконайтезавлання

1 *. Складіть блок-схему фрагмента алгоритму та виконайте його.

2*. Складіть блок-схему фрагмента алгоритму і виконайте його.

3°. Побудуйте математичну модель і складіть блок-схему алгоритму знаходження суми п’яти чисел, перше з яких дорівнює 7, а кожне із чотирьох наступних на 3 більше за попереднє. Виконайте складений алгоритм.

4°. Побудуйте математичну модель і складіть блок-схему алгоритму знаходження суми шести чисел, перше з яких дорівнює 100, а кожне з п’яти дорівнює попередньому, поділеному на 5. Виконайте складений алгоритм.

5*. Побудуйте математичну модель і складіть проект для обчислення суми п чисел, перше з яких дорівнює додатному числу х, а кожне наступне у 2 рази більше за попереднє. Запишіть у зошит набори вхідних даних, для яких ви тестували проект. Збережіть проект у папці Завдання 6.10.5, створеній у вашій папці.

6*. Побудуйте математичну модель і складіть проект для обчислення суми п чисел, перше з яких дорівнює х, а кожне наступне дорівнює квадрату попереднього. Запишіть у зошит набори вхідних даних, для яких ви тестували проект. Збережіть проект у папці Завдання 6.10.6, створеній у вашій папці.

7*. Людина поклала в банк певну суму грошей. Щорічно банк додає до вкладу 10 % від суми, що зберігається на рахунку після попереднього року. Побудуйте математичну модель і складіть проект для визначення суми, яка буде на рахунку через п років. Запишіть у зошит набори вхідних даних, для яких ви тестували проект. Збережіть проект у папці Завдання 6.10.7, створеній у вашій папці.

8е. Людина поклала в банк певну суму грошей. Щорічно банк додає до вкладу заздалегідь визначений відсоток від суми, що зберігається на рахунку на кінець поточного року. Побудуйте математичну модель і складіть проект для визначення, на скільки зросте сума на рахунку через за п років. Запишіть у зошит набори вхідних даних, для яких ви тестували проект. Збережіть проект у папці Завдання 6.10.8, створеній у вашій папці.

9*. Спортсмен-паралімпієць, готуючись до участі в марафоні, у перший день тренувань подолав дистанцію в s км. Кожного наступного дня його денна дистанція збільшувалася на р % від дистанції попереднього дня. Побудуйте математичну модель і створіть проект для визначення:

а) дистанції, яку спортсмен-паралімпієць здолає на л-ний день тренувань;

б) сумарної дистанції за л днів тренувань;

в) на скільки більшою буде дистанція у л-ний день тренувань за дистанцію першого дня.

Збережіть проект у папці Завдання 6.10.9, створеній у вашій папці.

 

 

Це матеріал з підручника Інформатика 8 клас Ривкінд (2021)

 



Попередня сторінка:  6.9. Прапорці. Перемикачі в Lazarus
Наступна сторінка:   6.11. Цикл з передумовою в Lazarus



^