Лекція Р Тема: Мова програмування PASCAL


Скачати 140.93 Kb.
Назва Лекція Р Тема: Мова програмування PASCAL
Дата 05.04.2013
Розмір 140.93 Kb.
Тип Лекція
bibl.com.ua > Інформатика > Лекція




Лекція Р_2.

Тема: Мова програмування PASCAL
Мета: Ознайомити з мовою програмування PASCAL, розглянути основні структурні елементи, стандартні функції

План

  1. Загальна характеристика мови програмування PASCAL. Елементи мови і структура програми.

  2. Розділ описів та оголошень. Розділ операторів.

  3. Оформлення та виконання програми. Розділ оголошення сталих.

  4. Стандартні функції. Вирази

  5. Оператори вводу, виводу, присвоєння


1. Загальна характеристика мови програмування PASCAL

На початку 70-х років професор Ніклаус Вірт зі Швейцарії запропонував нову алгоритмічну мову і назвав її іменем видатного французького вченого Блеза Паскаля (1623 – 1662) – філософа і математика, винахідника першої у світі механічної обчислювальної машини, яка збереглася до наших днів. Мова Паскаль швидко здобула визнання серед спеціалістів та користувачів.

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

Основні причини, що зумовили поширення мови, такі:

1) наявність конструкцій, які дають змогу складати структуровані програми (зауважимо, що таку ж можливість сьогодні надають навчальна алгоритмічна мова та сучасні версії мови Бейсік);

2) можливість оперувати з різними типами даних, якої не мають інші мови;

3) наявність операторів, процедур та розвинутих бібліотек, які дають змогу складати ефективні програми.

Розрізняють декілька стандартів і варіантів мови: авторський, ISO, ANSI/IEEE та інші. Найбільш поширений є варіант мови, реалізований фірмою Борленд у середовищах програмування Турбо Паскаль версій 5.5, 6.0, 7.0 тощо. У стандартах мови є чимало недоліків: переобтяженість оголошеннями, описами та правилами, недосконалість деяких операторів (наприклад , оператора CASE) та механізмів обміну значеннями між програмою і процедурами, відсутність засобів реалізації модульної будови програми, засобів для графічних побудов тощо. Цих недоліків не мають версії мови Турбо Паскаль, загальний опис яких наведений у цій частині.

Елементи мови і структура програми. Звичайно тексти складаються з речень, а програма – з синтаксичних конструкцій, які називаються операторами (командами, вказівками, реченнями). Оператори будуються з неподільних елементів мови: слів, чисел, символів, операцій тощо. Слова поділяються на службові, стандартні імена та імена, які користувач дає різним об’єктам.

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

AND – і

ARRAY – масив

BEGIN – початок

CASE – вибір

CONST – сталі

DIV – ділення без остачі

DOWNTO – униз до

ELSE – якщо

END – кінець

FILE – файл

FOR – для

FUNCTION – функція

GOTO – перейти до

IF – якщо

IN – в

LABEL – позначка

MOD – остача

NIL – нуль

NOT – ні

OF – з

OR – або

PASKED – стиснутий

PROCEDURE – процедура

PROGRAM – програма

RECORD – запис

REPEAT – повторювати
SET – множина

THEN – то

TO – до

TYPE – тип

UNTIL – доки

VAR – змінні

WHILE – поки та інші

Розглянемо стандартні імена. Стандартні імена (стандартні ідентифікатори) позначаються:

1) Назви типів: boolean, char, integer, real, text тощо;

2) Назви сталих: false, true, maxint, pi тощо;

3) Назви функцій: abs, arctan, chr, cos, eof, exp, in, odd, ord, pred, round, sin, sgr, sgrt, succ, trunc тощо;

4) Назва процедур: read, readln, write, writeln тощо;

5) Назви стандартних файлів: input, output тощо.

Імена (ідентифікатори), які користувач дає об’єктам: програмам, процедурам та змінним записують за допомогою великих і малих букв, цифр та символу “_“.

Першим символом є буква. Бажано, щоб імена були змістовними.

Тепер розглянемо структуру програми. Програма складається з заголовка, розділів, описів та оголошень і розділу операторів:

PROGRAM < Назва програми > (input, output);

<�Розділи описів та оголошень>

BEGIN

<�Розділ операторів>

END.

Перше речення – це заголовок програми. Назву програми дає користувач. Тут PROGRAM – службове слово, а input (введення), output (виведення) – імена, обов’язкові в стандартній мові. У Турбо-середовищах ці два слова та дужки можна не писати. Крім того, не обов’язковим є весь заголовок програми.

Символ “;” використовують для розмежування синтаксичних конструкцій, а один чи декілька пропусків – для розмежування слів у конструкціях. Після слова BEGIN та перед END символ “;” не пишуть. Програма закінчується крапкою.

У найпростіших програмах розділів описів та оголошень може не бути.

Приклад 1. Розглянемо програму Pryklad для виведення на екран чисел 5 і 10 в окремих рядках .

PROGRAM Pryklad (input, output);

BEGIN

Writeln (5);

Writeln (10)

END.

Тут Writeln (писати) є оператором виведення на екран дисплея результатів, у нашому випадку чисел 5 і 10.

2. Розділ описів та оголошень. Розділ оголошення змінних.

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

LABEL – для оголошень позначок;

CONST –для оголошень сталих;

TYPE – для описів типів;

VAR – для оголошення змінних;

PROCEDURE – для описів підпрограм-процедур;

FUNCTION – для описів підпрограм функцій.

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

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

VAR

<�список 1 імен змінних> : <�назва типу 1>;



<�список n імен змінних> : <�назва типу n>;

Приклад 2. Опишемо змінні А та В як цілі, а Ploshcha та Suma як дійсні:

VAR

А, В : integer;

Ploshcha, Suma : real;

Тут integer (цілий) та real (дійсний) відповідні імена типів змінних.

Розділ операторів. Послідовність виконуваних операторів розташовують між службовими словами BEGIN та END:

BEGIN

<�оператор 1>;

<�оператор 2>;

. . .

<�оператор n>;

END.
Задача 1. Обчислити довжину кола та площу круга s за заданим радіусом r.

Метод розв’язування відомий: = 2r; s = r2.

Розділ операторів у відповідній програмі матиме вигляд

Readln (r);

Pi: = 3.1415;

=2*pi*r;

s:=pi*r*r;

writeln(,s);

Тут Readln (читати) – оператор введення даних з клавіатури. Далі записано три оператори присвоєння та оператор виведення результатів на екран.

3. Оформлення та виконання програми. Розділ оголошення сталих.

Суттєвих обмежень щодо оформлення програми немає. Програма – це послідовність символів, і її можна записати різними способами. Важливо, щоб програма була зрозумілою для читача. В одному рядку можна розташовувати декілька оголошень, описів чи операторів. Частини описів чи операторів можна переносити з одного рядка в інший, але не слід розривати слова, сталі, складені символи <=, >=, <> тощо. Щоб програма була зрозумілою та наочною, рекомендують таке:

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

  2. робити відступи від початку рядка нижче назв розділів, слів BEGIN та в деяких інших випадках (розглянемо далі);

  3. писати коментарі до програми.

Коментарі записують у спеціальних дужках: (*коментар*), а для мови Турбо Паскаль ще й у фігурних дужках: {коментар}.

Розглянемо задачу 1. Складемо програму для обчислення довжини кола та площі круга за заданим радіусом.

PROGRAM Oformlennia (input, output);

CONST pi =3.1415; {оголошення сталої}

VAR {оголошення змінних}

Radius : integer; {радіус}

Dov, Ploshcha : real; {довжина, площа}

BEGIN

Readln (Radius); {введення значення радіуса}

Dov := 2*pi*Radius; {обчислення довжини кола}

Ploshcha :=pi* Radius* Radius; {обчислення площі круга}

Writeln (Dov, Ploshcha) {виведення результатів}

END.

Проаналізуємо виконання програми на персональному комп’ютері в середовищі Turbo Pascal. Значення сталої рі задано в розділі оголошення сталих. Оголошення змінних дають змогу зарезервувати потрібну кількість комірок пам’яті для зберігання значень однієї цілої та двох дійсних змінних. Першим виконується оператор введення даних. Настає пауза, під час якої потрібно ввести, користуючись клавіатурою, значення радіуса (нехай цим значенням є число 5), наприклад, так: натискаємо клавішу 5 і клавішу вводу. На екрані дисплея отримуємо результати 3.1415000000Е+01 7.853750000У+01.

Перше отримане число – це значення довжини кола, а друге – площі круга. Результати виконання програми будуть більш наочними, якщо оператор виведення записати у такому вигляді:

Writeln(’ Довжина =’, Dov:7:3, ’ Площа =’, Ploshcha:7:3).

Виконаємо програму ще раз. На екрані отримаємо:

Довжина = 31.415 Площа = 78.537.

В операторі Writeln цифри 7 і 3 означають, що для зображення значень Dov та Ploshcha буде надано сім десяткових позицій, з них три – на зображення дробових частин чисел. Наочність досягається шляхом виведення на екран потрібних текстів. У списку параметрів оператора Writeln такі тексти записують у лапках типу апостроф:

’ Довжина =’ тощо.

Щоб розділ операторів був компактним та наочним, слід використовувати сталі, значення яким надають у розділі оголощення сталих CONST. Такі сталі називаються іменованими.

Розділ оголошення сталих має таку структуру:

CONST

<�ім’я сталої 1> = <�значення сталої 1>;

. . .

<�ім’я сталої n> = <�значення сталої n>;

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

4. Стандартні функції.

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

Правила запису стандартних функцій:

  1. Ім’я функції записується літерами латинського алфавіту. Ім’я складається не більше чим з шести букв.

  2. Аргумент функції записується в круглих дужках після імені функції.

  3. Аргументом функції може бути константа, змінна або арифметичний вираз.

Над аргументом Х цілого типу визначені такі стандартні математичні функції:

Sqrt (X)

Квадратний корінь з Х

Sqr(X)

Піднесення до квадрату Х

Abs(X)

Абсолютне значення аргументу Х

Ln(X)

Обчислення натурального логарифму Х

Log(X)

Обчислення десяткового логарифму Х

Exp(X)

Обчислення експоненти Х

Sin(X)

Обчислення синуса Х

Cos(X)

Обчислення косинуса Х

Arctan(X)

Обчислення арктангенса Х

Pred(X)

Дає попереднє перед Х ціле число

Succ(X)

Дає наступне після Х ціле число

Odd(X)

Дає результат логічного типу: true, якщо Х непарне число, false – якщо парне.

аб = еб*Lnа

Приклад 1. Нехай Х має значення 23. Тоді pred(X) дає 22, succ(X) дає 24, odd(X) дає true.

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

Trunc(X)

Відкидається дробова частина аргументу;

Round(X)

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

Приклад 2. Нехай змінна Х має значення 2,52. Тоді trunc(X) = 2, a round(X) = 3. Якщо Х = -2,52, то trunc(X) = -2, a rounds(X) = -3.

Розглянемо функції, призначені для опрацювання символьних даних. Нехай S позначає символьне дане: символьну сталу чи змінну, а І – числове дане. Розглянемо функції pred(S), succ(S), ord(S), та chr(I):

Pred(X)

Дає попередній перед S символ з алфавіту;

Succ(X)

Дає наступний після S символ;

Ord(S)

Дає порядковий номер символу S в алфавіті;

Cchr(I)

Дає символ, який має номер І.

Під алфавітом розуміють таблицю кодів ASCII.

Приклад 3. Розглянемо функції

Pred(’B’) дає ’A’;

Succ(‘B’)’ дає C’;

Ord(’B’) дає 66;

Chr(66) дає ‘B’.

Над даними логічного типу визначені функції pred, succ та ord. Значення false та true розглядають як упорядкований набір значень, що складається з двох елементів. Тому

Pred(true) дає false;

Succ(false) дає true;

Ord(false) дає 0;

Ord(true) дає 1.

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

Вирази.

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

  1. NOT

  2. *, /, DIV, MOD, AND (операції типу множення)

  3. +, , OR (операції типу додавання)

  4. =, < >, <, <=, >, >= (операції відношення)

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

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

  1. sqrt (2 * sqr (x) + 1) – 3 * sin (x)/(x + y) + exp (y + ln (x)).

Тут для операції піднесення до степеня використано співвідношення

xy = ey ln x.

  1. (-b + sqrt (b * b – 4 * a * c))/(2 * a)

  2. (x > 1) AND (x < 2).

5. Оператори присвоювання

Оператор присвоювання має вигляд

Ім’я змінної: = вираз

Змінна і вираз повинні бути одного типу. Виняток становить випадок дійсної змінної, коли вираз може бути і цілого типу.

Якщо, наприклад, у програмі є опис

VAR a, b, c, beta : real;

n, m : integer;

c1, c2 : char;

p1, p : boolean;
то синтаксично правильними будуть оператори:

beta: = (-b + sqrt (sqr (b) – 4 * a * c))/(2 * a)

c1: = ’ A’; с2: = ’+’; m:= ord (c1) + ord (c2)

p: = (n > 0) AND (n < = 10)

p1: = true

Присвоювання n: = a i c1: = p – помилкові.

5.2. Оператори вводу

Для введення даних використовують оператори

read (список змінних)
або

readln (список змінних)

Зауважимо, що read і readln у мові програмування Паскаль не є операторами в звичайному розумінні, а звернення до стандартних процедур введення.

Наприклад,

Read (a, b, c)

При виконанні оператора із вхідних даних (із стандартного файла input) буде взято три послідовних значення, перетворені у відповідні внутрішні подання і присвоєні змінним a, b, c.

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

Наприклад, при наявності в програмі опису

VAR a, b: real;

k, l : integer;
і оператора

read (a, b, k, l)
вхідні дані можна подати так:

2.35 – 5.01Е – 8 12 5

Виконання оператора введення в цьому випадку рівносильне виконанню чотирьох операторів присвоювання:

а: = 2.35; b: = 5.01e – 8; k: = 12; l: = 5

Оператор readln, як і read, вводить дані (із стандартного файла input), але після вибору необхідної кількості даних здійснює перехід на початок наступного рядка. Якщо, наприклад, треба послідовно виконати оператори

readln (a, b); read (k, l)
і на клавіатурі набрати дані

2.35 – 5.01Е – 8 12 5

то після введення двох перших значень (2.35 і –5.01Е – 8) курсор перейде на новий рядок і значення для k i l введені не будуть.

Для виконання оператора read (k, l) значення 12 і 5 треба набирати в новому рядку:

2.35 – 5.01Е – 8 

12 5 

Для послідовного виконання операторів

read (a, b); read (k, l)
дані слід набирати так:

2.35 – 5.01Е – 8  12 5 

Якщо список в операторі readln відсутній, то введення даних не відбувається і тільки після натискування клавіші введення здійсниться перехід до нового рядка.

5.3. Оператори виводу

Виведення інформації здійснюється операторами (точніше процедурами)

write (список елементів виведення)
або

writeln (список елементів виведення)

Елементами виведення є вирази, зокрема, змінні або константи. Тексти беремо в лапки.

Виконання оператора write автоматично не веде до виведення в новому рядку. Щоб здійснити перехід до нового рядка, використовується оператор writeln. Правила для нього такі ж, як і для оператора write, за винятком того, що після виведення всіх елементів списку вивідний пристрій переводиться на початок наступного рядка. Оператор

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

write (a, b, c);

writeln
рівносильні оператору

writeln (a, b, c)

Перед введенням даних рекомендують виводити на екран підказку про те, що саме слід ввести, наприклад, так:

write (’введіть значення радіуса r:’); readln (r);

Приклад 1. Розглянемо оператори виведення даних:

write (А, В, С);

write (’А=’, А, ’В=’, В, ’С=’, С);

write (’А=’, А:7:2, ’В=’, В:3, ’С=’, С:6:4);

У випадку перших двох операторів для зображення значень змінних А, В, С надаємо стандартне число позицій (наприклад, 18), а у випадку останнього дані виводимо так: для значення змінної А надаємо сім позицій, з них дві для зображення дробової частини числа; для значення змінної В – три позиції, а для С – шість позицій, з них чотири для дробової частини числа. Нехай змінні набули таких значень: А = -6.724, В = 25, С = 3,14159. Виконання третього оператора дасть на екрані такі результати:

А= -6.72 В= 25 С=3.1416


Схожі:

Б. В. Ващук T urbo Pascal 0
В33 Середовище програмування Turbo Pascal 0: Підруч для учнів 10 кл серед загальноосв шк. – ВВПК: „Коледж”, 2008 – 47с
Історія мов програмування
ФОРТРАН, для бухгалтерії – переважно мова КОБОЛ. Проте для системних робіт використовувалася мова програмування низького рівня –...
Тема. Створення програм лінійної структури
Формування вмінь і навиків роботи в середовищі мови програмування Object Pascal. Систематизація та застосування знань структури лінійних...
Тема. Засоби вводу/виводу за допомогою діалогових вікон
Формування вмінь і навиків використання підпрограм вводу/виводу з використанням діалогових вікон. Застосування знань структури лінійних...
Лекція Державна мова мова професійного спілкування
Евфемізм і перифраз у професійному спілкуванні Лекція Риторика і мистецтво презентації
Тема. Засоби вводу/виводу з використанням командного рядка
Формування вмінь і навиків використання підпрограм вводу/виводу з використанням командного рядка. Застосування знань структури лінійних...
Програма курсу програмування на мов і С++
Курс націлений на отримання знань і практичних навиків програмування на мовах C і C + + в рамках процедурно-орієнтованого програмування....
Основні методології (стилі, парадигми) програмування. Поняття програми....
Дів розробки програм Граді Буча “О’єктно-орієнтоване програмування (ООП) – це методологія програмування, яка заснована на представленні...
29. Опис та використання підпрограм
Реалізація базових алгоритмічних структур процедурною мовою програмування. Опис процедур та функцій процедурною мовою програмування....
2. Дробово-лінійне програмування Постановка задачі дробово-лінійного...
Дослідження операцій”, “Економетрія”, “Моделювання економіки”, “Економічна кібернетика” а також дисциплін циклу загальноекономічної...
Додайте кнопку на своєму сайті:
Портал навчання


При копіюванні матеріалу обов'язкове зазначення активного посилання © 2013
звернутися до адміністрації
bibl.com.ua
Головна сторінка