
- •Уводзіны Ключавыя палажэнні
- •Развіццё моў камп’ютарнага праграміравання
- •Эвалюцыя мовы Pascal
- •Структурная метадалогія распрацоўкі праграм Алгарытм
- •Асноўныя этапы рашэння задач на эвм
- •Блок-схемы
- •Структураграмы
- •Тэсціраванне праграм
- •Адладка праграм
- •Структурнае праграміраванне і дакладнасць праграм
- •Асноўныя канструкцыі структур кіравання
- •Метады распрацоўкі праграм
- •Праграміраванне зверху ўніз (ад агульнага да асобнага)
- •Модульнае праграміраванне
- •Праграміраванне знізу ўверх
- •Структурнае кадзіраванне
- •Арыфметыка эвм Сістэмы злічэння
- •Пераклады лікаў з адной сістэмы злічэння ў другую
- •Пераклад цэлых дадатных лікаў з сістэмы злічэння з асновай «p» у сістэму злічэння з асновай «q»
- •Пераклад правільных дробаў з сістэмы злічэння з асновай «p» у сістэму злічэння з асновай «q»
- •Пераклад змешаных дробаў
- •Формы прадстаўлення даных
- •Формы прадстаўлення лікаў у персанальным камп’ютары
- •Захаванне лікаў з фіксаванай кропкай
- •Захаванне цэлых лікаў
- •Алгарытм прадстаўлення адмоўнага ліку ў адваротным кодзе
- •Прынцыпы захавання лікаў з плаваючай кропкай
- •Фарматы лікаў з плаваючай кропкай арыфметычнага супрацэсара ibm pc/aт 8087
- •Сродкі алгарытмічнай мовы Pascal Агульная характарыстыка алгарытмічных моў
- •Базавыя элементы мовы Pascal
- •Алфавіт
- •Лексічная структура мовы
- •Агульная структура Pascal-праграмы
- •Простыя даныя мовы Pascal і работа з імі Тыпы звестак
- •Канстанты і пераменныя
- •Абсалютныя пераменныя
- •Цэлалікавыя даныя
- •Бітавая арыфметыка
- •Дзеянні бітавай арыфметыкі
- •Сапраўдныя даныя
- •Аперацыі над сапраўднымі данымі
- •Выразы мовы
- •Літарныя даныя
- •Функцыі
- •Булеўскія даныя
- •Даныя адраснага тыпу
- •Даныя карыстальніцкага тыпу
- •Даныя пералічальнага тыпу
- •Даныя інтэрвальнага тыпу
- •Элементарныя сродкі па рабоце з данымі Наданне значэння даным
- •Найпрасцейшае вызначэнне працэдур і функцый
- •Параметры
- •Знаёмства з файлавай сістэмай
- •Файлавы тып
- •Тэкставыя стандартныя файлы
- •Увод даных розных тыпаў
- •Вывад даных розных тыпаў
- •Вывад сімвалаў
- •Вывад радковых даных
- •Вывад лагічных значэнняў
- •Вывад цэлалікавых значэнняў
- •Вывад даных сапраўднага тыпу
- •Базавыя аператары мовы і метады праграміравання Аператары
- •Простыя аператары
- •Аператар безумоўнага пераходу goto
- •Аператар выкліку працэдуры
- •Пусты аператар
- •Састаўны аператар
- •Аператары выбару
- •Умоўны аператар
- •Метады і прыёмы праграміравання
- •Аператар варыянта
- •Прыклады праграм
- •Аператары паўтарэння
- •Аператар паўтарэння for
- •Аператар паўтарэння repeat
- •Аператар паўтарэння while
- •Хуткая ступень
- •Ітэрацыйныя алгарытмы вышэйшай матэматыкі
- •Структуры даных і праца з імі сродкамі мовы Pascal Парадкавыя тыпы
- •Мноствы
- •Тыпізаваныя канстанты тыпу «мноства»
- •Дзеянні над масівамі
- •Дзеянні над элементамі масіву
- •Пераменныя тыпу «масіў» са стартавым значэннем, ці тыпізаваныя канстанты-масівы
- •Канстанты з тыпам «масіў»
- •Камбінаваны тып «запісы»
- •Змяненне (прывядзенне) тыпаў і значэнняў
- •Радкі сімвалаў
- •Наданне значэння радкам
- •Радковыя выразы
- •Рэдагаванне радкоў
- •Пераўтварэнне радкоў
- •Механізмы структуравання праграм Працэдуры і функцыі
- •Функцыі карыстальніка
- •Параметры
- •Параметры-значэнні
- •Параметры-пераменныя
- •Прынцып лакалізацыі
- •Пабочны эфект
- •Рэкурсія і ітэрацыі
- •Параметры без тыпу
- •Працэдуры і функцыі як параметры. Працэдурныя тыпы
- •Пераменныя – працэдуры і функцыі
- •Падпраграмы ў модулях
- •Выкарыстанне модуля
- •Стандартныя бібліятэчныя модулі
- •Працэдуры кіравання праграмай
- •Эфектыўнасць праграм
- •Аптымізацыя ў час кампілявання
- •Індэксацыя
- •Выкарыстанне цыклаў
- •Арганізацыя цыклаў
- •Аптымізацыя цыклаў
- •Літаратура
Абсалютныя пераменныя
Папярэднія пераменныя атрымлівалі ў памяці тое месца, якое ім даваў кампілятар. Але ёсць іншая магчымасць. Пераменныя можна апісаць так, што яны будуць размяшчацца па пэўным адрасе ў памяці, і тады яны называюцца абсалютнымі.
Аб’яўленне абсалютнай пераменнай:
Дырэктыва абсалютнай пераменнай:
Першая форма з дырэктывай ABSOLUTE утрымлівае адрас пераменнай, зададзены як сегмент і зрушэнне. Абедзве канстанты не павінны выходзіць за межы дыяпазону ад $0000 да $FFFF (ад 0 да 65 535).
Другая форма выкарыстоўваецца для аб’яўлення пераменнай, якая змяшчаецца «паверх» другой пераменнай, г. зн. па тым жа адрасе, што і першая пераменная.
VAR
A : Byte;
B : Char ABSOLUTE A;
Імя пераменнай з’яўляецца «абалонкай». Апошнюю можна запоўніць рознымі значэннямі, якія дапускае дадзены тып.
Акрамя канстант і пераменных існуюць так званыя тыпізаваныя канстанты – гэта пераменныя з пачатковым значэннем, аднак яны вызначаюцца ў секцыі CONST.
Фармат вызначэння тыпізаванай канстанты:
CONST
Ідэнтыфікатар : тып = значэнне;
Прыклад вызначэння тыпізаванай канстанты:
CONST
Max : Word = 10000;
У прыкладным аспекце тыпізаваная канстанта – гэта пераменная з загадзя ініцыялізаваным значэннем. Над ёй у праграме могуць выконвацца тыя ж дзеянні, што і над пераменнай.
Апісанне канстанты:
Вызначэнне тыпізаванай канстанты:
Вызначэнне канстанты:
Цэлалікавыя даныя
Гэтая група тыпаў абазначае мноства цэлых лікаў у розных дыяпазонах. Існуе пяць цэлых тыпаў, якія адрозніваюцца дапушчальным дыяпазонам значэнняў і памерам аператыўнай памяці. Іх характарыстыкі і назвы прыведзены ў табліцы.
Цэлы тып |
Дыяпазон |
Памер памяці |
Уласцівасць |
Shortint |
–128..127 |
1 байт |
Са знакам |
Integer |
–32768..32767 |
2 байты |
|
Longint |
–2147483648..2147483647 |
4 байты |
|
Byte |
0..255 |
1 байт |
Без знака |
Word |
0..65535 |
2 байты |
Прыклад вызначэння пераменных цэлых тыпаў прыведзены ніжэй:
VAR x1, x2 : Byte;
Y1 : Word;
Z : Integer;
a, b : Longint;
c : Shortint;
У памяці ЭВМ даныя цэлага тыпу ўяўляюцца ў двайковым кодзе дакладна ў форме з фіксаванай кропкай; кропка мяркуецца за правым крайнім разрадам адведзенага поля (ячэйкі). Вызначана стандартная канстанта MAXINT. Значэнне яе – найбольшае цэлае значэнне, якое дапушчальна ў дадзенай ЭВМ. Звычайна гэта 32 767 ці 2 147 483 647. Акрамя канстант MAXINT да цэлага тыпу адносяцца тыя канстанты, выявы якіх у праграме ўяўлены цэлым лікам.
Над цэлымі данымі вызначаны наступныя аперацыі, якія даюць цэлы вынік: *, +, –, DIV, MOD, але / – дзяленне – дае вынік сапраўдны.
DIV – дзяленне цалкам (з усячэннем), адкідваецца дробная частка. Напрыклад, выкананне аперацыі 17 DIV 3 дае вынік 5, а 17 DIV 0 прыводзіць да памылкі.
MOD – вылучэнне рэшты ад дзялення двух цэлых аперандаў. Напрыклад: 17 MOD 2 дае вынік 1.
Акрамя арыфметычных аперацый, да даных цэлага тыпу прымяняюць аперацыі адносін: <, >, =, <>, <=, >=. Вынікам аперацый адносін з’яўляецца True (праўда) або False (няпраўда).
Значэнні цэлых тыпаў могуць адлюстроўвацца ў праграме двума спосабамі: у 10-й с/зл і 16-й с/зл. У апошнім нетрадыцыйным выпадку лічбы, старэйшыя за 9, абазначаюцца лацінскімі літарамі ад A да F (можна малымі), а ў пачатку ставіцца сімвал $ (знак долара).
Прыклады: 123 –1 B80 $F1 $123
Максімальна
дапушчальны дыяпазон: –2 147 483 648
.. 2 147 483 647 (
$7FFFFFFF).
Сінтаксічная дыяграма для задання выявы цэлых лікаў:
Шаснаццацірычныя лікі выкарыстоўваюць для нагляднасці, калі трэба адлюстраваць значэнне пэўных бітаў у нейкім даным цэлага тыпу.
Цэлы вынік даюць таксама наступныя стандартныя функцыі (аргумент ад імені функцыі аддзяляецца круглымі дужкамі):
аргумент
– цэлага тыпу, вынік – абсалютнае
значэнне
аргумент
– цэлага тыпу, вынік –
аргумент
– рэальнага тыпу, вынік – цэлая частка
дробавая
– адкідваецца,
– сапраўднае, вынік – акругленае цэлае.
Пры
Булеўскі
(лагічны) вынік дае функцыя
– цэлага тыпу. Калі
няцотнае, то вынік TRUE,
інакш – FALSE.
У наступных функцыях аргумент можа быць цэлалікавы, але вынік будзе сапраўдны: sin(x), cos(x), arctan(x), ln(x), exp(x), sqrt(x).
Працэдуры Dec(x[,n]) і Іnc(x[,n]) пераводзяць цэлалікавы аргумент у цэлалікавы.
Працэдура
Dec(x[,n])
памяншае значэнне цэлалікавай
пераменнай
на цэлае значэнне
Калі неабавязковы параметр
адсутнічае,
памяншаецца на 1. Выклік
працэдуры Dec(x,і)
эквівалентны аператару
х:=х-і,
а Dec(x)
эквівалентны х:=х-1.
Працэдура Іnc(x[,n]) павялiчвае значэнне цэлалікавай пераменнай на цэлае значэнне Калі неабавязковы параметр адсутнічае, павялічваецца на 1. Выклік працэдуры Іnc(x,і) эквівалентны аператару х:=х+і, а Іnc(x) эквівалентны х:=х+1.