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

Информатикадан олимпиада есептерін шешу әдістері №7 лабораториялық жұмыс.

Екі өлшемді массивтерді өңдеудің типтік алгоритмдері. «Көбік» әдісімен сұрыптау

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

  • Массивті түгел өңдеу;

  • Қатарлар бойынша немесе бағандар бойынша жекелей өңдеу;

  • Диагоналдарға қатысты өңдеу.

Келтірілген топтардың әрқайсысын жеке қарастырайық.

Массивті түгел өңдеу

7.1-кесте

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

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

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

Толтыру (екі өлшемді массив элементтерін айналу тәртібі

- солдан оңға қарай қатар

бойынша)

for i=1 to n

for j=1 to m

input x(i,j)

next j

next i

for i:=1 to n do

for j:=1 to m do

readln (x[i,j]);

Шығару

for i=1 to n

for j=1 to m

print x(i,j);" ";

next j

print

next i

for i:=1 to n do

begin

for j:=1 to m do

write (x[i,j], ' ');

writeln;

end;

Қосынды, көбейтінді

p=1

for i=1 to n

for j=1 to m

s=s+x(i,j)

p=p*x(i,j)

next j

next i

s:=0; p:=1;

for i:=1 to n do

for j:=1 to m do

begin

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

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

end;

Максимум (минимум) элемент

max=x(1,1)

min=x(1,1)

for i=1 to n

for j=1 to m

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

if x(i,j)<min then min=x(i,j)

next j,i

max:=x[1,1];

min:=x[1,1];

for i:=1 to n do

for j:=1 to m do

begin

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

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

end

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

for i=1 to n

for j=1 to m

if {шарт} then {оператор}

next j

next i

for i:=1 to n do

for j:=1 to m do

if {шарт} then { оператор }

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

7.2-кесте

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

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

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

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

for i=1 to n

for j=1 to m

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

next j

next i

rem-----------

for i=1 to n

print s(i);" ";

next

for i:=1 to n do

s[i]:=0;

for i:=1 to n do

for j:=1 to m do

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

for i:=1 to n do

write (s[i]);

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

for i=1 to n

p(i)=1

next

rem---------

for i=1 to n

for j=1 to m

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

next j

next i

for i=1 to n

print p(i);" ";

next

for i:=1 to n do

p[i]:=1;

for i:=1 to n do

for j:=1 to m do

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

for i:=1 to n do

write (p[i]);

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

for i= 1 to n

max(i)=x(i,1)

min(i)=x(i,1)

next

for i=1 to n

for j=1 to m

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

if x(i,j)<min(i) then min(i)=x(i,j)

next j,i

for i=1 to n

print max(i);" ";;

next

print

for i=1 to n

print min(i);" ";;

next

for i:= 1 to n do

begin

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

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

for i:=1 to n do

for j:=1 to m do

begin

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

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

for i:=1 to n do

write (max[i]);

writeln;

for i:=1 to n do

write (min[i]);

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

for i=1 to n

for j=1 to m

if {шарт} then {rez(i)=…}

next j

next i

for i=1 to n

print rez(i);" ";

next

for i:= 1 to n do

begin

rez[i]:=0; end;

for i:=1 to n do

for j:=1 to m do

if {шарт} then

< rez[i]:=… >;

for i:=1 to n do

write (rez[i]);

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