Розробка програм у середовищі програмування Turbo Pascal 70

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Введення

Pascal - це імперативна мова програмування, розроблений Никлаусом Віртом в 1970 в якості мови навчання структурному програмуванню. Назва мови дано на честь видатного французького математика, фізика, літератора і філософа Блеза Паскаля. Спочатку мова компілювався в байт-код, подібно до мови Java.

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

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

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

У програмі, написаній на мові Pascal, можуть бути наступні розділи:

* Заголовок програми; program ім'я;

* Список використовуваних модулів; uses cписок ісп.модулей;

* Розділ оголошення змінних; var

* Розділ оголошення процедур і функцій; procedure, function

Begin

* Тіло програми. End.

Тема програми складається з зарезервованого слова program та імені програми (зі списком параметрів, укладених в круглі дужки). Завершується заголовок крапкою з комою.

Порядок розміщення розділів довільний. Розділи можуть бути відсутні.

Тіло програми починається словом begin, а закінчується словом end з точкою, яка є ознакою кінця програми.

const ім'я: тип = значення;

Звичайні константи можуть бути цілого, речового, символьного, логічного типу і типу string, типізовані константи-якого типу, крім типу файл.

Розділ змінних:

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

var список1: тіп_1;

список2: тіп_2;

спісок_1, спісок_2-перелік змінних через кому. Тип змінної можна задати двома способами:

а) вказати ім'я типу з розділу type,

б) описати сам тип.

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

Детальніше див Процедури і функції.

Тіло програми містить оператори мови Pascal.

Integer

-32768 .. 32767

знаковий

2

Речові типи данниж.

Тип

Діапазон

Число знечащіх цифр

Розмір в байтах

real

2.9 * 10 ^ -39 ..

1.7 * 10 ^ 38

11-12

6

Тип comp фактично є типом цілих чисел збільшеного діапазону, однак порядковим не вважається.

Типи single, double, extended, comp можна використовувати в програмах тільки при наявності арифметичного співпроцесора або включеного емулятора співпроцесора.

Не можна присвоювати змінній значення з опису іншого типу.

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

У наступному фрагменті з зовнішнього носія вводиться порядковий номер об'єкта зі списку значень перечисляемого типу. Оператор case присвоює відповідне значення змінної clr.

ВИРАЖЕННЯ

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

Операнди виразів:

Операндами є константи, змінні, стандартні функції (і написані сам-но).

Строкові або символьні константи:

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

Максимальний розмір рядки-не більше 126 символів.

Рядок, що складається з одного символу, називається символьної константою.

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

Змінними називаються параметри програми, значення яких можуть змінюватися в процесі її виконання.

Всі використовувані в програмі змінні повинні бути визначені з зазначенням їхніх типів. Змінні визначаються:

  • в розділі оголошення змінних програми

  • в розділі оголошення змінних підпрограми

  • в розділі оголошення змінних модуля

  • в заголовку підпрограми

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

var

x, y, z: real;

i, j, s: integer;

У розділі оголошення змінних поряд з зумовленими типами можна використовувати типи, оголошені перед цим у розділі оголошення типів, а також нові, що вводяться тільки для конкретних змінних.

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

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

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

  • арифметичні функції

Знаки операцій

Всі операції в Pascale можна розбити на наступні групи:

  • арифметичні операції

  • логічні операції

  • операції з бітами інформації

  • операції з рядками

  • операції відносини

  • адресна операція @

    Функція

    Призначення

    Тип результату

    abs (x)

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

    Збігається з типом х

    arctan (x)

    Арктангенс аргументу

    Речовий

    cos (x)

    Косинус аргументу

    Речовий

    exp (x)

    х

    е

    Речовий

    Frac (x)

    Дробова частина числа

    Речовий

    Int (x)

    Ціла частина числа

    Речовий

    Ln (x)

    Натуральний логарифм

    Речовий

    Pi

    Значення величини

    pi = 3.1415926535897932385


    Sin (x)

    Синус аргументу

    Речовий

    Sqr (x)

    Квадрат аргументу

    Збігається з типом х


    Sqrt (x)

    Квадратний корінь аргументу

    Речовий

    Якщо в операціях використовуються кілька даних, то їх типи повинні бути або ідентичними, або сумісними.

    Арифметичні операції

    Знак

    Операція

    Типи операндів

    Тип результату

    +

    Додавання

    Цілі

    Хоча б один речовий

    Цілий

    Речовий

    -

    Віднімання

    Цілі

    Хоча б один речовий

    Цілий

    Речовий

    *

    Множення

    Цілі

    Хоча б один речовий

    Цілий

    Речовий

    /

    Розподіл

    Цілі або речові

    Речовий

    div

    Розподіл цілих чисел

    Цілі

    Цілий

    mod

    Залишок від ділення цілих чисел

    Цілі

    Цілий

    Знаки операцій +, - і * використовуються також і з іншими типами операндів, але тоді вони мають інший зміст. При використанні знака операції, що є службовим словом, він повинен бути відділений від операндів хоча б одним роздільником: a mod b.

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

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

    Операції відносини.

    Операції відносини призначені для порівняння двох величин (величини повинні бути порівнянних типів). Результат порівняння має логічний тип.

    Операція

    Призначення

    =

    одно

    <>

    не дорівнює

    <

    менше

    <=

    менше або дорівнює

    >

    більше

    > =

    більше або дорівнює

    Круглі дужки.

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

    Порядок обчислення виразів.

    Група

    Тип дій

    Операції або елементи

    1

    Обчислення в круглих дужках

    ()

    2

    Обчислення значень функції

    Функції

    3

    Унарні операції

    @, Not, унарний +, унарний -

    4

    Операції типу множення

    *, /, Div, mod, and, shl, shr

    5

    Операції типу додавання

    +, -, Or, xor

    6

    Операції відносини

    =.<>,<,>,<=,>=, In

    Прості оператори

    До простих операторам відносяться ті оператори, які не містять у собі інших операторів:

    • оператор присвоювання;

    • звернення до процедури;

    • оператор безумовного переходу goto;

    • порожній оператор.

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

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

    Для цього використовується знак присвоювання: =, ліворуч від якого записується ім'я змінної або функції, якій присвоюється значення, а праворуч-вираз, значення якого обчислюється перед присвоюванням.

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

    X: = y;

    z: = a + b;

    r: = (i> 0) and (i <100);

    Оператор безумовного переходу goto. Використання міток.

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

    Мітки, використовувані в паскалі повинні бути двох типів:

    • цілим числом в межах від 0 до 9999;

    • звичайним ідентифікатором.

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

    • складовою

    • умовний оператор if

    • умовний оператор case

    • оператор циклу repeat

    • оператор циклу while

    • оператор циклу for

    • оператор над записами with

    Cоставной оператор

    Складовою оператор представляє з себе сукупність послідовно виконуваних операторів, укладених в операторні дужки begin і end;

    begin

    оператор1;

    оператор2;

    .................

    операторn;

    end;

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

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

    Умовний оператор.

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

    Структура умовного оператора має наступний вигляд:

    IF <умова> THEN <оператор1> ELSE <оператор2>,

    де IF, THEN, ELSE - зарезервовані слова (англ.еслі, то, інакше);

    <Умова>-довільне вираження логічного типу;

    <Оператор1>, <оператор2>-будь-які оператори Паскаля.

    Умовний оператор працює за наступним алгорітму.Вначале

    виконується умовне вираженіе.Еслі результат є TRUE, то ви-

    ся <оператор1>, а <оператор2> пропускається; якщо результат є FALSE, то, навпаки, <оператор1> пропускається, а виконується <оператор2>.

    Частина оператора ELSE <оператор2> може бути опущена.Тогда при значенні умовного вираження ТRUE виконується <оператор1>, у противному випадку цей оператор пропускається.

    Оскільки кожен з операторів <оператор1> та <оператор2> може бути оператором будь-якого типу, в тому числі і умовним, а в той же час не кожен з "вкладених" умовних операторів може мати частину ELSE <оператор2>, то виникає неоднозначність трак-товки умов. Ця неоднозначність у Паскалі вирішується таким чином: будь-яка зустрілася частина ELSE відповідає найближчою до неї "зверху" частини THEN умовного оператора. Наприклад:

    Приклад програми, що аналізує належить точка з координатами x, y прямокутника з координатами вершин x1, x2, y1, y2.

    РЯДКИ

    ОПИС ТИПУ

    Для обробки послідовностей символів в ТУРБО-ПАСКАЛЬ передбачені рядкові типи. Рядкові типи - це структурні типи. Кількість символів в рядку (довжина рядка) може динамічно змінюватися від 0 до 255. Для визначення даних строкового типу використовується ідентифікатор string, за яким слід укладена в квадратні дужки значення максимально допустимої довжини рядка даного типу. Якщо розмір рядки не вказаний, то він вважається рівним 255.

    Мінливу строкового типу можна визначити через опис типу в розділі опису типів або безпосередньо в розділі опису змінних. Строкові дані можуть використовуватися також у якості констант. Неприпустимо застосування строкових змінних в якості селектора в операторі case. Строкова мінлива займає певну максимальну довжину байт в пам'яті плюс один байт, що містить її поточну довжину. Окремі символи в рядку індексуються від 1 до довжини рядка.

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

    ПРОЦЕДУРИ

    Delete (St, Pos, N) - видалення N символів рядка St, починаючи з

    позиції Pos. Якщо значення Pos> 255, виникає помилка.

    Значення St Вираз Результат

    'Річка Волга' Delete (Str, 1, 5); 'Волга'

    Insert (Str1, Str2, Pos) - вставка рядка Str1 в рядок Str2,

    починаючи з позиції Pos.

    П р и м і р:

    Var S1, S2, S3: string [11];

    ...

    S1: = 'ЄС'; S2: = 'ЕВМ1841'; S3: = Insert (S1, S2, 4);

    Р е із у л ь т а т:

    'ЕОМ ЄС 1841'.

    Str (IBR, St) - перетворення числового значення величини IBR і приміщенні результату в рядок St. Після IBR може записуватися формат, який нагадує формат виводу.

    Значення Вираз Результат

    4.8E +03 Str (IBR: 10, St); '4800'

    Val (St, IBR, Cod) - перетворює значення St у величину цілочисельного або дійсного типу і поміщає результат в IBR. Значення St НЕ

    повинно містити незначущих пробілів на початку і в кінці. Cod - цілочисельна змінна.

    Якщо під час операції перетворення помилки не виявлено, значення Cod дорівнює нулю, якщо помилку виявлено, Cod буде містити номер позиції першого помилкового символу, а значення IBR не визначено.

    Записи.

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

    Наприклад, щоб описати в програмі час доби (10.45 ранку або 7.15 вечора), можна використовувати структуру даних наступного формату:

    годинник

    хвилини

    до полудня

    в якій 10.45 ранку може зберігатися як

    10

    45

    true

    а 7.15 вечора:

    7

    15

    false

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

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

    До кожного компоненту запису можна звернутися, використовуючи ім'я змінної типу запису та ім'я поля, розділені крапкою: now.hour, later.befornoon;

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

    Вхідні дані: Кожна вводиться рядок містить інформацію про продаж в такій формі:

    рік продажу: ціле в діапазоні 1900 .. 2099;

    код продукції: чотиризначне ціле;

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

    Масиви записів.

    Ввести список студентів з 5 осіб, що включає в себе прізвище (10 символів), рік народження (чотиризначне ціле), оцінки (масив з 5 цілих чисел).

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

    ПРОЦЕДУРИ і ФУНКЦІЇ

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

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

    ПІДПРОГРАМА-ПРОЦЕДУРА

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

    • розділ описів (міток, констант, типів, змінних процедур і функцій);

    • розділ операторів, що представляє собою складений оператор BEGIN-END.

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

    Заголовок процедури має вигляд:

    PROCEDURE ім'я (список формальних параметрів);

    де PROCEDURE-службове слово, а ім'я-ім'я процедури, що визначається у відповідності із загальними правилами утворення ідентифікаторів; список формальних параметрів-перелік імен для позначення вихідних даних і результатів роботи процедури із зазначенням їхніх типів.

    Допускається опис процедури не містить формальних параметрів:

    PROCEDURE ім'я;

    Будь-яка підпрограма-процедура може утримувати свої внутрішні чи вкладені процедури.Степень вкладеності визначається можливостями машини.

    Закінчується блок процедури крапкою з комою.

    У заголовку процедури з ім'ям STEP1 перераховані парамет ри N, X, що визначають вихідні дані програми і параметр Y, що позначає значення бажаного ступеня-результат виконання процедури.Указан також тип всіх формальних параметров.Подроб-ній про параметри буде расказать нижче. Звернення до підпрограми-процедури

    Опис процедури, розташоване в розділі описів, саме по собі ніяких дій не визивает.Чтоби виконати процедуру необхідно в потрібному місці програми помістити обра-щення ней.Обращеніе проводиться за допомогою оператора виклику процедури або оператора процедури, що має вигляд:

    ім'я (список формальних параметрів);

    де ім'я-ім'я викликається процедури;

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

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

    ФУНКЦІЇ

    Тема содеpжит заpезеpвіpованное слово

    FUNCTION, ідентіфікатоp (ім'я) функції, укладений у кpуглие дужки, необов'язковий-ний список фомальних паpаметpов і тип возвpащается функцією значення. FUNCTION <ім'я> {(фоpмально паpаметpа)}: <тип результату>;

    Ім'я функції-унікальний ідентіфікатоp в пpеделах блока.Возвpащаемий pезультат може мати будь-який скаляpний тип, тип string і тип "покажчик". Тіло функції пpедставляет собою локальний блок, за стpуктуpе аналогічний пpогpамме:

    function <ім'я> {(фоpмально паpаметpа)}: <тип результату>;

    <pаздели опісаній>

    begin

    <pаздел опеpатоpов>

    end;

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

    Процедурні типи даних.

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

    Опис змінних процедурного типу:

    type імя_тіпа1 = procedure (формальние_параметри);

    імя_тіпа2 = function (формальні параметри): тип;

    var імя1: імя_тіпа1;

    імя2: імя_тіпа2;

    Всі процедури і функції, імена яких присвоюються процедурних змінним, необхідно транслювати в режимі {$ F +}. Вкладені функції і процедури, тобто , Описані усередині інших процедур, з процедурними змінними використовувати нельзя.Ето не повинні бути також стандартні роцедури і функції.

    ОПЕРАТОРИ ВВЕДЕННЯ - ВИВЕДЕННЯ

    Для введення даних у мові ПАСКАЛЬ передбачені стандартні процедури READ і

    READLN. Разллічают три види операторів вводу:

    а) READ (a1, a2 ,..., aN)-кожне вводиться значення поллучают послледовательно змінні a1, a2 ,..., aN

    б) READLN (A1, A2 ,..., An)-змінним A1, A2 ,..., An прісвіваются послідовно вводяться значення, після чого наступний оператор введення вводить дані з нового рядка.

    в) READLN-перехід на новий рядок при введенні.

    У мові ПАСКАЛЬ допускається вводити цілі, дійсні та символьні дані. Логічні дані вводити не дозволяється.

    Введення числових даних

    Числові дані, цілі та дійсні, повинні розділяться пропуском або клавішею ENTER. Прогалини та ENTER перед числом ігноруються.

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

    READ (A, B, C), на клавіатурі необхідно набрати три дійсні числа, після чого з нового рядка два цілих числа відповідно оператору

    READ (K, T), наприклад:

    0.5 6.23 -7.1 [enter]

    Березень 1948 [enter]

    ВВЕДЕННЯ СИМВОЛЬНИХ ДАНИХ

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

    Приклад введення:

    var a, b, c: char;

    ...........

    read (a, b, c);

    Якщо при введенні ввести дані - SNR [enter] - отримаємо: A = 'S', B = 'N', C = 'R'

    При введенні даннихв вигляді: - SNR [enter] - отримаємо: A = 'S', B = '', C = 'N'

    ОПЕРАТОР ВВЕДЕННЯ ДЛЯ ЧИТАННЯ ФАЙЛУ

    Оператор вводу для читання файлу володіє всіма свойстваміі звичайного оператора READ. Вкачестве параметрів можуть бути змінні; кожна змінна повчає значення одного еемента зчитаного із зовнішнього Файа.

    Процедура READ (F1, X) застосовується для зчитування (по одному) даних із зовнішнього файлу в змінну X.

    ОПЕРАТОР ВИВЕДЕННЯ.

    Опеатор висновку даних з пам'яті ЕОМ на екран дисплея має три форми:

    1) WRITE (b1, b2, ... bn)-виводить послідовно значення b1, b2 ,..., bn;

    2) WRITELN (b1, b2 ,..., bn)-виводить послідовно значення b1, b2 ,..., bn і здійснює перехід на новий рядок;

    3) WRITELN-здійснює перехід на новий рядок при виведенні даних.

    Як параметри b1, b2 ,..., bn можуть бути цілі, дійсні, символьні і логічні змінні, а так само символьні константи. Допускається висновок даних з форматами і без них. Форма представлення виведених даних залежить від типу даних: значення цілих змінних виводяться як цілі числа, значення дійсних змінних-у вигляді мантиси і десяткового порядку, значення символьних змінних-у вигляді окремих символів, значення логічних змінних-у вигляді TRUE або FALSE.

    Для виведених значень змінних відводяться наступні поля: 13-для цілого числа ,13-для дійсного, 1-для символу ,6-для логічних данних.Еслі ціле число займає позицій менше, ніж 13, то відповідне поле перед числом заповнюється пробеламі.Еслі відсутня формат для дійсного числа, воно виводиться у формі з плаваючою крапкою. Наприклад число Z = 10.9 при виведенні у вигляді WRITE (`Z =`, Z) на екрані буде представлено

    Z = 1.090000E +01

    Символьна константа (рядок) виводиться явно в тому вигляді, як вона записана але без апострофів. Для наочності виведених значень прредусмотрени формати. Вони вказуються за змінної в операторі WRITE через двокрапку. Для дійсних змінних формат має вигляд:

    a: m: n

    де а-змінна, m-спільне поле виведеного числа (включаючи знак числа, цілу частину числа, крапку і дробову частину); n-поле дробової частини.

    Як m і n можуть бути як цілі змінні, вирази, так і цілі

    константи. Наприклад:

    WRITE (SK: M: N, FGH: 7:2);

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

    Для інших типів даних формат має вигляд: a: m

    Наприклад:

    WRITE (K: 5, C: 4);

    Для виведення декількох прогалин символ пропуску вказується з форматом,

    Наприклад: ``: 7

    Для пpопуска порожніх позицій пеpед виведеними даними або між ними можна використовувати фоpмат для символу пpобел, напpимеp

    WRITE (``: 5, A: 3, ``: 7, B: 4)

    МОДУЛІ

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

    Модуль складається з наступних частин:

    а) заголовок модуля

    б) інтерфейс модуля

    в) виконавча частина модуля

    г) секція ініціалізації

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

    Тема модуля

    Заголовок модуля складається із зарезервованого слова unit та ідентифікатора.

    Unit имя_модуля;

    Модуль повинен бути поміщений у файл, ім'я якого збігається з ім'ям модуля, а його розширення повинно бути. Pas.

    Інтерфейс модуля.

    Через інтерфейс здійснюється взаємодія основної програми з модулем (модуля з модулем). В інтерфейсі вказуються константи, типи, змінні, процедури і функції, які можуть бути використані основною програмою (модулем) при виклику цього модуля. Інтерфейс починається словом interface. Далі після слова uses вказуються імена модулів, які використовуються даним модулем (необов'язкова частина). Після цього можуть бути: розділ оголошення констант, розділ оголошення типів, розділ оголошення змінних, розділ оголошення процедур і функцій. Оголошення процедури може містити директиву inline. У розділі оголошення процедур і функцій вказуються лише заголовки програм (за винятком тих, які використовують директиву inline). Самі підпрограми наводяться у виконавчій частини. У інтерфейсах різних модулів неприпустимо циклічне звернення один до одного.

    Виконавча частина модуля.

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

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

    Секція ініціалізації.

    У деяких випадках перед зверненням до модуля слід провести його ініціалізацію (встановити зв'язок з тими чи іншими файлами, ініціалізувати якийсь змінні). Ця секція починається зі слова begin, після якого йдуть виконуються оператори, а потім слово end. (C точкою).

    Використання модуля в основній програмі.

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

    Модуль Crt

    Mодуль Crt містить константи, змінні і підпрограми, призначені для роботи з консоллю.

    На відміну від стандартного вводу-виводу, коли він здійснюється через операційну систему, підпрограми модуля Crt працюють з BIOS, і навіть безпосередньо з відеопам'яттю.

    При роботі з екраном через модуль Crt весь екран розбивається на окремі рядки, а кожен рядок - на окремі позиції, в кожну з яких можна помістити один символ, (в тому числі і пробіл). Т.ч. весь екран розбивається на окремі неподільні прямокутні елементи. Для кожного елемента можна задати колір фону і колір символу. Крім того, символ можна зробити мерехтливим.

    Модуль Crt дозволяє працювати не тільки з

    всім екраном, але і виділяти в ньому прямокутні вікна. Будь-яке вікно задається своїм лівим верхнім кутом і правим нижнім кутом. Ці кути, як і будь-яке положення на екрані, задаються двома координатами X і Y.

    Наведені нижче процедури і функції розширюють можливості використання текстового режиму екрану, знаходяться в стандартному модулі CRT.TPU і будуть доступні в програмі після оголошення USES CRT.

    1) Функція без параметрів KeyPressed повертає true, якщо на клавіатурі була натиснута будь символьна клавіша, і false у противному випадку. Не затримує виконання програми.

    2) Функція без параметрів ReadKey повертає символ натиснутою клавіші без відлуння повтору на екрані. Призупиняє виконань програми до натискання на будь-яку клавішу.

    3) Функції без параметрів WhereX, WhereY повертають горизонтальну або вертикальну координату поточної позиції курсору щодо поточного вікна.

    4) Процедура без параметрів CIrEol видаляє всі символи оттекущей позиції курсору до кінця рядка без переміщення курсору.

    5) Процедура без параметрів DelLine видаляє рядок, на якому

    знаходиться курсор, і переміщує всі рядки нижче цього рядка на

    рядок вгору. Нижня рядок очіщается.6) Процедура без параметрів ClrScr очищає екран і поміщає курсор у верхній лівий кут.

    7) Процедура Delay призупиняє роботу програми на

    вказане число мілісекунд (t). DELAY (t);

    8) Процедура GotoX, Y переміщує курсор в точку з заданими

    координатами X, Y текстового екрану або вікна, якщо воно задано.

    GOTOXY (X, Y);

    Коди квітів

    Black

    0

    Чорний

    Blue

    1

    Синій

    Green

    2

    Зелений

    Cyan

    3

    Блакитний

    Red

    4

    Червоний

    Magenta

    5

    Фіолетовий

    Brown

    6

    Коричневий

    LightGray

    7

    Світло-сірий

    DarkGray

    8

    Темно-сірий

    LightBlue

    9

    Світло-синій

    LightGreen

    10

    Світло-зелений

    LightCyan

    11

    Світло-блакитний

    LightRed

    12

    Рожевий

    LightMagenta

    13

    Світло-фіолетовий

    Yellow

    14

    Жовтий

    White

    15

    Білий

    Blink

    128

    Мерехтіння символів

    Кольори з кодами від 0 до 7 включно можна використовувати як для символів, так і для фону. Інші кольори і код мерехтіння можна використовувати тільки для символів.

    Pascal - це імперативна мова програмування, розроблений Никлаусом Віртом в 1970 в якості мови навчання структурному програмуванню. Назва мови дано на честь видатного французького математика, фізика, літератора і філософа Блеза Паскаля. Спочатку мова компілювався в байт-код, подібно до мови Java.

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

    Змінні модуля Crt.

    Ім'я

    Тип

    Призначення


    CheckBreak

    Boolean

    Дозвіл аналізу Ctrl + Break

    CheckEof

    Boolean

    Дозвіл приміщення ознаки кінця файлу

    CytcrSnow

    Boolean

    Дозвіл придушення "снігу"

    DirectVideo

    Boolean

    Дозвіл прямої адресації відеопам'яті

    LastMode

    Word

    Поточний текстовий режим

    TextAttr

    Byte

    Поточні атрибути тексту

    WindMin

    Word

    Координати лівого верхнього кута

    WindMax

    Word

    Координати правого нижнього кута вікна

    Змінна CheckBreak управляє роботою програми. Якщо ця змінна дорівнює true, то комбінація клавіш Ctrl + Break викликає припинення роботи програми. Змінна CheckEof управляє розміщенням ознаки кінця файлу. Якщо вона дорівнює true, то комбінація клавіш Ctrl + Z поміщає у файл ознака кінця файлу. Прерменная СheckSnow (якщо вона дорівнює true) дозволяє придушення "снігу" на екрані для відеоадаптерів CGA. Змінна DirectVideo (якщо вона дорівнює true) дозволяє безпосередній запис інформації процедурами Write і Writeln в відеопам'ять. У змінній LastMode поміщається значення поточного текстового режиму, встановленого процедурою TextMode. Змінна TextAttr містить встановлені атрибути (колір фону і символів) тексту. У змінних WindMin і WindMax Знаходяться координати вікна.

    Процедури і функції модуля Crt.

    Ім'я процедури (функції)

    Призначення

    procedure AssignCrt (var F: Text);

    Пов'язує текстовий файл з пристроєм CRT. F-файлова змінна типу text, що зв'язуються з пристроєм CRT.

    procedure ClrEof;

    Видаляє всі символи від курсору (включно) до кінця рядка, заповнюючи цю ділянку рядка кольором фону.

    procedure ClrScr;

    Очищає поточне вікно, заповнюючи його кольором фону і поміщає курсор в його лівий ерхнЯЯ кут з координатами (1,1).


    procedure Delay (Ms: word);

    Задає затримку виконання програми в Ms мілісекундах.

    procedure DelLine;

    Видаляє рядок, в якій знаходиться курсор.


    procedure GotoXY (X, Y: Byte);

    Переміщує курсор до елемента екрана із заданими координатами.

    X, Y-координати елемента екрана (відраховуються від лівого верхнього кута поточного вікна)

    procedure HighVideo;

    Встановлює високу яскравість символів (замінює кольору 0-7 на 8-15)

    procedure InsLine;

    Вставляє порожню рядок на екрані в місці розташування курсора і заповнює її кольором фону.

    procedure LowVideo;

    Встановлює малу яскравість символів (замінює кольору 8-15 на 0-7)

    procedure NormVideo;

    Встановлює первинну яскравість символів, що виводяться далі на екран.

    procedure NoSound;

    Вимикає джерело звуку.

    procedure Sound (Hz: word);

    Запускає джерело звуку з частотою Hz герц.

    procedure TextBackGround (color: byte);

    Встановлює колір фону. Color-задається колір фону.

    procedure TextColor (Color) Byte;

    Встановлює колір сімволов.Color-задається колір символів.

    procedure TextMode (Mode: word);

    Встановлює текстовий режим, збільшує поточне вікно до цілого екрана, встановлює змінним DirectVideo і CheckSnow значення true.Помещает значення поточного режиму в змінну LastMode, запускає процедуру NormVideo. Mode-необхідний текстовий режим.

    procedure Window (X1, Y1, X2, Y2: Byte);

    Визначає розміри вікна на екрані і поміщає курсор у лівий верхній кут вікна з координатами (1,1)

    X1, Y1-координати лівого верхнього кута екрану

    X2, Y2-координати правого нижнього кута екрану.

    Якщо хоча б одна з координат неприпустима, то процедура не виконується.

    Function KeyPressed: boolean;

    Аналізує натискання клавіші клавіатури (за винятком допоміжних клавіш-Shift, Alt, NumLock і т.п.). Результат - true, якщо клавіша на клавіатурі натиснута і false - в протилежному випадку.

    function Readkey: char;

    Зчитує символ з клавіатури і звільняє буфер клавіатури від зчитаного символу.

    function WhereX: Byte;

    Повертає поточну координату X курсору

    function WhereY: byte:


    Повертає поточну координату Y курсору

    Приклад програми, що виконує висновок на екран дисплея меню наступного виду:

    Виберіть режим

    Введення і коректування даних

    Розрахунок властивостей

    Вибір складу

    Графка

    program menu;

    uses Crt; label 1,2;

    type

    mas = array [1 .. 4] of string [33];

    const Stor: mas = ('Введення і коректування даних',);

    'Р а з ч е т з в о ї с т в',

    'В и б о р з о с т а в а',

    ('Г р а ф і к а');


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

    При натисканні цих клавіш генерується звук, тривалістю 0.5 сек.

    При цьому рядок, на яку падає вибір, виділяється кольором і фоном.

    Вибір фіксується за допомогою клавіші ENTER

    Після цього видається повідомлення про обраний режим.

    У програмі використовуються повертаються коди клавіатури:

    клавіша

    код

    0 75

    0 77

    0 72

    0 80

    enter

    13

    Коди квітів

    Ім'я

    Значення

    Призначення

    Black

    0

    Чорний

    Blue

    1

    Синій

    Green

    2

    Зелений

    Cyan

    3

    Блакитний

    Red

    4

    Червоний

    Magenta

    5

    Фіолетовий

    Brown

    6

    Коричневий

    LightGray

    7

    Світло-сірий

    DarkGray

    8

    Темно-сірий

    LightBlue

    9

    Світло-синій

    LightGreen

    10

    Світло-зелений

    LightCyan

    11

    Світло-блакитний

    LightRed

    12

    Рожевий

    LightMagenta

    13

    Світло-фіолетовий

    Yellow

    14

    Жовтий

    White

    15

    Білий

    Коментар до кінця рядка коментарі, що можуть бути вкладеними

    (*...*) Або {...}


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

    [A-Za-z_] [A-Za-z0-9_] *

    Регулярний вираз ідентифікатора функції

    [A-Za-z_] [A-Za-z0-9_] *


    Присвоєння значення змінної

    : =

    Оголошення змінної

    variable: type

    Угруповання виразів

    (...)

    Блок

    begin ... end

    Тотожне рівність

    =

    Тотожне нерівність

    <>

    Порівняння

    <> <=> =

    Визначення функції

    function f (p1: type1, p2: type2, ...): returntype

    Виклик функції

    f (a, b, ...)

    Виклик функції без параметрів

    f

    Послідовність

    ;

    Якщо - то

    if condition then

    Якщо - то - інакше

    if condition then ... else ...

    Нескінченний цикл

    while true do ...

    Додати в блог або на сайт

    Цей текст може містити помилки.

    Програмування, комп'ютери, інформатика і кібернетика | Курсова
    137.7кб. | скачати


    Схожі роботи:
    Розробка програм у середовищі програмування Turbo Pascal 7 0
    Складання програм для вирішення задач на мові програмування Turbo Pascal
    Розробка в середовищі Turbo Pascal програми сортування елементів рядків матриці
    Програми в середовищі Turbo Pascal
    Обробка масивів даних у середовищі Turbo Pascal
    Модульне програмування Turbo Pascal
    Мова програмування Turbo Pascal
    Програмування трьохмірної графіки та анімації засобами Turbo Pascal
    Розробка довідкової системи на Turbo Pascal
    © Усі права захищені
    написати до нас