Array M. УЭИТ - Язык Си - руководство для начинающих

Тут можно читать онлайн Array M. УЭИТ - Язык Си - руководство для начинающих - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Мир, год 1988. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык Си - руководство для начинающих
  • Автор:
  • Жанр:
  • Издательство:
    Мир
  • Год:
    1988
  • Город:
    Москва
  • ISBN:
    5-03-001309-1 /русск./
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Array M. УЭИТ - Язык Си - руководство для начинающих краткое содержание

Язык Си - руководство для начинающих - описание и краткое содержание, автор Array M. УЭИТ, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
M. УЭИТ   С. ПРАТА    Д. МАРТИН
Язык Си — руководство для начинающих

Язык Си - руководство для начинающих - читать онлайн бесплатно полную версию (весь текст целиком)

Язык Си - руководство для начинающих - читать книгу онлайн бесплатно, автор Array M. УЭИТ
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

В языке Си имеются три логические операции:

Операция Смысл
&& И
|| ИЛИ
! НЕ

Предположим, что 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.

Вот эта программа:

#include

#define YES 1

#define NO 0

main( )

{

int ch; /* введенныйсимвол*/

long nc = 0L; /* число символов */

int n1 = 0; /* число строк */

int nw = 0; /* число слов */

int word = NO; /* = = YES, если содержимое ch - часть слова */

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

{

nc++ ; / * подсчет символов * /

if (ch = = '\n' ) nl++; /* подсчет строк */

if (ch != ' ' && ch != '\n' && ch !='\t' && word ==NO)

{

word = YES; /* начало нового слова */

nw++; /* подсчет слов */

}

if ((ch = = ' ' || ch = = '\n' || ch = = '\t' ) && word == YES)

word = NO; /* достигнут конец слова */

}

printf(" символов = %1d, слов = %d, строк = %d\n", nc, nw, nl);

}

Поскольку существуют три различных "пустых символа", мы должны использовать логические операции для проверки всех трех возможностей. Рассмотрим, например, следующую строку:

if(ch != ' ' && ch != '\n' && ch != '\t ' && word == NO).

В ней говорится: "если содержимое ch- не пробел, и не новая строка, и не табуляция, и не первый символ слова". (Первые три условия эквивалентны проверке, не является ли содержимое chпустым символом). Выполнение всех четырех условий служит признаком начала нового слова, и значение переменной nwувеличивается. Если мы в середине слова, то первые три условия оказываются вы полненными, но значением переменной wordокажется признак YES, и значение переменной nwне увеличивается. Когда в процессе ввода встретится очередной "пустой" символ, переменной wordбудет вновь присвоен признак NO.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Array M. УЭИТ читать все книги автора по порядку

Array M. УЭИТ - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык Си - руководство для начинающих отзывы


Отзывы читателей о книге Язык Си - руководство для начинающих, автор: Array M. УЭИТ. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x