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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2008, 16:57   #1
ЕвгениуS
студент
Пользователь
 
Аватар для ЕвгениуS
 
Регистрация: 02.03.2008
Сообщений: 81
Печаль Как найти max и min элементы матрицы?????

Задача звучит так: Ввести двумерный массив типа integer, где клличество строк и столбцов вводится с клавиатуры. Найти максимальные и минимальые элементы матрицы, сформулировать новую матрицу. Квадратную. Рамерность задаетс пользоателем,где последняя строка будет содержате эементы, а первая максимальные. Остальные все элементы =0.

Я знаю как ввести двумерный массив и задать колличество строк и столбцов, ввести элементы марицы. Как найи максимальные и мин элементы матрицы???
ЕвгениуS вне форума Ответить с цитированием
Старый 02.03.2008, 17:01   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Перебором в цикле:
Код:
max:=0;
for i:=1 to n do
  for j:=1 to m do
    if a[i,j] > max then max:=a[i,j];
_Dmitry вне форума Ответить с цитированием
Старый 02.03.2008, 17:07   #3
Goblin
Форумчанин
 
Регистрация: 24.11.2007
Сообщений: 196
По умолчанию

Извини Pascal не знаю, напишу так:

min=n-элементу марицы.
max=n-элементу марицы.

Цыкл от 0 до кол.строк.
Цыкл от 0 до кол.столбцов.
Если следующий элемент меньше min тогда min равно этому элементу.
Если следующий элемент больше max тогда max равно этому элементу.
конец цыкла
конец цыкла

Если хош могу на С++
Goblin вне форума Ответить с цитированием
Старый 02.03.2008, 17:11   #4
ЕвгениуS
студент
Пользователь
 
Аватар для ЕвгениуS
 
Регистрация: 02.03.2008
Сообщений: 81
По умолчанию

program GEO;
uses crt;
label 5;
var a: array [1..20, 1..20] of integer;
p: array [1..20, 1..20] of integer;
n,m,j,i,max,O: integer;
begin clrscr;
writeln(введите колличество строк и столбцов)');
readln(m,n);

for i:=1 to m do
for j:=1 to n do
begin
write ('a[',i,',',j,']=');
readln(a[i,j])
end;
writeln('матрица 1');
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j], ' ');
writeln
end;


max:=0 на этой строчке все останавливается и выходит сообщене-"неверное выражение"
for i:=1 to m do
for j:=1 to n do
if a[i,j]>max then max:=a[i,j]
begin max:=a[i,j];
end;
writeln('max=' ,)

end.

У меня Паскаль.
ЕвгениуS вне форума Ответить с цитированием
Старый 02.03.2008, 17:13   #5
ЕвгениуS
студент
Пользователь
 
Аватар для ЕвгениуS
 
Регистрация: 02.03.2008
Сообщений: 81
По умолчанию

нее, спасибо, мне в Паскале к завтру делать надо((
ЕвгениуS вне форума Ответить с цитированием
Старый 02.03.2008, 17:16   #6
ЕвгениуS
студент
Пользователь
 
Аватар для ЕвгениуS
 
Регистрация: 02.03.2008
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Goblin Посмотреть сообщение
Извини Pascal не знаю, напишу так:

min=n-элементу марицы.
max=n-элементу марицы.

Цыкл от 0 до кол.строк.
Цыкл от 0 до кол.столбцов.
Если следующий элемент меньше min тогда min равно этому элементу.
Если следующий элемент больше max тогда max равно этому элементу.
конец цыкла
конец цыкла

Если хош могу на С++
нее, спасибо. Мне именно в Паскале к завтру делать надо((
ЕвгениуS вне форума Ответить с цитированием
Старый 02.03.2008, 17:27   #7
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Непонятно как ваш код откомпилировался....
Я дописывал исправил эдак ошибок 10 который компилятор пропустить немог (в основном это запятые, точки с запятой и т.д.).

Вот как это должно выглядить:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

label 5;
var a: array [1..20, 1..20] of integer;
    p: array [1..20, 1..20] of integer;
    n, m, j, i, max, O : integer;
Begin
Writeln ('ââåäèòå êîëëè÷åñòâî ñòðîê è ñòîëáöîâ)');
Readln (m,n);

for i:=1 to m do
for j:=1 to n do
  Begin
    write ('a[',i,',',j,']=');
    readln (a[i,j]);
End;

Writeln ('ìàòðèöà 1');
for i := 1 to m do
  Begin
    for j := 1 to n do
    Write (a[i,j], ' ');
    Writeln;
  End;

max := 0;
for i := 1 to m do
for j := 1 to n do
  if a[i,j] > max then max := a[i,j];
Writeln ('max=' ,max);
Readln;
end.
Запрашивается матрица, заполняется с клавы. Выводится на экран и выводится максимальный элемент.

""""""""""""""""""""""""""""""" ""
Для публикачии исходного кода есть специальный тег. Используйте.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 02.03.2008, 17:41   #8
ЕвгениуS
студент
Пользователь
 
Аватар для ЕвгениуS
 
Регистрация: 02.03.2008
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Карась Посмотреть сообщение
Непонятно как ваш код откомпилировался....
Я дописывал исправил эдак ошибок 10 который компилятор пропустить немог (в основном это запятые, точки с запятой и т.д.).

Вот как это должно выглядить:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

label 5;
var a: array [1..20, 1..20] of integer;
    p: array [1..20, 1..20] of integer;
    n, m, j, i, max, O : integer;
Begin
Writeln ('ââåäèòå êîëëè÷åñòâî ñòðîê è ñòîëáöîâ)');
Readln (m,n);

for i:=1 to m do
for j:=1 to n do
  Begin
    write ('a[',i,',',j,']=');
    readln (a[i,j]);
End;

Writeln ('ìàòðèöà 1');
for i := 1 to m do
  Begin
    for j := 1 to n do
    Write (a[i,j], ' ');
    Writeln;
  End;

max := 0;
for i := 1 to m do
for j := 1 to n do
  if a[i,j] > max then max := a[i,j];
Writeln ('max=' ,max);
Readln;
end.
Запрашивается матрица, заполняется с клавы. Выводится на экран и выводится максимальный элемент.

""""""""""""""""""""""""""""""" ""
Для публикачии исходного кода есть специальный тег. Используйте.

Большое спасибо. Я использую Паскаль АВС. Он подобные ошибки пропускает
ЕвгениуS вне форума Ответить с цитированием
Старый 02.03.2008, 17:46   #9
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Вы мне тока одну вещь объясните. Почему, если integer, то max := 0; , а не max := minint;
B_N вне форума Ответить с цитированием
Старый 02.03.2008, 17:52   #10
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Цитата:
Сообщение от B_N Посмотреть сообщение
Вы мне тока одну вещь объясните. Почему, если integer, то max := 0; , а не max := minint;
"ЭЭЭЭЭэээээ... чаво

Что такое minint ?" Понял.......... Пояснять ненадо...

Цитата:
Большое спасибо. Я использую Паскаль АВС. Он подобные ошибки пропускает
Но мой то код работает на вашем паскале?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...

Последний раз редактировалось Карась; 02.03.2008 в 17:58.
Карась вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Если все элементы матрицы четные, вычислить их произведение. Misho0k Паскаль, Turbo Pascal, PascalABC.NET 7 20.05.2008 22:51
формирование матрицы (задание выполненно не могу найти сваю ошибку) КиношкА Помощь студентам 7 11.01.2008 03:50
найти минимальный элемент в каждой строке матрицы и записать все минимальные элементы в отдельный массив W_P Помощь студентам 6 28.12.2007 00:24
умножить число на элементы матрицы KORT Помощь студентам 2 04.11.2007 02:06