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

Writeln

End;

Бұл жағдайдағы бос оператор writeln курсорды келесі жолға ауыстыру үшін қолданылады.

Мұндай циклдар бірінің ішіне бірі салынған деп аталады. Ішіне салынған циклды ішкі, ал оның сыртында тұрған циклды сыртқы цикл деп атайды. Бұл циклдарды ұйымдастыру ережесі жай циклдардағыдай. Бірінің ішіне бірі салынған циклдардың саны екіден көп болуы мүмкін. Ішкі және сыртқы циклдың параметрлері бір-бірінен бөлек болуы керек, егер де сыртқы циклдың әрбір белгіленген параметріне, ішкі циклдың параметрлері барлық мәндерін жеке-жеке қабылдайды.

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

Алгоритм дұрыс құрастырылуы үшін, екі өлшемді массив элементтері индекстерінің арасындағы байланысты дұрыс көрсету қажет. (4.2- кесте)

4.2- кесте. Массив элементтері индекстерінің арасындағы байланыс

Массивтегі элементтердің орналасуы

(i) жол мен (j) баған индекстерінің арасындағы байланыс

Элементтерді реттеу үшін циклді ұйымдастыру мысалы

бас

диагонал

i = j

S:=0;

For i:=1 to n do S:=S+a[i i];

бүйір диагонал

(n – матрица реті)

i + j = n + 1

P:=1;

For i:=1 to n do P:=P*a[i, n+1-i];

бас диагоналдан жоғары

i < j

k:=0;

For i:=1 to n do

For j:=1 to n do

If i<j {немесе i>j} then k:=k+1;

бас диагоналдан төмен

i > j

Егер массивті өңдеу жол бойынша жүргізілсе, онда сыртқы цикл і-ге байланысты, ал сыртқы цикл j байланысты ұйымдастырылады, және, керісінше, екі өлшемді массивті өңдеу баған бойынша жүргізілсе сыртқы цикл j-ге байланысты, ал ішкі цикл I-ге байланысты болады. Егер жұмыс жол мен баған элементтерімен жүргізілсе, онда бірінің ішіне бірі салынған циклдарды ашу немесе жабу операторларының арасында жолмен немесе бағанмен әрекет ететін әдетте бір оператор болады.

4.2 Массивті өңдеу бағдарламасы мен алгоритміне мысал

4.2.1 А(10) элементтерінің орташа арифметикасын табу.

Е септің блок-сызбасы мен бағдарламасы 4.1- суретте көрсетілген.

Program primer4_1;

type T = array [1..5] of real;

var A:T; S, SA:real;

i, K: integer;

begin

for i := 1 to 10 do

read (a[i]);

S:=0; K:=0;

for i := 1 to 10 do

if a[i] > 0 then

begin

S:=S + a[i]; K:=K+1

end;

SA=S/K;

writeln (’SA=’, SA:10:2)

end.

4.1-сурет. Бір өлшемді массивті өңдеу мысалы

      1. 4.2.2 х(5) векторының ең үлкен мәнін және оның рет нөмірін табу.

4.2 - суретте алгоритмнің блок-сұлбасы, бағдарлама мен жалпы бақылау көрсетілген. Вектордың ең үлкен элементін табу алгоритмі төмендегідей болады:

- массив элементіне қатысты өте кіші кейбір аралық мәндердің берілуі (ең кіші және өте үлкен мәнді табу үшін);

-енгізілген айнымалыны массивтің кезекті элементінің мәнімен салыстыратын шартты оператор қатысқан циклді ұйымдастыру;

-егер элемент айнымалыдан үлкен болса, онда оған осы элементтің мәні қойылады;

- ең үлкен мәнді есте сақтау кезінде қажет болса оның нөмірін де есте сақтауға болады;

- циклдан шыққан кездегі айнымалының соңғы мәні ең үлкен болып есептеледі.

program primer4_2;

type T = array [1..5] of real;

var X:T; max:real;

i, n: integer;

begin

for i :=1 to 5 do

begin

write (’введи x (’, i:2,’)’);

readln (x[i])

end;

max := x[1]; n := 1;

for i :=2 to 5 do

if x[i]>max then

begin

max := x[i]; n := i

end;

writeln(’Наибольший элемент-’, max);

writeln (’его номер-’, n)

end.

Жалпы бақылау

Алгоритмі max:=3; n:=1 болатын Х(3, 7, -4, 8, 2) массиві енгізілді делік;

i=2 x(2) > max 7 > 3 иә max = x(2) = 7; n = i = 2

i=3 x(3) > max -4 > 7 жоқ max = x(2) = 7; n = i = 2

i=4 x(4) > max 8 > 7 иә max = x(4) = 8; n = i = 4

i=5 x(5) > max 2 > 8 жоқ max = x(4) = 8; n = i = 4

цикл аяқталған соң алынатын мәндердің нәтижесі max=8 и n=4

4.2- сурет. Бір өлшемді массивте ең үлкен элементті табу