базовI структури алгоритму урок 4
Transcript of базовI структури алгоритму урок 4
![Page 1: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/1.jpg)
Базові структури
алгоритму
![Page 2: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/2.jpg)
Що означає побудувати алгоритм?
1
• Здійснити аналіз запропонованого завдання, предметної області чи інформаційної моделі, визначити проблему тощо
2
• Продумати план майбутньої діяльності щодо розв'язування завдання, вирішення проблеми чи досягнення поставленої мети
3• Зафіксувати його за допомогою деякої системи
позначень, так званою формальною мовою
![Page 3: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/3.jpg)
Побудова алгоритму
Для розв'язування задач за
допомогою комп'ютера існують різні
технології програмування, наприклад,
низхідне програмування (“зверху
донизу”), висхідне (“знизу вгору”),
пакетне, об'єктно-орієнтоване тощо і
відповідно різні прийоми розробки
алгоритму
![Page 4: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/4.jpg)
Спочатку задачу розглядають як єдине ціле. На
кожному етапі розв'язування за необхідності
задачу поділяють на простіші підзадачі, кожну
підзадачу в разі потреби поділяють на ще
простіші, і так діють до тих пір, поки не будуть
одержані такі підзадачі, які легко описуються
вибраною формальною мовою або для
виконання яких вже є відповідні вказівки чи
скінченні впорядковані набори вказівок.
Метод ”зверху вниз”.
![Page 5: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/5.jpg)
Покрокова деталізація
На кожному кроці побудови алгоритму розв'язування задачі в разі потреби уточнюються все нові і нові деталі (відбувається покрокова деталізація), тому цей метод ще називають методом покрокової деталізації.
Метод покрокової деталізації застосовується при будь-якому конструюванні складних об'єктів – поступове заглиблення в деталі конструкції.
![Page 6: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/6.jpg)
![Page 7: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/7.jpg)
Метод “знизу вверх”
Під час побудови алгоритмів
користуються методом ”знизу вверх”,
за яким прості підзадачі послідовно
об'єднують у єдину сукупність підзадач,
що виконуються в певному порядку.
![Page 8: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/8.jpg)
Базові структури алгоритмів
Базові структури алгоритмів –– це способикерування процесами обробки даних. Комбінуючи керуючіструктури, можна складати алгоритми (програми) длярізноманітних задач.
Виділяють три базові алгоритмічні структури:
1. Лінійні алгоритми (слідування).
2. Розгалуження (вибір).
3. Повторення (цикл).
![Page 9: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/9.jpg)
Подається у вигляді послідовності двох (або більше) простих операцій, що виконуються одна за одною
Слідування ( лінійний алгоритм)
Серія команд 1
Серія команд 2
![Page 10: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/10.jpg)
Введення вхідних даних
Початок
Виведення результату
Кінець
Дії
Дії
. . .
С
Е
Р
і
Я
![Page 11: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/11.jpg)
Алгоритм обчислення і виведення значення виразу
Слідування ( лінійний алгоритм)
початок
Ввести a,b,c,d,x
Вивести у
Кінецьy=(ax+b)(cx+d)
Y:=(a*x+b)*(c*x+d)
![Page 12: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/12.jpg)
Обчислити шлях за швидкістю і
часом руху
Словесний запис алгоритму задачі буде таким:
1. Ввести швидкість v і час руху t.
2. Обчислити шлях за формулою
S = v·t .3. Вивести шлях S
![Page 13: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/13.jpg)
Словесний запис алгоритму:
1. Ввести сторони трикутника а, b, с.
2. Обчислити півпериметр трикутника
0.5*(a+b+c)
3. Обчислити площу S за формулою Герона
4. Вивести площу трикутника S.
Запис алгоритму у вигляді блок-схеми буде
таким:
Обчислити площу трикутника за
трьома сторонами
![Page 14: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/14.jpg)
Лінійна структура
Лінійна структура має вигляд:
Алг Коло_Круг
арг R: ціл
рез L, S: дійсн
Поч
Ввести R
L : = 2 R
S : = R2
Вивід L
Вивід S
Кін
Завдання.
Складіть блок-
схему до даної
задачі.
Сформулюйте
умову задачі
![Page 15: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/15.jpg)
Розгалуження
Умовний оператор (опеpатоp умовного
пеpеходу) служить для запису алгоритмiчної
структури розгалуження, тобто дозволяє
вибрати для виконання один з двох операторiв в
залежностi вiд того виконується деяка умова чи
нi.
Iснує дві форми умовного оператора:
- повна;
- коротка
![Page 16: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/16.jpg)
Розгалуження в повній формі
— це галуження, в якому визначені різні дії в разі виконання, і в разі невиконання заданої умови.
![Page 17: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/17.jpg)
Якщо <логічний вираз> то серія1
інакше серія2;
все
Розгалуження в повній формі
![Page 18: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/18.jpg)
Словесний запис алгоритму буде таким:1. Ввести значення коефіцієнтів a, b і c .2. Обчислити дискримінант D.3. Якщо D < 0, то вивести повідомлення «Розв'язку немає»,перехід на кінець алгоритму.4. Обчислити корені x1 і x2
квадратного рівняння.5. Вивести значенняx1 і x2.6. Кінець алгоритму
Побудуємо блок-схему алгоритму розв'язування квадратного рівняння з коефіцієнтами а , b і c.
![Page 19: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/19.jpg)
Розгалуження. Приклад
Приклад.
Алг Task_Max
Арг a, b: ціл;
Рез max: ціл;
Поч
Ввести a;
Ввести b;
якщо a>b то max:=a інакше max:=b;
Вивід max;
Кін
Завдання. Які дії виконає дана програма? Складіть блок-схему
до прикладу.
![Page 20: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/20.jpg)
Неповне галуження— це розгалуження, в
якому дії визначені тільки у разі виконання (або у разі невиконання) заданої умови.
Розвилка також називається, «як-що-то-інакше».
![Page 21: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/21.jpg)
Розгалуження в неповній формі
Якщо <логічний вираз>
то серія;
все
![Page 22: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/22.jpg)
частини алгоритму, які мають
виконуватись повторно або
задане число разів, або за певної
передумови, або до досягнення
певної після умови.
Цикли -
![Page 23: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/23.jpg)
Повторення
а) пiдготовку циклу - задання початкових значень
змiнним циклу перед першим його проходом;
б) тiло циклу - дiї, якi повторюються в циклi для
рiзних значень змiнних циклу;
в) модифiкацiю (змiну) значень змiнних циклу
перед кожним новим його повторенням;
г) керування циклом - перевiрку умови
продовження (або закiнчення) циклу i перехiд на
початок тiла циклу, якщо виконується умова
продовження циклу (або вихiд з циклу при його
закiнченнi).
![Page 24: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/24.jpg)
Типи циклічних алгоритмів
Розрiзняють цикли iз заданим числом
повторень (цикли з параметром) i цикли
з напеpед невiдомим числом повторень
(цикли з передумовою та з пiсляумовою):
1. Цикл-для
2. Цикл-до
3. Цикл-поки
![Page 25: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/25.jpg)
Цикл-для
Вказівка повторення з параметром записується таким чином:
для i:=x1 до xn крок Н
пц
тіло циклу;
кц
і - параметр циклу
х1 - початкове значення параметру
xn - кінцеве значення параметру
H - крок зміни параметру (може набувати значення +1 або -1)
Цикл-для виконується т.ч.: параметру і присвоюється початкове значення
х1. Він порівнюється з кінцевим значенням xn. Якщо х1<=xn, то виконується
цикл. Значення і автоматично змінюється на крок Н і знову порівнюється зі xn і
т.д. Якщо отримуємо, що x1>xn, то цикл не виконується.
![Page 26: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/26.jpg)
![Page 27: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/27.jpg)
Цикл – для (з параметрами)
Цикл з параметрами (цикл з покроковою зміною аргументу) – це цикл, у якому тіло циклу виконується відому кількість разів, що реалізовано через покрокову зміну параметра.
Параметру циклу надається початкове значення, і з ним виконується тіло циклу. Параметр змінюється на заданий крок, і знову виконується тіло циклу, і так, доки параметр не дістане кінцевого значення
ПЦ:=ПЗ; КЗ; К
Серія
![Page 28: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/28.jpg)
Цикл-поки
Поки <умова>
пц
тіло циклу;
кц
Якщо умова істинна то
виконується тіло циклу.
Виконання програми
повертається до перевірки умови
циклу.
Якщо умова хибна, то
виконується вказівка, яка
знаходиться після вказівки з
передумовою
![Page 29: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/29.jpg)
![Page 30: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/30.jpg)
Приклад
Алг Сума;арг N, I: ціл;рез X: дійсн;
ПочВвести N;I:=1; X:=0;
Поки I<=Nпц
X:=X+I;I:=I+1;
кцВивід X;
Кін
Обчислити суму n-
перших натуральних
чисел.
Складемо блок-схему і
алгоритм
![Page 31: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/31.jpg)
![Page 32: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/32.jpg)
![Page 33: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/33.jpg)
Цикл-до
Повторювати
пц
тіло циклу;
кц
до <умова>;
Спочатку виконується тіло
циклу, а пізніше перевіряється
умова. Якщо умова істинна, то
виконання циклу завершується,
якщо ні, то цикл виконується ще
раз і т. д.
![Page 34: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/34.jpg)
![Page 35: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/35.jpg)
ПРАКТИЧНА
ЧАСТИНА
1.Складіть алгоритм обчислення площі та периметра прямокутника
2. Введіть два числа. Виведіть на екран спочатку менше число, а потім
більше
3. Розробити алгоритм знаходження скалярного добутку двох векторів.
![Page 36: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/36.jpg)
ЗАДАЧА № 1 ЗАДАЧА № 2
Початок
КІНЕЦЬ
Початок
Ввести a,b
Вивести S, P
S:=a*b
P:=2*(a+b)
Ввести a,b
a>b
Вивести b,a Вивести a,b
Кінець
НіТак
![Page 37: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/37.jpg)
Базові структури алгоритмів
![Page 38: базовI структури алгоритму урок 4](https://reader030.fdocument.pub/reader030/viewer/2022012405/55a2bf771a28abf93e8b4646/html5/thumbnails/38.jpg)
Повторення. Приклад. Завдання
1. Який вид циклу виконується в даній задачі?
Чому?
2. Визначіть початкові умови циклу
3. Визначіть тіло циклу.
4. Визначіть керуючу змінну циклу.
5. Визначіть крок з яким змінюється лічильник
циклу.
6. Яким буде результат S, якщо n набуде
значення 2; 3; 5; 10; 100?