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

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

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

> Задача на записи., прошу помочь разобратся
сообщение
Сообщение #1


Новичок
*

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

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


Задача:
В картотеке поликлиники значатся доктора и пациенты. С использованием типа:
type личность=record
фамилия:тип;
инициалы:тип;
г.рождения:тип;
адрес:тип;
end;
Вывести на экран фамилии пациентов заданного специалиста.

Я понимаю так, что нужно создать массив пациентов с указанием больных органов и массив докторов с указанием органов которые они лечат. А потом по полю записи доктора органы которые он лечит сделать выборку пациентов у которых эти ограны больны. Правильно я понимаю?
Чёт мудрено больно. И как это сделать? Кто знает помогите пожалуйста.
Заранее благодарен за любую помощь или подсказку.

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


Гость






Да пожалуйста smile.gif
Хочешь сделать еще лучше? Делай так:
Type
TWeakSet = (_koja, _glaz, _uho, _gorlo, _nos); { <-- перечисляешь все органы, доступные для лечения}
TW = Set of TWeakSet;

TDocSet = (_dermatolog, _okulist, _LOR); { <-- специализации врачей }
TDocSpec = Array[TDocSet] of TW = (
[_koja], { <-- Органы, к-рые лечит дерматолог }
[_glaz], { <-- Органы, к-рые лечит окулист }
[_uho, _gorlo, _nos] { <-- Органы, к-рые лечит ЛОР }
);


Тогда описание врача и больного будет выглядеть по-другому:
  TDoctor = record { <--- Врач }
private_data: TPerson;
specialist: TDocSet; { <--- специализация врача }
end;
TWeak = record { <--- Больной }
private_data: TPerson;
problem: TWeakSet; { <--- проблемный орган }
end;
...

Таким образом, уже есть соответствие между специализацией врача (TDoctor.specialist) и проблемой больного (TWeak.problem), оно записано в массиве TDocSpec... И если у нас (как и раньше) выбран доктор, индекс которого в массиве равен N, то определение "его" больных сводится к:
  For i := 1 to max_weaks do
if Weaks[i].problem in TDocSpec[ Doctors[N].specialist ] then
{ распечатать_данные_больного с индексом i }


P.S. Преимущество этого способа: минимальными изменениями программы можно сделать так, чтобы у каждого больного мог быть не один, а несколько больных органов...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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