Delphi-Help

Главная Статьи Массивы Задача № 234 на Pascal

Задача № 234 на Pascal

Оцените материал
(0 голосов)


Задача № 234 на Pascal

Сформировать матрицу B путём вычёркивания строки и столбца на пересечении которых расположен минимальный элемент матрицы A. Матрица A (5*5).

VAR
a:array[1..5,1..5]of integer;
b:array[1..4,1..4]of integer;
i,j,i1,j1,x,y:word;
min_a:integer;
 
BEGIN
  randomize;
            { 1). Создание матрицы A из случайных чисел, вывод ее на экран }
  writeln('Матрица  A:');
  for i:=1 to 5 do
  begin
    writeln;
    for j:=1 to 5 do
    begin
    a[i,j]:=10+random(90);
    write('  ',a[i,j]);
    end;
  end;
 
            { 2). Нахождение минимального элемента в матрице A }
  min_a:=a[1,1];
  x:=1;
  y:=1;
  for i:=1 to 5 do
  for j:=1 to 5 do
  begin
  if min_a>a[i,j] then
    begin
    min_a:=a[i,j];
    x:=i;
    y:=j;
    end;
  end;
 
  writeln;
  writeln('Минимальный элемент и его положение в матрице A:');
  writeln('min=',min_a,'  x=',x,'  y=',y);
 
            { 3). Создание матрицы B}
  j1:=0;
  i1:=1;
  for i:=1 to 5 do
  for j:=1 to 5 do
  begin
  if (i<>x)and(j<>y)then
    begin
    j1:=j1+1;if j1>4 then
    begin
    j1:=1;
    i1:=i1+1;if i1>4 then i1:=1;
    end;
 
    b[i1,j1]:=a[i,j];
    end;
  end;
 
            { 4). Вывод матрицы B: }
  writeln;
  writeln('Матрица  B:');
  for i1:=1 to 4 do
  begin
    writeln;
    for j1:=1 to 4 do
    write('  ',b[i1,j1]);
  end;
 
END.

· переменная a - исходная матрица, размером 5*5

· переменная b - матрица, полученная из матрицы A, размером 4*4

· переменные i, j, i1, j1 - используются для цикла

· переменные x, y - для определения положения минимального элемента матрицы A

· переменная min_a - минимальный элемент в матрице A.

Решение этой задачи я разбил на 4 части: создание матрицы A, нахождение минимального элемента в матрице A, создание матрицы B, вывод матрицы B. Я расскажу только о второй и третьей частях т.к. они являются основой решения этой задачи.

Нахождение минимального элемента в матрице A

Для хождения минимального элемента проверяем условие min>a[i,j] т.е. сравниваем один элемент матрицы с другим и тот элемент, который меньше присваиваем переменной min. Так же в условии задачи сказано, что матрица B сформирована путём вычёркивания строки и столбца на пересечении которых расположен минимальный элемент матрицы A. Поэтому для формирования матрицы B нужно знать какую строку и какой столбец из матрицы A нужно вычеркнуть. Для этого используем переменные x - строка, y - столбец, которые легко узнаются при определении минимального элемента матрицы A.

Создание матрицы B

Самая трудная часть это создать матрицу B, когда уже известно какую строку и какой столбец не будет содержаться в матрице B. Так как матрица A была размером 5*5, то матрица B, будет размером 4*4 т.к. вычеркиваем одну строчку и столбец. Матрицу B создаем перебирая все элементы матрицы A и записываем их в матрицу B, только в том случае, если элемент из матрицы A не расположен по той строке и по тому столбцу, где находится минимальный элемент матрицы A т.е. если (i<>x) и (j<>y).

Прочитано 5372 раз

Авторизация



Счетчики