Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

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


Ответ
 
Опции темы
Старый 18.06.2019, 11:33   #1
Mrmenmo
 
Регистрация: 18.06.2019
Сообщений: 7
По умолчанию Сравнение множества переменных

Ребят, нужна помощь. Есть много переменных, каждая со своим значением, как сравнить их всех и выделить 5 переменных с наибольшим значением?
Переменные типа integer.
Mrmenmo вне форума Ответить с цитированием
Старый 18.06.2019, 13:21   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 4,943
По умолчанию

1. написать ОЧЕНЬ большой
Код:
     if (a>b)  and (a>c) and...  then begin v1:=a; v2:=b; ... end
else if (a<=b) and (a>c) and ... then begin v1:=b; v2:=a; ... end
else ...
2. заполнить НЕ очень большой массив. и...
2.1. отсортировать и выбрать первые (лучшие) в нужном количестве.
2.2. сделать по аналогии
https://programmersforum.ru/showpost...07&postcount=5
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 18.06.2019, 13:21   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,260
По умолчанию

Цитата:
Сообщение от Mrmenmo Посмотреть сообщение
Ребят, нужна помощь. Есть много переменных, каждая со своим значением, как сравнить их всех и выделить 5 переменных с наибольшим значением?
никак. когда-то для этих целей придумали массивы.
Заносите переменные в массивы и дальше ищите и максимальные и минимальные и вообще какие угодно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.06.2019, 03:17   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,595
По умолчанию

Цитата:
Сообщение от Mrmenmo Посмотреть сообщение
Есть много переменных
Вот это требует пояснения. Что такое в вашем понимании переменная?
northener вне форума Ответить с цитированием
Старый 23.06.2019, 21:02   #5
Mrmenmo
 
Регистрация: 18.06.2019
Сообщений: 7
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Вот это требует пояснения. Что такое в вашем понимании переменная?
Для меня переменная это допустим sv180:integer;
Которая по ходу программы принимает определённое значение. В конце дня, когда сессию закрывают, в памяти существует некий набор таких переменных, которые принимают определённое значение в зависимости от действий пользователя, вот мне нужно выбрать наибольшие значения. Нужно узнать допустим 5 наибольших значений и как то вывести.
Mrmenmo вне форума Ответить с цитированием
Старый 23.06.2019, 21:07   #6
digitalis
Участник клуба
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 1,990
По умолчанию

Цитата:
когда сессию закрывают, в памяти существует некий набор таких переменных
Откуда они берутся? Сами рождаются ?
Странная хотелка, напоминает динамический массив

Последний раз редактировалось digitalis; 23.06.2019 в 21:09.
digitalis вне форума Ответить с цитированием
Старый 24.06.2019, 03:10   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,595
По умолчанию

2 Mrmenmo.
А простым языком можете изложить вашу задачу? Ведь в конечном итоге суть задачи не в проверке неких переменных. Сия проверка скорее всего некий вариант её решения, который может быть далёк от оптимального.
northener вне форума Ответить с цитированием
Старый 27.06.2019, 09:26   #8
Mrmenmo
 
Регистрация: 18.06.2019
Сообщений: 7
По умолчанию

Смотрите, есть переменная sv180 типа integer, по ходу работы программы, она принимает значения ( она является счётчиком, считает сколько раз пользователь нажал на определённую кнопку), допустим, пользователь нажимает на кнопку и происходит следующее действие:
Sv180:=sv180+1;
Таких переменных и кнопок много в программе, задача высчитать 5 переменных с наибольшим значением при закрытии программы.

Последний раз редактировалось Mrmenmo; 27.06.2019 в 09:29.
Mrmenmo вне форума Ответить с цитированием
Старый 27.06.2019, 10:18   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 4,943
По умолчанию

есть ОДНА переменная
Код:
a: array [1..N] of integer;
в которой хранится множество значений (счетчиков)
и есть много разных переменных(и даже возможно констант) которые называются(мы назовем) ИНДЕКСАМИ.
Код:
var N180, N181, ...: integer;
  N180:=1; 
  N181:=2;
 ... 
  N18...:=N;

const 
  N180=1, N181=2, ..., N18... =N;
и каждый раз мы считаем(увеличиваем значение) ОДНОГО счетчика по заданному индексу.
Код:
a[N180]:=a[N180]+1;
далее смотри #2, #3 и ссылки

P.S. возможно!
запоминать(при поиске) нужно будет не сами значения, а их индексы.
Код:
var 
  N1, N2, N3, N4, N5: integer;
if a[i]>a[N1] // сравниваем значения по заданным индексам
  then N1:=i; // запоминаем новый лучший индекс
/ в реальности же будет написано немного больше
а потом ВЫВЕСТИ значения по ПЯТИ запомненным индексам.
a[N1], a[N2], ..., a[N5]
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 27.06.2019 в 10:24.
evg_m вне форума Ответить с цитированием
Старый 28.06.2019, 03:35   #10
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,595
По умолчанию

Цитата:
Сообщение от Mrmenmo Посмотреть сообщение
Смотрите, есть переменная sv180 типа integer, по ходу работы программы, она принимает значения
Я не это просил.
Ваш преподаватель, если вы учитесь или ваш начальник, если вы работаете дал вам задание проверять некую sv180? Или всё же вам задали другую задачу?

Последний раз редактировалось northener; 28.06.2019 в 03:40.
northener вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Через множества заданы сорта роз,выращиваемых цветоводами. Ввод множества с клавиатуры,сравнение множеств BAMbarBIO Паскаль, Turbo Pascal, PascalABC.NET 5 31.05.2011 13:17
Сравнение двух строковых переменных в C# ilshat09 Помощь студентам 7 27.02.2011 19:52
Сравнение переменных snikers987 PHP 26 12.02.2011 02:01
Сравнение объектных переменных NomadV Microsoft Office Word 1 09.04.2010 16:44
Метод класса. Возвращение множества переменных. C# Arhe Помощь студентам 2 06.10.2009 18:11