Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекція_Мови програмування_Алгоритми

.doc
Скачиваний:
15
Добавлен:
05.02.2016
Размер:
179.2 Кб
Скачать

3. Логічне "або".

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

Обчислення складених умов виконується з урахуванням розставлених дужок і пріоритету операцій.

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

Далі виконуються операції "не".

Далі виконуються операції "і".

Нижчий пріоритет у операцій "або", вони виконуються останніми.

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

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

<змінна> := <вираз>

Команда присвоювання виконується за правилом: обчислюється значення <виразу>, здобуте значення надається <змінній>.

Для опису розгалужень у алгоритмічній мові застосовується команда розгалуження.

Відповідно до двох форм базової алгоритмічної структури розгалуження — повної та короткої існують і дві форми команди розгалуження — повна та коротка.

Повна форма:

якщо <умова>      то <серія команд 1>      інакше <серія команд 2>

Принцип роботи: якщо <умова> виконується, то виконується <серія команд 1>, у протилежному випадку — <серія команд 2>.

Коротка форма команди розгалуження:

якщо <умова>     то <серія команд>

Принцип роботи: якщо виконується <умова>, то <серія> виконується (тобто, якщо умова не виконується, то виконується команда, яка в алгоритмі стоїть після розгалуження).

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

Команда розгалуження відноситься до так званих складених команд, бо до її складу можуть входити інші команди.

Для зручного запису розгалужень з багатьма альтернативами до алгоритмічної мови введено команду вибору. Існують дві форми команди вибору: повна і коротка.

Повна форма має вигляд:

вибір     при <умова 1> : <серія команд 1>     при <умова 2> : <серія команд 2>     ...     при <умова Н> : <серія команд Н>     інакше <серія команд інакше> кв

Принцип роботи: в команді вибору виконується лише одна серія — найперша за порядком, для якої умова виконуватиметься. Деякі умови можуть навіть збігатися — в цьому івипадку серія, яка стоїть нижче, не виконається ніколи. Якщо не виконується жодна умова, то виконується серія команд, яка стоїть після слова інакше.

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

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

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

Команда повторення з передумовою записується таким чином:

поки <умова>     <серія команд>

Принцип роботи:

Перевіряється <умова>; якщо вона виконується, то виконується <серія команд> і здійснюється повернення до перевірки <умови>. Якщо <умова> виявляється невиконаною, відбувається вихід з повторення. Оскільки <умова> перевіряється до початку виконання <серії команд>, вона може не виконуватися жодного разу.

<Серія команд> називається тілом циклу. Якщо серія містить більше однієї команди, їх потрібно поставити між словами пс та кс.

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

Команда повторення з післяумовою записується таким чином:

повторювати     <група команд> доти <умова>

Принцип роботи:

Виконується <група команд>, після чого перевіряється <умова>. Якщо <умова> виконується, відбувається вихід з повторення, інакше — повернення до виконання <групи команд>.

Оскільки <умова> перевіряється після виконання <групи команд>, група буде виконана хоча б один раз.

Тілом циклу є група команд (а не серія), і її не потрібно брати в слова пс та кс.

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

Команда повторення з лічильником записується таким чином:

для <змінна> від <ПЗ> до <КЗ> крок <КР> <серія команд>

<Змінна> — це змінна цілого або натурального типу даних, вона називається лічильником циклу; ПЗ (початкове значення) і КЗ (кінцеве значення) — величини відповідного типу.

Принцип роботи:

<Серія команд> (тіло циклу) виконується для всієї послідовності значень лічильника циклу від початкового до кінцевого включно з кроком КР. Отже, перший раз значення <змінної> дорівнює ПЗ, другий — ПЗ+КР, третій — ПЗ+2КР і так далі до КЗ.

Для додатних значень КР значення ПЗ має бути меншим за значення КЗ, для від'ємних КР — навпаки. Слово крок разом з величиною КР можна не записувати зовсім, якщо величина кроку дорівнює 1.

Якщо <серія команд> містить більше однієї команди, їх потрібно брати в слова пс та кс.

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

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

<Ім'я алгоритму> (<список параметрів алгоритму>)

<Список параметрів алгоритму> — це набір величин, які відповідають аргументам та результатам допоміжного алгоритму. Параметри відокремлюються один від одного комами. Для аргументів параметри можуть бути змінними або константами, для результатів — обов'язково змінними.

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

Для збереження та обробки великої кількості даних в алгоритмічній мові введено спеціальний тип даних — таблиця.

Таблиця у алгоритмічній мові — це сукупність даних одного типу.

Змінні табличного типу підкоряються тим самим правилам, що й інші змінні, та описуються у вигляді:

<тип даних> таб <ім'я таблиці>[ПЗ:КЗ],

де <тип даних> — це тип змінних, які складають таблицю;

<ім'я таблиці> створюється за тими ж правилами, що й імена в алгоритмічній мові;

ПЗ — це номер першої змінної таблиці, КЗ — номер останньої змінної (тобто загалом таблиця матиме КЗ-ПЗ+1 елемент).

Величини такого типу даних називають ще лінійними таблицями.

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

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

Змінні типу двомірна таблиця описуються у вигляді:

<тип даних> таб <ім'я таблиці>[ПЗ1:КЗ1, ПЗ2:КЗ2]

де ПЗ1:КЗ1 — це діапазон зміни номеру рядка, а ПЗ2:КЗ2 — діапазон номера стовпця (тобто загалом таблиця буде мати (КЗ1-ПЗ1+1) (КЗ2-ПЗ2+1) елемент).

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

Мова програмування — це штучна мова, призначена для написання програм для комп'ютера.

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

Існує два типи програм-посередників (інколи їх ще називають трансляторами), які працюють із вхідним текстом: компілятори та інтерпретатори.

Програма-компілятор (від англ. compile — складати, збирати) перекладає вхідний текст на машинний код і записує його на диск у формі exe-файла.

Програма-інтерпретатор завжди працює спільно з вхідним текстом. Вона розбирає кожну інструкцію вхідного тексту (інтерпретує її) і негайно виконує (при цьому файл у машинних кодах не створюється).

Мови програмування можна умовно поділити на мови високого і низького рівнів.

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

Для будь-якого процесора мовою найнижчого рівня є мова асемблера. У кожного типу процесорів своя мова асемблера, тому програми, написані асемблером на одному комп'ютері, можуть зовсім на працювати на іншому. За допомогою мов програмування низького рівня створюються дуже ефективні програми (з точки зору швидкості та розміру). Можна навіть вважати, що чим нижче рівень мови програмування, тим програми на ньому ефективніші.

Мовою програмування високого рівня (машинно-неорієнтованою) вважається мова, яка майже не враховує особливостей конкретного процесора. Звичайно програми, написані на мові високого рівня, можна використовувати на будь-якому комп'ютері. Недоліком цих мов є дещо низька ефективність їх програм у порівнянні з програмами мови низького рівня. Прикладами мов високого рівня можуть бути мови АЛГОЛ, ФОРТРАН, ПЛ/1, Паскаль, Сі, АДА тощо. Усі мови мають своїх прихильників і сьогодні. Наприклад, мова ФОРТРАН є однією з найбільш давніх і простих мов програмування. Ця обставина, а також доступність трансляторів, порівняно висока ефективність компіляції об'єктних програм і наявність великої кількості прикладних програм дозволили їй зайняти свою нішу в деяких галузях науки і техніки. Однак у мові ФОРТРАН не передбачений розвиток структури даних, не дозволені рекурсивні звертання до підпрограм, відсутній суворий опис мови. Тому з основної маси галузей її витіснили такі мови, як Паскаль та Сі.

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

Алфавіт мови програмування — це набір символів, які дозволяється використовувати при написанні програм і які сприймаються компілятором.