Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
25
Добавлен:
20.02.2017
Размер:
476.72 Кб
Скачать

Есептің жұмысына түсініктеме және орындалу нәтижелері

Program деген түйінді сөз арқылы бастап, тұрақты шаманы n мәнін енгіздім. Айнамалылар типтерін алдын ала сипаттау керек. Квадраттық матрицаның диагональне параллель диагональдардың құрамындағы элементтердің қосындысын табатын процедура құрып шығаруға болады. Массивті файл арқылы сақтауға болады. Assign- файлдың орналасқан адресі, reset – соны оқу. Циклды пайдаланып және процедура арқылы төменгі және жоғарғы параллель диагональдардың қосындысын шығарыды. Төменгі диагональдардың қосындысы арасындағы минимумын тауып, содан осындай тізбекпен жоғарғы диагональдардың қосындысының минимумы табылады. Енді екеуінің арасындағы минимумды табу үшін шартты қолданамыз (min2>min1), шарт «ақиқат» болса min=min1 теңестіріледі. Шарт «жалға» болса (min=min2) теңестіріледі. Програманы аяқтау үшін end түйінді сөзін қолданамын.

Есептің шешуі:

Program aseem_3_2;

Uses crt;

Const N = 3; M = 3;

Var Mas : array[1..n, 1..m] of integer;

MinN, MinM, Max, Min : integer;

MaxN, MaxM : integer;

OldMinN, OldMinM, OldMin : integer;

OldMaxN, OldMaxM, OldMax : integer;

i, j : integer;

Procedure sedl;

Const N = 3; M = 3;

Var Mas : array[1..n, 1..m] of integer;

MinN, MinM, Max, Min : integer;

MaxN, MaxM : integer;

OldMinN, OldMinM, OldMin : integer;

OldMaxN, OldMaxM, OldMax : integer;

i, j : integer;

begin

for j := 1 to m do

BEGIN

if Mas[1, j] < Mas[2, j] then

begin

MinN := 1;MinM := j;

Min := Mas[1, j];

MaxN := 2;MaxM := j;

Max := Mas[2, j];

end else

begin

MinN := 1;MinM := j;

Min := Mas[1, j];

MaxN := 2;MaxM := j;

Max := Mas[2, j];

end;

for i := 3 to m do

begin

if Mas[i, j] < Min then

begin

MinN := i; MinM := j;

Min := Mas[i, j];

end;

if Mas[i, j] > Max then

begin

MaxN := i; MaxM := j;

Max := Mas[i, j];

end

end;

if Mas[MinN, 1] < Mas[MinN, 2] then

begin

OldMaxN := MinN;

OldMaxM := 2;

OldMax := Mas[MinN, 2];

end else

begin

OldMaxN := MinN;

OldMaxM := 1;

OldMax := Mas[MinN, 1];

end;

for i := 3 to m do

if Mas[MinN, i] > OldMax then

begin

OldMaxN := MinN;

OldMaxM := i;

OldMax := Mas[MinN, i];

end;

if Mas[MaxN, 1] < Mas[MaxN, 2] then

begin

OldMinN := MaxN;

OldMinM := 1;

OldMin := Mas[MaxN, 1];

end else

begin

OldMinN := MaxN;

OldMinM := 2;

OldMin := Mas[MaxN, 2];

end;

for i := 3 to m do

if Mas[MaxN, i] < OldMin then

begin

OldMinN := MaxN;

OldMinM := i;

OldMin := Mas[MaxN, i];

end;

END;

BEGIN

Clrscr;

for j := 1 to m do

for i := 1 to n do

begin

Write('Mas [', i, ',', j, '] : ');

Readln(Mas[i, j]);

end;

sedl;

if (Min = OldMax) and (MinN = OldMaxN) then

writeln('‘Седл точки  M[', MinN, ',', MinM, '] = ', Min);

if (Max = OldMin) and (MinN = OldMaxN) then

Writeln('‘Седл точки  M[', MaxN, ',', MaxM, '] = ', Max);

END;

readln;

end.

Жауабы:

Соседние файлы в папке РГР 2