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

ВычислСниС опрСдСлитСля Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ элСмСнтам строки. 
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Π΄Π΅Π» сайта

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

Для Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎ Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° Π·Π°Π΄Π°Ρ‡Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: вычислСниС опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ строки. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ рСкурсивныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡ…ΠΎΠ΄ΡƒΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ пространство стСка, Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡Π½ΠΎΠΌ использовании динамичСской памяти. ИспользованиС рСсурсоСмкой рСкурсии оправдываСтся удобством… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ВычислСниС опрСдСлитСля Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ элСмСнтам строки. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Π΄Π΅Π» сайта (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠ˜ΠΠ˜Π‘Π’Π•Π Π‘Π’Π’Πž ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π― И ΠΠΠ£ΠšΠ˜ Π ΠžΠ‘Π‘Π˜Π™Π‘ΠšΠžΠ™ Π€Π•Π”Π•Π ΠΠ¦Π˜Π˜ Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ государствСнноС Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ образования

«ΠšΠ£Π‘ΠΠΠ‘ΠšΠ˜Π™ Π“ΠžΠ‘Π£Π”ΠΠ Π‘Π’Π’Π•ΠΠΠ«Π™ Π£ΠΠ˜Π’Π•Π Π‘Π˜Π’Π•Π’»

(Π€Π“Π‘ΠžΠ£ Π’ΠŸΠž «ΠšΡƒΠ±Π“Π£»)

ΠšΠ°Ρ„Π΅Π΄Ρ€Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π”Π˜ΠŸΠ›ΠžΠœΠΠΠ― Π ΠΠ‘ΠžΠ’Π ВычислСниС опрСдСлитСля Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ строки.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Π΄Π΅Π» сайта Π Π°Π±ΠΎΡ‚Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» Вюлин Никита Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ΠΎΠ²ΠΈΡ‡ Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π½Π°ΡƒΠΊ, курс 5, Π³Ρ€ΡƒΠΏΠΏΠ° 52

ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ 10 101.65 ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° Научный Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, ΠΊΠ°Π½Π΄. Ρ„ΠΈΠ·.-ΠΌΠ°Ρ‚. Π½Π°ΡƒΠΊ, Π΄ΠΎΡ†Π΅Π½Ρ‚ Π’. Π—. Цалюк ΠšΡ€Π°ΡΠ½ΠΎΠ΄Π°Ρ€ 2013

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

1. ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ

1.1 Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ

1.2 ДинамичСская ΠΏΠ°ΠΌΡΡ‚ΡŒ

1.3 ВСрстка Π²Π΅Π± страниц

2. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ

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

2.2 Алгоритм ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Слям

2.3 ВрСбования ΠΊ ΡƒΡ‡Π΅Π±Π½ΠΎΠΌΡƒ тСксту

2.4 ВрСбования ΠΊ Π²Π΅Π±-страницС

2.5 РСшСниС поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ функция ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Данная дипломная Ρ€Π°Π±ΠΎΡ‚Π° посвящСна наглядному ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠΊΠ°Π·Π°Ρ‚Слями ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. Π’ ΠΏΡ€Π°ΠΊΡ‚ичСской части для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ поэтапно описываСтся процСсс написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ языка программирования Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ Pascal.

ЦСлью Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся составлСниС ΡƒΡ‡Π΅Π±Π½ΠΎ-мСтодичСского тСкста ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ «Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ». Π’ Ρ‡Π°ΡΡ‚ности, планируСтся:

1) Π½Π° Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Слям, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π½Π° ΡΠ°ΠΉΡ‚Π΅ Π’. Π—. Цалюка [1];

2) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ ΡƒΡ‡Π΅Π±Π½ΠΎ-мСтодичСского тСкста ΡΠ²Π΅Ρ€ΡΡ‚Π°Ρ‚ΡŒ html Π²Π΅Ρ€ΡΠΈΡŽ, ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡƒΡŽ для использования Π½Π° Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ сайтС.

ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ написана Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ², располоТСнных сайтС Π’. Π—. Цалюка. Π’Π°ΠΊΠΆΠ΅ использовались ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ сайта Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ΡΠΊΠΎΠ³ΠΎ государствСнного унивСрситСта Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ особСнно Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для составлСния Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

Β· ?ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ программирования (ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ сущСствСнно ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° массива);

Β· ?ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ динамичСских структур Π΄Π°Π½Π½Ρ‹Ρ… (Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ связанныС списки ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ массивы);

Β· ?ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ выполняСтся динамичСскоС распрСдСлСниС памяти.

Однако написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ напряТСния ΠΈ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ внимания. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ряд Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ содСрТит Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСработоспособной. МоТно Π»Π΅Π³ΠΊΠΎ ΠΎΡˆΠΈΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ использовании ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ; ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ошибки, связанныС с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½Π°ΠΉΡ‚ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ. Но ΠΏΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° программирования с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡ€ΡƒΡŽΡ‚ всС слоТности.

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ситуации, ΠΊΠΎΠ³Π΄Π° Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎ, сколько ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² — чисСл, элСмСнтов массива, строк тСкста ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Π’ ΡΡ‚ΠΎΠΌ случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ динамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ занимаСтся ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ‚ся Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ происходит посрСдством ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π―Ρ€ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, которая Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Π±Π°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π²Π²ΠΎΠ΄ элСмСнтов массива. Иногда для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ достаточно ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ массива с ΠΊΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΎΠΉ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

CONST NN = 3;

TYPE

Vec = ARRAY[1.NN] OF REAL;

PROCEDURE WriteVec (v: Vec);

VAR i: WORD;

BEGIN

FOR i := 1 TO NN DO

ReadLn (v[i]);

END

Π­Ρ‚ΠΎΡ‚ способ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ограничСния. Π§Ρ‚ΠΎΠ±Ρ‹ функция Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° с Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ константу ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΠΌΠΈ массивами Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, особСнно Ссли Π΄Π»ΠΈΠ½Π° массивов Π½Π΅ ΠΈΠ·Π²Π΅ΡΡ‚Π½Π° Π΄ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΠΈ.

НСрСдко Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации Π½Π΅ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ программист поступаСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Он Π·Π°Π΄Π°Π΅Ρ‚ достаточно Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ константу, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ срСди ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

CONST NN = 15;

TYPE

Vec = ARRAY[1.NN] OF REAL;

PROCEDURE WriteVec (v: Vec; k: WORD);

VAR i: WORD;

BEGIN

FOR i := 1 TO k DO

ReadLn (v[i]);

END;

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ со ΡΠ²ΠΎΠ΅ΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, ΠΎΠ½, Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ ограничСния (такая ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, Π΄Π»ΠΈΠ½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… большС NN). Но, Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½Π΅Π΅, Π΄Π°Π½Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ являСтся Ρ€Π°ΡΡ‚ΠΎΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π²Ρ€Π΅Π΄Π½Ρ‹ΠΌ для обучСния. Для любого массива ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ приходится Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ массива, расходуя ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ рСсурсы стСка. Битуация усугубляСтся, Ссли ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ для своих Ρ†Π΅Π»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Π² ΡΡ‚Π΅ΠΊ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли исходный массив Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ послС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹).

Для Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎ Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° Π·Π°Π΄Π°Ρ‡Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: вычислСниС опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ строки. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ рСкурсивныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡ…ΠΎΠ΄ΡƒΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ пространство стСка, Ρ‡Ρ‚ΠΎ Ρ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡Π½ΠΎΠΌ использовании динамичСской памяти. ИспользованиС рСсурсоСмкой рСкурсии оправдываСтся удобством программирования. А Π² Π·Π°ΡΠ²Π»Π΅Π½Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ эффСктивных с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния скорости ΠΈ Ρ€Π΅ΡΡƒΡ€ΡΠΎΠ΅ΠΌΠΊΠΎΡΡ‚ΠΈ, Π½ΠΎ ΠΌΠ΅Π½Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вычислСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ цСлочислСнных ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π±Π΅Π· ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ.

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

1. ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ

1.1 Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ — это пСрСмСнная, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся адрСс Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ) Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Подобно Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ пСрСмСнная Ρ‚ΠΈΠΏΠ° CHAR ΠΈΠΌΠ΅Π΅Ρ‚ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ значСния символ, Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Ρ‚ΠΈΠΏΠ° INTEGER — цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, пСрСмСнная Ρ‚ΠΈΠΏΠ° указатСля ΠΈΠΌΠ΅Π΅Ρ‚ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ значСния адрСс ячСйки ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ДопустимыС значСния для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-указатСля — мноТСство адрСсов ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.;

Π’ ΡΠ·Ρ‹ΠΊΠ΅ Pascal объявлСниС Ρ‚ΠΈΠΏΠ° указатСля состоит ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»Π° ^ (ΠΊΡ€Ρ‹ΡˆΠΊΠ°, циркумфлСкс) ΠΈ ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ°.

ΠžΠ±Ρ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° объявлСния указатСля:

Имя: ^Вип;

Π’ΠΈΠΏ указатСля опрСдСляСт Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

p1: ^REAL;

ЀактичСски ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ любого Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π»ΡŽΠ±ΠΎΠ΅ мСсто Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ, Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Π΅ Π½Π°Π΄ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сущСствСнно зависят ΠΎΡ‚ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’Π°ΠΊ, Ссли объявлСн ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚ΠΈΠΏΠ°INTEGER, компилятор ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любой адрСс, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ΡΡΡ‹Π»Π°Π΅Ρ‚ся, содСрТит ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° INTEGER, хотя это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π½Π΅ Ρ‚Π°ΠΊ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, объявляя ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ совмСстим с Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ.

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ указатСля тСсно связано с ΠΏΠΎΠ½ΡΡ‚ΠΈΠ΅ΠΌ адрСса ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’ ΡΠ·Ρ‹ΠΊΠ΅ Pascal Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ опСрация, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ адрСс любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

@p — ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ адрСса, Π³Π΄Π΅ p — ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ являСтся адрСс ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ p.

ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ связано с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ косвСнной адрСсации, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Π΅Ρ‰Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ разымСнования, которая ΠΈΠΌΠ΅Π΅Ρ‚ структуру: Ρ€^ — Ρ€Π°Π·Ρ‹ΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, Π³Π΄Π΅ Ρ€ — ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-указатСля. Π­Ρ‚Π° запись ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΡΡ‡Π΅ΠΉΠΊΡƒ с Π°Π΄Ρ€Π΅ΡΠΎΠΌ, записанным Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ€, ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹.

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ адрСса указатСля выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° Inc (p). УмСньшСниС — с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° Dec (p).

1.2 ДинамичСская ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠŸΡ€ΠΈ использовании динамичСской памяти (Π”ΠŸ) ΠΎΡ‚ΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ для хранСния Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ динамичСской ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ — это ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ для Π΅Π³ΠΎ хранСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΈ динамичСском Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ памяти для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Ρ‚Π°ΠΊ называСмая «ΠΊΡƒΡ‡Π°» (heap). ОбъСм «ΠΊΡƒΡ‡ΠΈ» ΠΈ Π΅Π΅ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ зависят ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти, которая опрСдСляСт Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру памяти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ способом:

GetMem (p, s * n);

Π—Π΄Π΅ΡΡŒ p — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ массив участка динамичСской памяти, s — количСство Π±Π°ΠΉΡ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для размСщСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта массива, n — Π΄Π»ΠΈΠ½Π° массива (Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°).

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° s Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° элСмСнтов массива ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вычислСно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

s := Size (TYPE);

Π“Π΄Π΅ TYPE — Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… элСмСнта массива.

ПослС использования ΠΏΠ°ΠΌΡΡ‚ΡŒ слСдуСт ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ:

FreeMem (p, s * n);

ΠŸΡ€ΠΈΡ‡Π΅ΠΌ всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ с Ρ‚Π΅ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались ΠΏΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ.

1.3 ВСрстка Π²Π΅Π±-страниц

Π’Π΅Π±-страница — гипСртСкстовый рСсурс ВсСмирной ΠΏΠ°ΡƒΡ‚ΠΈΠ½Ρ‹, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ написанный Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ HTML. Π’Π΅Π±-страница ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылки для быстрого ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ страницы, Π° Ρ‚Π°ΠΊΠΆΠ΅ статичСскиС ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ изобраТСния. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π²Π΅Π±-страницу, называСтся Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. НСсколько Π²Π΅Π±-страниц, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‰Π΅ΠΉ Ρ‚Π΅ΠΌΠΎΠΉ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ связанных ΠΌΠ΅ΠΆΠ΄Ρƒ собой ссылками, ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ находящихся Π½Π° ΠΎΠ΄Π½ΠΎΠΌ Π²Π΅Π±-сСрвСрС, ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Π²Π΅Π±-сайт.

HTML (ΠΎΡ‚ Π°Π½Π³Π». Hypertext Markup Language — «ΡΠ·Ρ‹ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ гипСртСкста») — это стандартный язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² (страниц сайтов) Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. ВсС Π²Π΅Π±-страницы ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ языка HTML (ΠΈΠ»ΠΈ XHTML). Π―Π·Ρ‹ΠΊ HTML интСрпрСтируСтся Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠΌ ΠΈ ΠΎΡ‚обраТаСтся Π² Π²ΠΈΠ΄Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΌ для восприятия Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ.

Вёрстка Π²Π΅Π±-страниц сайта — процСсс формирования Π²Π΅Π±-страниц сайта Π² Ρ‚Скстовом Π»ΠΈΠ±ΠΎ WYSIWYG Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этого процСсса, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ собствСнно Π²Π΅Π±-страницы.

CSS (Π°Π½Π³Π». Cascading Style Sheets — каскадныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй) — тСхнология описания внСшнСго Π²ΠΈΠ΄Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° (страницы сайта), написанного языком Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ срСдство оформлСния Π²Π΅Π±-страниц Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ HTML ΠΈ XHTML, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ XML, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ SVG ΠΈ XUL.

2. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ

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

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠ½Ρ‹Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Слям. Π‘Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΡƒΠ΅ΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° с Ρ†Π΅Π»ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ элСмСнтами. Π’ ΠΎΡΠ½ΠΎΠ²Ρƒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ разлоТСния ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ΅ Π³Π΄Π΅ — элСмСнт ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, стоящий Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠΈ i-Ρ‚ΠΎΠΉ строки с j-Ρ‚Ρ‹ΠΌ столбцом ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π° — Π΅Π³ΠΎ ΠΌΠΈΠ½ΠΎΡ€, Ρ‚. Π΅. ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ n-1-Π³ΠΎ порядка, составлСнный ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ послС вычСркивания i-Ρ‚ΠΎΠΉ строки ΠΈ j-Ρ‚ΠΎΠ³ΠΎ столбца.

2.2 Алгоритм ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Слям

Π”Π°Π»Π΅Π΅ сформулируСм основныС этапы Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Слям, использовавшСгося Π½Π° ΡΠ°ΠΉΡ‚Π΅ Π’. Π—. Цалюка для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ простых ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². НС ΡΡƒΠΆΠ°Ρ общности рассуТдСний, Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ языка Pascal.

Π˜Ρ‚Π°ΠΊ, Ссли имССтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°), Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ фиксированной Π΄Π»ΠΈΠ½Ρ‹, ΠΈ Ρ‚рСбуСтся ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ), которая ΠΌΠΎΠ³Π»Π° Π±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² (Π² Ρ‚ΠΎΠΌ числС Π½Π΅ ΠΈΠ·Π²Π΅ΡΡ‚Π½Ρ‹Ρ… Π΄ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΠΈ), Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ:

Β· ВсС размСрности вносятся Π² Ρ€Π°Π·Π΄Π΅Π» CONST. А Π²ΡΠ΅ числа, зависящиС ΠΎΡ‚ Π½ΠΈΡ…, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ своими выраТСниями Ρ‡Π΅Ρ€Π΅Π· эти размСрности.

Β· РазмСрности вносятся Π² ΡΠΏΠΈΡΠΎΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Β· Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС описания Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° TYPE. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ размСрности ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ (ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» CONST)

Β· ВсС массивы, входящиС Π² ΡΠΏΠΈΡΠΎΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ указатСлями, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массива.

Β· ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ индСксноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ указатСлями.

Β· ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ (Ссли Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ).

2.3 ВрСбования ΠΊ ΡƒΡ‡Π΅Π±Π½ΠΎΠΌΡƒ тСксту

ВСкст Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ доступСн для понимания студСнтами, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ программирования ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания Π°Π»Π³Π΅Π±Ρ€Ρ‹.

Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ тСкст Π½Π° ΡΡ‚Π°ΠΏΡ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ этапам ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Слям. Π­Ρ‚Π°ΠΏΡ‹, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ рассмотрСния ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ².

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ этап Π΄ΠΎΠ»ΠΆΠ΅Π½:

* Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ тСзиса, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ этапа;

* ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ инструкции, ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ этап Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Π·Π°ΡΠ²Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅;

* ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊ Π²ΠΈΠ΄Ρƒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΌΡƒ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния инструкций.

Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ этапам Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

2.4 ВрСбования ΠΊ Π²Π΅Π±-страницС Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-страницу Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ мСтодичСского ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°, Π² ΡΠΎΠΎΡ‚вСтствии с CSS-стилями Ρ€Π°Π·Π΄Π΅Π»Π° «Π­Ρ‚ΡŽΠ΄Ρ‹ ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ» ΠΈ ΠΎΠ±Ρ‰Π΅ΠΉ стилистикой сайта [1], ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π°Π΄Π΄ΠΈΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ сайта.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ тСсно связаны с ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌΠΈ сайта, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΈΡ… Π³ΠΈΠΏΠ΅Ρ€ΡΡΡ‹Π»ΠΊΠ°ΠΌΠΈ. ΠžΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ скачивания ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… вСрсий ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ для рСдактирования html-ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. Для создания ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ΠΎΠ² ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Pascal, Ρ„ΠΎΡ€ΠΌΡƒΠ» ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ бСсплатныС вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Free Pascal 2.6.0, Gimp 2.8.0, OpenOffice 3.4.0.

2.5 РСшСниС поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ Π­Ρ‚Π°ΠΏ 1. Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π±Π΅Π· использования ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. Надо Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΠΌΠΈ, рСкурсиСй ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ΅, ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ Π΅Ρ‘.

Π­Ρ‚ΠΎΡ‚ этап ΡƒΠΆΠ΅ Π±Ρ‹Π» ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описан Π½Π° ΡΠ°ΠΉΡ‚Π΅ Π’. Π—. Цалюка. На ΠΏΡ€ΠΈΠ»Π°Π³Π°ΡŽΡ‰Π΅ΠΌΡΡ дискС имССтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ тСкст Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (см. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1, Ρ„Π°ΠΉΠ» DET0. PAS). ΠšΡ€Π°Ρ‚ΠΊΠΎ опишСм Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ объявлСна ΠΎΠ΄Π½Π° константа ΠΈ Π΄Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…:

CONST NN = 3;

TYPE

Matrix = ARRAY[1.NN, 1. NN] OF LongInt;

Index = ARRAY[1.NN] OF BOOLEAN;

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° NN ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ² массивов:

1) Matrix — Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив размСрности [1.NN, 1. NN] чисСл Ρ‚ΠΈΠΏΠ° LongInt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для хранСния элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹;

2) Index — ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив размСрности [1.NN], состоящий ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² логичСского Ρ‚ΠΈΠΏΠ° Bool;

ΠœΠ°ΡΡΠΈΠ²Ρ‹ row ΠΈ cols Ρ‚ΠΈΠΏΠ° Index Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Π½Π° ΠΏΠ΅Ρ€ΡΠ΅Ρ‡Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΈΡ… строк ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ располоТСны элСмСнты вычисляСмого ΠΌΠΈΠ½ΠΎΡ€Π°. РавСнство rows[i] = TRUE Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ строка ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A Ρ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ i ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠΈΠ½ΠΎΡ€Π°, ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ cols Π±ΡƒΠ΄Π΅ΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ входящиС Π² ΠΌΠΈΠ½ΠΎΡ€ столбцы ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

Объявим ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

det (VAR A: Matrix): LongInt;

Ѐункция вычисляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A

Π’Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€:

A: Matrix — массив элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎ ΡΡΡ‹Π»ΠΊΠ΅;

Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€:

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, располоТСнной Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ A.

FUNCTION det (VAR A: Matrix): LongInt;

VAR

i: WORD;

BEGIN

FOR i := 1 TO NN DO

BEGIN

rows[i] := TRUE;

cols[i] := TRUE;

END;

det := minor (A, rows, cols, NN);

END;

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: функция det для своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Π²Π° Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… массива:

row, cols: Index

ΠΈ Π΄Π²Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

1) minor (VAR A: Matrix; VAR rows, cols: Index; n: WORD): LongInt;

2) FindTrue (VAR mas: Index): WORD;

ΠΏΡ€ΠΈΡ‡Π΅ΠΌ minor вызываСтся рСкурсивно.

FUNCTION minor (VAR A: Matrix;

VAR rows, cols: Index; n: WORD): LongInt;

VAR

i, j: WORD;

aa, sum: LongInt;

jo: INTEGER;

BEGIN

i := FindTrue (rows);

IF n = 1 THEN

BEGIN

j := FindTrue (cols);

minor := A[i, j];

END

ELSE

BEGIN

rows[i] := FALSE;

Dec (n);

sum := 0;

jo := 1;

FOR j := 1 TO NN DO

IF cols[j] THEN

BEGIN

cols[j] := FALSE;

aa := A[i, j];

IF aa <> 0 THEN

sum := sum + jo * aa * minor (A, rows, cols, n);

cols[j] := TRUE;

jo := -jo;

END;

minor := sum;

rows[i] := TRUE;

END;

END;

Π’ ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ minor ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ FindTrue для исслСдования массивов row, cols:

FUNCTION FindTrue (VAR mas: Index):WORD;

VAR i: WORD;

BEGIN

FOR i := 1 TO NN DO

IF mas[i] THEN

BEGIN

FindTrue := i;

Exit;

END;

FindTrue := 0;

END;

Рассмотрим Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π³Π»Π°Π²Π½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ, Π³Π΄Π΅ дСмонстрируСтся Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Det:

BEGIN

Assign (f, 'num.txt');

reset (f);

FOR i := 1 TO NN DO

FOR j := 1 TO NN DO

Read (f, A[i, j]);

Close (f);

d := det (A);

WriteLn (d:5);

END.

Π—Π΄Π΅ΡΡŒ элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ· Ρ‚Скстового Ρ„Π°ΠΉΠ»Π°.

Π˜Ρ‚Π°ΠΊ, Ρƒ Π½Π°Ρ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π°ΠΏΠ΅Ρ€Π΅Π΄ (Π΄ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΠΈ) Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ этапы Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

Π­Ρ‚Π°ΠΏ 2.

РазмСрности вносятся Π² ΡΠΏΠΈΡΠΎΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

det (VAR A: Matrix; k: WORD): Real;

FindTrue (VAR mas: Index; k: WORD): WORD;

minor (VAR A: Matrix; k: WORD; VAR rows, cols: Index; n: WORD): LongInt;

Π’Π°ΠΊ ΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ Π² Ρ‚Π΅Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ константу NN Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ k.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΡƒΡ‚Π΅ΠΌ считывания ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ способом. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ det ΠΊΠ°ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΏΡ€ΠΈ Π΅Π΅ Π²Ρ‹Π·ΠΎΠ²Π΅ Π² Ρ‚Π΅Π»Π΅ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

d := det (@A, m);

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ любой размСрности Π½Π΅ Π±ΠΎΠ»Π΅Π΅ NN. ΠŸΠΎΠ»Π½Ρ‹ΠΉ тСкст ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ (Ρ„Π°ΠΉΠ» DETPT01. PAS).

Π­Ρ‚Π°ΠΏ 3.

ВсС массивы, входящиС Π² ΡΠΏΠΈΡΠΎΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ указатСлями, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ массива.

det (pA: LongIntPtr; k: WORD): Real;

FindTrue (mas: BoolPtr; k: WORD): WORD;

minor (A: LongIntPtr; k: WORD; pRow, pCol: BoolPtr; n: WORD): LongInt;

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово VAR ΠΏΠ΅Ρ€Π΅Π΄ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ-указатСлями Π² ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ слСдуСт ΡƒΠ±Ρ€Π°Ρ‚ΡŒ, вСдь ΠΌΡ‹ ΠΈ Ρ‚Π°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ссылку. Если ΠΆΠ΅ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ VAR ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ, Ρ‚ΠΎ Ρ„ункция Π½Π΅ ΡΡ‚Π°Π½Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ копию Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌ нСпосрСдствСнно, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ указатСля.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

TYPE

LongIntPtr = ^LongInt;

BoolPtr = ^BOOLEAN;

УдаляСм ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±ΠΎΠ»Π΅Π΅ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹Π΅ здСсь массивы rows ΠΈ cols.

БСйчас функция Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚.ΠΊ. послС смСны Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… помСнялись ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ. Рассмотрим ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π­Ρ‚Π°ΠΏ 4.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

НуТно Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ индСксноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ указатСлями ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹Ρ… массивов.

FUNCTION FindTrue (mas: BoolPtr; k: WORD): WORD;

VAR i: WORD;

BEGIN

FOR i := 1 TO k DO

IF mas^ THEN

BEGIN

FindTrue := i;

Exit;

END

ELSE

Inc (mas);

FindTrue := 0;

END;

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-указатСля Ρ…Ρ€Π°Π½ΠΈΡ‚ адрСс Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ элСмСнта массива, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «^» позволяСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, располоТСнному ΠΏΠΎ ΡΡ‚ΠΎΠΌΡƒ адрСсу. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, конструкция mas^ фактичСски являСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ элСмСнтом. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρƒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ инкрСмСнтирования Inc ΠΈ Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ирования Dec, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Inc (mas) пСрСмСстит ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ mas Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт, Π° Inc (mas, i-1) пСрСмСстит Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ i (Ссли mas ΠΏΠ΅Ρ€Π΅Π΄ этим ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ массива, Ρ‚. Π΅. Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт). На ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ инкрСмСнтация (дСкрСмСнтация) просто ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ (ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚) адрСс указатСля Π½Π° Ρ‡ΠΈΡΠ»ΠΎ Π±Π°ΠΉΡ‚, Ρ€Π°Π²Π½ΠΎΠ΅ количСству Π±Π°ΠΉΡ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΌΡƒ для хранСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΠ²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ указатСля. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС элСмСнты массива Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Π»ΠΈΡΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Ρ‚ΠΎΠΆΠ΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ°ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎ ΡΡ‚ΠΎΠ»Π±Ρ†Ρƒ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ Ρ€ΠΎΠ²Π½ΠΎ Π½Π° Π΄Π»ΠΈΠ½Ρƒ строки ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·, Π½Π° ΡΠΊΠΎΠ»ΡŒΠΊΠΎ элСмСнтов Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ ΡΡ‚ΠΎΠ»Π±Ρ†Ρƒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Inc (A, k*(i-1)) пСрСмСстит ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ строки с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ i.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° «@» ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ адрСс любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Det (@A, m), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ глобальная пСрСмСнная A Π²ΡΠ΅ Π΅Ρ‰Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Matrix.

ПолСзно ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ адрСс Π½Π°Ρ‡Π°Π»Π° массива Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ. НапримСр, Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ minor это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ адрСса массивов Π½ΠΎΠ²ΠΎΠΌΡƒ рСкурсивному Π²Ρ‹Π·ΠΎΠ²Ρƒ minor:

FUNCTION minor (pA: LongIntPtr; k: WORD;

pRow, pCol: BoolPtr; n: WORD): LongInt;

VAR

i, j: WORD;

sum: LongInt;

jo: INTEGER;

A: LongIntPtr;

rows, cols: BoolPtr;

BEGIN

A := pA;

rows := pRow;

cols := pCol;

i := FindTrue (pRow, k);

Inc (A, k*(i-1));

Inc (rows, i-1);

IF n = 1 THEN

BEGIN

j := FindTrue (pCol, k);

Inc (A, j-1);

Inc (cols, j-1);

minor := A^;

END

ELSE

BEGIN

rows^ := FALSE;

Dec (n);

sum := 0;

jo := 1;

FOR j := 1 TO k DO

BEGIN

IF cols^ THEN

BEGIN

cols^ := FALSE;

IF A^ <> 0 THEN

sum := sum + jo * A^ * minor (pA, k, pRow, pCol, n);

cols^ := TRUE;

jo := -jo;

END;

Inc (A);

Inc (cols);

END;

minor := sum;

rows^ := TRUE;

END;

END;

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Det ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ A Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ся, поэтому Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. А Π²ΠΎΡ‚ для Π±Ρ‹Π²ΡˆΠΈΡ… Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… массивов rows ΠΈ cols Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ VAR Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎ 2 указатСля, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эти Π½ΠΎΠ²Ρ‹Π΅ массивы Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Det ΠΈ ΠΈΡΡ‡Π΅Π·Π°Ρ‚ΡŒ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

FUNCTION det (A: LongIntPtr; k: WORD): LongInt;

VAR

i: WORD;

pCol, pRow, rows, cols: BoolPtr;

BEGIN

pRow := rows;

pCol := cols;

FOR i:= 1 TO k DO

BEGIN

pRow^ := TRUE;

pCol^ := TRUE;

Inc (pRow);

Inc (pCol);

END;

det := minor (A, k, rows, cols, k);

END;

Π’Π΅ΠΏΠ΅Ρ€ΡŒ наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ вСсти сСбя нСпрСдсказуСмо, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π½ΠΈΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ массивы, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ rows ΠΈ cols.

Π­Ρ‚Π°ΠΏ 5.

ДинамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти для Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… массивов.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ наша функция det для своих Π½ΡƒΠΆΠ΄ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ массивы (row, cols), Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ компилятору Π½Π΅ ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎ, сколько Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ памяти для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΡΡ‚ΠΎΠΌ случаС Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ динамичСски.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GetMem (p, n * s) ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ участок памяти Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для массива, состоящСго ΠΈΠ· n ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ s Π±Π°ΠΉΡ‚, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ адрСс Π½Π°Ρ‡Π°Π»Π° этого участка Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ p. Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΊΠΈΠΌ способом участок памяти Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΠΎΡ‚ ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΏΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ, поэтому Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ ΡΠΏΠ°ΡΠ΅Ρ‚ «Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ» участок ΠΎΡ‚ ΠΎΡˆΠΈΠ±ΠΎΠΊ программиста Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с ΡƒΠΊΠ°Π·Π°Ρ‚Слями.

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π±Π°ΠΉΡ‚ Π½ΡƒΠΆΠ½ΠΎΠ΅ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sizeOf. Она ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Ρ‚Π°ΠΊ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°. НапримСр sizeOf (BOOLEAN) Π²Π΅Ρ€Π½Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° BOOLEAN Ρ€Π°Π²Π΅Π½ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π±Π°ΠΉΡ‚Ρƒ.

FreeMem (p, n * s) позволяСт ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ. ВсС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌ с Ρ‚Π΅ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались ΠΏΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ памяти.

FUNCTION det (A: LongIntPtr; k: WORD): LongInt;

VAR

i: WORD;

pCol, pRow, rows, cols: BoolPtr;

BEGIN

GetMem (rows, k{*sizeof (rows^)});

GetMem (cols, k{*sizeof (cols^)});

pRow := rows;

pCol := cols;

FOR i:= 1 TO k DO

BEGIN

pRow^ := TRUE;

pCol^ := TRUE;

Inc (pRow);

Inc (pCol);

END;

det := minor (A, k, rows, cols, k);

FreeMem (rows, k{*sizeof (rows^)});

FreeMem (cols, k{*sizeof (cols^)});

END;

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Π½Π΅ ΡΡ‚ΠΎΠΈΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Ρ‚ΠΈΠΏΠ° Matrix, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Det, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ, Π° Π΄Π»Ρ массивов Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° это Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Ρ€Π°Π·ΠΌΠ΅Ρ€Π° NN x NN. Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΡΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив любого Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°:

BEGIN

Assign (f, 'num0.txt');

reset (f);

Read (f, m);

GetMem (pA, m*m*4{sizeof (pA^)});

A := pA;

FOR i := 1 TO m DO

FOR j := 1 TO m DO

BEGIN

Read (f, A^);

Inc (A);

END;

Close (f);

d := det (pA, m);

FreeMem (pA, m*m*4{sizeof (pA^)});

WriteLn (d:5);

END.

Ѐункция ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ²Π°. Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (см. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1, Ρ„Π°ΠΉΠ» DETPT03. PAS).

ВСсты.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡˆΠ»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ тСстов:

1)

2)

3)

4)

5)

6)

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

ΠŸΡ€ΠΎΠ΄Π΅Π»Π°Π½Π° мСтодичСская Ρ€Π°Π±ΠΎΡ‚Π° Π½Π° Ρ‚Π΅ΠΌΡƒ программирования с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ адрСсации (ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ). Написана итоговая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, составлСна систСма тСстов, для Π½Π΅Π΅.

На ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ составлСн ΡƒΡ‡Π΅Π±Π½ΠΎ-мСтодичСский тСкст, ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Слям, Π½Π° Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. Π’ Ρ‡Π°ΡΡ‚ности, рСкурсивный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ вычислСния опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ строки Π±Ρ‹Π» ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΊ Π±Π΅Π·Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ. Π’ ΡΠΈΠ»Ρƒ достаточной слоТности Π·Π°Π΄Π°Ρ‡ΠΈ, ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ заявлСнныС спСцифичСскиС аспСкты использования ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, динамичСской памяти, рСкурсии.

На ΠΎΡΠ½ΠΎΠ²Π΅ ΡƒΡ‡Π΅Π±Π½ΠΎ-мСтодичСского тСкста Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π²Π΅Π±-страница Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ html для Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ размСщСния Π½Π° ΡΠ°ΠΉΡ‚Π΅. ВСкст Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ссылки для скачивания ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… вСрсий ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, для создания ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ΠΎΠ² ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Pascal, Ρ„ΠΎΡ€ΠΌΡƒΠ» ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ использовались бСсплатныС вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Free Pascal 2.6.0, Gimp 2.8.0, OpenOffice 3.4.0. Html-вСрстка составлСна с ΡΠΎΠ±Π»ΡŽΠ΄Π΅Π½ΠΈΠ΅ΠΌ CSS-стилСй ΠΈ DOM структуры страниц Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ сайта.

Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ листинги всСх ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… вСрсий ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, докумСнтация Π½Π° ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, разработанная Π²Π΅Π±-страница ΠΈ Ρ‚Скст Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

Π’. Π—. Цалюк Π­Ρ‚ΡŽΠ΄Ρ‹ ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ:

http://vts.math.kubsu.ru/pascal/pascal.htm

Π£Ρ‡Π΅Π±Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ΡΠΊΠΎΠ³ΠΎ государствСнного унивСрситСта Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΈΠΌ. ΠΏΡ€ΠΎΡ„. М.А. Π‘ΠΎΠ½Ρ‡-Π‘Ρ€ΡƒΠ΅Π²ΠΈΡ‡Π°:

http://www.sut.ru/

Бтудия «Π’эл Π”ΠΈΠ·Π°ΠΉΠ½». ВСрстка — опрСдСлСния Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² http://welldesign.ru/studio/process/markup/markup-definitions

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