Курсова робота на тему: «Алгоритми та програми з розгалуженнями» | |
Автор: student | Категория: Естественные науки / Медицина | Просмотров: 2722 | Комментирии: 0 | 02-06-2013 21:31 |
|
Зміст
- 1. Розгалуження програми.
- 2. Оператор безумовного переходу (goto).
- 3. Циклічні програми з розгалуженням.
- 4. Лінійні алгоритми.
- 5. Накопичення сум і добутків.
- 6. Одновимірні масиви.
- 7. Двовимірні масиви.
- 8. Складена команда.
- 9. Обробка текстової інформації.
1. Розгалуження програми.
Кожен алгоритм можна проектувати застосовуючи три базові конструкції: лінійну, розгалуження та циклу.
Розгалуженою називається така алгоритмічна конструкція, яка передбачає у процесі виконання операцій вибір кількох можливих варіантів продовження роботи залежно від результату п6еревірки виконання певних умов.
Розгалужена алгоритмічна конструкція, що складається лише з двох гілок, має назву простої, якщо гілок більше ніж дві – складної.
Розгалуження – це алгоритмічна конструкція, де перевіряється умова (значення логічного виразу), і залежно від її істинності чи хибності виконується та чи інша серія команд. Є такі види розгалужень:
1) повне;
2) неповне;
3) вибір.
а) Неповне розгалуження
реалізується за допомогою команди if (якщо):
Виконання команди: <команда> може бути один оператор або група операторів. Якщо виконується умова (в блок-схемі – вітка “так”), то виконається оператори чи група операторів після слова then. Якщо ж умова не виконується (в блок-схемі – вітка “ні”), то ця команда не буде виконуватися і буде виконуватися наступний після if оператор (команда).
Умова – це логічний вираз, які бувають прості і складені.
1.Логічний вираз – це –засіб записування умов. Логічний вираз може приймати значення істинність або хибність.
Хибному логічному виразу відповідає числове значення 0,а істинному – будь-яке інше число. Бей сік-система істинний логічний вираз позначає числом – 1.
Логічні вирази бувають прості та складні. Простий логічний вираз – це два арифметичні вирази, з’єднані символом відношення (=, >, <, >=, <=, < >), а складений - це прості логічні вирази з’єднані назвами логічних операцій: NOT (не), ANO (і) та OR (або).
б) Повне розгалуження.
Повне розгалуження реалізують за допомогою повної команди розгалуження if.
|
Виконання команди:
Якщо умова виконується (в блок-схемі – вітка “так”), то виконується команда 1 (або серія команд 1), якщо ні – то команда 2 (серія команд 2).
Зауваження. На місці команди 1 та команди 2 може бути теж команда розгалуження if.
Приклад. Визначимо більше число з-поміж двох чисел:
If a>=b then c:=a else c:=b;
де a i b – два числа, а с – проміжна змінна куди заносимо більше з 2-х чисел.
в) Оператор вибору case.
Якщо потрібно здійснити вибір з великої кількості варіантів, зручно використовувати оператор (команду) вибору case:
|
Виконання оператора:
Якщо значення виразу збігається зі значенням з найбільшого списку чи діапазону, то виконується відповідна команда, що записана після двокрапки “:” і на цьому виконання команди case закінчується, якщо ні, то виконується команда після слова else. Складової частини else <команди> може бути.
Задача. У багатьох університетах поточні знання студентів протягом семестру оцінюють за стобальною системою. Потім бали переводять в оцінки: <<відмінно>>,<<добре>>,<<задовільно>>,<<незадовільно>>.
Оцінки визначають так:
Бали Оцінка
88-100 <<відмінно>>
71-87 <<добре>>
50-70 <<задовільно>>
0-49 <<незадовільно>>
2.Оператор безумовного переходу (goto).
Команда переходу GOTO. Для зміни порядку виконання рядків у програмі використовують команду переходу:
GOTO <номер рядка>
Дія команди. Відбувається перехід до рядка з зазначеним номером.
Команда розгалуження IF. Повна форма умовної команди. Команду розгалуження іноді ще називають умовною командою. Вона має дві форми: повну та коротку.
Загальний вигляд повної команди розгалуження такий:
ІF< логічний вираз> THEN <серія 1> ELSE <серія 2>
Для команди. Якщо значення логічного виразу істинне, то виконується серія 1, якщо воно хибне, то виконується серія 2. У бейсику повну форму записують в одному рядку.
Приклад: У результаті виконання команди IF X>O THEN PRINT X ELSE PRINT X на екрані отримаємо значення Х, якщо Х додатне, або – Х в протилежному значенні.
Блок IF-END IF. Повне розгалуження можна реалізувати за допомогою блокової конструкції IF-END IF:
IF<умова>THEN
<серія 1>
ELSE
<серія 2>
END IF
Коротка форма розгалуження має вигляд:
IF <логічний враз> THEN <серія команд>, де серія команд – це одна або декілька команд, які є в одному зі словом IF рядку програми. Команди в серії відокремлюють одну від одної двокрапкою.
Дія команди. Якщо значення логічного виразу істинне, то виконується зазначена серія команд. Якщо логічний вираз хибний, то серія команд ігнорується, і виконується наступний після IF рядок програми.
Команда умовного переходу є частинним випадком короткої форми команди розгалуження. Вона має вигляд IF<логічний вираз> THEN GOTO <номер>.
Дія команди. Якщо значення логічного виразу істинне, то відбувається перехід до зазначеного рядка. Якщо воно хибне, то виконується наступний рядок програми.
Службове слово THEN або GOTO можна не писати. Є дві короткі форми команди:
1) IF<умова> THEN <номер>.
2) IF<умова> GOTO <номер>.
3.Циклічні програми з розгалуженням.
Циклічно навивається така алгоритмічна конструкція, яка передбачає виконання декілька разів однієї й тієї ж послідовності дій.
Керування кількістю повторів циклу здійснюється за допомогою змінної, яка має назву параметра циклу. При кожному повторі циклу значення цієї змінної змінюється на величину, яка називається кроком циклу. Порядок дій що виконується у циклі, називається тілом циклу. Цикл приміняється, коли значення параметру циклу досягає певного значення, за якого забезпечується виконання логічної умови припинення циклу.
Бувають цикли з передумовою, поступовою. Та зпараметром.
Цикл складається з таких трьох етапів:
1) Перевірка умови циклу. Перевіряється умова, яка забезпечує вихід з циклу після досягнення мети. Якщо умова складена неправильно, то можна ніколи не вийти з циклу. Така ситуація називається зациклюванням і її потрібно уникати.
2) Виконання серії команд. Виконується серія команд (основні дії), заради яких конструювали цикл.
3) Зміна значення параметра. Згідно з умовою задачі змінюється значення змінної, яка є в умові. Ця змінна параметром циклу.
Цикл з передумовою. Розглянемо реалізацію цього циклу за допомогою умовної команди переходу:
<N1> IS <логічний вираз> THEN <номер NN+10>
<N2>
<серія команд>
<NN-10>
<NN> GOTO <N1>
<NN+10>...
Для команди. Перевіряється значення логічного виразу. Якщо воно істинне, то робота циклу припиняється, в протилежному випадку виконується команди з номерами N2-NN. Істинний логічний вираз описує умову виходу з циклу.
У циклі з передумовою. Серія команд може виконуватися один або більше разів, але може не виконатися жодного разу. В цьому полягає основна властивість циклу.
Цикл з післяумовою. У цьому циклі серія виконується до перевірки умови хоча б один раз. Це основна властивість цього циклу.
<N1>
<серія команд>
<NN-10>
<NN> IF<логічний вираз> THEN GOTO <N1>
<NN+10>
Команда циклу з параметром (FOR-NEXT). Цикл з параметром (цикл «для») призначений для організації повторень, якщо їх кількість у циклі наперед відома. Мовою Бейсик цикл “для” записують так:
FOR<I>+<A1> TO <A2> STEP <A3>
<серія команд>
NEXT <I>
Команда FOR-TO-STEP утворює заголовок циклу, NEXT- команда, яка фіксує кінець тіла циклу і змінює значення параметра І на величину А3. Тіло циклу – це серія команд, що знаходиться між командами FOR та NEXT.
Змінну І наз. Параметром циклу. А1, А2, А3 – арифметичні вирази, змінні, сталі.
Команда циклу WHILE. Умові Пейсик цей цикл записують так:
WHILE <логічний вираз>
<серія команд>
NEND
Найпоширенішими прикладами застосування циклічних конструкцій різних видів є операції над математичними векторами (скінченими числовими наборами) та матрицями (двомірними масивами чисел): підсумовування, множення, пошук максимального чи мінімального елементів і т.д.
4.Лінійні алгоритми.
Обчислювальний процес називається лінійним (не розгалужуються), якщонапрямок його продовження на будь-якому етапі обчислень єєдиним. Алгоритм лінійного обчислювального процесу описуєдії, послідовність виконання яких не залежить від вихіднихданих і результатів проміжних обчислень, тобто є постійною.
Цей процес є найбільш простим видом обчислень. Лінійний процес
(як і інший обчислювальний процес) можна представити у вигляді наступнихетапів: перший - завдання вихідних даних; другий реалізація обчислень;третє - виведення результатів рахунку і що пояснює інформації. Етапивідображаються на блок-схемі, а потім реалізуються в ПЕОМ у зазначенійпослідовності.
Алгоритм ділення відрізка АВ навпіл:
1) поставити ніжку циркуля в точку А
2) встановити розчин циркуля рівним довжині відрізка АВ
3) провести коло
4) поставити ніжку циркуля в точку В
5) провести коло
6) через точки перетину кіл провести пряму
7) відзначити точку перетину цієї прямої з відрізком АВ
Кожне вказівка алгоритму наказує виконавцю виконати однуконкретне значення дій. Виконавець не може перейти наступноїоперації, не завершивши повністю попередню. Приписи алгоритму требавиконувати послідовно одне за одним, з відповідно до порядку їхзапису. Проходження всім приписами гарантує правильне рішення задачі.
Даний алгоритм абсолютно ясне виконавцю
Блок-схема - алгоритм виражений за допомогою логічних блоків. Блок --схема служить для того, щоб наочніше представляти ті чи інші формиорганізацій дій. Кожна дія алгоритму, крім перевірки умови,будемо розміщати в прямокутник, а питання про те, чи виконується деякийумова, - у ромб. Ще існують: паралелограм, овал, обірваний листок,
- це блок введення даних зклавіатури.
- у цьому блок вказується початок абокінець алгоритму
- це блок виведення даних на друк.
- в цьому блоці містяться діїалгоритму.
- блок в якому містяться умови.
Ось так виглядає блок-схема лінійної функції.
5.Накопичення сум і добутків.
а) Наприклад: Скласти графічний алгоритм і програму для обчислення суми n значень функції.
аргумент Хі лежить в межах 4<=Xi<=8.5 і змінюється з кроком ΔХ=0,45.
Обчислення суми організуємо через обчислення її доданків. За умовою задачі окремі доданки суми зберігати не має потреби, тому кожний обчислений доданок будемо зберігати в одному і тому ж полі пам’яті (комірка Z). Доданки суми будемо обчислювати за однією і тією ж формулою, як значення простої змінної, змінюючи аргумент Хі на величину кроку ΔХ, тобто маємо справу з арифметичним циклом. Очевидно, що сума Z буде також простою змінною і її накопичення буде проходити за рекурентною залежністю.
Отже, заголовок циклу, символ 3, змінює параметр циклу від початкового значення до кінцевого з постійним кроком, а в тілі циклу проводиться обчислення доданків і накопичення суми, символ 4 і б.
Після виконання першого циклу змінна Z повинна приймати значення першого доданку і тому перед циклом змінній Z необхідно присвоїти значення нуль, символ 2.
Програма обчислення суми буде мати такий вид:
10REM програма накопичення суми
20 LET 2=0
30FOR X=4 TO 8.5 STEP 0.45
40 LET Y=(X+1?5)/SOR (X)
50 LET 2=2+4
60 NEXT X
70 PRINT “СУМА”=; Z
80 END
34.5414
б) Скласти графічний алгоритм і програму обчислення добутку:
Тут а, b – елементи відповідних векторів А і В.
Графічний алгоритм обчислення добутку, аналогічний графічному алгоритму обчислення суми.
Обчислення добутку організовується через послідовне обчислення множників. За умовою задачі окремі співмножники добутку зберігати не потрібно, тому кожний співмножник будемо зберігати в одній і тій же комірці пам’яті Z. Очевидно, що співмножники будемо обчислювати за однією і тією ж формулою, як значення змінної, змінюючи параметр циклу і на одиницю.
Програма, яка реалізує цей алгоритм.
10REM програма обчислення добутку
20 DIN A(Б), В(Б)
30FOR І=0 TO 6 INPUT A(I), B(I); NEXT I
40 LET Z=Ф
50 FOR І=0 TO 6
60 LET Y=A (I)*A(I) I (B(I)-навчання; 3) прямокутні таблиці з тільки числовими або тільки текстовими даними, які стосуються A(I))
70 LET Z=Z*Y
80 NEXT I
90 RINT “ДОБУТОК” =; Z; END
4,5
6.Одновимірні масиви.
Масив – це впорядкований скінчений вибір даних одного типу, які зберігаються в послідовно розташованих комірках оперативної пам’яті і мають спільну назву. Назву масиву надає користувач.
Масив складається з елементів. Кожний елемент має індекси, якими його можна знайти в масиві. Кількість індексів елементів визначає розмірність масиву.
Одновимірні масиви. Елемент масиву позначають іменем масиву, а у круглих дужках пишуть значення індексу елемента. Наприклад, К елементів одновимірного масиву А у програмах позначають так:
А(1) А(2)... А(К)
За допомогою одновимірних масивів в операційній пам’яті можна зберігати такі дані: 1) псисько учнів (масив з текстовими елементами); 2) оцінки з класному журналі за контрольні роботи (масив з числовими елементами); 3) координати вектора (масив з елементами числового дійсного типу).
7.Двовимірні масиви.
Двовимірні масиви. Деякі дані зручно наводити у вигляді прямокутної таблиці, якій у Бейсику відповідає поняття двовимірного масиву. Розглянемо прямокутну таблицю В:
b11 b12 … b1n
b21 b22 … b2n
bm1 bm2 … bmn
Елементи двовимірних масивів мають два індекси. Перший вказує на номер рядка, а другий – ні номер стовпця, на перетині яких знаходиться елюент. Індекси записують у круглих дуках і відокремлюють комою.
За допомогою двовимірних масивів в оперативній пам’яті можна зберігати такі дані: 1) текст на сторінці підручника, де кожне слово (символ) розглядаємо як один елемент (масив з елементами текстового типу); 2) оцінки учнів у класному журналі з одного предмету за певний час навчання 3) прямокутні таблиці з тільки числовими або тільки текстовими даними, які стосуються підприємств чи організацій.
Використання одновимірних масивів. Розглянемо способи введення – виведення масивів. Для введення чи виведення масивів потрібно виконати певні дії з усіма елементами масивів за допомогою команд присвоєння, к5оманд READ, INPUT або PRINT, використовуючи команду циклу.
Для введення-виведення двовимірних масивів і виконання інших операцій з його елементами використовують конструкцію “вкладені цикли”.
FOR<I>=<H>TO <12>
FOR <I>=<I1> TO <S2>
<серія команд>
NEXT <I>
8. Складена команда.
Складена команда – це команда, в якій декілька команд об’єднано в одну за допомогою службових слів begin та end:
|
Задача. Скласти програму, яка дає довідку про назву столиці (St) та кількість населення (nas, у мільйонах) деякої країни (kr) з такого переліку: Угорщина, Італія, Україна.
program Countries;
var kr, st: string; nas: integer;
begin
write (‘Введіть назву країни’);
readln (kr);
if kr = ‘Угорщина’ then
begin
st:= ‘Будапешт’;
nas:=11
end;
if kr = ‘Італія’ then
begin
st:= ‘Рим’;
nas:=60
end;
if kr = ‘Україна’ then
began
st:= ‘Київ’;
nas:= 48
end;
writeln (‘Столиця - ’, st, ‘населення-’, nas, ‘млн осіб’)
end.
9.Обробка текстової інформації.
Загалом, уся текстова інформація, що обробляється комп’ютером, міститься у текстових документах. Світ текстових документів розмаїтий – це не лише книги чи преса, а й інструкції, оголошення та інше.
Основні вимоги для програмного засобу, які визначають його призначення як текстового редактора: наявність методів вводу текстової інформації, можливість пересування по тексту, наявність базових операцій редагування тексту (виділення, копіювання, переміщення, вилучення, пошуку та зміни тексту); можливість збереження результатів роботи та отримання твердої колії текстового документа.
Під текстовим процесором розуміємо прикладну програму яка, окрім базового набору роботи з текстом, володіє додатковими можливостями, такими як форматування тексту, перевірка правопису, перенос слів, встановлення ілюстрацій та інше.
Із найпоширеніших текстових процесорів є Місrocoft Word, який надає великі можливості користувачам різного рівня та кваліфікації.
Доступ до всіх функцій програми можна отримати через її головне меню. Воно містить дев’ять пунктів: Файл, Правка, Вид, Вставка, Формат, Сервіс, Таблиця, Окно, (Неlp).
Список літератури:
1)Я.М. Глинський. Інформатика. Алгоритмізація і програмування.
2)Томас Кормен. Алгоритми. Побудова та аналіз.
3) Віленкін Н.Я., "Функції у природі й техніці",