- •1 Модуль. Алгоритмдеу және программалауға кіріспе
- •1 Тақырып. Кіріспе
- •1 Лекция
- •1.1 „Автоматтандыру есептерін программалау" курсының мақсаттары мен міндеттері.
- •1.2 Есептеуіш техника құралдарын пайдаланып ақпаратты өндеу және басқару жүйелерін әзірлеу. Компьютерлік жүйелердің ақпаратты өндеу және басқару әдістері мен міндеттері
- •2 Тақырып.Дербес компьютерді (дк) программалауды автоматтандырудың программалық құралдары
- •2 Лекция
- •2.1 Дербес компьютердің программалық қамтамасыз етілуі туралы
- •2.2 Программалауды автоматтандыру әдістері. Алгоритмдік тілдер және оларға қойылатын талаптар.
- •2.3 Процедуралы–бағытталған тілдер және объектке–бағытталған программалау туралы түсінік.
- •3.1 Программаларды құру құралдары
- •3.2 Программалаудың біртұтас жүйелері.
- •3.3 Техникалық есептер
- •3 Тақырып. Есептерді алгоритмдеу негіздері.
- •4 Лекция
- •4.1 Алгоритм анықтамасы. Алгоритмдерді бейнелеу тәсілдері.
- •4.2 Алгоритмдердің блок-схемаларын безендіру ережелері.
- •4.3 Алгоритм құрылымдарының түрлері.
- •4 Тақырып Негізгі процедураға бағытталған алгоритмдеу тілінде программалау
- •5 Лекция
- •5.1 Оқылатын алгоритмдеу тілінің негізгі түсініктері
- •5.3 Тілдің негізгі объектілерін жазу ережелері
- •5.4 Деректердің типтері
- •5.5 Деректердің стандартты типтері
- •6 Лекция
- •6.2 Өрнектер. Арифметикалық және логикалық өрнектер
- •7 Лекция Құрылымды деректер (типтер)
- •7.1 Массивтер
- •7.2 Жиындар
- •7.3 Жазбалар
- •Модуль 2 Алгоритмдік тілдерде программалаудың арнайы мәселелері
- •5 Тақырып Программадағы басқару құрылымдар
- •8.1 Алгоритмдік тілдің операторлары.
- •8.3 Басқару операторлары. Құрама және бос операторлар
- •8.4 Деректерді енгізу-шығаруды ұйымдастыру
- •8.5 Программаның құрылымы. Алгоритмнің схемасынан программаға өту
- •9 Лекция
- •9.1 Сызықты құрылымды алгоритмдерді программалау
- •9.2 Тармақталған құрылымды алгоритмдерді программалау
- •9.3 Таңдау операторы (case)
- •10 Лекция
- •10.1 Циклдік құрылымды алгоритмдерді программалау. Кейінгі шартты цикл операторы (repeat)
- •10.2 Алдынғы шартты цикл операторлары (while)
- •10.3 Параметрлі цикл операторлары (for)
- •10.4 Ішкі циклдерді құрастыру (массивтерді өндеу, массив компоненттерін реттеу есептерінің мысалдары негізінде)
- •11 Лекция
- •11.1 Жолдық деректер
- •Var s: string;
- •Var s1: string[40];
- •11.2 Символдық және жазбалар түріндегі деректерді өндеу есептерін программалау
- •12 Лекция
- •12.1 Пайдаланушының ішкі программалары (процедуралар) классификациясы. Ішкі программаларды рәсімдеу тәсілдері және оларды программа құрамында пайдалану.
- •13 Лекция
- •13.1 Сыртқы сақтауыш құрылғыларын (файлдық шамаларды) және динамикалық жадыны пайдалану арқылы программалау
- •14 Лекция
- •14.1 Тілдің графикалық мүмкіндіктерін пайдалану
- •Initgraph(var gd:integer, var gm:integer, pt:string);
- •15 Лекция
- •15.1 Объектке-бағдарлы программалау (обп) негіздері
- •15.2 Объекттер және олардың негізгі қағидалары
- •15.3 Объекттерді құру және оларды пайдалану
- •15.4 Өткен материалға шолу
- •15.5 Алған білімдердің студенттің алдағы оқу барысында және болашақ инженерлік тіршілігіндегі тәжірибелік мағынасы. Программалау тілдері мен технологиялардың даму перспективалары.
- •Өрнектер – тұрақтылар. Паскаль өрнектер-тұрақтыларды пайдалануға мүмкіндік береді. Ол өрнекті программаны орындау қажеттіліксіз компилятор орындайды. Өрнектер-тұрақтылардың мысалдары:
- •Түсініктемелер (комментарий)
- •6 Лекция
- •6.1 Блоктар, локальділік және амал жасау облысы
- •6.5 Типтердің үйлесімділігі
- •7.1 Ординалды типтер
- •7.2 Құрама құрылымдар
- •10.4 Жалғау операторы (with)
Өрнектер – тұрақтылар. Паскаль өрнектер-тұрақтыларды пайдалануға мүмкіндік береді. Ол өрнекті программаны орындау қажеттіліксіз компилятор орындайды. Өрнектер-тұрақтылардың мысалдары:
100 |
'A' |
256 - 1 |
(2.5 + 1) / (2.5 - 1) |
'Turbo' + '' + 'Pascal' |
Chr(32) |
Ord('Z') - Ord('A') + 1 |
Тұрақтыларды сипаттаудағы өрнектер-тұрақтылардың мысалдары:
const
Min = 0;
Max = 100;
Center = (Max - Min) div 2;
Beta = Chr(255);
NumChars = Ord('Z') - Ord('A') + 1;
Message = 'Out of memory';
ErrStr = 'Error:' + Message + '.';
ErrPos = 80 - Length(Error) div 2;
ErrAttr = Blink + Red * 16 + White;
Ln10 = 2.302585092994095684;
Ln10R = 1 / Ln10;
Numeric = ['0'..'9'];
Alpha = ['A'..'Z','a'..'z'];
AlphaNum = Alpha + Numeric;
Өрнек-тұрақтының ең қарапайым жағдайы жай тұрақты болып табылады, мысалы, 100 немесе 'A'. Паскальда өрнек-тұрақтыларды пайдалануға рұқсат етілген. Компилятор өрнек-тұрақтыны компиляциялау барысында толығымен есептеу мүмкіндікке ие болуы тиіс болғандықтан өрнек-тұрақтылар ретінде келесі құрылымдарды пайдалануға болмайды:
айнымалылар мен типтелген тұрақтыларға сілтемелер;
функцияларды шақыру (ары қарай белгіленгендерден басқалары);
адресті @ алу операторы.
Өрнек-тұрақтылар үшін осы шектеулерден басқа кәдімгі өрнектер үшін синтаксикалық ережелер сақталады. Өрнек-тұрақтылар келесі стандартты функцияларды пайдалануға болады: Abs, Chr, Hi, Length, Lo, Odd, Ord, Pred, Ptr, Round, SizeOf, Succ, Swap, Trunc.
Бірдей бір идентификаторды көрсететін бірнеше орын бар кезде қажетті идентификаторды беру үшін сол идентификаторды модуль идентификаторы арқылы дәлдіктеу керек. Мысалы, UnitName идентификаторы арқылы Ident идентификаторын дәлдіктеу үшін UnitNamt.Ident деп жазу керек. Мұндай комбинирленген идентификатор құрама идентификатор деп аталады.
Түсініктемелер (комментарий)
Келесі конструкциялар программаға түсініктемелер болып табылады (оларды компилятор ескермейді):
оң жақты фигуралық жақшаны қамтымаған кез келген мәтін
жұлдызшаны/оң жақты жай жақшаны қамтымаған кез келген мәтін
Ашатын жақша немесе (* - дан кейін доллар ($) белгісін қамтыған түсініктеме компилятордың директивасы болып табылады. $ символынан кейін компилятор бұйрығының мнемоникасы ілеседі. Түсініктемелерді бірнеше жолдарда да орналастыруға болады, мысалы:
{Бұл бірнеше жолдарда
орналасқан, ұзын
түсініктеменің мысалы.}
6 Лекция
6.1 Блоктар, локальділік және амал жасау облысы
Блоктар сипаттаулар мен операторлардан тұрады. Жалпы түрде кез келген блок программа ие болатын форматқа ие, бырақ тақырыбы жоқ. Әр блок процедура немесе функцияның сипаттау бөлігі немесе программа немесе модульдің бөлігі болып табылады. Әрдайым идентификатор немесе таңба программада кездескен кезде олар осы сипаттаудың амал жасау облысында орналасуы тиіс. Идентификатор немесе таңбаның амал жасау облысы оларды сипаттау бөлімінен бастап ағымдағы блок құрамына кіретін барлық блоктарды қоса ағымдағы блоктың соңына дейін таралады; (кірістірілген (ішіне салынған) блоктағы қайта анықтаудан басқа). Ext ішіне басқа Int блогы кірістірілген блок болсын. Егер Ext және Int атаулары бірдей идентификаторларға ие болатын болса, мысалы, j, онда Int өзінің ішінде сипатталған j идентификаторға қол жеткізе алады, және ұқсама түрде Ext сипатталуын қамтыған j идентификаторға қол жеткізе алады. Идентификаторлар мен таңбаларды сипатталғанша пайдалануға болмайды.
uses сөйлемін қамтыған программалар мен модульдер uses-тің сол сөйлемдерінде көрсетілген модульдердің интерфейстік секцияларында сипатталған идентификаторларға қол жеткізе алады. uses сөйлеміндегі әр модуль басқа модульдер мен толық программаны қамтитын амал жасаудың өз облысын анықтайды.
Құрамына кірістірілген тұрақтылар, типтер, айнымалылар, процедуралар мен функциялардың идентификаторлары барлық пайдаланылатын модульдер мен бүкіл программаны қамтитын блокта сипатталғандай болып амал жасайды. Нақтылықта бұл стандартты объекттер System модулінде сипатталған. Ол модульді кез келген программа немесе модуль uses сөйлемінде көрсетілген кез келген модульден бұрын пайдаланады. Бұл келесіні білдіреді: кез келген программа немесе модуль стандартты идентификаторларды қайта анықтауы мүмкін, ал оларға сілтеме жасау құрама идентификатор арқылы жүзеге асырылуы мүмкін, мысалы, System.Integer немесе System.Writeln.
Нұсқағыштары бар операциялар. Типтелген нұсқағыштарға ^ аталуын алып тастау операциясын қолдануға болады: егер p T типке нұсқағыш болып табылса, онда p^ - оған р нұсқағыш сілтеп тұрған Т типтегі элемент.
Қатынас <, >, <=, >=, =, <> операциялары мен қатар типтелген нұсқағыштарға арифметикалық + және – операцияларын қолдануға болады.
+ операциясы типтелген нұсқағышқа және бүтін санға қолданылады: егер p ^T типке ие болып, T типтегі элементтерден тұратын бірөлшемді массивтін a[k] элементіне сілтеп тұрған болса, і – бүтін, онда p+i a[k+i] элементтің адресін қайтарады. Операция –типтері бірдей екі типтелген нұсқағыштарға қолданылады: егер p1 және p2 T типтегі элементтерден тұратын бірөлшемді массивтін элементтеріне сілтеп тұрса, онда p2-p1 осы нұсқағыштардың арасындағы элементтердің мөлшер санын қайтарады (егер p2-дегі адрес p1-дегі адрестен кіші болса таңбасы -). Мысалы:
var
a: array [1..10] of integer;
p: ^integer;
begin
p:=@a[1];
for i:=1 to 10 do
begin
p^:=i;
p:=p+1;
end;
...
Жиындарға қолданылатын операциялар. Жиындарға + (біріктіру), - (алу) және * (қиылысу) операциялары қолданылады:
var
s1,s2,s: set of byte;
begin
s1:=[1..4];
s2:=[2..5];
s:=s1+s2; // s=[1..5]
s:=s1-s2; // s=[1]
s:=s1*s2; // s=[2..4]
Жиындарға сонымен қатар қатынас = (тендік), <> (тенсіздік), <= (кірістірілген) және >= (қамтиды) операцияларын қолдануға болады:
var
s1,s2,s: set of byte;
b: boolean;
begin
s1:=[1..4];
s2:=[2..5];
s:=[1,2];
b:=s1=s2; // b=False
b:=s2<>s; // b=True
b:=s<=s2; // b=False
b:=s1>=s; // b=True
in операциясы элемент жиынның құрамына енетіндігін анықтайды:
1 in [2..5] // False
3 in [2..5] // True
Нұсқағыш тип (Pointer, нұсқағыш тип) базалық тип деп аталатын, белгілі бір типтегі динамикалық айнымалыларға сілтейтін мәндер жиының анықтайды. Нұсқағыш типті айнымалы жадыдағы динамикалық айнымалының адресін қамтиды. Егер базалық тип әле сипатталмаған идентификатор болып табылса, онда ол нұсқағыш типі сипатталған типтерді сипаттау бөлімінде сипатталуы тиіс. Нұсқағыш-айнымалыға New процедурасы, @ операция немесе Ptr функция арқылы мәнді меншіктеуге болады. New процедурасы динамикалық айнымалылар үшін динамикалық түрде таратылатын облысынан жадының жаңа облысын бөліп береді де осы облыстың адресін нұсқағыш айнымалыда сақтайды. @ операция нұсқағыштің айнымалысын идентификаторларға ие болатын айнымалыларды қоса, бар болатын айнымалыны қамтитын жады облысына бағыттайды. Ptr функциясы нұсқағыштің айнымалысын жадыдағы белгілі бір адреске бағыттайды. Резервтелген nil сөзі нұсқағыштің мәні ешнәрсеге сілтемейтін тұрақтыны белгілейді.