Π€ΡΠ½ΠΊΡΠΈΡ atof( ) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π»Ρ ΡΠΈΡΠ΅Π» Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ. ΠΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΠΏ double, ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½Π° ΠΊΠ°ΠΊ double Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅ΠΉ Π΅Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΡΠΎΡΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ atof( ) Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΈΡΠ»Π° Π²ΠΈΠ΄Π° 10.2, 46 ΠΈ - 124.26. ΠΠΎΠ»Π΅Π΅ ΠΌΠΎΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ, Ρ. Π΅. ΡΠΈΡΠ»Π°, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ 1.25Π - 13.
ΠΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. Π€ΡΠ½ΠΊΡΠΈΡ itoa( ) Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ΅Π»ΠΎΠ΅ Π² ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ, Π° ΡΡΠ½ΠΊΡΠΈΡ ftoa( ) ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π² ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ.
ΠΠ«Π₯ΠΠ: exit( )
Π€ΡΠ½ΠΊΡΠΈΡ exit( ) Π΄Π°ΡΡ Π²Π°ΠΌ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± "ΠΏΠΎΠΊΠΈΠ½ΡΡΡ" ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½Π° ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠ»ΠΈ ΠΊ exit( ) ΠΎΠ±ΡΠ°ΡΠΈΠ»ΠΈΡΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠ·Π²Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, ΡΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Π²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ atoi( ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ exit( ) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° else Π΄Π»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΎΡΡΠ°ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΡΠΈΡΡΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ exit( ) Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½Π° Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ Π»ΡΠ±ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΎΡΠΊΡΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ fopen( ). ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π½Π°Ρ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌ.
ΠΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ exit( ) ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° ΠΎΡΠΈΠ±ΠΊΠΈ. Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π΅ΡΠ»ΠΈ ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΠ»Π° ΡΠ°Π±ΠΎΡΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ 0 ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π»ΡΠ±ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ.
Π ΠΠ‘ΠΠ ΠΠΠΠΠΠΠΠ ΠΠΠΠ―Π’Π: malloc( ) Π ΡΠ°11ΠΎΡ( )
ΠΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ΅Π΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΡΠ²ΠΈΡΡ
char place[ ] = "ΠΠ°Π»ΠΈΠ² Π‘Π²ΠΈΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΊΠΈ";
ΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΡΡΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π°Ρ Π΄Π»Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠ»ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π±ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Ρ ΠΈ Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ:
int plates[100];
ΠΡΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ 100 ΡΡΠ΅Π΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΡΠ΅Π»ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π―Π·ΡΠΊ Π‘ΠΈ Π½Π΅ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° ΡΡΠΎΠΌ. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ Π·Π°ΡΠ°Π½Π΅Π΅, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΡ Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²Π²ΠΎΠ΄ΠΈΡΡ. ΠΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ Π²Π°ΠΌ (ΠΊΠ°ΠΊ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅) ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, Π° Π·Π°ΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ, ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π΅ΡΠ΅. ΠΠ° ΡΠΈΡ. 15.5 Π΄Π°Π½ ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ malloc( ), ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ ΡΠ°ΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ.
/* Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ */
#include <sldio.h>
#define STOP " " /* ΡΠΈΠ³Π½Π°Π» ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π²Π²ΠΎΠ΄Π° */
#define BLOCK 100 /* Π±Π°ΠΉΡΡ ΠΏΠ°ΠΌΡΡΠΈ */
#define LIM 40 /* ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° Π²Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΈ */
#define MAX 50 /* ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΡΠΎΠΊ */
#define DRAMA 20000 /* Π±ΠΎΠ»ΡΡΠ°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ */
main( )
{
char store[BLOCK]; /* ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π±Π»ΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ */
char symph[LIM]; /* ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΡΠΎΠΊ */
char *end; /* ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΠ½Π΅Ρ ΠΏΠ°ΠΌΡΡΠΈ */
char *starts[MAX]; /* ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°ΡΠ°Π»Π° ΡΡΡΠΎΠΊ */
int index = 0; /* ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ ΡΡΡΠΎΠΊ */
int count; /* ΡΡΠ΅ΡΡΠΈΠΊ */
char *malloc( ); /* ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΏΠ°ΠΌΡΡΠΈ */
starts[0] = store;
end = starts[0] + BLOCK - 1;
puts(" ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΊΠ΅ΡΡΡΠΎΠΌ.");
puts(" ΠΠ²ΠΎΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ: Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΡ [Π²Π²ΠΎΠ΄] Π² Π½Π°ΡΠ°Π»Π΅");
puts(" ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ°. Π₯ΠΎΡΠΎΡΠΎ, Ρ Π³ΠΎΡΠΎΠ²Π°." );
while(strcmp(fgets(symph, LIM, stdin), STOP) != 0 && index < MAX)
{ if(strlen(symph) > end - starts[index])
{ /* Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ Π²Π²ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π°Π½Π½ΡΡ */
puts(" ΠΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π― ΠΏΠΎΠΏΡΠΎΠ±ΡΡ Π½Π°ΠΉΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ.");
starts[index] = malloc(BLOCK);
end = starts[index] + BLOCK - 1;
for(count = 0; count < DRAMA; count++);
puts(" ΠΠ°ΡΠ»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ!" ); }
strcpy (starts [index], symph);
starts[index + 1] = starts[index] + strlen(symph) + 1;
if(++index < MAX)
printf("ΠΡo %d. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅.\n", index); }
puts(" Π₯ΠΎΡΠΎΡΠΎ, Π²ΠΎΡ ΡΡΠΎ Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»Π°:");
for(count = 0; count < index; count ++)
puts(starts[count]);
}
Π ΠΠ‘. 15.5. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠ°Ρ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΡ ΠΎΠ±ΡΠ°Π·Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΠΌΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΊΠ΅ΡΡΡΠΎΠ² ΠΎΡΠΊΠ΅ΡΡΡΠΎΠ².
ΠΠ²ΠΎΠ΄ΠΈΡΠ΅ ΠΈΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ; Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΡ [Π²Π²ΠΎΠ΄] Π² Π½Π°ΡΠ°Π»Π΅
ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ°. Π₯ΠΎΡΠΎΡΠΎ, Ρ Π³ΠΎΡΠΎΠ²Π°.
Π‘Π°Π½-ΡΡΠ°Π½ΡΠΈΡΠΊΠΈΠΉ ΡΠΈΠΌΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ.
ΠΡΠΎ 1. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅.
Π§ΠΈΠΊΠ°Π³ΡΠΊΠΈΠΉ ΡΠΈΠΌΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ
ΠΡΠΎ 2. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅.
ΠΠ΅ΡΠ»ΠΈΠ½ΡΠΊΠΈΠΉ ΡΠΈΠ»Π°ΡΠΌΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ
ΠΡΠΎ 3. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅.
ΠΠΎΡΠΊΠΎΠ²ΡΠΊΠΈΠΉ ΠΊΠ°ΠΌΠ΅ΡΠ½ΡΠΉ
ΠΡΠΎ 4. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅. ΠΠΎΠ½Π΄ΠΎΠ½ΡΠΊΠΈΠΉ ΡΠΈΠΌΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ
ΠΡΠΎ 5. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅. ΠΠ΅Π½ΡΠΊΠΈΠΉ ΡΠΈΠ»Π°ΡΠΌΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ
ΠΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π― ΠΏΠΎΠΏΡΠΎΠ±ΡΡ Π½Π°ΠΉΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΠ°ΡΠ»Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ!
ΠΡΠΎ 6. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅.
ΠΠΈΡΡΡΠ±ΡΡΠ³ΡΠΊΠΈΠΉ ΡΠΈΠΌΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ
ΠΡΠΎ 7. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅.
Π₯ΠΎΡΠΎΡΠΎ, Π²ΠΎΡ ΡΡΠΎ Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»Π°:
Π‘Π°Π½-ΡΡΠ°Π½ΡΠΈΠ·ΠΊΠΈΠΉ ΡΠΈΠΌΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ
Π§ΠΈΠΊΠ°Π³ΡΠΊΠΈΠΉ ΡΠΈΠΌΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ
ΠΠ΅ΡΠ»ΠΈΠ½ΡΠΊΠΈΠΉ ΡΠΈΠ»Π°ΡΠΌΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ
ΠΠΎΡΠΊΠΎΠ²ΡΠΊΠΈΠΉ ΠΊΠ°ΠΌΠ΅ΡΠ½ΡΠΉ
ΠΠΎΠ½Π΄ΠΎΠ½ΡΠΊΠΈΠΉ ΡΠΈΠΌΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ
ΠΠ΅Π½ΡΠΊΠΈΠΉ ΡΠΈΠ»Π°ΡΠΌΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ
ΠΠΈΡΡΡΠ±ΡΡΠ³ΡΠΊΠΈΠΉ ΡΠΈΠΌΡΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΈΠΉ
Π‘Π½Π°ΡΠ°Π»Π° Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ malloc( ). ΠΠ½Π° Π±Π΅ΡΠ΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅Π»ΠΎΠ³ΠΎ Π±Π΅Π· Π·Π½Π°ΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ Π±Π°ΠΉΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ. Π’Π°ΠΊ, malloc(BLOCK) ΡΡΠ΅Π±ΡΠ΅Ρ 100 Π±Π°ΠΉΡ. Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠΏ char Π² Π½Π°ΡΠ°Π»ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
char *malloc( );
ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅Π΄ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΡΡΠΎ malloc( ) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠΏ char. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΏΡΠΈΡΠ²ΠΎΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° starts[index] ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°
starts[index] = malloc(BLOCK);
Π₯ΠΎΡΠΎΡΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ Π²ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΠ΄ΡΡΠ΄ Π² Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅ store. ΠΡ Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ starts[0] Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, starts[l] - Π²ΡΠΎΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ Ρ. Π΄. ΠΠ° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²Π²ΠΎΠ΄ΠΈΡ ΡΡΡΠΎΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ² symph. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ fgets( ) Π²ΠΌΠ΅ΡΡΠΎ gets( ), ΡΡΠΎΠ±Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ Π²Ρ ΠΎΠ΄Π½ΡΡ ΡΡΡΠΎΠΊΡ Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ²Π° symph.
Π ΠΠ‘. 15.6. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ symph, Π·Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ² store.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ symph Π² store, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΠΈ Π΄Π»Ρ Π½Π΅Π΅ ΠΎΡΡΠ°Π²ΡΠ΅Π³ΠΎΡΡ ΠΌΠ΅ΡΡΠ°. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ end ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΊΠΎΠ½Π΅Ρ ΠΏΠ°ΠΌΡΡΠΈ, Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ starts[index] ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° Π½Π°ΡΠ°Π»ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ Ρ Π΄Π»ΠΈΠ½ΠΎΠΉ symph ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΠΈ ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠ»ΠΈ ΠΌΠ΅ΡΡΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ malloc( ), ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ. ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ starts[index] Π½Π° Π½Π°ΡΠ°Π»ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ, a end - Π½Π° ΠΊΠΎΠ½Π΅Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°. ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Ρ Π½Π°Ρ Π½Π΅Ρ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΎΠΉ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ½Π° Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ store. Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΡΡΡΠ»Π°ΡΡΠΈΡ ΡΡ Π½Π° Π½ΠΎΠ²ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ Π½ΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ ΡΡΡΠ»Π°Π΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ starts. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² store, Π΄ΡΡΠ³ΠΈΠ΅ - Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π½ΠΎΠ²ΡΡ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎ ΠΏΠΎΠΊΠ° Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°ΠΌ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ Π½Π° ΠΏΠ΅ΡΠ°ΡΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ mΠ°llΠΎΡ( ). ΠΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ ΡΠΈΠΏΠ° int, Π° Π½Π΅ char. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈ Π·Π΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ mΠ°llΠΎΡ( ). ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ:
char *malloc( ); /* ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° char */
int *newmem;
newmem = (int *) malloc(l00); /* ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° */
Π‘Π½ΠΎΠ²Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 100 Π±Π°ΠΉΡ. ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° ΡΠΈΠΏ char, Π² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΈΠΏ int. ΠΡΠ»ΠΈ, ΠΊΠ°ΠΊ Π² Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, int Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° Π±Π°ΠΉΡΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ newmem + 1 Π±ΡΠ΄Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π΄Π²Π° Π±Π°ΠΉΡΠ°, Ρ. Π΅. ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ³Π°ΡΡ Π΅Π³ΠΎ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ΅Π»ΠΎΠΌΡ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ 100 Π±Π°ΠΉΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ 50 ΡΠ΅Π»ΡΡ ΡΠΈΡΠ΅Π».