Upload
-
View
295
Download
4
Embed Size (px)
Citation preview
Базові структури
алгоритму
Що означає побудувати алгоритм?
1
• Здійснити аналіз запропонованого завдання, предметної області чи інформаційної моделі, визначити проблему тощо
2
• Продумати план майбутньої діяльності щодо розв'язування завдання, вирішення проблеми чи досягнення поставленої мети
3• Зафіксувати його за допомогою деякої системи
позначень, так званою формальною мовою
Побудова алгоритму
Для розв'язування задач за
допомогою комп'ютера існують різні
технології програмування, наприклад,
низхідне програмування (“зверху
донизу”), висхідне (“знизу вгору”),
пакетне, об'єктно-орієнтоване тощо і
відповідно різні прийоми розробки
алгоритму
Спочатку задачу розглядають як єдине ціле. На
кожному етапі розв'язування за необхідності
задачу поділяють на простіші підзадачі, кожну
підзадачу в разі потреби поділяють на ще
простіші, і так діють до тих пір, поки не будуть
одержані такі підзадачі, які легко описуються
вибраною формальною мовою або для
виконання яких вже є відповідні вказівки чи
скінченні впорядковані набори вказівок.
Метод ”зверху вниз”.
Покрокова деталізація
На кожному кроці побудови алгоритму розв'язування задачі в разі потреби уточнюються все нові і нові деталі (відбувається покрокова деталізація), тому цей метод ще називають методом покрокової деталізації.
Метод покрокової деталізації застосовується при будь-якому конструюванні складних об'єктів – поступове заглиблення в деталі конструкції.
Метод “знизу вверх”
Під час побудови алгоритмів
користуються методом ”знизу вверх”,
за яким прості підзадачі послідовно
об'єднують у єдину сукупність підзадач,
що виконуються в певному порядку.
Базові структури алгоритмів
Базові структури алгоритмів –– це способикерування процесами обробки даних. Комбінуючи керуючіструктури, можна складати алгоритми (програми) длярізноманітних задач.
Виділяють три базові алгоритмічні структури:
1. Лінійні алгоритми (слідування).
2. Розгалуження (вибір).
3. Повторення (цикл).
Подається у вигляді послідовності двох (або більше) простих операцій, що виконуються одна за одною
Слідування ( лінійний алгоритм)
Серія команд 1
Серія команд 2
Введення вхідних даних
Початок
Виведення результату
Кінець
Дії
Дії
. . .
С
Е
Р
і
Я
Алгоритм обчислення і виведення значення виразу
Слідування ( лінійний алгоритм)
початок
Ввести a,b,c,d,x
Вивести у
Кінецьy=(ax+b)(cx+d)
Y:=(a*x+b)*(c*x+d)
Обчислити шлях за швидкістю і
часом руху
Словесний запис алгоритму задачі буде таким:
1. Ввести швидкість v і час руху t.
2. Обчислити шлях за формулою
S = v·t .3. Вивести шлях S
Словесний запис алгоритму:
1. Ввести сторони трикутника а, b, с.
2. Обчислити півпериметр трикутника
0.5*(a+b+c)
3. Обчислити площу S за формулою Герона
4. Вивести площу трикутника S.
Запис алгоритму у вигляді блок-схеми буде
таким:
Обчислити площу трикутника за
трьома сторонами
Лінійна структура
Лінійна структура має вигляд:
Алг Коло_Круг
арг R: ціл
рез L, S: дійсн
Поч
Ввести R
L : = 2 R
S : = R2
Вивід L
Вивід S
Кін
Завдання.
Складіть блок-
схему до даної
задачі.
Сформулюйте
умову задачі
Розгалуження
Умовний оператор (опеpатоp умовного
пеpеходу) служить для запису алгоритмiчної
структури розгалуження, тобто дозволяє
вибрати для виконання один з двох операторiв в
залежностi вiд того виконується деяка умова чи
нi.
Iснує дві форми умовного оператора:
- повна;
- коротка
Розгалуження в повній формі
— це галуження, в якому визначені різні дії в разі виконання, і в разі невиконання заданої умови.
Якщо <логічний вираз> то серія1
інакше серія2;
все
Розгалуження в повній формі
Словесний запис алгоритму буде таким:1. Ввести значення коефіцієнтів a, b і c .2. Обчислити дискримінант D.3. Якщо D < 0, то вивести повідомлення «Розв'язку немає»,перехід на кінець алгоритму.4. Обчислити корені x1 і x2
квадратного рівняння.5. Вивести значенняx1 і x2.6. Кінець алгоритму
Побудуємо блок-схему алгоритму розв'язування квадратного рівняння з коефіцієнтами а , b і c.
Розгалуження. Приклад
Приклад.
Алг Task_Max
Арг a, b: ціл;
Рез max: ціл;
Поч
Ввести a;
Ввести b;
якщо a>b то max:=a інакше max:=b;
Вивід max;
Кін
Завдання. Які дії виконає дана програма? Складіть блок-схему
до прикладу.
Неповне галуження— це розгалуження, в
якому дії визначені тільки у разі виконання (або у разі невиконання) заданої умови.
Розвилка також називається, «як-що-то-інакше».
Розгалуження в неповній формі
Якщо <логічний вираз>
то серія;
все
частини алгоритму, які мають
виконуватись повторно або
задане число разів, або за певної
передумови, або до досягнення
певної після умови.
Цикли -
Повторення
а) пiдготовку циклу - задання початкових значень
змiнним циклу перед першим його проходом;
б) тiло циклу - дiї, якi повторюються в циклi для
рiзних значень змiнних циклу;
в) модифiкацiю (змiну) значень змiнних циклу
перед кожним новим його повторенням;
г) керування циклом - перевiрку умови
продовження (або закiнчення) циклу i перехiд на
початок тiла циклу, якщо виконується умова
продовження циклу (або вихiд з циклу при його
закiнченнi).
Типи циклічних алгоритмів
Розрiзняють цикли iз заданим числом
повторень (цикли з параметром) i цикли
з напеpед невiдомим числом повторень
(цикли з передумовою та з пiсляумовою):
1. Цикл-для
2. Цикл-до
3. Цикл-поки
Цикл-для
Вказівка повторення з параметром записується таким чином:
для i:=x1 до xn крок Н
пц
тіло циклу;
кц
і - параметр циклу
х1 - початкове значення параметру
xn - кінцеве значення параметру
H - крок зміни параметру (може набувати значення +1 або -1)
Цикл-для виконується т.ч.: параметру і присвоюється початкове значення
х1. Він порівнюється з кінцевим значенням xn. Якщо х1<=xn, то виконується
цикл. Значення і автоматично змінюється на крок Н і знову порівнюється зі xn і
т.д. Якщо отримуємо, що x1>xn, то цикл не виконується.
Цикл – для (з параметрами)
Цикл з параметрами (цикл з покроковою зміною аргументу) – це цикл, у якому тіло циклу виконується відому кількість разів, що реалізовано через покрокову зміну параметра.
Параметру циклу надається початкове значення, і з ним виконується тіло циклу. Параметр змінюється на заданий крок, і знову виконується тіло циклу, і так, доки параметр не дістане кінцевого значення
ПЦ:=ПЗ; КЗ; К
Серія
Цикл-поки
Поки <умова>
пц
тіло циклу;
кц
Якщо умова істинна то
виконується тіло циклу.
Виконання програми
повертається до перевірки умови
циклу.
Якщо умова хибна, то
виконується вказівка, яка
знаходиться після вказівки з
передумовою
Приклад
Алг Сума;арг N, I: ціл;рез X: дійсн;
ПочВвести N;I:=1; X:=0;
Поки I<=Nпц
X:=X+I;I:=I+1;
кцВивід X;
Кін
Обчислити суму n-
перших натуральних
чисел.
Складемо блок-схему і
алгоритм
Цикл-до
Повторювати
пц
тіло циклу;
кц
до <умова>;
Спочатку виконується тіло
циклу, а пізніше перевіряється
умова. Якщо умова істинна, то
виконання циклу завершується,
якщо ні, то цикл виконується ще
раз і т. д.
ПРАКТИЧНА
ЧАСТИНА
1.Складіть алгоритм обчислення площі та периметра прямокутника
2. Введіть два числа. Виведіть на екран спочатку менше число, а потім
більше
3. Розробити алгоритм знаходження скалярного добутку двох векторів.
ЗАДАЧА № 1 ЗАДАЧА № 2
Початок
КІНЕЦЬ
Початок
Ввести a,b
Вивести S, P
S:=a*b
P:=2*(a+b)
Ввести a,b
a>b
Вивести b,a Вивести a,b
Кінець
НіТак
Базові структури алгоритмів
Повторення. Приклад. Завдання
1. Який вид циклу виконується в даній задачі?
Чому?
2. Визначіть початкові умови циклу
3. Визначіть тіло циклу.
4. Визначіть керуючу змінну циклу.
5. Визначіть крок з яким змінюється лічильник
циклу.
6. Яким буде результат S, якщо n набуде
значення 2; 3; 5; 10; 100?