
- •Уводзіны Ключавыя палажэнні
- •Развіццё моў камп’ютарнага праграміравання
- •Эвалюцыя мовы Pascal
- •Структурная метадалогія распрацоўкі праграм Алгарытм
- •Асноўныя этапы рашэння задач на эвм
- •Блок-схемы
- •Структураграмы
- •Тэсціраванне праграм
- •Адладка праграм
- •Структурнае праграміраванне і дакладнасць праграм
- •Асноўныя канструкцыі структур кіравання
- •Метады распрацоўкі праграм
- •Праграміраванне зверху ўніз (ад агульнага да асобнага)
- •Модульнае праграміраванне
- •Праграміраванне знізу ўверх
- •Структурнае кадзіраванне
- •Арыфметыка эвм Сістэмы злічэння
- •Пераклады лікаў з адной сістэмы злічэння ў другую
- •Пераклад цэлых дадатных лікаў з сістэмы злічэння з асновай «p» у сістэму злічэння з асновай «q»
- •Пераклад правільных дробаў з сістэмы злічэння з асновай «p» у сістэму злічэння з асновай «q»
- •Пераклад змешаных дробаў
- •Формы прадстаўлення даных
- •Формы прадстаўлення лікаў у персанальным камп’ютары
- •Захаванне лікаў з фіксаванай кропкай
- •Захаванне цэлых лікаў
- •Алгарытм прадстаўлення адмоўнага ліку ў адваротным кодзе
- •Прынцыпы захавання лікаў з плаваючай кропкай
- •Фарматы лікаў з плаваючай кропкай арыфметычнага супрацэсара ibm pc/aт 8087
- •Сродкі алгарытмічнай мовы Pascal Агульная характарыстыка алгарытмічных моў
- •Базавыя элементы мовы Pascal
- •Алфавіт
- •Лексічная структура мовы
- •Агульная структура Pascal-праграмы
- •Простыя даныя мовы Pascal і работа з імі Тыпы звестак
- •Канстанты і пераменныя
- •Абсалютныя пераменныя
- •Цэлалікавыя даныя
- •Бітавая арыфметыка
- •Дзеянні бітавай арыфметыкі
- •Сапраўдныя даныя
- •Аперацыі над сапраўднымі данымі
- •Выразы мовы
- •Літарныя даныя
- •Функцыі
- •Булеўскія даныя
- •Даныя адраснага тыпу
- •Даныя карыстальніцкага тыпу
- •Даныя пералічальнага тыпу
- •Даныя інтэрвальнага тыпу
- •Элементарныя сродкі па рабоце з данымі Наданне значэння даным
- •Найпрасцейшае вызначэнне працэдур і функцый
- •Параметры
- •Знаёмства з файлавай сістэмай
- •Файлавы тып
- •Тэкставыя стандартныя файлы
- •Увод даных розных тыпаў
- •Вывад даных розных тыпаў
- •Вывад сімвалаў
- •Вывад радковых даных
- •Вывад лагічных значэнняў
- •Вывад цэлалікавых значэнняў
- •Вывад даных сапраўднага тыпу
- •Базавыя аператары мовы і метады праграміравання Аператары
- •Простыя аператары
- •Аператар безумоўнага пераходу goto
- •Аператар выкліку працэдуры
- •Пусты аператар
- •Састаўны аператар
- •Аператары выбару
- •Умоўны аператар
- •Метады і прыёмы праграміравання
- •Аператар варыянта
- •Прыклады праграм
- •Аператары паўтарэння
- •Аператар паўтарэння for
- •Аператар паўтарэння repeat
- •Аператар паўтарэння while
- •Хуткая ступень
- •Ітэрацыйныя алгарытмы вышэйшай матэматыкі
- •Структуры даных і праца з імі сродкамі мовы Pascal Парадкавыя тыпы
- •Мноствы
- •Тыпізаваныя канстанты тыпу «мноства»
- •Дзеянні над масівамі
- •Дзеянні над элементамі масіву
- •Пераменныя тыпу «масіў» са стартавым значэннем, ці тыпізаваныя канстанты-масівы
- •Канстанты з тыпам «масіў»
- •Камбінаваны тып «запісы»
- •Змяненне (прывядзенне) тыпаў і значэнняў
- •Радкі сімвалаў
- •Наданне значэння радкам
- •Радковыя выразы
- •Рэдагаванне радкоў
- •Пераўтварэнне радкоў
- •Механізмы структуравання праграм Працэдуры і функцыі
- •Функцыі карыстальніка
- •Параметры
- •Параметры-значэнні
- •Параметры-пераменныя
- •Прынцып лакалізацыі
- •Пабочны эфект
- •Рэкурсія і ітэрацыі
- •Параметры без тыпу
- •Працэдуры і функцыі як параметры. Працэдурныя тыпы
- •Пераменныя – працэдуры і функцыі
- •Падпраграмы ў модулях
- •Выкарыстанне модуля
- •Стандартныя бібліятэчныя модулі
- •Працэдуры кіравання праграмай
- •Эфектыўнасць праграм
- •Аптымізацыя ў час кампілявання
- •Індэксацыя
- •Выкарыстанне цыклаў
- •Арганізацыя цыклаў
- •Аптымізацыя цыклаў
- •Літаратура
Аператар варыянта
Аператар варыянта з’яўляецца абагульненнем аператара IF і дазваляе зрабіць выбар з адвольнага ліку наяўных варыянтаў (галін).
Разгледзім, як выкарыстоўваецца аператар варыянта спачатку на схеме. Дапусцім, трэба рэалізаваць працэс, які мае такі выгляд: ідзе разгалінаванне па адным з n шляхоў у залежнасці ад нейкага значэння выразу «варыянт парадкавага тыпу».
Схема аператара CASE:
Фармат аператара CASE :
CASE выраз-селектар OF
Спіс_1: аператар_1;
Спіс_2: аператар_2;
...
Спіс_n: аператар_n;
ELSE аператары
END;
дзе Спіс_і (1 і n) – спіс канстант выбару.
Галіна ELSE можа адсутнічаць. Спачатку падлічваецца значэнне выразу-селектара, потым забяспечваецца рэалізацыя таго аператара, канстанта выбару якога роўна бягучаму значэнню селектара. Калі ніводная з канстант не роўна бягучаму значэнню селектара, тады:
пры наяўнасці варыянта ELSE выконваецца аператар, запісаны за ім;
адсутнасці ELSE выконваецца першы аператар за мяжой CASE.
Сінтаксічная дыяграма аператара CASE (без варыянта ELSE):
Селектар павінен адносіцца да аднаго з простых пералічальных тыпаў: цэлалікавых (у дыяпазоне –32 768 .. 65 535), булеўскіх, сімвальных ці карыстальніцкіх (Longint, Real, String – не дазваляюцца).
Спіс канстант выбару складаецца з адвольнай колькасці значэнняў ці дыяпазонаў, якія аддзяляюцца адзін ад аднаго коскамі.
Прыклады.
1. Спіс канстант выбару інтэрвальнага тыпу, i – цэлалікавае:
CASE i OF
1..10: Writeln('лік', i:4, ' у дыяпазоне 1-10');
11..20: Writeln('лік', i:4, ' у дыяпазоне 11-20');
21..30: Writeln('лік', i:4, ' у дыяпазоне 21-30');
ELSE Writeln('лік', i:4, ' па-за межамі кантролю');
END;
2. Спіс канстант выбару цэлалікавага тыпу, i – цэлае:
CASE i OF
0, 1: x:=0;
2: x:=sin(x);
3: x:=cos(x);
4: x:=exp(x);
5: x:=ln(x)
END;
3. Спіс пералічальнага карыстальніцкага тыпу:
VAR
season: (Winter, Summer, Spring, Autumn);
BEGIN
…
CASE season OF
Winter : Write ('Зіма');
Summer : Write ('Лета');
Spring : Write ('Вясна');
Autumn : Write ('Восень')
ELSE
BEGIN
Writeln('Перыяд не вызначаны'); Halt
END
END;
З гэтага прыкладу робім вывад: аналагічным чынам можна арганізаваць увод і вывад даных пералічальнага тыпу і абысці адпаведныя абмежаванні мовы.
4. Спіс канстант выбару літарнага тыпу:
VAR ch: Char; x, y, z: Integer;
…
CASE ch OF
'+' : z:=x+y;
'-' : z:=x-y;
'*' : BEGIN z:=x*y; …; END;
'/' : BEGIN z:=x div y; Writeln(x,y,z); END;
'^' : ;
END
5. Аператар IF у інтэрпрэтацыі аператара CASE:
VAR L: boolean;
…
CASE L OF
false : BEGIN … Write('няпраўда'); … END;
true : BEGIN … Write('праўда'); … END
END
6. Складаны выбар у інтэрпрэтацыі аператара CASE:
CASE i OF
1, 3, 5, 7, 9 : Write('няцотная лічба');
0, 2, 4, 6, 8 : Write('цотная лічба');
10..100 : Write('ад 10 да 100')
ELSE Write('<0 або >100');
END
Заўвага. Спіс канстант выбару нагадвае метку (у наступнай інтэрпрэтацыі), але гэта не метка, на яе нельга спасылацца ў аператары пераходу. Яе не трэба аб’яўляць у LABEL.