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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2010, 12:34   #1
gmail
Новичок
Джуниор
 
Регистрация: 03.06.2010
Сообщений: 5
Восклицание Pascal массивы

Помогите решить задачу, буду очень признателен.

Ввести двумерный массив D3x5. Вычислить максимальный по модулю элемент (DMAX). С помощью
подпрограммы(умножение матрицы на скаляр) построить массив D1=Dmax*D. Упорядочить его строки по возрастанию с помощью подпрограммы.
gmail вне форума Ответить с цитированием
Старый 03.06.2010, 21:39   #2
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

ну хвастайся наработками.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 03.06.2010, 21:44   #3
gmail
Новичок
Джуниор
 
Регистрация: 03.06.2010
Сообщений: 5
По умолчанию

Код:
const n=3; m=5;
type
Mass=array[1..n,1..m] of integer;
var
a:Mass;
I, j, Max: integer;
begin
Clrscr;
Randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[I,j]:=-50+random(101);
write(a[I,j]:4);
end;
writeln;
end;
Max:=a[1,1];
for i:=1 to n do
for j:=1 to m do
if Max:<=a[i,j] then
Max:=a[i,j];
Writeln(‘Max=’,Max);
Readln;
end.
Ну вот поиск максимального.
С процедурами собственно загвоздка... Если бы всё подряд

Последний раз редактировалось Stilet; 04.06.2010 в 08:51.
gmail вне форума Ответить с цитированием
Старый 03.06.2010, 21:55   #4
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

вот так строки упорядочешь.
Код:
for i:=1 to n do
for j:=1 to m-1 do
for k:=j+1 to m do
if kl[i,j]>kl[i,k] then
 begin
  tex:=kl[i,j];
  kl[i,j]:=kl[i,k];
  kl[i,k]:=tex;
 end;
А так умножать на MAX:
Код:
for i := 1 to n do
   begin
    for j:=1 to m do
      begin
        kl[i,j]:=kl[i,j]*max;
        write(kl[i,j]:3,'  ');
      end;
        writeln;
    end;
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 03.06.2010, 22:00   #5
gmail
Новичок
Джуниор
 
Регистрация: 03.06.2010
Сообщений: 5
По умолчанию

Ага, спасибо!
Но еще бы узнать, как в процедурах всё это будет выглядеть...
gmail вне форума Ответить с цитированием
Старый 03.06.2010, 22:02   #6
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
procedure sort(Var kl:mas);
begin
for i:=1 to n do
for j:=1 to m-1 do
for k:=j+1 to m do
if kl[i,j]>kl[i,k] then
 begin
  tex:=kl[i,j];
  kl[i,j]:=kl[i,k];
  kl[i,k]:=tex;
 end;
 end;
Да и Max вот так надо находить:
Код:
imax:=1;
  jmax:=1;
  max:=a[1,1];
  for i:=1 to n do
      for j:=1 to m do
        if abs(a[i,j])>abs(max) then
              begin
              max:=a[i,j];
              imax:=i;
              jmax:=j;
              end;
      writeln;
      writeln('MAS[',imax,';',jmax,']:=',max,' ');
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 03.06.2010, 23:35   #7
gmail
Новичок
Джуниор
 
Регистрация: 03.06.2010
Сообщений: 5
По умолчанию

Код:
Program x3;
Uses crt;
const n=3; m=5;
type
Mass=array[1..n,1..m] of integer;
var
a:Mass;
I, j, Max: integer;
Procedure maxskalar(var A:Mass);
Var
i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
a[i,j]:=max*a[i,j];
write(a[i,j]:4,' ');
end;
writeln;
end;
begin
Clrscr;
Randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[I,j]:=-50+random(101);
write(a[I,j]:4);
end;
writeln;
end;
Max:=a[1,1];
for i:=1 to n do
for j:=1 to m do
if abs(a[i,j])>abs(max) then
Max:=a[i,j];
Writeln(‘Max=’,Max);
Writeln(’d1=d*max ’);
maxskalar(a);
Readln;
end.
вот с процедурами вообще не понимаю: посмотрел только процедуру умножения матрицы на скаляр. вся прога работает кроме неё... может как тут правильно напишете

Последний раз редактировалось Stilet; 04.06.2010 в 08:54.
gmail вне форума Ответить с цитированием
Старый 03.06.2010, 23:39   #8
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Код:
uses
  CRT;
Type
  mas=array [1..100,1..100] of integer;
var
  a:mas;
  i,j,n,m,imax,jmax,max,tex,k:integer;
  
Procedure proizv(Var kl:mas);
begin
  writeln('Массив после умножения: ');
      for i := 1 to n do
       begin
         for j:=1 to m do
           begin
              kl[i,j]:=kl[i,j]*max;
              write(kl[i,j]:3,'  ');
           end;
           writeln;
       end;
end;

procedure sort(Var kl:mas);
begin
  for i:=1 to n do
    for j:=1 to m-1 do
      for k:=j+1 to m do
        if kl[i,j]>kl[i,k] then
          begin
            tex:=kl[i,j];
            kl[i,j]:=kl[i,k];
            kl[i,k]:=tex;
          end;
 end;
 
begin
Clrscr;
Randomize;
write('Введите количество строк: ');
 readln(n);
   write('Введите количество столбцов: ');
     readln(m);
 writeln('Исходная матрица: ');
  for i := 1 to n do
    begin
     for j:=1 to m do
       begin
          a[i,j]:=Random(10)-5;
          write(a[i,j]:2,'  ');
       end;
       writeln;
    end;
  writeln;
  imax:=1;
  jmax:=1;
  max:=a[1,1];
  for i:=1 to n do
      for j:=1 to m do
        if abs(a[i,j])>abs(max) then
              begin
                 max:=a[i,j];
                 imax:=i;
                 jmax:=j;
              end;
              writeln;
               writeln('MAS[',imax,';',jmax,']:=',max,' ');
writeln;
  proizv(a);
writeln;
  sort(a);
writeln('Результирующая матрица: ');
for i:=1 to n do
  begin
    for j:=1 to m do
      begin
         write(a[i,j]:3,' ');
      end;
      writeln;
  end;
readkey;
end.
Вот всё полностью.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 03.06.2010, 23:48   #9
gmail
Новичок
Джуниор
 
Регистрация: 03.06.2010
Сообщений: 5
По умолчанию

Спасибо огромное! Будем пробовать
gmail вне форума Ответить с цитированием
Старый 03.06.2010, 23:49   #10
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

не за что.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal (массивы) 4otenado Помощь студентам 10 13.01.2010 20:20
Массивы в Pascal Шахрия Помощь студентам 2 13.10.2009 20:01
Pascal: массивы Juventus91 Помощь студентам 2 06.09.2009 14:21
Pascal. Массивы. Help. adelaida Помощь студентам 11 24.11.2008 17:02