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

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

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

printf("Hello, world

");

компилятор выдаст сообщСниС ΠΎΠ± ошибкС.

Π‘ΠΈΠΌΠ²ΠΎΠ» Π½ΠΎΠ²ΠΎΠΉ строки Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ вставляСтся автоматичСски, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Ρƒ строку ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ ΠΏΠΎ шагам с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ printf. ΠΠ°ΡˆΡƒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊ:

#include β€Ήstdio.hβ€Ί


main()

{

 printf("Hello, ");

 printf("world");

 printf('\n');

}

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΅Π΅ выполнСния Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π° Ρ‚Π° ΠΆΠ΅ строка, Ρ‡Ρ‚ΠΎ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅.

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ \n ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ символ. Π’Π°ΠΊΠΈΠ΅ особыС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ символов, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ Π½Π°ΠΊΠ»ΠΎΠ½Π½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚Ρ‹, ΠΊΠ°ΠΊ \n, ΠΈ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ эскСйп-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для обозначСния Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ прСдставимых ΠΈΠ»ΠΈ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… символов. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ… Π² Π‘ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ символы \t, \b, \", \\, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ соотвСтствСнно Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ символ Π½Π°Π·Π°Π΄ ("Π·Π°Π±ΠΎΠΉ" послСднСго символа), Π΄Π²ΠΎΠΉΠ½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ, саму Π½Π°ΠΊΠ»ΠΎΠ½Π½ΡƒΡŽ Ρ‡Π΅Ρ€Ρ‚Ρƒ. ΠŸΠΎΠ»Π½Ρ‹ΠΉ список Ρ‚Π°ΠΊΠΈΡ… символов прСдставлСн Π² ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π΅ 2.3.

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 1.1. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‰ΡƒΡŽ "Hello, world", Π² вашСй систСмС. ΠŸΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅, удаляя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ посмотритС, ΠΊΠ°ΠΊΠΈΠ΅ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅.

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 1.2. ВыяснитС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π² ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ константу Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° printf Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ \c, Π³Π΄Π΅ c - символ, Π½Π΅ входящий Π² прСдставлСнный Π²Ρ‹ΡˆΠ΅ список.

1.2 ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ арифмСтичСскиС выраТСния

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСт вычислСния ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ Β°Π‘ = (5/9)(Β°F-32) ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ соотвСтствия Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°ΠΌ ΠΏΠΎ ЦСльсию:

0   –17

20  –6

40  4

60  15

80  26

100 37

120 48

140 60

160 71

180 82

200 93

220 104

240 115

260 126

280 137

300 148

Как ΠΈ прСдыдущая, эта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· опрСдСлСния ΠΎΠ΄Π½ΠΎΠΉ-СдинствСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main. Она Π΄Π»ΠΈΠ½Π½Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‰Π΅ΠΉ "здравствуй, ΠΌΠΈΡ€", Π½ΠΎ ΠΏΠΎ сути Π½Π΅ слоТнСС. На Π½Π΅ΠΉ ΠΌΡ‹ продСмонстрируСм нСсколько Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, объявлСния, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, арифмСтичСскиС выраТСния, Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄.

#include β€Ήstdio.hβ€Ί

/* ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ

ΠΈ ЦСльсию для fahr = 0, 20,…, 300 */

main()

{

 int fahr, celsius;

 int lower, upper, step;

 lower = 0; /* ниТняя Π³Ρ€Π°Π½ΠΈΡ†Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ */

 upper = 300; /* вСрхняя Π³Ρ€Π°Π½ΠΈΡ†Π° */

 step = 20; /* шаг */

 fahr = lower;

 while (fahr β€Ή= upper) {

  celsius = 5 * (fahr-32) / 9;

  printf("%d\t%d\n", fahr, celsius);

  fahr = fahr + step;

 }

}

Π”Π²Π΅ строки:

/* ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ

ΠΈ ЦСльсию для fahr = 0, 20,… 300 */

ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. ВсС символы, ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ /* ΠΈ */, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ компилятором, ΠΈ этим ΠΌΠΎΠΆΠ½ΠΎ свободно ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π±ΠΎΠ»Π΅Π΅ понятной. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ Π² любом мСстС, Π³Π΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ символы ΠΏΡ€ΠΎΠ±Π΅Π»Π°, табуляции ΠΈΠ»ΠΈ символ Π½ΠΎΠ²ΠΎΠΉ строки.

Π’ Π‘ΠΈ любая пСрСмСнная Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ объявлСна Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ использована; ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²ΠΎΠΉ исполняСмой инструкциСй. Π’ объявлСнии ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ свойства ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Оно состоит ΠΈΠ· названия Ρ‚ΠΈΠΏΠ° ΠΈ списка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

int fahr, celsius;

int lower, upper, step;

Π’ΠΈΠΏ int ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ значСния пСрСчислСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Π΅, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ Ρ‚ΠΈΠΏ float ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° значСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ, Ρ‚. Π΅. Π½Π° числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ±ΠΎΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² зависят ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Числа Ρ‚ΠΈΠΏΠ° int Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠ°ΠΊ 16-разрядныС (Π»Π΅ΠΆΠ°Ρ‚ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ -32768 Π΄ΠΎ 32767), Ρ‚Π°ΠΊ ΠΈ 32-разрядныС. Числа Ρ‚ΠΈΠΏΠ° float ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ 32-разрядными словами, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ 6 дСсятичных Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΡ… Ρ†ΠΈΡ„Ρ€ (Π»Π΅ΠΆΠ°Ρ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 10-38 Π΄ΠΎ 10+38.

Помимо int ΠΈ float Π² Π‘ΠΈ имССтся Π΅Ρ‰Π΅ нСсколько Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² для Π΄Π°Π½Π½Ρ‹Ρ…, это:

char - символ-Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ Π±Π°ΠΉΡ‚;

short - ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅;

long - Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅;

double - с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ.

Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ зависят ΠΎΡ‚ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Из Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ: массивы, структуры ΠΈ объСдинСния, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ значСния этих Ρ‚ΠΈΠΏΠΎΠ² Π² качСствС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Обо всСм этом ΠΌΡ‹ расскаТСм ΠΏΠΎΠ·ΠΆΠ΅.

ВычислСния Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ прСобразования Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с инструкций присваивания.

lower = 0;

upper = 300;

step = 20;

fahr = lower;

ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² Π½ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния. Π›ΡŽΠ±Π°Ρ инструкция заканчиваСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой.

ВсС строки Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ способом, поэтому ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Ρ†ΠΈΠΊΠ»ΠΎΠΌ, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌ это вычислСниС для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки. НСобходимыС дСйствия Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Ρ†ΠΈΠΊΠ» while:

while(fahr β€Ή= upper) {

 β€¦

}

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

Π’Π΅Π»ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π° while ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ нСсколько инструкций, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ прСобразования Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€, ΠΈΠ»ΠΈ ΠΎΠ΄Π½Π°-СдинствСнная инструкция Π±Π΅Π· скобок, ΠΊΠ°ΠΊ Π² Ρ†ΠΈΠΊΠ»Π΅

(while i β€Ή j)

 i = 2 * i;

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

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ вычислСний выполняСтся Π² Ρ‚Π΅Π»Π΅ Ρ†ΠΈΠΊΠ»Π°. Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΏΠΎ Π€Π°Ρ€Π΅Π½Π³Π΅ΠΉΡ‚Ρƒ пСрСводится Π² Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΏΠΎ ЦСльсию ΠΈ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ celsius посрСдством инструкции

celsius = 5 * (fahr-32) / 9;

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ сначала ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ Π½Π° 5 ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π΄Π΅Π»ΠΈΠΌ Π½Π° 9, Π° Π½Π΅ сразу ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅ΠΌ Π½Π° 5/9, связана с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π‘ΠΈ, ΠΊΠ°ΠΊ ΠΈ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ†Π΅Π»Ρ‹Ρ… сопровоТдаСтся отбрасываниСм, Ρ‚. Π΅. ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части. Π’Π°ΠΊ ΠΊΠ°ΠΊ 5 ΠΈ 9 - Ρ†Π΅Π»Ρ‹Π΅, отбрасываниС Π² 5/9 Π΄Π°Π»ΠΎ Π±Ρ‹ Π½ΡƒΠ»ΡŒ, ΠΈ Π½Π° мСстС Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ ΠΏΠΎ ЦСльсию Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Ρ‹ Π½ΡƒΠ»ΠΈ.

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΠ» Π½Π°ΠΌ Π΅Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°Π½ΠΈΠΉ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ функция printf. Ѐункция printf - это ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ функция Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описана Π² Π³Π»Π°Π²Π΅ 7. Π•Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ - строка символов, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ % соотвСтствуСт ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² (Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ, Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ, …), Π° информация, располоТСнная Π·Π° символом %, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π²ΠΈΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выводится ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². НапримСр, %d спСцифицируСт Π²Ρ‹Π΄Π°Ρ‡Ρƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² Π²ΠΈΠ΄Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ дСсятичного числа, ΠΈ инструкция

printf("%d\t%d\n", fahr, celsius);

ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ fahr, выполняСт Ρ‚Π°Π±ΡƒΠ»ΡΡ†ΠΈΡŽ (\t) ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ celsius.

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ printf ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ спСцификатору ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (конструкции, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΉΡΡ с %) соотвСтствуСт Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈ Ρ‚. Π΄. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ согласованы ΠΏΠΎ количСству ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌ: Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ.

ΠšΡΡ‚Π°Ρ‚ΠΈ, printf Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ языка Π‘ΠΈ, ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π² языкС Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… конструкций, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… Π²Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄. Ѐункция printf - лишь полСзная функция стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, которая ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ доступна для Π‘ΠΈ-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ПовСдСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ printf, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½ΠΎ стандартом ANSI, ΠΈ Π΅Π΅ свойства Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Π²ΠΎ всСх Π‘ΠΈ-систСмах, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΡ… трСбованиям стандарта.