- •Обучение : Программирование на Си для pic
- •Как работает мк. Программа в мк. Области памяти в мк.
- •Байты и биты.
- •Переменные и константы.
- •Как и какие микроконтроллеры будем программировать?
- •Установка mplab 8.30 и интеграция picc Compiler 9.50.
- •Создание проекта с помощью волшебника (wizard)
- •Программа №1. «Рыба».
- •Как работают функции. Комментарии.
- •Физиололгия работы программы в мк.
- •Программа №2. «Продолжение рыбы». Именование портов и линий
- •Регистры портов. Определение направлений работы линий.
- •Ифы, форы, вайлы или основы интеллекта. Истина не ложь
- •For (в течение)
- •While (пока)
- •Switch-case-break (выбрать набор и выйти)
- •Return (возврат)
- •Избыточный займ и переполнение
- •Составление проекта из нескольких файлов исходников
- •На что обратить внимание в примерах?
- •Массивы.
- •Void perebor void{ // начало функции «перебор»
- •Динамическая индикация. Прерывания. Структуры
Ифы, форы, вайлы или основы интеллекта. Истина не ложь
Бытует мнение, что для приличной игры на гитаре достаточно знать три аккорда и иметь две струны. Не знаю, правда это или нет, но мы с вами рассмотрим три оператора, из которых вы будете творить свои шедевры.
Озвучив в заголовке громкое слово «интеллект», нам необходимо это понятие перенести на МК. Правильнее этот термин называть логикой или логической последовательностью действий. Ну а что такое логика, спросит дотошный читатель? В ответ на это вспоминается анекдот про мужиков, которые играют во дворе в домино. Один из мужиков приводит интересную логическую последовательность: креветки – пиво – супруга – мало – 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; // нет дачи
Таким образом, можно сделать множество разных проверок и их комбинаций, что приводит к ветвлению логики работы программы.
