Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Then begin




Then begin

Else begin

End

Then begin

End

Then begin

Then begin

If CheckBox.Checked

If CheckBox.Checked

Then Form1.Color:= clRed;

Form1.Width:= 500;

Form1.Height:= 200;

end;

Кожна з цих команд незалежно одна від одної буде визначати, чи вибраний відповідний прапорець, і залежно від цього кожна з них буде чи не буде виконувати відповідні команди зміни значень властивостей форми.

З розглянутих вище прикладів можна зробити такі висновки:

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

Перевірте себе

1. º Яке значення може бути результатом виконання команди перевірки умови (обчислення значення логічного виразу)?

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

3. º Назвіть характерні особливості розгалуження.

4. · Зобразіть блок-схеми повного і неповного розгалуження. Опишіть особливості їх виконання

5. · Поясніть відмінності повного і неповного розгалуження.

6. * Наведіть приклади правил з української мови, математики, інших предметів, що містять розгалуження.

7. *Наведіть приклади життєвих ситуацій, які можна описати алгоритмом з розгалуженням

8. º Наведіть загальний вигляд команд повного і неповного розгалуження в Delphi.

9. · Поясніть виконання команд повного і неповного розгалуження в Delphi.

10. º Які операції використовують для утворення складених логічних виразів у Delphi?

11. · Для чого використовують прапорці та перемикачі?

12. º Що визначає властивість Checked для перемикачів і прапорців?

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

14. · Поясніть хід виконання команди:

If <логічний вираз 1>

<команди 1>

Else If < логічний вираз 2>

<команди 2>

<команди 3>

end;

15. · Поясніть хід виконання послідовності команд:

If < логічний вираз 1>

<команди 1>

end;

If < логічний вираз 2>

<команди 2>

end;

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

1. º Виконайте алгоритм:

1. Задумати два цілих числа.

2. Обчислити суму задуманих чисел.

3. Порівняти "Знайдена сума більша, ніж 30?".

4. Якщо істина, то повідомити "Більше" і виконати команду 8; якщо хиба, то виконати команду 5.

5. Порівняти "Знайдена сума менша, ніж 30".

6. Якщо істина, повідомити "Менше" і виконати команду 8, якщо хиба і, виконати команду 7.

7. Повідомити "Дорівнює".

8. Закінчити виконання алгоритму

Які числа ви задумали і який результат отримали? Яку назву можна дати цьому алгоритму або яку задачу розв’язує цей алгоритм?

2. (ДЗ) · Складіть блок схему алгоритму, наведеного в № 1. Виконайте цей алгоритм для трьох різних пар цілих чисел. Підберіть ці пари так, щоб кожного разу виконання алгоритму йшло по-іншому.

3. · Складіть блок-схему алгоритму обчислення значення виразу: (a + b) – c: a. Виконайте його при різних значеннях a, b, c. Підберіть числа так, щоб кожного разу виконання алгоритму йшло по-іншому.

4. (ДЗ) · Складіть блок-схему алгоритму обчислення значення виразу: (a + b) – c: (a–2b). Виконайте його при різних значеннях a, b, c. Підберіть числа так, щоб кожного разу виконання алгоритму йшло по-іншому.

5. · Складіть блок-схему алгоритму знаходження x з рівняння: ax = b. Виконайте його при: 1) a = 2; b = –8; 2) a = 20; b = 0; 3) a = 0; b = 12; 4) a = 0; b = 0.

6. (ДЗ) · Складіть блок-схему алгоритму знаходження x з рівняння : ax + b = c. Виконайте його при: 1) a = 2; b = – 8; c = 18; 2) a = 20; b = 5; c = 5; 3) a = 0; b = 12; c = 3; 4) a = 0; b = 10; c = 10.

7. * Складіть блок-схему алгоритму розв’язування квадратного рівняння. Виконайте його при різних значеннях коефіцієнтів рівняння.

8. (ДЗ) * Є деяка кількість однакових на вигляд монет. Відомо, що серед них є одна фальшива і вона важча за справжню. Складіть алгоритм виявлення фальшивої монети найменшою кількістю зважувань на шалькових терезах без гир, якщо кількість монет дорівнює: 1) 3; 2) 9; 3) 27; 4) 30.

9. · (ДЗ) Створіть проект, який визначає більше з двох нерівних дійсних чисел. Створіть у власній папці папку Проект 2.8.9 і збережіть у ній проект.

10. · Створіть проект, який визначає менше з двох довільних дійсних чисел або виводить повідомлення, що числа рівні. Створіть у власній папці папку Проект 2.8.10 і збережіть у ній проект.

11. º (ДЗ) Створіть проект, який обчислює модуль довільного дійсного числа. Створіть у власній папці папку Проект 2.8.11 і збережіть у ній проект.

12. * Створіть проект, який визначає найменше число серед трьох нерівних чисел. Створіть у власній папці папку Проект 2.8.12 і збережіть у ній проект.

13. * Створіть проект, який за градусною мірою двох кутів трикутника обчислює градусну міру третього кута і визначає вид цього трикутника за його кутами (гострокутний, прямокутний або тупокутний). Створіть у власній папці папку Проект 2.8.13 і збережіть у ній проект.

14. * Створіть проект, в якому кнопка буде переміщуватися на 20 пікселів вправо при наведенні на неї вказівника. Після того, як кнопка зникне за правою границею вікна, вона повинна з’явитися біля лівої його границі. Створіть у власній папці папку Проект 2.8.14 і збережіть у ній проект.

15. * Створіть проект для визначення, чи можна з чотирьох відрізків з заданими довжинами скласти паралелограм. Створіть у власній папці папку Проект 2.8.15 і збережіть у ній проект.

16. · (ДЗ) Створіть проект, в якому можна обчислити значення функції.

Створіть у власній папці папку Проект 2.8.16 і збережіть у ній проект.

17. · Створіть проект, в якому можна обчислити суму, або різницю, або добуток або частку двох довільних дійсних чисел у залежності від вибраного перемикача. Створіть у власній папці папку Проект 2.8.17 і збережіть у ній проект.

18. · (ДЗ) Створіть проект, в якому можна обчислити суму, різницю, добуток, частку двох довільних дійсних чисел у залежності від встановлених позначок прапорців. Створіть у власній папці папку Проект 2.8.18 і збережіть у ній проект.

19. · Робітник виготовляє деталі. Відомо, скільки деталей він повинен виготовити за місяць (план), кількість реально виготовлених ним деталей і вартість однієї деталі. Якщо робітник виконує план, то він одержує премію в розмірі 10% від заробленої в результаті виготовлення деталей суми. Якщо робітник перевиконує план, то його премія становить 30% від заробленої суми. А якщо він недовиконає план, то з нього знімається 20% від заробленої суми. Створіть проект, який визначає суму, зароблену робітником за місяць. Створіть у власній папці папку Проект 2.8.19 і збережіть у ній проект.

Практична робота № 8

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

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

 

1. Відкрийте середовище розробки Turbo Delphi 2006 і створіть новий проект.

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

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

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

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

г) виконайте складені процедури і переконайтеся, що результати їх роботи правильні.

3. Створіть у власній папці папку Практична 8 і збережіть у ній проект.


 

2.9. Цикли в алгоритмах і в програмах

Пригадайте!

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

2. Опишіть характерні властивості лінійних алгоритмів (фрагментів алгоритмів), алгоритмів з розгалуженням.

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

4. Як виглядає і як виконується команда неповного розгалуження в Delphi?

5. Як і для чого використовуються перемикачі та прапорці?

Цикли в алгоритмах

У лінійних алгоритмах і в алгоритмах з розгалуженням кожна команда алгоритму могла бути виконана не більше одного разу.

Але для розв’язування багатьох задач потрібно складати алгоритми, команди яких можуть бути виконані більше одного разу. Розглянемо приклади таких задач.

 

Задача 1. Є діжка і відро. Використовуючи відро, наповнити діжку водою. (Вважаємо, що існує джерело води, з якого можна наповнювати відро, і води у джерелі достатньо для наповнення діжки.)

Розглянемо виконавця з такою системою команд:

1. Наповнити відро водою.

2. Вилити воду з відра в діжку.

3. Перевірити умову «Діжка неповна?».

Оскільки з умови задачі невідомо, чи є в діжці вода, виконавець повинен спочатку перевірити умову «Діжка неповна?». Якщо результат цієї перевірки true, то він повинен наповнити відро водою, вилити її з відра в діжку і знову перевірити умову «Діжка неповна?». І так до тих пір, поки результат перевірки цієї умови стане false. Після цього можна припинити виконання алгоритму.

Подамо алгоритм розв’язування цієї задачі для розглянутого виконавця у словесній формі і у формі блок-схеми (рис. 2.53).

1. Перевірити умову «Діжка неповна?»

2. Якщо результат виконання попередньої команди true, то виконати команду 3, якщо false, то закінчити виконання алгоритму.

3. Наповнити відро водою.

4. Вилити воду з відра в діжку.

5. Перейти до виконання команди 1.

У цьому алгоритмі команди 3-5 можуть бути виконані більше одного разу. Чергове виконання цих команд залежить від результату перевірки умови в команді 1. Якщо цей результат true, то команди 3-5 виконуються ще раз, якщо ж false, то ці команди більше не виконуватимуться.

Звертаємо вашу увагу: команди 3-5 саме «можуть бути виконані більше одного разу», а не «обов’язково виконуються більше одного разу». Адже можливо, що після першого ж виливання води з відра в діжку вона наповниться і виконання алгоритму закінчиться. Крім того, якщо діжка з самого початку є повною, то ці команди не виконаються жодного разу.

Запам’ятайте!

Фрагмент алгоритму, що складається з команд, які можуть бути виконані більше одного разу, називається циклом. Алгоритми, які містять цикли, називаються алгоритмами з циклами.

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

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

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

Верстальнику: на рис. 2.54 в ромбі написати «Перевірка умови (обчислення значення логічного виразу)

 

Якщо б в умові задачі 1 було відомо, що діжка порожня, то виконавцю не потрібно було б одразу перевіряти умову «Діжка неповна?». Він мав би хоча б один раз наповнити відро водою, перелити воду з відра в діжку і лише після цього перевірити умову «Діжка неповна?» (або умову «Діжка повна?», якщо вона входить до системи його команд).

Блок-схема алгоритму розв’язування такої задачі з використанням умови «Діжка повна?» виглядає так (рис. 2.55):

Верстальнику: на рис. 2.55 Стрілку Так пустити справа від ромба і вниз, а Ні – зліва від ромба і вгору!

 

Рис. 2.55. Блок-схема алгоритму розв’язування модифікованої задачі 1

 

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

Загальний вигляд блок-схеми циклу з післяумовою наведено на рис. 2.56. Верстальнику: на рис. 2.56 Стрілку Так пустити справа від ромба і вниз, а Ні – зліва від ромба і вгору! І в ромбі написати «Перевірка умови (обчислення значення логічного виразу)

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

Звертаємо вашу увагу: якщо в алгоритмі, блок-схема якого наведена на рис. 2.55 використати умову «Діжка неповна?», то виконання циклу продовжувалося б при результаті true виконання команди перевірки умови і припинялося б при результаті false виконання цієї команди.

 

 

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

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

 

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

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

for <ім′я змінної>:= <вираз1> to <вираз2> do




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 2250; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.046 сек.