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

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ языка программирования Π‘/Π‘++ ΠΏΡ€ΠΈ создании Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

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

НСобходимо ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ особСнно ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΠΌ аспСктС быстрой сортировки. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Π½Π΄Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ€Π°Π²Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, быстрая сортировка становится «ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ сортировкой» со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния порядка n2. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ опрСдСлСния ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Π½Π΄Π°. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ часто опрСдСляСтся ΠΏΡ€ΠΈΡ€ΠΎΠ΄ΠΎΠΉ сортируСмых Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Π² ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… списках… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

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

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

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

2. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ².

3. Бтруктурная схСма ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

4. ОписаниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

5. ОписаниС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

6. Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

7. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сортировки.

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

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

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

ЦСлью Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒ тСорСтичСскиС знания ΠΏΠΎ ΡΠ·Ρ‹ΠΊΡƒ программирования Π‘Π‘++ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΡ… Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΡ€ΠΈ создании Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΊΡ€ΡƒΠ³ΠΎΠ·ΠΎΡ€ студСнтов Π² Π²ΠΎΠΏΡ€ΠΎΡΠ°Ρ… возмоТности примСнСния Π­Π’Πœ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ практичСской Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, овладСвания Π½Π°Π²Ρ‹ΠΊΠ°ΠΌΠΈ структурного программирования Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘. Π’ ΡΡ‚ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ для выполнСния всСх Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ прСподаватСля ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ прилоТСния ΠΌΠ½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ знания ΠΏΠΎ Π²ΡΠ΅ΠΌΡƒ курсу «ΠΠ»Π³ΠΎΡ€ΠΈΡ‚мизация ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ «Π‘/Π‘++». ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ прСдстоит:

Β· ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со ΡΡ€Π΅Π΄ΠΎΠΉ программирования Π‘Π‘++;

Β· ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ;

Β· провСсти ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· языков программирования этого класса, Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ достоинства ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΊΠΈ;

Β· привСсти элСмСнты мСтодичСской Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π²ΠΈΠ΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π·Π°Π΄Π°Π½ΠΈΠΉ.

Π’Π°Π±Π»ΠΈΡ†Π° 1 — Π­ΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ Π±Π°Π·Π° Ρ€Π΅Π»Π΅.

β„–.

ΠœΠ°Ρ€ΠΊΠ° Ρ€Π΅Π»Π΅.

R Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅, Ом.

U Ρ€Π°Π±ΠΎΡ‡Π΅Π΅, Π’.

I Ρ€Π°Π±ΠΎΡ‡Π΅Π΅, А.

Масса,.

Π³.

P1.

P3.

PTK-X (M).

DSH-15.

ВАМ 112−1М.

ВАМ 103.

ВАМ 123.

Π’425.

МРВ 110.

ВАМ 126.

BI-1-М.

PΠ’Π‘Π’.

PΠ’-БМ-Π•Ρ….

TAB102.

В4М013.

ВАМ 127.

ВАМ133−2М-46.

МРВ 12.

Π’Π E 974.

Π’Π E108.

1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ справочника Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ (Π’Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…) с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π‘.

Π’Ρ‹Π²ΠΎΠ΄ справочника Π½Π° ΡΠΊΡ€Π°Π½ (с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π‘++).

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ записи Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π° ΠΏΠΎ ΠΏΠΎΠ»ΡŽ строкового Ρ‚ΠΈΠΏΠ° (ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ).

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ быстрой сортировки ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (Π½Π° ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°).

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π° ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (Π½Π° ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°).

Поиск записи Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ΅ ΠΏΠΎ Ρ‡Π°ΡΡ‚ΠΈ названия ΠΌΠ°Ρ€ΠΊΠΈ Ρ€Π°Π΄ΠΈΠΎΠ΄Π΅Ρ‚Π°Π»ΠΈ.

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ справочника Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка Π‘++.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ справочника ΠΈΠ· Ρ„Π°ΠΉΠ»Π° с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка Π‘++.

Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

КаТдая запись Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· 5 ΠΏΠΎΠ»Π΅ΠΉ: ΠΌΠ°Ρ€ΠΊΠ° (строковой Ρ‚ΠΈΠΏ); ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ 4 поля Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ· ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠΎΠ² ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ€Π°Π΄ΠΈΠΎΠ΄Π΅Ρ‚Π°Π»Π΅ΠΉ. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ€ΠΊΠΈ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ. Π’Π°Π±Π»ΠΈΡ†Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

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

ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‚ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ компилятора gcc.

2. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ².

struct rele s[20] - структура, содСрТащая ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ 20 Ρ€Π΅Π»Π΅;

float U — Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ напряТСниС Π½Π° Ρ€Π΅Π»Π΅, вСщСствСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…;

char marka[15] - Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π»Π΅, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив, максимальноС количСство символов Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π²Π½ΠΎ 15;

int R, I, massa — номинальноС сопротивлСниС, рабочая сила Ρ‚ΠΎΠΊΠ°, масса, цСлочислСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…;

int i — глобальная пСрСмСнная цСлочислСнного Ρ‚ΠΈΠΏΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ количСство Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ€Π΅Π»Π΅.

3. Бтруктурная схСма ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

void vvod () — функция, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°ΡΡΡ для Π²Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ€Π΅Π»Π΅ Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ, хранится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ vvod. с;

void vivod () — функция, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°ΡΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΡΠΊΡ€Π°Π½ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π²ΡΠ΅Ρ… Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ Ρ€Π΅Π»Π΅, хранится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ vivod. c;

void shell ()-функция, прСдназначСнная для сортировки Ρ€Π΅Π»Π΅ ΠΏΠΎ ΠΈΡ… ΠΌΠ°Ρ€ΠΊΠ°ΠΌ ΠΏΠΎ ΠΏΠΎΠ»ΡŽ строкового Ρ‚ΠΈΠΏΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π°, хранится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ shell. c;

void q_sort (int l, int r) — функция, прСдназначСнная для сортировки Ρ€Π΅Π»Π΅ ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (I) ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ быстрой сортировки, хранится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ q_sort.c;

void shell_str ()-функция, прСдназначСнная для сортировки Ρ€Π΅Π»Π΅ ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (U) ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π°, хранится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ shell_str.c;

void save (char *) — функция, прСдназначСнная для сохранСния справочника Π² Ρ„Π°ΠΉΠ»Π΅, хранится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ save. c;

void open (char *) — функция, прСдназначСнная для открытия справочника ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, хранится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ open. c;

void del ()-функция, прСдназначСнная для удалСния записи ΠΈΠ· ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ°, хранится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ del.c.

void search ()-функция, прСдназначСнная для поиска записи Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ΅ ΠΏΠΎ Ρ‡Π°ΡΡ‚ΠΈ названия ΠΌΠ°Ρ€ΠΊΠΈ Ρ€Π΅Π»Π΅, хранится Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ search. c;

4. ОписаниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° начинаСтся с Ρ†ΠΈΠΊΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли пСрСмСнная «Ρ…» ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π½Π΅ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΎΡ‚, Π° Π΄ΠΎ q ΠΏΡƒΠ½ΠΊΡ‚Π° мСню ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue;

Π”Π°Π»Π΅Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ конструкции.

switch (x).

{.

case a:…

case b:…

}.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

aΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ справочника Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ (Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…) с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ функция языка Π‘.

bΠ’Ρ‹Π²ΠΎΠ΄ справочника Π½Π° ΡΠΊΡ€Π°Π½ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Ρ… классов языка Π‘++.

cΠ£Π΄Π°Π»Π΅Π½ΠΈΠ΅ записи ΠΈΠ· ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ°.

dΠ‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π° ΠΏΠΎ ΠΏΠΎΠ»ΡŽ строкового Ρ‚ΠΈΠΏΠ°.

eБыстрая сортировка ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (I).

fΠ‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π° ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (U).

gПоиска записи Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ΅ ΠΏΠΎ Ρ‡Π°ΡΡ‚ΠΈ названия ΠΌΠ°Ρ€ΠΊΠΈ.

sΠ‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ справочника Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Ρ… классов Π‘++.

oΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ справочника ΠΈΠ· Ρ„Π°ΠΉΠ»Π° с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Ρ… классов Π‘++.

qΠ’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

5. ОписаниС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° Π¨Π΅Π»Π»Π°:

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ шагов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ. ЕдинствСнноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ послСдний шаг Π±Ρ‹Π» Ρ€Π°Π²Π΅Π½ 1. НапримСр, такая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: 9, 5, 3, 2, 1 Π΄Π°Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ся Π² ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ здСсь Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сортировки Π¨Π΅Π»Π»Π°.

void shell (char *items, int count) {.

register int i, j, gap, k;

char x, a[5];

a[0]=9; a[1]=5; a[2]=3; a[3]=2; a[4]=1;

for (k=0; k < 5; k++) {.

gap = a[k];

for (i=gap; i < count; ++i) {.

x = items[i];

for (j=i-gap; (x < items[j]) && (j >= 0); j=j-gap).

items[j+gap] = items[j];

items[j+gap] = x;

}.

}.

Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» for ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° условия ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ сравнСниС x=0 ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ массива items. Π­Ρ‚ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни ΠΏΠΎΠ½ΠΈΠΆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сортировки Π¨Π΅Π»Π»Π°.

Π’ ΡΠ»Π΅Π³ΠΊΠ° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… вСрсиях Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сортировки ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты массива, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ. Они Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ ΠΊ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΠΎ сортируСмому массиву, Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌΡƒ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌΡƒ элСмСнтам. Π­Ρ‚ΠΎ устраняСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ массива. Однако ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ элСмСнтов Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сортировки.

Анализ сортировки Π¨Π΅Π»Π»Π° связан с ΠΎΡ‡Π΅Π½ΡŒ слоТными матСматичСскими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выходят Π΄Π°Π»Π΅ΠΊΠΎ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этой ΠΊΠ½ΠΈΠ³ΠΈ. ΠŸΡ€ΠΈΠΌΠΈΡ‚Π΅ Π½Π° Π²Π΅Ρ€Ρƒ, Ρ‡Ρ‚ΠΎ врСмя сортировки ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ сортировкС n ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π½Π΅ ΡΡ‚ΠΎΠΈΡ‚ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎ Π²ΠΎΡΡ…ΠΈΡ‰Π°Ρ‚ΡŒΡΡ сортировкой Π¨Π΅Π»Π»Π° — быстрая сортировка Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅.

Быстрая сортировка:

Быстрая сортировка построСна Π½Π° ΠΈΠ΄Π΅Π΅ дСлСния. ΠžΠ±Ρ‰Π°Ρ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Π½Π΄ΠΎΠΌ (comparand)[10], Π° Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ массив Π½Π° Π΄Π²Π΅ части. ВсС элСмСнты, большиС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Π½Π΄Ρƒ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄Π½Ρƒ сторону, Π° ΠΌΠ΅Π½ΡŒΡˆΠΈΠ΅ — Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ. ΠŸΠΎΡ‚ΠΎΠΌ этот процСсс повторяСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ части Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° массив Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ отсортирован. НапримСр, Ссли исходный массив состоит ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² fedacb, Π° Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Π½Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ d, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ быстрой сортировки пСрСупорядочит массив ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Начало f e d a c b.

ΠŸΡ€ΠΎΡ…ΠΎΠ΄ 1 b c a d e f.

Π—Π°Ρ‚Π΅ΠΌ сортировка повторяСтся для ΠΎΠ±Π΅ΠΈΡ… ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ массива, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ bса ΠΈ def. Как Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, этот процСсс ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ сути рСкурсивный, ΠΈ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π² Ρ‡ΠΈΡΡ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅ быстрая сортировка рСализуСтся ΠΊΠ°ΠΊ рСкурсивная функция.

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

алгоритмизация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ справочник шСлл.

/* Ѐункция, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ быстрой сортировки. */.

void quick (char *items, int count){.

qs (items, 0, count-1);

}.

/* Быстрая сортировка. */.

void qs (char *items, int left, int right){.

register int i, j;

char x, y;

i = left; j = right;

x = items[(left+right)/2]; /* Π²Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Π½Π΄Π° */.

do {.

while ((items[i] < x) && (i < right)) i++;

while ((x < items[j]) && (j > left)) j—;

if (i <= j) {.

y = items[i];

items[i] = items[j];

items[j] = y;

i++; j—;

}.

} while (i <= j);

if (left < j) qs (items, left, j);

if (i < right) qs (items, i, right);

}.

Π’ ΡΡ‚ΠΎΠΉ вСрсии функция quick () Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ Π²Ρ‹Π·ΠΎΠ² Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ qs (). Π­Ρ‚ΠΎ обСспСчиваСт ΠΎΠ±Ρ‰ΠΈΠΉ интСрфСйс с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ items ΠΈ count, Π½ΠΎ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ нСпосрСдствСнно Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ qs () с Ρ‚рСмя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

НСобходимо ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ особСнно ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΠΌ аспСктС быстрой сортировки. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Π½Π΄Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ€Π°Π²Π½ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, быстрая сортировка становится «ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ сортировкой» со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния порядка n2. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ опрСдСлСния ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Π½Π΄Π°. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ часто опрСдСляСтся ΠΏΡ€ΠΈΡ€ΠΎΠ΄ΠΎΠΉ сортируСмых Π΄Π°Π½Π½Ρ‹Ρ…. НапримСр, Π² ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… списках ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠΉ рассылки, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сортировка происходит ΠΏΠΎ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠΌΡƒ индСксу, Π²Ρ‹Π±ΠΎΡ€ прост, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ индСксы довольно Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ распрСдСлСны — ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простой алгСбраичСской Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Однако Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ являСтся случайноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹ΠΉ ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ эффСктивный ΠΌΠ΅Ρ‚ΠΎΠ΄ — Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ элСмСнта ΠΈΠ· ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ части массива ΠΈ Π²Π·ΡΡ‚ΡŒ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΠΎΠΌΠΏΠ°Ρ€Π°Π½Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, располоТСнноС ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ.

6. Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Makefile.

— ΡΠ»ΡƒΠΆΠΈΡ‚ для компиляции всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π² ΠΎΠ΄ΠΈΠ½ исполняСмый Ρ„Π°ΠΉΠ» rele.exe.

rele: vvod. o menu.o vivod. o shell_str.o save. o open.o q_sort.o shell. o del.o search.o.

g++ -o rele vvod. o menu.o vivod. o shell_str.o save. o open.o q_sort.o shell. o del.o search.o.

menu.o: menu. c rele.h.

g++ -c menu.c.

vvod.o: vvod. c rele.h.

g++ -c vvod.c.

vivod.o: vivod. cpp rele.h.

g++ -c vivod.cpp.

save.o: save. cpp rele.h.

g++ -c save.cpp.

open.o: open. cpp rele.h.

g++ -c open.cpp.

shell.o: shell. c rele.h.

g++ -c shell.c.

shell_str.o: shell_str.c rele.h.

g++ -c shell_str.c.

q_sort.o: q_sort.c rele.h.

g++ -c q_sort.c.

del.o: del. c rele.h.

g++ -c del.c.

search.o: search. c rele.h.

g++ -c search.c.

clean:

rmrf *.o rele.

rele.h.

Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, структура Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΠΌΠ°ΡΡΠΈΠ² структуры, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

#include.

#include.

#include.

#include.

#include.

#include.

using namespace std;

/*ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ*/.

void vvod ();

void vivod ();

void shell ();

void q_sort (int l, int r);

void shell_str ();

void save (char *);

void open (char *);

void del ();

void search ();

/* объявлСниС структуры*/.

struct rele{.

float U;

char marka[15];

int R, I, massa;

};

menu.c.

menu.c содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ main (int argc, char *argv[]), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ рСализуСтся Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎΠ΅ мСню справочника Ρ€Π΅Π»Π΅, ΠΈ Π²Ρ‹Π·ΠΎΠ² всСх, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎ Π·Π°ΠΏΡ€ΠΎΡΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

#include «rele.h» .

int i=0;

struct rele s[20];

/* argc-количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹*/.

/*argv[]-массив ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° ΡΡ‚Ρ€ΠΎΠΊΠΈ*/.

int main (int argc, char *argv[]){.

system («clear»);

char x;

char c[100];

if (argc==1){.

printf («nИмя Ρ„Π°ΠΉΠ»Π° Π½Π΅ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡ€ΠΈ запускС! nn» .

" Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ Π΅Π³ΠΎ сСйчас: «);

scanf («%90s», c);

while (getchar ()≠ 'n');

}else{.

strcpy (c, argv[1]);

}.

while (1){.

printf («Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ Π Π•Π›Π• nn»);

printf («A.Π’Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π‘n»);

printf («B.Π’Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… c ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π‘++n»);

printf («C.Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ записи ΠΈΠ· ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ°n»);

printf («D.Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π° ΠΏΠΎ ΠΏΠΎΠ»ΡŽ строкового Ρ‚ΠΈΠΏΠ°n»);

printf («E.Быстрая сортировка ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (I)n»);

printf («F.Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π° ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (U) n»);

printf («G.Поиск записи Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ΅ ΠΏΠΎ Ρ‡Π°ΡΡ‚ΠΈ названия ΠΌΠ°Ρ€ΠΊΠΈn»);

printf («S.Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ справочника Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Ρ… классов Π‘++n»);

printf («O.ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ справочника ΠΈΠ· Ρ„Π°ΠΉΠ»Π° с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹Ρ… классов Π‘++n»);

printf («Q.Π’Ρ‹xΠΎΠ΄n»);

printf («nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню: «);

x = tolower (getchar ());

while (getchar ()≠ 'n');

switch (x){.

case 'a': vvod (); break;

case 'b': vivod (); break;

case 'c': del (); break;

case 'd': shell_str (); break;

case 'e': q_sort (0,i-1);

if (i>1) printf («nnΠ‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΡˆΠ°Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ! nn»);

break;

case 'f': shell ();

break;

case 'g': search ();

break;

case 's': save (c);break;

case 'o': open (c);break;

case 'q': printf («Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹n»); return 0;

default:{.

printf («nnΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Π½ ΠΏΡƒΠ½ΠΊΡ‚ мСню. n»);

printf («ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ сноваn»);

continue;

}.

}.

}.

}.

vvod.c.

— Π’ Ρ„Π°ΠΉΠ»Π΅ vvod. c ΠΎΠΏΠΈΡΠ°Π½Π° функция vvod (), Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π° языка Π‘. ΠŸΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ провСряСтся ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

#include" rele. h" .

/*ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ компилятору Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ поиска ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… объявлСний Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅*/.

extern int i;

extern struct rele s[20];

void vvod (){.

char c;

int n;

system («clear»);

while (1){.

if (i==20){.

system («clear»);

printf («nnΠ‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½! nn»);

return;

}.

printf («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠ°Ρ€ΠΊΡƒ %d Ρ€Π΅Π»Π΅: «, i+1);

fgets (s[i]. marka, 20, stdin);

for (n = 0; s[i]. marka[n]≠ 'n'; n++);

s[i]. marka[n] = '';

if (strlen (s[i]. marka) == 0){.

printf («nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅n»);

continue;

}.

while (1){.

printf («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ номинальноС сопротивлСниС (R, Ом) %d Ρ€Π΅Π»Π΅: «, i+1);

if (!(scanf («%d» ,&s[i]. R)) || s[i]. R <= 0){.

while (getchar ()≠'n');

system («clear»);

printf («Π’Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅! n»);

}.

else{.

while (getchar ()≠'n');

break;

}.

}.

while (1){.

printf («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ напряТСниС (U, Π²) %d Ρ€Π΅Π»Π΅: «, i+1);

if (!(scanf («%f» ,&s[i]. U)) || s[i]. U <= 0){.

while (getchar ()≠'n');

system («clear»);

printf («Π’Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅! n»);

}.

else{.

while (getchar ()≠'n');

break;

}.

}.

while (1){.

printf («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ силу Ρ‚ΠΎΠΊΠ° (I, mA) %d Ρ€Π΅Π»Π΅: «, i+1);

if (!(scanf («%d» ,&s[i]. I)) || s[i]. I <= 0){.

while (getchar ()≠'n');

system («clear»);

printf («Π’Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅! n»);

}.

else{.

while (getchar ()≠'n');

break;

}.

}.

while (1){.

printf («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ массу (Π³) %d Ρ€Π΅Π»Π΅: «, i+1);

if (!(scanf («%d» ,&s[i]. massa)) || s[i]. massa <= 0){.

while (getchar ()≠'n');

system («clear»);

printf («Π’Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅! n»);

}.

else{.

while (getchar ()≠'n');

break;

}.

}.

i++;

printf («nnΠ₯ΠΎΡ‚ΠΈΡ‚Π΅ ввСсти Π΅Ρ‰Ρ‘ Π΄Π°Π½Π½Ρ‹Π΅?(Y/N): «);

c=getchar ();

if (c=='n'){.

system («clear»);

break;

}.

while (getchar ()≠'n');

if (c=='N' || c=='n'){.

system («clear»);

break;

}else.

if (c=='Y' || c=='y'){.

system («clear»);

continue;

}else{.

system («clear»);

printf («Π’Π²Π΅Π΄Ρ‘Π½ нСизвСтсный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€! ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСнюn»);

break;

}.

}.

return;

}.

vivod.cpp.

— Π² Ρ„Π°ΠΉΠ»Π΅ vivod. cpp находится описаниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° созданного справочника Π½Π° ΡΠΊΡ€Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² языка Π‘++.

#include «rele.h» .

void vivod (){.

extern struct rele s[20];

extern int i;

system («clear»);

if (i==0){.

cout << «nnОшибка!!!nnΠ‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ пустnn» ;

return;

}.

cout << «Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ Π Π•Π›Π•n» ;

cout.setf (ios:right);

cout << n" ;

cout << «| N|ΠœΠ°Ρ€ΠΊΠ° Π Π•Π›Π• |R номинальноС|U Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ |I Ρ€Π°Π±ΠΎΡ‡Π΅Π΅| масса |n» ;

cout << n" ;

for (int a=0;a.

cout.width (10);.

cout << s[a]. U << «.

cout<<" =n" ;.

}.

save.cpp.

— Π² Ρ„Π°ΠΉΠ»Π΅ save. cpp описана функция сохранСния справочника Π² Π΄ΠΈΡΠΊΠΎΠ²ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка Π‘++..

#include «rele.h» .

void save (char * file){.

system («clear»);.

extern struct rele s[20];.

extern int i;.

if (i == 0){.

cout << «nΠ‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ пустn» ;.

return;.

}.

ofstream os (file, ios: binary);.

os.write ((char *)s, i*sizeof (rele));.

if (!os).

cout << «nНСвозмоТно ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»n» ;.

os.close ();.

cout << «nΠ—Π°ΠΏΠΈΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°n» ;.

return;.

}.

open.cpp.

-Π² Ρ„Π°ΠΉΠ»Π΅ open. cpp описана функция, прСдназначСнная для открытия справочника ΠΈΠ· Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка Π‘++..

#include «rele.h» .

void open (char * file){.

system («clear»);.

extern int i;.

extern struct rele s[20];.

ifstream is (file, ios: in | ios: binary);.

if (!is){.

cout << «nНСвозмоТно ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»n» ;.

return;.

}.

i = 0;.

while (1){.

is.read ((char*)(&s[i]), sizeof (rele));.

if (!is).

break;.

i++;.

}.

cout << «nΠ‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½» << «n» ;.

return;.

}.

shell.c.

— Π² Ρ„Π°ΠΉΠ»Π΅ shell. c ΠΎΠΏΠΈΡΠ°Π½Π° функция, прСдназначСнная для сортировки Ρ€Π΅Π»Π΅ ΠΏΠΎ ΠΈΡ… ΠΌΠ°Ρ€ΠΊΠ°ΠΌ ΠΏΠΎ ΠΏΠΎΠ»ΡŽ строкового Ρ‚ΠΈΠΏΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² языка Π‘..

#include «rele.h» .

void shell (){.

system («clear»);.

extern struct rele s[20];.

struct rele temp;.

extern int i;.

if (i<2){.

printf («Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ пуст Π»ΠΈΠ±ΠΎ присутствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 записьn»);.

return;.

}.

int a=0,j;.

int step = i / 2;.

while (step > 0){.

for (a=0;a<(i-step);a++){.

j=a;.

while ((j >= 0) && (s[j]. U > s[j + step]. U)){.

temp = s[j];.

s[j] = s[j + step];.

s[j + step] = temp;.

j—;.

}.

}.

step = step / 2;.

}.

printf («nnΠ‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎnn»);.

return;.

}.

shell_str.c.

— Π² Ρ„Π°ΠΉΠ»Π΅ shell_str.c описана функция, прСдназначСнная для сортировки Ρ€Π΅Π»Π΅ ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (U) ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π°..

#include «rele.h» .

void shell_str (){.

system («clear»);.

extern struct rele s[20];.

struct rele temp;.

extern int i;.

if (i<2){.

printf («Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ пуст Π»ΠΈΠ±ΠΎ присутствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 записьn»);.

return;.

}.

int f=0,j;.

int step = i / 2;.

while (step > 0){.

for (f = 0; f < (i — step); f++){.

j = f;.

while ((j >= 0) && (strcmp (s[j]. marka, s[j + step]. marka))>0){.

temp = s[j];.

s[j] = s[j + step];.

s[j + step] = temp;.

j—;.

}.

}.

step = step / 2;.

}.

printf («nnΠ‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎnn»);.

}.

q_sort.c.

Π² Ρ„Π°ΠΉΠ»Π΅ q_sort.c описываСтся функция, прСдназначСнная для сортировки Ρ€Π΅Π»Π΅ ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (I) ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ быстрой сортировки..

#include «rele.h» .

void q_sort (int l, int r) {.

system («clear»);.

if (r<1){.

printf («nΠ‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ пуст Π»ΠΈΠ±ΠΎ присутствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 записьnn»);.

return;.

}.

extern struct rele s[20];.

struct rele swap;.

if (l>=r).

return;.

int i = l, j = r;.

int x = s[(r+l)/2]. I;.

do{.

while (s[i]. I < x) i++;.

while (s[j]. I > x) j—;.

if (i<=j){.

swap = s[i];.

s[i] = s[j];.

s[j] = swap;.

i++;.

j—;.

}.

} while (!(i>j));.

q_sort (l, j);.

q_sort (i, r);.

return;.

del.c.

— Π² Ρ„Π°ΠΉΠ»Π΅ del. c ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ся функция, прСдназначСнная для удалСния записи ΠΈΠ· ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ°..

#include «rele.h» .

extern int i;.

extern struct rele s[20];.

void del (){.

int a, j;.

char c;.

system («clear»);.

while (1){.

if (i==0){.

printf («nnΠ‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ пустnn»);.

return;.

}.

printf («nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ Π½ΠΎΠΌΠ΅Ρ€ удаляСмой записи (всСго %d записСй): «, i);.

if (scanf («%d» ,&a)≠1){.

system («clear»);.

printf («ΠΠ΅ΠΊΠΊΠΎΡ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄. ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅n»);.

while (getchar ()≠'n');.

continue;.

}else.

if (a < 1 || a > i){.

printf («nnΠ—Π°ΠΏΠΈΡΡŒ N%d отсутствуСтnn», i);.

continue;.

}.

while (getchar ()≠'n');.

i—;.

for (j=a-1;j.

s[j]=s[j+1];.

}.

system («clear»);.

printf («nΠ—Π°ΠΏΠΈΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π°n»);.

printf («nΠ₯ΠΎΡ‚ΠΈΡ‚Π΅ Π΅Ρ‰Ρ‘ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅?(Y/N): «);.

c=getchar ();.

if (c=='n'){.

printf («nΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСнюnn»);.

return;.

}.

while (getchar ()≠'n');.

if (c=='N' || c=='n'){.

system («clear»);.

break;.

}else.

if (c=='Y' || c=='y'){.

system («clear»);.

continue;.

}else{.

printf («Π’Π²Π΅Π΄Ρ‘Π½ нСизвСсный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€nΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ мСнюn»);.

while (getchar ()≠'n');.

system («clear»);.

break;.

}.

}.

return;.

}.

search.c.

Π² Ρ„Π°ΠΉΠ»Π΅ search. c ΠΎΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ся функция, прСдназначСнная для поиска записи Π² ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊΠ΅ ΠΏΠΎ Ρ‡Π°ΡΡ‚ΠΈ названия ΠΌΠ°Ρ€ΠΊΠΈ Ρ€Π΅Π»Π΅..

#include" rele. h" .

extern struct rele s[20];.

extern int i;.

void search (){.

system («clear»);.

if (i==0){.

printf («nnΠ‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ пустn»);.

return;.

}.

int a, r[i], j=0;.

char g[16];.

printf («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠ°Ρ€ΠΊΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈ: «);.

fgets (g, 15, stdin);.

for (a = 0; g[a]≠ 'n'; a++);.

g[a] = '';.

for (a=0;a.

if (strstr (s[a]. marka, g)≠NULL){.

r[j]=a;.

j++;.

}.

if (j==0){.

printf («ΠΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… содСрТащих „%s“ n», g);.

return;.

}.

printf («Π—аписи содСрТащиС подстроку „%s“ n», g);.

for (a=0;a.

printf («|%2d|%15s|%13d|%10.1f|%9d|%7d|n», a+1,s[r[a]]. marka, s[r[a]].R, s[r[a]].U, s[r[a]].I, s[r[a]].massa);.

return;.

}.

7. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сортировки Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ справочник Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π° ΠΏΠΎ ΠΏΠΎΠ»ΡŽ строкового Ρ‚ΠΈΠΏΠ°.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ быстрой сортировки ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (I):.

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π¨Π΅Π»Π»Π° ΠΏΠΎ Ρ‡ΠΈΡΠ»ΠΎΠ²ΠΎΠΌΡƒ полю (U):.

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

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

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΈ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ Π½Π°Π²Ρ‹ΠΊΠΈ программирования ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ·Ρ‹ΠΊΠ° Π‘/Π‘++, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:.

— Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘;.

— Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++:.

— Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…;.

— ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ сортировок..

Π‘ΠΈ — стандартизированный ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ язык программирования, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² Π½Π°Ρ‡Π°Π»Π΅ 1970;Ρ… Π³ΠΎΠ΄ΠΎΠ² сотрудниками Bell Labs КСном Вомпсоном ΠΈ Π”Снисом Π ΠΈΡ‚Ρ‡ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ языка Π‘ΠΈ. Π‘ΠΈ Π±Ρ‹Π» создан для использования Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС UNIX. Π‘ΠΈ Ρ†Π΅Π½ΡΡ‚ Π·Π° Π΅Π³ΠΎ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Он ΡΠ²Π»ΡΠ΅Ρ‚ся самым популярным языком для создания систСмного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π’ ΡΠ·Ρ‹ΠΊΠ΅ C++ соСдинСны Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° программирования: ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (прСдставлСнноС языком Π‘), ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (прСдставлСнноС Ρ‚Π°ΠΊΠΈΠΌ понятиСм, ΠΊΠ°ΠΊ класс, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ языка C++ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΡΠ·Ρ‹ΠΊΠΎΠΌ Π‘) ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (прСдставлСнноС шаблонами языка C++). Одна ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ примСнСния языка C++ — это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСимущСства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΡ‡Π½ΠΎΠ΅ Π·Π½Π°Π½ΠΈΠ΅ стандартного языка Π‘, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ основныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ структуры ΠΈ ΡΠΈΠ½Ρ‚аксичСскиС ΠΏΡ€Π°Π²ΠΈΠ»Π° Π±Ρ‹Π»ΠΈ позаимствованы ΠΈΠ· ΡΡ‚ΠΎΠ³ΠΎ языка..

1. Π₯. М. Π”Π΅ΠΉΡ‚Π΅Π», П.Π”ΠΆ.Π”Π΅ΠΉΡ‚Π΅Π»./ Как ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π‘/Π‘++. Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ «Π‘ΠΈΠ½ΠΎΠΌ» 2005 Π³..

2. Π‘Ρ‚ΠΈΠ²Π΅Π½ ΠŸΡ€Π°Ρ‚Π°./ Π―Π·Ρ‹ΠΊ программирования Π‘М. Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ «Π”иасофт», 2002. — 896 с.

3. Π‘Ρ€Π°ΠΉΠ°Π½ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½, ДСннис Π ΠΈΡ‚Ρ‡ΠΈ. Π―Π·Ρ‹ΠΊ программирования C — Москва: Π’ΠΈΠ»ΡŒΡΠΌΡ, 2006..

4. Π“Π»ΡƒΡˆΠ°ΠΊΠΎΠ², Коваль, Π‘ΠΌΠΈΡ€Π½ΠΎΠ² «Π―Π·Ρ‹ΠΊ программирования C++. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ NSI/ISO» Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° «ΠΠ‘Π’, Π€ΠΎΠ»ΠΈΠΎ» 2001 Π³..

5. Π¨ΠΈΠ»Π΄Ρ‚ Π“. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ программиста ΠΏΠΎ Π‘/Π‘++, 3-Π΅ ΠΈΠ·Π΄.: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». — Πœ.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΌ «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2003.— 432с..

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