- •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)
10.4 Ішкі циклдерді құрастыру (массивтерді өндеу, массив компоненттерін реттеу есептерінің мысалдары негізінде)
Бір цикл тұлғасының ішінде басқа циклды ұйымдастыру мүмкіндігі бар. Мүндай циклды ішіне салынған (кірістірілген) цикл деп атаймыз. Кірістірілген циклды оны қамтыған циклге қатысты ішкі цикл деп және керісінше тұлғасында кірістірілген циклды қамтитын циклды ішкі циклге қатысты сыртқы цикл деп атаймыз. Кірістірілген циклдың ішіне кірістірудің келесі деңгейін құра отырып және бір циклды салуға болады және с.с. Кірістіру деңгейлерінің саны әдетте шектелмейді.
Ішкі цикл тұлғасының қайталануының толық саны ішкі және барлық сыртқы циклдардың итерациялар санының көбейтіндісінен аспайды. Мысалы, әрқайсысы 10 итерациядан тұратын бірінің ішіне бірі салынған үш циклді алсақ сыртқы цикл 10 рет, екінші деңгейдегі цикл 100 рет және ең ішкі цикл 1000 рет орындалады.
Бірінің ішіне бірі салынған циклдарға байланысты проблемалардың бірі – олардың ішінен мерзімнен бұрын шығуды ұйымдастыру болып табылады. Паскальда циклды мерзімнен бұрын аяқтау exit операторы бар, бырақ ол әдетте өзі шақырылған деңгейдегі циклдан шығуды қамтамасыз етеді.
Бірінің ішіне бірі салынған циклдардан шығу проблемасының бірнеше шешімдері бар. Ең қарапайымы – кірістірілген циклдан кейін тікелей ілескен программаның нүктесіне шығу үшін шартсыз өту goto операторын қолдану.
Альтернатива — қажет болған жағдайларда өндеуді дер кезінде аяқтауды талап ететін арнайы жалаушаларды қойып циклдарды аяқтаудың штатты құралдарын пайдалану. Кемшілік — кодтың күрделенуі, өнімділіктің төмендеуі.
Кірістірілген циклды процедурада орналастыру.
Мысал 10.5. Нақты сандардың матрицасында әр жолдағы бірінші элементті сол жолдағы минималды элементпен орындарын ауыстыру керек. Алмастырудан кейін пайда болған Х матрицаны экранға шығару.
Program P10_5;
Var X: array [1..3,1..6] of real;
i, j, jmin: integer; min: real;
Begin
writeln('Х матрицаны енгізіңіз');
for i:= 1 to 3 do
for j := 1 to 6 do read(x[i,j]);
for i:=1 to 3 do
begin
min:=+1E6;
for j:=1 to 6 do
if x[i,j]<min then
begin
min:=x[i,j];
jmin:=j;
end;
x[i,jmin]:=x[i,1];
x[i,1]:=min;
end;
for i:=1 to 3 do
begin
for j:=1 to 6 do write (x[i,j]:6:1);
writeln;
end; End.
Мысал 10.6. Нақты сандардың матрицасы берілген. P1 және P2 – сәйкесінше матрицаның оңтаңбалы және терістаңбалы элементтерінің көбейтіндісі болатын Z мәнін есептеу керек.
Program P10_6;
Var A: array [1..4, 1..6] of real;
i, j: integer; P1, P2, Z: real;
Begin
writeln(‘А матрицаны енгізіңіз');
for i := 1 to 4 do
for j := 1 to 6 do read(a[i,j]);
P1 := 1;
P2 := 1;
for i := 1 to 4 do
for j :=1 to 6 do
begin
if a[i,j]>0 then P1 := P1 a[i,j];
if a[i,j]<0 then P2 := P2 a[i,j];
end;
Z := P1*abs(P2);
writeln(‘Z=’, Z:10:2); end.
11 Лекция
11.1 Жолдық деректер
Символдардан тұратын жолдар туралы біз 6-ші лекцияда әнгімелескенбіз. Pascal ABC-те жолдар string типіне ие және саны 255-тен аспайтын символдардан тұрады. Сипаттау барысында:
Var s: string;
s айнымалы үшін 256 байт орын беріледі, бұл кезде нөлінші байтта жолдың ұзындығы туралы мәлімет сақталады.
Жадыны үнемдеу үшін сипаттаудың келесі түрі көзделген:
Var s1: string[40];
Бұл жағдайда жол үшін 41 байт орын беріледі (нөлінші байт – жолдың ұзындығына). s1 айнымалыға 40 символдан асатын жолды меншіктеген жағдайда артық символдар алынып тасталады да s1 жолдың ұзындығы 40 байт болып есептеледі.
s1+s1 түрдегі конкатенация операциясы орындалғанда нәтиже string типті жол болып саналады, яғни 256 байт орын алады. Бырақ, егер конкатенация барысында нәтиже 255 символдан артық орын алатын болса, онда программа қателікпен аяқталады.
Жолдағы символдарға индексті пайдалану арқылы сілтеуге болады: s[i] – жолдағы i-ші символды белгілейді. Нөлінші s[0] символға сілтеу қате болып саналады. Жолдың ұзындығын өзгерту үшін SetLength процедурасын пайдалану керек. Егер индекс i жолға берілген жадының шегінен шығып кететін болса, онда қате туралы хабарлама беріледі. Бырақ, егер индекс i тек жол ұзындығының шектерінен ғана шығып кетсе, онда қате туралы хабарлама берілмейді.
Жолдармен жұмыс жасауға арналған стандартты процедуралар мен функциялар кестеде келтірілген
Кесте 11.1
Жолдармен жұмыс жасауға арналған стандартты процедуралар мен функциялар
Аталуы және параметрлер |
Процедура немесе функция |
Параметрлердің типтері |
Қайтарылатын мәннің типі |
Амал |
Length(s) |
функция |
s - string |
integer |
s жолдың ұзындығын қайтарады |
Copy(s,index,count) |
функция |
s - string, index, count - integer |
string |
indexпозициясынан бастап s жолдың ұзынды-ғы count болатын ішкі жолды қайтарады |
Delete(s,index,count) |
процедура |
s - string, index, count - integer |
|
index позициясынан бастап s жолдың count символдарын жояды |
Insert(subs,s,index) |
процедура |
s, subs - string, index - integer |
|
index позициясынан бастап s жолға subs ішкі жолды кірістіреді |
Pos(subs,s) |
функция |
s, subs - string |
integer |
s жолда бірінші рет кездесетін subs ішкі жолдың позициясын (немесе егер ішкі жол табылмаса 0) қайтарады. |
SetLength(s,n) |
процедура |
s - string, n - integer |
|
sжолдың ұзындығын n-ге тең етіп орнатады |
Str(x,s) Str(x:n,s) Str(x:n:m,s) |
процедура |
s - string, x - integer, n, m - integer |
|
x-ті жолдық бейнелеуге түрлендіреді (2-i және 3-i жағдайда n және m арқылы орнатылатын форматқа сәйкес) және нәтижені s жолға жазады |
Val(s,v,code) |
процедура |
s - string, v - integer, code - integer |
|
s жолды сандық бейнелеуге түрлендіреді де нәтижені v айнымалыға жазады. Егер түрлендіру мүмкін болса онда code айнымалыға 0, егер мүмкін болмаса онда code-ге нөльдік емес мән қайтарылады. |
Concat(s1,...,sn) |
функция |
s1,..., sn - string |
string |
s1,...,sn жолдардың қосылу нәтижесі болып табылатын жолды қайтарады.Нәтиже s1+s2+...+snөрнектін нәтижесімен бірдей |
IntToStr(i) |
функция |
i - integer |
string |
бүтін санды жолға түрлендіреді |
StrToInt(s) |
функция |
s - string |
integer |
жолды бүтін санға түрлендіреді.Егер түрлен-діру мүмкін болмаса, онда қате орын алады |
FloatToStr(r) |
функция |
r - real |
string |
нақты санды жолға түрлендіреді |
StrToFloat(s) |
функция |
s - string |
real |
жолды нақты санға түрлендіреді.Егер түрлен-діру мүмкін болмаса, онда қате орын алады |
UpCase(c) |
функция |
c - char |
char |
жоғары регистрге түрлендірілген с символды қайтарады |
LowCase(c) |
функция |
c - char |
char |
төменгі регистрге түрлендірілген с символды қайтарады |
UpperCase(s) |
функция |
s - string |
string |
жоғары регистрге түрлендірілген s жолды қайтарады |
LowerCase(s) |
функция |
s - string |
string |
төменгі регистрге түрлендірілген s жолды қайтарады |
Trim(s) |
функция |
s - string |
string |
s жолдың бастапқы және соңғы бос орындары жойылған көшірмесін қайтарады |
TrimLeft(s) |
функция |
s - string |
string |
s жолдың бастапқы бос орындары жойылған көшірмесін қайтарады |
TrimRight(s) |
функция |
s - string |
string |
s жолдың соңғы бос орындары жойылған көшірмесін қайтарады |