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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ Π‘ΠΈ - руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 36

Автор M. УЭИВ

(ch = getchar( )) != EOF

Π‘Π°ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π² соотвСтствии с Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ:

     Π³Ρ€ΡƒΠΏΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ высокого ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°: <   <=   =>   >

     Π³Ρ€ΡƒΠΏΠΏΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°: = =   !=

     ΠŸΠΎΠ΄ΠΎΠ±Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ записью:

Π΅Ρ… != wye == zee

подразумСваСтся

(ex != wye) == zee

     Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π² соотвСтствии с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ языка Π‘ΠΈ сначала провСряСтся, Ρ€Π°Π²Π½Ρ‹ Π»ΠΈ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΅Ρ… ΠΈ wye. Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°, равная 1 ΠΈΠ»ΠΈ 0 (истина ΠΈΠ»ΠΈ лоТь), Π·Π°Ρ‚Π΅ΠΌ сравниваСтся со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ zee. ΠœΡ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ сорта ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Π½ΠΎ считаСм своим Π΄ΠΎΠ»Π³ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ слСдствия принятого порядка выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

     Π§ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ, ΠΎΠ·Π°Π±ΠΎΡ‡Π΅Π½Π½ΠΎΠΌΡƒ сохранСниСм своСго высокого ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°, Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ вмСстС с ΠΈΡ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°ΠΌΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π’ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ½ΠΈΠ³ΠΈ.

РСзюмС: ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΈ выраТСния

     1. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ


Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° слСва ΠΎΡ‚ Π·Π½Π°ΠΊΠ° сравниваСтся с Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ справа ΠΎΡ‚ Π½Π΅Π³ΠΎ:

     2. Π‘ΠΎΠ»ΡŒΡˆΠ΅

     3. Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ

     4. Π Π°Π²Π½ΠΎ

     5. МСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ

     6. МСньшС

     7. НС Ρ€Π°Π²Π½ΠΎ 

Π£Π‘Π›ΠžΠ’HΠ«Π• Π’Π«Π ΠΠ–Π•ΠΠ˜Π―

     ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· Π·Π½Π°ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ², располоТСнных слСва ΠΈ справа ΠΎΡ‚ Π½Π΅Π³ΠΎ. Если ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ истинно, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ условного выраТСния Ρ€Π°Π²Π½ΠΎ 1, Ссли ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ условного выраТСния Ρ€Π°Π²Π½ΠΎ 0.

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


     ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ 5 > 2:   ΠΈΡΡ‚ΠΈΠ½Π½ΠΎ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1.

     ΠžΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ (2 + Π°) = = Π°:   Π»ΠΎΠΆΠ½ΠΎ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0.

Π›ΠžΠ“Π˜Π§Π•Π‘ΠšΠ˜Π• ΠžΠŸΠ•Π ΠΠ¦Π˜Π˜

     Π˜Π½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ условных выраТСния. НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΌ трСбуСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая подсчитываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ "нСпустыС" символы, Ρ‚. Π΅. ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π½Π°Ρ‚ΡŒ число символов, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ, символами "новая строка" ΠΈ табуляции. Для этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ "логичСскиС" ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. НиТС приводится короткая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ этот способ подсчСта:

/* число символов */

/* подсчитываСт Π½Π΅ пустыС символы */

main( )

{

int ch;

int charcount = 0;

while ((ch = getchar( )) != EOF)

if(ch !='  ' && ch \='\n' && ch != '\t') charcount++;

    printf(" ВсСго %d нСпустых символов. \n", charcount);

}

     Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ происходило Π² Π½Π°ΡˆΠΈΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ своС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ символа ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, являСтся Π»ΠΈ ΠΎΠ½ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°. Π”Π°Π»ΡŒΡˆΠ΅ появляСтся Π½Π΅Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ - ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ "ΠΈ", ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅ΠΌΡƒΡŽ &&. Бмысл дСйствий, осущСствляСмых ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ if Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

     Π•сли ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½Ρ‹ΠΉ символ Π½Π΅ ΠΏΡ€ΠΎΠ±Π΅Π», И Π½Π΅ символ "новая строка", И Π½Π΅ символ табуляции, Ρ‚ΠΎ происходит ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ charcount Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

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

     Π’ языкС Π‘ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:


ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ Бмысл && И || Π˜Π›Π˜ ! НЕ

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ expl ΠΈ Π΅Ρ…Ρ€2 - Π΄Π²Π° простых условных выраТСния Ρ‚ΠΈΠΏΠ° cat > rat ΠΈΠ»ΠΈ debt = = 1000. Π’ΠΎΠ³Π΄Π°:

     1. expl && Π΅Ρ…Ρ€2: истинно Π² Ρ‚ΠΎΠΌ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π° выраТСния expl ΠΈ Π΅Ρ…Ρ€2 истинны.

     2. expl || Π΅Ρ…Ρ€2: истинно Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ expl ΠΈΠ»ΠΈ Π΅Ρ…Ρ€2 истинно ΠΈΠ»ΠΈ ΠΎΠ±Π° истинны.

     3. !expl: истинно, Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ expl Π»ΠΎΠΆΠ½ΠΎ, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

     ΠΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ нСсколько ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:


     5 > 2 && 4 > 7: Π»ΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ истинно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ΄Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

     5 > 2 || 4 > 7: истинно, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠΎΠ΄Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ истинно.

     !(4 > 7): истинно, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ 4 Π½Π΅ большС 7.


ПослСднСС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ эквивалСнтно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ:

4 < = 7.

     Π•сли Π²Ρ‹ совсСм Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с логичСскими опСрациями ΠΈΠ»ΠΈ испытываСтС трудности ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌΠΈ, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° && врСмя = = ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎ.

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹

     ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ ! ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, ΠΎΠ½ Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ Ρƒ умноТСния, Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ увСличСния, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ && большС Ρ‡Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ||, Π° ΠΎΠ±Π΅ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚, Ρ‡Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ высокий, Ρ‡Π΅ΠΌ опСрация присваивания. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

Π° > b  &&  b > c  || b > d

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

((a > b) && (b > с)) || (b > d)

Ρ‚. Π΅. b содСрТится ΠΌΠ΅ΠΆΠ΄Ρƒ с ΠΈ Π° ΠΈΠ»ΠΈ b большС d.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ вычислСний

     ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² языкС Π‘ΠΈ Π½Π΅ опрСдСляСтся, ΠΊΠ°ΠΊΠΈΠ΅ части слоТного выраТСния Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒΡΡ Π²Π½Π°Ρ‡Π°Π»Π΅. НапримСр, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅:

apples = (5 + 3)*(9 + 6);

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 5 + 3 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вычислСно Π΄ΠΎ вычислСния выраТСния 9 + 6, ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ (ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹, присвоСнныС опСрациям Π³Π°Ρ€Π°Π½Ρ‚Π°Ρ‚ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π° выраТСния Π±ΡƒΠ΄ΡƒΡ‚ вычислСны ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ умноТСния.) Π­Ρ‚Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π±Ρ‹Π»Π° оставлСна Π² языкС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ создатСли компилятора ΠΈΠΌΠ΅Π»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ систСмС ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивный Π²Ρ‹Π±ΠΎΡ€. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· этого ΠΏΡ€Π°Π²ΠΈΠ»Π° (ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ΠΌ) являСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π―Π·Ρ‹ΠΊ Π‘ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ логичСскиС выраТСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, гарантируСтся Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ обнаруТиваСтся элСмСнт, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ устанавливаСт Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ всСго выраТСния ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ³ΠΎ, вычислСниС Π΄Π°Π½Π½ΠΎΠ³ΠΎ выраТСния прСкращаСтся. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ конструкции Ρ‚ΠΈΠΏΠ°:

while((c = getchar( )) != EOF &&  с != '\n')

     Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ вычислСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ подвыраТСния пСрСмСнная с ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ΄Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. Если Π±Ρ‹ Ρ‚Π°ΠΊΠΎΠΉ порядок вычислСний Π½Π΅ гарантировался, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, провСрял Π±Ρ‹ ΠΈΡΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ выраТСния ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

if (number !=0  && 12/number ==2) printf(" Число Ρ€Π°Π²Π½ΠΎ 5 ΠΈΠ»ΠΈ 6.\n" );

     Π•сли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ number Ρ€Π°Π²Π½ΠΎ 0, Ρ‚ΠΎ всС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎ, ΠΈ поэтому дальнСйшСС вычислСниС Π΄Π°Π½Π½ΠΎΠ³ΠΎ условного выраТСния прСкращаСтся. Π­Ρ‚ΠΎ избавляСт ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΎΡ‚ послСдствий дСлСния Π½Π° Π½ΡƒΠ»ΡŒ. МногиС языки Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ выполнСния ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ трСбования, ΠΈ, выяснив, Ρ‡Ρ‚ΠΎ number Ρ€Π°Π²Π½ΠΎ 0, ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ условия.  

РСзюмС: логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ выраТСния

1. Π›ΠžΠ“Π˜Π§Π•Π‘ΠšΠ˜Π• ΠžΠŸΠ•Π ΠΠ¦Π˜Π˜

ΠžΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ условныС выраТСния. Π£ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ != имССтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎ Π΄Π²Π° - ΠΎΠ΄ΠΈΠ½ слСва ΠΎΡ‚ Π·Π½Π°ΠΊΠ° ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ справа ΠΎΡ‚ Π½Π΅Π³ΠΎ.

&&  И||  Π˜Π›Π˜!   НЕ


II. Π›ΠžΠ“Π˜Π§Π•Π‘ΠšΠ˜Π• Π’Π«Π ΠΠ–Π•ΠΠ˜Π―

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 && Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2:     ΠΈΡΡ‚ΠΈΠ½Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π° выраТСния истинны

Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅1 || Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅2:     ΠΈΡΡ‚ΠΈΠ½Π½ΠΎ, Ссли ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ ΠΎΠ±Π° выраТСния истинны

!Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:     ΠΈΡΡ‚ΠΈΠ½Π½ΠΎ, Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎ, ΠΈ Π½Π° ΠΎΠ±ΠΎΡ€ΠΎΡ‚


ΠŸΠžΠ Π―Π”ΠžΠš Π’Π«Π§Π˜Π‘Π›Π•ΠΠ˜Π˜

     Π›ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ выраТСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ; вычислСния ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ устанавливаСтся ΠΈΡΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ всСго выраТСния.


ΠŸΠ Π˜ΠœΠ•Π Π«

     Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: 6 > 2 && 3 = = 3:     ΠΈΡΡ‚ΠΈΠ½Π½ΠΎ

     Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: !(6 > 2 && 3 = = 3):     Π»ΠΎΠΆΠ½ΠΎ

     Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅: Ρ… != 0 && 20/Ρ… < 5:     Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ вычисляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Ρ… Π½Π΅ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ.

ΠŸΠ ΠžΠ“PAMMA ΠŸΠžΠ”Π‘Π§Π•Π’Π Π‘Π›ΠžΠ’

     Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ возмоТности для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ подсчСта числа слов Π² тСкстС. (Она ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ символы строки.) Π Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° способа, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ слова. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ простого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ слово ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов, которая Π½Π΅ содСрТит "ΠΏΡƒcΡ‚Ρ‹Ρ… символов". ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ "glymxck" ΠΈ "r2d2" - это слова. ПeрСмСнная word Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для хранСния указания ΠΎ Ρ‚ΠΎΠΌ, являСтся Π»ΠΈ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ символ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ слова ΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ. ПоявлСниС "пустого символа" (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π», табуляция ΠΈΠ»ΠΈ "новая строка") слуТит ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΠΊΠΎΠ½Ρ†Π° слова. Π’ΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ "нСпустой" символ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ слова, ΠΈ ΠΌΡ‹ смоТСм ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика слов Π½Π° 1.