Массивтерді программалау


Жоспар:
Кіріспе . . . 3
І. Бағдарламалау тіліне жалпы түсінік
1. 1. Паскаль программасының негізгі элементтері . . . 6
1. 2. Программа туралы жалпы түсінік . . . 8
ІІ Бөлім. Массивтерді программалау
2. 1. Массивтер . . . 10
2. 2. Массивті массивке енгізу . . . 15
2. 3. Массивтің элементтерін өшіру . . . 18
2. 4. Массивтің элементтерін жағалап іздеу . . . 20
2. 5. Массивтің элементтерін екіге бөліп іздеу . . . 22
2. 6. Массивті индекстері арқылы сұрыптау . . . 26
Қорытынды . . . 28
Пайдаланылған әдебиеттер . . . 29
Кіріспе
Қазіргі кезде программалау тілінің түрлері көп. Солардың ішіндегі ең танымалысы Паскаль программалау тілі. Өйткені компьютерлік сауаттылық пен программалауды алғашқы кезеңде үйретуге ең қолайлы тіл. Паскаль тілі алгоритмдік тіл ішіндегі кеңінен тараған тілдердің бірі болып табылады. Қарастырылатын Паскаль программалау тілінде программа екі бөліктен тұрады:
- берілгендерді сипаттау;
- алгоритмдік амалдарды бейнелеу немесе операторлық бөлік.
Берілгендер бейнелеу арқылы жазылса, амалдар оператор арқылы жазылады. Синтаксистік жағынан Паскаль программасын екі бөлікке бөлуге болады: программа тақырыбы, блок.
Программа құрылымы төмендегіше болады:
Program <программаның аты>;
Блок: 1. Модульдерді қосу.
- Белгілерді бейнелеу бөлігі.
- Тұрақтыларды бейнелеу бөлігі.
- Типтерді анықтау бөлігі.
- Айнымалыларды бейнелеу бөлігі.
- Функцияларды және процедураларды бейнелеу бөлігі
- Операторлар бөлігі.
Бейнелеу бөлігіндегі программада пайдаланылатын белгілерге, тұрақтыларға, типтерге, айнымалыларға сипаттама беріліп (берілгендер атауы, олардың типтері, мәндері және т. б. ), олар хабарланады. Бейнелеу бөлігіндегі көрсетілген бөліктердің бәрі бірдей бар болуы шарт емес. Бейнелеудің жеке бөліктеріне қысқаша тоқталайық:
Uses -бұл жолда программада пайдаланылатын модульдер тізімінен тұрады. Модульдер стандартты және пайдаланушының құрған модульдері болуы мүмкін. Турбо Паскаль жүйесінде бірнеше стандартты модульдер бар. Олардың негізгілері: SyStem - Паскаль тілінің процедуралары мен функцияларын, Турбо Паскаль тілінің қосымша командаларын сүйемелдейді;
DOS- Паскаль тілінің DOS командаларын пайдалануды сүйемелдейді; CRT - Тексттік режимде экранды басқарады; OVERLAY - оверлейлік программаларды, PRINTER - принтерді пайдалануды, GRAPH - экранның графикалық режимінің жұмысын сүйемелдейді. Бұлардың барлығы TURBO. TPU, GRAPH. TPU файлында орналасқан. SyStem модулі тізімде көрсетуді қажет етпейді, ол автоматты түрде қосылады. Программаның орындалу нәтижесін экраннан көру үшін экран бетін кідіріс жасап, ұстап тұруды ұйымдастыру қажет. Кідірісті үш тәсілмен ұйымдастыруға болды: 1) Readln операторымен; 2) <символдық айнымалы>:=ReadKey операторымен; 3) While NOT Keypressed DO операторымен.
Label -белгі ретінде кез келген бүтін оң сан, символ, символдар тіркесі пайдаланылады. Белгі операторды немесе программаның бөлігін табу үшін қолданылады. Белгі оператор алдында орналасады да, қос нүте арқылы ажыратылады. Қажеттіоператорға, программаның бөлігіне оралу белгі арқылы жүзеге асырылады. Мысалы, Label 5, 12, 45, Sum, AB.
Берілген мәндерді айнымалыға жазу үшін меншіктеу операторын пайдалануға болады. Мысалы, А:=15, BC:=-16. 4. Программаны әмбебап етіп жасау үшін айнымалылардың мәндерін өзгертетін түрде жазу қажет, бұл жағдайда программа айнымалының әр түрі мәндері үшін дұрыс болады. Ол үшін енгізу операторы READ пайдаланылады. Енгізу операторының жалпы түрі READ(а1, а2, . . . , аn) . Мұндағы а1, а2, . . . , аn - айнымалы атаулары, оларды енгізу операторының параметрлері деп атайды. READ операторы орындалғанда параметрлер өздеріне сәйкес мәндерді қабылдайды, бұл міндетті енгізу файлы INPUT(енгізу) арқылы жүзеге асырылады.
Паскаль тілінде нәтижені экранға шығару үшін WRITE (жазу) операторы пайдаланылады. WRITE(а1, а2, . . . , аn) . Мұндағы а1, а2, . . . , аn - жай айнымалылар немесе апострофтар ішіне алынған символдар тобы болуы мүмкін. Мысалы, егер В=17, 15 болып, write (‘B=’, B) командасы орындалғанда, экранға В=17, 15дерегі көрінеді. Бүтін және нақты сандарды шығару үшін сандардың форматын беру қажет. Формат айнымалы атынан соң қос нүкте арқылы жазылады. Нақты сан форматы екі саннан тұрады: 1-сан - санға берілетін орын, 2-сан - үтірден кейін алынатын бөлшек бөлік саны.
І. Бағдарламалау тіліне жалпы түсінік
1. 1. Паскаль программасының негізгі элементтері
Кезкелген табиғи тіл сияқты, программалау тілінің де өз алфавиті бар. Бұл алфавитті программалауда қолдануға болатын барлық символдар жиынтығы деуге болады. Программалауда мағынасы мен қызметі алдын-ала анықталған және өзгермейтін қызметші сөздер жиі пайдаланылады. Паскалда оларды операторлар, амалдар (операциялар) атаулары ретінде және т. б. мақсаттарға пайдаланады.
Кезкелген программаның басты элементтері - айнымалылар, тұрақтылар және операторлар болып табылады. Айнымалы деп, компьютер жедел жадының ат берілген бөлігін (бір, не бірнеше ұя) айтады. Онда сақталатын ақпарат айнымалының мәні болып есептеледі. Айнымалының мәні программа орындалу барысында өзгеруі мүмкін. Ақпараттың түрі, мүмкін мәндерінің жиыны мен оған қолдануға болатын түрлендірулер жиынтығы айнымалылардың типін (тегін) анықтайды. Тұрақтының айнымалыдан айырмашылығы - оның мәнін программа орындалу барысында өзгертуге болмайтындығында. Операторлар , программа орындауға тиіс болатын небір амал-әрекеттерді көрсетеді.
Турбо Паскаль тілінде 80-ге жуық қызметші сөздер мен арнайы символдар қолданылады. Тіл алфавиті латын әріптерінен, цифрлардан және арнайы символдардан тұрады. Кейбір символдың қосағы да символ болып есептеледі. 1. 1 кестеде қызметші сөздердің реттелген тізімі берілген. Оларды программа мәтінінің қажетті жерінде қатесіз жазып пайдалану керек. Қызметші сөздерді жазуға бас, не кіші әріптерді қатар қолдана беруге болады. Оларды атау ретінде пайдаланбаған дұрыс.
Қызметші сөздердің ішінен программалауда жиі пайдаланыла-тындарының мағынасын түсіндіре кетейік. Program, unit - программа мен модуль тақырыбын жазу үшін керек. Var, const, procedure, function - айнымалыларды, тұрақтыларды, ішкі програмаларды (процедуралар мен функцияларды), ал type, array, string, record…end, file of… айнымалылар типтерін сипаттау үшін қолданылады. Begin, end -бірнеше операторлар-ды біріктіріп, бір құрамды оператор жасау үшін керек. If…then…else, for…to…do, for…downto…do, repeat…until, case…of…end, while…do -басқару операторлары. Inplementation, interface қызметші сөздері модулдерде ғана пайдаланылады. Div, mod, shl, shr, and, or, not - арифметикалық және логикалық амал атаулары. Constructor, destructor, object, public, virtual - объекті-бағдарлы программалауда қолданылады.
1. 2 кестеде арнайы символдар тізімі келтірілген. Программа мәтінінде қос сиволдардың арасына үзік қоймай жазу керек.
1. 2 кесте. Паскаль тіліндегі арнайы символдар
Қызметші сөздер мен арнайы символдар программа құру үшін жеткіліксіз болып табылады. Сондықтан да, Паскаль тілінде арнайы операторлар, стандартты модулдерде топтастырылған стандартты процедуралар мен функциялар кеңінен пайдаланылады. Олар туралы кейінірек әңгіме етпекпіз.
1. 2. Программа туралы жалпы түсінік
Паскаль тілімен алғашқы танысуды мысал арқылы қарастырсақ, қабырғалары 6. 5, 3. 9, биіктігі 4. 7 болатын трапецияның ауданын табу керек. Оның программалық құрылымы төмендегіше болады:
Program Audan;
var
a, b, h, s : integer;
begin
a:=6. 5; b:=3. 9; h:=4. 7; s :=(a+b) *h/2;
write('s=', s) ;
end.
{программа тақырыбы}
{айнымалыларды сипаттау}
{программа басы}
{а, в, h есепте берілген мәндерді меншіктейміз }
{s айнымалысына өрнек мәнін меншіктеу}
{экранға айнымалы мәнін шығару}
{программа соңы}
Бұл программада кездесетін ағылшын сөздерінің аудармасы:
Есепті шешу алгоритмі сызықтық алгоритм болатын және жай типті айнымалыларды пайдаланып құрылған программаны қарапайым программа деп атайды.
Паскальда программаның жалпы түрде жазылуы мынадай бөлімдерден тұрады:
- сурет. Паскаль тіліндегі программа құрылымы
Программа тақырыбы Program қызметші сөзінен және программа атауынан тұрады. Атау - латын әріптерінен, цифрлардан, астын сызу белгілерінен ғана тұратын, саны 63-тен аспайтын символдар жолы. Сонымен, программа тақырыбының жазылуы:
Program <программа атауы> ;
Ескерту. Турбо Паскалда программа тақырыбын жазбай кетуге де болады. Тақырыптан кейін, программада пайдаланылатын белгілерді, тұрақтыларды, типтерді, айнымалыларды, ішкі программаларды және т. б. сипаттаулар бөлімі орналасуы тиіс. Содан кейін, міндетті түрде, операторлар бөлімі болуы тиіс. Операторлар бөлімінің басына begin , ал аяғына end сөздері жазылып, соңына нүкте қойылуы шарт. Программада операторлар бір, не бірнеше жолдарға жазылып, нүктелі үтірлермен айырлады. Қатар тұрған екі айыру таңбасының арасында бос оператор бар деп есептелінеді. Программа мәтінін құрғанда, оның бөлім-дері мен күрделі элементтерінің құрылымы айқын көрінетіндей етіп жазу, сауаттылықты көрсетіп қана қоймайды, оны оқуды да, жаңартуды да бір-шама жеңілдетеді. Ол үшін үзіктерді, жол шегіністерін, бос жолдарды және түсініктемелерді керегінше, ретімен пайдаланып отырған жөн. Күрделі программаны баптау кезінде бір, не бірнеше операторларды фигуралық жақшалармен қоршау арқылы, олардың орындалуын уақытша тоқтату тәсілі жиі қолдданылады.
ІІ. Массивтерді программалау
2. 1. Массивтер
Тәжрибеде біртекті мәліметтер жинағын құрамды бір мән ретінде қарастыру жиі кездеседі. Мысалы: тізбек, вектор, қатар, кесте. Массив дегеніміз индекстелген, типті бірдей, саны шекті элементтердің жинағы. Массив элементінің бір, тіпті бірнеше индексі де болуы мүмкін. Массив индекстерінің типті ретті тип қана бола алады. Массив элементтерінің саны индекстердің саны немесе олардың өзгеру аралығы арқылы анықталады. Массив элементтерінің типіне (базалық тип) ешқандай шек қойылмайды.
Массивті тип ретінде сипаттағанда типтің атынан кейін “ = ” белгісі, содан соң array қызметші сөзі, тік жақшалардың ішіне оның индекстері және of сөзінен кейін базалық типі көрсетіледі. Типтерді сипаттаудың мысалы:
Type
TMas1= array[1. . 100] of real;
TMas2= array[byte] of char;
TMas3= array[(Fam, Name, Otch) ] of string;
Массивті айнымалы ретінде сипаттағанда оның атынан кейін “ : ” белгісі қойылып, содан соң тип аты жазылады. Массивтерді сипаттаудың мысалы:
Var
Mas1: TMas1; Mas2: TMas2; Mas3: TMas3;
Тәжрибеде массив айнымалысының тікелей (типсіз) сипатталуы жиі пайдаланылады, мысалы:
Var
A: array[1. . 10] of real;
B: array[byte] of char;
D: array[(Fam, Name, Otch) ] of string;
Массив элементін пайдаланғанда оның атынан кейін тік жақшалардың ішінде индексі (индекс айнымалы, өрнек болуы да мүмкін) көрсетілуі тиіс:
Мысал. Элементтерін пернетақтадан енгізу арқылы бір өлшемді бүтін сандар массивін жасақтаңыз. Массивті экранға шығарып көрсетіңіз және оның ең үлкен элементі мен элементтерінің қосындысын табыңыз,
Program Prost_13;
const n=20;
var
i, max, sum: integer;
Mas: array[1. . n] of integer;
begin
for i:=1 to n do
begin Write(‘Mas[‘, i, ’] =‘) ; Readln(Mas[i] ) ; end; {Массивті
writeln; sum:=0; пернетақтадан енгізу}
for i:=1 to n do
begin
if (i=1) or (Mas[i] >max) then max:=Mas[i] ; {Үлкен элементті іздеу}
sum:=sum+Mas[i] ; {Қосынды есептеу}
write(Mas[i], ’ ‘) ; {Массивті экранға шығару}
end;
writeln; writeln(‘max=’, max, ’ sum=’, sum) ; {Экранға нәтиже шығару}
readln;
end.
Мысал. n берілген натурал сан. Алғашқы n жай сандар массивін жасақтаңыз. Массивті экранға шығарып көрсетіңіз.
Program Prost_14;
const n=1000;
var
i, j, k: word; p:boolean;
MG: array[1. . n] of word;
begin
MG[1] :=1; MG[2] :=2; MG[3] :=3; k:=3; {Алғашқы 3 жай санды енгізу}
for i:=4 to n do
Repeat
k:=k+2; j:=3; p:=true; {Кезекті k тақ санды алу}
Repeat
if k mod MG[j] =0 then p:= false;
j:=j+1;
until (p=false) or (j=i) ; ;
if p then MG[i] :=k; {Кезекті жай санды енгізу}
until p;
for i:=1 to n do
Write(MG[i], ’ ‘) ; {Массивті экранға шығару}
readln;
end.
Программа басында MG массивіне алғашқы 3 жай сан енгізіледі. Басында k=3 деп алып, одан үлкен тақ сандар ішінен келесі жай санды іздейміз. Ол үшін k-ны бұрын табылған жай сандарға (массив элементтеріне) бөліп тексереміз. Егер ешқайсысына бөлінбесе k-жай сан болғаны, әйпесе k:= k+2 деп алып тағы да қайталаймыз. Бұл процесс массивтің элементтер саны n болғанда аяқталуы тиіс.
Массив элементтерінің типі массив болса, оны екі өлшемді массив деп атайды. Осы процесті жалғастырып, үш немесе көп өлшемді массивтерді анықтауға болады. Үш өлшемді массивті сипаттаудың мысалы:
- VarM: array[1. . 10] of array[1. . 5] of array['a'. . 'd'] of byte;
Мұны қысқаша былай жазуға да болады:
- VarM: array[1. . 10, 1. . 5, 'a'. . 'd'] of byte;
Массив элементтері индексті айнымалылар болып табылады. Элементті көрсету үшін массивтің аты аталып, индекстері тік жақшалардың ішінде өз ретімен жазылуы тиіс. Соңғы мысалдағы М массивінің әрбір элементін екі тәсілмен көрсетуге болады:
M[4, 2, 'c'] не M[4] [2] ['c'] ;
Егер екі массивтің сипатталуы ортақ болса, онда біреуінің элементтерін бір меншіктеу операторы арқылы екіншісіне беруге болады. Мысалы:
Var
M1, M2: array[1. . 20] of real;
Begin
……. .
M1 := M2;
……. .
end.
Меншіктеу операторы орындалғанда екі массивтің элементтерінің мәндері бірдей болады. Ескеретін жағдай, массивтермен қатынас операцияларын орындауға болмайды. Сондықтан, екі массивті салыстыру қажет болғанда олардың сәйкес элементтерін салыстыруға тура келеді.
Массив - бір-бірімен қандай да бір ереже арқылы байланысқан және бірдей типті элементтердің шектеулі санын көрсететін берілгендердің құрылымды типі. Массивтің әрбір элементі өзінің индексімен анықталады. Массивтің сипаттамалары:
- аты;
- ондағы элементтердің номерлері;
- өлшемі (элементтердің саны) ;
- әрбір элементтің мәні.
Массивтердің бір өлшемді (векторлар) және екі өлшемді (матрицалар) деген түрлері бар. Бір өлшемді массивтің индексі ондағы элементтердің реттік номерін көрсетеді. Екі өлшемді массивте бірінші индекс - элемент тұрған жол номеріне, ал екінші индекс - баған номеріне сәйкес келеді. Келесі кестеде массив мысалдары мен сәйкес сипаттамалары келтірілген.
Х(4)
(массивте 4 элемент)
А(3, 3)
(массивте 9 элемент бар: 3 жол, 3 баған)
a 11 a 12 a 13
a 21 a 22 a 23
a 31 a 32 a 33

Программадағы басқа объектілер сияқты, массив те анықталуы қажет. Ол үшін Type - типтерді сипаттау бөлімінде массив өлшемі мен элементтердің типі беріледі. Содан соң Var бөлімінде құрылған массив типіне ат беріледі. Бір өлшемді және екі өлшемді массивтерді сипаттау мысалдары төмендегі кестеде көрсетілген:
Type - типтерді сипаттау бөлімінде:
Type T=array[1. . 4] of real;
Var a:T;
немесе
Var - айнымалыларды сипаттау бөлімінде:
Var a: array[1. . 4] of real;
Type - типтерді сипаттау бөлімінде:
Type P=array[1. . 5, 1. . 5] of integer;
Var x, y:P;
немесе
Var - айнымалыларды сипаттау бөлімінде:
Var x, y: array[1. . 5, 1. . 5] of integer;
2. 2. Массивті массивке енгізу
Массив элементтерін енгізу және шығару цикл операторлары арқылы бір-бір элементтен ұйымдастырылады.
Массив элементтерін енгізудің 3 тәсілі:
1. Элементтерді клавиатурадан енгізу
а) Бір өлшемді массив:
For i:=1 to n do
readln(a[i] ) ;
б) екі өлшемді массив
For i:=1 to n do
For j:=1 to m do
readln(a[i, j] ) ;
2. Массив элементтерін кездейсоқ сандармен толтыру
а) Бір өлшемді массив:
For i:=1 to n do
a[i] :=random(50) ;
б) екі өлшемді массив
For i:=1 to n do
For j:=1 to m do
a[i, j] :=random(50) ;
3. Массив элементтерін формула бойынша толтыру
а) Бір өлшемді массив:
For i:=1 to n do
a[i] :=sqr(i) ;
б) екі өлшемді массив
For i:=1 to n do
For j:=1 to m do
a[i, j] :=sqr(i) /j;
Элементтерінің саны, сәйкесінше, n 1 және n 2 болатын Mas1 және Mas2 сандар массивтері берілген. Mas1 массивіне оның берілген p (1≤p≤n 1 +1) позициясынан бастап Mas2 массивін енгізіп, жаңа Mas3 массивін жасақтаңыз (7. 2 суретті қараңыз) .
Алгоритмі:
- Mas1, Mas2 массивтерін толтыру және экранға шығару;
- Енгізу позициясын алу;
- Mas3 массивіне кіретін элементтерді анықтау:
- Mas1[1] . . Mas1[p-1] ;
- Mas2[1] . . Mas2[n2] ;
- Mas1[p] . . Mas1[n1] ;
- Mas3 массивін толтыру және экранға шығару:1 . . p-1 аралығында Mas3[i] := Mas1[i] ; p . . p+n2-1 аралығында Mas3[i] := Mas2[i-p+1] ; p+n2. . n1+n2аралығында Mas3[i] := Mas1[i-n2] ;
7. 2 сурет
Program Prost_33;
const n1=10; n2=5;
var i, p: integer;
Mas1: array[1. . n1] of integer;
Mas2: array[1. . n2] of integer;
Mas3: array[1. . n1+n2] of integer;
begin
Randomize;
for i:=1 to n1 do
begin Mas1[i] :=Random(30) ; Write(Mas1[i] :3) ; end;
writeln;
for i:=1 to n2 do
begin Mas2[i] :=Random(30) ; Write(Mas2[i] :3) ; end;
writeln;
Repeat
write(‘Қай позициядан бастап: ’) ;
Readln(p) ;
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz