Цель работы: Приобрести навыки обработки



бет1/2
Дата15.10.2022
өлшемі174,5 Kb.
#43232
түріРеферат
  1   2

Қазақстан Республикасының Білім және ғылым министрлігі
Алматы техналогиялық университеті


Реферат


Екі өлшемді массивтерді өңдеу
Орындаған: Қырықбай Қарлығаш
Тексерген:
Алматы 2022

Кіріспе

Негізгі бөлім


Екі өлшемді массивтер


Матрицаның бейсик тіліндегі сипаттамасы


Матрицаның паскаль тіліндегі сипаттамасы


Квадрат матрицада индекстердің арақатынасы
Қолданылған әдебиеттер тізімі

Кіріспе



Массив деген ұғыммен ғылыми-техникалық және экономикалық мәселелерді шешу барысында кездесеміз. Себебі біз мұндай жағдайда көп көлемдіесептеулер мен цифрлармен жұмыс істеуге мәжбүр боламыз.
Массив - бұл жалпы атпен біріккен және компьютердің жадында белгілі бір орынды алатын бір типтітэлементтердің жиынтығы болып келеді. Массивтегі элементтер саны әрдайым шектеулі болады.
Жалпы алғанда массив бұл -мәліметтердің құрылымдық жиыны, ол шектелген сан элементтерден тұрады және олардың бәрі бір типті элементтер болады. Массивтерді біз жүйелі тип атауымыздың себебі массивтер өзіне біртиптік (логикалық) элементтерді жиғаны, олар индекстері бойынша сұрыпталған, индекс - әр элементтің массивтің ішіндегі өз орнын белгілейтін айнымалы.
Массивтің элементі ретінде кез келген типті қолдануға болады, сондықтан да массивтер өз жазылымдар түрінде (record), белгілер ретінде (labels), өзі массивтері (arrays) ретінде де қолдана алады. массивтер элементтерінің типі - базалық деп аталады. Паскаль тілінің басқа программалау тілдерден айырмашылығы болып массивтер жарияланған кезде элементтерінің саны шектеулі болуы, және программаның орындалуы барысында өзгермеуі саналады. Массивті құрайтын элементтер өзіне тән белгілі бір орын тәртібімен (индексі) орналасады. Әр элементтің мәнін жадыдан алу үшін массивті алдын ала индекстеу керек. индекс тек скалярлы тип (көбінесе бүтін - integer) бола алатын аралықтан алына алады, оны, мысалы, нақты типке (real) меншіктеуге болмайды. Индекстің типі индекстің мәндерінің өзгеру шекарасын анықтайды. Массивті жариялау үшін array of қызметші сөздері қолданылады.
Массив бұл бір атаумен (массив идентификаторы) белгіленіп біріктірілген біртекті элементтер жиыны. Массивтердің негізгі парамтерлрі:

  • типі – массив элементтерінің жалпы типі (санды, символдық);

  • өлшемі – бірөлшемді, екіөлшемді;

  • көлемі – массив индекстерінің саны.

Нақты сандардан құрылған төмендегі тізбекті


1.2 14.6 -8.3 0.15 -9.85 7 5
бірөлшемді массив деп, оған А деген атау беруге болады.
Массивтерді өңдеу процесінде оның әр мүшесіне тура қатынас жасау үшін оны индекстеу (нөмірлеу) қажеттіліг туындайды.



Индекстер

1

2

3

4

5

6

7

Массив элементтері

1.2

14.6

-8.3

0.15

-9.85

7

5

Массивтің әр элементі массив атымен белгіленеді де, тік жақша ішіне оның индексі қойылады, яғни массив элементтері индекс бойынша реттеліп жазылады. Сондықтан оларды индекстелген айнымалылар дейді.


Екі өлшемді массивтер


Екі өлшемді массив деп - элементі массивтің жол мен бағанында тұрған орнына тәуелді болатын массив. Жалпы түрде матрицаның элементтері былай белгіленеді А(i,j), мұндағы А массивтің аты, i - жолдың индексі (нөмері), j - бағанның индексі (нөмері).
Матрицаның бейсик тіліндегі сипаттамасы
DIM A(i,j) - матрицаны (екі өлшемді массив массив) сипаттау - бұл ЭЕМ-нің жадында матрицаның элементтері үшін бос орын бөлу. ЭЕМ-нің жадында элементтер жолдармен орналасады, сондықтан да жолдың индексі бағаннан гөрі аздап баяу өзгереді. Тік бұрышты матрица деп жол саны баған санына тең болмайтын матрица. квадратты матрица деп жол саны баған санына тең матрица.
Матрицаның паскаль тіліндегі сипатта матрицаны екі түрлі тәсілмен жазуға болады:

  1. <матрицаның аты>: array[жол саны] of array[баған саны] of <айнымалының типі>;

  2. <матрицаның аты>: array[<жол саны>, <баған саны>] of <айнымалының типі>.

Квадрат матрицада индекстердің ара қатынасы
i=j - матрицаның элементтері бас диагональ бойында орналасқан.
ii>j - элементтер бас диагональдың астында орналасқан.
1+j=N+1- элементтер қосалқы диагональ бойында орналасқан.
1+j1+j>N+1 - элементтер қосалқы диагональдың астында орналасқан.
Егер жиым атауында бір ғана индекс болса, онда ол жиымды бірөлшемді, ал екі индекс болса – екіөлшемді және т.с.с. п индекс болса, п-өлшемді масив дейді. Бірөлшемді массив вектор, ал екіөлшемді массив матрица болып табылады.
Осы айтылғандарға сәйкес массив элементтері былай белгіленеді: A[i], B[i,j], C[i, j, k] және т.с.с. Мұндағы A[i] – бірөлшемді массивтің і-ші элементі, B[i,j] – екіөлшемді массивтің і-жолы мен j-бағанының қиылысында орналасқан элементінің белгіленуі, ал C[i, j, k] үшөлшемді массив, оның элементін кеңістікте орналасқан нүкте координаталары (i,j,k) деп қарауға болады.
Паскальда екіөлшемді массивтерді сипаттаудың көптеген әдістері бар. Төменде келтірілген мысалда 2*3 (2 жол, 2 баған) мөлшерлі екіөлшемді массивті сипаттай көрсетілген:
Бірінші әдіс:
Type
Stroka = array [1..3] of real;
Matr = array [1..2] of stroka;
Var
V: stroka;
A: matr ;
Екінші әдіс:
Type
Matr= array [1..2] of array [1..3] of real;
Var
A: matr;
Үшінші әдіс:
Type
Matr = array [1..2,1..3] of real;
Var
A: matr;
Төртінші әдіс:
Var
A: array [1..2,1..3] of real;

Паскальда массив элементінің индекс (нөмір) типі тек қана бүтін сан болу шарт емес. Индекс типі ретінде реттік типті қолдануға болады, мысалы:


Type
Fam =(Ahmetov, Sagiev, Masanov);
Var
Ball: array [fam] of real;
Бұл жазба үш элементтен тұратын нақты типті массивті береді, бірақ массив элементтерінің реттік «нөмірі» реттік типті айнымалылар болып табылады - Ahmetov, Sagiev, Masanov.
Массив элементтері компьютер жадында тізбектеле орналасады. Екіөлшемді массивтердің оң жақ шеткі индекстері бірінші болып өсіп отырады.
Мысал__2'>Мысал__1'>Мысалы: 2*2 элементтерден тұратын екіөлшемді массив берілген:

Массив элементтері:


2 3
4 5
Элементтердің индекстері:
A[1,1] = 2
A[1,2] = 3
A[2,1] = 4
A[2,2] = 5

Төмендегі программада А(3*4) массивінің элеменеттерін енгізуді және шығаруды ұйымдастырылған. Екіөлшемді массивті енгізу үшін екі параметрлі цикл қолданылады, бірі – жолдар үшін, екіншісі – бағандар үшін; алдымен массивтің 1-ші жолы енгізіледі, одан кейін 2-ші жолы және т.с.с.


Элементтер жолдар бойынша енгізіледі:
Var
A: array[1..3,1..4] of real;
i, j: integer;
Begin
For i:=1 to 3 do
For j:=1 to 4 do
Read(A[i,j]);
For i:=1 to 3 do
Begin
For j:=1 to 4 do
Write(A[i,j]);
Writeln;
End
End.

Массивтерді қолданып, бірнеше мысалдарды қарастырайық.


Мысал 1: 50 элементтен тұратын А,В,С бірөлшемді массивтер берілген. Массивтер элементтерінің орташа мәнін есептеп, нәтижені D массиві түрінде алу.
Const
NM=50;
Var
I: integer;
A,B,C,D: array [1..NM] of real;
Begin
For i:=1 to NM do
Begin
Read(A[I],B[I],C[I]);
D[I]:= (A[I]+B[i]+C[I])/3;
Write (D[I])
End
End.
Мысал 2: А(54) массивінің максималды элементінің орнына +1 санын, ал минималды элементтің орнына –1 санын жазу керек.
Program Maxmin;
Var A: array[1..5,1..4] of real;
N,M,N1,M1,I,J : integer;
Min, Max: real;
Begin
For i:=1 to5 do
For j:=1 to 4 do
Read (A[i,j]);
Max:=A[1,1]; Min:=A[1,1];
N:=1; M:=1;
N1:=1; M1:=1;
For i:=1 to 5 do
For j:=1 to 4 do
Begin
If A[i,j]>max then
Begin
Max:=A[i,j];
N:=i; M:=j
End;
If A[i,j]
Begin
Min:=A[i.j];
N1:=i; M1:=j
End
End;
A[N,M]:=1;
A[N1,M1]:=-1;
Writeln(A[N,M],A[N1,M1])
End.
Бұл мысалды тереңірек қарастырайық. Алдымен массив элементтері енгізіледі. Максималды және минималды элементтерді іздеуге арналған қосымша max және min айнымалыларының бастапқы мәндері беріледі. N және M айнымалылары максималды және минималды элементтерінің индекстерін сақтау үшін арналған, себебі программаның соңында олардың көмегімен массивтің ең үлкен және ең кіші элементтері -1 және +1-ге ауыстырылады.


Мысал 3: А(55) матрицасының басты диагоналіндағы элементтерді өсу бойынша сұрыптау.
Бастапқы матрица Нәтижелік матрица

4

5

6

5

4













0

5

6

5

4

1

2

3

5

1













1

2

3

5

1

2

3

5

2

3













2

3

4

2

3

5

1

2

5

3













5

1

2

5

3

1

2

0

2

0













1

2

0

2

5



Program YP;
Var
A: array [1..5,1..5] of real ;
S : real ;
I, j : integer ;
Begin


Достарыңызбен бөлісу:
  1   2




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет