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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2012, 21:45   #1
Ester
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 14
Радость Задача на массивы

Люди добрые,посмотрите решение пожалуйста. Запускаю-все работает,но вчера вечером тоже так думала а препод сегодня ошибки то нашеееел
Задание такое: Дан двумерный массив m на n.Надо найти максимальный элемент,затем в том столбце где этот элемент находится найти минимальный элемент.Удалить столбец с максимальным и строку с минимальным элементом.

Вот решение:
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;


var
a:array[1..10,1..10] of integer;

i,j,n,m,i1,jmax,imin,j2,max,min:integer;

BEGIN
{ TODO -oUser -cConsole Main : Insert code here }
write ('vvedite n=');
 readln(n);
 write('vvedite m=');
 readln(m);
 writeln('a');

for i:=1 to n do begin
 for j:=1 to m do begin
               {заполняю массив}

a[i,j]:=random(10)+1;
end;
writeln;
end;

 for i:=1 to n do begin     {печатаю массив}
 for j:=1 to m do begin
 write (a[i,j]:5);
 end;
 writeln;
 end;

writeln('----------------');

max:=a[1,1];
i1:=1;
jmax:=1;
for i:=1 to n do
for j:=1 to m do
 if a[i,j]>=max then
  begin
  max:=a[i,j];
  i1:=i;
  jmax:=j;
  end;
 writeln('max:',max,'   ','i,j:',i1,',',jmax);

 min:=a[1,jmax];
for i:=1 to n do

 if a[i,jmax]<=min then
 begin
  min:=a[i,jmax];
  imin:=i;
  j2:=jmax;
  end;
 writeln('min',min,'  ','imin,jmin',imin,';',j2);
     writeln('----------------');


for i:=imin+1 to m do for j:=1 to n do a[ i-1,j]:=a[ i,j];
for j:=jmax+1 to n do for i:=1 to m do a[ i,j-1]:=a[ i,j];




     for i:=1 to n-1 do begin
     for j:=1 to m-1 do begin
     write(a[i,j]:5);
      end;
      writeln;
      end;
      writeln('jmax,imin',jmax,',',imin);

readln

end.

Последний раз редактировалось Ester; 24.01.2012 в 21:58.
Ester вне форума Ответить с цитированием
Старый 24.01.2012, 21:52   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Запускаю-все работает
поздравляю!
Цитата:
а препод сегодня ошибки то нашеееел
Офигеть! Компилятор не нашел, а препод нашёл! ААфигеть! А нам, то что искать?
Может скажете. что препода не устроило, и какие ошибки он нашёл!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 24.01.2012, 21:57   #3
Ester
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
поздравляю!

Офигеть! Компилятор не нашел, а препод нашёл! ААфигеть! А нам, то что искать?
Может скажете. что препода не устроило, и какие ошибки он нашёл!
Ну например в том месте где ищу максимум и минимум у меня было не >= и <= а просто > и < и если скажем максимальным был бы элемент a[1,1] то программа бы его не увидела. И строку и столбец я просто на печать не стала выводить,а ему именно удаление нужно)
Ester вне форума Ответить с цитированием
Старый 24.01.2012, 22:03   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
И строку и столбец я просто на печать не стала выводить,а ему именно удаление нужно)
НДАА! если найдёте метод удаления элементов из статического массива покажите мне пожалуйста!
Цитата:
> и < и если скажем максимальным был бы элемент a[1,1] то программа бы его не увидела
это как это?
а вот
Цитата:
Код:
max:=a[1,1];
i1:=1;
jmax:=1;
А это для чего по вашему?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 24.01.2012, 22:10   #5
Ester
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
НДАА! если найдёте метод удаления элементов из статического массива покажите мне пожалуйста!

ага,я очень долго с большими испуганными глазами думала на эту тему и выяснила что он имел ввиду сдвиг строк и столбцов)


Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
это как это?
а вот

А это для чего по вашему?
это я уже после приписала
Ester вне форума Ответить с цитированием
Старый 24.01.2012, 22:16   #6
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Цитата:
Надо найти максимальный элемент
Заметь, в единственном числе. Так что по поводу равно - вопрос спорный.
Цитата:
Удалить столбец с максимальным и строку с минимальным элементом.
Это как, если массив не динамический? Обнулить чтоле?
После того как максимум и минимум найдешь, вместо
Код:
for i:=imin+1 to m do for j:=1 to n do a[ i-1,j]:=a[ i,j];
for j:=jmax+1 to n do for i:=1 to m do a[ i,j-1]:=a[ i,j];
пиши вот так:
Код:
for i:=1 to m do
  for j:=jmax to n do
    begin
      if j=n then a[i,j]:=0
      else a[i,j]:=a[i,j+1];
    end;



for i:=imin to m do
  for j:=1 to n do
    begin
      if i=m then a[i,j]:=0
      else a[i,j]:=a[i+1,j];
    end;
Мне кажется правильно получилось...
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 24.01.2012, 22:22   #7
Ester
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 14
По умолчанию

Ага,спасибо.Покажу так,надеюсь примет,а то уж больно зачет хочется=)
Ester вне форума Ответить с цитированием
Старый 24.01.2012, 22:29   #8
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
сдвиг строк и столбцов)
а это что?
Цитата:
Код:
for i:=imin+1 to m do for j:=1 to n do a[ i-1,j]:=a[ i,j];
for j:=jmax+1 to n do for i:=1 to m do a[ i,j-1]:=a[ i,j];
Слушайте, я чёт уже ни чё не понимаю!
Сдвиг у вас есть, максимум находит нормально! Что вам ещё не хватает?
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 24.01.2012, 22:30   #9
Ester
Пользователь
 
Регистрация: 04.12.2011
Сообщений: 14
По умолчанию

Ну вдруг есть какой то ляп который я не вижу)Спасибо за помощь)
Ester вне форума Ответить с цитированием
Старый 24.01.2012, 22:36   #10
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
а это что?
Хм, действительно странно, я сходу даже проверять не стал...
Может быть это тоже "позже появилось" ? В моем примере я последнюю строку обнулил, но с другой стороны массив изначально полностью не обнуляется, так что черт его (препода) знает...
Все тривиальное просто
whatever вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на массивы Vodolazky Помощь студентам 1 14.12.2011 16:47
Задача на массивы lisapendrik Помощь студентам 1 06.11.2009 00:29
Массивы на C++задача Wia Помощь студентам 1 20.12.2008 01:08