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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2013, 17:20   #1
CaptainPike
 
Регистрация: 02.10.2012
Сообщений: 5
По умолчанию Задача на двмумерный массив

Здравствуйте! Помогите написать программу с использованием двумерных массивов. Вот задача.

Задан список выигрышных номеров двадцати тиражей спортлото “5 из 36”. Выдать список пяти наиболее часто встречавшихся в этих тиражах номеров.

Заранее спасибо.
CaptainPike вне форума Ответить с цитированием
Старый 06.04.2013, 18:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну показывай как вводишь эти номера )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2013, 11:12   #3
CaptainPike
 
Регистрация: 02.10.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну показывай как вводишь эти номера )
Вот код:
Код:
const n=20;
      c=5;
type mas=array [1..1000,1..1000] of integer;
var a:mas;
i,j,q:integer;


procedure vvodmass(var a:mas; c,n:integer);
begin
For i:=1 to n do
               For j:=1 to c do
                             A[i, j]:=random(36);
end;

procedure vivodmass(var a1:mas; c,n:integer);
begin
For i:=1 to n do
              begin
              For j:=1 to c do
                            write(A[i,j]:5);
                            writeln;
              end;
end;

begin
randomize;
vvodmass(a,n,c);
vivodmass(a,n,c);
end.
А вот как из этого массива выудить 5 повторяющихся я ума не приложу
CaptainPike вне форума Ответить с цитированием
Старый 07.04.2013, 12:15   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так понятьно.
Я бы обьявил массив так:
Код:
type mas=array [20,5] of integer;
Потом массив количеств и индексов:
Код:
var idx,cnt:array[1..36] of integer;
При вводе заполнить массив количеств:
Код:
procedure vvodmass(var a:mas; c,n:integer);
begin
For i:=1 to 36 do idx[i]:=i;
For i:=1 to n do
               For j:=1 to c do begin
                             A[i, j]:=random(36); inc(cnt[A[i, j]]); end;
end;
Далее сортировка по индексам:
Код:
var k:integer;
...
for i:=1 to 36 do for j:=1 to 36 do begin
 if cnt[idx[i]]>cnt[idx[j]] then begin
  k:=idx[i]; idx[i]:=idx[j]; idx[j]:=k;
 end;
end;
По идее массив индексов теперь перемешан по возрастанию количеств, и:
Код:
for i:=1 to 5 do write(cnt[idx[i]]:5);
Должно дать первые пять крутых.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2013, 12:54   #5
CaptainPike
 
Регистрация: 02.10.2012
Сообщений: 5
По умолчанию

А можете, пожалуйста, в единый код слепить? Буду очень благодарен.
CaptainPike вне форума Ответить с цитированием
Старый 07.04.2013, 13:49   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нет. В единый не могу )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на массив mimit Помощь студентам 1 14.11.2012 22:30
задача на массив diamn3452 Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2011 18:07
Задача на массив Casper098 Помощь студентам 10 20.09.2011 00:32
Задача на МАССИВ Новичок1 Помощь студентам 3 11.12.2010 13:41
Задача на массив! Fatality Помощь студентам 1 09.04.2009 10:04