- •Уводзіны Ключавыя палажэнні
- •Развіццё моў камп’ютарнага праграміравання
- •Эвалюцыя мовы Pascal
- •Структурная метадалогія распрацоўкі праграм Алгарытм
- •Асноўныя этапы рашэння задач на эвм
- •Блок-схемы
- •Структураграмы
- •Тэсціраванне праграм
- •Адладка праграм
- •Структурнае праграміраванне і дакладнасць праграм
- •Асноўныя канструкцыі структур кіравання
- •Метады распрацоўкі праграм
- •Праграміраванне зверху ўніз (ад агульнага да асобнага)
- •Модульнае праграміраванне
- •Праграміраванне знізу ўверх
- •Структурнае кадзіраванне
- •Арыфметыка эвм Сістэмы злічэння
- •Пераклады лікаў з адной сістэмы злічэння ў другую
- •Пераклад цэлых дадатных лікаў з сістэмы злічэння з асновай «p» у сістэму злічэння з асновай «q»
- •Пераклад правільных дробаў з сістэмы злічэння з асновай «p» у сістэму злічэння з асновай «q»
- •Пераклад змешаных дробаў
- •Формы прадстаўлення даных
- •Формы прадстаўлення лікаў у персанальным камп’ютары
- •Захаванне лікаў з фіксаванай кропкай
- •Захаванне цэлых лікаў
- •Алгарытм прадстаўлення адмоўнага ліку ў адваротным кодзе
- •Прынцыпы захавання лікаў з плаваючай кропкай
- •Фарматы лікаў з плаваючай кропкай арыфметычнага супрацэсара ibm pc/aт 8087
- •Сродкі алгарытмічнай мовы Pascal Агульная характарыстыка алгарытмічных моў
- •Базавыя элементы мовы Pascal
- •Алфавіт
- •Лексічная структура мовы
- •Агульная структура Pascal-праграмы
- •Простыя даныя мовы Pascal і работа з імі Тыпы звестак
- •Канстанты і пераменныя
- •Абсалютныя пераменныя
- •Цэлалікавыя даныя
- •Бітавая арыфметыка
- •Дзеянні бітавай арыфметыкі
- •Сапраўдныя даныя
- •Аперацыі над сапраўднымі данымі
- •Выразы мовы
- •Літарныя даныя
- •Функцыі
- •Булеўскія даныя
- •Даныя адраснага тыпу
- •Даныя карыстальніцкага тыпу
- •Даныя пералічальнага тыпу
- •Даныя інтэрвальнага тыпу
- •Элементарныя сродкі па рабоце з данымі Наданне значэння даным
- •Найпрасцейшае вызначэнне працэдур і функцый
- •Параметры
- •Знаёмства з файлавай сістэмай
- •Файлавы тып
- •Тэкставыя стандартныя файлы
- •Увод даных розных тыпаў
- •Вывад даных розных тыпаў
- •Вывад сімвалаў
- •Вывад радковых даных
- •Вывад лагічных значэнняў
- •Вывад цэлалікавых значэнняў
- •Вывад даных сапраўднага тыпу
- •Базавыя аператары мовы і метады праграміравання Аператары
- •Простыя аператары
- •Аператар безумоўнага пераходу goto
- •Аператар выкліку працэдуры
- •Пусты аператар
- •Састаўны аператар
- •Аператары выбару
- •Умоўны аператар
- •Метады і прыёмы праграміравання
- •Аператар варыянта
- •Прыклады праграм
- •Аператары паўтарэння
- •Аператар паўтарэння for
- •Аператар паўтарэння repeat
- •Аператар паўтарэння while
- •Хуткая ступень
- •Ітэрацыйныя алгарытмы вышэйшай матэматыкі
- •Структуры даных і праца з імі сродкамі мовы Pascal Парадкавыя тыпы
- •Мноствы
- •Тыпізаваныя канстанты тыпу «мноства»
- •Дзеянні над масівамі
- •Дзеянні над элементамі масіву
- •Пераменныя тыпу «масіў» са стартавым значэннем, ці тыпізаваныя канстанты-масівы
- •Канстанты з тыпам «масіў»
- •Камбінаваны тып «запісы»
- •Змяненне (прывядзенне) тыпаў і значэнняў
- •Радкі сімвалаў
- •Наданне значэння радкам
- •Радковыя выразы
- •Рэдагаванне радкоў
- •Пераўтварэнне радкоў
- •Механізмы структуравання праграм Працэдуры і функцыі
- •Функцыі карыстальніка
- •Параметры
- •Параметры-значэнні
- •Параметры-пераменныя
- •Прынцып лакалізацыі
- •Пабочны эфект
- •Рэкурсія і ітэрацыі
- •Параметры без тыпу
- •Працэдуры і функцыі як параметры. Працэдурныя тыпы
- •Пераменныя – працэдуры і функцыі
- •Падпраграмы ў модулях
- •Выкарыстанне модуля
- •Стандартныя бібліятэчныя модулі
- •Працэдуры кіравання праграмай
- •Эфектыўнасць праграм
- •Аптымізацыя ў час кампілявання
- •Індэксацыя
- •Выкарыстанне цыклаў
- •Арганізацыя цыклаў
- •Аптымізацыя цыклаў
- •Літаратура
Блок-схемы
У табліцы прыведзены некаторыя стандартныя сімвалы, якія выкарыстоўваюцца ў блок-схемах, і функцыі, якія ім нададзены.
Назва |
Абазначэнне сімвала |
Функцыя |
Працэс |
|
Выкананне аперацый, у выніку якіх змяняецца значэнне даных |
Рашэнне |
|
Выбар напрамку выканання алгарытму ў залежнасці ад некаторых пераменных умоў |
Мадыфікацыя |
|
Выкананне аперацый, якія змяняюць каманды ці групы каманд |
Пуск-астаноў |
|
Пачатак, канец апрацоўкі даных |
Наперад вызначаны працэс |
|
Выкарыстанне раней створаных і асобна апісаных алгарытмаў |
Злучальнік |
|
Паказвае, што працяг алгарытму знаходзіцца на гэтай жа старонцы |
Абмен данымі |
|
Абмен данымі паміж знешняй і аператыўнай памяццю |
Друкаванне |
|
Друкаванне даных |
Зліццё ліній патоку |
|
Зліццё ліній патоку |
Каментарыі |
|
Сувязь паміж элементамі схемы і тлумачэннем |
Напрамак ліній патоку |
|
Натуральнае зверху ўніз ці справа налева (без стрэлак) і відавочнае |
У блоках дазваляецца пісаць нейкія тлумачальныя дзеянні. Напрыклад, – гэта наступны працэс: пераменнай х надаць значэнне 1 ці, інакш кажучы, прысвоіць значэнне 1 (знак «:=» – надаць значэнне замест «=» – роўна).
Недахоп блок-схем у тым, што яны займаюць многа месца, і таму з’явіўся яшчэ адзін сродак – дыяграмы Насі – Шнейдэрмана, ці структураграмы.
Структураграмы
Структураграмы – гэта дапаможныя сродкі для графічнага апісання праграм. Яны даюць добрую сістэму апісання і разумення праграм і выкарыстоўваюцца для ілюстрацыі працэсу перадачы кіравання ў праграме. Таму асноўныя канструкцыі структураграмы – гэта працэсы, а найпрасцейшы сімвал – прамавугольнік. Уся структураграма – прамавугольнік, які падзяляецца на працэсы – прамавугольнікі. Структураграма дазваляе кампактна на адным аркушы сканструяваць агульную паслядоўнасць дзеянняў, якая прыводзіць да рашэння задачы. Кіраванне ідзе зверху ўніз.
Асноўныя канструкцыі структураграм
Назва |
Абазначэнне сімвала |
Функцыя |
Аператар мовы |
Працэс |
|
Любая група дзеянняў, якая ўтварае блок |
|
Рашэнне |
|
Выбар напрамку выканання алгарытму ў залежнасці ад некаторых пераменных умоў |
if_then_else |
Варыянт |
|
Выбіраецца варыянт далейшага дзеяння |
case_of_end |
Цыкл |
|
Цыкл з перадумовай |
while_do |
Цыкл |
|
Цыкл з пасляўмовай |
repeat_until |
Цыкл |
|
Цыкл на зададзеную колькасць паўтарэнняў |
for_to _do
for_downto _do |
Блок-схемы патрабуюць менш кваліфікацыі пры іх распрацоўцы, а пры выкарыстанні структураграм ужо трэба ведаць аб лінейных і нелінейных працэсах, цыклах з перад-, пасляўмовамі ці аб цыкле на вядомую колькасць паўтарэнняў.
У кожнай з форм уяўлення алгарытму ёсць свае перавагі і недахопы. Структураграмы трымаюць распрацоўшчыка ў больш жорсткіх рамках, ды і пісаць па іх праграмы прасцей, таму што сучасныя алгарытмічныя мовы – мовы структурнага праграміравання, і ў іх існуюць спецыяльныя аператары, якія прыстасаваны да адпаведных канструкцый структураграмы. Гэта if_then_else, сase_of_end, while_do, repeat_until, for_to(downto)_do і інш.
Этап 4. Праграма на алгарытмічнай мове складаецца з інструкцый – аператараў. Кожная мова мае свае ўласцівасці і арыентацыі на пэўныя класы задач. Калі ёсць магчымасць выбару мовы, трэба асэнсаваць, якая мова найбольш падыходзіць для рашэння пастаўленай задачы.
Этап 5. Тэсціраванне і адладка праграм – вельмі важныя складнікі працэсу распрацоўкі праграмы. Тэсціраванне – гэта працэс выканання алгарытму з мэтай вызначэння ў ім наяўнасці памылак, адладка – працэс лакалізацыі і выпраўлення памылак. Калі вынік, атрыманы пры дапамозе праграмы, супадае (з улікам хібнасці машыннага падліку) з чаканым, ёсць падставы меркаваць, што праграма працуе карэктна. Але гэта толькі падставы, а не абсалютная ўпэўненасць! Сярод пачынаючых праграмістаў распаўсюджана думка, што калі праграма паспяхова адкампілявана і пасля запуску на выкананне выдае на экран рад лічбаў, то задача вырашана. На самай справе праграму можна лічыць гатовай, калі распрацоўшчык змог даказаць заказчыку (ды і самому сабе), што вынік работы праграмы з’яўляецца рашэннем пастаўленай задачы.
Этап 6. Калі памылкі ўсе выпраўлены, пачынаецца этап эксплуатацыі праграмы. Пры гэтым могуць спатрэбіцца апісанні як пастаноўкі задачы, так алгарытму і тэксту праграмы.
Далей больш падрабязна разгледзім тэсціраванне і адладку праграм.