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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2008, 21:50   #1
Альбиша
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 20
По умолчанию Двумерный массив паскаль

Помогите решить:
Помогите, пожалуйста, отладить программку на Pascal
Задача такая: В произвольно заданном двумерном массиве размера 4х5 определить 3 элемента с наибольшими значениями.

Вот код:
Цитата:
________________________
Program 1;
const
m=4;
n=5;
var
A: array [1..m,1..n] of integer;
max,max1,max2,i,x,y,j:integer;
begin
for i:=1 to m do
begin
for j:=1 to n do
begin
writeln('vvesti elementi massiva ');
readln(A[i,j]);
end;
writeln;
end;
max:=A[1,1];
max1:=A[1,1];
max2:=A[1,1];
for i:=1 to n do
for j:=1 to m do
if A[i,j]>max then max:=A[i,j];
if (A[i,j]>max1) and (max<>max1) then max1:=A[i,j];
if (A[i,j]>max2) and (max1<>max2) then max2:=A[i,j];
writeln('max 1= ',max);
writeln('max 2= ',max1);
writeln('max 3= ',max2);
readln;
end.
to malexG
Цитата:
Предположим, что первые три элемента первой строки наибольшие:
Код:

max:=A[1,1];
max1:=A[1,2];
max2:=A[1,3];

Измените условия:
Код:

case j mod 3 of
0: if (A[i,j] > max2) and (max2 <> max) and (max2 <> max1) then max2 := A[i,j];
1: if (A[i,j] > max1) and (max1 <> max) and (max1 <> max2) then max1 := A[i,j];
2: if (A[i,j] > max) and (max <> max1) and (max <> max 2) then max := A[i,j];
end;
Это не помогло почему то условия не соблюдаются
Альбиша вне форума Ответить с цитированием
Старый 14.12.2008, 22:48   #2
Summerrain
Пользователь
 
Аватар для Summerrain
 
Регистрация: 16.11.2008
Сообщений: 21
По умолчанию

У тя оно вообше Max ???? вообще находит.
Мне вот кажется что нет даже один max из вего массива таким образом ти не найдет. По пробуй метод перебора значений на поиск максимума через 3 стакана.
Summerrain вне форума Ответить с цитированием
Старый 14.12.2008, 23:19   #3
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

Приношу извинения, что ввел в заблуждение. Поработаю, выложу рабочий код.
MalexG вне форума Ответить с цитированием
Старый 14.12.2008, 23:42   #4
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

Рабочий код:
Код:
for i := 1 to M do
    for j := 1 to N do
      A[i,j] := Random(100) + 1;

  Max  := A[1,1];
  Max1 := A[1,2];
  Max2 := A[1,3];

  for i := 1 to M do
    for j := 1 to N do
    begin
      if (A[i,j] <> Max) and (A[i,j] <> Max1) and (A[i,j] <> Max2) then
      begin
        if (A[i,j] > Max) and (Max < Max1) and (Max < Max2) then
        begin
          Max := A[i,j];
          Continue;
        end;
        if (A[i,j] > Max1) and (Max1 < Max) and (Max1 < Max2) then
        begin
          Max1 := A[i,j];
          Continue;
        end;
        if (A[i,j] > Max2) and (Max2 < Max) and (Max2 < Max1) then
          Max2 := A[i,j];
      end;
    end;
MalexG вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив Анжелика Помощь студентам 3 29.12.2008 21:23
Двумерный массив. ПАскаль stasig Помощь студентам 18 15.12.2008 17:18
Паскаль (двумерный массив) RAVAL)) Помощь студентам 5 16.06.2008 00:27
Двумерный массив help Imperceptible Паскаль, Turbo Pascal, PascalABC.NET 25 02.03.2007 20:00