Лабораторна робота №1. Знайомство з програмним середовищем Турбо-Паскаль (1год.)
Зміст заняття: засвоєння початкових навичок роботи з середовищем, поняття про послідовність створення програми.
Лабораторна робота №2. Робота з текстовим редактором Турбо-Паскалю (1 год.) Зміст заняття: освоєння навичок редагування тексту, набір і запуск елементарної програми, поняття про структуру програми у Паскалі, робота операторів write i writeln
МОДУЛЬ І. ПОЧАТКИ.
Зміст заняття: засвоєння початкових навичок роботи з середовищем, поняття про послідовність створення програми.
1.1. Загальні відомості.
Більшу частину світового парку ПК становлять ІВМ-сумісні комп’ютери: внутрішня мова мікропроцесора у них сумісна з набором команд перших персональних комп’ютерів фірми ІВМ. Це дозволяє виконувати на всіх цих машинах однакові програми, і програмне забезпечення для таких машин стало стандартом. Приклад такого програмного забезпечення – система програмування Turbo Pascal.
Пояснимо поняття «система програмування». Програма, написана на будь-якій алгоритмічній мові перед виконанням машиною повинна бути перекладена (трансльована) в машинні коди. Це роблять програми-транслятори.
У середині 80-х років розробники програмного забезпечення перейшли від створення чистих трансляторів до зручніших для користувачів систем програмування: крім транслятора, вони містили засоби написання, редагування і відлагодження програм. Тобто система програмування може розглядатися як компілятор відповідної мови, доповнений інструментальною оболонкою для швидкої розробки програм.
Алгоритмічну мову Паскаль розробили, щоб студентам було легше засвоїти основи структурного програмування. Розроблене згодом середовище програмування ТурбоПаскаль стало дуже популярним.
1.2. Запуск Турбо-Паскаля на виконання.
Турбо-Паскаль – це багатофайлова програма, що складається з одного головного та кількох допоміжних файлів, що підключаться до роботи при потребі. Як правило всі файли, що належать Турбо Паскалю, зберігаються на диску в каталозі під довільним іменем: Pascal, T_Pascal, TP55, TP70 і т.д. Файли системи повинні зберігати імена, які їм дав розробник.
Основні файли, що забезпечують роботу Турбо-Паскаля, такі малі, що їх можна зберігати на одній дискеті. Як мінімум, потрібні 2 файли - Turbo.exe і Turbo.tpl. Їх достатньо, щоб розробити програму (якщо вона не використовує графічний режим). Головний файл, TURBO.EXE, містить ядро системи Турбо-Паскаль. Допоміжний файл TURBO.TPL - резидентну бібліотеку модулів.
Для входу в PASCAL треба його запустити (вибрати файл turbo.exe і натиснути клавішу ENTER). Запустивши вказану програму, ви потрапляєте у основний екран інтегрованого середовища розробки (ІСР). При запускові Турбо-Паскаля, на екрані з’являється зображення, наведене на рис.1.
Перша стрічка екрану – це головне меню користувача, що складається з 10 елементів:
File – містить команди роботи з файлами. Призначене для відкриття вже існуючих файлів, створення і збереження нових, виводу на друк і виходу з ІСР. Містить такі опції:
NEW - дозволяє створити новий файл;
OPEN – дає змогу відкрити файл з розширенням *.pas, збережений раніше;
SAVE – зберегти відкритий файл на диску;
SAFE AS – зберегти відкритий файл, але запитує ім’я, під яким користувач хоче зберегти файл;
SAVE ALL – зберігає всі відкриті файли, а не лише поточний; PRINT – роздруковує текст програми у текучому вікні;
EXIT – припиняє роботу з ІСР і здійснює вихід в WIDOWS.
Рис.1. Вигляд основного екрану Турбо-Паскаля
Edit – містить команди редагування тексту.
Search – містить команди швидкого пошуку компонент програми і контекстної заміни її фрагментів.
Run – містить команди запуску, виконання і трасування роботи програми.
Меню має 2 опції:
RUN – запуск програми на виконання, якщо її текст не був змінений, якщо так, то виводиться вікно з запитанням, чи потрібно її перекомпільовувати;
PARAMETRS – для того, щоб задати такі ж параметри, як при запуску програми з допомогою командної стрічки.
Compile – містить команди керівництва процесом компіляції (задають різні режими компілювання). Містить опції:
COMPILE – компілює файл у активному вікні. Якщо виявляє синтаксичну помилку, видає повідомлення про неї і встановлює курсор на місце помилки; INFORMATION – виводить інформацію про текучий (основний) файл.
Debug – команди управління відлагоджувальною інформацією.
Tools – містить команди роботи з повідомленнями ІСР і команди виклику відлагоджувальних утиліт.
Options – містить команди, що опрацьовують діалогові вікна для встановлення опцій ІСР.
Window – команди управління вікнами ІСР.
Help – містить команди виклику довідкової інформації щодо роботи ІСР і мови Turbo
Pascal.
Друга стрічка – ім’я відкритого файлу. При першому вході в систему, до збереження інформації, це ім’я завжди NONAME00.PAS. Остання стрічка містить підказки про призначення функціональних клавіш. Між цими стрічками знаходиться вікно редагування. Про роботу у ньому йтиметься згодом.
1.3. Функціональні та "гарячі" клавіші ІСР
Функціональні клавіші використовують для керівництва середовищем TURBO PASCAL. Вони позначаються F1, F2,…, F12 і розташовуються у верхньому ряді клавіатури.
Наведемо команди, котрі передаються ІСР:
F1 – виклик підказки (довідки від вбудованої довідкової служби);
F2 – записати текст програми, що редагується, в дисковий файл під іменем вказаним у другій стрічці вікна ТП;
F3 – завантажити (прочитати) текст програми з дискового файла у вікно редактора; F4 – використовується у відлагоджувальному режимі: виконати програму від початку і до стрічки, на якій розміщений курсор;
F5 – розгорнути активне вікно редактора на весь екран (ще раз – зображення стає таке ж, як було)
F6 – зробити активним наступне вікно;
F7 – використовується у відлагоджувальному режимі: при кожному повторному натисканні виконується чергова стрічка програми; якщо в рядку є виклик процедури
(функції), заходить в цю процедуру і теж виконує її пострічково;
F8 – те ж, що і F7, але процедура виконуватиметься за один крок, як одна стрічка; F9 – компілювати програму, текст якої знаходиться у вікні редагування, але не виконувати її;
F10 – перейти з вікна редагування в головне меню (верхню стрічку екрана);
Оскільки кількість потрібних команд є більшою за кількість наявних функціональних Fклавіш, їх призначення розширюють за допомогою двох спеціальних клавіш: Alt (Alternative, додаткова) і Ctrl (Control, керівництво). Поєднання реалізується так: спочатку треба натиснути Alt чи Ctrl, а потім, не відпускаючи її, натиснути потрібну функціональну. Далі наведено приклади такого поєднання і кілька «гарячих» клавіш.
Ctrl+F9 |
виконати прогон програми: компілювати програму, що знаходиться у вікні редактора, загрузити її в оперативну пам’ять і виконати, після чого повернутися в ІСР |
Alt+F5 |
перегляд результатів виконання програми: змінити вікно редактора на вікно виводу результатів работи (прогону) програми |
Esc |
закриття діалогового вікна чи вікна меню і перехід у вікно редактора |
Alt+X |
вихід з ІСР |
Ctrl+Break |
переривання виконання програми, що працює |
Alt+BackSpace |
скасувати останню дію редагування |
1.4. Послідовність створення програми.
а) запустити Паскаль; б) змінити текучу директорію на папку своєї групи на диску D; в) набрати текст програми у вікні редактора; г) відкомпілювати програму (F9); д) виправити знайдені компілятором помилки, якщо такі є; е) зберегти файл під бажаним іменем; є) запустити програму на виконання (Ctrl+F9); ж) переглянути результати роботи програми (Alt+F5).
Вимоги при захисті.
1. Студент повинен вміти запустити оболонку Турбо-Паскаль та вийти з неї, знати призначення усіх функціональних та „гарячих” клавіш.
2. Студент повинен знати послідовність створення програми.
Зміст заняття: освоєння навичок редагування тексту, набір і запуск елементарної програми, поняття про структуру програми у Паскалі, робота операторів write i writeln.
2.1. Правила набору тексту
Алфавіт мови Турбо-Паскаль складається з повного набору символів клавіатури, при цьому не розрізняються великі і малі букви. Текст набирають латинськими літерами, у вигляді цифр та інших символів, що є на клавіатурі. Пробіл використовується у якості роздільника окремих конструкцій мови, тому написання окремих слів тексту програми разом буде помилковим.
Редактор готовий до роботи, якщо у верхньому лівому куті екрану блимає курсор. Вікно редактора імітує довгий широкий листок паперу, з якого видно тільки фрагмент, а саме – верхній лівий кут. Якщо курсор доходить до нижнього краю вікна, листок прокручується на стрічку вверх, якщо ж курсор досягнув правої межі вікна, вікно при вводі наступних символів буде переміщатися вправо. Стрічка не повинна містити понад 126 символів. Курсор вказує місце на екрані, куди буде поміщений черговий символ. Для видалення попередньо введеного символа використовується клавіша «» (Backspace), символ над курсором видаляють клавішою "Del". Окрім видимих символів, у текст програми вставляються невидимі – пробіли (при натисканні клавіші пробіл) і EOL (End Of Line – ознака кінця стрічки, знаходиться в кінці кожної стрічки і поміщається в текст натисканням клавіші Enter). Невидимі символи, як і видимі, можна стирати чи «забивати» іншими. При стиранні EOL сусідні стрічки зливаються в одну, при вставці символа EOL в якуть стрічку вона ділиться на дві. Клавіші переміщення курсора.
на символ вліво – клавіша ""; |
на символ вправо- ""; |
на стрічку вверх- ""; |
на стрічку вниз- ""; |
на початок стрічки - клавіша "Home"; |
в кінець стрічки- клавіша "End"; |
на сторінку вверх - клавіша "Page Up"; |
на сторінку вниз - клавіша "Page Down"; |
на початок тексту програми – поєднання клавіш “Ctrl” і “Page Up”; |
в кінець тексту - “Ctrl” і “Page Down”. |
2.2. Робота з текстом і блоками
Редактор дозволяє копіювати, вставляти чи видаляти кілька символів одночасно. Для цього їх треба виділити – Shift+”cтрілка”. Для видалення виділеного Shift+Del, щоб скопіювати виділений фрагмент - Ctrl+Ins, вставити скопійоване - Shift+Ins. Можна також оперувати цілими кусками тексту у кілька стрічок (блоками): копіювати, видаляти, переміщувати і т.д. Перед тим, як робити якісь маніпуляції з блоком, його також слід виділити. Це робиться так: курсор поміщається в початок блоку, і натискають “Ctrl+K+B”; далі курсор переміщають на кінець блоку і натискають “Ctrl+K+K”.
Ділянка тексту буде виглядати інверсно – темні букви на світлому фоні. Тепер з блоком можна виконувати ряд операцій (вставка - помістити курсор туди, куда хочете скопіювати блок і натиснути Ctrl, K, C; переміщення: помістити курсор в те місце програми, куди слід перенести блок, натиснути Ctrl, K, V; видалення: незалежно від розташування курсора, для видалення виділеного блоку натисніть Ctrl, K, Y).
2.3. Оператори присвоєння, write i writeln.
Всі дії (оператори) у програмах виконуються над змінними. Кожен оператор відділяється від наступного з допомогою крапки з комою.
Оператор присвоєння
У загальному випадку оператор присвоєння має вигляд:
Знак присвоєння складається з двох символів: двокрапки і рівності. Наприклад,
Mols:=Mass/MolMass*Na
Дія оператора полягає в тому, що спочатку на основі текучих значень змінних обчислюється вираз, що стоїть справа від цього знаку, а отриманий результат стає новим значенням, тобто присвоюється змінній, вказаній зліва. Наприклад, в результаті виконання оператора присвоєння: Sum:=Sum+Term значення змінної Sum збільшиться на значення Term.
Оператори write і writeln
Оператор write може бути представлений як
Його виконання полягає у послідовному виводі вказаних елементів у вихідний потік. У якості елементів виводу у найпростішому випадку можна вказувати стрічки чи змінні.
Замість змінної може стояти арифметичний вираз, наприклад:
Крім оператора write, для виводу інформації у вихідний потік часто використовують оператор writeln. Принципова відмінність цих операторів між собою полягає у тому, що оператор writeln після перерахованих у дужках елементів виводу інформації передає у вихідний потік символ нової стрічки, тобто переводить курсор у новий рядок. При оформленні результатів розрахунку програми для вставки порожньої стрічки можна використати оператор writeln; (без списку елементів). Приклад:
а:=-pi; write(a:10:4); write((a+1):10:4); |
а:=-pi; writeln(a:10:4); writeln; writeln((a+1):10:4); |
|
|
Результат виконання: -3.1416 -2.1416 |
Результат виконання: -3.1416 |
-2.1416
2.4. Структура програми. Набір елементарної програми.
Наберем текст програми, натискаючи "Enter" в кінці кожної стрічки:
Program First; Const a=1; b=2;
Var c: integer;
Begin c:= a+b; write(a); write(’a’);
write(‘ abc ‘);
writeln(c); writeln('C'); End. У мові програмування Паскаль програма складається з ряду елементів. У першій стрічці тексту оголошують ім’я програми. Для цього використовується службове слово program, яке не може використовуватися в програмах для інших цілей: Program <ім’я програми>. Дана програма має назву First. Після назви програми іде ";" цей обов’язковий роздільник в Паскалі означає кінець оператора чи опису, його використання дозволяє розміщати кілька операторів в одній стрічці.
Далі починається розділ описів. В розділі описів перераховують всі величини (константи, змінні і т.д.) і підпрограми (процедури, функції), що використовуються в програмі. Розділ описів як правило складається з кількох секцій, кожна з яких починається зі слова, що її характеризує. Розділ описів нашої програми містить оголошення констант (блок const) і опис змінних (блок var).
Розділ опису констант (незмінних протягом виконання програми величин) починається у другому рядку нашої програми. У ньому перераховуються константи, що використовуються у програмі і їх значення. Слово "const" означає, що відразу за ним іде визначення однієї чи кількох констант. „Визначити константу” означає вказати її ім’я і значення, котре не буде мінятися протягом роботи програми. Константа визначається так:
сonst <ім’я константи>=<значення>;
Після значення константи обов’язково ставиться крапка з комою. Спроба змінити значення константи у програмі буде сприйматися компілятором як помилка. Константи бувають числові, символьні і логічні.
У нашій програмі описано дві числові константи.
У четвертій стрічці програми словом var починається блок опису змінних. Змінні використовуються для збереження і передачі даних всередині програми. Кожна змінна, що використовується у програмі, повинна бути описана – тобто у розділі “var” повинні бути вказані імена змінних і їх типи (щодо правил запису імен див. граматику Паскалю): var <ім’я змінної>: <тип змінної>;
Якщо змінних одного типу є кілька, їх імена записуються через кому.
У нашій програмі описано змінну цілого типу: c:integer;
Після розділу описів починається розділ операторів (основний текст програми). У розділі операторів, який завжди починається словом begin, послідовно вказуються ті дії (оператори), які повинна виконати програма. Закінчується програма на Pascal'і словом end. (з крапкою) – це також обов’язкова вимога. Все, що ви напишете після крапки, компілятор ігнорує.
У основному тексті нашої програми є 6 операторів – один присвоєння, 3 оператори write і 2 writeln.
2.5. Запуск програми.
Коли текст програми набраний, запускаємо його компіляцію (перевірку правильності написання операторів програми – Alt+F9) і генеруєм виконуваний модуль. При компілюванні система може виявити синтаксичні і частину логічних помилок. Тоді вона вкаже на першу з них і розмістить курсор у стрічці з помилкою. Виправивши її, запускаємо процес компіляції ще раз. Якщо процес завершиться без помилок, файл слід зберегти на диску (переконайтеся, що ви працюєте у директорії student). Тепер можна запускати програму командою RUN (або Ctrl+F9).
При виконанні програми у вікні з’являється екран МS-DOS, в якому відображаються етапи виконання (перемикати екрани для перегляду результатів виконання можна клавішами Alt+F5). Якщо при виконанні програми виникне помилка, система теж видає повідомлення про помилку. Якщо у програмі є логічні помилки, система їх недіагностує, просто програма буде робити не те, що ви хотіли. Виявити складні логічні помилки можна при перевірці роботи програми на контрольних прикладах.
Вимоги при захисті.
1. Студент повинен вміти редагувати текст, оперувати блоками тексту, вміти запустити набрану програму.
2. Студент повинен знати структуру операторів присвоєння, write і writeln, вміти пояснити їх роботу і відмінності між ними.
3. Студент повинен вміти передбачити реакцію компілятора на зміни в тексті програми, внесені викладачем (тобто чи виникне помилка, якщо переназвати змінну, змінити послідовність операторів, видалити крапку з комою і т.д.), і як виглядатиме результат виконання зміненої програми.