8 Ферзі



Кiрiспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...2
1. Есептiң математикалық қойылымы ... ... ... ... ... ... ... ... ... ... ... ... 3
2.Қолданылған әдістер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...3
2.1. Iздеу алгоритмдерi ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .3
2.1.1 Тосқауылы бар iздеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...4
2.2.Сорттау алгоритмдерi ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...5
2.2.1. Таңдау арқылы сорттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..7
2.3 Қосалқы программа ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 8
2.4 Рекусия ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 12
2.5 Графика ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 13
3 Есептің алгоритмі ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...14
3.1 Программаның логикалық сипатталуы ... ... ... ... ... ... ... ... ... ... ... ... 14
3.2 Блок.схема ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...17
4 Программаның баяндалуы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
4.1 Жалпы мағлұматтар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
4.2 Техникалық жабдықтар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
4.3 Программаны шақыру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .19
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .24
Пайдаланылған әдебиеттер тiзiмi ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .25
Қосымша (А)
Программа листингі
Ойын деген – ойын сауық, демалыс, спорттық жарысқа негiзделген жұмыс түрi. Ойын адамның көңiлiн өсiрiп, ойын сергiтiп қана қоймай, сонымен қатар оның таным-түсiнiгiн арттырады.
Осындай ойындардың бірі – шахмат ойыны!!!
Шахмат ойнын кім білмейді, бәрі біледі, кішкентайынан үлкеніне дейін. Бірақ айтып өткенім жөн. Бұл өте қызықты ойын өзінің бастауын Үндістаннан алады. Бұл ойынды сол жердегі ойшылдар махараджаларға арнап жасаған да оларға бұл ойын өте қатты ұнады. Содан бастап бұл ойынды тек қана махараджалар ғана ойнай алды, егер қарапайым адам оны ойнаса ол адам өлім жазасына кесілді. Себебі махараджалар шахмат ойнының арқасында үлкен қолбасшы болуға және соғыста шебер соғысуды үйренуге болады деп есептеді. Сөйтір егер біреулер бұл ойынды үйренсе олар менен асып түседі деп қауіптенде. Шынында да шахмат ойыны өте қызықты және ойлау қабілетін арттыратын ойындардың арасындағы ең күштімі және де көлемді. Шахматта шексіз санды бір – біріне ұқсамаған ойындар ойналу мүмкін. Бұл ойынның түбіне дейін жету мүмкін емес, тек қана жақсы ойыншы шығу үшін бұл ойынды көр ойнау керек оны үйрену керек, омен көп айналасу керек, қысқасы миді істету керек.
Қазіргі кезеңде шахмат ойыны биік шыңға жетті. Оны миллиондаған санды адамдар күнделікті ойнайды. Бұл ойын соншалықты зор – шахмат ойыны олимпиадалық ойындырдың біріне айналды. Шахматтан әлем чемпионаттары да, және де көптеген басқа, әртүрлі жарыстар өткізіледі. Бұл ойынды жақсы меңгерген жас өспірімдер әдетте сабақтан үздік болады. Және бұл ойын адамның болашағына көп – көп көмектеседі.
Жаңа технологиялардың дамуына байланысты компьютерлік шахматтар пайда болды және де енді шахматты Интернет жүйесі арқылы ойнауға болады.
Бұл шахматтың адам баласына қаншалықты маңызды екенін көрсетеді.
Шахмат тақтасы 8 × 8 клеткалы болып келеді. Оның екі жағында ақ және қара түсті екі қарсы жақ болады. Ойынның мақсаты қарсыласын жеңу немесе мат қою.
Негзінен алты түрлі фигуралар бар, олар: пешка, ат, піл, тура, ферзь және король.
1. Шелест В. Программирование. – Санкт-Петербург, BHV, 2001.
2. Роджерс Д. Алгоритмические основы машинной графики. – Москва, “Мир”, 1989.
3. Вирт Н. Алгоритмы + структуры данных = программы. – Москва, “Мир”, 1985.
4. Вирт Н. Алгоритмы и структуры данных. – Москва, “Мир”, 1989.
5. К.Н.Нуркенов «Паскаль тілінде прогрпммалау негіздері»Алматы білім 1993
6. Бөрібаев «Информатика және компьютер» Алматы 1995
7. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. – Москва, “Нолидж”, 2001.
8. Н.Ы. Омарова, К.У. Тұрмағамбетова, К.Н. Нүриденова. Паскаль тiлiнде программалау негiздерi. Алматы, “Бiлiм”, 1996.
9. Шаметов Ералы Бақтайұлы. Паскаль тiлiн үйренейiк. Шымкент, 1993

Мазмұны

Кiрiспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ..2
1. Есептiң математикалық қойылымы ... ... ... ... ... ... ... ... ... ... ... ... 3
2.Қолданылған
әдістер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ..3
2.1. Iздеу алгоритмдерi ... ... ... ... ... ... ... ... ... ... ... ... . ... ... ... ... ... 3
2.1.1 Тосқауылы бар
iздеу ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... 4
2.2.Сорттау алгоритмдерi ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5
2.2.1. Таңдау арқылы сорттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 7
2.3 Қосалқы
программа ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... .8
2.4
Рекусия ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ...12
2.5
Графика ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ...13
3 Есептің
алгоритмі ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... 14
3.1 Программаның логикалық
сипатталуы ... ... ... ... ... ... . ... ... ... ... ... ...14
3.2 Блок-
схема ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... 17
4 Программаның
баяндалуы ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... .
4.1 Жалпы
мағлұматтар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... .
4.2 Техникалық
жабдықтар ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ..
4.3 Программаны шақыру ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ..19

Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ..2 4
Пайдаланылған әдебиеттер
тiзiмi ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... .25
Қосымша (А)
Программа листингі

Кiрiспе

Ойын деген – ойын сауық, демалыс, спорттық жарысқа негiзделген жұмыс
түрi. Ойын адамның көңiлiн өсiрiп, ойын сергiтiп қана қоймай, сонымен қатар
оның таным-түсiнiгiн арттырады.
Осындай ойындардың бірі – шахмат ойыны!!!
Шахмат ойнын кім білмейді, бәрі біледі, кішкентайынан үлкеніне дейін.
Бірақ айтып өткенім жөн. Бұл өте қызықты ойын өзінің бастауын Үндістаннан
алады. Бұл ойынды сол жердегі ойшылдар махараджаларға арнап жасаған да
оларға бұл ойын өте қатты ұнады. Содан бастап бұл ойынды тек қана
махараджалар ғана ойнай алды, егер қарапайым адам оны ойнаса ол адам өлім
жазасына кесілді. Себебі махараджалар шахмат ойнының арқасында үлкен
қолбасшы болуға және соғыста шебер соғысуды үйренуге болады деп есептеді.
Сөйтір егер біреулер бұл ойынды үйренсе олар менен асып түседі деп
қауіптенде. Шынында да шахмат ойыны өте қызықты және ойлау қабілетін
арттыратын ойындардың арасындағы ең күштімі және де көлемді. Шахматта
шексіз санды бір – біріне ұқсамаған ойындар ойналу мүмкін. Бұл ойынның
түбіне дейін жету мүмкін емес, тек қана жақсы ойыншы шығу үшін бұл ойынды
көр ойнау керек оны үйрену керек, омен көп айналасу керек, қысқасы миді
істету керек.
Қазіргі кезеңде шахмат ойыны биік шыңға жетті. Оны миллиондаған санды
адамдар күнделікті ойнайды. Бұл ойын соншалықты зор – шахмат ойыны
олимпиадалық ойындырдың біріне айналды. Шахматтан әлем чемпионаттары да,
және де көптеген басқа, әртүрлі жарыстар өткізіледі. Бұл ойынды жақсы
меңгерген жас өспірімдер әдетте сабақтан үздік болады. Және бұл ойын
адамның болашағына көп – көп көмектеседі.
Жаңа технологиялардың дамуына байланысты компьютерлік шахматтар пайда
болды және де енді шахматты Интернет жүйесі арқылы ойнауға болады.
Бұл шахматтың адам баласына қаншалықты маңызды екенін көрсетеді.
Шахмат тақтасы 8 × 8 клеткалы болып келеді. Оның екі жағында ақ және
қара түсті екі қарсы жақ болады. Ойынның мақсаты қарсыласын жеңу немесе мат
қою.
Негзінен алты түрлі фигуралар бар, олар: пешка, ат, піл, тура, ферзь
және король.

Тақтайдың көрінісі келесідей.

Бұл тақтада 8 жол және 8 баған бар.
Жолдары: 1,2,3,4,5,6,7,8.
Бағандары: a,b,c,d,e,f,g,h.
Ал енді олар қалай жүреді? Пешка 1 қадам алға, піл диогональ бойынша,
ат Г әрпі тәрізді, тура перпендикуляр немесе параллель,король жан –
жағына бір клеткаға, ал ферзь болса піл және тура сияқты жүре алады.
Сондықтан ол ең күшті фигура. Міне сол себепті біз өзіміздің курстық
жұмысымызда осы ферздерге арналған программа құрамыз.

1 Есептiң математикалық қойылымы

Бұл курстық жұмыста 8 Ферзі тапсырмасы қарастырылған. Бұл ойын
тек қана программа құру ғана емес және де графикалық режимді пайдаланып,
оны экранда шығару-бұл деген сөз графикалық режиммен де жұмыс істей білу.
8 Ферзінің тапсырмасы виртуалды шахмат тақтасында 8 ферзіні бір
ферзі жейтіндей орналастыру. Және де осы көріністі графикалық режимді
пайдаланып оны экранға шығару.

2 Қолданылған әдістер

2.1 Iздеу алгоритмдерi

Iздеу алгоритмдерi мысалы массивте белгiлi қасиеттерi бар
элементтердi табу үшiн қолданылады. Әдетте элементтiң алғашқы және соңғы
кiрулерiн iздеудегi есеп берiлгендерiмен ажыратады. Төменде келтiрiлген
барлық алгоритмдерде N бүтiн санды А массивiнде Х-қа тең элемент iздеу
керек деп есептеледi.

2.1.1 Тосқауылы бар iздеу

Тосқауылы бар iздеу әрбiр рет массив шекарасымен байланысқан циклдегi
шартты iздей бермеу идеясынан тұрады. Бұны массивке тосқауыл орнату: iздеу
шартын қанағаттандыратын кез-келген элемент орнату арқылы жүзеге асыруға
болады. Бұл жағдайда индекстiң өзгеруiне шек қойылады.
Ендi тек iздеу шарты ғана қалып, табылған элементте немесе тосқауылда
циклдан шығуға болады. Мұндай жағдайда циклдан шыққаннан кейiн бiз
тосқауылды тапқан жоқ па екендiгi тексерiледi. Тосқауылы бар iздеудi
есептеу қиындығы сызықтыға қарағанда төмен, бiрақ сондай тiзбектi өлшемiдi,
N – массив элемент саны бар.
Тосқауылды орнатудың екi тәсiлi бар: қосымша элемент немесе массивтiң
ең шеткi элементiнiң орнына.

Мысалы: Тосқауылы бар iздеу
program Poisk2a;
var A:array[1..101] of integer;
N,X,i:integer;
begin
read(N); {N=100}
for i:=1 to N do
writeln('Массивтi енгiзiңiз');
read(A[i]);
writeln('Iзделiнетiн санды енгiзiңiз');
read(X);
A[N+1]:=X; {қосымша элемент арқылы тосқауыл қою}
i:=1; {i:=0;}
while A[i]X do i:=i+1;
{repeat i:=i+1; until A[i]=X;}
if i=N then write(' A массивiне ', i,' орында', X ,' санының бiрiншi
кiруi ')
else write('тапқан жоқпыз');
end.
program Poisk2b;
var A:array[1..100] of integer;
N,X,i,y:integer;
begin
read(N); {N=100}
for i:=1 to N do read(A[i]);
read(X);
y:=A[N]; {соңғы элементтi сақтау}
A[N]:=X; {тосқауылды массивтiң соңғы орнына орнату}
i:=1; {i:=0;}
while A[i]X do i:=i+1;
{repeat i:=i+1; until A[i]=X;}
if (iN) or (y=X) then
write(' A массивiне ', i,' орында', X ,' санының бiрiншi кiруi ')
else write('тапқан жоқпыз');
A[N]:=y; {массивтiң оңғы элементiн қалпына келтiру}
end.

2.2 Сорттау алгоритмдерi

Сорттаудың ең қарапайым есебi массив элементтерiнiң өсу не кему
ретiмен орналастыру болып табылады. Басқа есеп болып, берiлген белгiлер
бойынша массив элементтерiн реттеу. Әдетте мұндай белгi ретiнде аргументi
массив элементтерi болып табылатын белгiлi функция мәнi болып табылады. Бұл
функцияны реттеушi функция деп атау қабылданған.
Сорттаудың әр түрлi тәсiлдерi бар. Әрбiр тәсiлдi N бүтiн сандардан
өспелi массивтi сорттау мысалында көрсетемiз.

2.2.1 Таңдау арқылы сорттау

Тәсiл идеясы массивтiң максималды элементiн тауып, оны соңғы элемент
(N номерлi) орнымен ауыстырылады. Содан кейiн максималды элемент N-1 орынға
дейiн iзделiп, сол N-1 орынға қойылады және т.с.с. Максимум емес, минимум
элемент iзделiп, оны бiрiншi, екiншi және т.с.с. орынға қоюға болады.
Сонымен қатар бұл әдiстiң модификацияланған түрi – бiр мезетте максимум
және минимум элементтердi iздеу қолданылады. Бұл жағдайда сыртқы циклдың
қадамдар саны N div 2.
Таңдау арқылы сорттаудың есептеу қиындығы - N*N шамасының өлшемi,
әдетте оны O(N*N) деп жазады. Бұл салыстырулар саны бiрiншi максимумды
iздегенде N-1-ге тең, содан кейiн N-2, N-3 және т.с.с. 1-ге дейiн, соымен
N*(N-1)2 болумен түсiндiрiледi.

Мысалы: А массивiнiң N бүтiн сандарының өсуi бойынша таңдау арқылы
сорттау.
program Sort_Vybor1;
var A:array[1..100] of integer;
N,i,m,k,x : integer;
begin
write('Массив элементтерiнiң саны');
read(N);
for i:=1 to n do
writeln('Массивтi енгiзiңiз');
read(A[i]);
for k:=n downto 2 do { k – max-ты iздеуге қажеттi элементтер саны }
begin
m:=1; { m - max орны}
for i:=2 to k do if A[i]A[m] then m:=i;
{ m және k номерлi элементтердi орындарымен ауыстырамыз}
x:=A[m]; A[m]:=A[k]; A[k]:=x;
end;
for i:=1 to n do write(A[i],' '); {реттелген массив}
end.

Мысалы: Жоғарыдағы есеп, бiрақ бiр мезеттегi max пен min таңдау арқылы.

program Sort_Vybor2;
var A:array[1..100] of integer;
N,i,m,k,x,p : integer;
begin
write('Массив элементтерiнiң саны');
read(N);
for i:=1 to n do
writeln('Массивтi енгiзiңiз');
read(A[i]);
for k:=1 to n div 2 do { k - max және min жұбының орны }
begin
m:=k; { m - max орны }
p:=k; { p – min орны }
{max және min k-дан n-k+1 элементтер арасында iзделедi }
for i:=k+1 to n-k+1 do
if A[i]A[m] then m:=i
else if A[i]A[p] then p:=i;
{ p және k номерлi элементтердi орындарымен ауыстырамыз }
x:=A[p]; A[p]:=A[k]; A[k]:=x;
if m=k then m:=p;
{егер max k орында тұрса, ендi ол p орында тұр }
{ m және n-k+1 номерлi элементтердi орындарымен ауыстырамыз }
x:=A[m]; A[m]:=A[n-k+1]; A[n-k+1]:=x;
end;
for i:=1 to n do write(A[i],' '); {реттелген массив}
end.

2.3 Қосалқы программалар
Практикалық есептерде программаны кұрағанда,ол үлкен программаның белгілі
бір бөлігін әр түрлі мәндер бойынша бірнеше рет қайталап пайдалануға тура
келеді. Мұндай бір типтес программа бөлігін программаның әр бөлігінде
қайталап жазбау мақсатында оны жеке қосалқы программа ретінде бөліп жазған
қолайлы. Жеке программа түрінде бөлек жазылған, қажет кезінде оған оралып,
оны пайдаланып отыруға болатын негізгі программаның арнайы бөлігін қосалқы
программа дейді. қосалқы программаға автоматты түрде енуге және одан шығуға
болады.
қосалқы программаны пайдалану төмендегідей мүмкіндіктер береді:
• Негізгі программаның көлемі кішіриеді;
• Негізгі программада пайдаланған айнымалыларды қосалқы программада
пайдалануға болады;
• қосалқы программада берілген жады ұяшықтарын ол орындалмай тұрғанда
бос ұяшық ретінде (бос айнымалы) пайдалануға болады;
• қосалқы программаны пайдалану, құрылымдық программалауға мүмкіндік
береді.

Паскаль тілінде алгоритімдік тіл тәрізді қосалқы программаның екі түрі
пайдаланады. Олар процедура(procedure) және функция(function).
Процедцраның жалпы түрі:
Procedure процедураның аты [(формальді параметірлер тізімі)];
баяндау бөлімі
Begin
операторлар бөлімі
End;
Негізгі программада процедураны шақыру түрі төмендегідей болады: процедура
аты[(нааты параметрлер тізімі)];
Формальді және нақтылы параметрлер үшін келесі талаптар орындалу қажет :
1. формальді және нақтылы параметрлер саны бірдей болу керек;
2. формальді және нақтылы параметрлердің типтері және орналасу реті бірдей
болу қажет.
Турбо паскаль тілінде формальді параметрлердің үш түрі бар:
1. Параметр-мәні
2. Параметр-айнымалы
3. Параметр-константа.
Мысал:
Program prime;
Var a,b: integer;
Procedure chan (var x,y:integer);
Var z:integer;
Begin
Z:=x; X:=y; Y:=z;
End;
Begin
Readln (a,b);
Chan(a,b); writeln (a,b);
Char (a,b); writeln (a,b);
End.
Функцияның жалпы түрі :
Function Функция аты[(формальді параметрлер тізімі)]: тип;
Баяндау бөлімі
Begin
Операторлар бөлімі
End;

Мысалы:
Program factor;
Var f:real;
M, k: integer;
Function fact(n: integer):real;
Var i: integer; p: real;
Begin
p:=1;
for i:=1 to n do
p:=p*I;
fact:=p;
end;
begin
readln (m , k );
f:=fact(m)- fact(k);
writeln (‘f=’,f);
end.

Турбо Паскаль программалау тілінде қосалқы программаның екі түрі
қолданылады:
1.Процедура
2.Функция

2.3.1 Процедура.
Процедура дегеніміз- белгілі бір әрекеттерді орындайтын,
идентификаторы берілген, программаның тәуелсіз бөлігі. Процедура
процедураның тақырыбы мен денесінен тұрады және оны құрылымына қарай жеке
дербес программа ретінде қарастыруға болады. Процедураны негізгі
программаның сипаттау бөлімінде бір рет анықтаған соң, оны программаның
кез келген жеріне идентификаторы бойынша шақыруға болады. Процедура өз
мақсатын орындағаннан кейін, негізгі программа келесі оператордан
жалғасып орындала береді. Процедуралар бірнеше нәтижелер береді. Олар да
функциялар сияқты программа текстінің барысында айнымалылардың
сипаттамасынан кейін орналасады. Процедураның тақықыбында PROCEDURE
түйінді сөзінен кейін процедураның аты, ал жақша ішінде оның
сипаттамаларымен бірге формальды параметрлер тізімі
көрсетіледі.Процедуралардың циклдерден айырмашылығы, олар программаның
әр жерінде оператор тізбегі өзгермей, тек бір ғана рет қайталанып
отырады, яғни әр пайдалану кезінде бір рет қана орындалады.
Негізгі программада процедураны пайдалану нақты параметрлері
көрсетілген процедура операторы арқылы орындалады,ондағы нақты
параметрлердің саны,типі және реттілігі формальды параметрлердің
орналасуына сәйкес келуі тиіс.
4 мысал. Берілген кез келген а және b сандарының үлкенін у,ал кішісін х
деп белгілейік. Процедура жұмысының нәтижесі х пен у сандары болсын, ал
егер осы алгоритмді функция арқылы жазатын болсақ, онда
x:=min(a, b); y:=max(a, b);

9
болып жазылуы тиіс. Ал процедураны пайдаланған кезде бұл прграмма тексті
төмендегіше болады.
Program proc;
Lobet 10;
Var a, b, x, y,: real;
t: integer;
Procedure minmax ( aa, bb :real; var xx, yy :real,);
Begin
If aabb
then
begin xx:=bb; yy:=aa end
else
begin xx:=aa; yy:=bb end
end;
begin
minmax(3,4,x,y;); writeln(‘3,4-тің кішісі:’,x:8:2,’үлкені:’,y:8:2);
write (‘тағы енгіземіз бe 1-иә, 0-жоқ’) ;
readln (t);
if t=1 then goto 10
end.

Көрсетілген minmax процедурасы төрт параметрден тұрады:aa,bb,xx,yy.
Алғашқы екі параметр аргумент сияқты берілген параметрлер, себебі
процедураны орындау оларға нақты параметрлердің мәндері жүктеледі. Ал соңғы
екі параметр анықталатын шамалар, сол себепті процедураның тақырыбында
олардың алдында VAR түйінді сөзі тұрады, сөйтіп бұл нақты параметрлер
айнымалылар болуы керек екендігі көрсетіледі(тұрақты не өрнек болмайды).
Процедураның тақырыбынан кейін оның жұмысын көрсететін шағын программа –
құрмалас оператор орналасқан.
Негізгі программаның процедура орындалуы тиіс жерлерінде міндетті
түрде оны бір рет нақты параметрлер арқылы орындайтын процедура операторы
тұрады.

Функциялар
Функциялар деп- жұмыс нәтижесінде бір ғана мәнді анықтайтын
операторлар тізбегін айтамыз. Функцияның сипаттамасы немесе оның
тақырыбы Function (функция) деп аталатын түйінді сөз бен одан кейін
жақша ішінде формальды параметрлер деп аталатын аргументтер мен
солардың типтерінен тұрады. Тақырыптың соңында нәтиженің типі, яғни
функцияның мәнінің түрі көрсетіледі.
Одан кейінгі келесі қатарлар, барлық программалардағы сияқты
белгі таңбаларының анықтамаларынан , тұрақтылардан және айнымалыларды
сипаттаудан тұрады. Функцияның негізгі қызметін Begin және End
сөздерінің арасында орналасқан операторлар атқарады да, ең соңында ;
қойылады.
1-мысал. Берілген екі санды дәрежелеп, олардың қосындысын табуда
дәрежелеуді функция арқылы есептеу керек болсын
у=am +bn,
мұндағы а,b,м,n –пернелерден енгізілетін бүтін сандар. Осы
функцияны анықтау және у-ті табу программасы төмендегідей болады.
Program k;
Var y,a,b,m,n; integer;
T: char;
Function dar(a,n: integer):integer;{функция тақырыбы}
{а,n-формальды параметрлер, типі бүтін сан, функция

нәтижесінің де типі бүтін сан}
var an, i:integer;
begin
an:=1
for i:=1 to n do an:=an*a;
dar:=an
End;{}
Begin {программаның негізгі бөлімінің басы}
K: write;(‘бас орын арқылы a,m,b,n сандарын енгіземіз:‘)
Readln (a,m,b,n);
Y:=dar (a,m)+dar (b,n);{a,m,b,n-нақты параметрлер}
Writeln (‘y=’, y:10)
Write (‘тағы да негіземіз бе? У-иә, N-жоқ’);
Readln (t);
If t:=’y’ then doto r
End.
Функцияның есептелетін параметрлері нақты деп, ал функцияның
сипаттамасында көрсетілген параметрлер формальды деп аталады. Біздің
мысалымызда а мен n формальды параметрлер, ал сол функцияны
пайдаланған кездегі a,m және b,n-нақты параметрлер. Нақты
параметрлерлің типі формальды параметрлердің типімен сәйкес келуі
тиіс.
14
Нақты параметрлер тұрақтылардан, айнымалылардан және
өрнектерден тұруы мүмкін. Негізгі программада функцияны шақыру оның
мәнін береді. Функция мәнінің типі функцияны сипаттауда анықталады.
Егер кейбір функциялардың мәні (мысалы,f(a,b)) real немесе integer
типті болса, онда олар sin, cos, round стандартты функциялары тәрізді
қолданылады. Мысалы, программада x:=x+f(x,y)6 y:=sin(f(x,x1))2
меншіктеу немесе while f(x,y)F(y,x) do x:=f(x,y) циклдік операторлары
болуы мүмкін. Егер кейбір функиялардың (мысалы,f(a) функциясының) мәні
char типті болса, ондай функциялар программада апострофқа алынған
нақты символдардан бірдей қолданылады. Мысалы, программада мынадай
s:=h(1) меншіктеу операторы, if e:=h(1) then s:=’a’ else s:=h(1)шарты
оператор, т.с.с. операторлар кездесуі мүмкін.

2.4 Рекурсивті функциялар
Егер қосалқы программа оны құрастыратын ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
5 ферзі
Хоной башнясы
Жиындарға қолданатын амалдар қасиеттері
Т.Ахтановтың өмір жолы және шығармаларының көркемдік қасиеті
Автобустың рейс уақыты
Алакөл көлінің суының химиялық құрамын зерттеу
Қазақстанда шағын кәсіпкерліктің дамуы
«Сандық әдістер» пәнінен зертханалық жұмыстар. Оқу құралы
Азық құрамы мен қоректілігі. Азықтар химиялық құрамы
Ротор мен статордың есебі
Пәндер