IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Задача с массивом
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 47
Пол: Мужской

Репутация: -  0  +


Помогите решить.
В массиве целых чисел с количеством элементов n найти наиболее часто встречающееся число. Если таких чисел несколько, то определить наименьшее из них.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


не ну вы ребята издеватесь!!!
которая по счету тема задача с масивами!!!!!!!!!!!!!!!!!!!

может не совсем функционально но вот пример реализаци с помощю списка



Type
TPrec=^Trec;
Trec = record
inf :integer;
count :integer;
next :TPrec;
end;
const n=100;
Var
arr=array [1..n] of integer;
i:integer;
start:tprec;
wp:tprec;


function findrec(elem:integer;var wp:tprec):boolean;
begin
result:=false;
wp:=start;
while wp<>nil do
begin
if wp^.inf=elem then
begin
result:=true;
exit;
end;
wp:=wp^.next;
end;
end;

procedure add(elem:integer; var start:tprec);
var
Pnew:Tprec;
begin
new(pnew);
pnew^.inf:=elem;
pnew^.count:=1;
pnew^.next:=nil;
if start=nil then
begin
start:=pnew;
end
else
begin
pnew^.next:=start;
start:=pnew;
end;
end;

begin
start:=nil;
{заполнение масива}
for i:=1 to n do begin
if findrec(arr(i),wp) then inc(wp^.count)
else add(arr(i),start);

{теперь проходиш по списку и виводиш то что нужно}

while start<>nil do
begin
wp:=start;
start:=start^.next;
dispose(wp);
end;
end;



зы еще не откомпилирова, откомпилирую исправлю если будут ошибки)

Сообщение отредактировано: amega -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(amega @ 13.04.2009 21:29) *
может не совсем функционально но вот пример реализаци с помощю списка
"Заслуженный комбайнер респубилки Иван Петрович Сидоров просит нас передать вторую часть, Adagio ma not tanto, из шестого Брандербургского концерта си-бемоль мажор Иоганна Себастьяна Баха. Для уважаемого Ивана Петровича передаем русскую народную песню Во поле березонька стояла.."
© из анекдота


М
amega если не можешь (или не хочешь) отвечать по делу - будь добр, не флуди..



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


Lapp

blink.gif я написал решение котрое на мое мнение показалось удобным, если есть проще решение то пожалута выкладывайте , я не чуть не против, но говрить сразу "amega если не можешь (или не хочешь) отвечать по делу - будь добр, не флуди..", это тоже както... да и вче проявился мой флуд? !4.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 47
Пол: Мужской

Репутация: -  0  +


да уж wacko.gif
мне ещё и блок схему к этому писать над было..
пришлось второй массив делать..
не очень четко все получилось,зато работает и не так громоздко.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
пришлось второй массив делать..
Ты бы указывал, что тебе можно делать, а чего - нельзя. Если элементы исходного массива могут поменять свое положение - то проще всего отсортировать его по возрастанию, и потом найти максимальную повторяющуюся последовательность (в FAQ-е есть функция). Делов на 15 строк.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(amega @ 14.04.2009 19:29) *
вче проявился мой флуд? !4.gif
Если человек изучает массивы, это стопроценто означает, что ни о каких списках, как и вообще о динамической памяти, он не имеет ни малейшего представления. И даже если бы имел, само то, что он все же хочет по какой-то причине употребить именно массивы, должно же значить что-то. Когда ты попросишь пить, а тебе дадут хлеба - что ты скажешь? Вот и я говорю: флуд smile.gif.
Не надо обижаться. Просто отвечай по делу. А если так уж надоело - воздержись.. O'kay? smile.gif


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


?
***

Группа: Пользователи
Сообщений: 283
Пол: Мужской

Репутация: -  4  +


Цитата
O'kay?

ок
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 20:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name