Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Паскаль. Записи, задача на записи. 
:(
    Опции темы
Zoyka
Дата 21.4.2010, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 21.4.2010
Где: москва

Репутация: нет
Всего: нет



База данных содержит фамилию пациента и диагноз. Написать программу, определяющую пациентов с наиболее распространенным заболеванием.

Базаданных задается самостоятельно (30 записей)


Код

Uses crt;

Type BazaDannyx=record
FIO: string[40];
Diagnoz: string[50];
end;
Var pacient:array [1..30] of BazaDannyx;
i:integer;
Begin;
clrscr;
for i:=1 to 30 do
begin
writeln ('bbedite FIO' ,i, '-ogo pacienta');
readln (pacient[i].FIO);
writeln ('bbedite Diagnoz',i,'-ogo pacienta');
readln (pacient[i].Diagnoz);
end;
End.



вот мой код, нужно только поставить проверку на распространенный диагноз.


M
THandle
Модератор: используйте подсветку кода!

PM MAIL   Вверх
Romtek
Дата 22.4.2010, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Задача аналогична поиску самого частовстречаемого элемента в массиве (анализ частот).

Тебе нужно завести дополнительный массив DiseaseTable размером в общее число болезней (или с запасом, если неизвестно; их может быть больше количества пациентов) и, проходя поочерёдно по записям пациентов, обновлять (предыдущее значение+1) счётчик частоты встречаемости: Inc(DiseaseTable[k].count); где k - индекс болезни в таблице известных болезней DiseaseTable.

1. Пройдясь по записям пациентов (FOR TO), заполнить таблицу DiseaseTable всем разнообразием болезней, одновременно обнуляя счётчик частоты встречаемости.
В итоге должно быть подобно этому:

болезнь | частота
-----------------------
болезнь1 | 0
болезнь2 | 0
болезнь3 | 0
болезнь4 | 0
болезнь5 | 0
...

Заносить нужно, проверяя, что болезни не повторяются в таблице.

2. Заново пройдясь по записям пациентов, заполнить таблицу DiseaseTable частотой встречаемости, в зависимости от диагноза болезни:

болезнь | частота
-----------------------
болезнь1 | 2
болезнь2 | 1
болезнь3 | 5
болезнь4 | 4
болезнь5 | 4
...


3. Отсюда видно, что болезнь3 является самой распространённой. А это и есть поиск максимального числа в массиве DiseaseTable.

4. Поиск с выводом на экран пациентов, удовлетворяющих условию:
болезнь пациента[k] = распространённая болезнь (IF THEN)

То есть, последний, 3-й, проход по записям пациентов.

Добавлено через 11 минут и 31 секунду
Вот дополнительное описание таблицы DiseaseTable
Код


Type
    DisFreq = Record { частота конкретной болезни }
        disease: string[50];
        count: word
    end;
    
Const
    MaxDis = 30;
    
Var
    DiseaseTable: Array [1 .. MaxDis] Of DisFreq;


--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
Zoyka
Дата 22.4.2010, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 21.4.2010
Где: москва

Репутация: нет
Всего: нет



Хм..я понять - то поняла, да и впринципе думала вроде того же, только проблема у меня и заключается в том, что я не могу реализовать..=(
PM MAIL   Вверх
Romtek
Дата 23.4.2010, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 153
Регистрация: 7.12.2004
Где: Холон

Репутация: нет
Всего: 4



Если поняла - дерзай. Нет - спрашивай. Задание то ведь твоё, а не моё.
Не знаешь как пройтись по всем введённым записям? Операторы условия ещё не изучали?

Оперировать различными структурами данных ты уже должна уметь, так что шаг за шагом, по пунктам, попытайся решать. Говорят, помогает.
--------------------
Romiras HomeLab - материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и пр.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.