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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2012, 16:41   #1
Fobos1994
 
Регистрация: 15.11.2011
Сообщений: 4
Вопрос Подсчитать количество совпадений

Обьясню в кратце:
Нужно написать програму со структурой:
1)фамилия жениха
2)Фамилия невесты
3)Дата регистрации
4)Дата подачи заявки
5)Отметка(Да/Нет)
(это сделано)

Нужно выдать информацию:
-дата регистрации наиболие большого количесвта свадьб

Тобиш,нужно определить сколько свадьб происходит по определленной дате.
Я пришел к такому выводу,что нужно както из базы,взять и сравнить все даты,Те даты которые совпадают,подщитать,а потом уже определить какое количство самое большое..
но вот с реализацие не все получается..помогите
Код:
Unit poiskk;
interface
uses Crt;
type zavod=record
     Famz:string[25];
     famn:string[20];
     data_r:string[10];
     data_p:string[10];
     vidm:string[3];
 end;
 
var  f,f1:file of zavod;
     i,j,n,s:integer;
     z:zavod;
                   v:char;
                   st,dr:string;
     max,k:real;
     z_max:zavod;
procedure Poisk;
 
implementation
procedure Poisk;
......

а вот дальше...


ну насколько я понял,нужно будет брать первый элемент сравнивать с остальными,а совпадения подщитывать.Затем брать второй элемент и проводить ту же процедуру,а потом сравнить и опредеиить количестаа совпадений и опредлить самое болшое!но как это прописать в коде я незнаю...

Последний раз редактировалось Stilet; 22.04.2012 в 17:05.
Fobos1994 вне форума Ответить с цитированием
Старый 23.04.2012, 02:38   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
-дата регистрации наиболие большого количесвта свадьб
по хорошему, надо бы отсортировать массив по дате регистрации, потом проходиться в цикле, подсчитывая сколько одинаковых значений встретилось и искать максимальное значение этого параметра.

второй проход выдавать те даты, для которых количество равно максимальному значению.

"по-плохому", можно обойтись и без сортировки - для каждой даты регистрации перебором всех значений искать, сколько раз эта дата встречается в списке, это значение и использовать для поиска максимама и выдачи результата.

я бы выбрал вариант решения с использованием сортировки!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.04.2012, 06:55   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

А я бы сделал дополнительный массив целых чисел по датам. Примерно так:
Код:
var
  Stat: array[1901..2100,1..12,1..31]of word;
Массив получится немаленький, но и не такой уж большой. Во взятом мной примере это 74400 элементов - это больше возможностей TP, но для современного компилятора (и для современных объемов памяти на компах) это просто ерунда .
Сначала его надо обнулить (на самом деле, если он глобальный, то это будет сделано автоматически, и делать повторно нет нужды, но если поиск будет проводится повторно, то надо обязательно это делать). А потом пройтись в цикле по всем записям и инкриминировать элемент с соответствующей датой. И наконец, просто найти максимум в этом массиве.
Код:
for Year:=1901 to CurrentYear do
  for Month:=1 to 12 do
    for Day:=1 to 31 do
      if Stat[Year,Month,Day]>Stat[MinYear,MinMonth,MinDay] then begin
        MinYear:= Year;
        MinMonth:= Month;
        MinDay:= Day
      end;
P.S.
Кстати, я бы переделал формат даты в записи на отдельные _числовые_ значения года, месяца и дня.
Предпочитаю на "ты".

Последний раз редактировалось TinMan; 23.04.2012 в 07:00.
TinMan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчитать количество ВіталікФ Microsoft Office Excel 1 04.04.2012 22:34
Задана последовательность чисел в формате:сначала количество цифр в числе, потом - цифры числа. Подсчитать количество. Arn1 Помощь студентам 4 03.10.2011 20:03
Подсчитать количество слов и количество букв MDSIQ Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.11.2010 16:57
Как подсчитать количество совпадений в таблице? MySQL evgenrpo PHP 8 14.12.2009 15:24