ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Алгоритмічний мову Паскаль
         

     

    Інформатика, програмування
    Основні поняття алгоритмічного мови
    1. ОСНОВНІ ПОНЯТТЯ Алгоритмічні мови
    СКЛАД МОВИ. Звичайний розмовна мова складається з чотирьох основних елементів:
    символів, слів, словосполучень і пропозицій. Алгоритмічний мова містить
    подібні елементи, тільки слова називають елементарними конструкціями,
    словосполучення-виразами, пропозиції-операторами. Символи, елементарні
    конструкції, вирази й оператори складають ієрархічну структуру, оскільки
    елементарні конструкції утворюються з послідовності символів,
    вираження-це послідовність елементарних конструкцій і символів, а
    оператор-послідовність виразів, елементарних конструкцій і символів.
    ОПИС МОВИ є опис чотирьох названих елементів. Опис символів
    полягає в перерахуванні припустимих символів мови. Під описом елементарних
    конструкцій розуміють правила їх утворення. Опис виразів-це правила
    освіти будь-яких висловлювань, які мають сенс у даному мовою. Опис операторів
    складається з розгляду всіх типів операторів, допустимих в мові. Опис
    кожного елемента мови задається його синтаксис і семантика. Синтаксичні
    визначення встановлюють правила побудови елементів мови. Семантика
    визначає зміст і правила використання тих елементів мови, для яких були
    дані синтаксичні визначення.
    СИМВОЛИ мови-це основні неподільні знаки, в термінах яких пишуться всі
    тексти на мові.
    ЕЛЕМЕНТАРНОГО КОНСТРУКЦІЇ-це мінімальні одиниці мови, що мають самостійний
    сенс. Вони утворюються з основних символів мови.
    Вирази в алгоритмічній мові складається з елементарних конструкцій і
    символів, воно задає правило обчислення деякого значення.
    ОПЕРАТОР задає повний опис деякої дії, що необхідно
    виконати. Для опису складного дії може знадобитися група операторів.
    У цьому випадку оператори об'єднуються в складову ОПЕРАТОР або БЛОК.
    Дії, задані операторами, виконуються над ДАНИМИ. Пропозиції
    алгоритмічної мови, в яких даються відомості про типи даних, називаються
    Опису або неісполняемимі операторами.
    Об'єднана єдиним алгоритмом сукупність описів і операторів утворює
    ПРОГРАМУ на алгоритмічній мові.
    У процесі вивчення алгоритмічного мови необхідно відрізняти алгоритмічний
    мову від тієї мови, за допомогою якого здійснюється опис досліджуваного
    алгоритмічної мови. Звичайно досліджуваний мову називають просто мовою, а мова, в
    термінах якого дається опис мови, що вивчається - метамови.
    Синтаксичні визначення можуть бути задані формальними або неформальним
    способами. Існують три формальних способи:
    -металінгвістіческая символіка, звана Бекуса-Наура формулами;
    -синтаксичні діаграми;
    -скобочние конструкції.
    Ми в подальшому викладі будемо користуватися неформальним способом.
    Основні символи мови-букви, цифри та спеціальні символи-складають його
    алфавіт. ТУРБО ПАСКАЛЬ включає наступний набір основних символів:
    1) 26 латинських рядкових і 26 латинських великих літер:
    ABCDEFGHIJKLMNOPQRSTU VWXYZ
    abcdefghijklmnopqrstu vwxyz
    2) _ підкреслення
    3) 10 цифр:
    0 1 2 3 4 5 6 7 8 9
    4) знаки операцій:
    + - */= <> =: = @
    5) обмежувачі:
    . , '() [] (..) () (* *) .. :;
    6) специфікатор:
    ^ # $
    7) службові (зарезервовані) слова:
    ABSOLUTE EXPORTS LIBRARY SET ASSEMBLER EXTERNAL MOD SHL AND FAR NAME SHR ARRAY
    FILE NIL STRING ASM FOR NEAR THEN ASSEMBLER FORWARD NOT TO BEGIN FUNCTION OBJECT
    TYPE CASE GOTO OF UNIT CONST IF OR UNTIL CONSTRUCTOR IMPLEMENTATION PACKED USES
    DESTRUCTOR IN PRIVATE VAR DIV INDEX PROCEDURE VIRTUAL DO INHERITED PROGRAM WHILE
    DOWNTO INLINE PUBLIC WITH ELSE INTERFACE RECORD XOR END INTERRUPT REPEAT EXPORT
    LABEL RESIDENT
    Крім перерахованих, в набір основних символів входить пробіл. Прогалини не можна
    використовувати всередині здвоєних символів і зарезервованих слів.
    Елементарні конструкції мови ПАСКАЛЬ містять у собі імена, числа і рядки.
    Імена (ідентифікатори) називають елементи мови - константи, мітки, типи,
    змінні, процедури, функції, модулі, об'єкти. Ім'я - це послідовність
    букв і цифр, що починається з букви. В іменах може використовуватися символ _
    підкреслення. Ім'я може містити довільну кількість символів, але
    значущими є 63 символи.
    Не дозволяється в мові ПАСКАЛЬ використовувати як імена службові слова і
    стандартні імена, якими названі стандартні константи, типи, процедури,
    функції і файлів.
    Для поліпшення наочності програми до неї можуть вставлятися пробіли. По крайней
    мере один пробіл потрібно вставити між двома послідовними іменами,
    числами або службовими і стандартними іменами. Прогалини не можна використовувати
    усередині імен та чисел.
    Приклади імен мови ПАСКАЛЬ:
    A b12 r1m SIGMA gamma I80_86
    Числа в мові ПАСКАЛЬ зазвичай записуються в десятковій системі числення. Вони
    можуть бути цілими і дійсними. Позитивний знак числа може бути опущений.
    Цілі числа записуються у формі без десяткового дробу, наприклад:
    217 -45 8954 +483
    Дійсні числа записуються у формі з десяткового точкою або у формі з
    використанням десяткового порядку, який зображується літерою Е:
    28.6 0.65 -0.018 4.0 5Е12-1.72Е9 73.1Е-16
    ПАСКАЛЬ допускає запис цілих чисел і фрагментів дійсних чисел у формі з
    порядком в шістнадцятковій системі числення:
    $ 7F $ 40 $ ABC0
    Строки в мові ПАСКАЛЬ - це послідовність символів, записана між
    апострофами. Якщо в рядку в якості змістовного символу необхідно
    спожити сам апостроф, то слід записати два апострофа. Приклади рядків:
    'РЯДОК' 'STRING' 'ПРОГРАМА' 'АД''ЮТАНТ'
    У математиці прийнято класифікувати змінні відповідно до деяких
    важливими характеристиками. Проводиться суворе розмежування між
    речовими, комплексними і логічними змінними, між змінними,
    що представляють окремі значення і безліч значень і так далі.
    При обробці даних на ЕОМ така класифікація ще більш важлива. У будь-якому
    алгоритмічній мові кожна константа, змінна, вираз чи функція бувають
    певного типу.
    У мові ПАСКАЛЬ існує правило: тип явно задається в описі змінної або
    функції, що передує їх використання. Концепція типу мови ПАСКАЛЬ
    має наступні основні властивості:
    -будь-який тип даних визначає множину значень, до якого належить
    константа, які може приймати змінна або вираз, або виробляти
    операція або функція;
    -тип значення, що задається константою, змінною або виразом, можна
    визначити з їхнього вигляду або опису;
    -кожна операція або функція вимагає аргументів фіксованого типу і видає
    результат фіксованого типу.
    Звідси випливає, що транслятор може використовувати інформацію про типи для
    перевірки вичіслімості і правильності різних конструкцій.
    Тип визначає:
    -можливі значення змінних, констант, функцій, виразів, що належать до
    даного типу;
    -внутрішню форму подання даних в ЕОМ;
    -операції та функції, які можуть виконуватися над величинами, що належать до
    даного типу.
    Обов'язкове опис типу призводить до надмірності в тексті програм, але така
    надмірність є важливим допоміжним засобом розробки програм і
    розглядається як необхідна властивість сучасних алгоритмічних мов
    високого рівня. У мові ПАСКАЛЬ існують скалярні та структуровані типи
    даних.
    До cкалярним типами відносяться стандартні типи і типи, що визначаються користувачем.
    Стандартні типи включають цілі, дійсні, символьний, логічні і
    адресний типи. Типи, що визначаються користувачами, - перераховує і інтервальний.
    Структуровані типи мають чотири різновиди: масиви, множини, записи і
    файли.
    Крім перерахованих, TURBO PASCAL включає ще два типи - процедурний і
    Об'єктовий.
    З групи скалярних типів можна виділити порядкові типи, які
    характеризуються такими властивостями:
    -всі можливі значення порядкового типу являють собою обмежене
    впорядкована множина;
    -до будь-якого порядковому типу може бути застосована стандартна функція Ord, яка
    як результат повертає порядковий номер конкретного значення в даному
    типі;
    -до будь-якого порядковому типу можуть бути застосовані стандартні функції Pred і Succ,
    які повертають попереднє і наступне значення відповідно;
    -до будь-якого порядковому типу можуть бути застосовані стандартні функції Low і High,
    які повертають найменше та найбільше значення величин даного типу.
    У мові ПАСКАЛЬ введено поняття еквівалентності та сумісності типів.
    Два типу Т1 і Т2 є еквівалентними (ідентичними), якщо виконується одна з
    двох умов:
    -Т1 і Т2 є одне і те ж ім'я типу;
    -тип Т2 описано з використанням типу Т1 за допомогою рівності або
    послідовності рівності. Наприклад:
    type
    T1 = Integer;
    T2 = T1;
    T3 = T2;
    Менш строгі обмеження визначені сумісністю типів. Наприклад, типи
    є сумісними, якщо:
    -вони еквівалентні;
    -є обидві або цілими, або дійсними;
    -один тип - інтервальний, інший - його базовий;
    -обидва інтервальні із загальним базовим;
    один тип - рядковий, інший - символьний.
    У ТУРБО ПАСКАЛЬ обмеження на сумісність типів можна обійти за допомогою
    приведення типів. Приведення типів дозволяє розглядати одну й ту ж величину
    в пам'яті ЕОМ як належить різним типам. Для цього використовується конструкція
    Імя_Тіпа (змінна або значення).
    Напрмер,
    Integer ( 'Z')
    являє собою значення коду символу 'Z' в двухбайтном поданні цілого
    числа, а
    Byte (534)
    дасть значення 22, оскільки ціле число 534 має тип Word і займає два байти,
    а тип Byte займає один байт, і в процесі приведення старший байт буде
    відкинутий.
    До стандартних відносяться цілі, дійсні, логічні, символьний та адресний
    типи.
    ЦІЛІ типи визначають константи, змінні та функції, значення яких
    реалізуються безліччю цілих чисел, допустимих в даній ЕОМ.
    Над цілими операндами можна виконувати такі арифметичні операції:
    додавання, віднімання, множення, ділення, отримання залишку від ділення. Знаки
    цих операцій:
    + - * Div mod
    Результат арифметичної операції над цілими операндами є величина цілого
    типу. Результат виконання операції ділення цілих величин є ціла частина
    приватного. Результат виконання операції отримання залишку від ділення - залишок
    від ділення цілих. Наприклад:
    17 div 2 = 8, 3 div 5 = 0.
    17 mod 2 = 1, 3 mod 5 = 3.
    Операції відносини, застосовані до цілих операнда, дають результат логічного
    типу TRUE або FALSE (істина чи брехня).
    У мові ПАСКАЛЬ є наступні операції відношення: рівність =, нерівність
    , Більше або дорівнює> =, менше або дорівнює, менше <.>
    До аргументів цілого типу застосовні наступні стандартні (вбудовані) функції,
    результат виконання яких має цілий тип:
    Abs (X), Sqr (X), Succ (X), Pred (X),
    і які визначають відповідно абсолютне значення Х, Х в квадраті, Х +1,
    Х-1.
    Наступна група стандартних функцій для аргументу цілого типу дає
    дійсний результат:
    Sin (X), Cos (X), ArcTan (X), Ln (X), Exp (X), Sqrt (X).
    Ці функції обчислюють синус, косинус і арктангенс кута, заданого в радіанах,
    логарифм натуральний, експоненту і корінь квадратний відповідно.
    Результат виконання функції перевірки цілої величини на непарність Odd (X) має
    значення істина, якщо аргумент непарний, і значення брехня, якщо аргумент парний:
    X = 5 Odd (X) = TRUE, X = 4 Odd (X) = FALSE.
    Для швидкої роботи з цілими числами визначені процедури:
    Inc (X) X: = X +1
    Inc (X, N) X: = X + N
    Dec (X) X: = X-1
    Dec (X, N) X: = X-N
    ДІЙСНІ типи визначає ті дані, які реалізуються підмножиною
    дійсних чисел, допустимих в даній ЕОМ.
    Тип Real визначений у стандартному Паскаля і математичним співпроцесором не
    підтримується.
    Решта дійсні типи визначені стандартом IEEE 457 і реалізовані на
    всіх сучасних комп'ютерах.
    Для їх використання за наявності співпроцесора або при роботі на ЕОМ типу 80486
    необхідно компілювати програму з ключем ($ N +), а за відсутності
    співпроцесора - з ключами ($ N-, E +).
    Тип Comp хоча і відноситься до дійсних типів, зберігає тільки довгі цілі
    значення.
    Над дійсними операндами можна виконувати такі арифметичні
    операції, що дають дійсний результат:
    складання +, віднімання -, множення *, ділення /.
    До величин дійсного типу застосовні всі операції відносини, що дають
    булевський результат.
    Один з операндів, що беруть участь в цих операціях, може бути цілим.
    До дійсним аргументів застосовні функції, що дають дійсний результат:
    Abs (X), Sqr (X), Sin (X), Cos (X), ArcTan (X), Ln (X), Exp (X), Sqrt (X), Frac (X),
    Int (X), Pi.
    Функція Frac (X) повертає дробову частина X, функція Int (X) - цілу частину X.
    Безаргументний функція Pi повертає значення числа Пі дійсного типу.
    До аргументів дійсного типу застосовні також функції
    Trunc (X) і Round (X),
    дають цілий результат. Перша з них виділяє цілу частину дійсного
    аргументу шляхом відсікання дробової частини, другий округлює аргумент до найближчого
    цілого.
    Логічний тип (Boolean) визначає ті дані, які можуть брати
    логічні значення TRUE і FALSE.
    До Булевського операнда застосовні такі логічні операції:
    not and or xor.
    Логічний тип визначений таким чином, що FALSE
    застосовувати до Булевського операнда всі операції відношення.
    У ТУРБО ПАСКАЛЬ введені ще різновиди логічного типу: ByteBool, WordBool і
    LongBool, які займають у пам'яті ЕОМ один, два і чотири байти відповідно.
    Символьна тип (Char) визначає упорядковану сукупність символів, допустимих
    в даній ЕОМ. Значення символьної змінної або константи - це один символ з
    припустимого набору.
    Символьна константа може записуватися в тексті програми трьома способами:
    -як один символ, укладений в апострофи, наприклад:
    'A' 'a' 'Ю' 'ю';
    -з допомогою конструкції виду # K, де K - код соответствущего символу, при цьому
    значення K повинно бути в межах 0 .. 255;
    -з допомогою конструкції виду ^ C, де C - код соответствущего керуючого
    символу, при цьому значення C має бути на 64 більше коду керуючого символу.
    До величинам символьного типу застосовні всі операції відношення.
    Для величин символьного типу визначені дві функції перетворення
    Ord (C) Chr (K).
    Перша функція визначає порядковий номер символу С в наборі символів, другий
    визначає за порядковим номером До символ, що стоїть на К-му місці в наборі
    символів. Порядковий номер має цілий тип.
    До аргументів символьного типу застосовуються функції, які визначають попередній
    і подальший символи:
    Pred (C) Succ (C). Pred ( 'F') = 'E'; Succ ( 'Y') = 'Z'.
    При відсутності попереднього або наступного символів значення відповідних
    функцій не визначено.
    Для літер з інтервалу 'a' .. 'z' застосовна функція UpCase (C), яка переводить
    ці літери у верхній регістр 'A' .. 'Z'.
    АДРЕСНАЯ тип (Pointer) визначає змінні, які можуть містити значення
    адрес даних або фрагментів програми. Для зберігання адреси потрібні два слова
    (4 байти), одне з них визначає сегмент, другий - зміщення.
    Робота з адресними змінними (покажчиками) буде розглянута пізніше, зараз
    відзначимо, що для отримання значення адреси будь-якої змінної введена унарний
    операція @.
    Тип констант в мові ПАСКАЛЬ визначається з їхнього вигляду: константи цілого типу -
    це цілі числа, що не містять десяткового дробу, константи дійсного типу
    - Дійсні числа, логічні константи - логічні значення TRUE і FALSE,
    символьні константи - або рядки довжиною в один символ, або конструкції виду
    # K або ^ K.
    Мова ПАСКАЛЬ допускає використовувати синоніми для позначення констант, в цьому
    випадку текст програми містить розділ опису констант, наприклад: ()
    Тип змінних визначається користувачем в розділі опису змінних: ()
    В даний час у професійному програмуванні прийнято записувати імена
    змінних з використанням так званої угорської нотації.
    Угорська але?? ація - це угода про найменування змінних і функцій.
    Угода широко використовується при програмуванні на мовах PASCAL, C і в
    середовищі WINDOWS.
    Угорська нотація грунтується на наступних принципах:
    -імена змінних і функцій повинні містити префікс, що описує їх тип;
    -імена змінних і функцій записуються повними словами або словосполученнями
    або їх скороченнями, але так, щоб на ім'я можна було зрозуміти призначення
    змінної або дія, що виконується функцією.
    Префікси записуються малими літерами, перша буква кожного слова заголовна,
    префікси і слова записуються або разом, або через символ _ (підкреслення).
    Для мови PASCAL можуть бути рекомендовані наступні префікси для скалярних
    змінних і функцій:
    Префікс Тип -------------------- by Byte sh Shortint i Integer w Word l Longint r
    Real si Single d Double e Extended c Comp ch Char b Boolean p Pointer x, у
    координати символу або точки на екрані
    Для величин структурованого типу можуть бути використані наступні префікси:
    a Array s String sz Stringz se Set re Record f File t Text
    Наприклад:
    rV, arVector [1 .. 20], sName, iCount.
    У скомпільованій програмі для всіх змінних відведено місце в пам'яті, і
    всім змінним присвоєно нульові значення.
    Для завдання початкових значень змінним (ініціалізації змінних) TURBO
    PASCAL дозволяє присвоювати початкові значення змінним одночасно з їх
    описом. Для цього використовується конструкція
    ім'я змінної: тип = значення;
    яка повинна бути розміщена в розділі опису констант, наприклад:
    const rWeight: Real = 0.4;
    Вираз складається з констант, змінних, покажчиків функцій, знаків операцій і
    дужок. Вираз задає правило обчислення деякого значення. Порядок
    обчислення визначається старшинство (пріоритетом) що містяться в ньому операцій.
    У мові ПАСКАЛЬ прийнятий наступний пріоритет операцій:
    1. унарний операція not, унарний мінус -, взяття адреси @
    2. операції типу множення */div mod and shl shr
    3. операції типу складання + - or xor
    4. операції відносини = <> = in
    ()
    Вирази входять до складу багатьох операторів мови ПАСКАЛЬ, а також можуть бути
    аргументами вбудованих функцій.
    Тип змінної і тип виразу повинні збігатися крім випадку, коли вираз
    відноситься до цілого типу, а змінна - до дійсного. При цьому відбувається
    перетворення значення виразу до дійсного типу. () 10. О П Е Р А Т О Р
    И В В О Д А И В И В О Д А
    Розглянемо організацію введення і виведення даних з термінального пристрою.
    Термінальне пристрій - це пристрій, з яким працює користувач,
    звичайно це екран (дисплей) і клавіатура.
    Для введення і виведення даних використовуються стандартні процедури введення та виведення Read
    і Write, оперують стандартними послідовними файлами INPUT і OUTPUT.
    Ці файли розбиваються на рядки змінної довжини, відокремлюються один від одного
    ознакою кінця рядка. Кінець рядка задається натисканням клавіші ENTER.
    Для введення вихідних даних використовуються оператори процедур введення:
    Read (A1, A2, ... AK);
    ReadLn (A1, A2, ... AK);
    ReadLn;
    Перший з них реалізує читання До значень вихідних даних і присвоювання цих
    значень змінним А1, А2, ..., АК. Другий оператор реалізує читання До значень
    вихідних даних, пропуск інших значень до початку наступного рядка,
    присвоювання лічених значень змінним А1, А2, ..., АК. Третій оператор
    реалізує пропуск рядка вихідних даних.
    Під час введення вихідних даних відбувається перетворення з зовнішньої форми
    подання у внутрішню, що визначається типом змінних. Змінні,
    утворюють список уведення, можуть належати або до цілого, або до
    дійсного, або до символьному типами. Читання вихідних даних логічного
    типу в мові ПАСКАЛЬ неприпустимо.
    Оператори введення при читанні значень змінних цілого і дійсного типу
    пропускає прогалини, що передують числу. У той же час ці оператори не
    пропускають прогалин, що передують значень символьних змінних, так як
    прогалини є рівноправними символами рядків. Приклад запису операторів вводу:
    var rV, rS: Real;
    iW, iJ: Integer;
    chC, chD: Char;
    ................< br /> Read (rV, rS, iW, iJ);
    Read (chC, chD);
    Значення вихідних даних можуть відокремлюватися друг від друга пробілами і натисканням
    клавіш табуляції і Enter.
    Для виводу результатів роботи програми на екран використовуються оператори:
    Write (A1, A2, ... AK);
    WriteLn (A1, A2, ... AK);
    WriteLn;
    Перший з цих операторів реалізує висновок значень перемінних А1, А2 ,..., АК у
    рядок екрана. Другий оператор реалізує висновок значень перемінних А1, А2, ...,
    АК і перехід до початку наступного рядка. Третій оператор реалізує пропуск рядка
    і перехід до початку наступного рядка.
    Змінні, що складають список висновку, можуть відноситися до цілого,
    дійсному, символьному або Булевського типами. В якості елемента списку
    висновку крім імен перемінних можуть використовуватися вираження і рядки.
    Висновок кожного значення в рядок екрана відбувається у відповідності з шириною поля
    висновку, що визначається конкретною реалізацією мови.
    Форма представлення значень у полі висновку відповідає типу змінних і
    виражень: величини цілого типу виводяться як целиедесятічние числа,
    дійсного типу - як дійсні десяткові числа з десятковим
    порядком, символьного типу і рядка - у вигляді символів, логічного типу - у вигляді
    логічних констант TRUE і FALSE.
    Оператор висновку дозволяє задати ширину поля виводу для кожного елемента списку
    виводу. У цьому випадку елемент списку висновку має вид А: К, де А - вираз чи
    рядок, ДО - вираження або константа цілого типу. Якщо виведене значення
    займає в поле виведення менше позицій, ніж К, то перед цим значенням
    розташовуються пробіли. Якщо виведене значення не міститься в ширину поля К, то
    для цього значення буде відведена необхідна кількість позицій. Для величин
    дійсного типу елемент списку висновку може мати вид А: К: М, де А -
    мінлива чи вираження дійсного типу, ДО - ширина поля виводу, М - число
    цифр дробової частини виведеного значення. К і М - чи вираження константи цілого
    типу. У цьому випадку дійсні значення виводяться у формі десяткового числа
    з фіксованою точкою.
    Приклад запису операторів виводу:
    . . . . . . . . . . . .
    var rA, rB: Real; iP, iQ: Integer;
    bR, bS: Boolean; chT, chV, chU, chW: Char;
    . . . . . . . . . . . .
    WriteLn (rA, rB: 10:2);
    WriteLn (iP, iQ: 8);
    WriteLn (bR, bS: 8);
    WriteLn (chT, chV, chU, chW);
    11. С Т Р У К Т У Р А П Р О Г Р А М М И
    Програма на мові ПАСКАЛЬ складається з заголовка, розділів описів і розділу
    операторів.
    Заголовок програми містить ім'я програми, наприклад:
    Program PRIM;
    Описи можуть включати в себе розділ підключаються бібліотек (модулів), розділ
    опису міток, розділ опису констант, розділ опису типів, розділ опису
    змінних, розділ опису процедур і функцій.
    Розділ опису модулів визначається службовим словом USES і містить імена
    модулів (бібліотек) як що входять до складу системи TURBO PASCAL, так
    і написаних користувачем. Розділ опису модулів має бути першим серед
    розділів описів. Імена модулів відокремлюються один від одного комами:
    uses CRT, Graph;
    Будь-який оператор в програмі може бути позначений міткою. В якості мітки
    використовуються довільні цілі без знака, що містять не більше чотирьох цифр,
    або імена. Позначка ставиться перед оператором і відокремлюється від нього двокрапкою. Всі
    мітки, які використовуються в програмі, повинні бути перераховані в розділі опису
    міток, наприклад:
    label 3, 471, 29, Quit;
    Опис констант дозволяє використовувати імена як синоніми констант, їх
    необхідно визначити в розділі описів констант:
    const K = 1024; MAX = 16384;
    У розділі опису змінних необхідно визначити тип всіх змінних,
    що використовуються в програмі:
    var P, Q, R: Integer;
    A, B: Char;
    F1, F2: Boolean;
    Опис типів, прцедур і функцій буде розглянуто нижче. Окремі розділи
    описів можуть бути відсутні, але слід пам'ятати, що в ПАСКАЛЬ - програму
    повинні бути обов'язково описані всі компоненти програми.
    Розділ операторів є складовою оператор, який містить між
    службовими словами
    begin ....... end
    послідовність операторів. Оператори відокремлюються один від одного символом;.
    Текст програми закінчується символом крапка.
    Крім описів і операторів ПАСКАЛЬ - програма може містити коментарі,
    які представляють собою довільну послідовність символів,
    розташовану між відкриває дужкою коментарів (і закриває дужкою
    коментарів).
    Текст ПАСКАЛЬ - програми може містити ключі компіляції, які дозволяють
    керувати режимом компіляції. Синтаксично ключі компіляції записуються як
    коментарі. Ключ компіляції містить символ $ і букву-ключ з наступним знаком
    + (Включити режим) або - (вимкнути режим). Наприклад:
    ($ E +) - емулювати математичний співпроцесор;
    ($ F +) - формувати дальній тип виклику процедур і функцій;
    ($ N +) - використовувати математичний співпроцесор;
    ($ R +) - перевіряти вихід за межі діапазонів.
    Деякі ключі компіляції можуть містити параметр, наприклад:
    ($ I назва файлу) - включити в текст модульна програми названий файл.
    Приклад запису простий програми:
    Program TRIANG;
    var A, B, C, S, P: Real;
    begin
    Read (A, B, C);
    WriteLn (A, B, C);
    P: = (A + B + C)/2;
    S: = Sqrt (P * (P-A) * (P-B) * (P-C));
    WriteLn ( 'S =', S: 8:3)
    end.
    Бітів або порозрядної арифметика введена в TURBO PASCAL для забезпечення
    можливості роботи з двійковими розрядами (бітами). Операції бітової арифметики
    застосовуються лише до цілих типів.
    Перша група операцій - логічні операції not, and, or та xor.
    Операція not є одномісній, вона змінює кожен біт цілого числа на
    зворотний.
    Операції and, or та xor - двомісні, операнди цих операцій - цілі величини
    однакової довжини. Операції виконуються попарно над усіма двійковими розрядами
    операндів.
    Друга група операцій - це операції зсуву вліво shl та зсуву вправо shr:
    I shl N
    I shr N.
    Ці операції зрушують двійкову послідовність значення I вліво або вправо на
    N двійкових розрядів. При цьому біти, що йдуть за межі розрядної сітки,
    губляться, а що звільнилися двійкові розряди заповнюються нулями. При зсуві
    вправо негативних значень звільнилися розряди заповнюються одиницями.
     
    Зазвичай оператори в програмі виконуються в тому порядку, в якому вони записані.
    Оператор переходу перериває природний порядок виконання програми і
    вказує, що дальнйшее виконання має продовжуватися, починаючи з оператора,
    поміченого міткою, зазначеної в операторі переходу. Приклад запису оператора
    переходу:
    goto 218;
    Структурізованная програма (або підпрограма) - це програма, складена з
    фіксованого безлічі базових конструкцій. Розглянемо основні визначення і
    способи утворення цих конструкцій в схемах алгоритмів. ()
    З операцій, розвилок і злиттів будуються базові конструкції: слідування,
    розгалуження, цикл. Застосовуючи тільки ці три конструкції, можна реалізувати алгоритм
    рішення будь-якої задачі.
    Конструкція, що представляє собою послідовне виконання двох або більше
    операцій, називається наслідуванням.
    Конструкція, що складається з розвилки, двох операцій і злиття, називається
    розгалуження. Одна з операцій може бути відсутнім.
    Конструкція, що має лінії управління, що ведуть до попередніх операцій або
    розвилка, називається циклом.
    Конструкції слідування, розгалуження і цикл можна представити як операції, так як
    вони мають один логін і єдиний вихід. Довільну
    послідовність операцій можна представити як одну операцію.
    Операція може бути реалізована будь-яким оператором мови ПАСКАЛЬ (простим або
    складовим), або групою операторів, за винятком оператора переходу GOTO.
    У мові ПАСКАЛЬ кількість базових конструкцій збільшено до шести, це:
    -проходження;
    -розгалуження;
    -цикл з передумовою;
    -цикл з постусловіем;
    -цикл з параметром;
    -варіант.
    Далі розглянемо, як ці базові конструкції реалізуються в мові ПАСКАЛЬ.
    ()
    Умовний оператор в короткій формі працює за правилом: якщо Булевського вираз
    B істинно, то виконується оператор ОР1, далі виконується оператор, наступний за
    умовним. Якщо Булевського вираз B помилково, то буде виконуватися оператор,
    наступний за цим умовним оператором.
    Для всіх операторів циклу вихід з циклу здійснюється як внаслідок
    природного закінчення оператора циклу, так і за допомогою операторів переходу і
    виходу.
    У версії ТУРБО ПАСКАЛЬ 7.0 визначені стандартні процедури Break і Continue.
    Процедура Break виконує безумовний вихід з циклу. Процедура Continue
    забезпечує перехід до початку нової ітерації циклу.
    Перераховуються тип являє собою обмежену упорядковану
    послідовність скалярних констант, що становлять даний тип. Значення кожної
    константи задається її ім'ям. Імена окремих констант відокремлюються один від одного
    комами, а вся сукупність констант, що становлять даний перераховуються тип,
    полягає в круглі дужки.
    Програміст об'єднує в одну групу у відповідності з яким - або ознакою всю
    сукупність значень, що складають перераховуються тип. Наприклад, що перераховуються
    тип Rainbow (РАДУГА) об'єднує скалярні значення RED, ORANGE, YELLOW, GREEN,
    LIGHT_BLUE, BLUE, VIOLET (червоний, оранжевий, жовтий, зелений, блакитний, синій,
    ФІОЛЕТОВИЙ). Перераховуються тип Traffic_Light (світлофор) об'єднує скалярні
    значення RED, YELLOW, GREEN (червоний, жовтий, ЗЕЛЕНИЙ).
    Перераховуються тип описується в розділі опису типів, який починається з
    службового слова type, наприклад:
    type
    Rainbow = (RED, ORANGE, YELLOW, GREEN, LIGHT_BLUE, BLUE, VIOLET);
    Кожне значення є константою свого типу і може належати тільки
    одному з перелічуваних типів, заданих у програмі. Наприклад, що перераховуються тип
    Traffic_Light не може бути визначений в одній програмі з типом Rainbow, так як
    обидва типи містять однакові константи.
    Опис змінних, що належать до скалярним типами, які оголошені в
    розділі опису типів, здійснюється за допомогою імен типів. Наприклад:
    type Traffic_Light = (RED, YELLOW, GREEN);
    var Section: Traffic_Light;
    Це означає, що змінна Section може приймати значення RED, YELLOW або
    GREEN.
    Змінні що перераховується типу можуть бути описані в розділі опису змінних,
    наприклад:
    var Section: (RED, YELLOW, GREEN);
    При цьому імена типів відсутні, а змінні визначаються сукупністю
    значень, що складають даний перераховуються тип.
    До змінних що перераховується типу може бути застосовний оператор присвоєння:
    Section: = YELLOW;
    Упорядкована послідовність значень, що складають перераховуються тип,
    автоматично нумерується, починаючи з нуля і далі через одиницю. Звідси випливає,
    що до перераховуваних змінним і констант можуть бути застосовані операції
    відносини і стандартні функції Pred, Succ, Ord.
    Змінні і константи що перераховується типу не можуть бути елементами списку введення
    або виведення.
    Відрізок будь-якого порядкового типу може бути визначений як інтервальний або
    обмежений тип. Відрізок задається діапазоном від мінімального до максимального
    значення констант, розділених двома крапками. Як констант можуть бути
    використані константи, що належать до цілого, символьному, логічного або
    перераховується типами. Скалярний тип, на якому будується відрізок, називається
    базовим типом.
    Мінімальна і максимальна значення констант називаються нижньої і верхньої
    межами відрізка, що визначає інтервальний тип. Нижня межа повинна бути
    менше верхньої.
    ()
    Над змінними, що відносяться до інтервального типу, можуть виконуватися всі
    операції і застосовуватися всі стандартні функції, які допустимі для
    відповідного базового типу.
    При використанні в програмах інтервальних типів даних може здійснюватися
    контроль за тим, щоб значення змінних не виходили за межі, введені для
    цих змінних в описі інтервального типу. 23. М А С С И В И
    Масиви представляють собою обмежену упорядковану сукупність однотипних
    величин. Кожна окрема величина називається компонентою масиву. Тип компонент
    може бути будь-яким, прийнятим в мові ПАСКАЛЬ, крім файлового типу. Тип компонент
    називається базовим типом.
    Вся сукупністькомпонент визначається одним ім'ям. Для позначення окремих
    компонент використовується конструкція, яка називається змінної з індексом або з
    індексами:
    A [5] S [k +1] B [3,5].
    В якості індексу може бути використано вираз. Тип індексів може бути
    тільки інтервальним або перераховуваних. Дійсний і цілий типи неприпустимі.
    Індекси інтервального типу, для якої базовим є цілий тип, можуть
    приймати негативні, нульове і позитивні значення. ()
    У операторної частини програми один масив може бути присвоєний іншому, якщо їх
    типи ідентичні, наприклад:
    R1: = Z.
    Для введення або виведення масиву в список введення або виведення поміщається змінна з
    індексом, аоператори вводу чи виводу виконуються у циклі. ()
    Перший індекс визначає номер рядка, другий - номер стовпчика. Двовимірні масиви
    зберігаються в пам'яті ЕОМ по рядках.
    Ініціалізація масивів (привласнення початкових значень всіма компонентами масивів)
    здійснюється двома способами.
    Перший спосіб - з використанням типізованих констант, наприклад:
    type Dim10 = Array [1 .. 10] of Real;
    const
    raM10: Dim10 = (0, 2.1, 4, 5.65, 6.1, 6.7, 7.2, 8, 8.7, 9.3);
    При ініціалізації двовимірних масивів значення компонент кожного з вхідних в
    нього одновимірних масивів записується в дужках:
    type Dim3x2 = Array [1 .. 3,1 .. 2] of Integer;
    const
    iaM3x2: Dim3x2 = ((1, 2)
    (3, 4)
    (5, 6)); FACE = "Times New Roman">
    Другий спосіб ініціалізації - використання різновиди процедури FillChar:
    FillChar (var V; NBytes: Word; B: Byte);
    Ця процедура заповнює ділянку пам'яті однобайтових значенням. Наприклад, для
    обнулення масиву A [1 .. 10] of Real можна записати:
    FillChar (A, 40, 0);
    або
    FillChar (A, SizeOf (A), 0);
    Особливе місце в мові ПАСКАЛЬ займають масиви символів. Стандартний ПАСКАЛЬ
    допускає два способи зберігання символьних масивів у пам'яті ЕОМ: розпакований і
    упакований. Розпаковані масиви символів зберігаються в пам'яті ЕОМ по одному
    символу в машинному слові, упаковані - по одному символу в байті. При описі
    упакованого масиву символів використовують службове слово PACKED, наприклад:
    var MAS: Packed Array [1 .. 20] of Char;
    Опис розпакованого масиву символів має вигляд:
    var M: Array [1 .. 20] of char;
    Для перетворення символьного масиву з розпакованої форми в упаковану і
    навпаки, з упакованої в розпаковані, в мова ПАСКАЛЬ введені дві стандартні
    функції Pack, UnPack.
    Упакований масив символів утворює символьну рядок. Символьна рядок може
    бути або рядковий константою, або рядковий змінної. Строкова константа,
    або рядок, являє собою сукупність символів, укладену в апострофи.
    Рядок - це елементарна конструкція мови ПАСКАЛЬ. Рядкові константи можуть
    входити до складу виразів. Як і числові константи, вони можуть бути описані в
    розділі опису констант.
    Рядкові змінні - це одномірні упаковані масиви символів, для опису
    яких в TURBO PASCAL введений тип String.
    Наприклад, якщо рядок містить до 30 символів, її тип буде визначений як
    type s = String [30];
    Фраза
         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status