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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массивов ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π° языкС Π‘ΠΈ

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

ΠŸΡ€ΠΈ сортировкС массива D2 ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ r (расстояниС ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΎ ΠΏΡ€ΡΠΌΠΎΠΉ) Π±Ρ‹Π» использован Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ «ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°». Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ основываСтся Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ сравнСнии Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π²ΡƒΡ… сосСдних элСмСнтов массива, начиная с ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сравнСния больший ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ элСмСнт пСрСмСщаСтся Π½Π° ΠΌΠ΅ΡΡ‚ΠΎ сосСднСго, достигая Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ число шагов мСста ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ массивов ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π° языкС Π‘ΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π—Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘ΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

— Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ массива Π΄Π°Π½Π½Ρ‹Ρ…;

— Ρ€Π°ΡΡ‡Π΅Ρ‚ расстояний ΠΌΠ΅ΠΆΠ΄Ρƒ прямой ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ;

— Ρ€Π°ΡΡ‡Π΅Ρ‚ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Π° ΠΈ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ;

— Ρ€Π°ΡΡ‡Π΅Ρ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния Π·Π°Π΄Π°Π½Π½ΠΎΠΉ прямой ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ прямой, описываСмой ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ ax+by+c=0.

— ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

1. Эскиз Ρ‡Π΅Ρ€Ρ‚Π΅ΠΆΠ° прямой (А) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° (Π’).

2. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ R Π½Π° Ρ€Π°ΡΡΡ‚ояниС ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ массива D ΠΈ ΠΏΡ€ΡΠΌΠΎΠΉ A.

3. Массив ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ D{(xi, yi)} i=1,n (n>=15), ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 7-ΠΌΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° B.

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ:

1. Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Ρ‚ΠΎΡ‡Π΅ΠΊ D Π²ΡΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π²Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° Π’, Π²Ρ‹ΡˆΠ΅ прямой, А ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (Π½ΠΎΠΌΠ΅Ρ€ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ D, ΠΈ Π΅Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ x, y) Π² Π½ΠΎΠ²Ρ‹ΠΉ массив D1.

2. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ расстояниС r ΠΎΡ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ, входящСй Π² ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ массив D1, Π΄ΠΎ ΠΏΡ€ΡΠΌΠΎΠΉ А. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ±ΠΎ всСх Ρ‚ΠΎΡ‡ΠΊΠ°Ρ…, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выполняСтся ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ r>R (R=2), ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π½ΠΎΠ²Ρ‹ΠΉ массив D2, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² ΡΠ΅Π±Ρ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля: Π½ΠΎΠΌΠ΅Ρ€ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠΌ массивС D; Π½ΠΎΠΌΠ΅Ρ€ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ D1; ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ x ΠΈ y; расстояниС ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΎ ΠΏΡ€ΡΠΌΠΎΠΉ r.

3. Π£ΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ массив D2 Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅ убывания r.

4. ВывСсти Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ расчСтов (ΠΏΠΏ. 1−3) Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ† Π½Π° ΡΠΊΡ€Π°Π½ ΠΈ Π² Ρ„Π°ΠΉΠ» с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ исходных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½Π΅ΠΌ.

5. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€ ΠΈ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

6. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния прямой, А ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ прямой, описываСмой ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ ax+by+c=0. ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Ρ‹ прямой a,b,c Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

РазрабатываСмая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ:

1) Π²Π²ΠΎΠ΄ исходных Π΄Π°Π½Π½Ρ‹Ρ… (массив ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‚Π°ΠΊ ΠΈ Ρ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ);

2) Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ расчСта Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ† Π½Π° ΡΠΊΡ€Π°Π½, Ρ‚Π°ΠΊ ΠΈ Π² Ρ„Π°ΠΉΠ» с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ;

3) ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ расчСта расстояний r, Π²Ρ‹Π±ΠΎΡ€Π° Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², сортировки массива D2 ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² слСдуСт ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π΅Π΅ ΠΌΠ°Ρ‚СматичСская модСль

Π—Π°Π΄Π°Ρ‡Π°

МодСль Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ исходных ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ) ΠΈ Π·Π°ΠΏΠΈΡΡŒ ΠΈΠ· Π² ΠΌΠ°ΡΡΠΈΠ² D.

ΠŸΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΠ΅ считываниС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fscanf (Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ stdio. h) ΠΈΠ· ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠ°Ρ€ чисСл написанных Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ (ΠΏΡ€ΠΎΠ±Π΅Π»); Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ считываСмых чисСл — вСщСствСнноС с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой; считываниС продолТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΏΠΎΠΊΠ° функция fscanf Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ EOF (End Of File);

Или запись Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… чисСл с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ scanf. Числа Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² ΠΊΠ°ΠΊ вСщСствСнныС с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.

Π’Ρ‹Π±ΠΎΡ€ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° D Ρ‚ΠΎΡ‡Π΅ΠΊ, Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° B: (0;3), (3;13), (13;11),(11;3))

Π˜ΡΠΊΠΎΠΌΡ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»Π΅ΠΆΠ°Ρ‚ΡŒ:

Π’Ρ‹ΡˆΠ΅ прямой y=3

Π’Ρ‹ΡˆΠ΅ прямой y=4x-41

НиТС прямой y=3.33x-3

НиТС прямой y=-0.2x+13.6

Π’Ρ‹Π±ΠΎΡ€ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° D1, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ этапС, Ρ‚ΠΎΡ‡Π΅ΠΊ, Π»Π΅ΠΆΠ°Ρ‰ΠΈΡ… ΠΎΡ‚ ΠΏΡ€ΡΠΌΠΎΠΉ Π½Π° Ρ€Π°ΡΡΡ‚оянии мСньшСм ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎΠΌ R (ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ прямой А: y=-0.65x+14, R =3.8)

Π€ΠΎΡ€ΠΌΡƒΠ»Π° расчСта r = |a*x0+b*y0+c|/sqrt (a2 + b2)

РассчитываСм r ΠΈ Π·Π°Π½ΠΎΡΠΈΠΌ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ массива.

(r<=R)

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° массива D2, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ этапС, ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ r.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°.

(ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ значСния поля r)

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ„Π°ΠΉΠ» ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΡΠΊΡ€Π°Π½ (Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Π·Π°ΠΏΠΈΡΡŒ осущСствляСтся Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†)

ΠŸΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΠΎΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΡΠΊΡ€Π°Π½) элСмСнтами массивов, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… этапах (для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ поля: D ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ x ΠΈ y, для D1 — x, y ΠΈ Π½ΠΎΠΌΠ΅Ρ€ элСмСнта Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ D, для D2 x, y, Π½ΠΎΠΌΠ΅Ρ€ элСмСнта Π² D ΠΈ D1 ΠΈ Ρ€Π°ΡΡΡ‚ояниС r Π΄ΠΎ ΠΏΡ€ΡΠΌΠΎΠΉ А). Для записи Π² Ρ„Π°ΠΉΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция fprintf, для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΡΠΊΡ€Π°Π½ printf (трСбуСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ stdio. h)

Ѐункция, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‰Π°Ρ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€ ΠΈ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вводятся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

ΠŸΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Ρ‚ΠΎΡ‡Π΅ΠΊ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Π° ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠ°: ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΡ‡Π΅ΠΊ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎ Ρ‡Π°ΡΠΎΠ²ΠΎΠΉ ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ (Π²Ρ‹ΠΏΡƒΠΊΠ»ΠΎΠΉ). ПослС Π²Π²ΠΎΠ΄Π° Ρ‚ΠΎΡ‡Π΅ΠΊ, опрСдСляСм расстояния ΠΌΠ΅ΠΆΠ΄Ρƒ этими Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ (Π΄Π»ΠΈΠ½Ρ‹ Π³Ρ€Π°Π½Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹) ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅

r = sqrt ((x1-x2)^2 + (y1-y2)^2)

ΠŸΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ, слоТив всС Π΄Π»ΠΈΠ½Ρ‹ Π  = r1 + r2 + r3 +r4;

ΠŸΠ»ΠΎΡ‰Π°Π΄ΡŒ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ сумму ΠΏΠ»ΠΎΡ‰Π°Π΄Π΅ΠΉ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΈΠ³ΡƒΡ€Ρƒ.

S = s1 + s2;

s1 ΠΈ s2 ΠΈΡ‰Π΅ΠΌ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ Π“Π΅Ρ€ΠΎΠ½Π°:

s = p*(p-a)*(p-b)(p-c), Π³Π΄Π΅ p = (a+b+c)/2 — ΠΏΠΎΠ»ΡƒΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. (a, b — расстояниС ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π΄ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, с — Π΄Π»ΠΈΠ½Π° Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, которая находится ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ Ρ‡Ρ‚ΠΎ ΠΈ r)

Ѐункция, Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ пСрСсСчСния исходной прямой, А Ρ ΠΏΡ€ΡΠΌΠΎΠΉ, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вводятся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ прямой А

— 0.65 *x +14 — y = 0 (a = -0.65, b = 1, с = 14)

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Π΄Π²Π° случая (случаи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ трСбуСтся Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π·Π°Π΄Π°Π½ΠΈΠΈ Π½Π° ΠΊΡƒΡ€ΡΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ):

1. Если ΡƒΠ³Π»ΠΎΠ²Ρ‹Π΅ коэффициСнты a/b Ρ€Π°Π²Π½Ρ‹, Ρ‚ΠΎ ΠΏΡ€ΡΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ (ΠΈΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚) ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ пСрСсСчСния. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ этого случая, Π½Π° ΠΊΡ€Π°Π½ выводится сообщСниС ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ прямыС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹.

2. Π’ΠΎΡ‡ΠΊΠ° пСрСсСчСния находится ΠΈΠ· Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ:

a*x + b*y + c = 0

a1*x + b1*y + с = 0

Π’ΠΎΡ‡ΠΊΠ° пСрСсСчСния:

x=(c+14*b)/(0.65*b-a);

y=-0.65*x+14;.

2. Π‘Π»ΠΎΠΊ — схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

массив ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°

3. ВСстированиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сортировки

β„– Π¨Π°Π³Π°

β„– Π‘Π»ΠΎΠΊΠ°

flag

i

Массив

D2[i][4]

flag≠1

1.45

4.68

6.52

Π”Π°, мСняСм

;

;

;

;

;

1.45

6.52

4.68

Π”Π°, мСняСм

;

;

;

;

;

6.52

1.45

4.68

НСт, Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΠΌ

;

;

;

;

НСт

;

;

;

;

6.52

4.68

1.45

Π”Π°, мСняСм

;

;

;

;

;

6.52

4.68

1.45

НСт, Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΠΌ

;

;

;

;

;

6.52

4.68

1.45

НСт, Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΠΌ

;

;

;

;

НСт

;

;

;

;

6.52

4.68

1.45

НСт, Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΠΌ

;

6.52

4.68

1.45

НСт, Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΠΌ

;

6.52

4.68

1.45

НСт, Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΠΌ

;

;

;

;

Π”Π°

#include

#include

#include

#include

float D[16][2], D1[15][3], D2[15][5];

int num1=0,num2=0;

void vvod ()

{

int flag, i;

float x, y;

FILE *in;

printf («1 — Vvod massiva c klaviatury, 2 — schityvanie massiva iz failan»);

flag=getch ();

if (flag=='1')

{

for (i=0;i<15;i++)

{

printf («x%d= «, i+1);

scanf («%f» ,&D[i][0]);

printf («y%d= «, i+1);

scanf («%f» ,&D[i][1]);

printf («n»);

}

printf («Massiv vveden! Dlya prodolzeniya nazat' lubuyu klavishu…»);

}

else if (flag=='2')

{

fflush (stdin);

if ((in=fopen («ishodni.txt» ," r"))≠NULL);

i=0;

{

while (fscanf (in," %f %f" ,&x,&y)≠EOF)

{

D[i][0]=x;

D[i][1]=y;

i++;

}

}

printf («nMassiv vveden! Dlya prodolzeniya nazat' lubuju klavishu…»);

fclose (in);

}

}

void preobrD ()

{

int i;

int temp[4], flag;

float r;

for (i=0;i<15;i++)

{

if (((D[i][1]-3.33*D[i][0]-3<=0)&&(D[i][1]+0.2*D[i][0]-13.6<=0)&&(D[i][1]-4*D[i][0]+41>=0)&&(D[i][1]-3>=0)))

{

D1[num1][0]=D[i][0];

D1[num1][1]=D[i][1];

D1[num1][2]=i+1;

num1++;

}

}

for (i=0;i

{

r=fabs (0.65*D[i][0]+D[i][1]-14)/sqrt (1.4225);

if (r<=3.8)

{

D2[num2][0]=i+1;

D2[num2][1]=D1[i][0];

D2[num2][2]=D1[i][1];

D2[num2][3]=D1[i][2];

D2[num2][4]=r;

num2++;

}

}

do

{

flag=0;

for (i=0;i

{

if (D2[i][4]>D2[i-1][4])

{

temp[0]=D2[i][0];

temp[1]=D2[i][1];

temp[2]=D2[i][2];

temp[3]=D2[i][3];

temp[4]=D2[i][4];

D2[i][0]=D2[i-1][0];

D2[i][1]=D2[i-1][1];

D2[i][2]=D2[i-1][2];

D2[i][3]=D2[i-1][3];

D2[i][4]=D2[i-1][4];

D2[i-1][0]=temp[0];

D2[i-1][1]=temp[1];

D2[i-1][2]=temp[2];

D2[i-1][3]=temp[3];

D2[i-1][4]=temp[4];

flag=1;

}

}

}while (flag==1);

printf («Preobrazovanie massiva zakoncheno uspeshno! nn»);

printf («Dlya prodolzeniya nazat' lubuyu klavishu…»);

}

void SandP ()

{

float S[4][2];

float rst1, rst2,rst3,rst4;

float pP=0,pS=0,p1,p2,pt1,pt2,diag;

int i, j;

char q;

do

{

clrscr ();

printf («Ploshad' i perimetr chetyrehugol’nika.nn»);

printf («Vnimanie! Tochki vvodit' po chasovoy! n»);

printf («Vvedite koordinaty 4 tochek. nn»);

for (i=0;i<4;i++)

{

printf («x%d= «, i+1);

scanf («%f» ,&S[i][0]);

printf («y%d= «, i+1);

scanf («%f» ,&S[i][1]);

printf («n»);

}

rst1=sqrt (pow (S[1][0]-S[0][0], 2)+pow (S[1][1]-S[0][1], 2));

rst2=sqrt (pow (S[2][0]-S[1][0], 2)+pow (S[2][1]-S[1][1], 2));

rst3=sqrt (pow (S[3][0]-S[2][0], 2)+pow (S[3][1]-S[2][1], 2));

rst4=sqrt (pow (S[0][0]-S[3][0], 2)+pow (S[0][1]-S[3][1], 2));

diag=sqrt (pow (S[2][0]-S[0][0], 2)+pow (S[2][1]-S[0][1], 2));

pP=rst1+rst2+rst3+rst4;

p1=(rst1+rst2+diag)/2;

p2=(rst3+rst4+diag)/2;

pt1=sqrt (fabs (p1*(p1-rst1)*(p1-rst2)*(p1-diag)));

pt2=sqrt (fabs (p2*(p2-rst3)*(p2-rst4)*(p2-diag)));

pS=pt1+pt2;

printf («Perimetr chetyrehugol’nika P= %.2fn», pP);

printf («Ploshad' chetyrehugol’nika S= %.2fn», pS);

printf («nVyhod v glavnoe menu (Y/N)?n»);

fflush (stdin);

q=getch ();

}while (q≠'y'&&q≠'Y');

}

void peres ()

{

float a, b, c, k, x, y;

char q;

do

{

clrscr ();

printf («Opredelenie tochki perezecheniya pryamyh. nn»);

printf («Vvedite koeffcienty: n»);

printf («nKoefficient a= «);

scanf («%f» ,&a);

printf («nKoefficient b= «);

scanf («%f» ,&b);

printf («nKoefficient c= «);

scanf («%f» ,&c);

k=-a/b;

if (k==-0.65)

{

printf («nPryamye parallel’ny!n»);

}

else

{

x=(c+14*b)/(0.65*b-a);

y=-0.65*x+14;

printf («nTochka peresecheniya x= %.2f y= %.2fn», x, y);

}

printf («nVyhod v glavnoe menu (Y/N)?»);

q=getch ();

}while (q≠'y'&&q≠'Y');

}

void vyvod ()

{

FILE *out;

int i;

printf («MASSIV Dnn»);

printf («#tXtYn»);

for (i=0;i<15;i++)

{

printf («%dt%2.2ft%2.2fn» ,(i+1), D[i][0], D[i][1]);

}

printf («nDlya prodolzeniya nazat' lubuju klavishu… n»);

getch ();

clrscr ();

printf («MASSIV D1nn»);

printf («#t#DtXtYn»);

for (i=0;i

{

printf («%dt%2.2ft%2.2ft%2.2fn» ,(i+1), D1[i][2], D1[i][0], D1[i][1]);

}

printf («nDlya prodolzeniya nazat' lubuju klavishu… n»);

getch ();

clrscr ();

printf («MASSIV D2nn»);

printf («#t#Dt#D1trtXtYn»);

for (i=0;i

{

if (D2[i][4]≠0)

{

printf («%dt%2.2ft%2.2ft%2.2ft%2.2ft%2.2fn» ,(i+1), D2[i][3], D2[i][0], D2[i][4], D2[i][1], D2[i][2]);

}

}

printf («nDlya prodolzeniya nazat' lubuju klavishu… n»);

out=fopen («rezpoints.txt» ," w");

fprintf (out," MASSIV Dnn");

fprintf (out," #tXtYn");

for (i=0;i<15;i++)

{

fprintf (out," %dt%2.2ft%2.2fn" ,(i+1), D[i][0], D[i][1]);

}

fprintf (out," nn");

fprintf (out," MASSIV D1nn");

fprintf (out," #t#DtXtYn");

for (i=0;i

{

fprintf (out," %dt%2.2ft%2.2ft%2.2fn" ,(i+1), D1[i][2], D1[i][0], D1[i][1]);

}

fprintf (out," nn");

fprintf (out," MASSIV D2nn");

fprintf (out," #t#Dt#D1trtXtYn");

for (i=0;i

{

fprintf (out," %dt%2.2ft%2.2ft%2.2ft%2.2ft%2.2fn" ,(i+1), D2[i][3], D2[i][0], D2[i][4], D2[i][1], D2[i][2]);

}

fclose (out);

}

void massiv ()

{

clrscr ();

char key;

char zn;

do

{

clrscr ();

printf («Rabota s massivami. Vyberete odin iz punktov menu: nn»);

printf («1 Vvod massiva. n»);

printf («2 Preobrazovanie massiva. n»);

printf («3 Prosmotr rezul’tata.n»);

printf («4 Vozvrat v glavnoe menu. n»);

switch (key=getch ())

{

case '1':

{

clrscr ();

vvod ();

zn='*';

getch ();

break;

}

case '2':

{

if (zn=='*')

{

clrscr ();

preobrD ();

zn='*';

}

else

{

printf («nnSnachala vvedite massiv! n»);

}

getch ();

break;

}

case '3':

{

if (zn=='*')

{

clrscr ();

vyvod ();

}

else

{

printf («nnSnachala vvedite massiv! n»);

}

getch ();

break;

}

case '4':

{

fflush (stdin);

break;

}

default:

{

printf («nPozaluysta, vvedite cifru ot 1 do 4n»);

printf («Dlya prodolzeniya nazat' lubuyu klavishu»);

getch ();

}

}

}while (key≠'4');

}

void main ()

{

clrscr ();

char exit='n';

do

{

clrscr ();

printf («Glavnoe menu. Vyberite zadanie: nn»);

printf («1 Rabota s massivami. n»);

printf («2 Ploshad i perimetr. n»);

printf («3 Peresechenie pryamyh. n»);

printf («4 Vuhod. n»);

switch (getch ())

{

case '1':

{

clrscr ();

massiv ();

break;

}

case '2':

{

clrscr ();

SandP ();

break;

}

case '3':

{

clrscr ();

peres ();

break;

}

case '4':

{

printf («nVyhod (Y/N)?n»);

fflush (stdin);

exit=getch ();

break;

}

default:

{

printf («nPozaluysta, vvedite cifru ot 1 do 4n»);

printf («Dlya prodolzeniya nazat' lubuyu klavishu»);

getch ();

break;

}

}

}while (exit≠'y'&&exit≠'Y');

}

4. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

float D[16][2], D1[15][3], D2[15][5]; - объявлСниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… массивов.

int num1=0,num2=0; - Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‚ΠΎΡ‡Π΅ΠΊ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ D ΠΈ D1 соотвСтствСнно.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main ()

char exit='n'; - слуТит для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ massiv ()

char key; - слуТит для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСню.

char prov; - слуТит для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Π²Π²Π΅Π» ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ массив ΠΈΠ»ΠΈ Π½Π΅Ρ‚).

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ vvod ()

int flag, i; - i-счСтчик, flag — Π²Ρ‹Π±ΠΎΡ€ Π²Π²ΠΎΠ΄Π° массива

float x, y; - ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΡ‡Π΅ΠΊ, заносимыС Π² ΠΌΠ°ΡΡΠΈΠ² D.

FILE *in; - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ„Π°ΠΉΠ», ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΡ‡Π΅ΠΊ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ preobrD ()

int i; - пСрСмСнная счСтчик.

int temp[4], flag; - temp[4] - Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ массив, для пСрСстановки строк Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ D2, flag — ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° прСобразования D2

float r; - расстояниС ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ прямой.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SandP ()

float S[4][2]; - массив, ΠΊΡƒΠ΄Π° заносятся ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€ΡˆΠΈΠ½ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹.

float rst1, rst2,rst3,rst4; - расстояния ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ.

float pP=0,pS=0,p1,p2,pt1,pt2,diag; - ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΠΏΠΎΠ»ΡƒΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄Π²ΡƒΡ… Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ Π΄Π²ΡƒΡ… Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², Π΄Π»ΠΈΠ½Π° Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ Π² Ρ„ΠΈΠ³ΡƒΡ€Π΅ ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡ‚ΠΎΡ€ΠΎΠ½ Π΄Π²ΡƒΡ… Ρ‚Ρ€Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

int i; - пСрСмСнная счСтчик.

char q; - слуТит для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ peres ()

float a, b, c, k, x, y; - коэффициСнты прямой, Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, ΡƒΠ³Π»ΠΎΠ²ΠΎΠΉ коэффициСнт, Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния прямых.

char q; - слуТит для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ vyvod ()

FILE *out; - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ„Π°ΠΉΠ», ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

int i; - пСрСмСнная счСтчик.

5. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄Π°Π½Π½Ρ‹Ρ…

3 12

3 11

3 10

4 11

4 10

4 12

5 10

5 11

2 1

6 6

5 9

9 5

8 2

2 8

7 3

Π€Π°ΠΉΠ» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²

MASSIV D

# X Y

1 3.00 12.00

2 3.00 11.00

3 3.00 10.00

4 4.00 11.00

5 4.00 10.00

6 4.00 12.00

7 5.00 10.00

8 5.00 11.00

9 2.00 1.00

10 6.00 6.00

11 5.00 9.00

12 9.00 5.00

13 8.00 2.00

14 2.00 8.00

15 7.00 3.00

MASSIV D1

# #D X Y

1 1.00 3.00 12.00

2 2.00 3.00 11.00

3 3.00 3.00 10.00

4 4.00 4.00 11.00

5 5.00 4.00 10.00

6 6.00 4.00 12.00

7 7.00 5.00 10.00

8 8.00 5.00 11.00

9 10.00 6.00 6.00

10 11.00 5.00 9.00

11 12.00 9.00 5.00

12 14.00 2.00 8.00

13 15.00 7.00 3.00

MASSIV D2

# #D #D1 r X Y

1 14.00 12.00 2.00 2.00 8.00

2 3.00 3.00 1.00 3.00 10.00

3 5.00 5.00 1.00 4.00 10.00

4 12.00 11.00 1.00 9.00 5.00

6. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ПослС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ (Π³Π»Π°Π²Π½ΠΎΠ΅ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹):

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ прСдусмотрСна Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π½Π°ΠΆΠ°Ρ‚ия посторонних клавиш, Ρ‚. Π΅. Π»ΡŽΠ±Ρ‹Ρ… клавиш ΠΊΡ€ΠΎΠΌΠ΅ 1 — 4.

ПослС наТатия клавиши 1, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ Π½ΠΎΠ²ΠΎΠ΅ мСню, мСню Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ:

Π’ Π΄Π°Π½Π½ΠΎΠΌ мСню прСдусмотрСны Π΄Π²Π΅ Π·Π°Ρ‰ΠΈΡ‚Ρ‹. 1 -я ΠΎΡ‚ Π½Π°ΠΆΠ°Ρ‚ия посторонних клавиш, 2 — я Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ 2 ΠΈΠ»ΠΈ 3 Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Π²Π΅Π΄Π΅Ρ‚ массив.

ПослС наТатия клавиши 1, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΌΠ΅Π½ΡŽ Π²Ρ‹Π±ΠΎΡ€Π° способа Π²Π²ΠΎΠ΄Π° массива.

НаТав 1, производится Π²Π²ΠΎΠ΄ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

Если Π½Π°ΠΆΠ°Ρ‚Π° клавиша 2, Ρ‚ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°.

ПослС Π²Π²ΠΎΠ΄Π° массива, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ возвращаСтся Π² ΠΌΠ΅Π½ΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ.

НаТав ΠΊΠ»Π°Π²ΠΈΡˆΡƒ 2, происходит ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ массива ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС Π½Π° ΡΠΊΡ€Π°Π½Π΅:

НаТав Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ возвращаСтся Π² ΠΌΠ΅Π½ΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ.

НаТав ΠΊΠ»Π°Π²ΠΈΡˆΡƒ 3, происходит Π²Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ Π½Π° ΡΠΊΡ€Π°Π½ ΠΈ Π² Ρ„Π°ΠΉΠ».

ПослС этого происходит Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² ΠΌΠ΅Π½ΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ.

НаТав ΠΊΠ»Π°Π²ΠΈΡˆΡƒ 4, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ возвращаСтся Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши 2, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² ΠΎΠΊΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΏΠΎΠΈΡΠΊΡƒ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ ΠΈ ΠΏΠ΅Ρ€ΠΈΠΌΠ΅Ρ‚Ρ€Π° Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ 'y' ΠΈΠ»ΠΈ `Y'. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ этих клавиш, происходит Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Если Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ 3 — ΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚ (Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ 3), Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² ΠΎΠΊΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΠΏΠΎΠΈΡΠΊΡƒ Ρ‚ΠΎΡ‡ΠΊΠΈ прСсСчСния исходной прямой ΠΈ ΠΏΡ€ΡΠΌΠΎΠΉ, коэффициСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вводятся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ случай, ΠΊΠΎΠ³Π΄Π° прямыС Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹, Ρ‚. Π΅. Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС.

Поиск Ρ‚ΠΎΡ‡ΠΊΠΈ пСрСсСчСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ 'y' ΠΈΠ»ΠΈ `Y'. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ этих клавиш, происходит Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши 4 Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню), ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ:

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши 'y' ΠΈΠ»ΠΈ `Y' происходит Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Если Π½Π°ΠΆΠ°Ρ‚Π° любая другая клавиша, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ возвращаСтся ΠΊ Π²Ρ‹Π±ΠΎΡ€Ρƒ задания Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ массивами, функциями ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

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

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ статичСскиС массивы, Ρ‚.ΠΊ. Ρƒ Π½Π°Ρ Π·Π°Ρ€Π°Π½Π΅Π΅ извСстно, сколько элСмСнтов Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния использования памяти это Π½Π΅ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, Ρ‚.ΠΊ. Π² ΠΌΠ°ΡΡΠΈΠ²Π°Ρ… D1 ΠΈ D2 приходится Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ элСмСнты этих массивов Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС, Ρ‡Π΅ΠΌ это Π½Π°Π΄ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ динамичСскими массивами (динамичСским Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ памяти).

ΠŸΡ€ΠΈ сортировкС массива D2 ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ r (расстояниС ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΎ ΠΏΡ€ΡΠΌΠΎΠΉ) Π±Ρ‹Π» использован Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ сортировки ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ «ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ°». Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ основываСтся Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ сравнСнии Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π²ΡƒΡ… сосСдних элСмСнтов массива, начиная с ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сравнСния больший ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ элСмСнт пСрСмСщаСтся Π½Π° ΠΌΠ΅ΡΡ‚ΠΎ сосСднСго, достигая Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ число шагов мСста ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта массива (ΠΏΡ€ΠΈ пСрСстановкС r, ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ мСстами строки массива D2, Ρ‚. Π΅. ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт iΠΎΠΉ строки).

Для облСгчСния чтСния ΠΈ ΠΊΡ€Π°ΡΠΈΠ²ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΡΠΊΡ€Π°Π½ (записи Π² Ρ„Π°ΠΉΠ») Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ vyvod (), я Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π»ΡΡ табуляциСй t ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π½Ρ‹ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ элСмСнтов массивов %2.2f.

Алгоритм ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° составлСны Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ вся Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ осущСствляСтся Π½Π΅ Π² Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ massiv (). Π­Ρ‚ΠΎ сдСлано для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Π³Π»Π°Π²Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ main () ΠΈ Π΄Π»Ρ удобства Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ.

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠ½ΠΎΠΉ Π±Ρ‹Π»Π° прСдусмотрСна ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π½Π°ΠΆΠ°Ρ‚ия посторонних клавиш ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main () Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π½Π°ΠΆΠ°Ρ‚ия Π»ΡŽΠ±Ρ‹Ρ… клавиш ΠΊΡ€ΠΎΠΌΠ΅ 1 — 4. Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ massiv () 2 Π·Π°Ρ‰ΠΈΡ‚Ρ‹: 1 — я ΠΎΡ‚ Π½Π°ΠΆΠ°Ρ‚ия посторонних клавиш ΠΊΡ€ΠΎΠΌΠ΅ 1 — 4; 2 — я ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, Π²Π²Π΅Π» Π»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ массив, Ρ‚. Π΅. Ссли Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ массива ΠΈΠ»ΠΈ Π΅Π³ΠΎ просмотр Π½Π΅ Π²Π²Π΅Π΄Ρ Π΅Π³ΠΎ (ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹), Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ ΠΎΠ± ΡΡ‚ΠΎΠΌ. Благодаря этим способам Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π΅Π· сбоСв ΠΈ ΠΎΡˆΠΈΠ±ΠΎΠΊ ΠΏΡ€ΠΈ случайном (ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ) Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ посторонних клавиш.

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