Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2013, 23:29   #1
AllenWallker
Новичок
Джуниор
 
Регистрация: 24.12.2013
Сообщений: 4
Восклицание Три матрицы.(нужна помощь)

Заданы три матрицы A(m,m), B(n,n), C(k,k). Найти минимальный из всех максимальных элементов главных диагоналей матриц. Нахождение максимального элемента оформить как функцию или процедуру.
AllenWallker вне форума Ответить с цитированием
Старый 24.12.2013, 23:30   #2
AllenWallker
Новичок
Джуниор
 
Регистрация: 24.12.2013
Сообщений: 4
По умолчанию

помогите пожалуйста
AllenWallker вне форума Ответить с цитированием
Старый 25.12.2013, 11:07   #3
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Код:
{
Заданы три матрицы A(m,m), B(n,n), C(k,k). Найти минимальный из
всех максимальных элементов главных диагоналей матриц. Нахождение
максимального элемента оформить как функцию или процедуру.
}
uses
  crt;
const
  razm=100;
type
  matr=array[1..razm,1..razm] of integer;
  vect=array[1..razm] of integer;
var
  m,n,k,i,j:integer;
  a,b,c:matr;
  v,z:vect;
  min,MaxCol,r2,r1,r3:integer;

function MaxFind(x:matr;count:integer;var y:vect):integer;
var
  i,j:integer;
  max:integer;
  maxcount:integer;
begin
  max:=x[1,1];
  for i:=1 to count do
    if x[i,i]>max then
      max:=x[i,i];
  maxcount:=0;
  for i:=1 to count do
    if x[i,i]=max then
      begin
        inc(maxcount);
        y[maxcount]:=x[i,i];
      end;
  MaxFind:=maxcount;
end;

begin
  (* ввод размерностей массива *)
  write('Введите размерность массива А: ');
  readln(m);
  write('Введите размерность массива В: ');
  readln(n);
  write('Введите размерность массива С: ');
  readln(k);
  (* Генерация массивов *)
  for i:=1 to m do
    for j:=1 to m do
      a[i,j]:=random(m);
  for i:=1 to n do
    for j:=1 to n do
      b[i,j]:=random(n);
  for i:=1 to k do
    for j:=1 to k do
      c[i,j]:=random(k);
  (* Вывод массивов *)
  clrscr;
  writeln('Массив А');
  for i:=1 to m do
    begin
      for j:=1 to m do
        Write(a[i,j]:3);
      writeln;
    end;
  writeln('Массив B');
  for i:=1 to n do
    begin
      for j:=1 to n do
        Write(b[i,j]:3);
      writeln;
    end;
  writeln('Массив C');
  for i:=1 to k do
    begin
      for j:=1 to k do
        Write(c[i,j]:3);
      writeln;
    end;

  (* создаем последовательность максимумов *)
  maxCol:=MaxFind(a,m,z);
  r1:=maxcol;
  for i:=1 to r1 do
    v[i]:=z[i];

  maxCol:=MaxFind(b,n,z);
  r2:=maxcol;
  for i:=1 to r2 do
  v[i+r1]:=z[i];
  maxCol:=MaxFind(c,k,z);
  r3:=maxcol;
  for i:=1 to r3 do
    v[i+r1+r2]:=z[i];

  writeln('Последовательность максимумов');
  for i:=1 to r1+r2+r3 do
    write(v[i]:3);

  min:=v[1];
  for i:=2 to r1+r2+r3 do
    if v[i]<min then
      min:=v[i];
  writeln;
  writeln('Минимальный среди максимумов = ',min);

  readln;
end.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
даны три квадратные матрицы третьего порядка.вывести на экран ту из них,норма которой наименьшая. в качестве нормы матрицы взять м ayoka Паскаль, Turbo Pascal, PascalABC.NET 0 16.05.2012 18:28
С++.три матрицы, упорядочить строки той матрицы у которой больше нулевых строк Ирина1992 Помощь студентам 12 20.11.2011 13:01
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Разреженные Матрицы, Си, оч нужна помощь Many Помощь студентам 1 14.06.2009 00:11
Срочно нужна помощь: три относительно простые программки Tevet Паскаль, Turbo Pascal, PascalABC.NET 14 20.01.2009 02:41