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

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ

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

Π‘Ρ€Π΅Π΄Π° программирования Π”Π°Π½Π½Ρ‹ΠΉ курсовой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² ΡΡ€Π΅Π΄Π΅ Delphi7 с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ языком программирования Object Pascal. Π­Ρ‚Ρƒ срСду ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания слоТных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, прилоТСния ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° прСдприятия. Delphi Ρ‚Π°ΠΊ ΠΆΠ΅ прост Π² ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π½ΠΎ ΠΏΡ€ΠΈ этом срСдства языка программирования Pascal позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС соврСмСнныС возмоТности… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

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

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

1.1 ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ обозначСния

1.2 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ

2. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.1 Π‘Ρ€Π΅Π΄Π° программирования

2.2 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

2.3 ОписаниС интСрфСйса

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

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

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А

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

На ΡΠ΅Π³ΠΎΠ΄Π½ΡΡˆΠ½ΠΈΠΉ дСнь ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ являСтся Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΌ инструмСнтом Π² Ρ€Π°Π±ΠΎΡ‚Π΅ большого количСства людСй. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ позволяСт ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ расчСты, ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… областях Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π° с Ρ‚Π°ΠΊΠΈΠΌΠΈ структурами, ΠΊΠ°ΠΊ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для программирования Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, ΠΏΡ€ΠΈ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… областях чСловСчСской Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π’ Π΄Π°Π½Π½ΠΎΠΉ курсовой Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΈ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ основныС понятия Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

Π’Ρ‹ΡΠ²ΠΈΡ‚ΡŒ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ.

Π‘ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ.

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

1.1 ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ обозначСния ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ чисСл (1)

Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ. Если m = n, Ρ‚ΠΎ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° называСтся ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ, Π° Ρ‡ΠΈΡΠ»ΠΎ m, называСтся Π΅Π΅ ΠΏΠΎΡ€ΡΠ΄ΠΊΠΎΠΌ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ ΠΆΠ΅ случаС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° называСтся ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ (с Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ) ΠΈΠ»ΠΈΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ. Числа, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΅Π΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

ΠŸΡ€ΠΈ двухиндСксном ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ элСмСнтов ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ индСкс всСгда ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ строки, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ индСкс — Π½ΠΎΠΌΠ΅Ρ€ столбца, Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… стоит Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт.

Наряду с ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (1) ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ ΠΈ ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

Часто ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ (1) ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Π±ΡƒΠΊΠ²ΠΎΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° A. Если A — квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° порядка n, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ: ΠΈΠ»ΠΈ .

Π’Π²Π΅Π΄Π΅ΠΌ сокращСнныС обозначСния для ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ, составлСнных ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

(2)

ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ столбца

ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ столбцСвой ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ: .

ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ строки, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ строчной ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС элСмСнты, располоТСнныС Π²Π½Π΅ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ,

ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ диагональной ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ: ΠΈΠ»ΠΈ .

1.2 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ: слоТСниС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

ΠŸΡƒΡΡ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ прСобразования

(5)

Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ — Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅ ΠΆΠ΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ прСобразования

. (6)

Π’ΠΎΠ³Π΄Π°

. (7)

Π’ ΡΠΎΠΎΡ‚вСтствии с ΡΡ‚ΠΈΠΌ ΠΌΡ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π‘ΡƒΠΌΠΌΠΎΠΉ Π΄Π²ΡƒΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² называСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π²Π½Ρ‹ суммам ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

Если ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ нахоТдСния суммы Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† называСтся слоТСниСм ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

.

Богласно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ, ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².

Из ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ слоТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† нСпосрСдствСнно слСдуСт, Ρ‡Ρ‚ΠΎ эта опСрация ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ свойствами:

1Β° ,

2Β° .

Π—Π΄Π΅ΡΡŒ, , — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ слоТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ распространяСтся Π½Π° ΡΠ»ΡƒΡ‡Π°ΠΉ любого числа слагаСмых.

2. Π£ΠΌΠ½ΠΎΠΆΠΈΠΌ Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ (5) Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ число ΠΈΠ·. Π’ΠΎΠ³Π΄Π°

.

Π’ ΡΠΎΠΎΡ‚вСтствии с ΡΡ‚ΠΈΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ ΠΈΠ· Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ :

Если ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ нахоТдСния произвСдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ называСтся ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π›Π΅Π³ΠΊΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ

1Β° ,

2Β° ,

3Β° .

Π—Π΄Π΅ΡΡŒ, — ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ²,, — числа ΠΈΠ· ΠΏΠΎΠ»Ρ .

Π Π°Π·Π½ΠΎΡΡ‚ΡŒ Π΄Π²ΡƒΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² опрСдСляСтся равСнством Если — квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° порядка, Π° — число ΠΈΠ·, Ρ‚ΠΎ

.

3. ΠŸΡƒΡΡ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ прСобразования

(8)

Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ — Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅ ΠΆΠ΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»

. (9)

Π’ΠΎΠ³Π΄Π°, подставляя эти выраТСния для Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ (8), ΠΌΡ‹ Π²Ρ‹Ρ€Π°Π·ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ «ΡΠΎΡΡ‚Π°Π²Π½ΠΎΠ³ΠΎ» прСобразования:

. (10)

Π’ ΡΠΎΠΎΡ‚вСтствии с ΡΡ‚ΠΈΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π΄Π²ΡƒΡ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†

называСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°

Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ элСмСнт, стоящий Π½Π° ΠΏΠ΅Ρ€Π΅ΡΠ΅Ρ‡Π΅Π½ΠΈΠΈ -ΠΉ строки ΠΈ -Π³ΠΎ столбца, Ρ€Π°Π²Π΅Π½ «ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡŽ» -ΠΉ строки ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° -ΠΉ столбСц Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ :

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ нахоТдСния произвСдСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† называСтся ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ -Π³ΠΎ порядка, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ стоят Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, Π° Π²ΡΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты Ρ€Π°Π²Π½Ρ‹ Π½ΡƒΠ»ΡŽ, Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ»ΠΈ просто. НазваниС «Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°» связано со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ свойством ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹: для любой ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ мСсто равСнства

.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ особСнной, Ссли. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС квадратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° называСтся нСособСнной.

Рассмотрим ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅

.

ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ «ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅» ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ для ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ A. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ коэффициСнтов этого прСобразования ΠΌΡ‹ Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ для ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ .

ВранспонированиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: AT) — опСрация, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° отраТаСтся ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Если A ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Ρ‚ΠΎ AT — ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π°

2. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.1 Π‘Ρ€Π΅Π΄Π° программирования Π”Π°Π½Π½Ρ‹ΠΉ курсовой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² ΡΡ€Π΅Π΄Π΅ Delphi7 с Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ языком программирования Object Pascal. Π­Ρ‚Ρƒ срСду ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания слоТных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, прилоТСния ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° прСдприятия. Delphi Ρ‚Π°ΠΊ ΠΆΠ΅ прост Π² ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, Π½ΠΎ ΠΏΡ€ΠΈ этом срСдства языка программирования Pascal позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС соврСмСнныС возмоТности ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

Delphi — это срСда быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ языка программирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ язык Delphi. Π―Π·Ρ‹ΠΊ Delphi — строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык, Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π»Π΅ΠΆΠΈΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ программистам Object Pascal.

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

2.2 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Ρ‚. Π΅. ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит собствСнно сами элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π½ΠΈΠΌΠΈ.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. Π’Ρ‹Π±Π΅Ρ€Π΅ΠΌ для проСктирования ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΉΡ‚ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΌΡ‹ ΠΎΠΏΠΈΡˆΠ΅ΠΌ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΈΠΎΠ΄ΡƒΠ»Π΅, ΠΈ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ uMatrix.

НазовСм наш класс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² TMatrix.

Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ: Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ:

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° LoadFromFile (FName: string), Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ пСрСдаСтся ΠΎΠ΄ΠΈΠ½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, имя Ρ„Π°ΠΉΠ»Π°.

Ѐункция слоТСния Add (M2: Tmatrix): Tmatrix, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСдаСтся ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° TMatrix. На Π²Ρ…ΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вводится Π²Ρ‚ΠΎΡ€ΠΎΠ΅ слагаСмоС.

Ѐункция вычитания function Sub (M2: Tmatrix): TMatrix, Π½Π° Π²Ρ…ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСдаСтся Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ΅, Π° Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ выводится ΠΊΠ°ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° TMatrix

Ѐункция умноТСния Π΄Π²ΡƒΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† function Mult (M2: Tmatrix): Tmatrix, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΡΠΎΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выводится Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° TMatrix.

Ѐункция вычислСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π²Ρ‹Π΄Π°Π΅Ρ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° TMatrix. ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° вычисляСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Гаусса.

Ѐункция вычислСния транспонированной ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Transp (): Tmatrix, Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π²Ρ‹Π΄Π°Π΅Ρ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ‚Ρ€Π°Π½ΡΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° TMatrix.

Ѐункция умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ NumMul (Num: Real): TMatrix, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число, Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, Ρ‚ΠΈΠΏΠ° TMatrix.

Ѐункция вычислСния опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Det (M: Tmatrix): Real, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число — ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ мСстами строки Exchange_line (Nfirst, Nsecond: Integer) которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π½ΠΎΠΌΠ΅Ρ€Π° строк, ΠΎΠ½Π° пСрСставляСт строки Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅.

Ѐункция getMatrix (M: TMatrix; Row, Col: Integer):TMatrix, которая ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΌΠΈΠ½ΠΎΡ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ строки ΠΈ ΡΡ‚ΠΎΠ»Π±Ρ†Π°.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, массива Matrix, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ инициализируСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3×3.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ TMatrix содСрТит массив элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π½Π°Π·ΠΎΠ²Π΅ΠΌ Matrix.

2.3 ОписаниС интСрфСйса Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный. ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сразу ΠΆΠ΅ инициализируСтся ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ся ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 3×3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСдставляСт ΠΈΠ· ΡΠ΅Π±Ρ ΠΎΠΊΠ½ΠΎ, со Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ, каТдая Π²ΠΊΠ»Π°Π΄ΠΊΠ° содСрТит ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ, элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² TStringGrid, каТдая ячСйка содСрТит 1 элСмСнт. рассмотрим ΠΏΠΎ ΠΏΠΎΡ€ΡΠ΄ΠΊΡƒ всС Π²ΠΊΠ»Π°Π΄ΠΊΠΈ.

ΠŸΠ΅Ρ€Π²Π°Ρ Π²ΠΊΠ»Π°Π΄ΠΊΠ° позволяСт Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° (рис.1). Π€Π°ΠΉΠ» находится Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΠ΅ Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся input.txt. МоТно Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, позволяСтся Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ значСния ΠΎΡ‚ 2 Π΄ΠΎ 8. По Ρ‰Π΅Π»Ρ‡ΠΊΡƒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ, инициализируСтся ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°.

Рис. 1. Π’ΠΊΠ»Π°Π΄ΠΊΠ° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Вторая Π²ΠΊΠ»Π°Π΄ΠΊΠ° позволяСт Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° строится Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ исходной, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ Π½Π° 1-ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. РасчСт происходит ΠΏΠΎ Ρ‰Π΅Π»Ρ‡ΠΊΡƒ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выводится Π²ΠΎ Π²Ρ‚ΠΎΡ€ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2.

РРис. 2. ВычислСниС транспонированной ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Для умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ Π²ΠΊΠ»Π°Π΄ΠΊΠ° рисунок 3. ВыбираСтся число, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ отобраТаСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Рис. 3. Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π° Ρ‡ΠΈΡΠ»ΠΎ ВычислСниС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ происходит Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ рисунок 4. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ вычисляСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ — обратная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°.

Рис. 4. ВычислСниС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ На ΠΏΡΡ‚ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ происходит вычислСниС опрСдСлитСля ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ рисунок 5. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ вычисляСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ся Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TLabel.

Рис. 5. ВычислСниС опрСдСлитСля Π‘ΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† выполняСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ рисунок 6. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ слагаСмоС (вторая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°) загруТаСтся ΠΈΠ· Ρ„Π°ΠΉΠ»Π° input2.txt. По Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ происходит вычислСниС суммы ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.

Рис. 6. Π‘ΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π Π°Π·Π½ΠΎΡΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° ΡΡƒΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π΄Π°Π½Π½Ρ‹Π΅ для Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° input2.txt. Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 7 Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ отобраТаСтся Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

Рис. 7. Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ПослСдняя, сСдьмая Π²ΠΊΠ»Π°Π΄ΠΊΠ° позволяСт ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ Π΄Π²Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Вторая ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° загруТаСтся ΠΈΠ· Ρ„Π°ΠΉΠ»Π° input2.txt. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ отобраТаСтся Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ рисунок 7.

Рис. 7. ВычислСниС произвСдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π²ΠΊΠ»Π°Π΄ΠΎΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… дСйствий ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚, Ρ‚. Π΅. очищаСтся Ρ‚Π°Π±Π»ΠΈΡ†Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

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

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

Π‘ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для хранСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π½Π΅ΠΉ. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ эти ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ дСйствий Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ, ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½ интСрфСйс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° сама ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

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

Π“Π°Π½Ρ‚ΠΌΠ°Ρ…Π΅Ρ€ Π€. Π . ВСория ΠΌΠ°Ρ‚Ρ€ΠΈΡ†. — Πœ.: Наука, 1968. — 576 с.

Π’Π°Π»Π΅Π½Ρ‚ΠΈΠ½ ΠžΠ·Π΅Ρ€ΠΎΠ² «Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΏΠΎ Delphi», 1999

Π—ΡƒΠ΅Π² Π•. А. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Turbo Pascal 6.0,7.0. — Πœ.: Π Π°Π΄ΠΈΠΎ ΠΈ ΡΠ²ΡΠ·ΡŒ, ВСста, 1993.

Π€Π°Ρ€ΠΎΠ½ΠΎΠ² Π’.Π’. Turbo Pascal 7.0. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ курс. — Πœ.: НолидТ, 2000.

Π€Π°Ρ€ΠΎΠ½ΠΎΠ² Π’.Π’. «DELPHI. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня». — ΠŸΠΈΡ‚Π΅Ρ€, 2005.

Бобровский Π‘.И. Delphi 7. Π£Ρ‡Π΅Π±Π½Ρ‹ΠΉ курс — ΠŸΠΈΡ‚Π΅Ρ€, 2007

Π˜Π»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΎΠ½Π»Π°ΠΉΠ½ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ Borland Delphi 7 с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, http://delphi.support.uz/

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, А ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ модуля для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ

unit umatrix;

interface

uses Classes;

type

TMatrix = class (TComponent)

private

N: Integer; // Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

public

Matrix: array of array of Real; // Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

property Razmer: Integer read N;

procedure Init (Num: Integer = 3);

procedure ShowScreen;

procedure LoadFromFile (FName: string);

function Add (M2: Tmatrix): Tmatrix;

function Sub (M2: Tmatrix): TMatrix;

function Mult (M2: Tmatrix): tmatrix;

function Obrat (): Tmatrix;

function Transp (): Tmatrix;

function NumMul (Num: Real): TMatrix;

function Det (M: Tmatrix): Real;

procedure Exchange_line (Nfirst, Nsecond: Integer);

function getMatrix (M: TMatrix; Row, Col: Integer):TMatrix;

end;

implementation

procedure TMatrix. Init (Num: Integer = 3);

var i: Integer;

begin

N := Num;

SetLength (Matrix, N);

for i:=0 to N-1 do

SetLength (Matrix[i], N);

end;

procedure TMatrix. ShowScreen;

var i, j: Integer;

begin

for i := 0 to N-1 do

for j := 0 to N — 1 do

Writeln (Matrix[i, j]);

end;

procedure TMatrix. LoadFromFile (FName: string);

var

i, j: Integer;

F: TextFile;

begin

AssignFile (F, FName);

Reset (F);

for i := 0 to N — 1 do

begin

for j := 0 to N — 1 do

begin

Read (F, Matrix[i, j]);

end;

Readln (F);

end;

CloseFile (F);

end;

function TMatrix. Add (M2: Tmatrix): TMatrix;

var

i, j: Integer;

Msum: TMatrix;

begin

Msum := TMatrix. Create (Self);

Msum.Init (Razmer);

for i := 0 to N-1 do

for j := 0 to N-1 do

begin

Msum.Matrix[i, j] := Matrix[i, j] + M2. Matrix[i, j];

end;

Result := Msum;

end;

function TMatrix. Sub (M2: Tmatrix): TMatrix;

var

M: TMatrix;

i, j: Integer;

begin

M := TMatrix. Create (Self);

M.Init (Razmer);

for i := 0 to N-1 do

for j := 0 to N-1 do

begin

M.Matrix[i, j] := Matrix[i, j] - M2. Matrix[i, j];

end;

Result := M;

end;

function TMatrix. Mult (M2: Tmatrix): TMatrix;

var

M: TMatrix;

i, j, k: Integer;

begin

M := TMatrix. Create (Self);

M.Init (M2.Razmer);

for i := 0 to M2. Razmer — 1 do

begin

for j := 0 to M2. Razmer — 1 do

begin

for k := 0 to M2. Razmer — 1 do

begin

M.Matrix[i, j] := M. Matrix[i, j] + Self. Matrix[i, k] * M2. Matrix[k, j];

end;

end;

end;

Result := M;

end;

function TMatrix. NumMul (Num: Real): TMatrix;

var i, j: Integer;

M: TMatrix;

begin

M := TMatrix (Self);

M.Init (Razmer);

for i := 0 to N-1 do

begin

for j := 0 to N-1 do

begin

M.Matrix[i, j] := Num * Matrix[i, j];

end;

end;

Result := M;

end;

function TMatrix. Transp: TMatrix;

var

M: TMatrix;

i, j: Integer;

begin

M := TMatrix. Create (Self);

M.Init (Razmer);

for i := 0 to Razmer — 1 do

begin

for j := 0 to Razmer — 1 do

begin

M.Matrix[i, j] := Matrix[j, i];

end;

end;

Result := M;

end;

procedure TMatrix. Exchange_line (Nfirst, Nsecond: Integer);

var

temp: Real;

i: Integer;

begin

for i := 0 to Razmer -1 do begin

temp := Matrix[Nfirst, i];

Matrix[Nfirst, i] := Matrix[Nsecond, i];

Matrix[Nsecond, i] := temp;

end;

end;

function TMatrix. getMatrix (M: TMatrix; Row, Col: Integer):TMatrix;

var

Res: TMatrix;

i, j: Integer;

ii, jj: Integer;

begin

Res := TMatrix. Create (nil);

Res.Init (M.Razmer — 1);

ii := 0; jj := 0;

for i := 0 to Res. Razmer — 1 do

begin

if i >= Row then ii := i + 1 else ii := i;

for j := 0 to Res. Razmer — 1 do

begin

if j >= Col then jj := j + 1 else jj := j;

Res.Matrix[i, j] := M. Matrix[ii, jj];

end;

end;

Result := Res;

end;

function TMatrix. Det (M: TMatrix): Real;

var

i, j, znak: Integer;

begin

if M. Razmer = 1

then Result := M. Matrix[1,1]

else

if M. Razmer = 2 then Result := M. Matrix[0,0]*M.Matrix[1,1] - M. Matrix[0,1] * M. Matrix[1,0]

else

begin for i :=0 to M. Razmer -1 do begin

if Odd (i+1) then znak := -1 else znak := 1;

Result := Result + znak * M. Matrix[i, 1] * Self. Det (M.getMatrix (M, i, 1));

end;

end;

end;

function TMatrix. Obrat (): TMatrix;

var

dop, Temp: TMatrix;

i, j, k: Integer;

koef, koefStr: Real;

begin

dop := TMatrix. Create (Self);

dop.Init (Self.Razmer);

for i := 0 to dop. Razmer — 1 do

begin

For j := 0 to dop. Razmer — 1 do begin

if (i <> j) then dop. Matrix[i, j] := 0

else dop. Matrix[i, j] := 1;

end;

end;

Temp := TMatrix. Create (self);

Temp.Init (Razmer);

For i := 0 to Razmer -1 do

for j := 0 to Razmer — 1 do

Temp.Matrix[i, j] := Matrix[i, j];

For i := 0 to Razmer — 2 do

begin

if Temp. Matrix[i, i] = 0 then

begin

Temp.Exchange_line (i, i+1);

dop.Exchange_line (i, i+1);

end;

koef := Temp. Matrix[i, i];

for j := 0 to Razmer — 1 do

begin

Temp.Matrix[i, j] := Temp. Matrix[i, j] / koef ;

dop.Matrix[i, j] := dop. Matrix[i, j] / koef ;

end;

for j := i + 1 to Razmer -1 do begin

koefStr := Temp. Matrix[j, i];

for k := 0 to Razmer — 1 do begin

Temp.Matrix[j, k] := Temp. Matrix[j, k] - koefStr*Temp.Matrix[i, k];

dop.Matrix[j, k] := dop. Matrix[j, k] - koefStr*dop.Matrix[i, k];

end;

end;

end;

koef := Temp. Matrix[Razmer — 1, Razmer — 1];

for k := 0 to Razmer — 1 do begin

Temp.Matrix[Razmer — 1, k] := Temp. Matrix[Razmer — 1, k] / koef;

dop.Matrix[Razmer — 1, k] := dop. Matrix[Razmer — 1, k] / koef;

end;

{}

for i := Razmer — 1 downto 1 do begin

for j := i — 1 downto 0 do begin

koefStr := Temp. Matrix[j, i];

for k := 0 to Razmer -1 do begin

Temp.Matrix[j, k] := Temp. Matrix[j, k] - Temp. Matrix[i, k]* koefStr;

dop.Matrix[j, k] := dop. Matrix[j, k] - dop. Matrix[i, k]* koefStr;

end;

end;

end;

{}

Result := dop;

end;

end.

www.

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