Народна Освіта » Інформатика » Розділ 10. Мови програмування

НАРОДНА ОСВІТА

Розділ 10. Мови програмування

Підготовка задач для розв’язування на комп’ютері; етапи розв’язування на комп’ютері; еволюція та класифікація мов програмування; поняття середовища програмування; структура програми, символи, ключові слова та ідентифікатори.

10.1. Основні етапи розв'язування задач за допомогою комп’ютера

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

1. Він з величезною швидкістю виконує математичні та логічні операції (трильйони операцій за секунду).

2. Зберігає великі обсяги даних, доступ до яких також здійснюється досить швидко.

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

Фахівця, який розробляє для комп’ютера програму, називають програмістом. Діяльність програміста з підготовки і розв’язання задач на комп'ютері — це творчий процес. Однак є загальновизнані принципи, яких слід дотримуватися під час програмування. Робота програміста з розв’язування задач за допомогою комп’ютера поділяється па два основних етапи:

- підготовка задач для розв'язування на комп'ютері;

- безпосередня робота па колт’ютері над розв'язуваинялі задачі.

Роботи па першом}' етапі виконуються переважно без використання комп’ютера. Це дуже відповідальний і суто творчий процес. Від того, як буде виконана ця робота, залежать достовірність отриманих результатів і швидкість розв’язаїшя задачі на комп’ютері. На другому етапі деякі процеси можна автоматизувати й викопувати безпосередньо на комп’ютері.

10.1.1. Підготовка задач для розв’язування на комп’ютері

Незважаючи на те що останнім часом у пр огр а м у в ан ні відбулися принципові зміни, а сучасні мови програмування дуже різняться, процес

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

1. З’ясування сутності задачі. Програмісту задача може бути поставлена в довільній, найчастіше словесній, формі. Насамперед необхідно зрозуміти умову задачі, визначити вхідні та вихідні дані, форму подання результатів тощо. Наприклад, із аналізу раніше наведеної задачі про підрахунок прибутку від суми грошей, покладених у банк, випливає, що вхідними даними є значення змінних в, к, які потрібно вводити з клавіатури, а результати розв’язання задачі зберігаються у змінній у. Значення цих змінних можуть бути виведені як на екран монітора, так і на принтер.

Наведемо ще два приклади постановки задачі.

Задача 1. Визначити, чи є в журналі 8-а класу учень або учениця на прізвище Василейко.

Задача 2. На річці розміщені пункти А і В. Відстань між цими пунктами дорівнює 8. З пункту А до пункту В за течією вирушає пліт, а з пункту В в пункт А одночасно з плотом вирушає катер. Через Ь годин вони зустрічаються і продовжують рух. Дійшовши до пункту х\, катер, не зупиняючись, розвертається і прямує назад до пункту В, куди він прибуває разом із плотом. Визначити швидкість течії річки і швидкість руху катера в стоячій воді.

2. Формалізація задачі. Формалізувати задачу' - означає побудувати математичну' модель і описати її в математичних термінах. Описання основних властивостей об’єктів чи явищ за допомогою математичних виразів називають побудовою математичної моделі об'єктів чи явищ. Математичне моделювання, як засіб дослідження об’єктів і явищ, використовується в програмуванні. Етап формалізації не завжди є обов’язковим. Формалізацію можна не виконувати для деяких обчислювальних задач із курсів шкільної математики, фізики, хімії, бо вони, власне, вже с формалізованими.

3. Вибір методу розв’язування задачі. Вибрати метод розв’язування задачі — означає знайти ефективні способи проведення обчислень за

математичною моделлю. Так, для наведеної задачі про прибуток обрано рекурентну схему обчислення: при обчисленні прибутку на і-му році використовується значення прибутку на попередньому, (і-І)-му, році. За такої схеми обчислення скорочується кількість арифметичних операцій, порівняно з іншими методами розв'язування задачі.

4. Розроблення алгоритму. Розробити алгоритм — означає визначити послідовність інструкцій (вказівок), у результаті виконання яких задача буде розв’язана правильно. Ступінь деталізації вказівок може 65'ти різним. Як правило, деталізація виконується доти, доки процес, що описується, не стане зрозумілим для виконавця алгоритму.

5. Розроблення програми. Розробити програму — означає описати алгоритм мовою програмування (Pascal, Basic тощо). Мова програмування — це певна сукупність символів, слів, команд і правил, за допомогою яких можна в формальному вигляді записати послідовність інструкцій для розв’язування поставленої задачі. Майже всі сучасні програми записуються мовами програмування високого рівня, до яких належить і мова Pascal. На рис. 10.2 наведено приклад програми мовою Pascal, яка підраховує прибуток за кожний ріїс від початкової суми s, покладеної в банк під k відсотків річішх. Спробуйте вручну виконати це завдання і ви переконаєтеся, які переваги надає комп’ютер.

program п10_01; {заголовок програми з ім’ям п10_01} var і: integer; (оголошення змінної і цілого типу}

s, k, р: real; {оголошення змінних дійсного типу]

begin {початок операторної частини програми}

writeln (‘увести s, к’); {повідомлення про введення значень змінних}

readln (s, к); {введення значень s, к }

fori:=lto50do {оператор циклу} begin {початок тіла циклу}

p:=s*k; (обчислення прибутку за поточний рік}

s:=s+p; {обчислення накопиченої суми}

writeln Осума за ’,і,’ poKiB=',s) {виведення прибутку за і років} end; {кіїїець тіла циклу}

readln {призупинення виконання програми}

end. {кіїїець програми}

Рис. 10.2. Програма розв’язування задачі мовою Pascal

Запис алгоритмів мовою програмування високого рівня виконується точно і формально, тому їх подальша реалізація на комп'ютері легко автоматизується.

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

Для нескладішх задач часто намагаються пропустити етап розробки алгоритму й відразу переходять до запису програм. Такий підхід є принципово неправильним, адже "43'жу" програм}', особливо складну, без алгоритм}' зрозуміти дуже важко. Тому7 потрібно виробити кз'льтурз' оформлення алгоритмів на прикладах алгоритмізації простих задач. Записом алгоритм}7 мовою програмування етап підготовки задачі до розв’язування па комп’ютері завершз'ється.

1. Із яких етапів складається процес підготовки задач до розв’язування на комп’ютері?

2. Що означає "формалізувати задачу"?

3. Для яких задач етап формалізації не є обов’язковим?

4. Із чого складається мова програмування?

5. Яку функцію виконує транслятор?

10.1.2. Етапи розв’язування задач на комп’ютері

 

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

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

2. Компіляція програми. Компіляція — це автоматизований переклад програми з мови програмування високого рівня на машинну мову'. Компіляцію доцільно здійснювати після того, як набрана програма записана в пам’ять комп’ютера. Програми, які виконують компіляцію, називають компіляторами. В результаті компіляції в найпростішому випадку буде отриманий один виконуваний файл, тобто файл із розширенням ехе. Цей файл може одразу запускатися на виконання або бути збережений для виконання в майбутньому.

3. Налагодження програми. Налагодження програми полягає у виявленні та зсуненні допущених у ній помилок. Деякі помилки (так звані синтаксичні помилки) знаходять компілятори. Повідомлення про такі помилки виводяться на екран. Синтаксичні помилки виникають, наприклад, у виразах, що містять недозволені знаки операції, зайві дужки тощо. Так, у виразі у = а + (с/d - b)) допущена синтаксична помилка, яка полягає в тому, що не вистачає однієї дужки, яка відкривається. Якщо під час уведення програми п10_01 буде відсутній оператор end;, ця синтаксична помилка також буде виявлена.

Інші помилки в програмі, які називають логічними, компілятори не виявляють. Наприклад, якщо у виразі у = а + b замість знака "+" ввести знак таку помилку' компілятор не знайде. Логічні помилки повинен виявити й усунути програміст, виконулочи програму покроково та використовучочи інші засоби налагодження.

4. Випробування програми. Випробування проводиться для складних промислових і комерційних програм. Цей процес полягає в багаторазовому запуску' програм з різними вхідними даними та в подальшому' аналізі отриманих результатів, що проводиться з метою знайти помилки та перевірити ефективність роботи програми.

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

5. Експлуатація програм. На кожну реальну' програму', призначену' для масового використання, розробляється і затверджусться необхідна документація. Програма разом з відповідною документацією передасться для експлуатації замовникам або покупцям, як правило, на магнітних та оптичних носіях. Експлуатація таких програм

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

Перевіряємо себе

1. Для чого компілюються програми?

2. Для чого здійснюється налагодження програми?

3. Які помилки в програмі виявляють компілятори? .

4. З якою метою проводиться випробування програм?

10.2. Еволюція мов програмування

Початок розвитку мов програмування сягає XIX століття, коли англійський учепий Чарльз Беббідж розробив механічну обчислювальну машину, програму для якої створила леді Ада Лавлейс, донька лорда Байрона (на честь цієї жінки названа мова програмування Ada). Однак мови програмування в сучасному розумніш фактично стали розвиватися з появою ЕОМ.

Мова програмування - це мова, призначена для опису алгоритмів і даних у вигляді, придатному для опрацювання комп’ютерами.

Нині існує сотні різних мов програмування та їх модифікацій, проте лише деякі здобули широке визнання. На різних етапах розвитку інформаційних технологій популярними були такі мови програмування: Fortran, Cobol, Algol-60, PL-1, Algol-68, Ada, C, C++, BasicK, Pascal, Prolog, Delphi, Java.

Програми для перших ЕОМ розроблялися на так званих машинних мовах програмування. Програма, записана машинною мовою, виконується комп’ютером безпосередньо, без будь-яких її перетворень. Для запису машинних програм на папері використовувалися вісімкова та шістнадцяткова системи числення, а в комп’ютері такі програми зберігалися у двійковій системі числення. Програма цією мовою записується у вигляді послідовності машинних команд (табл. 10.1).

Таблиця 10.1

Фрагмент програми машинною мовою

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

Першим кроком на шляху полегшення розробки програм стало створення мов символьного кодування (МСК). Фрагмент програми па МСК наведено в табл. 10.2.

Розглянемо наприклад, записану у 3-му рядку таблиці команду ДОД А В. За цією командою виконується додавання чисел А і В. Зрозуміло, що записати програму на МСК легше, ніж розробити її на машинній мові. Пояснюється це насамперед тим, що програміст звільняється від рутинної роботи, пов’язаної з розподілом оперативної пам’яті комп’ютера. Цю функцію виконує комп’ютер. Віл же перетворює символічні коди команд на машинні. Тепер різновиди мов символьного кодування називають автокодом, або асемблером.

Таблиця 10.2

Фрагмент програми на мові символьного кодування

Пізніше в мову символьного кодування стали включати макрокоманди, які реалізуються послідовністю з кількох команд. Використання макрокоманд в МСК ще більше полегшило розробк}' програм. Слід, проте, зазначити, що мови символьного кодування досі дуже складні. Ці мови отримали назву машинно-залежних мов програмування, їх також називають мовами низького рівня. У 70—80-х роках минулого століття іх використовували для розробки системного та прикладного програмного забезпечення ЕОМ.

Із перших років використання обчислювальної техніки почався попите мов програмування, доступних для широкого кола користувачів і не пов’язаних із якоюсь конкретною обчислювальною машиною, які були названі мовами високого рівня. Першою такою мовою, що набула широкого визнання серед програмістів у всьому світі, стала розроблена у 1954 році в СІЛА мова Fortran (формульний транслятор). Вона близька до звичайної мови алгебри і орієнтована насамперед на розв’язування обчислювальних задач.

У 1960 році група вчених із різних країн розробила мову програмування Алгол-60, яка орієнтувалася на розв'язування алгоритмічних задач і давала змогу обробляти ширший набір типів даних, ніж мова Fortran.

Із розвитком і вдосконаленням обчислювальних машин розширювалися й галузі їх застосування. Очевидно, що при цьомз' вдосконалювалися й розвивалися мови програмування. їх розвиток відбувався як шляхом спеціалізації, так і шляхом універсалізації. Однією з перших спеціалізованих мов вважається Cobol, розроблена в 1961 році в США й орієнтована на розв’язування економічних задач. Пізніше створено десятки різних спеціалізованих мов, наприклад, Simula - мова моделювання, LISP — мова для розв’язування інформаційно-логічішх задач.

Таким чином, потреба у розв’язанні найрізноманітніших задач, з одного боку, та поява й удосконалення нових обчислювальних машин — з іншого, поставили нові вимоги до мов програмування. Суть цих вимог полягає в тому, що мови мають забезпечити успішне розв'язування широкого кола задач, а також ефективне використанні можливостей ЕОМ.

Мови програмування, які значною мірою відповідають таким вимогам, належать до класу універсальних. Найбільш відомою мовою цього класу стала мова PL-1, розроблена в 1964 році, а також мова Algol-68. Проте ці мови виявилися досить складними. Згодом почала широко використовуватись універсальна мова Pascal, розроблена на початку 70-х років XX століття швейцарським математиком Ніклаусом Віртом.

Особливою популярністю в усьому світі користувалася мова Basic, проста й незамінна під час розв’язування порівняно нескладних задач.

Однак вона мало придатна для розв’язування складних наукових, економічних та інших задач.

На початку 80-х років минулого століття завдяки розробці мікропроцесорної техніки з’являються та набувають поширення персональні комп’ютери, а на початку 90-х років створюється графічна технологія розробки програм. З цього часу почалася ера мов об’ектно-орісіггованого програмування.

Перевіряємо себе

1. Що називається машинною мовою програмування?

2. У чому полягають недоліки машинних мов програмування?

3. Які переваги мають мови символьного кодування порівняно з машинними?

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

10.3. Класифікація мов програмування

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

За ступенем залежності від апаратних засобів розрізняють мови низького, високого і надвисокого рівнів. Головна особливість мов програмз'вапня низького рівня полягає в тому, що програма розробляється за допомогою системи команд комп’ютера певного тилу і може виконуватися на комп’ютерах саме цього типу. Прикладом мови

 

низького рівня є асемблер. Найхарактерніша ознака мов високого рівня полягає в тому, що програмування ними абстраговане від особливостей архітектури комп’ютера. Прикладами таких мов є Pascal, С, Ada, Basic, Delphi. До мов надвисокого рівня належать мови, які мають механізми абстрактного опису задачі та вбудовані засоби її розв’язування. Це мови на зразок Prolog, APL.

За принципами програмування мови поділяються на процедурні (імперативні), непроцедурні (неімперативні) та об’сктно-оріснтоваиі.

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

Непроцедурні мови програмування — це мови високого рівня абстракції. У цих мовах процедура пошуку розв’язку вбудована в інтерпретатор мови.

Об’єктно-оріснтовані мови програмування містять конструкції, що дають змогу оперувати такими поняттями, як об’єкти та класи об’єктів. Прикладами таких мов є C++, Object Pascal, Java, Delphi. їх появі передувало невпинне зростання обсягів і складності програм. При об’ектно-орієнтованому програмуванні програма розглядається як набір об'єктів, що взаємодіють між собою за допомогою обміну повідомленнями. В об’єкті поєднуються дані та засоби їх опрацювання. Кожен об’єкт характеризується набором властивостей і поведінкою. Поведінка об'єкта може змінюватись залежно від подій, які виникають унаслідок дій користувача (наприклад, переміщенням миші) чи роботи системи. Набір команд, які програмуються для виконання при настанні певної події, називають обробником події.

За орієнтацією на клас задач мови програмування поділяються на універсальні та спеціалізовані.Універсальні мови (до них належать PL-1, Algol, Pascal та ін.) призначені для розв’язування різноманітних задач. Спеціалізовані мови програмування враховують специфіку предметної галузі, тому область використання кожної з них дещо вужча. Сьогодні широко використовується декілька десятків спеціалізованих мов програмування.

Перевіряємо себе

1. За якими ознаками класифікуються мови програмування?

2. Які основні особливості мають мови програмування низького, високого та надвисокого рівнів?

3. Як мови поділяються за принципами програмування?

4. Які мови програмування належать до непроцсдурних?

5. Що такс об’сктно-оріентоване програмування?

6. Що таке об’єкт?

7. Що розуміють під подією?

8. Що таке обробник події?

10.4. Поняття середовища програмування

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

запуск програми на виконання;

налаштування системи програмування з урахуванням потреб користувача.

Розглянемо стисло основні відомості про середовище програмування ТигЬо Равсаі 7.0. Мова РавсаІ, як уже зазначалося, була розроблена на початку 70-х років минулого століття Н. Віртом і названа на честь видатного французского математика Блеза Паскаля (1623— 1662). Хоча ця мова створювалася для навчання програмуванню, її можливості дають змогу розв’язувати набагато ширше коло задач. Тому Равсаі став однією з найпопулярігіших мов програмування.

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

фірма Borland, створивши низку компіляторів та інших інструментальних засобів. Окрім цього, вона випустила декілька версій інтегрованого середовища розробки програм мовою Turbo Pascal. Для Turbo Pascal 5.5 і старших версій були розроблені паралельні версії середовища — від Borland Pascal 5.5 до Borland Pascal 7.0. Подальше вдосконалення Borland Pascal 7.0 сприяло появі якісно нового середовища програмування, яке назвали Delphi. Мовою програмування в Delphi є об’єктио-оріситована мова Object Pascal, в основу якої покладені конструкції Turbo Pascal 7.0. У Delphi широко використовуються візуальні засоби програмування.

 

Існує значна кількість середовищ програмування мовою Pascal. Серед них найбільшого поширення набули Turbo Pascal 7.0 та Free Pascal. Робота в середовищі Turbo Pascal починається з запуску файла bp.exe або turbo.exe. Після завантаження системи на екрані монітора відображається головне вікно Turbo Pascal (рис. 10.5), яке складається з трьох різних за своїм функціональним призначенням частин: рядка меню, робочої області та рядка стану.

Рядок меню, розташований у верхній частині головного вікна Turbo Pascal, містить десять меню (кожне з них складається з команд, призначених для виконання певного класу дій):

File — робота з файлами (створення, зберігання, друк файлів тощо); Edit — редагування, копіювання, вставляння, вилучення окремих частин тексту;

Search — пошук тексту, заміна слів;

Run - виконання програми в звичайному та покроковому режимах;

Compile — компіляція програми;

Debug — налагодження програми;

Tools — використання допоміжних засобів;

Options — налаштування середовища програмування;

Windows - керування вікнами;

Help — отримання довідкової інформації.

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

Правила роботи з інтерфейсом системи Turbo Pascal 7.0 принципово не відрізняються від правил роботи з інтерфейсом системи Windows. Активація рядка меню може здійснюватися за допомогою миші або клавіші F10, а повернення до робочої області — за допомогою клавіші Esc. Вибрати той чи інший пункт меню можна одночасним натисканням "гарячої" клавіші (вона у назві пункту меню зображена напівжирним шрифтом) і клавіші Alt.

На рис. 10.5 показано вміст меню File. Команда New дає змогу створити новий файл. Якщо після створення файла виконати команду Save, буде запропоновано ввести його ім’я. Коли редагується створена

 

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

Які команди містяться в меню Edit, показано на рис. 10.6, а які в меню Run — на рис. 10.7. Про призначення цих команд можна дізнатися з їх назв.

 

Перевіряємо себе

1. Які основні функції виконує середовище програмування?

2. Як запустити систему Turbo Pascal 7.0?

3. Із яких назв мсшо складається рядок головного вікна системи Turbo Pascal 7.0?

4. Які команди входять до складу меню File та меню Edit'

5. Яке призначення має меню Run?

Виконуємо

Завантажте систему Turbo Pascal 7.0. Уведіть і виконайте програму п10_02. Проаналізуйте одержаїшй результат: program п10_02;

var р, X, у, z: integer; [оголошення змігших цілочислового типу! begin

writeln (’уведіть х, у, z’); {повідомлення про введення} rcadln (х, у, z); {введення значень змінних} p:=(x*x-z)*y; {обчислення значення виразу}

writeln (’р=\ р); {виведення значення вираз5'} rcadln {призупинення виконання програми}

end.

10.5. Робота в середовищі Pascal 7.0

Опишемо методику роботи в середовищі Turbo Pascal 7.0, якої має дотримуватись початківець. З цією метою навмисно введемо в програму п10_02 кілька помилок:

program nl0_03

var p, x„ y, z: integer; {оголошення змінних)

begin

writeln (’увести x, у, z’) {повідомлення про уведення значень змінних)

redin (х, у, z); {уведення значень змінних)

p:=(x*x-z)*y; {обчислення виразу)

writeln (‘р=’, р); {виведення результату)

end.

Розглянемо процес налагодження цієї програми.

1. Після завантаження середовища Turbo Pascal 7.0 на екрані з’явиться вікно, зображене на рис. 10.5, і відкриється порожній файл NonameOO.pas (якщо цей файл відсутній, його можна створити, скориставшись клавішею F10 та виконавши команду File—*Ncw). Уведемо програму п10_03, як це показано вище. У лівому нижньому куті вікна перше число вказує на номер рядка, друге — на номер стовпця, де розташований кз'рсор.

2. Порівняємо програму на папері з програмою на екрані. Якщо є розбіжності, їх слід усунути, внісши зміни в програму на комп’ютері.

3. Збережемо файл. Для цього натиснемо клавішу F10 і виконаємо команду File—>Save as. У вікні, що відкриється, слід набрати ім’я файла nl0_03.pas і натиснути клавішу Enter. Цей файл буде збережений у каталозі <диск>:\ТК\ВШ\.

4. Компіляція програми може здійснюватися за допомогою команди

Compile —* Compile або Run —> Run. Принципова відмінність між цими командами полягає в тому, що в першому випадку програма лише компілюється, а в другому — після завершення компіляції вона одразу виконується. Скористаємося командою Run—>Run. На екран буде виведене повідомлення про помилку: Error 85:";" expected

(очікується а курсор вказуватиме на другий рядок програми. Виправимо помилку, додавши до рядка п10_03 символ після цього знову виконаємо команду Run—»Run.

5. На екрані з’являється повідомлення про помилку Еггог2: Identifier expeted (очікується ідентифікатор), а курсор вказуватиме, що помилка в другому рядку. Переглянувши уважно цей рядок, побачимо, що після змінної х записана зайва кома. Виправимо помилку і, одержавши рядок var р, х, у, z:integer;, виконаємо команду Run—>Run.

6. На екран знову буде виведене повідомлення про помилку Error

85: expected (очікується а курсор вказуватиме на оператор redin.

Помилка виникає тому, що наприкінці попереднього рядка відсутній символ крапки з комою. Вставимо його і виконаємо команду Run—>Run. Курсор залишиться в цьому ж рядку, а на екрані з’явиться повідомлення про помилку Err or 3: Unknown identifier (невідомий ідентифікатор). Ця помилка виникає тому', що в операторі redin пропущено літеру "а". Вставимо відсутню літеру' і виконаємо команду7 Run—>Run. Оскільки в програмі всі помилки ліквідовані, компіляція пройде у'спішно й одразурозпочнеться виконання програми. На екрані з’являється повідомлення: ввести х, у, z.

7. Уведемо початкові дані в тому порядку, в якому відповідні змінні перелічені в операторі readln, відокремлюючи їх одне від одного пробілами. Введемо, наприклад, 4 2 3. Після цього натиснемо клавішу Enter.

Щоб переглянути результат виконання програми, натиснемо клавіші Alt+F5. На екрані з’явиться повідомлення р=26. Для того щоб повернутися до програми, досить натиснути будь-яку' клавішу'.

8. Запишіть програму* на диск. Нагадаємо, що під час виконання пункту 3 програму вже було збережено у файлі prog_03.pas, але тоді вона мала інший вигляд, тобто містила помилки. У програмі, яка відображається на екрані, помилок немає. Щоб зберегти що програму7 з ім’ям nl0_03.pas, досить виконати команду File—»Save.

Для виходу із середовища Turbo Pascal потрібно виконати команду File-»Exit.

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

Перевіряємо себе

1. Які дії виконучоться для збереження програми?

2. В який спосіб виконати компіляцію програми'

3. Як завершити роботу в середовищі ТигЬоРавсаІ?

4. Як визначити місце помилки в програмі, на яку вказує згенероваие компілятором повідомлення про помилку?

1. Уведіть програму п10_02.ра8 та виконайте и покроково.

2. Наберіть текст програми, що містить помилки (вона мас назву п10_03). Відредагуйте її й виконайте в покроковому режимі.

10.6. Структура програми

У програмі, що записана мовою програмування високого рівня, можна виокремити дві частини: розділ оголошень і основний блок. У деяких мовах програмування, наприклад у мові Вавіс, оголошення імен (ідентифікаторів) виконується неявно, тобто перша частина в програмі відсутня. На рис 10.8 зображена структура програми, записаної мовою Равсаі.

У розділі оголошень означуються ідентифікатори даних, що використовуються в програмі. Нагадаємо, що змінні величини, хоча й у неявному вигляді, оголошуються також у звичайних математичних задачах. Так, в умові задачі "автомобіль рухався із пункту в щчшт В із середньою швидкістю 40,5 км/год протягом трьох годин" у неявному вигляді оголошено такі величини: час руху автомобіля — ціле число та швидкість руху — дійсне число.

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

У описовому блоці програми описуються дії, пов’язані з уведенням даних, їх обробкою і виведенням результатів. Усі ці дії виконуються за допомогою спеціальних операторів. У будь-якій мові програмування високого рівня використовуються такі оператори:

уведення даних;

присвоювання;

умовного переходу;

циклу;

виведення даних.

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

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

 

 

Рис. 10.8. Структура простої програми, записаної мовою Pascal

Наведемо загальну структуру програми, описаної мовою Pascal. рго£гат<ім’я програми>;

‘uses} Оголошення бібліотек та модулів, що підключаються до програми>;

[label) Оголошення міток>;

[const} Оголошення констант>;

[type} Оголошення типів даних>; уагОголошення змінних>;

[procedure, function) Оголошення процедур та функцій>; begin

<оператори>

end.

Розглянемо деякі елементи наведеної структури на прикладі найпростішої програми (у фігурних дужках наведені коментарі, які не є обов’язковими елементами програми).

program п10_04; [програма додавання двох чисел} var a, b, с: integer; {змінні цілочислового типу} begin {початок основного блоку програми}

readln (a,b); [введення значень змігших а,Ь) с:=а+Ь; [додавання двох чисел)

writeln (kc=’,c) {виведення суми чисел} end. {кінець програми]

Перший рядок програми — це її заголовок. Так зазвичай починаються програми, записані мовою Pascal. Після слова program

вказується ім’я програми — воно може бути довільним. У даному прикладі програма має ім’я п10_04. Зверніть увагу, що заголовок, як і будь-який інший оператор, завершується символом крапка з комою. Хоча в останніх версіях мови Pascal заголовок програми не є обов’язковим, його варто використовувати, оскільки це полегшує роботу програміста.

У другому рядку оголошено, що в програмі будуть використовуватися три змінні з іменами а, b і с. Імена в оголошеннях розділяються комами. Ключове слово var є скороченням слова "variable" (змінна). Після імен а, b і с записано символ двокрапка і слово integer. У такий спосіб оголошується, що всі зазначені змінні мають один тип -цілочисловий. Про інші типи змінних мова йтиме пізніше.

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

У кожному рядку наведеного вище коду дасться коментар, тобто інформація, яка полегшує читання та налагодження програми. Коментар обмежується фігурними дужками. Він не є обов’язковим. Третій рядок містить слово begin, яким розпочинається основний блок програми, після нього крапка з комою не ставиться. Закінчується програма словом end з крапкою. У програмі може бути декілька слів begin, кожному з них відповідає слово end. Якщо слово end не останнє в програмі, то після нього записується крапка з комою (винятком є випадок, коли слово end розташоване перед словом else).

Четвертий рядок містить оператор уведення readln (a,b). Цей оператор зупиняє виконання програми і "очікує" на введення з клавіатури двох чисел, які відокремлюються пробілом. Перше число буде надане змінній а, а друге — змінній Ь. У програмах часто використовують "порожній" оператор readln, такий, що не має дужок. Це дас змогу призупинити виконання програм та переглянути на екрані проміжні результати. Натиснувши клавіш}' Enter, виконання програми можна продовжити. У п’ятом}' рядку записано с:=а+Ь;. Цей оператор означає, що змінна с набуває значення, яке дорівнює сумі значень змінних а і Ь.

Шостий рядок містить оператор writeln (с), який здійснює виведення значення змінної с на екран. Оскільки він передостанній у коді, то крапка з комою після нього не ставиться. Завантажимо та виконаємо програму для різних значень змігших а, Ь.

Перевіряємо себе

У мові програмування Равсаі відсутні чіткі вимоги до зовнішнього вигляду програми. Але існують загальні методи й правила запису, які суттєво підвищують наочність програм і полегшують їх розуміння.

Перелічимо деякі з цих правил:

* якщо один (зовнішній) оператор містить декілька інших, внутрішні оператори записуються в окремих рядках і зсуваються вправо відносно початку зовнішнього;

* короткі оператори бажано розміщувати в одному рядку;

* суттєво полегшують розуміння програми коментарі, тому їх слід використовувати якомога частіше; коментарі записуються у фігурних дужках, вони не впливають на обчислювальний процес і призначені для пояснення дій, що виконуються;

* важливим є вибір імен змінної; бажано, щоб імена змінних відповідали їх зміст}', а оголошення супроводжувались коментарями.

 

1. Які частини можна виділити в структурі Pascal-програми?

2. Які основні оператори rxottsttt, лп стеля jtv більшості mor програмування високого рівня*

3. Що записується в програмі на мові Pascal після слів label, var, program, const?

Виконуємо

1. Уведіть програму п10_04, відредагз'йте її і запустіть на виконання.

- Користуючись мовою Pascal, складіть програму для обчислення значення виразу: у = а + b + с

10.7. Символи, ключові слова та ідентифікатори

Будь-яка мова програмування має набір допустимих символів (алфавіт). Алфавіт мови високого рівня містить літери, цифри, символи операцій, спеціальні символи тощо.

До алфавіту мови Pascal належать:

26 великих і маленьких латинських літер (компілятор не відрізняє великі літери від маленьких);

10 арабських цифр (від 0 до 9);

символ підкреслювання ( _);

знаки арифметичних операцій: + (додавання чисел і об’єднання текстових рядків), — (віднімання чисел), * (множення чисел), / (ділення чисел);

знаки відношення: = (дорівнює), < (менше), >= (більше або дорівнює), > (більше), <= (менше або дорівнює), = (дорівнює), о (не дорівнює);

синтаксичні знаки: . (крапка), , (кома), ; (крайка з комою), (подвійні лапки), ’ (апостроф), : (двокрапка), (символ пробілу), ? (знак питання), ! (знак оклику);

дужки: круглі (); квадратні [ ]; фігурні {};

спеціальні символи: $,%,#,@,& та ін.

У кожпій мові програмування існує група службових слів (їх називають ще зарезервованими або ключовими), визначених синтаксисом мови винятково для створення мовних конструкцій. Таких слів у мові може бути від кількох десятків до кількох сотень. Службові слова не можна змінювати. Наведемо приклади службових слів мови Pascal: begin, var, const, end, for. У середовищі Turbo Pascal 7.0 такі слова виділяються іншим кольором. Для будь-якої мови програмування прийнятний лише лінійний запис, тобто запис програми в рядок. Не можна використовувати звичні для математичних формул штрихи, індекси тощо. Наприклад, математичний вираз у = 2а + sin2x мовою Pascal записується так: y:=a*2+sqr (sin(x)).

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

Ідентифікатор у мові Pascal — це послідовність латинських літер, цифр і символів підкреслювання, яка починається з літери або символу підкреслювання і не є ключовим словом.

Наприклад, слова a, z2, alfa, m21, dam_8 можуть використовуватися як ідентифікатори, а слова begin, 121, 5ab - ні.

Літерою в ідентифікаторі може бути будь-яка велика або маленька літера латинського алфавіту. В ідентифікаторі може міститися від 1 до 127 символів.

Перевіряємо себе

1. Які символи містить алфавіт мови Равсаі?

2. Для чого використовуються ідеитисЬікатопи?

3. Як записуються ідентифікатори*

4. Які слова називаються ключовими?

5. Які ідентифікатори можна скласти із символів 7, А і В?

6. Запишіть всі ідентифікатори, які можна утворити з символів 7, _, А, в яких вони використовуються не більше одного разу.


Завдання

Створити код для обчислення вираз}' у = 3*(а + Ь)/2 й викопати його у середовищі Turbo Pascal 7.0.

1. Розробити код для обчислення наведеного виразу.

2. Використати змінні а і b типу integer, а змінну у - типу real.

3. Завантажити середовище Turbo Pascal 7.0.

4. Увести розроблений код.

5. Виконати компіляцію коду. Виправити всі синтаксичні помилки.

6. Викопати програму. Довести, що програма виконана правильно.

7. Зберегти програм}'.

8. Завантажити програму із файла. Виконати її у покроковому режимі.

 

Словничок

 

Компіляція

програми

- автоматизоване перетворення програми з мови програмування високого рівня на машинну мову.

Мова

програмування

- сукупність символів, слів, команд і правил, за допомогою яких можна в формальному вигляді записати послідовність інструкцій для розв'язування на комп’ютері.

Розробка

алгоритму

- визначення послідовності інструкцій, у результаті виконання яких буде правильно розв'язана задача.

Формалізація

задачі

- побудова математичної моделі та її опис у математичних термінах.

 

Це матеріал з підручника Інформатика 8 клас (поглиблений рівень) Гуржій

 

Категорія: Інформатика

Автор: admin от 13-12-2016, 23:59, Переглядів: 4632