Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структура УМКД.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
252 Кб
Скачать
☆

3 Зертханалық сабақтар Зертханалық жұмыс №1

Тақырыбы: Сызықты байланысқан мәліметтер құрылымдарын ұйымдастыру және олармен жүргізілетін амалдар.

Жалпы мәлімет

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

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

Есепті шешу этаптары:

  1. Бұл есепті шешудің алгоритмдерінің біреуінің мәні массивті жол бойынша қарап, әрбір жолда (0:сан) жұбын тауып, содан кейін олардың өзара орынын ауыстырып, осылайша жолда мұндай жұптар қалмағанға дейін жалғастыруда.

  2. Программаның паскальда жазылуы:

  3. program маs_1;

var

V: array[1..100,1..100] of integer;

m,n, i,j, c: integer;

flag: boolean;

begin

<массив өлшемін енгізу m*n>

<массив ұяшықтарын толтыру>

for i:=1 to m do

repeat

flag:= true;

for j:=1 to n-1 do

if (v[i,j]=0) and (v[i,j+1]<>0) then begin

<олардың орынын ауыстыру>

flag:= false;

end;

until flag;

<массивты басып шығару>

readln;

end.

4. Алгоритмнің блок-схемасы

Бірінші жолды реттейміз:

Блок-схеманың алгоритмы бүтіндей:

5. Паскальдағы программа:

program mas_1;

var

V:array[1..100,1..100] of integer;

m,n, i,j, c: integer;

flag: boolean;

begin

write('Массив өлшемін енгіз m-n> '); readln(m,n);

for i:= 1 to m do

for j:= 1 to n do begin

write('V[',i,',',j,']= '); readln(V[i,j]);

end;

for i:=1 to m do

repeat

flag:= true;

for j:=1 to n-1 do

if (v[i,j]=0) and (v[i,j+1]<>0) then begin

c:=v[i,j]; v[i,j]:=v[i,j+1]; v[i,j+1]:=c;

flag:= false;

end;

until flag;

for i:= 1 to m do begin

for j:= 1 to n do write(V[i,j]:2);

writeln

end;

readln;

end.

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

  1. Массив типті айнымалылар қалай анықталады?

  2. Бір өлшемді, екі өлщемді массивтің жекелеген элементіне кіру қалай жүзеге асырылады?

  3. Массивтың элементтері экранға қалай шығарылады?

  4. Екі өлшемді массивты экранға матрица түрінде шығаратын программа фрагментін келтір.

  5. X : Array[0..1, 0..1, 0..1, 0..1, 0..1, 0..1] of Integer алты өлшемді массивына неше сан жазуға болады?

Тапсырмалар:

  1. а1,а2,а3 бұтін сандары берілген. Бүтін санды [bij]i,j=1,2,3 матрицасын алу керек, мұнда bij=ai-3aj.

  2. [aij]i=1,…10; j=1,…12 – бүтін санды матрицасын алу керек, aij=i+2j.

  3. N өлшемді квадрат матрица берілген. Бас диагональдан жоғары, төмен орналасқан нольдік элементтер санын тап.

  4. n * m өлшемді матрица берілген. b векторын алу керек, онда элементтер былай есептеледі: - сәйкес жолдардың элементтерінің көбейтіндісі; - сәйкес бағандардың арифметикалық ортасы; сәйкес жолдардың ең үлкен және ең кіші элементтерінің айырмасы; - бағандағы алғашқы теріс элементтердің мәндері.

  5. A[1..m,1..n] екі өлшемді массив берілген. Элементтері тең болатын B[1..m] бір өлшемді массивын жасау: - жолдардың элементтер қосындысына; - жолдардың элементтер көбейтіндісіне; - жолдардың элементтерінің арифметикалық орталарынына.

  6. Берілген массивте жұп орында тұрған элементтерді тақ орында тұрған элементермен орынын ауыстыру.

  7. Берілген массивтің элементтерін кері ретпен орналастыр (бірінші элементті соңғымен, екіншісін оның алдыңғысымен, т.с.с., егер, массив элементтерінің саны тақ болса, ортаңғысы өзгеріссіз қалады).