Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal]Двумерные массивы


Автор: Glorya 4.5.2008, 12:49
Помогите пожалуйста решить задачу по двумерным массивам:
вычислить произведение элементов для каждого столбца; поменять местами столбцы с максимальным и минимальным значением

Автор: THandle 4.5.2008, 13:32
Цитата(Glorya @  4.5.2008,  13:49 Найти цитируемый пост)
поменять местами столбцы с максимальным и минимальным значением



Это значения полученные вот тут:

Цитата(Glorya @  4.5.2008,  13:49 Найти цитируемый пост)
вычислить произведение элементов для каждого столбца;


?

Тогда лови:

Код

program Project1;

const
  MAX = 5;

var
  a : array [1..MAX, 1..MAX] of integer;
  um : array [1..MAX] of integer;
  maxe, mine, tmp : integer;
  i, j : integer;

begin
  for i := 1 to MAX do
    begin
      for j := 1 to MAX do
        begin
          a[i, j] := random(100);
          write(a[i, j], '  ');
        end;
      writeln;
    end;

  // заполнили массив случайными числами

  for i := 1 to MAX do
    begin
      um[i] := a[i, 1];
      for j := 2 to MAX do
        um[i] := um[i] * a[i, j];
    end;


  // считаем произведение

  maxe := 1;
  mine := 1;
  for i := 2 to MAX do
    if um[i] > um[maxe] then
      maxe := i
    else if um[i] < um[mine] then
      mine := i;

  //Считаем максимальное и минимальное значение

  if maxe <> mine then
    for i := 1 to MAX do
      begin
        tmp := a[i, mine];
        a[i, mine] := a[i, maxe];
        a[i, maxe] := tmp;
      end;

  // меняем местами столбцы

  writeln('Result: ');
  for i := 1 to MAX do
   begin
      for j := 1 to MAX do
        write(a[i, j], '  ');
      writeln;
   end;

 readln;
end.


Вариант не оптимальный. Писал тут.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)