Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
labor_dlph_kz.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
6.62 Mб
Скачать
  1. Массив элементтерін сұрыптау

Массив элементтерін белгілі бір ретпен орналастыру мақсатында орындалатын үрдісті сұрыптау деп атаймыз. Мысалы: бүтін сандардан құрастырылған а массив элементтерін өсу ретімен сұрыптау қажет болса a[1]<=a[2]<=…<=a[n] шарты орындалуы керек. n-массив элементтерінің индексі.

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

  1. тікелей таңдау әдісі;

  2. тікелей алмастыру әдісі.

  1. Таңдау әдісімен сұрыптау

Таңдау әдісімен сұрыптау алгоритмі:

1.массивтің бірінші элементінен бастап қарап, осылардан ең кіші элементін тауып алып оны біоінші элементтің орнына орналастырып, ал оның орнына бірінші орындағы элементті қою қажет;

  1. Массивтің екінші элементінен бастап қарап өтіп, олардың ішінен ең кішісін анықтап оны екіншінің орнына қойып, ал оны жаңағы кішінің орнына орналастыру қажет,

  2. Осы әдіспен соңғының алдына дейін орындап шығу керек.

  1. М ысал: 2.4 Бүтін сандардан құрастырылған массивтің он элементін өсу және кему ретімен сұрыптау қажет.

Бағдарлама мәтінінен үзінді:

...

var a:array[1..n] of integer; // массивті жариялау

min:integer; // ең кіші елементтің номері

j:integer; // кіші элементпен салыстырылатын элементтің номері

buf:integer; // массив элементін алмастыру барысында қолданылатын буфер

I,k:integer;

...

a[i]:=strtoint(stringGrid1.cells[i-1,0]); // массив элементтерін енгізу

label2.caption:='';

for i:=1 to n-1 do

begin min:=i; // a[1] – ден a[n] -ға дейін ең кіші элементті іздеу

for j:=i+1 to n do if a[j]<a[min] then min:=j;

// a[i] мен a[min] элементтерінің орнын буферді қолданып ауыстыру

buf:=a[i];

a[i]:=a[min]; a[min]:=buf;

// сұрыпталған массив

for k:=1 to n do

label2.caption:=label2.Caption+' '+inttostr(a[k]);

label2.caption:=label2.Caption+#13; end;

label2.Caption:=label2.Caption+#13+'массив отсортирован';end;end.

Зертханалық жұмыс № 6

Жұмыстың тақырыбы: Екі өлшемді массив элементтерін өңдеу.

Жұмыс мақсаты: Delphi ортасында матрица (екі өлшемді массив) элеметтерін анықтау, енгізу, шығару әдістерін меңгеріп, бағдарлама құрастыру.

Орындалу уақыты: 4 сағат.

1 Зертханалық жұмыстың жүру тәртібі:

    1. Зертхана жұмысының тақырыбына сәйкес теориялық материалдарды меңгеру

    2. Төменде келтірілген бақылау сұрақтарына жауап беру қажет:

  1. Бағдарламаның келесі үзіндісінде s[i] айнымалысында қандай шама анықталады:

for i:=1 to 10 do begin

for j:=1 to 10 do s[i]:=s[i]+a[i,j]; s[i]:=0; end;

  1. S массиві нөлге теңеседі;

  2. А матрицасының баған элементтерінің қосындысы есептеледі;

  3. А матрицасының элементтерінің қосындысы есептеледі;

  4. А матрицасының басты диагональ элементтерінің қосындысы есептеледі;

  5. S массивінің элементтер саны анықталады.

2. S айнымаласының қайсы шамасы анықталады: s:=0; for j:=1 to 10 do s:=s+a[i,j];

  1. А матрицасының i –ші жол элементтерінің қосындысы есептеледі;

  2. А матрицасының j –ші баған элементтерінің қосындысы есептеледі;

  3. А матрицасының басты диагональ элементтерінің қосындысы есептеледі;

  4. А матрицасының элементтерінің саны анықталады;

  5. А матрицасының әрбір жол элементтерінің қосындысы есептеледі

  1. 3. Массив элементі 5 символдық типті жолдан құрастырылған, әрбір жолда 10 таңба бар. Массивтің дұрыс сипатын анықта.

  1. a:array[1..5,1..10] of char

  2. a:div(1..10,1..5) of real

  3. a:array[1..5] of char

  4. a:real(1..5) of real

  5. a:div{1..5,1..10} of integer

4. Ішкі циклді ұйымдастырудың негізгі ережелерін түсіндір.

5. Матрица элементтерін шығару тәсілдерін түсіндір.

6. Матрицаның төменгі үшбұрыштағы элементтерін шығару амалдары.

7. N*M өлшемді матрица элементтерін енгізу тәсілдері.

8. Дұрыс жазылған бағдарлама фрагментін анықта

  1. Y:=0; FOR X:=0.1 TO 0.9 DO Y:=Y+SIN(X);

  2. K:=9; FOR X:=1 TO SQRT(K) DO K:=K*3;

  3. K:=4; FOR X:=16 DOWNTO 1 DO K:=K*3;

  4. K:=0; FOR I:=1 TO 9 DO BEGIN I:=2*I; K:=K*I END;

  5. K:=4; FOR I:=SQR(K) TO 1 DO K:=K*3; A:=K+I;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]