Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования Π‘ΠΈ. ИзданиС 3-Π΅, исправлСнноС». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 21

Автор Π‘Ρ€Π°ΠΉΠ°Π½ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½

Π›ΡŽΠ±Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° - это просто ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Бвязи ΠΌΠ΅ΠΆΠ΄Ρƒ функциями ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния ΠΈ внСшниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’ исходном Ρ„Π°ΠΉΠ»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π² любом порядкС; ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° любоС число Ρ„Π°ΠΉΠ»ΠΎΠ², Π½ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π΅ оказалась Ρ€Π°Π·Ρ€Π΅Π·Π°Π½Π½ΠΎΠΉ.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ return Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΎΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ. Π—Π° словом return ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ любоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

return Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅;

Если потрСбуСтся, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Часто Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² скобки, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹.

Π’Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ функция Π²ΠΏΡ€Π°Π²Π΅ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² return ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ Ρ‚ΠΎΠ³Π΄Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ возвращаСтся Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±Π΅Π· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ значСния Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° вычислСния достигли "ΠΊΠΎΠ½Ρ†Π°" (Ρ‚. Π΅. послСднСй Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобки Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ). НС Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π° (Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΡ€ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ) ситуация, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ΄Π½ΠΈ return ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΈ сСбС выраТСния, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ - Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚. Π’ΠΎ всСх случаях, ΠΊΠΎΠ³Π΄Π° функция "Π·Π°Π±Ρ‹Π»Π°" ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² return, ΠΎΠ½Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ выдаст "мусор".

Ѐункция main Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ поиска ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° количСство Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… строк. Π­Ρ‚ΠΎ число доступно Ρ‚ΠΎΠΉ срСдС, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±Ρ‹Π»Π° Π²Ρ‹Π·Π²Π°Π½Π°.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ компиляции ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π‘ΠΈ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, располоТСнных Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… исходных Ρ„Π°ΠΉΠ»Π°Ρ…, Π² Ρ€Π°Π·Π½Ρ‹Ρ… систСмах ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Π’ систСмС UNIX, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, эти Ρ€Π°Π±ΠΎΡ‚Ρ‹ выполняСт упомянутая Π² Π³Π»Π°Π²Π΅ 1 ΠΊΠΎΠΌΠ°Π½Π΄Π° cc. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ нашСго послСднСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° располоТСны Π² Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…: main.с, getline.c ΠΈ strindex.c. Π’ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°

cc main.с getline.c strindex.c

скомпилируСт ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, помСстив Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ компиляции Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ main.o, getline.o ΠΈ strindex.o, ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ ΠΈΡ… Π² исполняСмый Ρ„Π°ΠΉΠ» a.out. Если ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»Π°ΡΡŒ ошибка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Ρ„Π°ΠΉΠ»Π΅ main.с, Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ снова ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

cc main.с getline.o strindex.o

Команда cc ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ стандартныС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² ".с" ΠΈ ".ΠΎ", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒ исходныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ….

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4.1. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ strindex(s, t), которая Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ самого ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ вхоТдСния t Π² s ΠΈΠ»ΠΈ -1, Ссли вхоТдСния Π½Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ.

4.2 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ Π½Π΅Ρ†Π΅Π»Ρ‹Π΅ значСния

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π»ΠΈΠ±ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (void), Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»ΠΈ значСния Ρ‚ΠΈΠΏΠ° int. А ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏ? МногиС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, sqrt, sin ΠΈ cos, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ значСния Ρ‚ΠΈΠΏΠ° double; Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ значСния Π΅Ρ‰Π΅ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Ρ‚ΠΈΠΏΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ функция ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π΅Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, напишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ atof(s), которая ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ строку s Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности. Ѐункция atof прСдставляСт собой Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ atoi, Π΄Π²Π΅ вСрсии ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»ΠΈ рассмотрСны Π² Π³Π»Π°Π²Π°Ρ… 2 ΠΈ 3. Она ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ со Π·Π½Π°ΠΊΠΎΠΌ (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ), с дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ с Ρ†Π΅Π»ΠΎΠΉ ΠΈ Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ частями, ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Наша вСрсия Π½Π΅ являСтся высококачСствСнной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ прСобразования Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… чисСл; такая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π° Π±Ρ‹ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ большС памяти. Ѐункция atof Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ: Π΅Π΅ описаниС содСрТится Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ β€Ήstdlib.hβ€Ί.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Π΄ΠΎΠ»ΠΆΠ½Π° сама atof, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ этот Ρ‚ΠΈΠΏ Π½Π΅ Π΅ΡΡ‚ΡŒ int. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚ΠΈΠΏΠ° задаСтся ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

#include β€Ήctype.hβ€Ί

/*atof: ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строки s Π² double */

double atof (char s[])

{

 double val, power;

 int i, sign;


 for (i = 0; isspace(s[i]); i++)

  ; /* ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π»Π΅Π²Ρ‹Ρ… символов-Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΉ */

 sign = (s[i] == '-') ? -1 : 1;

 if (s[i] == '+' || s[i] == '-')

  i++;

 for (val = 0.0; isdigit(s[i]); i++)

  val = 10.0 * val + (s[i] - '0');

 if (s[i] == '.')

  i++;

 for (power = 1.0; isdigit(s[i]); i++) {

  val = 10.0 * val + (s.[i] - '0');

  power *= 10.0;

 }

 return sign * val / power;

}

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π½Π°Π»Π°, Ρ‡Ρ‚ΠΎ atof Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Один ΠΈΠ· способов ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ это - явно ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ atof Π² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ПодобноС описаниС дСмонстрируСтся Π½ΠΈΠΆΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΎΠ³ΠΎ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€Π° (достаточного для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ баланса Ρ‡Π΅ΠΊΠΎΠ²ΠΎΠΉ ΠΊΠ½ΠΈΠΆΠΊΠΈ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π²ΠΎΠ΄ΠΈΠΌΡƒΡŽ строку воспринимаСт ΠΊΠ°ΠΊ число, прибавляСт Π΅Π³ΠΎ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ суммС ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π΅Π΅ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

#include β€Ήstdio.hβ€Ί

#define MAXLINE 100

/* ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€ */

main()

{

 double sum, atof (char[]);

 char line[MAXLINE];

 int getline (char line[], int max);


 sum = 0;

 while (getline(line, MAXLINE) β€Ί 0)

  printf ("\t%g\n", sum += atof(line));

 return 0;

}

Π’ объявлСнии

double sum, atof (char[]);

говорится, Ρ‡Ρ‚ΠΎ sum - пСрСмСнная Ρ‚ΠΈΠΏΠ° double, a atof - функция, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚ΠΈΠΏΠ° char[] ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΈΠΏΠ° double.

ОбъявлСниС ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ atof Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ. Если Π² ΠΎΠ΄Π½ΠΎΠΌ исходном Ρ„Π°ΠΉΠ»Π΅ сама функция atof ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΠΉ Π² main ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, Ρ‚ΠΎ это нСсоотвСтствиС Π±ΡƒΠ΄Π΅Ρ‚ зафиксировано компилятором ΠΊΠ°ΠΊ ошибка. Но Ссли функция atof Π±Ρ‹Π»Π° скомпилирована ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ (Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ вСроятно), Ρ‚ΠΎ нСсоотвСтствиС Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ, ΠΈ atof Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° double, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ функция main воспримСт ΠΊΠ°ΠΊ int, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ бСссмыслСнному Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ.

Π­Ρ‚ΠΎ послСднСС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, вСроятно, Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Ρƒ вас ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π½Π΅Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ ΠΎ нСобходимости соотвСтствия объявлСний ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° нСсоотвСтствия, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ слСдствиСм Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ отсутствуСт ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ функция нСявно ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ своСм появлСнии Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²

sum += atof(line);

Если Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΠ»ΠΎΡΡŒ имя, Π½ΠΈΠ³Π΄Π΅ Ρ€Π°Π½Π΅Π΅ Π½Π΅ объявлСнноС, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π°Ρ скобка, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ имя ΠΏΠΎ контСксту считаСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π΅ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚ΠΈΠΏΠ° int; ΠΏΡ€ΠΈ этом ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ прСдполагаСтся. Если Π² объявлСнии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹, ΠΊΠ°ΠΊ Π²

double atof();

Ρ‚ΠΎ ΠΈ Π² этом случаС считаСтся, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΎΠ± Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… atof Π½Π΅ извСстно, ΠΈ всС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° соотвСтствиС Π΅Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ такая ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ интСрпрСтация пустого списка ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΌ компиляторам Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ старыС Π‘ΠΈ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Но Π² Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этим - Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ идСя. Если Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΈΡ…, Ссли ΠΈΡ… Π½Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ слово void.

Располагая ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ описанной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ atof, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ atoi, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΡƒΡŽ строку символов Π² Ρ†Π΅Π»ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

/* atoi: ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строки s Π² int с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ atof */

int atoi (char s[])

{

 double atof (char s[]);

 return (int) atof (s);

}

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΠΈΠ΄ объявлСния ΠΈ инструкции return. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния Π²

return Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅;

ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, приводится ΠΊ Ρ‚ΠΈΠΏΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ функция atoi Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ int, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния atof Ρ‚ΠΈΠΏΠ° double Π² инструкции return автоматичСски прСобразуСтся Π² Ρ‚ΠΈΠΏ int. ΠŸΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° потСря ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ компиляторы ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‚ ΠΎΠ± этом. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ привСдСния явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ прСобразования Ρ‚ΠΈΠΏΠ° ΠΈ подавляСт любоС ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π΅ сообщСниС.

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 4.2. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ atof Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΡΠΏΡ€Π°Π²Π»ΡΠ»Π°ΡΡŒ с числами Π²ΠΈΠ΄Π°

123.45e-6

Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… послС мантиссы ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ e (ΠΈΠ»ΠΈ E) с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ порядком (Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚, со Π·Π½Π°ΠΊΠΎΠΌ).

4.3 Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π‘ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ с мноТСством Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ΠŸΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ "внСшний" (external) ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ "Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ", ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ относится ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, опрСдСляСмым Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ доступны для ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π‘Π°ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ всСгда ΡΠ²Π»ΡΡŽΡ‚ΡΡ внСшними ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Π‘ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ внСшниС ΠΈΠΌΠ΅Π½Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…, относятся ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ). (Π’ стандартС это называСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π½Π΅ΡˆΠ½ΠΈΡ… связСй (Π»ΠΈΠ½ΠΊΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ) (external linkage).) Π’ этом смыслС внСшниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° области COMMON Π² Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅ ΠΈ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ самого внСшнСго Π±Π»ΠΎΠΊΠ° Π² ПаскалС. ПозТС ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ внСшниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ исходного Ρ„Π°ΠΉΠ»Π°.