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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2009, 20:51   #1
Альтависта
 
Аватар для Альтависта
 
Регистрация: 22.11.2009
Сообщений: 3
Смущение Матрица. Процедура

Собственно текст задачи:
Составить процедуру, которая находит минимальный и максимальный элементы всей матрицы и переписывает все элементы, которые находятся между ними(при просмотре по строкам) в одномерный массив.

Мучаюсь с ней уже очень долго, потому что в смысл процедуры никак не могу вникнуть..(( Вот, что я пока что сумела сделать:

Код:
program Project1;
{$APPTYPE CONSOLE}
uses
  SysUtils;
  const
  Mm=12; Nn=10;
  type
  matr=array[1..Mm,1..Nn] of real;
  procedure extr(a:matr; n,m:integer; max, min:real );
  var
  i,j, imax, imin, jmin, jmax:integer;
begin
max:=a[1,1];
min:=a[1,1];
Imax:=1;
Imin:=1;
jmax:=1;
jmin:=1;
for i:=1 to n do
for j:=1 to m do
if a[i,j]>max then
begin
  max:=a[i,j];
  imax:=i;
  jmax:=j;
end
else
if a[i,j]<min  then
 begin
  min:=a[i,j];
  imin:=i;
  jmin:=j;
end;
end;
var
a:matr;
n,m,i,j:integer;
maxx,minn:integer;

begin
 write('vvedite kol-vo strok i stolbcov:');
 readln(n,m);
  writeln('vvedite matricy po strokam');
  for i:=1 to n do
  begin
  for j:=1 to m do
  read(a[i,j]);
  readln;
  end;

extr(a,n,m, maxx, minn);
writeln('extremumi:', maxx, minn);
readln;
end.
Но программа зараза, даже элементы найти не может(((

Уважаемые форумчане, пожалуйста, кто разбирается помогите!!! Свои силы я исчерпала(((
Программа - турбо дэльфи.

Последний раз редактировалось Rembo; 22.11.2009 в 21:11.
Альтависта вне форума Ответить с цитированием
Старый 22.11.2009, 20:53   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Вот тебе макс и мин:http://www.programmersforum.ru/showthread.php?t=70310
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 22.11.2009, 20:57   #3
Альтависта
 
Аватар для Альтависта
 
Регистрация: 22.11.2009
Сообщений: 3
По умолчанию

Спасибо, я это уже прочитала! И задачу написала по поводу макс и мин элементов! Но через процедуру не хочет работать...И в последней части задачи затруднения...

Арарарар, ну неужели никто не поможет найти ошибку и довести задачу до конца???....(((

Последний раз редактировалось Stilet; 23.11.2009 в 09:40.
Альтависта вне форума Ответить с цитированием
Старый 22.11.2009, 21:34   #4
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Может так попробывать
Код:
 procedure extr(a:matr; n,m:integer; var max, min:real );
также, чтобы переписывает все элементы, которые находятся между max и min, нужно чтобы процедура выдавала значения imax, imin, jmin, jmax

Напрмер вот так
Код:
 procedure extr(a:matr; n,m:integer; var max, min:real; var imax, imin, jmin, jmax);
Жми на весы!!!

Последний раз редактировалось Chudo4258; 22.11.2009 в 21:40.
Chudo4258 вне форума Ответить с цитированием
Старый 22.11.2009, 21:37   #5
Альтависта
 
Аватар для Альтависта
 
Регистрация: 22.11.2009
Сообщений: 3
По умолчанию

Ааааааа, ну ведь точно! они же меняются!!!!! О, ужас((( А я-то думала) Спасибо, а со второй частью задачи не могли бы помочь?

Спасибо! А как при просмотре по строкам сформировать новый массив из этих чисел??...

Последний раз редактировалось Stilet; 23.11.2009 в 09:40.
Альтависта вне форума Ответить с цитированием
Старый 22.11.2009, 22:37   #6
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Я бы сделал в цикле while, начиная с imax, jmax (или imin, jmin) и заканчивая обратным, переприсваивать В[k]:=A[i,j]
Начинать с того, что меньше, если imax<imin то начинать с imax, jmax. Если imax>imin то начинать с imin, jmin
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите пжл с задачей(Думерный массив) Hedina Помощь студентам 3 16.09.2009 11:13
Pascal, задача квадратная матрица+процедура Antowka Помощь студентам 6 13.11.2008 16:52