- •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)
Initgraph(var gd:integer, var gm:integer, pt:string);
Бүтінсанды gd және gm айнымалылар графикалық драйвердің типін және оның жұмыс жасау режимін береді, жолдық айнымалы pt - *.bgi файлға жол көрсетеді. Мысалы, шешу қабілеті 640480 пиксел және 16 түсті сүйемелдейтін Паскаль үшін негізгі VGA видеорежимін таңдаған кезде келесі кодты пайдалануға болады:
uses graph;
var gd,gm,error: integer;
begin
gd:=VGA; {адаптер VGA}
gm:=VGAHi; {режим 640*480 пикс.*16 түс}
initgraph(gd,gm,'');
error:=graphresult;
if error <> grOk then begin
write ('Графика қатесі: ',
grapherrormsg(error));
readln; halt;
end;
line (0,0,getmaxx,getmaxy);
readln; closegraph;
end.
egavga.bgi файлға жол бос болып көрсетілгендіктен, ол ағымдағы бумада орналасқан деп жорамалдаймыз. Графикалық режимге өткеннен кейін line процедурасы экранның сол жақтағы жоғарғы бұрышынан бастап оң жақтағы төменгі бұрышына дейін сызықты салады, одан кейін Enter басылғанда, графикалық режим жабылады да программадан шығамыз.
Максималды мүмкін болатын режимді автоматты түрде таңдау үшін gd айнымалысына detect мәнін меншіктеу керек, бұл кезде егер Турбо Паскаль орналасқан ағымдағы каталогта *.bgi файлы бар болса, онда gm және pt айнымалылары анықталмайды. мысалы:
uses graph; var gd,gm: integer;
begin
gd:=detect; initgraph(gd,gm,''); ...
Келесі мысалда экранда "сызықты" объектпен (терезелер мен қабаттар саны ауыспалы болатын үй) қатар ол үшін декарттық координаттардан полярлы координаттарға қайта есептеу қажет болатын "радиалды" (сәулелі күн) объектіні суреттейміз. Декарттық координаттардан полярлы координаттарға аудару принципін түсіндіретін схема 14.1 суретте келтірілген.
Сурет 14.1 - Декарттық координаттардан полярлы координаттарға қайта есептеу
program SunHouse;
uses graph,crt;
var Driver, Mode: integer;
i,j,u,N,K,x2,y2:integer;
rad:real; sunx,suny:integer;
begin
{Енгізу дұрыстығын тексермейміз}
writeln ('Неше қабат?'); read (N);
writeln ('Әр қабатта қанша терезе?');
read (K);
Driver := VGA; Mode:=VGAHi;
initgraph(Driver, Mode,'');
{Домик}
setcolor (15);
rectangle (20, getmaxy-20-70*n,
20+k*50+(k+1)*20, getmaxy-20);
{Шатыр}
moveto (20,getmaxy-20-70*n);
lineto(10,getmaxy-20-70*n);
lineto (20,getmaxy-40-70*n);
lineto (20+k*50+(k+1)*20,getmaxy-40-70*n);
lineto (30+k*50+(k+1)*20,getmaxy-20-70*n);
lineto (20+k*50+(k+1)*20,getmaxy-20-70*n);
{Қабаттар арасындағы сызықтар}
for i:=1 To N Do
line (20, getmaxy-20-70*i,
20+k*50+(k+1)*20, getmaxy-20-70*i);
setfillstyle (solidfill, YELLOW);
{Әр қабаттағы терезелер}
for i:=1 To N Do {Қабаттар бойынша цикл}
for j:=1 To K Do begin {Терезелер бойынша цикл}
bar(20+(j-1)*70+20,getmaxy-20-(i-1)*70-
60,20+(j-1)*70+70, getmaxy-20-(i-1)*70-10);
end;
sunx:=getmaxx-50; suny:=50;
{Күннің центрі – экран бетіндегі координаталар}
FillEllipse (sunx, suny, 30, 30);
{Күннің пішінін суреттейміз}
setcolor (YELLOW);
{Сәулелерді суреттейміз}
u:=0;
while u<=360 Do begin
{ u бұрышын 0 ден 360 градусқа дейін ауыстырамыз}
rad:=u*pi/180;
{ sin,cos функциялары үшін радиандарға аудару}
x2:=round(sunx+50*cos(rad));
y2:=round(suny+50*sin(rad));
{ полярлы координаттардан декартты координаттарға аудару}
line (sunx,suny,x2,y2);
u:=u+12; {бұрыш бойынша қадам = 12 градус}
end;
repeat until keypressed;
closegraph;
end.