- •Уводзіны Ключавыя палажэнні
- •Развіццё моў камп’ютарнага праграміравання
- •Эвалюцыя мовы Pascal
- •Структурная метадалогія распрацоўкі праграм Алгарытм
- •Асноўныя этапы рашэння задач на эвм
- •Блок-схемы
- •Структураграмы
- •Тэсціраванне праграм
- •Адладка праграм
- •Структурнае праграміраванне і дакладнасць праграм
- •Асноўныя канструкцыі структур кіравання
- •Метады распрацоўкі праграм
- •Праграміраванне зверху ўніз (ад агульнага да асобнага)
- •Модульнае праграміраванне
- •Праграміраванне знізу ўверх
- •Структурнае кадзіраванне
- •Арыфметыка эвм Сістэмы злічэння
- •Пераклады лікаў з адной сістэмы злічэння ў другую
- •Пераклад цэлых дадатных лікаў з сістэмы злічэння з асновай «p» у сістэму злічэння з асновай «q»
- •Пераклад правільных дробаў з сістэмы злічэння з асновай «p» у сістэму злічэння з асновай «q»
- •Пераклад змешаных дробаў
- •Формы прадстаўлення даных
- •Формы прадстаўлення лікаў у персанальным камп’ютары
- •Захаванне лікаў з фіксаванай кропкай
- •Захаванне цэлых лікаў
- •Алгарытм прадстаўлення адмоўнага ліку ў адваротным кодзе
- •Прынцыпы захавання лікаў з плаваючай кропкай
- •Фарматы лікаў з плаваючай кропкай арыфметычнага супрацэсара ibm pc/aт 8087
- •Сродкі алгарытмічнай мовы Pascal Агульная характарыстыка алгарытмічных моў
- •Базавыя элементы мовы Pascal
- •Алфавіт
- •Лексічная структура мовы
- •Агульная структура Pascal-праграмы
- •Простыя даныя мовы Pascal і работа з імі Тыпы звестак
- •Канстанты і пераменныя
- •Абсалютныя пераменныя
- •Цэлалікавыя даныя
- •Бітавая арыфметыка
- •Дзеянні бітавай арыфметыкі
- •Сапраўдныя даныя
- •Аперацыі над сапраўднымі данымі
- •Выразы мовы
- •Літарныя даныя
- •Функцыі
- •Булеўскія даныя
- •Даныя адраснага тыпу
- •Даныя карыстальніцкага тыпу
- •Даныя пералічальнага тыпу
- •Даныя інтэрвальнага тыпу
- •Элементарныя сродкі па рабоце з данымі Наданне значэння даным
- •Найпрасцейшае вызначэнне працэдур і функцый
- •Параметры
- •Знаёмства з файлавай сістэмай
- •Файлавы тып
- •Тэкставыя стандартныя файлы
- •Увод даных розных тыпаў
- •Вывад даных розных тыпаў
- •Вывад сімвалаў
- •Вывад радковых даных
- •Вывад лагічных значэнняў
- •Вывад цэлалікавых значэнняў
- •Вывад даных сапраўднага тыпу
- •Базавыя аператары мовы і метады праграміравання Аператары
- •Простыя аператары
- •Аператар безумоўнага пераходу goto
- •Аператар выкліку працэдуры
- •Пусты аператар
- •Састаўны аператар
- •Аператары выбару
- •Умоўны аператар
- •Метады і прыёмы праграміравання
- •Аператар варыянта
- •Прыклады праграм
- •Аператары паўтарэння
- •Аператар паўтарэння for
- •Аператар паўтарэння repeat
- •Аператар паўтарэння while
- •Хуткая ступень
- •Ітэрацыйныя алгарытмы вышэйшай матэматыкі
- •Структуры даных і праца з імі сродкамі мовы Pascal Парадкавыя тыпы
- •Мноствы
- •Тыпізаваныя канстанты тыпу «мноства»
- •Дзеянні над масівамі
- •Дзеянні над элементамі масіву
- •Пераменныя тыпу «масіў» са стартавым значэннем, ці тыпізаваныя канстанты-масівы
- •Канстанты з тыпам «масіў»
- •Камбінаваны тып «запісы»
- •Змяненне (прывядзенне) тыпаў і значэнняў
- •Радкі сімвалаў
- •Наданне значэння радкам
- •Радковыя выразы
- •Рэдагаванне радкоў
- •Пераўтварэнне радкоў
- •Механізмы структуравання праграм Працэдуры і функцыі
- •Функцыі карыстальніка
- •Параметры
- •Параметры-значэнні
- •Параметры-пераменныя
- •Прынцып лакалізацыі
- •Пабочны эфект
- •Рэкурсія і ітэрацыі
- •Параметры без тыпу
- •Працэдуры і функцыі як параметры. Працэдурныя тыпы
- •Пераменныя – працэдуры і функцыі
- •Падпраграмы ў модулях
- •Выкарыстанне модуля
- •Стандартныя бібліятэчныя модулі
- •Працэдуры кіравання праграмай
- •Эфектыўнасць праграм
- •Аптымізацыя ў час кампілявання
- •Індэксацыя
- •Выкарыстанне цыклаў
- •Арганізацыя цыклаў
- •Аптымізацыя цыклаў
- •Літаратура
Арыфметыка эвм Сістэмы злічэння
Пад сістэмай злічэння будзем разумець спосаб уяўлення любога ліку пры дапамозе некаторага алфавіта сімвалаў, якія называюцца лічбамі.
Сістэма злічэння (с/зл) называецца пазіцыйнай, калі адна і тая ж лічба мае рознае значэнне, якое адпавядае пазіцыі лічбы ў паслядоўнасці лічбаў, што ўтвараюць лік.
Колькасць S розных лічбаў, якія выкарыстоўваюцца ў пазіцыйнай сістэме злічэння, называецца яе асновай. Лічбы, якія выкарыстоўваюцца ў сістэме злічэння для запісу лікаў, называюцца базіснымі лікамі. Гэтыя лічбы абазначаюць S цэлых лікаў, звычайна такога рада: 0, 1, 2, 3, .... У сістэмах злічэння, дзе лічбы большыя за 9 абазначаюць літарамі.
Сістэма злічэння |
Аснова сістэмы злічэння |
Базісныя лікі |
10-я |
10 |
0, 1, 2, 3, …, 9 |
2-я |
2 |
0, 1 |
16-я |
16 |
0, 1, …, 9, A, B, C, D, E, F |
У агульным выпадку ў пазіцыйнай сістэме з асновай S любы лік x можа быць прадстаўлены ў выглядзе палінома ад асновы S:
(1)
дзе ў якасці каэфіцыентаў могуць стаяць любыя з S лічбаў, якія выкарыстоўваюцца ў сістэме злічэння.
Замест віду (1) прынята пісаць карацей:
(2)
Пазіцыі лічбаў, якія адлічваюцца ад раздзяляльніка цэлай і дробавай часткі, называюцца разрадамі. Раздзяляльнік у матэматыцы – коска, у праграміраванні – кропка.
У пазіцыйнай сістэме злічэння значэнне кожнага разраду больш за значэнне суседняга справа разраду ў лік разоў роўна аснове S сістэмы.
У 2-й с/зл (S = 2) выкарыстоўваюць лічбы 0, 1; тады любы лік, запісаны ў выглядзе (2), можна запісаць у форме палінома (1) так:
дзе
Напрыклад:
Пры выкананні арыфметычных дзеянняў над лікамі прымяняюць табліцы складання, аднімання і множання.
Табліцы складання, аднімання і множання ў 2-й с/зл.
0 + 0 = 0 |
0 – 0 = 0 |
0 · 0 = 0 |
0 + 1 = 1 |
1 – 0 = 1 |
0 · 1 = 0 |
1 + 0 = 1 |
1 – 1 = 0 |
1 · 0 = 0 |
1 + 1 = 10 |
10 – 1 = 1 |
1 · 1 = 1 |
У 2-й с/зл добра выконваць арыфметычныя дзеянні, ды і для ўяўлення разраду двайковага ліку можна выкарыстаць любы просты элемент, які мае ўсяго два ўстойлівыя станы. Таму амаль усе ЭВМ працуюць у 2-й с/зл.
Аднак двайковае ўяўленне цэлага ліку патрабуе большага ліку разрадаў, чым яго 10-е ўяўленне (прыблізна ў 3,03 раза).
На наступным прыкладзе прасочым, як можна перакласці папярэдні лік з 2-й с/зл у 16-ю с/зл:
Калі над лікам, запісаным у 16-й с/зл, выканаць дзеянні ў 10-й с/зл, то атрымаем пераклад гэтага ліку з 16-й с/зл у 10-ю с/зл.
Напрыклад:
Пераклады лікаў з адной сістэмы злічэння ў другую
Агульны метад перакладу невялікіх лікаў з адной сістэмы злічэння ў другую: распісаць лік паліномам (1) і выканаць дзеянні ў новай сістэме злічэння.
Разгледзім пераклады лікаў з 2-й с/зл у 16-ю с/зл ці 8-ю с/зл і наадварот. Правілы выключна простыя, бо аснова 8-й і 16-й с/зл ёсць цэлыя ступені ліку 2:
Уяўленне лікаў розных сістэм злічэння даецца ў наступнай табліцы.
Сістэма злічэння |
Для перакладу 2-я с/зл 16-я с/зл |
Для перакладу 2-я с/зл 8-я с/зл |
||
10-я |
16-я |
2-я |
||
0 |
0 |
0 |
0000 |
000 |
1 |
1 |
1 |
0001 |
001 |
2 |
2 |
10 |
0010 |
010 |
3 |
3 |
11 |
0011 |
011 |
4 |
4 |
100 |
0100 |
100 |
5 |
5 |
101 |
0101 |
101 |
6 |
6 |
110 |
0110 |
110 |
7 |
7 |
111 |
0111 |
111 |
8 |
8 |
1000 |
1000 |
|
9 |
9 |
1001 |
1001 |
|
10 |
A |
1010 |
1010 |
|
11 |
B |
1011 |
1011 |
|
12 |
C |
1100 |
1100 |
|
13 |
D |
1101 |
1101 |
|
14 |
E |
1110 |
1110 |
|
15 |
F |
1111 |
1111 |
|
16 |
10 |
10000 |
|
|
... |
... |
... |
|
|
З гэтай табліцы відаць, што любая 16-я лічба патрабуе 4 двайковыя разрады, а 8-я – 3 разрады. Тады атрымаем наступнае правіла перакладу.
Правіла 1. Каб перакласці лік з 16-й с/зл у 2-ю с/зл, трэба любую лічбу распісаць у 2-й с/зл па 4 разрады (з 8-й с/зл у 2-ю с/зл – па 3 разрады; з 4-й с/зл у 2-ю с/зл – па 2 разрады), а потым адкінуць нязначныя нулі.
Гэта правіла можна вывесці строга. Напрыклад, для 16-й с/зл:
Паколькі множнік дае ў 2-й с/зл пераход адразу праз 4 разрады, значыць, і распішам кожную 16-ю лічбу 4 разрадамі праз гэты ж інтэрвал (кожнаму каэфіцыенту даюцца 4 двайковыя разрады). Напрыклад:
Правіла 2. Каб перакласці з 2-й с/зл у сістэму злічэння з асновай трэба ад кропкі налева і направа вылучыць групы па лічбаў (дапаўняючы пры неабходнасці нулямі крайнія групы) і кожнай групе паставіць у адпаведнасць пэўную лічбу новай сістэмы.
Напрыклад:
2-я с/зл 8-я с/зл
2-я с/зл 16-я с/зл
Пераклад лікаў з сістэм злічэння можна здзяйсняць праз 2-ю с/зл.
У тэкстах праграм 16-я с/зл і 8-я с/зл прымяняюцца для больш кароткага і зручнага запісу двайковых кодаў каманд, адрасоў і аперандаў.