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

     

     

     

     

     

         
     
    Основні поняття алгоритмічного мови
         

     

    Інформатика, програмування

    Основні поняття алгоритмічного мови

    1. О С Н О В Н И Е П О Н С Т В А

    А Л Г О Р И Т М І Ч Н О Г О Я З И К А

    СКЛАД МОВИ. Звичайний розмовна мова складається з чотирьох основних елементів: символів, слів, словосполучень і пропозицій. Алгоритми-ний мова містить такі елементи, тільки слова називають елементом тарний конструкціями, словосполучення-виразами, пропозиції-опера-торамі. Символи, елементарні конструкції, вирази й оператори складають ієрархічну структуру, оскільки елементарні конструк-ції утворюються з послідовності символів, вирази-це послідовно-вательность елементарних конструкцій і символів, а оператор-послідовно-вательность виразів, елементарних конструкцій і символів.

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

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

    СИМВОЛИ мови-це основні неподільні знаки, в термінах яких пи-шутся всі тексти на мові. < p> ЕЛЕМЕНТАРНОГО КОНСТРУКЦІЇ-це мінімальні одиниці мови, що мають самостійний сенс. Вони утворюються з основних символів мови.

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

    ОПЕРАТОР задає повний опис деякої дії, що необ-хідно виконати. Для опису складного дії може знадобитися група операторів. У цьому випадку оператори об'єднуються в складову

    ОПЕРАТОР або БЛОК.

    Дії, задані операторами, виконуються над ДАНИМИ. Запропоновано-ня алгоритмічного мови, в яких даються відомості про типи даних, називають опис або неісполняемимі операторами.

    Об'єднана єдиним алгоритмом сукупність описів і операторів утворює ПРОГРАМУ на алгоритмічній мові.

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

    Синтаксичні визначення можуть бути задані формальними чи не-формальним способами. Існують три формальних способи:

    -металінгвістіческая символіка, звана Бекуса-Наура формулами;

    -синтаксичні діаграми;

    -скобочние конструкції.

    Ми в подальшому викладі будемо користуватися неформальним спосо-бом.

    2. О С Н О В Н И Е С И М В О Л И

    Основні символи мови-букви, цифри та спеціальні символи-склад-ляють його алфавіт. ТУРБО ПАСКАЛЬ включає наступний набір основних символів:

    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

    Крім перерахованих, в набір основних символів входить пробіл. Про-білі не можна використовувати всередині здвоєних символів і зарезервований-них слів.

    3. Е Л Е М Е Н Т А Р Н И Е К О Н С Т Р У К Ц І І

    Елементарні конструкції мови ПАСКАЛЬ містять у собі імена, чис-ла і рядки. < p> Імена (ідентифікатори) називають елементи мови - константи, мітки, типи, змінні, процедури, функції, модулі, об'єкти. Ім'я - це пос-ледовательность букв і цифр, що починається з букви. В іменах може іс-користуватися символ _ підкреслення. Ім'я може містити довільну кількість символів, але значущими є 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' 'ПРОГРАМА' 'АД''ЮТАНТ'

    4. К О Н Ц Е П Ц І С Т В П А

    Д Л Я Д А Н Н И Х

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

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

    У мові ПАСКАЛЬ існує правило: тип явно задається в описі змінної або функції, що передує їх використання. Концепцій типу мови ПАСКАЛЬ має наступні основні властивості:

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

    -тип значення, що задається константою, змінною або виразом, можна визначити за їх виду чи опису;

    -кожна операція або функція вимагає аргументів фіксованого ти-па і видає результат фіксованого типу.

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

    Тип визначає:

    -можливі значення змінних, констант, функцій, виразів , при-належних до даного типу;

    -внутрішню форму подання даних в ЕОМ;

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

    Обов'язкове опис типу призводить до надмірності в тексті прог-Рамм, але така надмірність є важливим допоміжним засоб-твом розробки програм і розглядається як необхідна властивість сучасних алгоритмічних мов високого рівня. У мові ПАСКАЛЬ існують скалярні та структуровані типи даних.

    До 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 займає один байт, і в процесі приведення старший байт буде відкинутий.

    5. С Т А Н Д А Р Т Н И Е Т И П И

    Д А Н Н И Х

    До стандартних відносяться цілі, дійсні, логічні, символьний та адресний типи.

    ЦІЛІ типи визначають константи, змінні та функції, значення яких реалізуються безліччю цілих чисел, допустимих в даній ЕОМ.

    тип діапазон значень необхідна пам'ять

    __________________________________________________________

    Shortint -128 .. 127 1 байт

    Integer -32768 .. 32767 2 байти

    Longint -2147483648 .. 2147483647 4 байти

    Byte 0 .. 255 1 байт

    Word 0 .. 65535 2 байти

    __________________________________________________________

    Над цілими операндами можна виконувати такі арифметичні операції: додавання, віднімання, множення, ділення, отримання залишку від ділення. Знаки цих операцій:

    + - * 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: = XN

    ДІЙСНІ типи визначає ті дані, які реалізуються підмножиною дійсних чисел, допустимих в даній ЕОМ.

    Тип Діапазон Кількість цифр Необхідна значень мантиси пам'ять (байт)

    --------------------- ------------------------------------------

    Real 2.9e-39 .. 1.7e +38 11 6

    Single 1.5e-45 .. 3.4e +38 7 4

    Double 5.0e-324 .. 1.7e +308 15 8

    Extended 3.4e-4932 .. 1.1e +4932 19 10

    Comp-9.2e +18 .. 9.2e +18 19 8

    ------------------------------------- --------------------------

    Тип 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 байти), одне з них визначає сегмент, друга - зміщення.

    Робота з адресними змінними (покажчиками) буде розглянута пізніше, зараз зазначимо, що для отримання значення адреси будь-якої змінної введена унарний операція @.

    6. К О Н С Т А Н Т И

    Тип констант в мові ПАСКАЛЬ визначається з їхнього вигляду: константи цілого типу - це цілі числа, що не містять десяткового дробу, конс-танто дійсного типу - дійсні числа, логічні конс - Танто - логічні значення TRUE і FALSE, символьні константи - або рядки довжиною в один символ, або конструкції виду # K або ^ K.

    Мова ПАСКАЛЬ допускає використовувати синоніми для позначення конс-танто, в цьому випадку текст програми містить рау весь зріст опису констант, наприклад: ()

    7. П Е Р Е М Е Н Н И Е.

    І Н І Ц І А Л И З А Ц І Я П Е Р Е М Е Н Н И Х

    Тип змінних визначається користувачем в розділі опису пере-сних :{}

    В даний час у професійному програмуванні прийнято записувати імена змінних з використанням так званої венгерс-кой нотації.

    Угорська нотація - це угода про найменування змінних і функцій. Угода широко використовується при програмуванні на язи-ках 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;

    8. В И Р А Ж Е Н Н Я

    Вираз складається з констант, змінних, покажчиків функцій, знаків операцій та дужок. Вираз задає правило обчислення некот-якого значення. Порядок обчислення визначається старшинство (пріо-тетом) що містяться в ньому операцій. У мові ПАСКАЛЬ прийнятий наступний пріоритет операцій:

    1. унарний операція not, унарний мінус -, взяття адреси @

    2. операції типу множення */div mod and shl shr

    3. операції типу складання + - or xor

    4. операції відносини = <> = in

    ()

    Вирази входять до складу багатьох операторів мови ПАСКАЛЬ, а також можуть бути аргументами вбудованих функцій.

    9. О П Е Р А Т О Р П Р И С В А І В А Н І Я

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

    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;

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

    Read (rV, rS, iW, iJ);

    Read (chC, chD);

    Значення вихідних даних можуть відділятися один від друга пробілами і натисканням клавіш табуляції і Enter.

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

    Write (A1, A2, ... AK); < p> 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 * (PA) * (PB) * (PC ));

    WriteLn ( 'S =', S: 8:3) end.

    12. Б І Т О В А Я А Р И Ф М Е Т И К А

    бітів або порозрядної арифметика введена в TURBO PASCAL для забезпечення можливості роботи з двійковими розрядами (бітами). Опера-ції бітової арифметики можна застосовувати лише до цілих типів.

    Перша група операцій - логічні операції not, and, or та xor.

    Операція not є одномісній, вона змінює кожен біт цілого числа на зворотний.

    Операції and, or та xor - двомісні, операнди цих операцій - цілі величини однакової довжини. Операції виконуються попарно над усіма двійковими розрядами операндів.

    Друга група операцій - це операції зсуву вліво shl та зсуву вправо shr:

    I shl N

    I shr N .

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

    13. О П Е Р А Т О Р П Е Р Е Х О Д А

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

    goto 218;

    14. Е Л Е М Е Н Т И С Т Р У К Т У Р Н О Г О

    П Р О Г Р А М М И Р О В А Н Н Я

    Структурізованная програма (або підпрограма) - це програма, складена з фіксованого безлічі базових конструкцій. Пере-Мотрі основні визначення та способи утворення цих конструкцій в схемах алгоритмів.

    ()

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

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

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

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

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

    довільній послідовності операцій можна представити як одну операцію.

    Операція може бути реалізована будь-яким оператором мови ПАСКАЛЬ

    (простим або складовим), або групою операторів, за винятком опе-ратора переходу GOTO.

    У мові ПАСКАЛЬ кількість базових конструкцій збільшено до шести, це:

    -проходження;

    -розгалуження;

    -цикл з передумовою;

    -цикл з постусловіем;

    -цикл з параметром;

    -варіант.

    Далі розглянемо, як ці базові конструкції реалізуються в мові

    ПАСКАЛЬ.

    15. П О С Л О В Н И Й О П Е Р А Т О Р

    ()

    Умовний оператор в короткій формі працює за правилом: якщо бу-левски вираз B істинно, то виконується оператор ОР1, далі ви-виконується оператор, наступний за умовним. Якщо Булевського вираз B помилково, то буде виконуватися оператор, наступний за цим умовним опе-ратора.

    16. Ц І К Л С П Р О П О С Л О В И Е М ()

    17. Ц І К Л С П О С Т У С Л О В И Е М ()

    18. Ц І К Л С П А Р А М Е Т Р О М ()

    19. О П Е Р А Т О Р И З А В Е Р Ш Е Н Н Я Ц И К Л А

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

    У версії ТУРБО ПАСКАЛЬ 7.0 визначені стандартні процедури Break і

    Continue. Процедура Break виконує безумовний вихід з циклу. Проце-дура Continue забезпечує перехід до початку нової ітерації циклу.

    20. О П Е Р А Т О Р В А Р І А Н Т А ()

    21. П Е Р Е Л І С Л Я Е М И Й Т И П Д А Н Н И Х

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

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

    Наприклад, що перераховуються тип 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.

    Змінні і константи що перераховується типу не можуть бути елемента-ми списку вводу чи виводу.

    22. І Н Т Е Р У А Л Ь Н И Й Т И П Д А Н Н И Х

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

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

    ()

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

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

    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));

    Другий спосіб ініціалізації - використання різновиди процеду-ри FillChar:

    FillChar (var V; NBytes: Word; B: Byte);

    Ця процедура заповнює ділянку пам'яті однобайтових значенням. Напри-мер, для обнуління масиву A [1 .. 10] of Real можна записати:

    FillChar (A, 40, 0);

    або

    FillChar (A, SizeOf (A), 0);

    ()

    24. С Т Р О К І

    Особливе місце в мові ПАСКАЛЬ займають масиви символів. Стандарт-ний ПАСКАЛЬ припускає два способи зберігання символьних масивів в па-мяті ЕОМ: розпакований і упакований. Розпаковані масиви символів зберігаються в пам'яті ЕОМ по одному символу в машинному слові, упаковані

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

    var MAS: Packed Array [1 .. 20] of Char;

    Опис розпакованого масиву символів має вигляд:

    var M: Array [1 .. 20] of char;

    Для перетворення символьного масиву з розпакованої форми в упаковану і навпаки, з упакованої в розпаковані, в мову ПАС-

    Каль введені дві стандартні функції Pack, UnPack.

    Упакований масив символів утворює символьну рядок. Символьна рядок може бути або рядковий константою, або рядковий змін-ною. Строкова константа, або рядок, являє собою сукупність символів, укладену в апострофи. Рядок - це елементарна конс-трукція мови ПАСКАЛЬ. Рядкові константи можуть входити до складу ви-раженій. Як і числові

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

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