Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодАлгКП.doc
Скачиваний:
109
Добавлен:
18.02.2016
Размер:
2.27 Mб
Скачать

Практикалық жұмыс №8

Тақырыбы: Қайталау операторының көмегімен екі өлшемді массивтерді программалау

Жұмыс мақсаты Паскал тілінде бір өлшемді массивтермен жұмыс істеу принципін меңгерту.

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

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

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

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

  4. Орындалған жұмыс туралы жазбаша есеп беру. Есепте жұмыс тақырыбы, мақсаты, тапсырманың математикалық үлгісі, алгоритмнің блок – схемасы, листингі болуы қажет.

8.1 Негізгі түсініктер

Екі өлшемді массив (матрица).

Массив бір өлшемді (сызықтық), екі өлшемді (матрица), жалпы алғанда n өлшемді болады. n жолдан, m бағаннан тұратын екі өлшемді массив былайша сипаттайды:

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

Матрица элементтерін енгізу циклінің жалпы түрі:

for i:=1 to n do begin

for j:=1 to m do

read (a [i, j]); readln;end;

Матрица элементтерінің қалпын сақтап экранға шығару циклінің жазуының үлгісі:

for i:=1 to n do

begin

for j:=1 to m do

write (a [i, j]); writeln;

end;

1-мысал . Матрицаның жұп және тақ элементтерінің санын табыңдар.

Program Matrix1;

Const n=3; m=2;

Var a: array [1..3, 1..2] of integer;

i, K, L: integer; k-жұп, l-тақ элемент саны

begin

for i:=1 to n do

for j:=1 to m do

begin

read (a[i, j ]);

if (a[i, j ]) mod 2=0 then K:=K+1 else L:=L+1;

end;

writeln ('жұп элемент саны=', K, 'тақ элемент саны=', L)

end.

2-мысал. Кездейсоқ бүтін сандармен толтырылған Х(3х4) матрицаның жолдарындағы элементтердің қосындысын табыңдар.

Program Matrix2;

Var X: array [1..3, 1..4] of integer;

i, j, a, b, S: integer;

begin

writeln (' сандар аралығын енгіз'); read (a, b);

randomize;

for i:=1 to 3 do

for j:=1 to 4 do

x[i, j]:=random (b-a) +a;

for i:=1 to 3 do

begin

S:=0;

for i:=1 to 4 do

S:=S+X [i, j];

writeln ('S[',i,']=', S);

end

end.

i=j шарты квадрат матрицаның негізгі диагональ элементтерінің, i+j =4 жетекші диагональ элементтерінің шарты. (жалпы жағдайда i+j =n+1, мұндағы n- квадрат матрицаның жолдарының ( немесе баған) саны.)

3-мысал. Квадрат матрицаның (жол және баған сандары тең матрица) негізгі диагоналындағы теріс элементердің көбейтіндісін және қосалкы диагналындағы тақ элементердің санын табындар.

Program Matrix3;

Var a: array [1..3, 1..3] of integer;

i, j, p, k: integer;

begin

for i: = l to 3 do

for j: = l to 3 do

readln (a[i, j ]);

P:=1;

for i:=1 to 3 do

for j: = l to 3 do

begin

if (i=j) and (a [i, j]<0) then P:=P*a[i, j];

if (i+j=4) and (a [i, j] mod 2=1) then k:=k+1;

end;

writeln (‘P=’, P, ‘k=’, k);

end.

4-мысал. A (N x N) квадрат матрицаны транспонирлеу программасын жазындар. (Транспонирлеу – матрица жолдарын бағандармен және керісінше алмастыру.)

Мысалы: А матрицасы 1 2 3 болса, оған транспонирленген матрица

4 5 6

7 8 9

1 4 7

түрінде болады.

2 5 8

3 6 9

Program Matrix4;

const m =3; n=3;

var A, B:array [1..n, 1..m] of integer;

i, j: integer;

begin

for i:=1 to n do begin

for j: = l to m do

read (A [i, j]); readln; end;

for i: =1 to n do

for j: = l to m do

B [i, j]: = A [j, i];

for i:=1 to n do begin

for j: = l to m do

write (B [i, j]); writeln; end;

end.

ЖЕКЕ ТАПСЫРМАЛАР НҰСҚАЛАРЫ

  1. Матрицаның үшінші бағанында ең үлкен элементті табу керек.

  2. Матрица элементінің барлық суммасын табу керек.

  3. Матрицаның оң элементтерінің барлық санын табу керек.

  4. Матрицаның бірінші жолында ең кіші элементті табу керек.

  5. Екінші бағанадағы матрица элементінің арифметикалық орташа мәнін табу керек.

  6. Матрица жолының бірінші және үшінші элементінің суммасын табу керек.

  7. Матрицаның барлық элементінде 5 саны неше рет кездесетінін анықтау керек.

  8. Матрицаның үшінші жолында 1 саны неше рет кездесетінін анықтау керек.

  9. Матрицада теріс элементтер саны қанша екенін табу керек.

  10. Матрицаның бірінші жолындағы теріс элементтер саны қанша екенін анықтау керек.

  11. Матрицаның екінші бағанында теріс емес элементтер санын табу керек.

  12. Матрицаның екінші жолындағы элементтер суммасын табу керек.

  13. Матрицада ең үлкен элементті табу керек.

  14. Матрицада ең кіші элементті табу керек.

  15. Модуль бойынша матрицаның бірінші жолындағы ең кіші элементті табу керек.

  16. Теріс матрица элементінің барлық орташа арифметикалық мәнін табу керек.

  17. Анықтау керек, матрица элементінің нешеуі 2 саннан асып түседі.

  18. Барлық матрица элементтерін өсу кезегі бойынша кезекті жолға орнықтыру керек.

  19. Барлық матрица элементтерін кему кезегі бойынша кезекті жолға орнықтыру керек.

  20. Спорттың мұзда мәнерлеп сырғанау түрінен 5 спортшының 3 төреші бағалаған нәтиже көрсеткіші берілген (ұпай саны 0-ден 6-ға дейін ). Бастапқы 3 жүлделі орынды алған спортшылар көрсеткішін табыңдар.

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

  1. Екі өлшемді жиымды енгізу және шығару қалай жүзеге асады?

  2. Квадрат матрица деген не? Квадрат матрицаның негізгі және қосалқы диагональ элементтерінің шарты қандай?

  3. Матрицаны транспонирлеу деген не және ол қалай жүзеге асырылады?

  4. Екі өлшемді массив матрицасына анықтама келтір.

  5. Матрица индексі дегеніміз не?

  6. Жеті жол тоғыз баған матрицасында неше элемент бар?

  7. Квадраттық матрицаға түсініктеме беріңіз, квадраттық матрицаның диагоналы.

Ұсынылатын әдебиеттер: 1, 4, 8