Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Си для PIC.docx
Скачиваний:
14
Добавлен:
01.07.2025
Размер:
351 Кб
Скачать
☆

Ифы, форы, вайлы или основы интеллекта. Истина не ложь

Бытует мнение, что для приличной игры на гитаре достаточно знать три аккорда и иметь две струны. Не знаю, правда это или нет, но мы с вами рассмотрим три оператора, из которых вы будете творить свои шедевры.

 

Озвучив в заголовке громкое слово «интеллект», нам необходимо это понятие перенести на МК. Правильнее этот термин называть логикой или логической последовательностью действий. Ну а что такое логика, спросит дотошный читатель? В ответ на это вспоминается анекдот про мужиков, которые играют во дворе в домино. Один из мужиков приводит интересную логическую последовательность: креветки – пиво – супруга – мало – 100 гр водки – член – стоит. А другой мужик эту логическую последовательность сокращает: ты не любишь креветки, значит у тебя не стоит (уж позвольте мне такие вольности изложения).

 

Логика в МК сродни логике в жизни, но гораздо однозначнее и определеннее. И, разумеется, все логические действия предопределены программой. Логика МК построена на сравнении – больше или меньше, равно или не равно, и комбинация этих условий. Хватит ля-ля, перейдем к делу.

 

Для начала поймем, что такое истина и ложь. Большинство команд строится с использованием операторов языка Си и условий истины и лжи. Операторы проще понимать как некие логические конструкции. Операторы в зависимости от истины и лжи работают определенным образом. Итак, под истиной понимаются правдивые высказывания, например,

 

 

примеры истинных высказываний

5>2

больше

3<4

меньше

6==6

равно

5!=6

не равно

4<=5

меньше или равно

4>=3

больше или равно

1

единица – это всегда истина

 

очевидно, что под ложью понимают не правдивые высказывания

 

примеры ложных высказываний

1>2

больше

5<4

меньше

5==6

равно

6!=6

не равно

6<=5

меньше или равно

2>=3

больше или равно

0

ноль – это всегда ложь

 

Два забавных примера:

ложь != истина – это истинное высказывание

ложь == истина – это ложное высказывание

 

В таблице мы с вами рассмотрели примеры на числах. В операторах на практике используются переменные либо переменные и числа.

 

if-else (если-иначе)

Синтаксис

if (выражение)

[группа операторов 1]

else

[группа операторов 2]

 

Если выражение истинно (т.е. то, что в круглых скобках), выполняется группа операторов 1 [т.е. то, что в квадратных скобках] (см. синтаксис). Если выражение ложно, выполняется группа операторов 2. В этом операторе else можно не использовать. В таком случае если выражение ложно, выполняются следующие операторы.

 

Пример из жизни

if (term > 45) // если температура больше 45

vent = 1; // включить вентилятор

else // иначе

vent = 0; // выключить вентилятор

 

Пример из жизни

if (term > 45) // если температура больше 45

{

vent = 1; // включить вентилятор

cond = 1; // и включить кондиционер

}

else // иначе

{

vent = 0; // выключить вентилятор

cond = 0; // и выключить кондиционер

}

 

Пример из жизни

if (dol > rub) // если долларов больше чем рублей

go = 1; // то гуляем

else // иначе

{

go = 0; // не гуляем

sex = 0; // совсем не гуляем

}

 

Пример из жизни

if ((many < 45)|(rebenok!=1)) // если денег меньше 45

// ИЛИ нет одного ребенка

{

go = 0; // не гуляем

sex = 0; // совсем не гуляем

narko = 0; // и думаем о жизни

}

В этом примере если выполняется ХОТЯ БЫ ОДНО условие, то выполняется последующее выражение или группа выражений в фигурных скобках.

Пояснение. rebenok!=1 имеется ввиду, что число детей не равно 1. В жизни число детей может быть равно нулю, а может быть равно двум, трём… Почувствуйте разницу, нет одного (!=1) и ни одного (<1 или ==0).

 

Пример из жизни

if ((many > 200)&(auto>=1)&(blondinko==1))

gold = 1;

// если денег больше 200 И хотя бы одна машина И верная девушка

// то мы покупаем стринги счастья

 

Всё довольно просто и логично. Если соблюдаются ВСЕ условия, то выполняется последующее выражение или группа выражений в фигурных скобках. К любому условию можно подключить оператор else , благодаря которому при не соблюдении условий можно выполнить иные выражения.

 

| - логическое ИЛИ

& - логическое И

 

Забавный пример:  ((быть)|(!=быть))=?

Также можно делать вложенные проверки

 

if (many>200) // если денег > 200

{

if (auto == 1) // если есть авто

more = 1; // едим на море

else dacha = 1; // иначе едим на дачу

}

else // иначе если денег мало

more = 0; // нет моря

dacha = 0; // нет дачи

 

Таким образом, можно сделать множество разных проверок и их комбинаций, что приводит к ветвлению логики работы программы.