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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2009, 17:07   #1
pionerka
Пользователь
 
Аватар для pionerka
 
Регистрация: 16.09.2009
Сообщений: 35
Смущение решить задачу про массив

Привет ребята.Помогите пожалуйста с задачей.

В массиве целых чисел с размерностью n найдите наиболее часто встречающиеся число.Если таких чисел несколько,то определите наименьшее из них.
Задачу нужно решить в консоле Делфи.
тяжела и неказиста жизнь простого программиста
pionerka вне форума Ответить с цитированием
Старый 12.10.2009, 17:08   #2
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

Цитата:
В массиве целых чисел с размерностью n найдите наиболее часто встречающиеся число.
Я бы создал массив векторов int vect[n][2],где по первому элементу записывал элемент массива целых чисел,а по второму количество повторов этого элемента и циклил...реализовывать некогда..)
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 12.10.2009 в 17:12.
Скарам вне форума Ответить с цитированием
Старый 12.10.2009, 17:14   #3
pionerka
Пользователь
 
Аватар для pionerka
 
Регистрация: 16.09.2009
Сообщений: 35
По умолчанию

здесь векторы не подойдут.Надо решить с помощью цикла,условного оператора и одномерного массива
тяжела и неказиста жизнь простого программиста
pionerka вне форума Ответить с цитированием
Старый 12.10.2009, 17:28   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Ну если Вы все это знаете, то где наработки и что не получается?
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 12.10.2009, 17:39   #5
pionerka
Пользователь
 
Аватар для pionerka
 
Регистрация: 16.09.2009
Сообщений: 35
По умолчанию

Первая часть программы осталась на компе в универе.Там я уже успела обозначить массив,но не знаю как поиск оформить
тяжела и неказиста жизнь простого программиста
pionerka вне форума Ответить с цитированием
Старый 12.10.2009, 18:08   #6
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Делфи не знаю.,
но для поиска необходимо
задать СЧ повторяющихся чисел значение 0
присвоить переменной значение первого числа,
задать СЧ1 повторяющихся чисел значение 0
создать цикл
for (i=(индекс второго элемента массива) i(меньше равно n) i++)
начало
if (переменная равна текущему элементу, то к переменной СЧ1=СЧ1+1)
конец
Анализируем состояние СЧ1
if СЧ1 равен 0, повторяем цикл для следующего числа, если СЧ1 не равен 0, то записываем число элементом нового массива увеличиваем СЧ,, и повторяем цикл для следующего элемента и так пока не сравним все элементы, потом похожую процедуру делаем для нового массива, только просто сравниваем i-й элемент с i+1 и сохраняем меньший.
Пишите применяя Делфи и пытайтесь оптимизировать, что-то много у меня циклов
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 12.10.2009, 23:24   #7
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

В общем пишу на С++,потом либо сами разберетесь,либо кто переведет:
Код:
#include <iostream>
using namespace std;
int main()
{
int mas[10]={0};
for(int i=0;i<10;i++)
{
   cout<<"\nVvedite element mas["<<i+1<<"]";
   cin>>mas[i];
}
int maxi=1;
int maxmas=mas[0];
int k=0;
for(int i=0;i<10;i++)
{  
    k=0;
    for(int j=0;j<10;j++)
    {
      if(mas[i]==mas[j]) k++;
    }
if(k>maxi)
{
   maxi=k;
   maxmas=mas[i];
}
if(k==maxi)
   if(maxmas>mas[i])maxmas=mas[i];
}
cout<<"Chislo "<<maxmas<<" povtor9ets9 "<<maxi<<" raz";
}
Писал прям тут,могут быть мелкие ошибки...)
З.Ы.для благодарности жмакать на весы)
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 12.10.2009 в 23:28.
Скарам вне форума Ответить с цитированием
Старый 13.10.2009, 11:43   #8
ac1d_buRn
Пользователь
 
Регистрация: 05.06.2009
Сообщений: 37
По умолчанию

http://www.programmersforum.ru/showthread.php?t=28598 =)
ac1d_buRn вне форума Ответить с цитированием
Старый 13.10.2009, 13:13   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Помоему гораздо проще отсортировать массив, и пройтись по первым его числам.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.10.2009, 15:27   #10
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

Цитата:
отсортировать массив, и пройтись по первым его числам.
хммм...тоже вариант решения,но по объему и сложности примерно тоже самое получается..тут же нет блок схемы,которая отсекает часть возможных решений этой задачи(а скорее однозначно определяет решение), поэтому любой алгоритм имеет право на существование и мой в том числе..)
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите решить задачу на массив бульдозер Помощь студентам 3 20.05.2009 00:26
Помогите решить задачу на Одномерный массив Andrux Помощь студентам 2 29.12.2008 11:30
Помогите решить задачу на двумерный массив! Toxass Паскаль, Turbo Pascal, PascalABC.NET 3 14.12.2008 01:27
Помогите решить задачу(про самолетик)... 22Striker22 Паскаль, Turbo Pascal, PascalABC.NET 11 29.10.2008 20:17