ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΠΈΠΊΠ»ΠΈΠ½ΠΈΠΊΠΈ

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Поиск Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Бтруктурная схСма Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π’Π°Π±Π»ΠΈΡ†Π° ΠΈΠΌΡ‘Π½ Π’ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ курсовой Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π±Ρ‹Π» создан ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ — ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΡƒΠ·Π»ΠΎΠ² списка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ экзСмпляры структуры node. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ Для выполнСния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ динамичСская структура памяти — список. Π’Π°ΠΊΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ я ΡΠ΄Π΅Π»Π°Π» ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΠΈΠΊΠ»ΠΈΠ½ΠΈΠΊΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π—Π°Π΄Π°Π½ΠΈΠ΅

НазначСниС ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Бтруктурная схСма Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы

Π’Π°Π±Π»ΠΈΡ†Π° ΠΈΠΌΡ‘Π½

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1(листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°)

Π—Π°Π΄Π°Π½ΠΈΠ΅ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ динамичСских структур Π΄Π°Π½Π½Ρ‹Ρ…. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ динамичСскиС структуры (списки, Π΄Π΅Ρ€Π΅Π²ΡŒΡ, ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, стСки ΠΈ Ρ‚. ΠΏ.) Π² Ρ‚ΠΎΠΌ случаС, Ссли для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ окаТСтся Π±ΠΎΠ»Π΅Π΅ цСлСсообразным. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выполнСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌΠΈ структурами Π΄Π°Π½Π½Ρ‹Ρ…:

ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ;

Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов;

ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов;

ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…;

поиск элСмСнтов структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΡ… Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ критСриям;

Π²Ρ‹Π²ΠΎΠ΄ всСх элСмСнтов структуры Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠΊΡ€Π°Π½.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ № 2 «ΠŸΠΎΠ»ΠΈΠΊΠ»ΠΈΠ½ΠΈΠΊΠ°»

НазначСниС ΠΈ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠžΠ±Π»Π°ΡΡ‚ΡŒ примСнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ — рСгистрация Π±ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π² ΠΏΠΎΠ»ΠΈΠΊΠ»ΠΈΠ½ΠΈΠΊΠ΅. Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ вСдСния ΡƒΡ‡Π΅Ρ‚Π° ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π° ΠΏΠΎΠ»ΠΈΠΊΠ»ΠΈΠ½ΠΈΠΊΠ΅.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ возмоТности ΠΈ Ρ…арактСристики ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, упорядочСнный ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ, список ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ², содСрТащий ЀИО, Π³ΠΎΠ΄ роТдСния ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ отдСлСния Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ больной. Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹Π΅ записи ΠΎ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°Ρ…, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ просмотр всСго ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ списка, ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ записи ΠΎ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°Ρ…, осущСствляя ΠΈΡ… ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ: ЀИО ΠΈ Π³ΠΎΠ΄ роТдСния.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ Для выполнСния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ динамичСская структура памяти — список. Π’Π°ΠΊΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ я ΡΠ΄Π΅Π»Π°Π» ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈΠ»ΠΈ стСка.

Бписком называСтся упорядочСнноС мноТСство, состоящСС ΠΈΠ· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ числа элСмСнтов, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Бписок, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ сосСдства ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами, называСтся Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ. Если ограничСния Π½Π° Π΄Π»ΠΈΠ½Ρƒ списка Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ся, Ρ‚ΠΎ ΡΠΏΠΈΡΠΎΠΊ прСдставляСтся Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ Π² Π²ΠΈΠ΄Π΅ связной структуры. Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ связныС списки ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌΠΈ динамичСскими структурами Π΄Π°Π½Π½Ρ‹Ρ….

ГрафичСски связи Π² ΡΠΏΠΈΡΠΊΠ°Ρ… ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стрСлок. Если ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π° Π½ΠΈ Ρ ΠΊΠ°ΠΊΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ρ‚ΠΎ Π² ΠΏΠΎΠ»Π΅ указатСля Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π½ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ элСмСнт. Вакая ссылка обозначаСтся ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ — nil.

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° структура односвязного списка. На Π½Π΅ΠΌ ΠΏΠΎΠ»Π΅ INF — ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π΄Π°Π½Π½Ρ‹Π΅, NEXT — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт списка. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ список Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ особый элСмСнт, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π°Ρ‡Π°Π»Π° списка ΠΈΠ»ΠΈ Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ списка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ ΠΎΡ‚Π»ΠΈΡ‡Π΅Π½ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов. Π’ ΠΏΠΎΠ»Π΅ указатСля послСднСго элСмСнта списка находится ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ nil, ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎ ΠΊΠΎΠ½Ρ†Π΅ списка.

Рис. Бписок.

Π˜Ρ‚Π°ΠΊ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ связный список ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π°Π΄ Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Поиск Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Бтруктурная схСма Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π’Π°Π±Π»ΠΈΡ†Π° ΠΈΠΌΡ‘Π½ Π’ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ курсовой Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π±Ρ‹Π» создан ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ — ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΡƒΠ·Π»ΠΎΠ² списка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ экзСмпляры структуры node.

TPPacient = ^TPacient; //ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚ΠΈΠΏ Tpacient

TPacient = record

name:string[20]; //ЀИО

date:string[4]; //Π³ΠΎΠ΄ роТдСния

vr:string[20]; //Π²Ρ€Π°Ρ‡

next:TPPacient; //ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт списка

head: TPPacient; // голова списка

node: TPPacient; //Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π» списка

curr: TPPacient; //Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΠ·Π΅Π» списка

pre: TPPacient; //ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ curr) ΡƒΠ·Π΅Π» списка

new (node); //созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта списка

node^.name:= Edit1. Text; //ЀИО

node^.date:= Edit2. Text; //Π“ΠΎΠ΄ роТдСния

node^.vr:= ListBox1. Items[listBox1.ItemIndex]; //Π²Ρ€Π°Ρ‡

procedure Button1Click (Sender: TObject);//Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π° Π² ΡΠΏΠΈΡΠΎΠΊ

procedure Button2Click (Sender: TObject);//Π²Ρ‹Π²ΠΎΠ΄ списка ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ²

procedure Button3Click (Sender: TObject);//ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ появляСтся Ρ„ΠΎΡ€ΠΌΠ° (рис. 1)

Рис. 1

Для добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π° Π² ΡΠΏΠΈΡΠΎΠΊ Π½ΡƒΠΆΠ½ΠΎ ввСсти Π² ΠΏΠΎΠ»Ρ «Π€Π˜Πž» ΠΈ «Π“ΠΎΠ΄ роТдСния» Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ курсором ΠΌΡ‹ΡˆΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, отдСлСния Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ направляСтся больной. Когда Π΄Π°Π½Π½Ρ‹Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ». Бписок ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² автоматичСски сортируСтся ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ.

Для просмотра Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ списка ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π²Ρ‹Π²Π΅ΡΡ‚ΠΈ список». (рис. 2)

Рис.2

Для поиска ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Π° Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎ ввСсти Π΅Π³ΠΎ ЀИО, Π³ΠΎΠ΄ роТдСния ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ». Если ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ присутствуСт Π² ΡΠΏΠΈΡΠΊΠ΅ появится сообщСниС (рис. 3)

Рис.3

И ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° «ΠžΠš» появится сообщСниС (рис.4)

Рис.4

Если Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚Ρƒ, Ρ‚ΠΎΠ³Π΄Π° появится сообщСниС (рис.5)

Рис.5

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ удалСния ΠΌΠΎΠΆΠ½ΠΎ снова Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π²Ρ‹Π²Π΅ΡΡ‚ΠΈ список» (рис.6)

Рис.6

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΠΈΠΊΠ»ΠΈΠ½ΠΈΠΊΠΈ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ динамичСских структур Π΄Π°Π½Π½Ρ‹Ρ…. Для выполнСния ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ динамичСских структур использовались связныС списки. Π‘Ρ‹Π»Π° ΠΈΠ·ΡƒΡ‡Π΅Π½Π° тСория вопросу, Π·Π°Ρ‚Π΅ΠΌ, Π² ΡΡ€Π΅Π΄Π΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Delphi, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ класс для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΈ ΠΈΠ½Ρ‚СрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных языков программирования ΡƒΠΆΠ΅ содСрТат встроСнныС срСдства для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ, Π½ΠΎ Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ самому Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство для Π±ΠΎΠ»Π΅Π΅ эффСктивного использования.

Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹ΠΉ список ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° Никита ΠšΡƒΠ»ΡŒΡ‚ΠΈΠ½ «Delphi Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…» Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ 2003

Π”ΠΆΡƒΠ»ΠΈΠ°Π½ М. Π‘Π°ΠΊΠ½Π΅Π»Π» «Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² Delphi» DiaSoft Москва 2003

Π’ΠΈΡ€Ρ‚ Н. «ΠΠ»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…» ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». — Πœ.: ΠœΠΈΡ€, 1989.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1(листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°)

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class (TForm)

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

ListBox1: TListBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Button3Click (Sender: TObject);

var

Form1: TForm1;

implementation

{$R *.dfm}

type

TPPacient = ^TPacient; //ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚ΠΈΠΏ Tpacient

TPacient = record

name:string[20]; //ЀИО

date:string[4]; //Π³ΠΎΠ΄ роТдСния

vr:string[20]; //Π²Ρ€Π°Ρ‡

next:TPPacient; //ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт списка

end;

var

head: TPPacient; // голова списка

procedure TForm1. Button1Click (Sender: TObject);

var

node: TPPacient; //Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π» списка

curr: TPPacient; //Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΠ·Π΅Π» списка

pre: TPPacient; //ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ curr) ΡƒΠ·Π΅Π» списка

begin

new (node); //созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта списка

node^.name:= Edit1. Text; //ЀИО

node^.date:= Edit2. Text; //Π“ΠΎΠ΄ роТдСния

node^.vr:= ListBox1. Items[listBox1.ItemIndex]; //Π²Ρ€Π°Ρ‡

//Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»Π° Π² ΡΠΏΠΈΡΠΎΠΊ

//Π½Π°ΠΉΠ΄Π΅ΠΌ подходящСС мСсто

curr:=head;

pre:=NIL;

while (curr <> NIL) and (node.name > curr^.name) do

begin

// Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ большС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ

pre:= curr;

curr:=curr^.next; // ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡƒΠ·Π»Ρƒ

end;

if pre = NIL

then

begin

// Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π² Π½Π°Ρ‡Π°Π»ΠΎ списка

node^.next:=head;

head:=node;

end

else

begin

// Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΠ·Π΅Π» послС pre, ΠΏΠ΅Ρ€Π΅Π΄ curr

node^.next:=pre^.next;

pre^.next:=node;

end;

Edit1.text:='';

Edit2.text:='';

Edit1.SetFocus;

end;

procedure TForm1. Button2Click (Sender: TObject);

var

curr: TPPacient; // Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ элСмСнт списка

n:integer; // Π΄Π»ΠΈΠ½Π° (ΠΊΠΎΠ»-Π²ΠΎ элСмСнтов) списка

st:string; // строковоС прСдставлСниС списка

begin

n:=0;

st:='';

curr:=head;

while curr <> NIL

do

begin n:=n+1;

st:=st+curr^.name+' '+curr^.date+' '+curr^.vr+#13;

curr:=curr^.next;

end;

if n <> 0

then ShowMessage ('Бписок ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ²: '#13+st)

else ShowMessage ('Π’ спискС Π½Π΅Ρ‚ элСмСнтов.');

end;

procedure TForm1. FormCreate (Sender: TObject);

begin

head:=NIL; // список пустой

end;

//ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ†ΠΈΠ΅Π½Ρ‚ΠΎΠ²

procedure TForm1. Button3Click (Sender: TObject);

var

curr:TPPacient; // Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ, провСряСмый ΡƒΠ·Π΅Π»

pre: TPPacient; // ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΡƒΠ·Π΅Π»

found:boolean; // TRUE — ΡƒΠ·Π΅Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π΄ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π² ΡΠΏΠΈΡΠΊΠ΅

buttonSelected: Integer;

begin

if head = NIL then

begin

MessageDlg ('Бписок пустой!', mtError,[mbOk], 0);

Exit;

end;

curr:=head; // Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΠ·Π΅Π» — ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΠ·Π΅Π»

pre:=NIL; // ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΡƒΠ·Π»Π° Π½Π΅Ρ‚

found:=FALSE;

// Π½Π°ΠΉΡ‚ΠΈ ΡƒΠ·Π΅Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π΄ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ

while (curr <> NIL) and (not found) do

begin

if (curr^.name = Edit1. Text) and (curr^.date = Edit2. Text)

then found:=TRUE // Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π½Π°ΠΉΠ΄Π΅Π½

else // ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΡƒΠ·Π»Ρƒ

begin

pre:=curr;

curr:=curr^.next;

end;

end;

if found then

begin

// Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π½Π°ΠΉΠ΄Π΅Π½

if MessageDlg ('ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°!',

mtWarning,[mbOk, mbCancel], 0) = mrOk

then {Exit}

begin

// удаляСм ΡƒΠ·Π΅Π»

if pre = NIL

then head:=curr^.next // удаляСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΠ·Π΅Π» списка

else pre^.next:=curr.next;

Dispose (curr);

MessageDlg ('Π£Π·Π΅Π»' + #13 +

'ЀИО:'+Edit1.Text + #13 +

Edit2.Text+' Π³ΠΎΠ΄Π° роТдСния'+ #13 +

'ΡƒΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°.',

mtInformation,[mbOk], 0);

end

else Exit;

end

else // ΡƒΠ·Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π΄ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ, Π² ΡΠΏΠΈΡΠΊΠ΅ Π½Π΅Ρ‚

MessageDlg ('ΠŸΠ°Ρ†ΠΈΠ΅Π½Ρ‚' + #13 +

'ЀИО:' + Edit1. Text + #13 +

Edit2.Text +' Π³ΠΎΠ΄Π° роТдСния'+ #13 +

'Π² спискС Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.',

mtError,[mbOk], 0);

Edit1.Text:='';

Edit1.Text:='';

Edit1.SetFocus;

end;

end.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ