Хоной башнясы



Мазмұны

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

3. Есептi шығарудың тәсiлдерiн баяндау ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7
3.1. Iздеу алгоритмдерi ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7
3.1.1. Сызықты iздеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..7
3.1.2. Тосқауылы бар iздеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...8
3.2.Сорттау алгоритмдерi ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .9
3.2.1. Таңдау арқылы сорттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... 9
3.2.2. Айырбаспен сорттау (“көбiкше” тәсiлiмен) ... ... ... ... ... 10

4. Алгоритмнiң негiзгi ойын баяндау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 12
4.1. Қайталану операторлары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..12
4.2. Графиктік режиммен жұмыс істеу ... ... ... ... ... ... ... ... ... ... ... ... ... ...13

5. Блок.схема ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...17

6. Қолданылған техникалық жабдықтар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...22

7. Бағдарламаны шақыру және жүктеу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .22

8. Есептi шығару алгоритмнiң программалық жазбасы (Паскаль тiлiнде) ... ...23

9. Енгізілген мәліметтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .27

10. Шығарылған мәліметтер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..27

11. Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 27

12. Пайдаланылған әдебиеттер тiзiмi ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 28
2.Есептің математикалық қойылымы
Есептің математикалық қойылымында есеп негізінен алғанда графикамен жұмыс қарастырылған. Мен төменде графикамен жұмыстың тәсілдерін сипаттадым. Графиктік режимде экранға бейнелер шығару үшін координаталр жүйесі қолданылады. Бейнелерді құрайтын нүктелер экранда қатарлар бойынша реттеліп орналасатындықтан, бір қатардағы нүктелер Х осі бойынша солдан оңға қарай өзгереді деп, ал қатарлар - Y осі бойынша жоғарыдан төмен қарай өзгереді деп алынады. Нүктелердің басы ретінде экранның сол жақ жоғарғы бұрышынан x=0 және y=0 деп алынады. Ал барлық қатарлар (MaxY) мен ондағы орналасқан нүктелер саны (MaxX) видеоадаптердің типі мен оның жұмыс режиміне байланысты болады.Башния тұрғызу әркімнің қолынан келмейді.
12. Пайдаланылған әдебиеттер тiзiмi

1. Шелест В. Программирование. – Санкт-Петербург, BHV, 2001.
2. Роджерс Д. Алгоритмические основы машинной графики. – Москва, “Мир”, 1989.
3. Вирт Н. Алгоритмы + структуры данных = программы. – Москва, “Мир”, 1985.
4. Вирт Н. Алгоритмы и структуры данных. – Москва, “Мир”, 1989.
5. Лахтин А.С., Искакова Л.Ю. Языки и технология программирования. Начальный курс. Учеб. пособие. Екатеринбург, 1998.
6. Бондарев В.М., Гублинский В.И., Качко Е.Г. Основа програмирования – Ростов Н/Д: Феникс, 1997.
7. Турбо Паскаль 7.0 – К.: торгово – издательское бюро BHV, 1996 – 448с.: ил. Т. Рюттяна.
8. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. – Москва, “Нолидж”, 2001.
9. Н.Ы. Омарова, К.У. Тұрмағамбетова, К.Н. Нүриденова. Паскаль тiлiнде программалау негiздерi. Алматы, “Бiлiм”, 1996.
10. Шаметов Ералы Бақтайұлы. Паскаль тiлiн үйренейiк. Шымкент, 1993.
11. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль.
М.: Наука, 1988.
12. Х.М. Дейтел, П.Дж. Дейтел. Как программировать на С++. Москва,
“Бином”, 2000.
13. Программирование на С и С++ для Windows 95. Киев, BHV, 1996.
14. «Язык программирования для персонального компьютера Си»,
© С.О. Бочков, Д.М. Субботин, М.: Диалог-МИФИ, 1990.
Turbo C++ (Version 1.0). Руководство для программиста.

Хоной башнясы

Мазмұны

2. Есептiң математикалық
қойылымы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..6
3. Есептi шығарудың тәсiлдерiн
баяндау ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7
3.1. Iздеу
алгоритмдерi ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
..7
3.1.1. Сызықты
iздеу ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... 7
3.1.2. Тосқауылы бар
iздеу ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... .8
3.2.Сорттау
алгоритмдерi ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . ... .9

3.2.1. Таңдау арқылы
сорттау ... ... ... ... ... ... ... ... ... ... ... ... ... ... 9

3.2.2. Айырбаспен сорттау (“көбiкше” тәсiлiмен) ... ... ... ... ... 10

4. Алгоритмнiң негiзгi ойын
баяндау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .1
2
4.1. Қайталану
операторлары ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ..12
4.2. Графиктік режиммен жұмыс
істеу ... ... ... ... ... ... ... .. ... ... ... ... ... ... .13
5. Блок-
схема ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... .17
6. Қолданылған техникалық
жабдықтар ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ..22
7. Бағдарламаны шақыру және
жүктеу ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... .22
8. Есептi шығару алгоритмнiң программалық жазбасы (Паскаль
тiлiнде) ... ...23
9. Енгізілген
мәліметтер ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ...27
10. Шығарылған
мәліметтер ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... 27
11.
Қорытынды ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ..27
12. Пайдаланылған әдебиеттер
тiзiмi ... ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... 28

2.Есептің математикалық қойылымы
Есептің математикалық қойылымында есеп негізінен алғанда графикамен
жұмыс қарастырылған. Мен төменде графикамен жұмыстың тәсілдерін сипаттадым.
Графиктік режимде экранға бейнелер шығару үшін координаталр жүйесі
қолданылады. Бейнелерді құрайтын нүктелер экранда қатарлар бойынша реттеліп
орналасатындықтан, бір қатардағы нүктелер Х осі бойынша солдан оңға қарай
өзгереді деп, ал қатарлар - Y осі бойынша жоғарыдан төмен қарай өзгереді
деп алынады. Нүктелердің басы ретінде экранның сол жақ жоғарғы бұрышынан
x=0 және y=0 деп алынады. Ал барлық қатарлар (MaxY) мен ондағы орналасқан
нүктелер саны (MaxX) видеоадаптердің типі мен оның жұмыс режиміне
байланысты болады.Башния тұрғызу әркімнің қолынан келмейді.

3. Есептi шығарудың тәсiлдерiн баяндау

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

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

3.1.1. Сызықты iздеу

Сызықты iздеу екi еселi шарты бар циклмен (while немесе repeat -
until) орындалады. Бiрiншi шарт индекстiң массивке тиiстiлiгiн тексередi,
мысалы, (i=N). Екiншi шарт – бұл iздеудiң шарты. Бiздiң жағдайда while
циклiнде бұл iздеудi жалғастыру шарты: (A[i]X), ал repeat – until
циклiнде бұл iздеудi аяқтау шарты: (A[i]=X). Цикл денесiнде әдетте тек
жалғыз оператор: массивтегi индекстiң өзгеруi ғана жазылады.
Циклдан шыққаннан кейiн қай шарт бойынша шыққанымызды тексеруiмiз
керек. Әдетте if операторында циклдiң бiрiншi шартын қайталайды. Бұл шарт
орындалуын while циклi жағдайында шарттың орындалуын, ал repeat – until
циклiмен оның бұзылуы кезiнде сәттi iздеу деп айтуға болады.
Мысалы: Сызықты iздеу.
program Poisk1;
var A:array[1..100] 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);
i:=1; {i:=0;}
while (i=N) and (A[i]X) do i:=i+1;
{repeat i:=i+1; until (iN) or (A[i]=X);}
if i=N then write(' A массивiне ', i,' орында', X ,' санының бiрiншi
кiруi ')
else write('тапқан жоқпыз');
end.
Соңғы кiрудi iздеу кезiнде енгiзгеннен кейiн келесi операторлар жүру
керек.
i:=N; {i:=N+1;}
while (i=1) and (A[i]X) do i:=i-1;
{repeat i:=i-1; until (i1) or (A[i]=X);}
if i=1 then write(' A массивiне ', i,' орында', X ,' санының соңғы кiруi
')
else write('тапқан жоқпыз');

3.1.2. Тосқауылы бар 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.

3.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з.

3.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.

3.2.2. Айырбаспен сорттау (“көбiкше” тәсiлiмен)

Тәлiл идеясы рет бойынша массивтiң көршiлес жұптары тексерiлуiнде
құрылған. Егер олар олар керектi реттiлiкте болмаса, онда көршiлес
элементтер жұбын орындарымен ауыстырамыз. Мұндай бiр өтуден кейiн N номерi
орынында максимал элемент орналасады (бiрiншi көбiкше “қалқып” шықты).
Келесi өту N-1 элементке дейiн қарастыру керек және т.с.с. Барлығы N-1 өту
қажет болады. Айырбаспен сорттаудың есептеу қиындығы O(N*N).
Мысалы: А массивiнiң N бүтiн сандарының өсуi бойынша айырбаспен
сорттау. (Негiзгi вариант)
program Sort_Obmen1;
var A:array[1..100] of integer;
N,i,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-1 downto 1 do { k – салыстырылатын жұптар саны }
for i:=1 to k do
if A[i]A[i+1] then
{көршiлес элементтердi орындарымен ауыстырамыз}
begin x:=A[i]; A[i]:=A[i+1]; A[i+1]:=x; end;
for i:=1 to n do write(A[i],' '); {реттелген массив}
end.

4. Алгоритмнiң негiзгi ойын баяндау

Бұл бағдарлама негiзiнен бiрнеше функция мен процедура, шартты
операторлардан,графиктік функция мен процедураларданқұралған. Әрқайсысын
бөлек-бөлек қарастырайық.

Қайталану командалары
Программаның белгілі бір бөлігінің орындалуын бірнеше рет қайталану
үшін қолданылатын командаларды қайталану командалары деп атайды. Көптеген
есептеулерде айнымалылардың әртүрлі мәндері үшін кейбір операторлар бірнеше
рет қайталанып орындауды қажет етеді.Программалық текстер қықа әрі оқуға
ыңғайлы болуы үшін қайталану процесін циклдік операторлар қолданып
ұйымдастырады.
Түрлері:
1. For – параметрлі циклдік оператор;
2. While – алдын – ала циклдің орындалу шартын тексеретін оператор;
3. Repeat – соңында циклдің тоқтау шартын тексеретін оператор;
For циклдік операторы (Үшін циклі).
Параметрлі циклдік операторлар цикл денесінің қайталануы алдын – ала
белгілі болғанда қолданылады. Жалпы жазылу түрі төмендегідей:
For K:=M to N do
Цикл денесі;
Бұндағы: К – циклдік айнымалы (есептеуіш), әр цикл орындалғанда K – ға 1
қосылыптұрады. M – K айнымалысының алғашқы мәні. N – K айнымалысының соңғы
мәні.
Мысалы: Экранға X – тің барлық 1-ден 100-ге дейінгі бүтін мәндері
үшін Y=(x*x)-50*x-30 - өрнегінің шығару программмасы.
Program Tend;
Var x:byte; y:longint;
Begin for x:=1 to 100 do
Begin y:=SQR(x)+50*x-30;
Writeln(‘y=’,y); end;
Readln
End.

Repeat...Until циклдік операторы (Дуйін циклі).
Бұл оператор да While операторы сияқты қайталану саны алдын –
ала белгісіз болған жағдайлара қолданылады. Оның While-дан айырмашылығы
циклді орындау шарты цикл денесінен кейін тексеріледі. Цикл денесі жай
немесе құрама операторы болцы мүмкін. Ондағы операторлар repeat және while
қызметші сөздерінің арасында орналасқандықтан, цикл денесі операторлық
жақшаларға алынбай жазылады.Жазылу түрі:
Repeat
Цикл денесі;
Until шарт;
Until операторында жазылған шарт орындалмағанға дейін цикл денесінің
орындалуы ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Информатиканы дербес оқыту әдістемесі
Медеу
ХVІІІ гасырдағы орыс өнері
Құрылымдық электрлік сұлба сипаттамасы
Аударма теориясына анықтама
Қорғасын агломерациясы
Аударма өнері және көркемдік түсініктері
Аударма барысындығы сөйлем мүшелерін өзгерту
Тарылған өзенінде жобаланған су қойма торабы
Тематикалық парктер жайлы
Пәндер