Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоитмдеу_зертханалык.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.38 Mб
Скачать

Бақылау сұрақтары

1. Массив дегенiмiз не, массивтiн қандай түрлерi бар?

2. Turbo Pascal бағдарламалау тiлiнде массивтi қалай ұйымдастыруға болады?

3. Бағдарламалауда массивтердi енгізу шығару қалай орындалады?

4 .Массивтердi сипаттаудын қандай ерекшелiктерi бар?

5. Массив типiне қандай типтердi қолдануға болады?

6. Массив элементтерiн қалай енгiзуге болады?

7. Массив элементтерiн қалай баспаға шығаруға болады?

8. Массивке тұрақтыларды қолдануға бола ма?

9. Массивтiн мәндерiнiң өзгеруiн қадам бойынша қалай тексеруге болады?

7 - зертханалық жұмыс

Екі өлшемді массивтермен жұмысты ұйымдастыру

Жұмыстың мақсаты: екі өлшемді массивтермен жұмыс істеуде дағды қалыптастыру, массив индекстерін дұрыс қолдана отырып бағдарламалауды үйрену

Жұмыстың орындалу тәртібі

1. Теориялық мәліметтермен танысу.

2. Жеке нұсқадағы тапсырмаларды орындау.

3. Бақылау сұрақтарына жауап беру.

4. Орындаған жұмыс туралы жазбаша есеп беру.

Теориялық бөлім

Екі өлшемді массивтің бір өлшемді массивтен айырмашылығы айнымалылар қатар және бағана бойынша орналасады. Екі өлшемді массивтерде жол мен бағананың қиылысуында орналасқан әрбір элементтің орны сол жол мен бағана нөмірімен анықталады. Сондықтан екі өлшемді массивті сипаттау үшін екі индекс қолданылады. Екі индекстің арасы үтір арқылы бөлініп жазылады.

Екі өлшемді массивті сипаттаудың жалпы жазылу түрі:

Массивтің аты: аrray[1..n,1..m] of массив элементтерінің типі; Мұндағы, n - массивтің қатар саны, m - массивтің бағана саны. Екi өлшемдi массивтi VAR бөлiмiнде сипаттаудың жалпы түрi:

Var массив атауы : array [а1..Аn,b1..Bn] of элемент типі;

Екi өлшемдi массивтi TYPE бөлiмiнде сипаттаудың жалпы түрi:

TYPE массив типінің атауы = ARRAY [а1..аn, b1..bn] OF элемент типі;

Массивтің айнымалылар бөлімінде сипатталуын келесі түрде жазылады:

Var массив атауы : массив типінің атауы;

мұндағы, а1..аn, b1..bn – екi өлшемдi массивтiн көлемi, а1 және аn – массив қатарының алғашқы және соңғы мәнi, b1 және bn – массив бағанының алғашқы және соңғы мәнi. Екі өлшемді массивтерді енгізу және шығару төмендегідей орындалады. A[N,N] массивін енгізу, мұнда N- тұрақты деп қарастырайық.

for i:=1 to n do

for j:=1 to n do

read (a[i,j]);

{ a[n,n] массивін шығару }

for i:=1 to n do

begin

for j:=1 to n do

write (a[i,j]:4);

writeln;

end.

Жұмысты орындау үлгісі

1) A(2,3) массиві берілген. Осы массивтің элементтерін енгізетін және теріс элементтерін 1-ге айналдыратын бағдарлама құру. Нәтижесінде экранға нәтижеге шыққан массив шығуы керек.

Program prim1;

Var i,j:integer;

A:array[1..2,1..3] of real;

Begin

for i:=1 to 2 do

begin

for j:=1 to 3 do

Readln(a[i,j]);

end;

for i:=1 to 2 do

begin

for j:=1 to 3 do

begin

If a[i,j]<0 Then a[i,j]:=1;

Writeln(a[i,j]);

end;

end;

Readln;

End.

Мұндағы, i-сыртқы цикл, j-ішкі цикл болып саналады. for i:=1 to 2 do, for j:=1 to 3 do операторларынан кейін операторлық жақшаны ашылу себебі, бұл оператордан кейінгі орындалатын амалдар сыртқы циклға бағынышты (осы циклдың ішінде орындалады). Егер де циклдық оператордан кейін бірнеше амалдар орындалса, онда ол амалдар операторлық жақшаларға алынып жазылады және олар циклдың денесі болып табылады.

Бағдарламаны жібергенде экранда курсор пайда болады. Екі өлшемді массивтің элементтері қатар бойынша енгізіледі.

7.1-сурет. Элементтерді енгізу

7.2-сурет. Бағдарлама нәтижесі

Элементтерді енгізуге түсініктеме жазу үшін:

For i:=1 to 2 do

begin

For j:=1 to 3 do

Begin

write („massiv elem-n engiz=‟)

Readln(a[i,j]);

end;

end;

7.3-сурет. Элементтерді енгізу

7.4-сурет. Бағдарлама нәтижесі

2) Квадрат массив берілген (қатар және бағана саны тең). Осы массивтің әрбір бағанасында орналасқан элементтерінің қосындысын табатын және осы қосындыны К бір өлшемді массивінің элементтері ретінде алатын бағдарлама құру. Нәтижесінде, берілген массив элементтері қатар және бағана бойынша орналасып шығуы және К массиві шығуы керек.

Program prim2;

Var i,j:integer;

S:real;

d:array[1..3,1..3] of real;

k:array[1..3] of real;

Begin

For i:=1 to 3 do

begin

For j:=1 to 3 do

Readln(d[i,j]);

end;

For j:=1 to 3 do

Begin

S:=0;

For i:=1 to 3 do

begin

s:=s+d[i,j];

k[j]:=s;

end; end;

For i:=1 to 3 do

Begin

For j:=1 to 3 do

begin

write(d[i,j]:3:0);

end;

writeln;

end;

writeln;

For j:=1 to 3 do

Writeln(k[j]:3:0);

Readln;

End.