Жиымдар курстық жұмыс
Мазмұны:
Кіріспе......................4
І. Жиымдар..............................5
1.1 Жиым түсінігі.......................5
1.2 Жиымның сипаттамалары.....................5
II. Бір типті жиым...................7
2.1 Бір типті жиымның типтер бөлімінде сипатталуы..................7
2.2 Бір типті жиымның айнымалылар бөлімінде сипатталуы......9
2.3 Жиымдар арасында амалдар қолдану...................14
2.4 Жиым элементтерін реттеу әдістері......................20
Қорытынды...............................29
Қолданылған әдебиеттер..........................30
Жұмыс түрі: Курстық жұмыс
Жұмыс көлемі: 29 бет
Пәні: Соңғы қосылған курстық жұмыстар
-----------------------------------------------------------------------------------
КУРСТЫҚ ЖҰМЫСТЫҢ ҚЫСҚАРТЫЛҒАН МӘТІНІ
Мазмұны:
Кіріспе................................................................................................................4
І. Жиымдар......................................................................................................5
1.1 Жиым түсінігі...............................................................................................5
1.2 Жиымның сипаттамалары...........................................................................5
II. Бір типті жиым...........................................................................................7
2.1 Бір типті жиымның типтер бөлімінде сипатталуы....................................7
2.2 Бір типті жиымның айнымалылар бөлімінде сипатталуы........................9
2.3 Жиымдар арасында амалдар қолдану.......................................................14
2.4 Жиым элементтерін реттеу әдістері..........................................................20
Қорытынды.......................................................................................................29
Қолданылған әдебиеттер................................................................................30
Курстық жобалауға тапсырма
Мен осы курстық жобалауда жиымдарды қолданып, есептерді шығару, және
Кіріспе
«Алгоритм және бағдарламалау негіздері» пәнінен қарастырылып отырған «Бір типті
Жоғарғы деңгейлі программалау тілдерінің бірі – Паскаль. Оның алғашқы
Turbo Pascal нұсқасын 1983 жылы Borland International Inc(АҚШ) фирмасының
І. Жиымдар
1.1 Жиым түсінігі
Программалау кезінде пайдаланылатын айнымалы шамалар қарапайым және индексті айнымалылар
Қарапайым типтер қатарына жататын стандартты (integer, real) және
1.2 Жиымның сипаттамалары
Жиымды сипаттау үшін оның элементтерінің қандай тип екенін және
Жиым сипаттамалары:
Типі – жиым элементтерінің жалпы типі;
Көлемі – жиым индекстерінің саны;
Шектелімі - әрбір индекстердің шектеу бойынша сәйкестігі;
Пішімі – көлем және шектеулер жиындары.
Паскаль тілінде жиымды программада қолдану үшін оларды міндетті түрде
ІІ. Бір типті жиым
2.1 Бір типті жиымның типтер бөлімінде сипатталуы
Жиымды екі түрде сипаттауға болады:
1. Типтер бөлімінде сипаттау үлгісі:
Type
Жиым типінің атауы = array [жиым индексінің аралығы]
Мысалы:
type
GRUP = array [1..8] of integer;
Мұндағы:
Жиым типінің атауы – жиым элементінің жиынын сипаттайды;
Индекс типі – тізбектелген немесе шектелген типтерді көрсету;
Элемент типі – жиым элементтерінің типін көрсету.
Турбо Паскальда жиым элементтері нөмірленеді. Жиымның әрбір элементіне индексін
Берілген жиымдардың бірінші элементіне қатынас алу үшін жиым атауынан
А [1]
12 11 5 -2 405 -3 9 -7
жиымның
бірінші
(1 – сурет)
Берілген жиымдардың кез-келген элементтеріне арифметикалық операцияларды, салыстыру және меншіктеу
Жиым атауы [индексі]:=нәтиже
Мысалы:
а) А жиымының бірінші элементіне – 12 санын меншіктеу
ә) А жиымының бесінші элементіне - 405 санын
б) А жиымының екінші элемент нәтижесін экранға шығару үшін:
в) А жиымының бірінші элементіне нәтижені пернелер тақтасы көмегімен
г) А жиымының бірінші және үшінші элементтерінің қосындысын Sum
Типті сипаттау мысалдары:
Type mas = array [1..10] of real;
color = array [byte] of mas;
active = array [menu] of boolean;
Бірінші операторда жиымның 1-ден 10-ға дейін нөмірленетін типі заттық
Сонымен, жиымның элементтер типі әртүрлі болуы мүмкін, тек қана
Әдетте жиымды сипаттағанда оның индексінің жоғарғы шекарасы атаулы тұрақты
const n=6;
type intmas=array [1..n] of integer;
Тапсырмадан кейін массив типі бұл типтің айнымалысы кәдімгі
var a,b:intmas;
Егер талап етілген жиым типі программада тек бір орында
var a,b:array [1..n] of integer;
2.2 Бір типті жиымның айнымалылар бөлімінде сипатталуы
Жиымдарды программада қолдану үшін Турбо Паскаль программалау тілінде оларды
2. Айнымалылар бөлімінде жалпы жазылу түрі:
Var
жиым атауы: array [жиым индексінің аралығы] of элемент типі;
var
A:GRUP;
Мысалы, бөлшек сандарға арналған 18 элементтен тұратын GR жиымын
Var
GR:array [1..18] of real;
Берілген 9 элементтен тұратын А жиыміне бөлшек сандар енгізіп,
{$R+}
PROGRAM MASSIV; {Программа атауы}
TYPE {Типтерді сипаттау бөлімі}
MAS=ARRAY[1..9] OF REAL;{Шарт бойынша жиым типі}
VAR {Айнымалаларды сипаттау бөлімі}
A:MAS; {MAS типті А - массив}
I:INTEGER; {Циклді басқару айнымалысы}
BEGIN {Негізгі программа басы}
WRITELN (‘А - жиымның 9 элементін енгіз:’);
FOR I:=1 TO 9 DO {I - бойынша
READ (A[I]); {A [I] жиыміне нақты сандарды енгізу операторы}
FOR I:=1 TO 9 DO {I – бойынша
WRITE (‘A [‘,I,’]=’,A [I]);{A [I] жиымының элементін дисплейге шығару
END. {Негізгі программа соңы}
Жиымның кез-келген элементтерімен жұмыс істегенде программалау барысында олардың индекстерінің
Жиымдар қолданылатын программада “{R+}” директивасын жазу арқылы жиымдардың шектеулерін
Жиымды типтер бөлімінде анықтау программаны оқуды көп жеңілдетеді және
Программалауда бір өлшемді жиымдарды қолдану арқылы программаны ықшамдауға болады.
Мысалы: Шарт бойынша 15 белгісіз айнымалыны енгізу қажет болсын.
Бірінші жолы:
readln (a1, a2, a36, a4, a5, a6, a7, a8,
Екінші жолы:
for i:=1 to 15 do
readln (a[i]);
Көрсетілген мысалдардың орындалуының бірінші жолында айнымалыларды енгізу үшін 15
Мысалды орындаудың екінші жолында жиымды қолдану арқылы жинақы түрде
Көрсетілген мысалды қолдана отырып А [15] жиымындағы бүтін сандар
PROGRAM PRIM_MIN;
USES CRT;
VAR
A:ARRAY [1..15] OF INTEGER;
I, MIN:INTEGER;
BEGIN
CLRSCR;
WRITELN (‘ жиым элементтерін енгізіңіз–’ );
FOR I:= 1 TO 15 DO
BEGIN
WRITE (‘A [‘,I,’]=’);
READLN (A [I]);
END;
MIN:=A [1];
FOR I:= 1TO 15 DO
IF MIN > A[I] THEN MIN:=A [I];
WRITELN (‘MIN=’,MIN);
END.
Берілген программада var бөлімінде А [15] жиымы сипатталған: А:array
Программада жиым элементтерін енгізу үшін цикл операторы қолданылған:
FOR I:=1 TO 15 DO – I-ді 1-ден 15-ке
BEGIN – цикл басы;
WRITE (`A[,I,]=`); “A [I]=” тіркесін экранға бейнелеу;
READLN (A[I]); - жиым элементтерін енгізу;
END; - цикл соңы.
Шарт бойынша ең кіші элементті анықтау үшін min айнымалысына
FOR I:=1 TO 15 DO
IF MIN Табылған элементті экранға шығару:
WRITELN (‘MIN=’);
[CTRL]+[F9] пернелерін басу арқылы берілген программа қорытындысы шығарылады.
Көп жағдайда жиымның номері (индексі) 1-ден басталады. Бірақ ,
VAR халық саны : ARRAY [1582..1992] OF INTEGER;
Жиымның бүтін, не нақты сандардан тұратын сандық типтерін алдыңғы
TYPE
STRING : ARRAY [0..255] OF CHAR;
Жиымның номерінің санына қарай қанша элементті жиым екенін байқауға
Келесі мысалдарды қарастыратын болсақ, жиым номері тек сол мәндерді
Текстегі латын әріптерін шығару:
VAR :ARRAY [‘A’.. ‘Z’] OF INTEGER;
Құрлықтағы бір жылдағы ауаның орташа температурасы:
TYPE құрылық = (Гаити, Таймыр, Ява, Тасмания, Сицилия);
VAR T:ARRAY [құрылық] OF REAL;
3. Келесі адамдардың қайсысының бойы ең ұзын:
TYPE аты = (Қарлығаш, Қадыр, Ақын, Жанар, Бақыт);
VAR Ж : ARRAY [аты] OF (ұл, қыз);
Б : ARRAY [аты] OF 140..240;
Осы мысалдарға қарай отырып, жиымның дұрыс (қатесіз) жазылуын келесі
VAR M : ARRAY [1..N] OF REAL;
Жыл : ARRAY [қаңтар..желтоқсан] OF INTEGER;
L : ARRAY [Жол] OF BOOLEAN;
M1 : ARRAY [CHAR] OF Шеңбер;
Егер бірнеше жиымдар бірыңғай типті және элементтер саны тең
VAR A, B, C, : ARRAY [1..25] OF REAL;
Мұнда A, B, C – жиымдарының мәндері 25 элементтен
A [1], A [2], A [3], ... , A
B [1], B [2], B [3], ... , B
C [1], C [2], C [3], ... , C
Жиымдар арасында амалдар қолдану
Паскаль тілінде жиымдар арасында «тең», «тең емес» немесе «меншіктеу
VAR
A, B : ARRAY[1..10] OF REAL;
Бұған үш амалды қолданғанда төмендегідей нәтиже береді:
Өрнек Нәтиже
А=B Егер әрбір А жиымы элементінің мәні сәйкес В
AB Егер А жиымы элементінің ең болмағанда бір мәні
A:=B В жиымы элементінің барлық мәні сәйкес жиымы элементінің
Жиымды программаға енгізу мен оны одан шығару үшін цикл
FOR I:=1 TO 9 DO
READ (F [I]);
бұл жол тоғыз элементтен тұратын А – жиымын енгізеді,
FOR I:=1 TO 9 DO
WRITE (A [I]);
тоғыз элементтен тұратын жиымды шығарады.
Жиыммен жұмыс істеуді төмендегі мысалдарды қарастырамыз.
1 – мысал.
Бүтін оң санның қосындысын табамыз. Х – жиымы элементтерінің
SUM=X [1]+X [2]+X [3] ...+ X [10] табу керек.
Есептің шешуі:
PROGRAM M1;
CONST N=10;
VAR
I, SUM : INTEGER;
A : ARRAY [1..N] OF INTEGER;
BEGIN
FOR I:= 1 TO N DO
BEGIN
WRITE (‘Жиым элементтерін енгіз’);
READ (A[I]);
END;
SUM: =0;
FOR I:= 1 TO N DO SUM: = SUM+A[1];
WRITELN(‘ 10 элементтен тұратын А-жиымының қосындысына тең’);
END.
Программаның орындалуына талдау. Жиымның элементтері енгізілгеннен кейін 1-ші элементке
2 – мысал.
Жанар төрт күн қатарынан базарға барып сауда жасады. Ол
Программа құрайық:
PROGRAM M2;
CONST N=4; {күн саны}
VAR
A:REAL; {бір күндік шығын}
SUM : REAL; {шығын қосындысы}
I : INTEGER; {күн санау}
BEGIN
SUM:=0;
FOR I:=1 TO N DO
BEGIN
WRITE (‘бір күндік шығын қандай?’);
READLN(A);
SUM:= SUM + A;
WRITELN (‘шығын қосындысы:’,SUM:6:2);
END;
WRITELN (‘----------------------------------’);
WRITELN (‘барлық күндегі шығын=’, SUM:6:2)
END.
Программа орындалғаннан кейін экранға шығатын жауабы:
****************************************************
бір күндік шығын қандай? 4.60
шығын қосындысы: 4.60
бір күндік шығын қандай? 6.10
шығын қосындысы: 10.70
бір күндік шығын қандай? 2.95
шығын қосындысы: 13.65
бір күндік шығын қандай? 4.00
шығын қосындысы: 17.65
-------------------------------------------------------------------------------
барлық күндегі шығын = 17.65
Бұл есепте жиым қолданылмаған. Себебі күнделікті шығын есебін жүргізіп
Есептің шығарылуы:
PROGRAM M3;
CONST N=4; {Күннің саны}
TYPE T=ARRAY [1..N] OF REAL; {Жиым типі}
VAR {Жиым шығыны}
A :T; {Шығын қосындысы}
SUM :REAL; {Күндердің саны}
I :INTEGER;
BEGIN
{Күнделікті шығын}
FOR I:=1 TO N DO
BEGIN
WRITE (‘Бір күндегі шығын?’);
READ(A[I])
END;
{Ой сұмдық –ай, сонша ақшамды қайда жібердім...?}
{Көп те емес, қазы және сыр алдым ...?}
{Ойбай, менің қанша жұмсағанымды кім санайды?}
WRITELN;
WRITELN (‘Маған көмектесіңдерші’);
SUM:=0;
FOR I:=1 TO N DO
SUM:=SUM+A[I];
WRITELN (‘--------------------------------’);
WRITELN (‘Барлық күндегі шығын=’,SUM:6:2)
END.
Жауабы:
*****************************************************
Бір күндік шығын? 4.60
Бір күндік шығын? 6.10
Бір күндік шығын? 2.95
Бір күндік шығын? 4.00
Жанарға көмектесіп жіберіңдерші
-------------------------------------------------------------------------------
Барлық күндегі шығын = 17.65
Бұл есепте екі цикл және жиым қолданылады. Бірінші цикл
3 – мысал.
25 саннан тұратын жиым элементтерінің ішінен берілген санға тең
PROGRAM M3;
CONST N=25;
VAR
I, S, R : INTEGER;
A: ARRAY [1..N] OF INTEGER;
BEGIN
FOR I:= 1 TO N DO
BEGIN
WRITE (‘Жиым элементтерін енгіз’);
READ (A[I]);
END;
WRITE (‘іздейтін санды енгіз’);
READ (S);
R:=0;
FOR I:= 1 TO N DO
BEGIN
IF A[I]=R THEN
BEGIN
R:=R+1;
WRITELN (‘Берілген санға’,R, ‘сан табылды, i-орындағы’);
END;
END;
IF R0
THEN WRITELN (‘S-саны жиымда бар’,R, ‘рет’)
ELSE WRITELN (‘S саны жиымда жоқ’);
END.
Жиым элементтерін реттеу әдістері
Жиым элементтерін реттеудің бірнеше әдістері бар. Соның ішінен
реттік номерімен таңдалған элемент басқа айнымалыға меншіктеліп, сақталады;
оны қоятын орын іздейді;
реті өзгермейтіндей орынға жылжытылады;
табылған орынға таңдалған элемент қойылады.
4-мысал.
PROGRAM M4;
USES CRT;
CONST N=20;
TYPE A=ARRAY [1..N] OF REAL;
VAR A:A;
B:REAL;
I, J, K=INTEGER;
BEGIN CLRSCR;
WRITELN (‘жиым элементтерін енгіз’);
FOR I:=1 TO N DO READ (A [I]);
READLN;
FOR I:=2 TO N DO
BEGIN
B:=A [I]; J:=1;
WHILE (B>A [J]); DO
J=J+1;
FOR K:=I-1 DOWNTO J DO
A [K+1]:=A [K];
A [J]:=B;
END.
Кескіні:
1
1
3 1
1
2
1
1
3 9 2
3
1
1
3 9
2
4
1
1 2 3
5
5
1 2
1
7
Нәтиже
1
1 2
5-мысал.
PROGRAM M5;
USES CRT;
CONST N=20; {Жиым ұзындығы}
TYPE tvector=ARRAY [1..N] OF REAL;
VAR
Vector:tvector;
MIN:REAL;
Imin, s:INTEGER;
BEGIN
CLRSCR;
WRITELN (‘жиым элементтерін енгіз:’);
FOR I:=1 TO N DO
READ (Vector [I]); READLN;
FOR S:= 1 TO N-1 DO
BEGIN
{ең кіші элементті диапазонда іздеу}
MIN:=Vector [S];
IMIN:=S;
FOR I:=S+I TO N DO
IF Vector [i]
IMIN:=i;
{S-ші және ең кіші элементтердің орындарын алмастыру}
Vectort [IMIN]:Vector [S];
Vector [S]:=IMIN
END;
FOR I:=1 TO N DO
WRITELN (‘Таңдап алынған жиым:’,Vector[I]);
WRITELN;
END.
Таңдау әдісі.
1-ден n-ге дейінгі жиым берілген. Осы жиымнан кіші элементті
6-мысал.
Баскетболшылардың екі командасы кездесті. Ойыншылардың ішіндегі қайсысының бойы ұзын
PROGRAM M6;
CONST N=10;
TYPE MASSIV=ARRAY[1..N] OF INTEGER;
VAR
SPORТSMEN : MASSIV;
MAX : INTEGER;
I:INTEGER;
BEGIN
{*ойыншылардың бойының ұзындығын енгізу*}
WRITELN (‘ойыншылардың бойының ұзындығын көрсет:’);
FOR I:= TO N DO
READ (SPORTSMEN[I]);
{*Қайсысының бойы ұзын екенін анықтау*}
MAX:=SPORTSMEN[I];
FOR I:=2 TO N DO
IF SPORТSMEN [I] > MAX THEN MAX:=SPORTSMEN[I];
WRITELN;
WRITELN (‘ең ұзын бойлы ойыншы =’ MAX:4)
END.
----------------------------------------------------------------------------------------------------
ойыншылардың бойының ұзындығын көрсет:
190 185 202 216 195 182 204 175 200
ең ұзын бойлы ойыншы = 216
----------------------------------------------------------------------------------------------------
7- мысал.
10 элементтен тұратын бүтін сандар жиымның оң элементтерінің арифметикалық
Program m7;
Var a:array [1..10] of integer;
S, i, k :integer; P:real;
Begin
for i:=1 to 10 do
readln (a[i]); {жиым элементтерін енгізу}
for i:=1 to 10 do
if a [i]>0 then begin S:=S+a [i]; k:=k+1; end;
P:=S/k;
writeln (‘оң элементтердің арифметикалық ортасы’,P);
End.
8 - мысал.
Нақты сандар жиымның ең үлкен, ең кіші элементтерін табыңдар.
Program m8;
Const n=20;
Var a:array [1..n] of real;
i, k, t:integer; max, min:real;
Begin
for i:= 1 to n do
readln (a[i]);
max:=a [i];k:=1;min:=a [i];t:=1;
for i:=2 to n do
Begin
if maxif min>a [i] then begin min:=a [i];t:=i;end;
End;
Writeln (‘max=’,max, ‘min=’,min)
End.
9- мысал.
20 элементтен тұратын жиым элементтерінің ішінен ең үлкенін табу
PROGRAM M9;
CONST N=20;
VAR A : ARRAY [1..N] OF REAL;
I : INTEGER;
MAX : REAL;
BEGIN
WRITELN (‘енгізіңіз’,N, ‘жиым элементтерін’);
FOR I:= 1 TO N DO READ (A[I]);
MAX:=A [1];
FOR I:= 2 TO N DO
IF A [I]>MAX THEN MAX:=A[I];
WRITELN (‘ең үлкен элемент:’,MAX:6:2);
END.
10- мысал.
10 элементтен тұратын бүтін жиымнан теріс элементтердің саны
PROGRAM M10;
CONST N=10;
VAR A : ARRAY [I..N] OF INTEGER;
I, SUM, NUM : INTEGER;
BEGIN
WRITELN (‘енгізіңіз’,N, ‘жиым элементтерін’);
FOR I:=1 TO N DO READ (A[I]);
SUM:=0;
NUM:=0;
FOR I:=1 TO N DO BEGIN
SUM:=SUM+A[I];
IF A[I]END;
WRITELN (‘элементтер қосындысы:’,SUM);
WRITELN (‘теріс элементтердің:’,NUM);
END.
Қорытынды.
Turbo Pascal – жоғарғы деңгейлі программалау жүйесі. Оның логикалық
Дәлірек айтқанда, Turbo Pascal ортасында «Жиымдармен жұмыс» курстық жұмысында
Қолданылған әдебиеттер:
Байжұманов М.Қ., Жапсарбаева Л.Қ. Информатика.-Астана: «Эверо», 2004ж.-256 б.
Грызлов В.И., Грызлова Е.П. Turbo Pascal 7.0.-Москва: «ДМК», 1999г.-354
Гусева А.И. Учимся программировать Pascal 7.0.-М: «Диалог-МИФИ», 2001г.-256 с.
Камардинов О.Есептеуіш техника және программалау.- Алматы: «Рауан», 1997ж.-421 б.
Кирнос В.Н. Решаем задачи на Паскале.-Кокшетау: «Келешек – 2030»,
Масанов Ж.Қ. Turbo Pascal.-Алматы: «Рауан», 2004ж.-221 б.
Меженный О.А. Turbo Pascal (Учитесь программировать).-М.: «Вильямс», 2001г.-448 с.
Мұхамбетова Ғ.Қ. Турбо Паскаль программалау тілі.-Орал, 2004ж.-
325 б.
Павловская Т.А. Паскаль. Программирование на языке высокого уровня.-СПб.: «Питер»,
Попов В.Б. Turbo pascal: Учебное пособие.-3-е доп.-Москва: «Финансы и
Семакин И.Г., Шестаков А.П. Основы программирования.-Москва: «Мастерство», 2001г.-254 с.
Ставровский А. Турбо Паскаль 7.0.-К.: «BHV», 2001г.-400 c.
Фаронов В.В. Turbo Pascal 7.0. Учебное пособие. -М:«Нолидж», 1998г.-255
Г-132 топ студенті
жиым атауы
жиым типінің атауы
жиым типінің атауы
8 элементті жиым
бүтін жиым