#include βΉctype.hβΊ
int getch(void);
void ungetch(int);
/* getop: ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ */
int getop(char s[])
{
int i, Ρ;
while ((s[0] = Ρ = getch()) == ' ' || Ρ == '\t')
;
s[1] = '\0;
if (!isdigit(c) && Ρ!= '.')
return c; /* Π½Π΅ ΡΠΈΡΠ»ΠΎ */
i = 0;
if (isdigit(c)) /* Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅ΠΌ ΡΠ΅Π»ΡΡ ΡΠ°ΡΡΡ */
while (isdigit(s[++i] - Ρ = getch()))
;
if (Ρ == '.') /* Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅ΠΌ Π΄ΡΠΎΠ±Π½ΡΡ ΡΠ°ΡΡΡ */
while (isdigit(s[++i] = Ρ = getch()))
;
s[i] = '\0';
if (c != EOF)
ungetch(c);
return NUMBER;
}
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ getch ΠΈ ungetch? ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ "ΡΠΎΠΎΠ±ΡΠ°Π·ΠΈΡΡ", ΠΏΡΠΎΡΠ»Π° Π»ΠΈ ΠΎΠ½Π° Π²ΡΠ΅, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡΠΎΡΡΠ΅Ρ Π»ΠΈΡΠ½Π΅Π³ΠΎ. Π’Π°ΠΊ, Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΠ΅ ΡΠΈΡΠ»Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΡΡΡΠ΅ΡΠΈΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ», ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ ΡΠΈΡΡΡ. ΠΠΎ ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΎΡΠ»Π° Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ» Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ, ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π½Π΅Π»ΡΠ·Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠΈΡΠ»ΠΎ.
ΠΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ "ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ-Π½Π°Π·Π°Π΄", Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π²Π΅ΡΠ½ΡΡΡ Π½Π΅Π½ΡΠΆΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ». Π’ΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΠΈΡΠ°Π΅Ρ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ» Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»Π° Π±Ρ Π΅Π³ΠΎ Π²Π²ΠΎΠ΄Ρ, ΠΈ ΠΎΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³Π»Π° Π±Ρ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΡΠ°ΠΊ, Π±ΡΠ΄ΡΠΎ ΡΡΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ» Π²ΠΎΠ²ΡΠ΅ ΠΈ Π½Π΅ ΡΠΈΡΠ°Π»ΡΡ. Π ΡΡΠ°ΡΡΡΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠΎΡΡΠ»ΠΊΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ getch ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΈΠ· Π²Π²ΠΎΠ΄Π°, a ungetch ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ» Π½Π°Π·Π°Π΄ Π²ΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ getch ΠΌΡ Π²Π½ΠΎΠ²Ρ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ.
ΠΠ΅ΡΡΡΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅. Π€ΡΠ½ΠΊΡΠΈΡ ungetch Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΏΠΎΡΡΠ»Π°Π΅ΠΌΡΠΉ Π½Π°Π·Π°Π΄ ΡΠΈΠΌΠ²ΠΎΠ» Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΡΠ΅ΡΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΌ ΡΠΎΠ±ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π΄Π»Ρ ΠΎΠ±Π΅ΠΈΡ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ; getch ΡΠΈΡΠ°Π΅Ρ ΠΈΠ· Π±ΡΡΠ΅ΡΠ°, Π΅ΡΠ»ΠΈ ΡΠ°ΠΌ ΡΡΠΎ-ΡΠΎ Π΅ΡΡΡ, ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ getchar, Π΅ΡΠ»ΠΈ Π±ΡΡΠ΅Ρ ΠΏΡΡΡΠΎΠΉ. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² Π±ΡΡΠ΅ΡΠ΅.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ getch ΠΈ ungetch ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π±ΡΡΠ΅Ρ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π±ΡΡΠ΅Ρ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌ, ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°ΡΡ getch, ungetch ΠΈ ΠΎΠ±ΡΠΈΠ΅ Π΄Π»Ρ Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅:
#define BUFSIZE 100
char buf[BUFSIZE]; /* Π±ΡΡΠ΅Ρ Π΄Π»Ρ ungetch */
int bufp = 0; /* ΡΠ»Π΅Π΄. ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π² Π±ΡΡΠ΅ΡΠ΅ */
int getch(void) /* Π²Π·ΡΡΡ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΡΠΉ) ΡΠΈΠΌΠ²ΠΎΠ» */
{
return (bufp βΊ 0) ? buf[--bufp]: getchar();
}
void ungetch(int c) /* Π²Π΅ΡΠ½ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Π½Π° Π²Π²ΠΎΠ΄ */
{
if (bufp βΊ= BUFSIZE)
printf("ungetch: ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²\n");
else
buf[bufp++] = Ρ;
}
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ ungetc, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΡΡ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° (ΡΠΌ. Π³Π»Π°Π²Ρ 7). ΠΡ ΠΆΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, Π΄Π»Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠ°ΡΡΠΈΠ².
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4.3. ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π½Π°ΠΌΠΈ ΡΡ Π΅ΠΌΡ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ- ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° "ΠΏΠΎΠ½ΠΈΠΌΠ°Π»Π°" ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ°ΡΠΊΠ° ΠΎΡ Π΄Π΅Π»Π΅Π½ΠΈΡ (%) ΠΈ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π°.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4.4. ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ Π²Π΅ΡΡ Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΡΠ΅ΠΊΠ° (Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Π² ΡΡΠ΅ΠΊΠ΅), Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΡΡΠ΅ΠΊΠ΅, ΠΌΠ΅Π½ΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π΄Π²Π° Π²Π΅ΡΡ Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΡΠ΅ΠΊΠ°. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΡΡΠ΅ΠΊΠ°.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4.5. ΠΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ sin, Π΅Ρ Ρ ΠΈ pow. Π‘ΠΌ. Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ βΉmath.hβΊ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ B (ΠΏΠ°ΡΠ°Π³ΡΠ°Ρ 4).
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4.6. ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ (Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎ 26 ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠΌΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Π±ΡΠΊΠ²ΠΎΠΉ Π»Π°ΡΠΈΠ½ΡΠΊΠΎΠ³ΠΎ Π°Π»ΡΠ°Π²ΠΈΡΠ°). ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΈΠ· Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4.7. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ungets(s), Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ ΡΡΡΠΎΠΊΡ s Π²ΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΠΎΠ»ΠΆΠ½Π° Π»ΠΈ ungets "Π·Π½Π°ΡΡ" ΡΡΠΎ-Π»ΠΈΠ±ΠΎ ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ buf ΠΈ bufp, ΠΈΠ»ΠΈ Π΅ΠΉ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ungetch?
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4.8. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΡΠΈΡΠ»ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π½Π°Π·Π°Π΄, Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 1. ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠΉΡΠ΅ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ getch ΠΈ ungetch.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4.9. Π Π½Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΡΡ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° EOF. ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅, ΡΡΠΎ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ EOF, ΠΈ ΡΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4.10. Π ΠΎΡΠ½ΠΎΠ²Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ getline, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΡΠ°Π΅Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ ΡΡΡΠΎΠΊΡ; ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΡΠΏΠ°Π΄Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² getch ΠΈ ungetch. ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΡΡ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄.
4.4 ΠΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΡΠΎΠΈΡ Π‘ΠΈ-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ . Π Π°Π½Π΅Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
β’ ΠΠ°ΠΊ ΠΏΠΈΡΠ°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π±ΡΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ?
β’ Π ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π²ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ ΡΠ²ΡΠ·Π°Π½Ρ Π½ΡΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ?
β’ ΠΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅Π»ΠΈ Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΊΠΎΠΏΠΈΡ?
β’ ΠΠ°ΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅?
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ-ΠΊΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»Π°, ΡΡΠΎΠ±Ρ Π΅Π΅ ΡΡΠΎΠΈΠ»ΠΎ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π½Π° ΡΠ°ΠΉΠ»Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ .
ΠΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠΎ ΠΈΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. ΠΠ»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ. ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°Π·Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈΠΌΠ΅ΡΡΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΈΠΌΠ΅Π½Π°, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. Π’ΠΎ ΠΆΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΠΈ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ.
ΠΠ±Π»Π°ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π³Π΄Π΅ ΠΎΠ½Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π°, Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π°, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ main, sp, val, push ΠΈ pop ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Ρ. Π΅.
main() {β¦}
int sp = 0;
double val[MAXVAL];
void push(double f) {β¦}
double pop(void) {β¦}
ΡΠΎ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ sp ΠΈ val ΠΌΠΎΠΆΠ½ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡΡΡ ΠΈΠ· push ΠΈ pop ΠΏΡΠΎΡΡΠΎ ΠΏΠΎ ΠΈΡ ΠΈΠΌΠ΅Π½Π°ΠΌ; Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ. ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π² main ΡΡΠΈ ΠΈΠΌΠ΅Π½Π° Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠ°ΠΌΠΈ push ΠΈ pop.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π½Π° Π²Π½Π΅ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡΠ»Π°ΡΡΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² Π΄ΡΡΠ³ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΡΠΎ Π΅Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΎ ΡΠ»ΠΎΠ²ΠΎΠΌ extern.
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡ Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ. ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ (ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π΅Π΅ ΡΠΈΠΏ), Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π»Ρ Π½Π΅Π΅ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ
int sp;
double val[MAXVAL];
ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π²Π½Π΅ Π²ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΎ ΠΎΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ sp ΠΈ val, Ρ. e. ΠΎΡΠ²ΠΎΠ΄ΡΡ Π΄Π»Ρ Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡ, ΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ»ΡΠΆΠ°Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. Π Π²ΠΎΡ ΡΡΡΠΎΠΊΠΈ
extern int sp;
extern double val[];
ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π΄Π»Ρ ΠΎΡΡΠ°Π²ΡΠ΅ΠΉΡΡ ΡΠ°ΡΡΠΈ ΡΠ°ΠΉΠ»Π°, ΡΡΠΎ sp - ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΈΠΏΠ° int, Π° val - ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΠΏΠ° double (ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π³Π΄Π΅-ΡΠΎ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅); ΠΏΡΠΈ ΡΡΠΎΠΌ Π½ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, Π½ΠΈ ΠΌΠ°ΡΡΠΈΠ² Π½Π΅ ΡΠΎΠ·Π΄Π°ΡΡΡΡ, ΠΈ ΠΏΠ°ΠΌΡΡΡ ΠΈΠΌ Π½Π΅ ΠΎΡΠ²ΠΎΠ΄ΠΈΡΡΡ.
ΠΠ° Π²ΡΡ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠ΄Π½ΠΎ-Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅; Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π² ΡΠ΅Π±Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ extern. (ΠΠΏΡΠΎΡΠ΅ΠΌ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ extern ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΈ Π² ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.) Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΡ, ΡΡΠΎ Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡΡ extern Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ. Π₯ΠΎΡΡ Π²ΡΡΠ΄ Π»ΠΈ ΡΡΠΎΠΈΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π½Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½ΠΎ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ push ΠΈ pop Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, Π° val ΠΈ sp - Π² Π΄ΡΡΠ³ΠΎΠΌ, Π³Π΄Π΅ ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ. ΠΡΠΈ ΡΡΠΎΠΌ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·Π΅ΠΉ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ:
Π ΡΠ°ΠΉΠ»Π΅ 1:
extern int sp;