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

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

7.3-кесте

Типтік алгоритм

Бейсик тілінде

Паскаль тілінде

Әр бағандағы элементтердің қосындысы

for j=1 to m

for i=1 to n

s(j)=s(j)+x(i,j)

next i

next j

for j=1 to m

print s(j)

next

for j:=1 to m do

s[j]:=0;

for j:=1 to m do

for i:=1 to n do

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

for j:=1 to m do

write (s[j]);

Әр бағандағы элементтердің көбейтіндісі

for j=1 to m

p(j)=1

next

for j=1 to m

for i=1 to n

p(j)=p(j)*x(i,j)

next i

next j

for j=1 to m

print p(j)

next

for j:=1 to m do

p[j]:=1;

for j:=1 to m do

for i:=1 to n do

p[j]:=p[j]*x[i,j];

for j:=1 to m do

write (p[j]);

Әр бағандағы максимум (минимум) элемент

for j= 1 to m

max(j)=x(i,1)

next

for j=1 to m

for i=1 to n

if x(i,j)>max(j) then max(j)=x(i,j)

next i,j

for j=1 to m

print max(j);" ";

next

print

for j=1 to m

print min(j);" ";

next

for j:= 1 to m do

begin

max[j]:=x[i,1];

min[j]:=x[i,1]; end;

for j:=1 to m do

for i:=1 to n do

begin

if x[i,j]>max[j] then max[j]:=x[i,j]

if x[i,j]<min[j] then min[j]:=x[i,j] end;

for j:=1 to m do

write (max[j]);

writeln;

for j:=1 to m do

write (min[j]);

Әр бағандағы шарт бойынша таңдау (іздеу)

for j=1 to m

for i=1 to n

if {усл.} then {rez(i)=…}

next i

next j

for j=1 to m

print rez(j);" ";

next

for j:= 1 to m do

rez[j]:=0;

for j:=1 to m do

for i:=1 to n do

if {усл.} then {rez[i]:=…};

for j:=1 to m do

write (rez[j]);

Екі өлшемді массивтерді диагоналдарға қатысты өңдеу алгоритмдері

Е гер екі өлшемді массивте қатарлар мен бағандар саны бірдей болса, оны квадрат массив деп атайды. Квадрат массивтерге арналған тиіптік алгоритмдер оны диагоналдарға қатысты өңдеуге мүмкіндік береді. Қосымша диагонал элементтерінің индекстері 1-зертханалық жұмыстағы 1-ші тәуелділік бойынша оп-оңай анықталады (элемент қатарының нөмірі өседі, ал баған нөмірі кемиді).

Сурет 7.1-Квадрат массивтің диагоналдары

Бас диагонал. Келесі кестеде квадрат массивтің бас диагоналына қатысты типтік алгоритмдер келтірілген:

7.4-кесте

Типтік алгоритм

Бейсик тілінде

Паскаль тілінде

Бас диагоналдағы элементтер қосындысы

for i=1 to n

s=s+x(i,i)

next i

s:=0;

for i:=1 to n do

s:=s+x[i,i];

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

элементтер қосындысы

for i=1 to n

for j=1 to n

if i<j then s=s+x(i,j)

next j, i

s:=0;

for i:=1 to n do

for j:=1 to n do

if i<j then s:=s+x[i,j];

Бас диагоналдан төмен орналасқан

элементтер қосындысы

for i=1 to n

for j=1 to n

if i>j then s=s+x(i,j)

next j i

s:=0;

for i:=1 to n do

for j:=1 to n do

if i>j then s:=s+x[i,j];

Қосымша диагонал. Келесі кестеде квадрат массивтің қосымша диагоналына қатысты типтік алгоритмдер келтірілген:

7.5-кесте

Типтік алгоритм

Бейсик тілінде

Паскаль тілінде

Қосымша диагоналдағы элементтер қосындысы

for i=1 to n

s=s+x(i, n-i+1)

next i

s:=0;

for i:=1 to n do

s:=s+x[i, n-i+1];

Қосымша диагоналдан жоғары орналасқан

элементтер қосындысы

for i=1 to n

for j=1 to n

if (i<n-j+1) then s=s+x(i,j)

next j, i

s:=0;

for i:=1 to n do

for j:=1 to n do

if (i<n-j+1) then

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

Қосымша диагоналдан төмен орналасқан

элементтер қосындысы

for i=1 to n

for j=1 to n

if (i>n-j+1) then s=s+x(i,j)

next j, i

s:=0;

for i:=1 to n do

for j:=1 to n do

if (i>n-j+1) then

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

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