
- •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)
9 Лекция
9.1 Сызықты құрылымды алгоритмдерді программалау
Сызықты есептеу үрдісі (СЕҮ) бірінен кейін бірі ретімен орындалатын операторлардың жиынтығы болып табылады. СЕҮ программаның негізін меншіктеу операторы (лекция 8.2), деректерді енгізу және шығару (лекция 9.1) операторлары құрайды.
Сызықты құрылымды алгоритмдер есептерін шешу мысалдары қосымшада келтірілген.
Құрама операторлар өзінің элементтері болып табылатын операторлардың орындалу ретін береді. Олар жазылған реті бойынша орындалуы тиіс. Құрама операторлар бір оператор сияқты өнделеді, Паскальдың синтаксисі тек бір операторды ғана орындауға рұқсат ететін жағдайларда оның маңызы зор. Операторлар begin және end шектеушілер арасына алынады да бір-бірінен нүктелі үтір арқылы ажыратылады. Құрама оператор мысалы:
begin
Z := X;
X := Y;Y := Z;
end;
Құрама оператор бірнеше операторларды бір операторға біріктіру үшін арналған. Оның түрі:
begin
операторы
end
Операторларды қоршаған begin және end қызмметші сөздерін операторлық жақшалар деп атайды. Мысал:
s:=0; p:=1;
for i:=1 to 10 do
begin
p:=p*i;
s:=s+p
end
end-тің алдында да ";" қойылуы мүмкін. Бұл жағдайда end-тің алдындағы соңғы оператор ешқандай амалдарды орындамайтын бос оператор болып табылады деп санайды.
9.2 Тармақталған құрылымды алгоритмдерді программалау
Шартты операторлар орындау үшін құрама операторлардың біреуін таңдап алуға мүмкіндік береді (немесе бір де біреуін таңдамауға). Өрнекте стандарты бульдік типке ие болатын нәтиже пайда болуы тиіс. Егер өрнектің нәтижесі ақихат (Тrue) мәні болып табылса, онда then кілттік сөзінен кейін ілесетін оператор орындалады. Егер өрнектің нәтижесі жалған (False) мәні болып табылса және else кілттік сөзі бар болса, онда else-ден кейінгі оператор орындалады. Егер else кілттік сөзі болмаса, онда ешқандай оператор орындалмайды. Else-нің алдындағы операторда нүктелі үтір қойылмайды.
Конструкцияда орын алатын синтаксистикалық бірмәнділіксіз:
if e1 then e2 else e3
бұл конструкцияны келесідей интерпретациялау арқылы шешіледі:
if e1 then
begin
if e2 then s1 else s2
end
Жалпы айтқанда else әлі басқа else-мен байланыспаған ең жақын if – пен байланысады.
if оператор мысалдары:
if X < 1.5 then Z := X+Y else Z := 1.5;
if P1 <> nil then P1 := P1^.father;
if B = 0.0 then Writeln('Нөльге болуге болмайды.')
else begin Ratio = A / B; Writeln('Қатынас тең ',Ratio) end;
Жоғарыда айтылғанды қорытындылайық.
Шартты оператордың толық және қысқа формалары бар. Шартты оператордың толық формасының түрі:
if шарт then оператор1
else оператор2
Шарт ретінде кейбір логикалық өрнек көрсетіледі. Егер шарт ақиқат болып табылса, онда оператор1 орындалады, кері жағдайда оператор2 орындалады.
Шартты оператордың қысқа формасының түрі: if шарт then оператор
Егер шарт ақиқат болып табылса, онда оператор орындалады кері жағдайда программаның келесі операторына өту жүзеге асырылады. Келесі түрдегі конструкцияның жағдайында:
if шарт1 then
if шарт2 then оператор1
else оператор2
else ол үшін else бұтағы әлі көрсетілмеген алдыңғы ең жақын if операторға қатысты. Егер алдыңғы мысалда else бірінші if операторға қатысты болуы қажет болса, онда құрама операторды пайдалану керек:
if шарт1 then
begin
if шарт2 then оператор1
end
else оператор2
Қысқа шартты оператордың графикалық интерпретациясы. Блок-схемаларда қысқа шартты операторға егер-онда типті құрылым сәйкес.
Сурет 9.1 - Қысқа шартты оператордың блок-схемасы
9.1. y айнымалысына түрлі үш санның ішінен минималды мәнін меншіктеу керек, яғни y = min (a, b, c). Блок-схемасы 9.2 суретте. 9.1 мысал программасы:
Program P9_1;
Var
a, b, c, y: real;
Begin
writeln (‘a, b, c сандарын енгізіңіз’);
read (a, b, c);
y := a;
if b<y then y := b;
if c<y then y := c;
writeln (‘y =’, y:6:2);
End.
Мысал 9.2. y айнымалының мәнін екі бұтақтың біреуі бойынша есептеу керек. Блок-схемасы 9.4 суретте. 9.2 мысалға программа:
Program P9_2;
Var
x, y: real;
Begin
writeln (‘x санын енгізіңіз’);
read (x);
if x>0 then y := ln(x) else y := exp(x);
writeln (‘y =’ , y:6:2);
End.
Сурет 9.2 –9.1 мысалға блок-схема
Толық шартты оператордың графикалық интерпретациясы. Блок-схемаларда толық шартты операторға егер-онда-әйтпесе типті құрылымға сәйкес:
Сурет 9.3 – Толық шартты оператордың блок-схемасы
Сурет 9.4 - 9.2 мысалға блок-схема
Мысал 9.3. Толық квадратты ax2+bx+c=0 теңдеудің түбірлерін есептеу керек. Программада дискриминанттың таңбасын тексеруді көздеу керек. Егер дискриминант теріс болып табылса, онда «Түбірлері жорамал» деген хабарлы шығару керек. 9.3 мысалға программа:
Program P9_3;
Var
a, b, c, d, x1, x2: real;
Begin
writeln(‘Теңдеудің коэффициенттерін енгізіңіз’);
read (a, b, c);
d := bb – 4ac;
if d<0 then
writeln (‘Түбірлері жорамал’)
else
begin
x1 := (-b + sqrt(d)) / (2a);
x2 := (-b - sqrt(d)) / (2a);
writeln(‘x1=’, x1:5:2, ‘x2=’, x2:5:2);
end;
End.
Мысал 9.4. Шартты операторлардың бірінің ішіне бірі салынған құрылымдарды пайдалану. Егер THEN және ELSE қызметші сөздерден кейін және шартты операторлар пайдаланылатын болса онда құрылым бірінің ішіне бірі салынған деп аталады. Бірінің ішіне бірі салыну саны еркін. Бұл кезде келесі ереже әділ: ELSE қызметші сөзі әрдайым жоғарыдағы ең жақын THEN сөзіне қатысты. Бірінің ішіне бірі салынған құрылымдарды оқуды ыңғайлату үшін программалау барысында мүмкін болғанша THEN сөзінен кейін Бірінің ішіне бірі салынған шартты операторды жазудан бас тарту ұсынылады. Үш бұтақтың біреуі бойынша у-тің мәнін есептеу есебін қарастырайық. Блок-схема 9.5 суретте. 9.4 мысалға программа:
Program P9_4;
Var
x, y: real;
Begin
writeln(‘x санын енгізіңіз’);
read(x);
if x>=1 then
y := sqrt(x)/2
else
if x>0 then
y := exp(1/3*ln(x))/3
else
y := exp(1/4*ln(abs(x)))/4;
writeln(‘y =’, y:6:2);
End.
Сурет 9.5 - 9.4 мысалға блок-схема