ПЛАН
Вступ.......................................................................................................................2Розділ I. Основні логічні конструкції в системі програмування Турбо Паскаль..................................................................................................................3 1.1. Основи створення комп’ютерних технологій та комп’ютера……………….3
1.2.Основні команди мови програмування Турбо Паскаль…………………...….7 1.3.Використання функцій і процедур мови Турбо Паскаль………………………9 1.3.1.Процедури та функції………………………………………………………………………..9 1.3.2. Алгоритм…..........................................................................................14Розділ II. Постанова і рішення задач у середовищі системи Турбо Паскаль……………………………………………………………………………………………………………17 2.1.Лінійні програми……………………………………………………………………………….17 2.2.Умовний оператор…………………………………………………………………………….19
Розділ III. Висновок……………………………………………………………………………………….24 Список використаної літератури…………………………………………………………..25
ВСТУП Інформатика - наукова дисципліна, що вивчає структуру і загальні властивості інформації, а також закономірності всіх процесів обміну інформацією при безпосередньому усному та письмовому спілкуванні фахівців до формальних процесів обміну за допомогою різних носіїв інформації. Значну частину цих процесів складає науково-інформаційна діяльність по збору, переробки, зберігання, пошуку та поширення інформації. Актуальність курсової роботи на тему «Теоритичні основи програмування на мові Турбо Паскаль» зумовлена широким впровадженням комп'ютерних технологій в усі сфери діяльності людини. Об'єктом курсової роботи є процес впровадження нових інформаційних технологій у сферу науки і освіти. Предметом курсового дослідження є освоєння процесу розв'язання задач за допомогою мови програмування Турбо Паскаль. Метою курсової роботи є вивчення повного спектру функціональних можливостей мови програмування Паскаль для вирішення завдань. Гіпотеза курсового проектування полягає в наступному. Оволодіння повним спектром функціональних можливостей мови програмування Паскаль сприяє підвищенню ефективності вирішення завдань. Завданнями курсової роботи є:
1) освоєння повного спектра функціональних можливостей мови програмування Турбо Паскаль;
2) постановка і вирішення завдань традиційним способом;
3) рішення задач механіки у середовищі мови програмування Турбо Паскаль.
Методами, якими вирішуються завдання курсового дослідження, є:
1) теоретичний аналіз науково-технічної літератури з мови програмування Турбо Паскаль;
2) математичне моделювання задач;
3) комп'ютерне рішення задач.Практична значимість виконаної курсової роботи на тему «Теоритичні основи програмування на мові Турбо Паскаль» полягає в тому, що кожен користувач комп'ютера, вирішуючи завдання статики, кінематики і динаміки зможе користуватися вільно запропонованими в роботі методиками.
РОЗДІЛ I. ОСНОВНІ ЛОГІЧНІ КОНСТРУКЦІЇ У СИСТЕМІ ПРОГРАМУВАННЯ ПАСКАЛЬ. 1.1. ОСНОВИ СТВОРЕННЯ КОМП’ЮТЕРНИХ ТЕХНОЛОГІЙ ТА КОМП’ЮТЕРА.Під інформаційною (комп’ютерною) технологією розуміють сукупністьзасобів і методів збору, реєстрації, обробки і доведення до користувача інформації в системах організаційного управління.Усі інформаційні технології мають грунтуватися на однакових принципах.
Найважливішими серед них є такі:
1. Зручність виконання операцій для користувача.
2. Мінімальні витрати ручної праці, пов’язані з обробкою інформації.
3. Можливість перевірки повноти та коректності розрахунків на ЕОМ.
4. Мінімальні витрати часу при потребі поновити інформацію в разі її
втрати (коли навмисне чи ненавмисне пошкоджено або знищено інформацію).
5. Забезпечення захисту інформації від несанкціонованого доступу.
Iнформаційні технології в своєму розвитку пройшли кілька етапів — від
ручної інформаційної технології до комп’ютерної. Сучасні інформаційні
технології організаційно реалізовані у двох варіантах:
1. Централізована обробка інформації.
2. Розподілена обробка інформації.
Для сучасних інформаційних технологій характерне використання АРМ.
Технологія обробки на АРМ має свої особливості і відмінності від
централізованої обробки інформації.
В умовах централізованої обробки є спеціально підготовлені працівники,
до функцій яких належить лише обробка інформації. Кожний такий працівник
не є фахівцем у предметній галузі, але може виконувати штучні додаткові
дії, пов’язані із забезпеченням достовірності даних. За таких умов
технологічні операції виконують у чітко заданій послідовності, починаючи
з прийому інформації і закінчуючи передачею результатних зведень замовнику.В умовах розподіленої обробки інформації (найчастіше вона реалізується у
вигляді автоматизованих робочих місць — АРМ) інформацію обробляють
працівники функціональних підрозділів підприємства. Обробка інформації
не є їхнім головним завданням, тому технології притаманні гнучкість,
можливість переривання технологічного процесу після закінчення окремих
дій, зручність для користувача мати змогу виконувати окремі операції. Це
призводить до того, що в умовах АРМ не використовуються деякі традиційні
для централізованої обробки технологічні операції. У технологічному
процесі чітка послідовність операцій звичайно не задається, хоча деякі,
пов’язані між собою операції, можуть виконуватися примусово.Електро́нна обчи́слювальна маши́на (скорочено ЕОМ) — загальна назва для обчислювальних машин, що є електронними (починаючи з перших лампових машин, включаючи напівпровідникові тощо) на відміну від електромеханічних (на електричних реле тощо) та механічних обчислювальних машин.Автоматизо́ване робо́че мі́сце (скорочено АРМ) — індивідуальний комплекс технічних і програмних засобів, що призначений для автоматизації професійної праці фахівця і забезпечує підготовку, редагування, пошук і видачу на екран і друк необхідних йому документів і даних.Комп'ютерКомп'ютер (від англ. computer; лат. computator — обчислювач, лат. computatrum — рахувати, МФА: [kəmpjuː.Tə(ɹ)][1]) — програмно-керований пристрій для обробки інформації. Конструктивно це може бути механічний або немеханічний (електронний) пристрій, призначений для проведення обчислень, які можуть відбуватися дискретно або безперервно у часі. У вузькому значенні — електронний цифровий програмований пристрій (електронна обчислювальна машина) для проведення обчислень заздалегідь визначеним алгоритмом. Наразі практично всі існуючі на сьогодні комп'ютери є електронно-обчислювальними машинами.Термін «комп'ютер» і абревіатура «ЕОМ», прийнята в українській науковій та технічній літературі, є синонімами.
Комп'ютер як електронна обчислювальна машина (скор. ЕОМ) — є обчислювальною машиною, яка побудована з використанням електронних пристроїв як функціональних елементів. Термін використовується щоб показати відмінність від історичного попередника — механічної обчислювальної машини. На даний час словосполучення «електронна обчислювальна машина» майже витіснене з побутового вжитку.
Абревіатура «ЕОМ» використовується як правовий термін в юридичних документах, інженерами цифрової електроніки, також в історичному сенсі — для позначення комп'ютерної техніки 1940-1980-х років, і для позначення великих обчислювальних пристроїв, на відміну від персональних.
Також зустрічається застарілий термін «ЦОМ» — «цифрова обчислювальна машина» на противагу «АОМ» — «аналогова обчислювальна машина».За допомогою обчислень комп'ютер здатний обробляти інформацію за певним алгоритмом. Розв'язання будь-якої задачі для комп'ютера є послідовністю обчислень.Фізично комп'ютер може функціонувати за рахунок переміщення будь-яких механічних частин, руху електронів, фотонів, або за рахунок використання ефектів будь-яких інших фізичних явищ.
Архітектура комп'ютерів може змінюватися в залежності від типу розв'язуваних задач. Оптимізація архітектури комп'ютера проводиться з метою максимально реалістично математично моделювати досліджувані фізичні (або інші) явища. Так, електронні потоки можуть використовуватися як моделі потоків води при комп'ютерному моделюванні (симуляції — computing simulation) дамб, гребель або кровотоку в людському мозку. Подібним чином сконструйовані аналогові комп'ютери були звичними у 1960-х роках, однак сьогодні стали досить рідкісним явищем.
Для більшості сучасних комп'ютерів проблему спочатку слід описати у зрозумілому їм вигляді — при цьому вся необхідна інформація, як правило, розміщується у пам'яті комп'ютера у двійковій формі, після чого дії з її обробки зводяться до застосування простої алгебри логіки. Оскільки практично вся математика може бути зведена до виконання булевих операцій, досить швидкий електронний комп'ютер може бути застосовний для вирішення більшості математичних задач, а також і більшості завдань з обробки інформації, які можуть бути зведені до математичних.
Було виявлено, що комп'ютери можуть вирішити не будь-яку математичну задачу. Вперше завдання, які не можуть бути вирішені за допомогою комп'ютерів, були описані англійським математиком Аланом Тюрінгом.
Результат виконаної роботи може бути представлено користувачеві за допомогою різних пристроїв введення-виведення інформації — у вигляді візуального зображення на екрані монітора, роздруковано на папері за допомогою принтера або будь-яким іншим доступним способом.Невелика Історія появи комп'ютерів1941 рік — Конрад Цузе створює обчислювальну машину Z3, що мала всі властивості сучасного комп'ютера.
1942 рік — в Університеті штату Айова (англ. Iowa State University) Джон Атанасов (англ. John Atanasoff) та його аспірант Кліффорд Беррі (англ. Clifford Berry) створили (а точніше — розробили та почали монтувати) першу в США електронну цифрову обчислювальну машину (англ. Atanasoff-Berry Computer — ABC (обчислювальна машина)). Хоча ця машина так і не була завершена (Атанасов пішов у діючу армію), вона, як пишуть історики, мала великий вплив на Джона Моклі, який створив через два роки першу ЕОМ ENIAC.
На початку 1943 року успішні випробування пройшла перша американська обчислювальна машина Марк I, призначена для виконання складних балістичних розрахунків ВМФ США.
В кінці 1943 року запрацювала англійська обчислювальна машина спеціального призначення «Колосс». Машина працювала над розшифровкою секретних кодів нацистської Німеччини.
В 1944 році Конрад Цузе розробив ще більш швидку обчислювальну машину Z4.1946 став роком створення першої універсальної електронної цифрової обчислювальної машини ENIAC.
В 1950 році в Києві під керівництвом академіка Лебедєва була створена перша в континентальній Європі ЕОМ — МЕСМ.Більшість сучасних обчислювальних машин мають блочно-модульну конструкцію: апаратну конфігурацію, необхідну для виконання певних робіт, можна складати з готових вузлів та блоків.Системний блок являє собою основний вузол, у якому зібрані найбільш важливі компоненти персонального комп'ютера. Основною компонентою є материнська плата, яка є своєрідним «фундаментом» для всіх комплектуючих комп'ютера. Саме в неї вставляються всі основні пристрої: відеокарта, оперативна пам'ять, процесор, жорсткі диски тощо. Інакше кажучи, це платформа, на якій будується вся конфігурація комп'ютера. На ній розміщені: центральний процесор;шини — системи передачі даних та сигналів керування;оперативна пам'ять — набір мікросхем, призначених для зберігання даних під час їх безпосереднього опрацювання;
постійна пам'ять — мікросхеми, призначені для постійного зберігання інформації, у тому числі і за вимкненого живлення.У зв'язку з тим, що багато компонентів можуть бути інтегровані на материнській платі, то не всі вони можуть бути представлені як окремі комплектуючі елементи, прикладом можуть бути плати із вмонтованими звуковою і відеокартами..Центральний процесор (Central processing unit) — функціональна частина ЕОМ, що призначена для інтерпретації команд програми, керування пристроями комп’ютера та виконання арифметичних і логічних операцій над даними. Як правило, це компактний напівпровідниковий пристрій, що вставляється в гніздо на материнській платі.За числом процесорів, що складають центральний процесор, розрізняють однопроцесорні й багатопроцесорні (мультипроцесорні) материнські плати.
1.2. ОСНОВНІ КОМАНДИ МОВИ ПРОГРАМУВАННЯ ПАСКАЛЬ Оператори введення і виведення
У даному розділі розглянемо організацію введення і виведення даних з термінального пристрою. Термінальний пристрій - це пристрій, з яким працює користувач, як правило це клавіатура й екран (дисплей).
Введення данихДля введення вихідних даних найчастіше використовується процедура ReadLn: ReadLn(A1,A2,...AK);
Процедура робить читання K значень вихідних даних і надає (присвоює) ці значення змінним А1, А2, ..., АК.При введенні вихідних даних відбувається перетворення з зовнішньої форми представлення у внутрішню, яка, в свою чергу, визначається типом змінних. Змінні, що утворюють список введення, можуть належати або до цілого, або до дійсного, або до символьного типу. Читання вихідних даних логічного типу в мові Паскаль неприпустимо.Значення вихідних даних можуть відокремлюватися один від одного пробілами і натисканням клавіш табуляції, а також клавіші Enter.
Числа, що вводяться, не можна розділяти комами.
Виведення данихДля виведення результатів роботи програми на екран використовуються процедури:Write(A1,A2,...AK);WriteLn(A1,A2,...AK);
Перший з цих операторів здійснює вивід значень змінних А1, А2, ..., АК в один рядок на екрані. Другий оператор, на відміну від першого, не тільки здійснює вивід на екран певного рядку, але й переносить курсор вводу на наступний рядок екрану. Якщо процедура writeln використовується без параметрів, то вона просто здійснить перенесення курсору на наступний рядок.
Змінні, що складають список виводу, можуть відноситися до цілого, дійсного, символьного чи булевого типів. В якості елемента списку виведення крім імен змінних можуть використовуватися вирази й рядки.
Форма подання значень у полі виводу відповідає типу змінних та виразів: величини цілого типу виводяться як цілі десяткові числа, дійсного типу - як дійсні десяткові числа з десятковим порядком, символьного типу і рядки - у вигляді символів, логічного типу - у виді логічних констант TRUE і FALSE.
Оператор виводу дозволяє встановити ширину поля виводу для кожного елемента списку виводу. У цьому випадку елемент списку виводу має вид А:К, де А - вираз чи рядок, К - вираз або константа цілого типу. Якщо значення, що виводиться, займає в полі виводу менше позицій, ніж К, то перед цим значенням проставляються пробіли. Якщо виведене значення не вміщається в ширину поля К, то для цього значення додатково буде відведена необхідна кількість позицій.
Для величин дійсного типу елемент списку висновку може мати вигляд А:К:М, де А - змінна чи вираз дійсного типу, К - ширина поля виводу, М - число цифр дробової частини значення, яке виводиться. К і М – це вирази чи константи цілого типу. У цьому випадку дійсні значення виводяться у формі десяткового числа з фіксованою комою.
Приклад запису операторів виводу:
var rA, rB: Real;
iP,iQ:Integer;
bR, bS: Boolean;
chT, chV, chU, chW: Char;
begin
. . .
WriteLn(rA, rB:10:2);
WriteLn(iP, iQ:8);
WriteLn(bR, bS:8);
WriteLn(chT, chV, chU, chW);
end.
1.3. ВИКОРИСТАННЯ ФУНКЦІЙ І ПРОЦЕДУР МОВИ ТУРБО ПАСКАЛЬ
1.3.1.Процедури та функції
У мові Паскаль, як і в більшості мов програмування, передбачені засоби, що дозволяють оформлювати допоміжний алгоритм як підпрограму. Це буває необхідно тоді, коли який-небудь підалгоритм неодноразово повторюється в програмі або ж є можливість використовувати деякі фрагменти вже розроблених раніше алгоритмів. Крім того, підпрограми застосовуються для розбиття великих програм на окремі смислові частини відповідно до модульного принципу в програмуванні.Для використання підалгоритму в якості підпрограми йому необхідно привласнити ім'я і описати алгоритм за правилами мови Паскаль. Надалі, при необхідності викликати його в програмі, роблять виклик підпрограми вказуючи в потрібному місці імені відповідного підалгоритму зі списком вхідних і вихідних даних. Такий запис призведе до виконання вхідних в підпрограму операторів, що будуть працювати із зазначеними даними. Після виконання підпрограми програма продовжує роботу з тієї команди, яка безпосередньо слідує за викликом підпрограми.
У мові Паскаль є два види підпрограм - процедури та функції.
Процедури і функції розміщують в розділі описів програми. Для обміну інформацією між процедурами і функціями і іншими блоками програми існує механізм вхідних і вихідних параметрів. Вхідними параметрами називають величини, які передаються із блоку викликів до підпрограми (вихідні дані для підпрограми), а вихідними – ті, що передаються з підпрограми до блоку викликів (результат роботи підпрограми).
Одна і та ж підпрограма може викликатися неодноразово, виконуючи одні і ті ж дії з різними наборами вхідних даних. Параметри, що використовуються під час запису тексту підпрограми в розділ описів, називають формальними, а ті, що використовуються під час її виклику - фактичними.
Опис і виклик процедур і функційСтруктура опису процедур і функцій деякою мірою схожа на структуру Паскаль-програми: у них також є заголовок, розділ описів і виконувана частина. Розділ описів містить ті ж підрозділи, що і розділ описів програми: описи констант, типів, міток, процедур, функцій, змінних. Виконувана частина містить, власне, оператори процедур.
Формат опису процедури має вигляд:procedure ім'я процедури (формальні параметри);
розділ опису процедур
begin
виконувана частина процедури
end;
Формат опису функції:function ім'я функції (формальні параметри): тип результату;
розділ опису функції
begin
виконувана частина функції
end;
Формальні параметри в заголовках процедур і функцій записують у вигляді:var ім'я параметру: ім'я типуі відокремлюються один від одного крапкою з комою. Ключове слово var може бути відсутнім (про це далі). Якщо параметри однотипні, то їх імена можна перераховувати через кому, вказуючи загальне для них ім'я типу. Під час опису параметрів можна використовувати лише стандартні імена типів, або імена типів, визначені за допомогою команди type. Список формальних параметрів може бути відсутнім.
Виклик процедури здійснюється оператором, що має наступний формат:ім'я процедури (список фактичних параметрів);Список фактичних параметрів - це їх перерахування через кому. Під час виклику фактичні параметри ніби підставляються замість формальних, що стоять на тих же місцях у заголовку. Таким чином відбувається передача вхідних параметрів, потім виконуються оператори виконуваної частини процедури, після чого відбувається повернення в блок викликів. Передача вихідних параметрів відбувається безпосередньо під час роботи виконуваної частини.Виклик функції в Турбо Паскаль може відбуватися в аналогічний спосіб, окрім того є можливість здійснити виклик всередині якогось виразу. Зокрема ім'я функції може стояти в правій частині оператора присвоєння, в розділі умов оператора if До повернення в блок викликів необхідно додати наступну команду в виконувану частину функції, для того, щоб передати в блок викликів вихідне значення функції.ім'я функції: = результат;Під час виклику процедур і функцій необхідно дотримуватися наступних правил. *кількість фактичних параметрів має збігатися з кількістю формальних;
*відповідні фактичні та формальні параметри повинні збігатися по порядку проходження і по типу.Зауважимо, що імена формальних і фактичних параметрів можуть збігатися. Це не призводить до проблем, так як відповідні їм змінні все одно будуть різні із-за того, що зберігаються в різних областях пам'яті. Крім того, всі формальні параметри є тимчасовими змінними - вони створюються в момент виклику підпрограми і знищуються в момент виходу з неї.Розглянемо використання процедури на прикладі програми пошуку максимуму з двох цілих чисел.
var x,y,m,n: integer;
procedure MaxNumber(a,b: integer; var max: integer);
begin
if a>b then max:=a else max:=b;
end;
begin
write('Введіть x,y ');
readln(x,y);
MaxNumber(x,y,m);
MaxNumber(2,x+y,n);
writeln('m=',m,'n=',n);
end.
Аналогічну задачу, але уже з використанням функцій, можна вирішити так:
var x,y,m,n: integer;
function MaxNumber(a,b: integer): integer;
var max: integer;
begin
if a>b then max:=a else max:=b;
MaxNumber := max;
end;
begin
write('Введіть x,y ');
readln(x,y);
m := MaxNumber(x,y);
n := MaxNumber(2,x+y);
writeln('m=',m,'n=',n);
end.
Передача параметрівУ стандарті мови Паскаль передача параметрів може здійснюватися в два способи – по значенню і по посиланню. Параметри, що передаються по значенню, називають параметрами-значеннями, що передаються по посиланню - параметрами-змінними. Останні відрізняються тим, що в заголовку процедури (функції) перед ними ставиться службове слово var.
Якщо використовується перший спосіб (передача за значенням) значення фактичних параметрів копіюється у відповідні формальні параметри. При зміні цих значень в ході виконання процедури (функції) вихідні дані (фактичні параметри) змінитися не можуть. Тому таким способом передають дані тільки із блоку викликів в підпрограму (тобто вхідні параметри). При цьому в якості фактичних параметрів можна використовувати і константи, і змінні, і вирази.
Якщо використовується другий спосіб (передача по посиланню) всі зміни, що відбуваються в тілі процедури (функції) з формальними параметрами, призводять до негайних аналогічним змінам відповідних їм фактичних параметрів. Зміни відбуваються із змінними блоку викликів, тому по посиланню передаються вихідні параметри. В разі виклику відповідні їм фактичні параметри можуть бути тільки змінними.
Вибір способу передачі параметрів при створенні процедури (функції) відбувається у відповідності до сказаного вище: вхідні параметри потрібно передавати за значенням, а вихідні - по посиланню. Практично це зводиться до розстановки в заголовку процедури (функції) зарезервованого слова var перед всіма параметрами, які позначають результат роботи підпрограми. Однак, у зв'язку з тим, що функція повертає тільки один результат, в її заголовку використовувати параметри-змінні не рекомендується.Локальні і глобальні ідентифікатори
Використання процедур та функцій в Паскалі тісно пов'язано з деякими особливостями роботи з ідентифікаторами (іменами) в програмі. Зокрема, не всі імена завжди доступні для використання. Доступ до ідентифікатора в конкретний момент часу визначається тим, у якому блоці він описаний.
Імена, описані в заголовку або розділі описів процедури або функції називають локальними для цього блоку. Імена, описані в блоці, що відповідає всій програмі, називають глобальними. Слід пам'ятати, що формальні параметри процедур і функцій завжди є локальними змінними для відповідних блоків.
Основні правила роботи з глобальними і локальними іменами можна сформулювати так: *Локальні імена доступні (вважаються відомими, "видимими") тільки всередині того блоку, де вони описані. Сам цей блок та всі інші, що вкладені в нього, називають областю видимості для цих локальних імен. *Імена, описані в одному блоці, можуть збігатися з іменами з інших: тих, що утримують даний блок і тих, що вкладені у нього. Це пояснюється тим, що змінні, описані в різних блоках (навіть якщо вони мають однакові імена), зберігаються в різних областях оперативної пам'яті.
Глобальні імена зберігаються в області пам'яті, що називається сегментом даних (статичним сегментом) програми. Вони створюються на етапі компіляції і можуть бути використані будь-коли, за увесь час роботи програми.
На відміну від них, локальні змінні зберігаються в спеціальній області пам'яті, яка називається стек. Вони є тимчасовими, оскільки створюються в момент входу в підпрограму і знищуються при виході з неї.
Ім'я, що описане в блоці, "закриває" співпадаючі з ним імена з блоків, що містять даний. Це означає, що якщо в двох блоках, один з яких міститься всередині іншого, є змінні з однаковими іменами, то після входу у вкладений блок робота відбуватися з локальною для даного блоку змінною. Змінна з тим же ім'ям, описана в зовнішньому блоці, стає тимчасово недоступною і це продовжується до моменту виходу з вкладеного блоку. Рекомендується всі імена, що мають в підпрограмах суто внутрішнє, допоміжне призначення, робити локальними. Це запобігає змінам глобальні об'єкти з такими ж іменами.
1.3.2. Алгоритм.
Слово алгоритм походить від algorithmic - латинської форми написання імені латинського математика IX ст. Аль-Хорезмі, який сформулював правила виконання чотирьох арифметичних дій над багатозадачними числами. Надалі алгоритм стали називати опис будь-якій послідовності дій, яку слід виконати для вирішення заданої завдання.
Алгоритм може бути орієнтований на виконання його людиною або автоматичним пристроєм. Алгоритми, призначені для виконання комп'ютерами, зазвичай називають комп'ютерними програмами або просто програмами.
Алгоритмом називається точне розпорядження, що визначає послідовність дій виконавця, спрямованих на вирішення поставленого завдання. У ролі виконавця алгоритмів можуть виступати люди, роботи, комп'ютери.
Використовуються різні способи запису алгоритмів. Широко поширений словесний спосіб запису: це записи рецептів приготування різних страв у кулінарнійкнизі, інструкції з використання технічних пристроїв, правила правопису і багато інших. Наочно представляється алгоритм мовою блок-схем.
Властивості алгоритму. При складанні алгоритму необхідно забезпечити, щоб він мав поруч властивостей.
Однозначність алгоритму, під якою розуміється єдиність тлумачення виконавцем правил виконання дій і порядку їх виконання. Щоб алгоритм володів цим властивістю, він повинен бути записаний командами з системи команд виконавця.
Для нашого прикладу виконавець алгоритму повинен розуміти такий запис дій, як складність числа А і В. Кінцівка алгоритму - обов'язковість завершення кожної дії, що становлять алгоритм, і кінець виконання кожного алгоритму в цілому.
Результативність алгоритму, що передбачає, що виконання алгоритму має завершиться отриманням певних результатів.
Масовість, тобто можливість застосування даного алгоритму для вирішення цілого класу задач, що відповідають спільній постановки завдання. Так як алгоритм, показаний на малюнку, дозволяє правильно підрахувати суму не тільки чисел 2 і 3, але будь-який іншої пари цілих чисел, він має властивість масовості.Для того щоб алгоритм мав властивістю масивності, слід складати алгоритм, використовуючи позначення величин і уникаючи конкретних значень. Правильність алгоритму, під якою розуміється здатність алгоритму давати правильні результати вирішення поставлених завдань. Представлений у прикладі алгоритм має властивість правильності, так як в ньому використана правильна формула складання цілих чисел, і для будь-якої пари цілих чисел результат виконання алгоритму буде дорівнює їх сумі.
Комп'ютерна програма - це план майбутніх робіт, складений з розрахунку на його виконання комп'ютером.
Щоб комп'ютер зміг виконати програму, вона повинна бути записана в спеціальній формі, доступній комп'ютера; повинна бути записана у відповідності зі спеціальним набором правил.
Набір запису комп'ютерної програми називається «алгоритмічною мовою».
Обчислювальний процес називається лінійним (не розгалужуються), якщо напрямок його продовження на будь-якому етапі обчислень є єдиним. Алгоритм лінійного обчислювального процесу описує дії, послідовність виконання яких не залежить від початкових даних і результатів проміжних обчислень, тобто є постійною. Цей процес є найбільш простим видом обчислень. Лінійний процес (як і інший обчислювальний процес) можна представити у вигляді наступних етапів: перший - завдання вихідних даних, другий реалізація обчислень; третій - висновок результатів рахунки і пояснюючої інформації. Етапи відображаються на блок-схемі, а потім реалізуються в ПК в зазначеній послідовності.
Алгоритм розподілу відрізка АВ навпіл:
1) поставити ніжку циркуля в точку А;
2) встановити розчин циркуля рівним довжині відрізка АВ;
3) провести коло;
4) поставити ніжку циркуля в точку В;
5) провести коло;
6) через точки перетину кіл провести пряму;
7) відзначити точку перетину цієї прямої з відрізком АВ;
Кожне вказівку алгоритму наказує виконавцю виконати одне конкретне значення дій. Виконавець не може перейти наступної операції, не завершивши повністю попередню. Приписи алгоритму треба виконувати послідовно одне за одним, з відповідності з порядком їх запису. Проходження всім приписами гарантує правильне рішення завдання. Даний алгоритм абсолютно ясне виконавцю
Блок-схема - алгоритм, виражений за допомогою логічних блоків. Блок-схема служить для того, щоб наочніше представляти ті чи інші форми організацій дій. Кожна дія алгоритму, крім перевірки умови, будемо розміщувати в прямокутник, а питання про те, чи виконується деяка умова, - в ромб. Ще існують: паралелограм, овал, обірваний листок.
У розглянутих досі алгоритмах і програмах усі команди виконувалися послідовно одна за одною в тому порядку, в якому вони були записані. Проте таким чином може бути побудовано алгоритм для вирішення далеко не всякої завдання. У практиці відомі завдання, подальший хід вирішення яких залежить від виконання будь-яких умов.
2.1.ЛІНІЙНІ ПРОГРАМИ
Задача 1. Якщо на одну шальку терезів посадити Даринку, яка важить n кілограмів, і Наталку, яка важить на 5 кілограмів менше, а на іншу насипати m кілограмів цукерок, які набагато важчі за дівчаток, то скільки кілограмів цукерок доведеться з’їсти нещасним, щоб шальки терезів врівноважились?Розв’язання (математичне)
Хай вага Даринки n кілограм, тоді вага Наталки буде n-5 кілограм. Разом вага дівчаток буде s= n+n-5. Щоб терези були в рівновазі, дівчаткам треба з’їсти таку кількість цукерок, яка дорівнює різниці між вагою цукерок і загальною масою дівчаток, тобто а(кількість з’їдених цукерок)= m – s.Програму розв’язання цієї задачі:
Program N1;
var n, m, s, а: real;
begin
Writeln (‘введіть вагу Даринки в кілограмах’);
Readln(n);
Writeln(‘введіть вагу цукерок в кілограмах’);
Readln(m);
s:=n+n-5;
а:=m-s;
Writeln(‘ доведеться з’їсти a=’, а:1:1);
Readln;
end.
Задача 2. Невдаха-учень Сашко сів виконувати домашнє завдання і просидів за столом 2 години. З їх x хвилин він чухав потилицю і дивився у вікно, у хвилин шукав у письмовому столі гумку, щоб стерти у підручнику з англійської мови карикатуру на свого товариша, на малювання якої він витратив перед цим z хвилин. Весь останній час Сашко перекладав англійські слова. Скільки слів він встиг перекласти, якщо на перекладення одного слова у нього йшло 5 хвилин?
Розв’язання:
Хай Сашко чухав потилицю х хвилин, шукав гумку у хвилин, на малювання карикатури товариша він витратив z хвилин, тоді всього він витратив годин:
h=2*60-x-y-z; щоб визначити скільки Сашко переклав слів, треба весь витрачений ним час поділити на 5 (ця операція повинна виконатись націло). Отже маємо слідуючи програму:Program N2;
var x, у, z, h: integer;
begin
Writeln('вкажіть, скільки хвилин Сашко чухав потилицю’);
Readln(x);
Writeln(‘вкажіть, скільки хвилин Сашко шукав гумку’);
Readln(y);
Writeln(‘вкажіть, скільки хвилин Сашко витратив на малювання карикатури’);
Readln(z);
h:=2*60;
h:=h-x-y-z;
h:=h div 5;
Writeln(‘ В решті-решт Сашко переклавши h=’,h:3, ‘слів’);
Readln;
end.
Задача 3. Петрусь задумав число і нікому його не назвав. Друзі спіймали його і примусили подвоїти задумане число, а потім додати до нього 5. І тільки після того, як друзі пообіцяли Перусеві благодійну допомогу на контрольній з математиків, він зізнався, що вийшло число n. Визначте, яке число задумав і приховав від своїх друзів Петрусь?Розв’язання
Хай Петрусь задумавши число n.(пояснення математичного розв’язку видно із складеної програми)
Program N3;
var n : integer;
begin
Writeln(‘ яке число вийшло у Петруся’);
Readln(n);
n:=n-5;
n:=n div 2;
Writeln(‘ Петрусь задумавши число – ‘, n);
Readln;
end.
2.2.УМОВНИЙ ОПЕРАТОР
Процедури введення і виведення, а також оператор присвоєння дозволяють писати тільки лінійні програми, в яких всі команди виконуються послідовно, одна за одною. Але дуже часто виникає необхідність виконувати різні команди залежно від виконання якоїсь умови. Для такої мети в Паскалі введений умовний оператор:
If (умова) then (оператор 1) else (оператор 2);
Працює цей оператор так – спочатку перевіряється умова, і, якщо вона вірна, виконується оператор 1, в противному випадку виконується оператор 2.В найпростіших випадках умова – це математичне порівняння двох виразів по величині (відношення двох величин). Відношення можна записати за допомогою наступних знаків: /Абсолютна величинаХай вимагається знайти абсолютну величину (модуль) числа х. Нагадаємо визначення – модуль числа х рівний самому числу х, якщо воно додатнє, і -х, якщо число від’ємне. Тут очевидно, є умова, залежно від виконання або невиконання якогї слід виконувати різні дії. Без умовного оператора в повній формі не обійтися:Program absolute;
var x:integer;
begin
Write(‘ введіть ціле число:’);
Readln(x);
if x>=0 then
Write(‘|’,x,’|’=’,x);
else
Write(‘|’,x,’|’=’, -х);
end.
Ділення порівнуНаступна наша програма повинна перевірити чи ділиться введене з клавіатури ціле число без остачі на 4. Числа а і b діляться без остачі якщо залишок від ділення а на b рівний 0. Пригадаємо, що в Паскалі є спеціальна операція обчислення залишку від ділення одного числа на інше. Це – mod:
Program divide;
var m: integer;
begin
Write(‘ введіть ціле число’);
Readln(m);
if m mod 4 = 0 then
Write(‘ введене число ділиться на 4’);
else
Write(‘ введене число не ділиться на 4’);
end.
ЛІНІЙНЕ РІВНЯННЯРозв’язування лінійного рівняння ax+b=0 залежить від значень а і b. Якщо а не рівно 0, то х=-b/a, якщо ж а=0, то необхідно перевірити значення b. При b=0 розв’язком є будь-яке число, а при b=0 рівняння не має розв’язку. Тут є декілька умов, і в програмі розв’язування лінійного рівняння використовується умовний оператор: