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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«UNIX β€” ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ срСда программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 144

Автор ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½ Π‘Ρ€Π°ΠΉΠ°Π½ Уилсон

Π’Π°Π±Π»ΠΈΡ†Π° П.2.2. ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ЛогичСскиС выраТСния ΠΈΠΌΠ΅ΡŽΡ‚ значСния 1 (истина) ΠΈ 0 (лоТь). Как ΠΈ Π² Π‘ΠΈ, любоС Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ истину. ΠŸΡ€ΠΈ всСх опСрациях Π½Π°Π΄ числами с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ сравнСния Π½Π° равСнство ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ,

hoc
ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько встроСнных констант, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π». П.2.3.

DEG 57.2957795130823208768 180/Ο€, градусы Π½Π° Ρ€Π°Π΄ΠΈΠ°Π½Ρ‹
E
2.71828182845904523536 Π΅, основаниС Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌΠΎΠ²
GAMMA
0.57721566490153286060 Ξ³, константа Π­ΠΉΠ»Π΅Ρ€Π°-ΠœΠ°ΡΡ‡Π΅Ρ€ΠΎΠ½ΠΈ
PHI
1.61803398874989484820 (√5+1)/2, Π·ΠΎΠ»ΠΎΡ‚ΠΎΠ΅ сСчСниС
PI
3.14159265358979323846 Ο€, ΠΊΡ€ΡƒΠ³ΠΎΠ²ΠΎΠ΅ трансцСндСнтноС число

Π’Π°Π±Π»ΠΈΡ†Π° П.2.3. ВстроСнныС константы

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ управлСния

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

hoc
ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΡƒ:

ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ : Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Β | пСрСмСнная Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

Β | ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° (список, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²)

Β | while (Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

Β | if (Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

Β | if (Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ else ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

Β | список_ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

Β | print список_Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Β | return Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅_Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

список_ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² : (пусто)

Β | список_ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ распознаСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π° Π½Π΅ ΠΊΠ°ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, поэтому послС Π²Π²ΠΎΠ΄Π° Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ присваиваний ΠΈΡ… значСния Π½Π΅ ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚ΡΡ.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ символ

;
Π½Π΅ являСтся для
hoc
ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ оканчиваСтся символом ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки. Π­Ρ‚ΠΎ обусловливаСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ особСнности. НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ допустимый ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€
if
:

if (x < 0) print(Ρƒ) else print (z)

if (x < 0) {

Β print(y)

} else {

Β print(z)

}

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ скобки Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹: символ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки послС

if
ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π» Π±Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π» Π±Ρ‹ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ скобки.

Бинтаксис ΠΈ сСмантика срСдств управлСния Π²

hoc
Π² основном Ρ‚Π΅ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π² Π‘ΠΈ. ΠžΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅
while
ΠΈ
if
, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²
hoc
Π½Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
break
ΠΈ
continue
.

Π’Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄:
read
ΠΈ
print

Ѐункция Π²Π²ΠΎΠ΄Π°

read
(Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ) ΠΈΠΌΠ΅Π΅Ρ‚, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ встроСнным функциям, ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚: ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π½Π΅ являСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ: это имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ число, ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²Ρ‹ΡˆΠ΅, читаСтся ΠΈΠ· стандартного Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ присваиваСтся ΠΏΠΎΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Ѐункция
read
Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния 1 (истина), Ссли Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π°, ΠΈ 0 (лоТь), Ссли
read
встрСтила ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π° Π»ΠΈΠ±ΠΎ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ пороТдаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ

print
. АргумСнты
print
ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ раздСляСмый запятыми список Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ строк, взятых Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, ΠΊΠ°ΠΊ Π² Π‘ΠΈ. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒΡΡ:
print
ΠΈΡ… Π½ΠΈΠΊΠΎΠ³Π΄Π° автоматичСски Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ

read
Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ встроСнная функция ΠΈ поэтому ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² скобках, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ
print
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ список, раздСляСмый запятыми Π±Π΅Π· скобок:

while (read (x)) {

Β print "value is", x, "\n"

}

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π²

hoc
Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, хотя ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ. Π­Ρ‚ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΎ просто для контроля ошибок Π²ΠΎ врСмя исполнСния: Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ значСния являСтся ошибкой для ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΆΠ΅ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ значСния.

Бинтаксис опрСдСлСния Ρ‚Π°ΠΊΠΎΠ²:

function: func имя () ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

procedure: proc имя() ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

Π—Π΄Π΅ΡΡŒ имя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉΡΡ скобки ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ строкС, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅

if
.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π‘ΠΈ Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ составным (Π² скобках). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ символ ; Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ своСго значСния Π²

hoc
, пустоС Ρ‚Π΅Π»ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ формируСтся пустой ΠΏΠ°Ρ€ΠΎΠΉ скобок.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятыми. На Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π²

shell
:
$3
относится ΠΊ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ, индСксируСмому, начиная с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ. Они ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ значСниями ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ сСмантичСски эквивалСнтны ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ. Бсылка Π½Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ числа, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ число Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, считаСтся ошибкой. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ошибок динамичСский, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ число ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ссли Π΅Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° это число (см. Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
printf
Π² Π‘ΠΈ).

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ рСкурсивными, Π½ΠΎ стСк ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ (ΠΎΠΊΠΎΠ»ΠΎ сотни Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

β€’ НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ АккСрманна Π²

hoc
:

$ hoc

time ack() {

Β if ($1 == 0) return $2+1

Β if ($2 ==0) return ack($1 - 1, 1)

Β return ack($1 - 1, ack($1, $2 - 1))

}

ack(3,2)

Β 29

ack(3,3)