Народна Освіта » Інформатика » Цикл з передумовою

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

Цикл з передумовою

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

2. Який вигляд має і як виконується блок-схема циклу з передумовою?

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

ЦИКЛ З ПЕРЕДУМОВОЮ

Ви вже знаєте, що цикл з передумовою як фрагмент алгоритму починається з команди перевірки умови й результатом виконання цієї команди може бути або істина (Так, true), або хиба (Ні, false). І залежно від результату виконання цієї команди - виконуватимуться команди тіла циклу або команда алгоритму, наступна за циклом.

У загальному випадку у цій команді визначається значення певного логічного виразу, яке може бути або true, або false.

Загальний вигляд блок-схеми циклу з передумовою такий (мал. 6.31):

КОМАНДА ЦИКЛУ З ПЕРЕДУМОВОЮ В OBJECT PASCAL

Команда циклу з передумовою в мові програмування Object Pascal має такий вигляд:

While<aori4HHfi вираз>

Then begin

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

(англ. while - поки).

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

Звертаємо вашу увагу:

•    якщо в тілі циклу лише одна команда, то операторні дужки begin і end можна не ставити;

• серед команд тіла циклу можуть бути й лінійні фрагменти, і розгалуження, й інші цикли.

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

Задача. Скільки потрібно взяти доданків, перший з яких дорівнює заданому д ійсному числу, а кожний наступний на 3 більший від попереднього, щоб їхня сума перевищила 100?

Даними цієї задачі є перший доданок. Вводитимемо його в поле.

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

До суми потрібно додавати наступні доданки, поки ця сума буде меншою, або дорівнюватиме 100. Тому логічний вираз у заголовку циклу матиме вигляд s <= 100. У тілі циклу шукатимемо наступний доданок, додаватимемо його до поточного значення суми і збільшуватимемо кількість доданих доданків на 1.

Відповідний фрагмент проекту матиме такий вигляд: var a, s: real; n: integer; begin

a := StrToFloat (Editl.Text);

s := a; n := 1;

while s <=100 do

begin

a := a+3;

s := s+a;

n := n+1;

end;

Labell.Caption := IntToStr(n); end;

Загальний вигляд блок-схеми циклу з передумовою показано на малюнку 6.31.

Команда циклу з передумовою в мові програмування Object Pascal має такий вигляд:

While<aori4Hnfi вираз>

Then begin

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

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

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

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

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

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

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

6°. Який загальний вигляд команди циклу з передумовою в Object Pascal?

7*. Як виконується команда циклу з передумовою в Object Pascal?

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

2*. Виконайте фрагмент програми та з’ясуйте, якими будуть значення змінних після його завершення: а) k := 1; a := 12;    б) s := 0; a := 1; k := 1;

while a < 100 do while a < 50 do begin    begin

a := 2*a — 4;    s := s + a;

k := k + 1;    k := k + 1;

end;    a := k*k;

end;

3*. Виконайте фрагмент програми та з’ясуйте, якими будуть значення змінних після його завершення: а) k := 1; a := 100;    б) s := 0; a := 5;

while a > 10 do    while a <= 100 do

begin    begin

a := a/2;    s := s + a;

k := k + 1;    a := a*2;

end;    end;

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

5*. Складіть блок-схему алгоритму знаходження суми додатних чисел, перше з яких дорівнює 50, кожне наступне на 8 менше від попереднього. Виконайте алгоритм.

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

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

8*. Створіть проект для розв’язання задачі: Клієнт поклав у банк певну суму грошей. Щорічно банк додає до суми наперед визначений відсоток від суми, що зберігається на рахунку п ісля попереднього року. Через скільки років сума на рахунку перевищить S грн? Збережіть проект у папці з іменем Завдання 6.7.8, створеній у вашій папці.

ПРАКТИЧНА РОБОТА № 12

«Складання та виконання проектів з повтореннями та розгалуженнями

для опрацювання величин»

Увага! Під час роботи з комп’ютером дотримуйтеся правил безпеки та санітарно-гігієнічних норм.

1.    Відкрийте середовище Lazarus.

2. Створіть проект для розв’язування задачі: Відомі довжини сторін двох прямокутників. Обчислити площі прямокутників та порівняти їх. Визначити, чи є прямокутники квадратами. Визначити, чи вміститься один прямокутник усередину другого.

1.    Розмістіть на формі поля для введення даних написи для виведення результатів і три кнопки.

2.    У проекті:

•    складіть обробник події Click для першої кнопки, виконання якого приведе до обчислення площ прямокутників та їх порівняння;

•    складіть обробник події Click для другої кнопки, виконання якого, залежно від вибраних прапорців, приведе до визначення того, чи є відповідний прямокутник квадратом;

•    складіть обробник події Click для третьої кнопки, виконання якого приведе до визначення, чи вміститься перший прямокутник усередину другого або другий прямокутник усередину першого, залежно від вибраного перемикача.

3. Збережіть проект у папці з іменем Практична 12_1, створеній у вашій папці.

4.    Створіть проект для розв’язування задачі: Перед початком повені рівень води у річці становив Н метрів. Під час повені щогодини рівень води збільшувався на Р відсотків від рівня попередньої години. Яким буде рівень води через N годин після початку повені? Через скільки годин після початку повені рівень води буде не менше ніж K метрів?

1.    Розмістіть на формі поля для введення початкових даних написи з текстами, що пояснюватимуть призначення полів, і три кнопки.

2. Установіть на першій кнопці напис Завдання 1, на другій - Завдання 2, на третій - Спочатку, у полів - порожній текст.

3.    Складіть обробник події Click для першої кнопки, виконання якого приведе до виведення у вікно повідомлення відповіді на перше запитання задачі.

4.    Виконайте проект і переконайтеся, що результати його роботи правильні.

5.    Складіть обробник події Click для другої кнопки, виконання якого приведе до знаходження відповіді на друге запитання задачі і виведення його в окремий напис.

6.    Виконайте проект і переконайтеся, що результати його роботи правильні.

7.    Складіть обробник події Click для третьої кнопки, виконання якого приведе до очищення тексту в полях та написі з відповіддю на друге запитання задачі.

5. Збережіть проект у папці з іменем Практична 12_2, створеній у вашій папці.

6.    Закрийте середовище Lazarus.

 

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

 

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

Автор: admin от 16-10-2016, 16:07, Переглядів: 19537