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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2012, 17:28   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я думаю два найбольших числа надо вывести которые есть в массиве.
Хм...
Допустим так можно попробовать найти два максимальных (если имеется ввиду что они разные)
Код:
 max:array[1..2] of Byte;
...
max[1]:=matrix[1];max[2]:=max[1];
for x:=2 to 9 do  
if matrix[x]>max[1] then begin
 max[2]:=max[1];
 max[1]:=Matrix[x];
End;
...
Соответственно вывод может быть таким:
Код:
 Writeln('Mаксимум 1 - ',max[1]);
 Writeln('Mаксимум 2 - ',max[2]);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.02.2012, 21:52   #12
BeaU
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 35
По умолчанию

это правельный код будет?)

Program maximum;
Var
max:array[1..2] of Byte;
max1: integer;
max2: integer;
x: integer;
Begin
max[1]:=matrix[1];max[2]:=max[1];
for x:=2 to 9 do
if matrix[x]>max[1] then begin
max[2]:=max[1];
max[1]:=Matrix[x];
End;
end;
Writeln('Mаксимум 1 - ',max[1]);
Writeln('Mаксимум 2 - ',max[2]);
ReadLn;
End.
BeaU вне форума Ответить с цитированием
Старый 05.02.2012, 22:56   #13
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Нет.
1)matrix не объявлен.
2)раз уж в задании таблица, то matrix должен быть двоичным, а не единичным, как в коде.
3)лишний End;

С минимальными поправками код выглядит так:
Код:
 Program maximum;
Var
 Matrix:Array [1..9] of byte = (1,2,3,4,5,6,9,8,7);
 max:array[1..2] of Byte;
 max1: integer;
 max2: integer;
 x: integer;
 Begin
 max[1]:=matrix[1];
 max[2]:=max[1];
 for x:=2 to 9 do
 if matrix[x]>max[1] then begin
 max[2]:=max[1];
 max[1]:=Matrix[x];
 End;
 Writeln('Mаксимум 1 - ',max[1]);
 Writeln('Mаксимум 2 - ',max[2]);
 ReadLn;
 End.
и работает неправильно:
Цитата:
Сообщение от maximum.pas
Mаксимум 1 - 9;
Mаксимум 2 - 6
При всем этом ты ищешь РАЗНЫЕ максимумы.
Цитата:
Сообщение от BeaU
Мне кажеться, что больше подходит первый вариант.
Ты уж как-нибудь определись, чего хочешь.

Если первый вариант, то
Код:
program one;
Var
 Matrix:Array [1..3,1..3] of byte = ((1,2,3),(4,5,6),(9,8,7));
 max,two:Byte;
 X,Y:Byte;
Begin
 {Находим максимум}
 for x:=1 to 3 do
   for y:=1 to 3 do
     if matrix[x,y]>max then max:=matrix[x,y];
 {Находим первые два максимума и выводим их и ихъ номера}
 two:=2;
 for x:=1 to 3 do
   for y:=1 to 3 do  begin
     if two=0 then break;
     if matrix[x,y]=max then begin writeln(x:5,',',y,matrix[x,y]:10); dec(two);end;
   end;
  ReadLn;
End.
Цитата:
Сообщение от результат
3,1 9
где 3,1 - индекс, 9 - максимум. Если написать две и более девяток, то результат выдаст первые две девятки их индексы (при условии, что девятка останется максимумом)

Если второй, то:
Код:
Program Two;
Var
 Matrix:Array [1..3,1..3] of byte = ((1,2,3),(4,5,6),(9,8,7));
 max1,max2:Byte;
 X,Y:Byte;
Begin
 Writeln('До');        // ?
 For Y:=1 to 3 do
  Begin
    For X:=1 to 3 do
     Write(Matrix[X,Y],' ');
    Writeln;
  End;
 max1:=Matrix[1,1];
 max2:=Matrix[1,1];
  For Y:=1 to 3 do
    For X:=1 to 3 do
      begin
        if Matrix[X,Y]>max1 Then
          begin
            max2:=max1;
            max1:=Matrix[X,Y];
          end;
        if (Matrix[X,Y]>max2)and(Matrix[X,Y]<>max1) Then
          max2:=Matrix[X,Y];
      end;
 Writeln('Mаксимум 1 - ',max1);
 Writeln('Mаксимум 2 - ',max2);
  ReadLn;
End.
Тут ответы будут 9 и 8, но без индексов (хотя их тоже можно запомнить)

Что касается byte и integer, я думаю здесь это не принципиально, если не брать значения больше 255 и отрицательные. Хотя в общем случае, конечно, предпочтительнее integer.
Все тривиальное просто

Последний раз редактировалось whatever; 05.02.2012 в 23:08.
whatever вне форума Ответить с цитированием
Старый 06.02.2012, 20:19   #14
BeaU
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 35
По умолчанию

Запустила в паскаль выбивает ошибку в этой строке, не могу понять что не так, а ошибку надо найти, так как надо сдавать со скриншотами)
Matrix:Array [1..3,1..3] of byte = ((1,2,3),(4,5,6),(9,8,7));
BeaU вне форума Ответить с цитированием
Старый 06.02.2012, 20:31   #15
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию


Изначально писал в дэлфи, тоже работало.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 06.02.2012, 21:00   #16
BeaU
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 35
По умолчанию

спасибо Вам большое, за помощь=)))
BeaU вне форума Ответить с цитированием
Старый 06.02.2012, 21:06   #17
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Так а в чем проблема то была? :\
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 07.02.2012, 00:53   #18
BeaU
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 35
По умолчанию

незнаю, я код набирала точно такой же) мне выбило ошибку в первой строке, и курсор стоял на =.
Matrix:Array [1..3,1..3] of byte = ((1,2,3),(4,5,6),(9,8,7));
BeaU вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу найти ошибку. Сума ряда (Pascal) spinogryz_ua Помощь студентам 2 31.01.2012 15:29
не могу найти ошибку (pascal) spinogryz_ua Помощь студентам 0 24.01.2012 20:40
Не могу найти исходник программы (которая требует логин и пароль для доступа) makar3000 Софт 0 01.12.2011 16:37
Не могу найти исходник программы (которая требует логин и пароль для доступа) makar3000 БД в Delphi 1 01.12.2011 03:11
Нигде не могу найти исходник проги для создания фоторобота CorruptSoul Свободное общение 2 11.03.2008 15:54