- •Уводзіны Ключавыя палажэнні
- •Развіццё моў камп’ютарнага праграміравання
- •Эвалюцыя мовы Pascal
- •Структурная метадалогія распрацоўкі праграм Алгарытм
- •Асноўныя этапы рашэння задач на эвм
- •Блок-схемы
- •Структураграмы
- •Тэсціраванне праграм
- •Адладка праграм
- •Структурнае праграміраванне і дакладнасць праграм
- •Асноўныя канструкцыі структур кіравання
- •Метады распрацоўкі праграм
- •Праграміраванне зверху ўніз (ад агульнага да асобнага)
- •Модульнае праграміраванне
- •Праграміраванне знізу ўверх
- •Структурнае кадзіраванне
- •Арыфметыка эвм Сістэмы злічэння
- •Пераклады лікаў з адной сістэмы злічэння ў другую
- •Пераклад цэлых дадатных лікаў з сістэмы злічэння з асновай «p» у сістэму злічэння з асновай «q»
- •Пераклад правільных дробаў з сістэмы злічэння з асновай «p» у сістэму злічэння з асновай «q»
- •Пераклад змешаных дробаў
- •Формы прадстаўлення даных
- •Формы прадстаўлення лікаў у персанальным камп’ютары
- •Захаванне лікаў з фіксаванай кропкай
- •Захаванне цэлых лікаў
- •Алгарытм прадстаўлення адмоўнага ліку ў адваротным кодзе
- •Прынцыпы захавання лікаў з плаваючай кропкай
- •Фарматы лікаў з плаваючай кропкай арыфметычнага супрацэсара ibm pc/aт 8087
- •Сродкі алгарытмічнай мовы Pascal Агульная характарыстыка алгарытмічных моў
- •Базавыя элементы мовы Pascal
- •Алфавіт
- •Лексічная структура мовы
- •Агульная структура Pascal-праграмы
- •Простыя даныя мовы Pascal і работа з імі Тыпы звестак
- •Канстанты і пераменныя
- •Абсалютныя пераменныя
- •Цэлалікавыя даныя
- •Бітавая арыфметыка
- •Дзеянні бітавай арыфметыкі
- •Сапраўдныя даныя
- •Аперацыі над сапраўднымі данымі
- •Выразы мовы
- •Літарныя даныя
- •Функцыі
- •Булеўскія даныя
- •Даныя адраснага тыпу
- •Даныя карыстальніцкага тыпу
- •Даныя пералічальнага тыпу
- •Даныя інтэрвальнага тыпу
- •Элементарныя сродкі па рабоце з данымі Наданне значэння даным
- •Найпрасцейшае вызначэнне працэдур і функцый
- •Параметры
- •Знаёмства з файлавай сістэмай
- •Файлавы тып
- •Тэкставыя стандартныя файлы
- •Увод даных розных тыпаў
- •Вывад даных розных тыпаў
- •Вывад сімвалаў
- •Вывад радковых даных
- •Вывад лагічных значэнняў
- •Вывад цэлалікавых значэнняў
- •Вывад даных сапраўднага тыпу
- •Базавыя аператары мовы і метады праграміравання Аператары
- •Простыя аператары
- •Аператар безумоўнага пераходу goto
- •Аператар выкліку працэдуры
- •Пусты аператар
- •Састаўны аператар
- •Аператары выбару
- •Умоўны аператар
- •Метады і прыёмы праграміравання
- •Аператар варыянта
- •Прыклады праграм
- •Аператары паўтарэння
- •Аператар паўтарэння for
- •Аператар паўтарэння repeat
- •Аператар паўтарэння while
- •Хуткая ступень
- •Ітэрацыйныя алгарытмы вышэйшай матэматыкі
- •Структуры даных і праца з імі сродкамі мовы Pascal Парадкавыя тыпы
- •Мноствы
- •Тыпізаваныя канстанты тыпу «мноства»
- •Дзеянні над масівамі
- •Дзеянні над элементамі масіву
- •Пераменныя тыпу «масіў» са стартавым значэннем, ці тыпізаваныя канстанты-масівы
- •Канстанты з тыпам «масіў»
- •Камбінаваны тып «запісы»
- •Змяненне (прывядзенне) тыпаў і значэнняў
- •Радкі сімвалаў
- •Наданне значэння радкам
- •Радковыя выразы
- •Рэдагаванне радкоў
- •Пераўтварэнне радкоў
- •Механізмы структуравання праграм Працэдуры і функцыі
- •Функцыі карыстальніка
- •Параметры
- •Параметры-значэнні
- •Параметры-пераменныя
- •Прынцып лакалізацыі
- •Пабочны эфект
- •Рэкурсія і ітэрацыі
- •Параметры без тыпу
- •Працэдуры і функцыі як параметры. Працэдурныя тыпы
- •Пераменныя – працэдуры і функцыі
- •Падпраграмы ў модулях
- •Выкарыстанне модуля
- •Стандартныя бібліятэчныя модулі
- •Працэдуры кіравання праграмай
- •Эфектыўнасць праграм
- •Аптымізацыя ў час кампілявання
- •Індэксацыя
- •Выкарыстанне цыклаў
- •Арганізацыя цыклаў
- •Аптымізацыя цыклаў
- •Літаратура
Функцыі
Функцыя Ord(С) (Order – парадак), дзе C тыпу Char дае парадкавы нумар сімвала ў табліцы.
Функцыя Chr(i) па парадкавым нумары i дае сімвальнае значэнне – сімвал. Калі гэты сімвал можна знайсці ў табліцы.
Мае месца Chr(Ord(С))= C і Ord(Chr(i))= i – значыць, гэтыя функцыі адваротныя. Напрыклад, #32=Chr(32) – сімвал прабелу.
Трэба мець на ўвазе, што Ord('0') 0. Але мноства сімвалаў '0', '1', …, '9' (якія вызначаюць лічбы) упарадкавана без пропускаў. Значыць, можна выканаць перавод сімвальнага ўяўлення лічбы d у цэлалікавае значэнне:
Дзве функцыі Pred(с) і Succ(с) даюць адпаведна папярэдні і наступны сімвалы. Іх можна выкарыстоўваць і да іншых простых дыскрэтных тыпаў. Не маюць сэнсу такія выразы: Succ(#255) і Pred (#0).
Функцыя UpCase пераводзіць сімвалы з ніжняга рэгістра ў верхні для лацінскага алфавіта: UpCase('a') 'A'.
Булеўскія даныя
Пераменныя гэтага тыпу маюць апісанне Boolean. Існуюць два значэнні булеўскага тыпу (праўда і няпраўда), і гэтыя значэнні ў мове Pascal абазначаюцца стандартнымі ідэнтыфікатарамі true і false.
Значэнні булеўскага тыпу займаюць 1 байт памяці. Іх унутранае ўяўленне false ёсць 0, true ёсць 1. Функцыя ord вяртае значэнне 0 для булеўскага значэння true і значэнне 1 для булеўскага значэння false.
Над значэннямі булеўскага тыпу магчымы толькі аперацыі параўнання, прычым лічыцца, што false < true. Акрамя таго, існуюць чатыры стандартныя лагічныя аперацыі: AND, OR, XOR, NOT.
AND |
true |
false |
|
OR |
true |
false |
|
XOR |
true |
false |
true |
true |
false |
|
true |
true |
true |
|
true |
false |
true |
false |
false |
false |
|
false |
true |
false |
|
false |
true |
false |
NOT |
NOT true = false |
NOT false = true |
Значэнні булеўскага тыпу можна прымяняць для ўтварэння нейкіх разгалінаванняў.
П рыклад. Ёсць некаторая вобласць D і каардынаты пункта Пераменнай U надаць значэнне 1, калі і значэнне 0 – у адваротным выпадку. Фрагмент праграмы будзе наступны:
VAR x, y : Real;
U : Byte;
d : Boolean;
BEGIN
d := (sqr(x) + sqr(y) <=1) AND (abs(x) + abs(y) >= 1);
IF d THEN U := 1 ELSE U := 0
END.
Можна і інакш:
U := ord(d);
{магчыма далейшае выкарыстанне значэння пераменнай d}
Даныя адраснага тыпу
Мова Turbo Pascal аб’яўляе спецыяльны адрасны тып – Pointer (паказальнік). Значэннем адраснага тыпу з’яўляецца адрас ячэйкі памяці, зададзены па правілах аперацыйнай сістэмы MS DOS. Гэты тып – унутраны, таму яго значэнне нельга вывесці на друк ці запісаць у пераменную, як мы запісваем лікавыя значэнні. Дзеля гэтага заўсёды даводзіцца выкарыстоўваць спецыяльныя функцыі.
Існуе ўбудаваная функцыя Sizeof(а), якая дае памер памяці аргумента ў байтах. Напрыклад, выклік функцыі Sizeof(Pointer)дае вынік 4 (байты).