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

ΠžΡ†Π΅Π½ΠΊΠ° достоинств ΠΈ нСдостатков языка программирования Π‘++

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

Π―Π·Ρ‹ΠΊ «C» Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся языком со ΡΡ‚Ρ€ΠΎΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π² ΡΠΌΡ‹ΡΠ»Π΅ Паскаля. Он ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ снисходитСлСн ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, хотя ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… с Π±ΡƒΠΉΠ½ΠΎΠΉ Π½Π΅ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ. НаконСц, язык «C», ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ языку, ΠΈΠΌΠ΅Π΅Ρ‚ свои нСдостатки. НСкоторыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ ΡΡ‚Π°Ρ€ΡˆΠΈΠ½ΡΡ‚Π²ΠΎ; Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ синтаксиса ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅; сущСствуСт нСсколько… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

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

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

Одним ΠΈΠ· ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ уровня развития государства являСтся Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ повсСмСстно Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ, ΠΎΠ½ΠΈ ΠΏΡ€ΠΎΡ‡Π½ΠΎ вошли Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ сфСру, Π½ΠΎ ΠΈ Π² ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉ домашний ΠΎΠ±ΠΈΡ…ΠΎΠ΄. ЕстСствСнно, Ρ‡Ρ‚ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… ΠΊΠ°Π΄Ρ€ΠΎΠ² Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ процСссов ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ·ΠΊΠΈ, Π³Π΄Π΅ Π±Π΅Π· соврСмСнных Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ нСльзя. Π—Π½Π°Π½ΠΈΠ΅ языка программирования Π² Ρ‚Π°ΠΊΠΈΡ… условиях Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

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

1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

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

ΠžΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ ΡΡ‚Π΅ΠΊΠΈ.

ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ заполнСния ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ ΡΡ‚Π΅ΠΊΠ° ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ удалСния элСмСнтов ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ ΡΡ‚Π΅ΠΊΠ°.

Π’ Π±Π»ΠΎΠΊΠ΅ Cur. cpp ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ класс win. Π”Π°Π½Π½Ρ‹ΠΉ класс создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΠΊΠ½Π΅ (ΠΊΠ½ΠΎΠΏΠΊΠ΅).

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ класса:

class win

{

public:

int dx, height, width, top, selected;

char *text;

void DrawWindow (int, int, int, int, int, char*);

void HideWindow (int, int, int, int);

void TextOut (char*, int, int, int, int);

};

dx-ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° ΠΏΠΎ Ρ… Π»Π΅Π²ΠΎΠ³ΠΎ края ΠΎΠΊΠ½Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

height — высота ΠΎΠΊΠ½Π° (ΠΊΠ½ΠΎΠΏΠΊΠΈ).

width — ΡˆΠΈΡ€ΠΈΠ½Π° ΠΎΠΊΠ½Π° (ΠΊΠ½ΠΎΠΏΠΊΠΈ).

top — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° ΠΏΠΎ Ρƒ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ края ΠΎΠΊΠ½Π° (ΠΊΠ½ΠΎΠΏΠΊΠΈ) ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

selected-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΠΊΠ½Π° (ΠΊΠ½ΠΎΠΏΠΊΠΈ), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ закраску Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ (1-Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅, 0-Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅).

*text — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΡ‚Ρ€ΠΎΠΊΡƒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π² ΠΎΠΊΠ½ΠΎ.

void DrawWindow (int, int, int, int, int, char*) — функция, которая ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ рисуСт ΠΎΠΊΠ½ΠΎ. Π’ Π½Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ dx, height, width, top, selected ΠΈ *text.

void HideWindow (int, int, int, int) — функция, которая ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ зарисовываСт (удаляСт) ΠΎΠΊΠ½ΠΎ. Π’ Π½Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ dx, height, width, top, selected.

void TextOut (char*, int, int, int, int) — функция, которая ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ ΠΎΠΊΠ½Π° Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² Π½Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ строку. Π’ Π½Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ *text, dx, height, width, top.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ всСх пСрСчислСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

void win: DrawWindow (int lx, int hght, int wdth, int t, int slct, char*str)

{height=hght; width=wdth; top=t; selected=slct; text=str;

setcolor (WHITE);

setfillstyle (SOLID_FILL, selected? MAGENTA: BLUE);

dx=lx;

bar (dx, top, dx+width, top+height);

TextOut (text, dx, height, width, top);

int poly [12];

poly[0] = dx;

poly[1] = top;

poly[2] = dx+width;

poly[3] = top;

poly[4] = dx+width-3;

poly[5] = top+3;

poly[6] = dx+3;

poly[7] = top+3;

poly[8] = dx+3;

poly[9] = top+height-3;

poly[10] = dx;

poly[11] = top+height;

setfillstyle (SOLID_FILL, selected? CYAN: LIGHTBLUE);

fillpoly (6, poly);

poly[0] = dx;

poly[1] = top+height;

poly[2] = dx+width;

poly[3] = top+height;

poly[4] = dx+width;

poly[5] = top;

poly[6] = dx+width-3;

poly[7] = top+3;

poly[8] = dx+width-3;

poly[9] = top+height-3;

poly[10] = dx+3;

poly[11] = top+height-3;

setfillstyle (SOLID_FILL, BLACK);

fillpoly (6, poly);

}

void win: HideWindow (int lx, int hght, int wdth, int t)

{dx=lx; height=hght; width=wdth; top=t;

setfillstyle (SOLID_FILL, BLUE);

bar (dx, top, dx+width, top+height);

}

void win: TextOut (char *text, int dx, int height, int width, int top)

{

int w = textwidth (text);

int h = textheight (text);

int y = (height-h)/2;

int x = (width-w)/2;

outtextxy (dx+x, top+y, text);

}

Π’ Π±Π»ΠΎΠΊΠ΅ Menu. cpp ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹:

struct coord {int x, lx, ly, rx, ry;} — структура содСрТащая ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠΊΠ½Π°.

x — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° ΠΏΠΎ Ρ… Π»Π΅Π²ΠΎΠ³ΠΎ края ΠΎΠΊΠ½Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

lx — высота ΠΎΠΊΠ½Π° (ΠΊΠ½ΠΎΠΏΠΊΠΈ).

ly — ΡˆΠΈΡ€ΠΈΠ½Π° ΠΎΠΊΠ½Π° (ΠΊΠ½ΠΎΠΏΠΊΠΈ).

rx — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° ΠΏΠΎ Ρƒ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ края ΠΎΠΊΠ½Π° (ΠΊΠ½ΠΎΠΏΠΊΠΈ) ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

ry — ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΠΊΠ½Π° (ΠΊΠ½ΠΎΠΏΠΊΠΈ), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ закраску Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ (1-Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅, 0-Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅).

void mnu_bild (win *mnu, coord *t, int reakt, int flag, char**name) — функция, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠΊΠ½Π° (ΠΊΠ½ΠΎΠΏΠΊΠΈ), ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΡ‚Ρ€ΠΎΠΊΡƒ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса win, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΎΠ½Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ»ΠΈ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.

void mnu_bild (win *mnu, coord *t, int reakt, int flag, char**name)

{if (flag==1)

{

t[reakt]. ry=1;

mnu[reakt].DrawWindow (t[reakt]. x, t[reakt]. lx, t[reakt]. ly, t[reakt]. rx, t[reakt]. ry, name[reakt]);

}

else {

if (reakt≠0) t[reakt]. ry=0;

mnu[reakt].DrawWindow (t[reakt]. x, t[reakt]. lx, t[reakt]. ly, t[reakt]. rx, t[reakt]. ry, name[reakt]);

}

}

void steck(void) — функция Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Ρ€Π°Π±ΠΎΡ‚Ρƒ со ΡΡ‚Π΅ΠΊΠΎΠΌ.

void steck (void)

{

win unit;

win main_win[3];

char *str[]={{"1"}, {"2"}, {"3"}, {"4"}, {"5"}, {"6"}, {"7"}};

char *dialog[]={{"Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² ΡΡ‚Π΅ΠΊ"},

{"Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈΠ· ΡΡ‚Π΅ΠΊΠ°"},

{"НаТмитС Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ"}};

coord mwin[]={{260,460,366,10,0}, {350,20,183,30,0}, {350,400,250,60,0}};

coord unit_c={310,20,20,60,1};

win temp=unit;

mnu_bild (main_win, mwin, 0,0, name);

mnu_bild (main_win+1, mwin+1,0,1, name+2);

mnu_bild (main_win+2, mwin+2,0,0, name);

main_win[2]. TextOut (*dialog, main_win[2]. dx, 40, main_win[2]. width, main_win[2]. top);

Text (main_win+2, «Π‘Ρ‚Π΅ΠΊ.txt»);

mnu_bild (&unit,&unit_c, 0,1, str);

getch ();

coord tmp=unit_c;

for (int j=6; j>=0; j-)

{

mnu_bild (&temp,&tmp, 0,1, str+6-j);

for (int i=0; i

{

moveDOWN (&temp);

delay (50);

}

}

tmp.x=temp.dx;

tmp.lx=temp.height;

tmp.ly=temp.width;

tmp.rx=temp.top;

tmp.ry=temp.selected;

while (1)

{main_win[2]. HideWindow (362,40,230,63);

delay (500);

main_win[2]. TextOut (*(dialog+2), main_win[2]. dx, 40,240, main_win[2]. top+1);

delay (500);

if (kbhit ()≠0) {int i=getch (); if (i≠0) break;}

}

main_win[2]. HideWindow (main_win[2]. dx+6,30, main_win[2]. width-11, main_win[2]. top+4);

main_win[2].TextOut (*(dialog+1), main_win[2]. dx, 40, main_win[2]. width-1, main_win[2]. top);

for (j=6; j>=0; j-)

{

mnu_bild (&temp,&tmp, 0,1, str+j);

tmp.rx+=20;

for (int i=9+6-j; i>=0; i-)

{

moveUP (&temp);

delay (50);}

}

temp. HideWindow (temp.dx, temp. height, temp. width, temp. top);

while (1)

{main_win[2]. HideWindow (362,40,230,63);

delay (500);

main_win[2]. TextOut (*(dialog+2), main_win[2]. dx, 40,240, main_win[2]. top+1);

delay (500);

if (kbhit ()≠0) {int i=getch (); if (i≠0) break;}

}

}

void turn(void) — функция Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ.

void turn (void)

{

win unit;

win main_win[3];

char *str[]={{"1"}, {"2"}, {"3"}, {"4"}, {"5"}, {"6"}, {"7"}};

char *dialog[]={{"Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ"},

{"Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ"},

{"НаТмитС Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ"}};

coord mwin[]={{260,460,366,10,0}, {350,20,183,30,0}, {350,400,250,60,0}};

coord unit_c={310,20,20,60,1};

win temp=unit;

win temp1;

mnu_bild (main_win, mwin, 0,0, name);

mnu_bild (main_win+1, mwin+1,0,1, name+1);

mnu_bild (main_win+2, mwin+2,0,0, name);

main_win[2]. TextOut (*dialog, main_win[2]. dx, 40, main_win[2]. width, main_win[2]. top);

Text (main_win+2, «ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ.txt»);

mnu_bild (&unit,&unit_c, 0,1, str);

getch ();

coord tmp=unit_c;

for (int j=6; j>=0; j-)

{

mnu_bild (&temp,&tmp, 0,1, str+6-j);

for (int i=0; i

{

moveDOWN (&temp);

delay (50);

}

if (j==6) temp1=temp;

tmp.x=temp1.dx;

tmp.lx=temp1.height;

tmp.ly=temp1.width;

tmp.rx=temp1.top;

tmp.ry=temp1.selected;

while (1)

{main_win[2]. HideWindow (355,40,240,63);

delay (500);

main_win[2]. TextOut (*(dialog+2), main_win[2]. dx, 40,240, main_win[2]. top+1);

delay (50);

if (kbhit ()≠0) {int i=getch (); if (i≠0) break;}

}

main_win[2]. HideWindow (main_win[2]. dx+6,30, main_win[2]. width-11, main_win[2]. top+4);

main_win[2].TextOut (*(dialog+1), main_win[2]. dx, 40, main_win[2]. width-1, main_win[2]. top);

mnu_bild (&temp,&tmp, 0,1, str);

for (j=0; j<7; j++)

{

mnu_bild (&temp,&tmp, 0,1, str+j);

tmp.rx-=20;

for (int i=6+j; i>=0; i-)

{

moveDOWN (&temp);

delay (50);}

}

temp. HideWindow (temp.dx, temp. height, temp. width, temp. top);

while (1)

{main_win[2]. HideWindow (360,40,230,63);

delay (500);

main_win[2]. TextOut (*(dialog+2), main_win[2]. dx, 40,240, main_win[2]. top+1);

delay (500);

if (kbhit ()≠0) {int i=getch (); if (i≠0) break;}

}

}

void stud_info(void) — функция выводящая ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π΅.

void stud_info (void)

{

win main_win;

coord win_coord={160,240,320,120,1};

mnu_bild (&main_win,&win_coord, 0,1, name);

Text (&main_win, «Studinfo.txt»);

delay (5000);

getch ();

}

Π’ Π±Π»ΠΎΠΊΠ΅ Move. cpp ΠΎΠΏΡ€Π΅Π΄Π΅Π½Ρ‹:

void moveDOWN (win *tmp) — функция, которая ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ шаг Π²Π½ΠΈΠ·. Π’ Π½Π΅Π΅ пСрСдаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса win.

void moveDOWN (win *tmp)

{

tmp[0]. HideWindow (tmp[0]. dx, tmp[0]. height, tmp[0]. width, tmp[0]. top);

tmp[0].DrawWindow (tmp[0]. dx, tmp[0]. height, tmp[0]. width, tmp[0]. top+20, tmp[0]. selected, tmp[0]. text);

}

void moveUP (win *tmp) — функция, которая ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ шаг Π²Π²Π΅Ρ€Ρ…. Π’ Π½Π΅Π΅ пСрСдаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса win.

void moveUP (win *tmp)

{

tmp[0]. HideWindow (tmp[0]. dx, tmp[0]. height, tmp[0]. width, tmp[0]. top);

tmp[0].DrawWindow (tmp[0]. dx, tmp[0]. height, tmp[0]. width, tmp[0]. top-20, tmp[0]. selected, tmp[0]. text);

}

Π’ Π±Π»ΠΎΠΊΠ΅ Text. cpp ΠΎΠΏΡ€Π΅Π΄Π΅Π½Ρ‹:

void Text (win *tmp, char *fname) — функция основная Π·Π°Π΄Π°Ρ‡Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΠ· Ρ‚Скстового Ρ„Π°ΠΉΠ»Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Π²Ρ‹Π²Π΅ΡΡ‚ΠΈ Π΅Π΅ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. Π’ Π½Π΅Π΅ пСрСдаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса win (Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ) ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΈΠΌΡ Ρ„Π°ΠΉΠ»Π°.

void Text (win *tmp, char *fname)

{

int left=tmp[0]. dx;

int right=tmp[0]. width;

int up=tmp[0]. top+50;

int down=3;

FILE *in;

in=fopen (fname, «r»);

char cimb;

char *string[100];

char *str_out;

str_out=(char *) calloc (right/8, sizeof (char));

int qs;

int j=0;

while (qs≠-1)

{

for (int i=0; i

{

qs=fscanf (in, «%c», str_out+i);

}

string[j]=str_out;

str_out= (char *) calloc (right/8, sizeof (char));

j++;

}

fcloseall ();

printf («n»);

for (int i=0; i

{tmp[0]. TextOut (string[i], left, down+10*i, right, up+10*i); delay (50);}

}

2. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° языкС Π‘

#include

#include

#include

#include

class win

{

public:

int dx, height, width, top, selected;

char *text;

void DrawWindow (int, int, int, int, int, char*);

void HideWindow (int, int, int, int);

void TextOut (char*, int, int, int, int);

};

void win: DrawWindow (int lx, int hght, int wdth, int t, int slct, char*str)

{height=hght; width=wdth; top=t; selected=slct; text=str;

setcolor (WHITE);

setfillstyle (SOLID_FILL, selected? MAGENTA: BLUE);

dx=lx;

bar (dx, top, dx+width, top+height);

TextOut (text, dx, height, width, top);

int poly [12];

poly[0] = dx;

poly[1] = top;

poly[2] = dx+width;

poly[3] = top;

poly[4] = dx+width-3;

poly[5] = top+3;

poly[6] = dx+3;

poly[7] = top+3;

poly[8] = dx+3;

poly[9] = top+height-3;

poly[10] = dx;

poly[11] = top+height;

setfillstyle (SOLID_FILL, selected? CYAN: LIGHTBLUE);

fillpoly (6, poly);

poly[0] = dx;

poly[1] = top+height;

poly[2] = dx+width;

poly[3] = top+height;

poly[4] = dx+width;

poly[5] = top;

poly[6] = dx+width-3;

poly[7] = top+3;

poly[8] = dx+width-3;

poly[9] = top+height-3;

poly[10] = dx+3;

poly[11] = top+height-3;

setfillstyle (SOLID_FILL, BLACK);

fillpoly (6, poly);

}

void win: HideWindow (int lx, int hght, int wdth, int t)

{dx=lx; height=hght; width=wdth; top=t;

setfillstyle (SOLID_FILL, BLUE);

bar (dx, top, dx+width, top+height);

}

void win: TextOut (char *text, int dx, int height, int width, int top)

{

int w = textwidth (text);

int h = textheight (text);

int y = (height-h)/2;

int x = (width-w)/2;

outtextxy (dx+x, top+y, text);

}

#include «cur3.cpp»

#include «move.cpp»

#include

#include

#include «text.cpp»

void turn (void);

void steck (void);

void stud_info (void);

struct coord {int x, lx, ly, rx, ry;};

win menu[7];

coord wind_coord[7]={{0,480,640,0,0}, {50,30,200,33,1}, {50,30,200,76,0},

{50,30,200,117,0}, {50,30,200,158,0}};

char *name[5]={{""}, {"ДСмонстрация ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ"}, {"ДСмонстрация стСка"}, {"Π’Ρ‹Ρ…ΠΎΠ΄"}, {"Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π΅"}};

void mnu_bild (win *mnu, coord *t, int reakt, int flag, char**name)

{if (flag==1)

{

t[reakt]. ry=1;

mnu[reakt].DrawWindow (t[reakt]. x, t[reakt]. lx, t[reakt]. ly, t[reakt]. rx, t[reakt]. ry, name[reakt]);

}

else {

if (reakt≠0) t[reakt]. ry=0;

mnu[reakt].DrawWindow (t[reakt]. x, t[reakt]. lx, t[reakt]. ly, t[reakt]. rx, t[reakt]. ry, name[reakt]);

}

}

void main (void)

{

int gdriver = DETECT, gmode, errorcode;

initgraph (&gdriver, &gmode, «egavga.bgi»);

errorcode = graphresult ();

if (errorcode≠ grOk) /* an error occurred */

{printf («Graphics error:%sn», grapherrormsg (errorcode));

printf («Press any key to halt:»);

getch ();

exit (1); /* return with error code */

}

while (1)

{

for (int i=0; i<5; i++)

mnu_bild (menu, wind_coord, i, 0, name);

mnu_bild (menu, wind_coord, 1,1, name);

int kod, metka=1;

kod=getch ();

while (kod≠13)

{

kod=getch ();

if (kod==0) kod=getch ();

if (kod==72)

{mnu_bild (menu, wind_coord, metka, 0, name);

if (metka==1) {metka=4; mnu_bild (menu, wind_coord, metka, 1, name);}

else — metka;

mnu_bild (menu, wind_coord, metka, 1, name);

}

if (kod==80)

{mnu_bild (menu, wind_coord, metka, 0, name);

if (metka==4) {metka=1; mnu_bild (menu, wind_coord, metka, 1, name);}

else ++metka;

mnu_bild (menu, wind_coord, metka, 1, name);

}}

switch (metka)

{case 1: turn (); break;

case 2: steck (); break;

case 4: stud_info (); break;

default: exit (1); break;

}

}

}

void steck (void)

{

win unit;

win main_win[3];

char *str[]={{"1"}, {"2"}, {"3"}, {"4"}, {"5"}, {"6"}, {"7"}};

char *dialog[]={{"Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² ΡΡ‚Π΅ΠΊ"},

{"Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈΠ· ΡΡ‚Π΅ΠΊΠ°"},

{"НаТмитС Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ"}};

coord mwin[]={{260,460,366,10,0}, {350,20,183,30,0}, {350,400,250,60,0}};

coord unit_c={310,20,20,60,1};

win temp=unit;

mnu_bild (main_win, mwin, 0,0, name);

mnu_bild (main_win+1, mwin+1,0,1, name+2);

mnu_bild (main_win+2, mwin+2,0,0, name);

main_win[2]. TextOut (*dialog, main_win[2]. dx, 40, main_win[2]. width, main_win[2]. top);

Text (main_win+2, «Π‘Ρ‚Π΅ΠΊ.txt»);

mnu_bild (&unit,&unit_c, 0,1, str);

getch ();

coord tmp=unit_c;

for (int j=6; j>=0; j-)

{

mnu_bild (&temp,&tmp, 0,1, str+6-j);

for (int i=0; i

{

moveDOWN (&temp);

delay (50);

}

}

tmp.x=temp.dx;

tmp.lx=temp.height;

tmp.ly=temp.width;

tmp.rx=temp.top;

tmp.ry=temp.selected;

while (1)

{main_win[2]. HideWindow (362,40,230,63);

delay (500);

main_win[2]. TextOut (*(dialog+2), main_win[2]. dx, 40,240, main_win[2]. top+1);

delay (500);

if (kbhit ()≠0) {int i=getch (); if (i≠0) break;}

}

main_win[2]. HideWindow (main_win[2]. dx+6,30, main_win[2]. width-11, main_win[2]. top+4);

main_win[2].TextOut (*(dialog+1), main_win[2]. dx, 40, main_win[2]. width-1, main_win[2]. top);

for (j=6; j>=0; j-)

{

mnu_bild (&temp,&tmp, 0,1, str+j);

tmp.rx+=20;

for (int i=9+6-j; i>=0; i-)

{

moveUP (&temp);

delay (50);}

}

temp. HideWindow (temp.dx, temp. height, temp. width, temp. top);

while (1)

{main_win[2]. HideWindow (362,40,230,63);

delay (500);

main_win[2]. TextOut (*(dialog+2), main_win[2]. dx, 40,240, main_win[2]. top+1);

delay (500);

if (kbhit ()≠0) {int i=getch (); if (i≠0) break;}

}

}

void turn (void)

{

win unit;

win main_win[3];

char *str[]={{"1"}, {"2"}, {"3"}, {"4"}, {"5"}, {"6"}, {"7"}};

char *dialog[]={{"Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ"},

{"Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ"},

{"НаТмитС Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ"}};

coord mwin[]={{260,460,366,10,0}, {350,20,183,30,0}, {350,400,250,60,0}};

coord unit_c={310,20,20,60,1};

win temp=unit;

win temp1;

mnu_bild (main_win, mwin, 0,0, name);

mnu_bild (main_win+1, mwin+1,0,1, name+1);

mnu_bild (main_win+2, mwin+2,0,0, name);

main_win[2]. TextOut (*dialog, main_win[2]. dx, 40, main_win[2]. width, main_win[2]. top);

Text (main_win+2, «ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ.txt»);

mnu_bild (&unit,&unit_c, 0,1, str);

getch ();

coord tmp=unit_c;

for (int j=6; j>=0; j-)

{

mnu_bild (&temp,&tmp, 0,1, str+6-j);

for (int i=0; i

{

moveDOWN (&temp);

delay (50);

}

if (j==6) temp1=temp;

}

tmp.x=temp1.dx;

tmp.lx=temp1.height;

tmp.ly=temp1.width;

tmp.rx=temp1.top;

tmp.ry=temp1.selected;

while (1)

{main_win[2]. HideWindow (355,40,240,63);

delay (500);

main_win[2]. TextOut (*(dialog+2), main_win[2]. dx, 40,240, main_win[2]. top+1);

delay (50);

if (kbhit ()≠0) {int i=getch (); if (i≠0) break;}

}

main_win[2]. HideWindow (main_win[2]. dx+6,30, main_win[2]. width-11, main_win[2]. top+4);

main_win[2].TextOut (*(dialog+1), main_win[2]. dx, 40, main_win[2]. width-1, main_win[2]. top);

mnu_bild (&temp,&tmp, 0,1, str);

for (j=0; j<7; j++)

{

mnu_bild (&temp,&tmp, 0,1, str+j);

tmp.rx-=20;

for (int i=6+j; i>=0; i-)

{

moveDOWN (&temp);

delay (50);}

}

temp. HideWindow (temp.dx, temp. height, temp. width, temp. top);

while (1)

{main_win[2]. HideWindow (360,40,230,63);

delay (500);

main_win[2]. TextOut (*(dialog+2), main_win[2]. dx, 40,240, main_win[2]. top+1);

delay (500);

if (kbhit ()≠0) {int i=getch (); if (i≠0) break;}

}

}

void stud_info (void)

{

win main_win;

coord win_coord={160,240,320,120,1};

mnu_bild (&main_win,&win_coord, 0,1, name);

Text (&main_win, «Studinfo.txt»);

delay (5000);

getch ();

}

#include

#include

#include

void Text (win *tmp, char *fname)

{

int left=tmp[0]. dx;

int right=tmp[0]. width;

int up=tmp[0]. top+50;

int down=3;

FILE *in;

in=fopen (fname, «r»);

char cimb;

char *string[100];

char *str_out;

str_out=(char *) calloc (right/8, sizeof (char));

int qs;

int j=0;

while (qs≠-1)

{

for (int i=0; i

{

qs=fscanf (in, «%c», str_out+i);

}

string[j]=str_out;

str_out= (char *) calloc (right/8, sizeof (char));

j++;

}

fcloseall ();

printf («n»);

for (int i=0; i

{tmp[0]. TextOut (string[i], left, down+10*i, right, up+10*i); delay (50);}

}

void moveDOWN (win *tmp)

{

tmp[0]. HideWindow (tmp[0]. dx, tmp[0]. height, tmp[0]. width, tmp[0]. top);

tmp[0].DrawWindow (tmp[0]. dx, tmp[0]. height, tmp[0]. width, tmp[0]. top+20, tmp[0]. selected, tmp[0]. text);

}

void moveUP (win *tmp)

{

tmp[0]. HideWindow (tmp[0]. dx, tmp[0]. height, tmp[0]. width, tmp[0]. top);

tmp[0].DrawWindow (tmp[0]. dx, tmp[0]. height, tmp[0]. width, tmp[0]. top-20, tmp[0]. selected, tmp[0]. text);

}

3. ОписаниС возмоТностСй языка Π‘, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ стСк ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Π½Π°Π΄ΠΎ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ понятия ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ ΡΡ‚Π΅ΠΊΠ°. Оба ΠΎΠ½ΠΈ связаны с ΠΏΠΎΠ½ΡΡ‚ΠΈΠ΅ΠΌ списка.

Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ список — это конСчная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… элСмСнтов (ΡƒΠ·Π»ΠΎΠ²), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, с ΠΏΠΎΠ²Ρ‚орСниями. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ называСтся Π΄Π»ΠΈΠ½ΠΎΠΉ списка, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π΄Π»ΠΈΠ½Π° Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ список F, состоящий ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² D1, D2,…, Dn, Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π² ΡƒΠ³Π»ΠΎΠ²Ρ‹Π΅ скобки F=.

ΠžΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ ΡΡ‚Π΅ΠΊΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ лишь частным способом прСдставлСния Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ списка.

Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° доступа ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ списка Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ разновидности Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… списков Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ стСком, ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ ΠΈ Π΄Π²ΡƒΡΡ‚ΠΎΡ€ΠΎΠ½Π½Π΅ΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ.

CΡ‚Π΅ΠΊ — это конСчная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… элСмСнтов — скалярных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, массивов, структур ΠΈΠ»ΠΈ объСдинСний, срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅. Π‘Ρ‚Π΅ΠΊ обозначаСтся Π² Π²ΠΈΠ΄Π΅: S= ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ…; Π΅Π΅ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ элСмСнтов Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ся ΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, измСняСтся. Если Π² ΡΡ‚Π΅ΠΊΠ΅ элСмСнтов Π½Π΅Ρ‚, Ρ‚ΠΎ ΠΎΠ½ Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ся пустым ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ся S=<>.

Допустимыми опСрациями Π½Π°Π΄ стСком ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

— ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° стСка Π½Π° ΠΏΡƒΡΡ‚ΠΎΡ‚Ρƒ S=<>,

— Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта Sn+1 Π² ΠΊΠΎΠ½Π΅Ρ† стСка — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ < S1,…, Sn> Π² < S1,…, Sn+1>;

— ΠΈΠ·ΡŠΡΡ‚ΠΈΠ΅ послСднСго элСмСнта ΠΈΠ· ΡΡ‚Π΅ΠΊΠ° — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ < S1,…, Sn-1, Sn> Π² < S1,…, Sn-1>;

— Π΄ΠΎΡΡ‚ΡƒΠΏ ΠΊ Π΅Π³ΠΎ послСднСму элСмСнту Sn, Ссли стСк Π½Π΅ ΠΏΡƒΡΡ‚.

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

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

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

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

Для Π±ΠΎΠ»Π΅Π΅ наглядного пояснСния рассмотрим ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

int gdriver = DETECT, gmode, errorcode;

initgraph (&gdriver, &gmode, «egavga.bgi»);

errorcode = graphresult ();

if (errorcode≠ grOk) /* an error occurred */

{printf («Graphics error:%sn», grapherrormsg (errorcode));

printf («Press any key to halt:»);

getch ();

exit (1); /* return with error code */

}

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ систСмы Π² Π³Ρ€Π°Ρ„ичСский Ρ€Π΅ΠΆΠΈΠΌ осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ void far initgraph (int far *graphdriver, int far *graphmode, char far* pathtodriver ()

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ графичСский Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€, Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ всСго ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ стандартного ΠΈΠΌΠ΅Π½ΠΈ DETECT, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ся. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ графичСский Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 640 Π½Π° 480. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ графичСскому Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ. Ѐункция graphresult () провСряСт ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ графичСского Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ошибки, Ссли ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ. Ѐункция graperrormsg () ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΌΡƒ Π΅ΠΉ ΠΊΠΎΠ΄Ρƒ ошибки Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ сообщСниС ΠΎΠ± ΡΡ‚ΠΎΠΉ ошибкС.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ класс, согласно возмоТностям языка Π‘ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ всСми присущими классу свойствами, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ инкапсуляция, наслСдованиС ΠΈ Π΄Ρ€. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ адрСсная Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠ° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ этого ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ такая строка: main_win[2]. TextOut (*(dialog+2), main_win[2]. dx, 40,240, main_win[2]. top+1);

Но Π² Ρ†Π΅Π»ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ особСнных возмоТностСй, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ происходит ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΠΊ Π³Ρ€Π°Ρ„ичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅.

4. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ расчСта, Π°Π½Π°Π»ΠΈΠ· ΠΈ Ρ‚СстированиС

ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠΊΡ€Π°Π½Π΅ появляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°. НаТимая клавиши Π²Π²Π΅Ρ€Ρ…, Π²Π½ΠΈΠ· ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°.

ПослС Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° ΠΈ Π΅Π³ΠΎ запуска ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΠΏΠΎΡ€ΡΠ΄ΠΊΡƒ, начиная с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ, Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ список, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π² Ρ‚Π°ΠΊΠΎΠΌ ΠΆΠ΅ порядкС ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ.

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

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° «Π˜Π½Ρ„ормация ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π΅» появляСтся ΠΎΠΊΠ½ΠΎ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° информация ΠΎ ΡΡ‚ΡƒΠ΄Π΅Π½Ρ‚Π΅.

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ.

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

Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано язык «C» являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ языком программирования. Он Ρ‚Ссно связан с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой «UNIX», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±Ρ‹Π» Ρ€Π°Π·Π²ΠΈΡ‚ Π½Π° ΡΡ‚ΠΎΠΉ систСмС ΠΈ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ «UNIX» ΠΈ Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС написано Π½Π° «C». Π‘Π°ΠΌ язык, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½ с ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΈΠ»ΠΈ машиной; ΠΈ Ρ…отя Π΅Π³ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ языком систСмного программирования, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡƒΠ΄ΠΎΠ±Π΅Π½ для написания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, ΠΎΠ½ Ρ Ρ€Π°Π²Π½Ρ‹ΠΌ успСхом использовался ΠΏΡ€ΠΈ написании Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкстов ΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

Π―Π·Ρ‹ΠΊ «C» — это язык ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ «Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня». Π’ Ρ‚Π°ΠΊΠΎΠΉ характСристикС Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΡΠΊΠΎΡ€Π±ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ; это просто ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ «C» ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Π²ΠΈΠ΄Π°, Ρ‡Ρ‚ΠΎ ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π­Π’Πœ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, с ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ, числами ΠΈ Π°Π΄Ρ€Π΅ΡΠ°ΠΌΠΈ. Π’ ΡΠ·Ρ‹ΠΊΠ΅ «C» ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π΄Π΅Π»ΠΎ нСпосрСдствСнно с ΡΠΎΡΡ‚Π°Π²Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ строки символов, мноТСства, списки ΠΈΠ»ΠΈ с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ, рассматриваСмыми ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅. Π―Π·Ρ‹ΠΊ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… возмоТностСй распрСдСлСния памяти, ΠΊΡ€ΠΎΠΌΠ΅ статичСского опрСдСлСния ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° стСков, обСспСчиваСмого Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. НаконСц, сам ΠΏΠΎ ΡΠ΅Π±Π΅ «C» Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… возмоТностСй Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°: здСсь Π½Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² READ ΠΈΠ»ΠΈ WRITE ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… встроСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ. ВсС эти ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ высокого уровня Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ явно Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ функциями. Аналогично, язык «C» ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ простыС, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ конструкции ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² управлСния: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Ρ†ΠΈΠΊΠ»Ρ‹, Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ Π½Π΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ сопрограммы. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· ΡΡ‚ΠΈΡ… срСдств выглядит ΠΊΠ°ΠΊ ΡƒΠ΄Ρ€ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Но ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ языка Π² ΡΠΊΡ€ΠΎΠΌΠ½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… Π΄Π°Π΅Ρ‚ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ прСимущСства. Π’Π°ΠΊ ΠΊΠ°ΠΊ «C» ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°Π», ΠΎΠ½ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ мСста для своСго описания ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ быстро Π²Ρ‹ΡƒΡ‡Π΅Π½. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ с «C» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ простым ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ языка. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ управлСния, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Π² «C», нСпосрСдствСнно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π­Π’Πœ, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, нСобходимая Π²ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΏΡ€ΠΎΠ³ΠΎΠ½Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, оказываСтся ΠΎΡ‡Π΅Π½ΡŒ малСнькой.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° «C» ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ достаточно эффСктивными, ΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ побуТдСния ΠΏΠΈΡΠ°Ρ‚ΡŒ вмСсто этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра. НаиболСС ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ этого являСтся сама опСрационная систСма «UNIX», которая ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ написана Π½Π° «C». Из 13 000 строк ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ систСмы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΊΠΎΠ»ΠΎ 800 строк самого Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня написаны Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π΅.

Π₯отя «C» соотвСтствуСт возмоТностям ΠΌΠ½ΠΎΠ³ΠΈΡ… Π­Π’Πœ, ΠΎΠ½ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΈ Π² ΡΠΈΠ»Ρƒ этого Π±Π΅Π· особых усилий позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ «ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΡ‹Π΅» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚. Π΅. ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдствах.

Π―Π·Ρ‹ΠΊ «C» Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ основныС конструкции ΠΏΠΎΡ‚ΠΎΠΊΠ° управлСния, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ для Ρ…ΠΎΡ€ΠΎΡˆΠΎ структурированных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ: Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², принятиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ (IF), Ρ†ΠΈΠΊΠ»Ρ‹ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π² Π½Π°Ρ‡Π°Π»Π΅ (WHILE, FOR) ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ (DO) ΠΈ Π²Ρ‹Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² (SWITCH).

Π’ ΡΠ·Ρ‹ΠΊΠ΅ «C» ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ адрСсной Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ. АргумСнты ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ функциям посрСдством копирования значСния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΈ Π²Ρ‹Π·Π²Π°Π½Π½Π°Ρ функция Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ фактичСский Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Если ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ «Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎ ΡΡΡ‹Π»ΠΊΠ΅», ΠΌΠΎΠΆΠ½ΠΎ нСявно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΈ Ρ„ункция смоТСт ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ этот ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚. ИмСна массивов ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π°Ρ‡Π°Π»Π° массивов, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ‚ΠΈΠΏΠ° массивов эффСктивно Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΡΡΡ‹Π»ΠΊΠ΅. К Π»ΡŽΠ±ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ рСкурсивно, ΠΈ Π΅Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ «Π°Π²Ρ‚оматичСскиС», Ρ‚. Π΅. Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ. ОписаниС ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² ΡΠΎΠΎΡ‚вСтствии с ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Π±Π»ΠΎΡ‡Π½ΠΎΠΉ структурой.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² «C» — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ, внСшними, Π½ΠΎ ΠΈΠ·Π²Π΅ΡΡ‚Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ исходного Ρ„Π°ΠΉΠ»Π°, ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ автоматичСскими ΠΈΠ»ΠΈ статичСскими.

Π―Π·Ρ‹ΠΊ «C» Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся языком со ΡΡ‚Ρ€ΠΎΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π² ΡΠΌΡ‹ΡΠ»Π΅ Паскаля. Он ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ снисходитСлСн ΠΊ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, хотя ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… с Π±ΡƒΠΉΠ½ΠΎΠΉ Π½Π΅ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ. НаконСц, язык «C», ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ языку, ΠΈΠΌΠ΅Π΅Ρ‚ свои нСдостатки. НСкоторыС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ΅ ΡΡ‚Π°Ρ€ΡˆΠΈΠ½ΡΡ‚Π²ΠΎ; Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ синтаксиса ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅; сущСствуСт нСсколько вСрсий языка, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ нСбольшими дСталями. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, язык «C» Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» сСбя ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ эффСктивный ΠΈ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ язык для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ разнообразия ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ программирования. Π˜Ρ‚Π°ΠΊ, подводя Π²Ρ‹Π²ΠΎΠ΄ всСму сказанному, ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ язык Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня «C» ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ прСимущСств ΠΈ ΡƒΠ΄ΠΎΠ±ΡΡ‚Π², ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π½Π΅ ΠΈΠ΄Π΅Ρ‚ Π½ΠΈ Π² ΠΊΠ°ΠΊΠΎΠ΅ сравнСниС с ΡΠ·Ρ‹ΠΊΠ°ΠΌΠΈ высокого уровня.

Бписок использованной Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1. Π―Π·Ρ‹ΠΊ Π‘ Π‘. Π’. ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½, Π”. М. Π ΠΈΡ‡ΠΈ.,

2. Π’. Π’. ПодбСльский. Π―Π·Ρ‹ΠΊ C++: Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС. — ΠœΠΎΡΠΊΠ²Π°: Ѐинансы ΠΈ ΡΡ‚атистика, 2001.

3. К. ДТамса. Учимся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C++: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». — ΠœΠΎΡΠΊΠ²Π°: ΠœΠΈΡ€, 1997.

4. Π‘Ρ‚Π΅Π½Π»ΠΈ Π‘. Π›ΠΈΠΏΠΏΠΌΠ°Π½. C++ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: ΠŸΠ΅Ρ€. Ρ Π°Π½Π³Π». 2 Ρ‚Ρ‚. — ΠœΠΎΡΠΊΠ²Π°: Π£Π½ΠΈΡ‚Π΅Ρ…; Рязань: Гэлион, 1992, 304−345 с.

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