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

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² языкС Паскаль

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

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

ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² языкС Паскаль (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ агСнство ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Π“ΠžΠ£ Π’ΠŸΠž Π’ΡƒΠ»ΡŒΡΠΊΠΈΠΉ государствСнный пСдагогичСский унивСрситСт ΠΈΠΌ. Π›. Н. Волстого ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°

" ΠœΠ°ΡΡΠΈΠ²Ρ‹ Π² ΡΠ·Ρ‹ΠΊΠ΅ Паскаль"

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π° студСнтка 3 курса Π³Ρ€ΡƒΠΏΠΏΡ‹ Π‘, Ρ„-Ρ‚Π° МЀиИ Π”ΠΈΠΊΡˆΠ΅Π²Π° О.А.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»Π° Π’ΠΎΡ€ΠΈΠ½Π° Π’ΡƒΠ»Π° 2009

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • 1. Π’ΠΈΠ΄Ρ‹ массивов
  • 1.1. ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы
  • 1.2. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π·Π°Π΄Π°Ρ‡
  • 1.3. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы
  • 1.4. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π·Π°Π΄Π°Ρ‡
  • 2. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массивов
  • 2.1ΠœΠ΅Ρ‚ΠΎΠ΄ простых ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² (ΠŸΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²Π°Ρ сортировка)
  • 2.2. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° простым Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ
  • 2.3 Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° простым Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ (ΠœΠ΅Ρ‚ΠΎΠ΄ вставки ΠΈ ΡΠ΄Π²ΠΈΠ³Π°)
  • 3. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹-массивы ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹-строки
  • Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

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

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠ·Ρ‹ΠΊΠ΅ Паскаль. Рассмотрим ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹. КаТдоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любого ΠΈΠ· ΡΡ‚ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС прСдставляСт собой ΡƒΠΆΠ΅ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ структуру, Ρ‚. Π΅. ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ. ΠŸΡ€ΠΈ этом каТдая ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° структуры ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΈ Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ структурой, Ρ‚. Π΅, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ любого ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, значСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ уровня ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ значСния ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ…, ΠΊΠ°ΠΊ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… скалярного Ρ‚ΠΈΠΏΠ°. Π”Π°Π½Π½Ρ‹Π΅, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ значСниями скалярных Ρ‚ΠΈΠΏΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°Π»ΠΎ мСста Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ Π­Π’Πœ. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π»ΠΈΡ‚Π΅Ρ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставляСтся ΠΎΠ΄Π½ΠΈΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ (8 Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… разрядов). Для чисСл Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ Ρ‚ΠΈΠΏΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ отводят нСсколько Π±Π°ΠΉΡ‚ΠΎΠ². Π”Π°Π½Π½Ρ‹Π΅ ΠΆΠ΅, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ объСм памяти Π­Π’Πœ. Π’ ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ ΠΏΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Π­Π’Πœ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшой объСм памяти, встаСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° экономного Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π’ ΠΏΠ°ΡΠΊΠ°Π»Π΅ прСдусмотрСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ указания транслятору Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ экономного прСдставлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Для этого Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ со ΡΠ»ΡƒΠΆΠ΅Π±Π½ΠΎΠ³ΠΎ слова packed, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ. Но Π²Π²Π΅Π΄Ρ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сСбС, Ρ‡Ρ‚ΠΎ, с ΠΎΠ΄Π½ΠΎΠΉ стороны, это Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ транслятором (Ссли, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±ΠΎΠ»Π΅Π΅ экономного прСдставлСния, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Π½Π΅ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ΅ прСдставлСниС для Π΄Π°Π½Π½Ρ‹Ρ… этого Ρ‚ΠΈΠΏΠ°, Π² Π­Π’Πœ просто Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚). А Ρ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли ΠΎΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΠΎ, Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Поясним Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π·Π° ΡΡ‡Π΅Ρ‚ Ρ‡Π΅Π³ΠΎ это происходит. Как ΡƒΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, ΠΎΠ΄Π½Π° Π»ΠΈΡ‚Π΅Ρ€Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚. Машинная ячСйка памяти, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π­Π’Πœ, Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π°ΠΉΡ‚ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π² ΡΡ‡Π΅ΠΉΠΊΡƒ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π»ΠΈΡ‚Π΅Ρ€Ρƒ, Π³ΠΎ Π±ΠΎΠ»ΡŒΡˆΠ°Ρ Π΅Π΅ Ρ‡Π°ΡΡ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ использована. На ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π² ΠΎΠ΄Π½Ρƒ ячСйку ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ нСсколько Π»ΠΈΡ‚Π΅Ρ€ (ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ΅ прСдставлСниС). Но Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дСйствиС Π½Π°Π΄ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€ΠΎΠΉ, придСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ этой Π»ΠΈΡ‚Π΅Ρ€Ρ‹ ΠΈΠ· ΡΡ‡Π΅ΠΉΠΊΠΈ (распаковку Π»ΠΈΡ‚Π΅Ρ€Ρ‹ ΠΈΠ· ΡΡ‡Π΅ΠΉΠΊΠΈ). Аналогично, ΠΏΡ€ΠΈ записи ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Ρ‹ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ придСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΎ ΠΌΠ΅ΡΡ‚ΠΎ Π² ΡΡ‡Π΅ΠΉΠΊΠ΅, ΠΊΡƒΠ΄Π° Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ, ΠΈ Π·Π°Π½ΠΎΡΠΈΡ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Ρƒ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΡƒΠ΄Π°, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ содСрТимоС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… разрядов (Π·Π°ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π»ΠΈΡ‚Π΅Ρ€Ρ‹ Π² ΡΡ‡Π΅ΠΉΠΊΡƒ). Π’Π°ΠΊΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ прСдставлСния Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ΅Π½ всСгда программист, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… условий ΠΈ Ρ†Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ΠΏΡ€Π΅ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚. Π˜Ρ‚Π°ΠΊ, значСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСны Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ Π­Π’Πœ Π² ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΈ Π½Π΅ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π£ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ΅ прСдставлСниС Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, мСньшСго объСма памяти, Π½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ‚ процСсс выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠœΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ рСгулярный Ρ‚ΠΈΠΏ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рСгулярного Ρ‚ΠΈΠΏΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ массивом. Π˜Ρ‚Π°ΠΊ, массив — это упорядочСнный Π½Π°Π±ΠΎΡ€ фиксированного количСства Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ массива). ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΈΠΏΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ (для массива) Ρ‚ΠΈΠΏΠΎΠΌ.

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Массив позволяСт ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ Π·Π°Π΄Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ порядковым Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ. НомСр элСмСнта массива указываСтся послС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках {M[5] - пятый элСмСнт массива М}. ΠŸΡ€ΠΈ описании массива указываСтся Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² элСмСнтов массива ΠΈ Ρ‚ΠΈΠΏ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ относится ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΅Π³ΠΎ элСмСнт. ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ-, Π΄Π²ΡƒΡ…ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ.

Рис. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎ-, Π΄Π²ΡƒΡ…ΠΈ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ описания ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ элСмСнтов массива.

Var {описаниС массивов}

M: array [1.5] of integer; {ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив М Ρ Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ элСмСнтов ΠΎΡ‚ 1 Π΄ΠΎ 5, состоящий ΠΈΠ· Ρ†Π΅Π»Ρ‹Ρ… чисСл}

M1: array [2.3,11.15] of char; {Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив М1 с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ строк ΠΎΡ‚ 2 Π΄ΠΎ 3, с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ столбцов ΠΎΡ‚ 11 Π΄ΠΎ 15, состоящий ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²}

Begin {заполнСниС массива}

М[2]: =100; {Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ элСмСнту числСнного массива М ΠΏΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 100}

М1[2,3]: ='d'; {элСмСнту Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ столбца символьного Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива М1 присвоСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 'd'}

End.

1. Π’ΠΈΠ΄Ρ‹ массивов

1.1 ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ массиву Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π΄Π°Π½ΠΎ своС имя. Π­Ρ‚ΠΎ имя Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΅ΡΡ‚ΡŒ вСсь массив. КаТдая ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° массива ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ явно ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° ΠΏΡƒΡ‚Π΅ΠΌ указания ΠΈΠΌΠ΅Π½ΠΈ массива, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт сСлСктор ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ — взятый Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки индСкс, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ вычислСния Π½ΠΎΠΌΠ΅Ρ€Π° Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΉ записи индСкса Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ся справа Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ использования Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ записи ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ многоуровнСвая запись Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π°. ΠŸΡ€ΠΈ ссылкС Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ массива индСкс записываСтся Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ся Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для ссылки Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ запись Π²ΠΈΠ΄Π° (имя массива) [<�индСкс>] ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ частичной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся Π½Π΅ Π²Π΅ΡΡŒ массив, Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ задаСтся индСксом) — ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ ΠΎΠ½Π° называСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ. Π’ Π½Π°ΡˆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ массив ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ имя v, Π° ΡΡΡ‹Π»ΠΊΠΈ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ производятся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ частичных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… v[ 1], v[2], …, v[1ОО]. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ индСкса ΠΌΠΎΠΆΠ΅Ρ‚, Π±Ρ‹Ρ‚ΡŒ использовано Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ массива. ΠŸΡ€ΠΈ этом Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ мСняСтся ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ индСкса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ опрСдСляСт Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ массива. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ пСрСмСнная с ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ массива. Π’ΠΈΠΏ значСния индСксного выраТСния Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‚ΠΈΠΏΠΎΠΌ индСкса. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠ° индСкса Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ мноТСством, Ρ‚Π΅ΠΌ самым опрСдСляя количСство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ ΠΈΡ… ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΈ Π·Π°Π΄Π°Π½ΠΈΠΈ рСгулярного Ρ‚ΠΈΠΏΠ° ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΈΠΏΠ° индСкса Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Π—Π°Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ рСгулярного Ρ‚ΠΈΠΏΠ°, ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив, Ρ‚. Π΅. Π²Π΅ΠΊΡ‚ΠΎΡ€, ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

Π°rrΠ°Ρƒ [(Ρ‚ΠΈΠΏ индСкса)] ΠΎf <οΏ½Ρ‚ΠΈΠΏ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚>, Π³Π΄Π΅ <οΏ½Ρ‚ΠΈΠΏ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚> — имя ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°.

1.2 ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π·Π°Π΄Π°Ρ‡

Π—Π°Π΄Π°Ρ‡Π° 1. Π”Π°Π½ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ массив Ρ†Π΅Π»Ρ‹Ρ… чисСл. ΠŸΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, сколько Π² Π½Π΅ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… чисСл.

{ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ количСства Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… чисСл Π² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΌ массивС}.

Π˜Π”Π•Π― Π Π•Π¨Π•ΠΠ˜Π―: Π·Π°Π²ΠΎΠ΄ΠΈΠΌ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ массив, элСмСнтами

ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ логичСскиС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ (False — Ссли элСмСнт

ΡƒΠΆΠ΅ встрСчался Ρ€Π°Π½Π΅Π΅, True — ΠΈΠ½Π°Ρ‡Π΅)}

Program Razlichnye_Elementy;

Var I, N, K, Kol: Integer;

A: Array [1.50] Of Integer;

Lo: Array [1.50] Of Boolean;

Begin

Write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство элСмСнтов массива: '); ReadLn (N);

FOR I := 1 TO N DO

Begin

Write ('A[', I, ']='); ReadLn (A[I]);

Lo[I] := True; {ЗаполняСм Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ массив значСниями True}

End;

Kol := 0; {пСрСмСнная, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ количСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… чисСл}

FOR I := 1 TO N DO

IF Lo[I] THEN

Begin

Kol := Kol + 1;

FOR K := I TO N DO

{Π’ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ массив заносим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False,

Ссли число ΡƒΠΆΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅ ΠΈΠ»ΠΈ совпадаСт с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ элСмСнтом A[I]}

Lo[K] := (A[K] <> A[I]) And Lo[K];

End;

WriteLn ('ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… чисСл: ', Kol)

END.

ВСст: N = 10; элСмСнты массива — 1, 2, 2, 2, -1, 1, 0, 34, 3, 3. ΠžΡ‚Π²Π΅Ρ‚: 6.

Π—Π°Π΄Π°Ρ‡Π° 2. Π”Π°Π½ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ массив. Π£ΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ элСмСнты Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅ возрастания.

{Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ (Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅ возрастания)}.

ИдСя Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: ΠΏΡƒΡΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ массива (ΠΏΠΎ K-ΠΉ элСмСнт Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ)

отсортирована. НуТно Π½Π°ΠΉΡ‚ΠΈ Π² Π½Π΅ΠΎΡ‚сортированной части массива

ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами с (K+1)-ΠΌ}

Program Sortirovka;

Var N, I, J, K, Pr: Integer; A: Array [1.30] Of Integer;

Begin

Write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство элСмСнтов: '); ReadLn (N);

For I := 1 To N Do

Begin

Write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ A[', I, '] '); Readln (A[I]);

End;

WriteLn;

For I := 1 To N — 1 Do

Begin

K := I;

For J := I + 1 To N Do If A[J] <= A[K] Then K := J;

Pr := A[I]; A[I] := A[K]; A[K] := Pr;

End;

For I := 1 To N Do Write (A[I], ' ');

End.

ВСст: N = 10; элСмСнты массива — 1, 2, 2, 2, -1, 1, 0, 34, 3, 3.

ΠžΡ‚Π²Π΅Ρ‚: -1, -1, 0, 1, 2, 2, 2, 3, 3, 34.

1.3 Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив (ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° (ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Π½Π°Π±ΠΎΡ€ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ²)) — это ΠΏΡ€ΠΈΠΌΠ΅Ρ€ массива, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ элСмСнты Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ двумя индСксами.

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° (индСкса) элСмСнта массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ порядкового Ρ‚ΠΈΠΏΠ° (Ρ‡Π°Ρ‰Π΅ integer).

Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массивом называСтся Ρ‚Π°Π±Π»ΠΈΡ†Π°, состоящая ΠΈΠ· ΡΡ‚Ρ€ΠΎΠΊ ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ². Для описания массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° индСкса.

А11 А12 А13 … А1m

A21 A22 A23 … А2m

… … … … …

… … … … …

… … … … …

An1 An2 An3 … Anm

ОписаниС массива

Бпособ 1. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ описания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

var

ИмяМассива: array [Π’Π΅Ρ€Ρ….Π“Ρ€.1.НиТ.Π“Ρ€.1,Π’Π΅Ρ€Ρ….Π“Ρ€.2.НиТ.Π“Ρ€.2] of Π’ΠΈΠΏΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ²;

Бпособ 2. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ описания Ρ‚ΠΈΠΏΠΎΠ²

ИмяМассива: array [Π’Π΅Ρ€Ρ….Π“Ρ€.1.НиТ.Π“Ρ€.1,Π’Π΅Ρ€Ρ….Π“Ρ€.2.НиТ.Π“Ρ€.2] of Π’ΠΈΠΏΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ²;

Бпособ 3. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ описания констант

const

ИмяМассива: array[1.3,1.3] of real=((1.2,2.4,0.4),(0.045,-0.47,0.003),(1.24,1,-7.4));

Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (Π²Π²ΠΎΠ΄ элСмСнтов)

Массив, описанный ΠΊΠ°ΠΊ типизированная константа, ΡƒΠΆΠ΅ содСрТит Π΄Π°Π½Π½Ρ‹Π΅. ΠœΠ°ΡΡΠΈΠ²Ρ‹, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ описания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ с Π½ΠΈΠΌΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ дСйствия.

ЗначСния элСмСнтов массива Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ способами: ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹:

write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство строк ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ²');

readln (n, m);

for i:=1 to n do

for j:=1 to m do

begin

write ('a[', i,',', j,']='); {МоТно эту строчку Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ}

readln (a[i, j]);

end;

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° случайных чисСл:

randomize;

writeln ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство элСмСнтов массива');

readln (n);

for i:=1 to n do

begin

a[i]: =random (50);

writeln ('a[', i,',', j,']=', a[i, j]);

end;

присваСниСм Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ i*i/i+2):

writeln ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство элСмСнтов массива');

readln (n);

for i:=1 to n do

begin

a[i]: =i*i/i+2;

writeln ('a[', i,',', j,']=', a[i, j]);

end;

Π’Ρ‹Π²ΠΎΠ΄ массива

Π²Ρ‹Π²ΠΎΠ΄ Π² ΡΡ‚ΠΎΠ»Π±Π΅Ρ†:

for i:=1 to n do

writeln (a[i, j]);

ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ°ΠΌ ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Π°ΠΌ:

for i:=1 to n do

begin

for j:=1 to m do

begin

write (a[i, j]: 3);

end;

readln;

end;

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° массивов

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

ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°

ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ называСтся такая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ количСство строк Ρ€Π°Π²Π½ΠΎ количСству столбцов. Π’Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

главная диагональ;

побочная диагональ;

элСмСнты, располоТСнныС Π²Ρ‹ΡˆΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ;

элСмСнты, располоТСнныС Π½ΠΈΠΆΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ;

элСмСнты, располоТСнныС Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΠ±ΠΎΡ‡Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ;

элСмСнты, располоТСнныС Π½ΠΈΠΆΠ΅ ΠΏΠΎΠ±ΠΎΡ‡Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ;

Главная диагональ. Если значСния индСксов (i, j) элСмСнта Ρ€Π°Π²Π½Ρ‹, Ρ‚ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ располоТСны Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ.

А11 А12 А13 А14

A21 A22 A23 А24

A31 A32 A33 А34

A41 A42 A43 А44

if i=j then <�инструкции>

ΠŸΠΎΠ±ΠΎΡ‡Π½Π°Ρ диагональ. Если для Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ индСксов (i, j) элСмСнтов выполняСтся равСнство: i+j=n+1, Ρ‚ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ располоТСны Π½Π° ΠΏΠΎΠ±ΠΎΡ‡Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ.

А11 А12 А13 А14

A21 A22 A23 А24

A31 A32 A33 А34

A41 A42 A43 А44

if i+j=n+1 then <�инструкции>

Для элСмСнтов, располоТСнных Π²Ρ‹ΡˆΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

А11 А12 А13 А14

A21 A22 A23 А24

A31 A32 A33 А34

A41 A42 A43 А44

for i:=1 to n do

for j:=1 to n do

if i < j then <�инструкции>

for i:=1 to n-1 do

for j:=i+1 to n do

<�инструкции>

Если элСмСнты располоТСны Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΈ Π²Ρ‹ΡˆΠ΅ Π΅Ρ‘ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

А11 А12 А13 А14

A21 A22 A23 А24

A31 A32 A33 А34

A41 A42 A43 А44

for i:=1 to n do

for j:=1 to n do

if i<=j then <�инструкции>

Для элСмСнтов, располоТСнных Π½ΠΈΠΆΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

А11 А12 А13 А14

A21 A22 A23 А24

A31 A32 A33 А34

A41 A42 A43 А44

for i:=1 to n do

for j:=1 to n do

if i>j then <�инструкции>

Для элСмСнтов, располоТСнных Π½ΠΈΠΆΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΈ Π½Π΅ Π½Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

А11 А12 А13 А14

A21 A22 A23 А24

A31 A32 A33 А34

A41 A42 A43 А44

for i:=1 to n do

for j:=1 to n do

if i>=j then <�инструкции>

Если элСмСнты, располоТСны Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΠ±ΠΎΡ‡Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

А11 А12 А13 А14

A21 A22 A23 А24

A31 A32 A33 А34

A41 A42 A43 А44

for i:=1 to n-1 do

for j:=1 to n-1 do

if i+j<=n then <�инструкции>

Если элСмСнты, располоТСны Π½ΠΈΠΆΠ΅ ΠΏΠΎΠ±ΠΎΡ‡Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

А11 А12 А13 А14

A21 A22 A23 А24

A31 A32 A33 А34

A41 A42 A43 А44

for i:=2 to n do

for j:=2 to n-1 do

if i+j>n+1 then <�инструкции>

ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

Вранспонированной ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ называСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ столбцы ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ строкам исходной ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. ΠŸΡ€ΠΈ этом элСмСнты Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ исходной ΠΈ Ρ‚ранспонированной ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ транспонирования сводится ΠΊ ΠΎΠ±ΠΌΠ΅Π½Ρƒ элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, располоТСнных симмСтрично Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ.

Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°

Вранспонированная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°

Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

for i:=1 to n do {ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ всСх строк ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹}

for j:=i+1 to n do {ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ всСх элСмСнтов Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅, располоТСнных Π²Ρ‹ΡˆΠ΅ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ}

begin

k:=a[i, j];

a[i, j]:= a[j, i];

a[j, i]:= k;

end;

1.4 ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π·Π°Π΄Π°Ρ‡

1. Найти сумму всСх элСмСнтов Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΈΡ… Ρ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ элСмСнтов Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ строки.

program zadacha1;

uses crt;

var

a: array[1.50,1.50] of integer; {массив}

i, j: integer; {ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ счСтчики}

n, m: integer; {количСство строк ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ² массива}

s: integer; {сумма элСмСнтов массива}

p: integer; {ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ элСмСнтов Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ строки}

q: integer; {нСкоторая строка}

begin

clrscr;

write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство строк: ');

readln (n);

write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство столбцов: ');

readln (m);

for i:=1 to n do

for j:=1 to m do

begin

write ('a[', i,',', j,']=');

readln (a[i, j]);

end;

writeln ('ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π°:');

for i:=1 to n do

begin

for j:=1 to m do

begin

write (a[i, j]: 3);

end;

readln;

end;

for i:=1 to n do

for j:=1 to m do

begin

s:=s+a[i, j];

end;

write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ строки для Ρ€Π°Π±ΠΎΡ‚Ρ‹: ');

readln (q);

p:=1;

for j:=1 to m do

begin

p:=p*a[q, j];

end;

writeln ('Π‘ΡƒΠΌΠΌΠ° элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹: ', s);

writeln ('ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ элСмСнтов строки ', q,' Ρ€Π°Π²Π½Π° ', p);

if s>p then

begin

writeln ('Π‘ΡƒΠΌΠΌΠ° большС произвСдСния');

end

else

begin

writeln ('ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ большС произвСдСния');

end;

readln;

end.

2.ΠŸΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ столбСц ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ с ΠΏΡ€Π΅Π΄ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ.

program zadacha2;

uses crt;

var

a: array [1.50,1.50] of integer;

b: array [1.50,1.50] of integer;

m, n, i, j: integer;

begin

clrscr;

writeln ('ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ строк');

readln (n);

writeln ('ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ столбцов');

readln (m);

for i:= 1 to n do

for j:= 1 to m do

begin

write ('a[', i,',', j,']=');

readln (a[i, j]);

end;

writeln ('Π˜ΡΡ…ΠΎΠ΄Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°:');

for i:=1 to n do begin

for j:=1 to m do

write (a[i, j]);

writeln;

end;

for i:=1 to n do begin

for j:=1 to m do

b[i, j]: =a[i, j];

end;

for i:=1 to n do begin

a[i, 2]: =b[i, m-1];

end;

for i:=1 to n do begin

a[i, m-1]: =b[i, 2];

end;

writeln ('ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°:');

for i:=1 to n do begin

for j:=1 to m do

write (a[i, j]);

writeln;

end;

readln;

end.

3.Π”Π°Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° размСрности m*n. Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ элСмСнты послСднСго столбца ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ.

program zadacha3;

uses crt;

var

a:array [1.50] of integer;

b:array [1.50] of integer;

k, i, m, j, n, r, l:integer;

begin

clrscr;

write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство строк');

readln (n);

write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство столбцов');

readln (m);

for i:=1 to n do

for j:=1 to m do

begin

write ('a[', i,']={b[', j,']=}');

readln (a[i]);

end;

for i:=1 to n-1 do

for k:=i+1 to n do

{for j:=1 to m do}

if a[k]>a[i] then

begin

r:=a[i];

a[i]:=a[k];

a[k]:=r;

end;

writeln ('ΠžΡ‚ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ΠΉ массив:');

for i:=1 to n do

writeln (a[i]: 4);

readln;

end.

4. Π”Π°Π½Π° квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°. Π’Ρ€Π°Π½ΡΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘. ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ сумму всСх Π½Π΅Ρ‡Ρ‘Ρ‚Π½Ρ‹Ρ… элСмСнтов транспонированной ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

program zadacha4;

uses crt;

var

a:array [1.5,1.5] of integer;

S, i, j, n, c:integer;

begin

clrscr;

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»-Π²ΠΎ строк ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ² ');

readln (n);

for i:=1 to n do

for j:=1 to n do

begin

write ('a[', i,',', j,']=');

readln (a[i, j]);

end;

for i:=1 to n do

for j:=i+1 to n do

begin

c:=a[i, j];

a[i, j]:=a[j, i];

a[j, i]:=c;

end;

S:=0;

for j:=1 to n do

for i:=1 to n do

begin

if a[j, i] mod 2 <>0 then

begin

S:=S+a[j, i];

end;

end;

writeln ('S=', S);

readln;

end.

5. Π”Π°Π½ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ сумму Π΅Π³ΠΎ Π΄Π²ΡƒΡ… столбцов, вывСсти Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ сумму.

program zadacha5

uses crt;

var

a:array[1.3,1.3] of integer;

i, j, m, n, s, s1, p, p1, max, p3: integer;

begin

clrscr;

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ количСство строк');

readln (n);

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ количСство столбцов');

readln (m);

for i:=1 to n do

for j:=1 to m do

begin

write ('a[', i,',', j,']=');

readln (a[i, j]);

end;

begin

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ столбца');

readln (p);

for i:=1 to n do

for j:=1 to m do

if j=p then s:=s+a[i, p];

write ('s=', s);

readln;

end;

s1:=0;

begin

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ столбца');

readln (p1);

for i:=1 to n do

for j:=1 to m do

if j=p1 then s1:=s1+a[i, p1];

write ('s1=', s1);

readln;

end;

begin

max:=s;

if s < s1 then

begin

max:=s1;

write ('максимальная сумма', max);

readln;

write ('вывСсти Π½Π° ΡΠΊΡ€Π°Π½ Π½ΠΎΠΌΠ΅Ρ€ столбца большСй суммы', p3);

readln (p3);

end;

end;

end.

end.

6. Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ:

program zadacha6;

uses crt;

var

a:array [1.50,1.50] of integer;

n:integer;

i, j, k:integer;

begin

clrscr;

write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство строк ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ² Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅');

readln (n);

k:=0;

for i:=1 to n do

for j:=1 to n do

if i=j then

begin

a[i, j]: =k;

k:=k+1;

end

else

begin

a[i, j]:=0;

end;

for i:=1 to n do

for j:=1 to n do

begin

writeln ('a[', i,',', j,']=', a[i, j]);

readln;

end;

readln; end.

7. Π”Π°Π½Π° квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° порядка N. Π’ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ срСднСС арифмСтичСскоС ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов, стоящих Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ

program zadacha7;

uses crt;

Var

a:array[1.50,1.50] of integer;{массив}

i, j: integer;

s, n, k:integer;

sr:real;

begin

clrscr;

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»-Π²ΠΎ строк');

readln (n);

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»-Π²ΠΎ столбцов');

readln (n);

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»-Π²ΠΎ чисСл');

readln (k);

for i:=1 to n do

for j:=1 to n do

begin

write ('a[', i,',', j,']=');

readln (a[i, j]);

end;

s:=0;

begin

for i:=1 to n do

for j:=1 to n do

if a[i, j] > 0 then

s:=s+a[i, j];

sr:=s/n;

end;

write ('sr=', sr);

readln;

end.

8. Найти сумму всСх элСмСнтов ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, располоТСнных ΠΏΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΈ Π²Ρ‹ΡˆΠ΅ Π΅Π΅.

program zadacha8;

uses crt;

var

a: array [1.30,1.30] of integer;

i, j, s, n: integer;

begin

clrscr;

writeln ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ количСство строк ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ²: ');

readln (n);

for i:=1 to n do

for j:=1 to n do

begin

write ('a[', i,',', j,']=');

readln (a[i, j]);

end;

for i:=1 to n do

for j:=i+1 to n do

begin

if j>=i then

begin

s:=s+a[i, j];

end;

end;

writeln ('s=', s);

readln;

end.

9. Π”Π°Π½Π° вСщСствСнная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° размСрности n*m. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ k ΡΡ‚ΠΎΠ»Π±Π΅Ρ† ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

program zadacha9;

uses crt;

var

a: array [1.100,1.100] of real;

b: array [1.100,1.100] of real;

i, j: integer; {ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ счётчики}

n, m: integer; {количСство строк ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅}

k: integer; {β„– строки ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ}

begin

clrscr;

write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство строк Π² ΠΌΠ°ΡΡΠΈΠ²Π΅');

readln (n);

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ количСство столбцов Π² ΠΌΠ°ΡΡΠΈΠ²Π΅');

readln (m);

write ('Π’Π²Π΅Π΄ΠΈΡ‚Π΅ β„– строки ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°Π΄ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ');

readln (k);

randomize; {Π²Π²ΠΎΠ΄ массива случайных чисСл}

for i:=1 to n do

for j:=1 to m do

begin

a[i, j]: =random (100);

end;

for i:=1 to n do

for j:=1 to m do

begin

writeln ('a[', i,',', j,']=', a[i, j]);

end;

writeln ('Новый массив');

for i:=1 to n do

for j:=1 to m do

begin

if j<>k then

{ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условия β„– столбца

Π½Π΅Ρ€Π°Π²Π΅Π½ β„– столбца,

ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ}

begin

b[i, j]: =a[i, j];

{Ссли Π΄Π°, Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠΌΡƒ массиву

присваиваСм провСряСмый элСмСнт }

end;

end;

for i:=1 to n do {Π²Ρ‹Π²ΠΎΠ΄ Π½ΠΎΠ²ΠΎΠ³ΠΎ массива}

for j:=1 to m do

writeln ('b[', i,',', j,']=', b[i, j]);

readln;

end.

10. Π”Π°Π½Π° вСщСствСнная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° размСрности n*m. ВывСсти Π½ΠΎΠΌΠ΅Ρ€Π° столбцов, содСрТащих Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты.

program zadacha10;

uses crt;

var

a: array[1.50,1.50] of real;

i, j: integer;

n, m: integer;

begin

clrscr;

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»-Π²ΠΎ строк ');

readln (n);

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»-Π²ΠΎ столбцов ');

readln (m);

for i:=1 to n do

for j:=1 to m do

begin

write ('a[', i,',', j,']= ');

readln (a[i, j]);

end;

for j:=1 to m do

begin

if a[i, j]<0 then

begin

writeln ('Π½ΠΎΠΌΠ΅Ρ€ столбца, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС элСмСнты ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅= ', J);

readln;

end

else

begin

writeln ('Π² столбцС ', J,' Π½Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ Π½Π΅

всС ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты ');

end;

end;

readln;

end.

11. Π’ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС Π½Π°ΠΉΡ‚ΠΈ минимальноС число ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ строкС ΠΈ ΠΊΠ°ΠΊΠΎΠΌ столбцС ΠΎΠ½ Π½Π°Ρ…одится.

program zadacha11;

uses crt;

var

a:array [1.50,1.50] of integer; {описаниС масива}

i, j: integer; {ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅-счСтчики}

min: real; { минимальноС число}

n, m: integer; { ΠΊΠΎΠ»-Π²ΠΎ строк, ΠΊΠΎΠ»-Π²ΠΎ столбцов}

begin {Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹}

clrscr;

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»-Π²ΠΎ строк '); {Π²Π²ΠΎΠ΄ ΠΊΠΎΠ»-Π²Π° строк}

readln (n);

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»-Π²ΠΎ столбцов '); {Π²Π²ΠΎΠ΄ ΠΊΠΎΠ»-Π²Π° столбцов}

readln (m);

for i:=1 to n do

for j:=1 to m do

begin

write ('a[', i,',', j,']= '); { Π²Π²ΠΎΠ΄ элСмСнтов массива }

readln (a[i, j]);

end;

min:=a[1,1];

for i:=1 to n do

for j:=1 to m do

begin

if a[i, j] < min then {поиск минимального числа}

min:=a[i, j];

end;

for i:=1 to n do

for j:=1 to m do

begin

if a[i, j]=min then

begin

writeln ('минимальноС число = ', min:5);

{Π²Ρ‹Π²ΠΎΠ΄ минимального числа}

writeln ('Π½ΠΎΠΌΠ΅Ρ€ элСмСнта i=', i,',','j=', j);

{Π²Ρ‹Π²ΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΌΠΈΠ½. чис-Π»Π°}

end;

end;

readln;

end.

12. Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π½Π° 90 градусов ΠΏΠΎ Ρ‡Π°ΡΠΎΠ²ΠΎΠΉ стрСлкС.

program zadacha12;

uses crt;

var

a: array [1.30,1.30] of integer; {исходная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°}

b: array [1.30,1.30] of integer; {промСТуточная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°}

c: array [1.30,1.30] of integer; {ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚Π° Π½Π° 90?}

i, j: integer; {ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ счётчики}

m, n: integer; {количСство строк ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ²}

begin

clrscr;

write ('Π²Π²Π΅Π΄ΠΈΡ‚Π΅ количСство строк ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†ΠΎΠ² ');

readln (n);

for i:=1 to n do {Π²Π²ΠΎΠ΄ элСмСнтов массива}

for j:=1 to n do

begin

write ('a[', i,',', j,']=');

readln (a[i, j]);

end;

for i:=1 to n do

for j:=1 to n do

begin

b[i, j]: =a[n+1-i, j]; {ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ присваиваСм

элСмСнты ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΠΎ Π·Π°ΠΊΠΎΠ½Ρƒ: ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту

присваиваСм строки послСдний, послСднСму ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ, Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ

элСмСнту прСдпослСдний, прСдпослСднСму Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈ Ρ‚. Π΄.}

end;

writeln ('ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚Π° Π½Π° 90?.');

for i:=1 to n do

for j:=1 to n do

begin

c[i, j]: =b[j, i]; {Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ присваиваСм

элСмСнты ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠΎ Π·Π°ΠΊΠΎΠ½Ρƒ: пСрвая строка

становится ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ столбцом ΠΈ Ρ‚. Π΄. }

writeln ('c[', i,',', j,']=', c[i, j]); {ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ массива Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚ΠΎΠ³ΠΎ Π½Π° 90?}

readln;

end;

end.

2. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массивов

Π—Π°Π΄Π°Ρ‡Π° сортировки (упорядочСния) элСмСнтов массива Π² ΡΠΎΠΎΡ‚вСтствии с ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ относится ΠΊ ΠΊΠ»Π°ΡΡΡƒ классичСских Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°Π»ΠΈΡΡŒ Π΅Ρ‰Π΅ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΅mailΠ°Ρ….

Π’ Π½Π°ΡΡ‚оящСС врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ достаточно ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² сортировки. Одни ΠΈΠ· Π½ΠΈΡ… относятся ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ простых сортировок. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΌ. Однако Π΄ΠΎ ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½Π΅Π³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, сочСтал Π±Ρ‹ Π² ΡΠ΅Π±Π΅ всС Π»ΡƒΡ‡ΡˆΠΈΠ΅ качСства остаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ. Договоримся, Ρ‡Ρ‚ΠΎ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ массив, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ ΡƒΠΆΠ΅ Π·Π°Π΄Π°Π½, Ρ‚. Π΅. описан ΠΈ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½.

Π Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ сортировок:

1) ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ

2) ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ

3) ΠΏΠΎ Π½Π΅ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ

4) ΠΏΠΎ Π½Π΅ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ

ΠŸΡ€ΠΈ рассмотрСнии ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты ΠΏΠΎ Π½Π΅ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ.

2.1 ΠœΠ΅Ρ‚ΠΎΠ΄ простых ΠΎΠ±ΠΌΠ΅Π½ΠΎΠ² (ΠŸΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²Π°Ρ сортировка)

ИдСя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: Π’Π΅ΡΡŒ массив рассматриваСтся нСсколько Ρ€Π°Π·, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ рассмотрСнии ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ значСния 2-Ρ… сосСдних элСмСнтов. Если ΠΎΠ½ΠΈ стоят Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС, Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ся ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ°. Π’Π°ΠΊ происходит Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ пСрСстановки. ΠœΠ΅Ρ‚ΠΎΠ΄ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠ²ΠΎΠΉ сортировкой ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ мСньшиС значСния элСмСнтов постСпСнно «Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‚», ΠΊΠ°ΠΊ ΠΏΡƒΠ·Ρ‹Ρ€ΠΈΠΊΠΈ Π²ΠΎΠ·Π΄ΡƒΡ…Π° Π² Π²ΠΎΠ΄Π΅, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡΡΡŒ Π² Π½Π°Ρ‡Π°Π»ΠΎ массива, Π° «Ρ‚яТСлыС» элСмСнты «ΠΎΡΠ΅Π΄Π°ΡŽΡ‚ Π½Π° Π΄Π½ΠΎ» .

7 0 -4 3 1 -2 5

— 4 7 0 -2 3 1 5

— 4 -2 7 0 1 3 5

— 4 -2 0 7 1 3 5

— 4 -2 0 1 7 3 5

— 4 -2 0 1 3 7 5

— 4 -2 0 1 3 5 5

Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚:

For i:=2 to n do

For j:=n downto i do

if v[j]

begin

x:=v[j];

v[j]:=v[j-1];

v[j-1]:=x;

end;

2.2 Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° простым Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ

ИдСя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: вСсь массив просматриваСтся нСсколько Ρ€Π°Π· ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС ищСтся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ся Π΅Π³ΠΎ порядковый Π½ΠΎΠΌΠ΅Ρ€. Π—Π°Ρ‚Π΅ΠΌ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт мСняСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ, Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ, Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ ΠΈ Ρ‚. Π΄. прСдпослСдним элСмСнтом массива ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ся ΠΈΠ· Ρ€Π°ΡΡΠΌΠΎΡ‚рСния

7 0 -4 3 1 -2 5

— 4 0 7 3 1 -2 5

— 4 -2 7 3 1 0 5

— 4 -2 0 3 1 7 5

— 4 -2 0 1 3 7 5

— 4 -2 0 1 3 5 7

For i:= to n do

Begin

min:=v[i];

ind :=i;

for j:= i to n-1 do

if v[j]

bedin

min:=v[j];

ind:=j;

end;

x:=v[i];

v[i]:=v[ind];

v[ind]:=x;

end;

2.3 Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° простым Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ (ΠœΠ΅Ρ‚ΠΎΠ΄ вставки исдвига)

ИдСя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: дСлаСтся ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ€ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² массива ΡƒΠΆΠ΅ упорядочСны ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚риваСтся Ρ€+1 элСмСнт. Если окаТСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΌΠ΅Π½ΡŒΡˆΠ΅ Ρ‡Π΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Ρ€, Ρ‚ΠΎ ΠΎΠ½ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ мСсто большСго, Π° ΡƒΡ‡Π°ΡΡ‚ΠΎΠΊ массива ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ мСстом ΠΈ ΡΡ‚Π°Ρ€Ρ‹ΠΌ смСщаСтся Π² ΠΏΡ€Π°Π²ΠΎ.

7 0 -4 3 1 -2 5

0 7 -4 3 1 -2 5

— 4 0 7 3 1 -2 5

— 4 0 3 7 1 -2 5

— 4 0 1 3 7 -2 5

— 4 -2 0 1 3 7 5

— 4 -2 0 1 3 5 7

For i:=2 to n do

For j:=1 to i-1 do

if v[i]

begin

x:=v[i];

for h:=1 downto j+1 do

v[h]: =i[h-1];

v[j]:=x;

end.

3. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ — массивы ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ - строки

ΠœΠΎΠΆΠ΅Ρ‚ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΡΠΏΠΈΡΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ ΠΎΡ‚личаСтся ΠΎΡ‚ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΡ… Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ описания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π² ΠΎΠ±ΠΎΠΈΡ… случаях ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ сущСствСнноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅: Ρ‚ΠΈΠΏΠΎΠΌ любого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² ΡΠΏΠΈΡΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стандартный ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ нСльзя, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ:

Procedure S (a: array [1.10] of Real);

Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠΏΠΈΡΠΊΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² фактичСски ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Ρ‚ΠΈΠΏ-Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ индСксов массива.

Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ элСмСнт массива, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, Π½ΠΎ Π΅ΡΠ»ΠΈ Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ пСрСдаСтся вСсь массив, Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ. НапримСр:

type

atype = array [1.10]of Real;

Procedure S (a: atype);

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ строка являСтся фактичСски своСобразным массивом, Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ осущСствляСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

type

intype = String ;

outype = String ;

Function St (s: intype): outype;

Π’Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ любой Ρ‚ΠΈΠΏ-массив ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ-строку ΠΏΠ΅Ρ€Π΅Π΄ объявлСниСм ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд каТСтся нСсущСствСнным. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ извСстна структура всСх ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…, поэтому статичСскоС описаниС массивов Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Однако Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ назначСния связана со Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ трудностями. По ΡΡƒΡ‰Π΅ΡΡ‚Π²Ρƒ, Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π’ΡƒΡ€Π±ΠΎ ПаскалС Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… массивы с «ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ» Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ измСнСния индСксов. НапримСр, Ссли Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ 10×10 элСмСнтов, Ρ‚ΠΎ Π΄Π»Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ 9×11 элСмСнтов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ, Ρ‚. Π΅. ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ Π½Π΅ ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ массивов Π² ΠΊΡƒΡ‡Π΅, Π° ΠΎ ΡΡ‚атичСском описании массивов ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΈΡ… ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹). Π­Ρ‚ΠΎΡ‚ нСдостаток, ΠΊΠ°ΠΊ ΠΈ ΠΎΡ‚сутствиС Π² ΡΠ·Ρ‹ΠΊΠ΅ срСдств ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций (ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ), унаслСдован ΠΈΠ· ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ³ΠΎ Паскаля ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт собой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ постоянной ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ заслуТСнной Π΅Π³ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π’ΡƒΡ€Π±ΠΎ Паскаля Π½Π΅ Ρ€ΠΈΡΠΊΠ½ΡƒΠ»ΠΈ ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свойства Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ языка, Π½ΠΎ, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π² Π½Π΅Π³ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ срСдства, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π² ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎΠΉ стСпСни ΡΠΌΡΠ³Ρ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ нСдостатки. Π­Ρ‚ΠΈ нСдостатки практичСски ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ устранСны Π² ΡΠ·Ρ‹ΠΊΠ΅ Object Pascal, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ Π² Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСдС программирования Delphi.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Π² ΡΡ€Π΅Π΄Π΅ Π’ΡƒΡ€Π±ΠΎ Паскаля ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ компиляции, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π·Π° ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»ΠΈΠ½Ρ‹ фактичСского ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°-строки (см. ΠΏΡ€ΠΈΠ».1). Π­Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ вопрос ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ строки ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ строки мСньшСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ Π΄Π»ΠΈΠ½Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ обращСния; ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° строки большСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π΅Π΅ ΡƒΡΠ΅Ρ‡Π΅Π½ΠΈΡŽ Π΄ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ строки, объявлСнной ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€-пСрСмСнная. Если, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ объявлСн ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, эта опция игнорируСтся ΠΈ Π΄Π»ΠΈΠ½Π° Π½Π΅ ΠΊΠΎΠ½Ρ‚ролируСтся.

Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТнСС обстоит Π΄Π΅Π»ΠΎ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ массивов ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. НаиболСС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠΌ Π² ΡΡ‚ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚, судя ΠΏΠΎ Π²ΡΠ΅ΠΌΡƒ, Ρ€Π°Π±ΠΎΡ‚Π° с ΡƒΠΊΠ°Π·Π°Ρ‚Слями ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ индСксной Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ. НСсколько ΠΏΡ€ΠΎΡ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½Π΅Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (см. ΠΏ. 8.5). Π’ Π²Π΅Ρ€ΡΠΈΠΈ Π’ΡƒΡ€Π±ΠΎ Паскаля 7.0 язык ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ массивы, Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ массив прСдставляСт собой Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ элСмСнтов массива, Π½ΠΎ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ размСрности ΠΈ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹:

Procedure MyProc (OpenArray: array of Integer);

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ трактуСтся ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ. ВСрхняя Π³Ρ€Π°Π½ΠΈΡ†Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ массива возвращаСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ HIGH, ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π²ΡˆΠ΅ΠΉΡΡ Π² ΠΏ. 4.1.1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ 0 ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ HIGH, ΠΊΠ°ΠΊ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ индСкс, ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹:

{Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ использования ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… массивов: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡΠΊΡ€Π°Π½ содСрТимоС Π΄Π²ΡƒΡ… ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов Ρ€Π°Π·Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ArrayPrint}

Procedure ArrayPrint (aArray: array of Integer);

var

k: Integer;

begin

for k := 0 to High (aArray) do

Write (aArray[k]: 8);

WriteLn

end;

const

A:array [-1.2] of Integer = (0,1,2,3);

B: array [5.7] of Integer = (4,5,6);

begin

ArrayPrint (A);

ArrayPrint (B)

end.

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΡΡ‚ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, фактичСскиС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ массивов, А ΠΈ Π’, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ArrayPrint, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ значСния. Однако Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… массивов (количСство индСксов) всСгда Ρ€Π°Π²Π½Π° 1 — Π·Π° ΡΡ‚ΠΈΠΌ слСдит компилятор. Если Π±Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π‘

var

Π‘: array [1.3,1.5] of Integer;

Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅

ArrayPrint (Π‘)

Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΎ Π±Ρ‹ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅

Error26: Type mismatch.

(Ошибка 26: НСсоотвСтствиС Ρ‚ΠΈΠΏΠΎΠ².)

1.ΠŸΠΈΠ»ΡŒΡ‰ΠΈΠΊΠΎΠ² Π’. Н. Π‘Π±ΠΎΡ€Π½ΠΈΠΊ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠ·Ρ‹ΠΊΡƒ Паскаль: Π£Ρ‡Π΅Π±. пособиС для Π²ΡƒΠ·ΠΎΠ².-М.:Наука, 1989.-160с.

2. БСмашко Π“. Π›., Π‘Π°Π»Ρ‚Ρ‹ΠΊΠΎΠ² А. И. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Паскаль. М.: Наука 1988.-128с.

3.

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

Π² ΡΠ·Ρ‹ΠΊ Паскалью./Абрамов Π’. Π“. Π’Ρ€ΠΈΡ„ΠΎΠ½ΠΎΠ² Н.П. Π’Ρ€ΠΈΡ„ΠΎΠ½ΠΎΠ²Π° Π“. Н. Π£Ρ‡Π΅Π±. пособиС .- М.: Наука 1988.-320с.

4.МогилСв А. Π’. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ ΠΏΠΎ ΠΈΠ½Ρ„-ΠΊΠ΅. Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС для студСнтов ΡƒΡ‡. Π—Π°Π²Π΅Π΄Π΅Π½ΠΈΠΉ МогилСв А. Π’., Пак Н. И., Π₯Π΅Π½Π½Π΅Ρ€ Π•. К., М.:АкадСмия, 2001.-608с.

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