Добро пожаловать в третий гайд по языку kOS, в котором мы разберем условия и поговорим немного о мат логике и бонусом я расскажу про работу с Action Groups-ом.
Если вы не читали Первый и Второй гайд, рекомендую сначала ознакомиться с онными.
Первая часть
Вторая часть
Итакс, друзья начнем с команд условий на языке kOS. Условия позволяют нам писать разветвленные, сложные программы, а так же считать и подбирать нужные нам вещи и значения, что крайне важно. Имея в распоряжении, знания базовых Мат функций(что описывались в первом гайде) + знания циклов + знания условий(что включает в себя мат логику) + прикладные команды, мы получаем сильнейший в КСП инструмент по написанию самых сложных и вариативных программ, в любых сферах Cамолёты,Ракеты,Космолёты,Робототехника, Асистенты, Автопосадки, Автоперелеты, змейка на консоли в конце концов что бы скоротать перелёт или обитания на станции и т.д. до бесконечности)
Зная эти вещи мы можем писать абсолютно любой софт, ограниченный лишь нашим воображением. Для полного понимания работы условий и для их грамотного написания, нам необходимо знать некоторые базовые вещи по Мат Логике. Я расскажу их в кратце, что бы вы компактней и удобней могли работать с условиями.
Из Мат логики мы возьмем всего лишь два нужных "элемента" - Конъюнкцию и Дизъюнкцию, или проще говоря операторы
"И"(AND) и
"ИЛИ"(OR).
Такие операторы позволяют объединять и варьировать условия, к примеру вы можете включить cледующую ступень, когда у вас будет И необходимая высота И необходимая скорость и записать всё это одним условием, без всяких выкрутасов.
Самое главное -> Когда мы рассматриваем условия, мы рассматриваем их правдивость или ложность. Т.е. например:
Дано:
1.Наша высота = 1000 метров
2.Наша скорость = 100 м\с.
Мы начинаем проекру:
А.У нас высота БОЛЬШЕ 2000 метров?
Б.Наша скорость МЕНЬШЕ 150 м\С?
В условии (А) мы видим ложь т.е. на выходе получаем 0 (ложь),
В условии (Б) мы видим правду и получаем на выходе 1 (правда).
Так мы видим условия сами по себе, а теперь рассмотрим их взаимодействия друг с другом путём операторов
"И" и
"ИЛИ", что будет выдавать на выходе нам 1 или 0:
Условие А
"И" Условие Б -> дадут нам ложь. Т.е. что бы получить отсюда правду, нужно что бы выполнялось
И ПЕРВОЕ УСЛОВИЕ И ВТОРОЕ УСЛОВИЕ, если выполняется одно из них то на выходе мы получаем ложь.
Условие А
"ИЛИ" Условие Б -> дадут на правду. Т.е. или одному условию или другому достаточно быть правдивым что бы на выходе получить
ПРАВДУ.
Запомнить и соображать можно чисто логически, а можно используя эти операторы как знаки.
Оператор
"И" это знак умножения, т.е:
1 условие_____2 условие
___0____________0________0*0=0. Т.е. при двух ложных условиях мы получим ложь на выходе.
___0____________1________0*1=0. т.е. при одном ложном условии мы получаем на выходе ложь.
___1____________0________1*0=0. См. выше.
___1____________1________1*1=1. Единственное условие при котором Конъюнкция выполняется. Когда И одно условие правдивое И другое.
Оператор
"ИЛИ" это знак сложение, т.е.:
___0____________0________0+0=0. Ложно только если оба условия ложны.
___0____________1________0+1=1.
___1____________0________1+0=1.
___1____________1________1+1=1. Правда даже если оба условия выполняются.
При том не забывайте что условий может быть и 3 и 5 и сколько угодно, поэтому со знаками очень просто разобраться. К тому же мы можем писать условия
как примеры в школьной математике например так:
("УСЛОВИЕ 1" и "УСЛОВИЕ 2") или ("УСЛОВИЕ 3" и "Условие 1"). В данном примере выдастся правда, если УСЛОВИЕ 1 и 2 правдивые или если Условие 1 и 3 правдивы.
Допустим условие 2 и 3 правдивы, а условие 1 ложно, в этом случае из примера выйдет
(0*1)+(1*0) = 0 в итоге выдасться ноль. Думаю вы поняли как удобно использовать такие методы расчета и построения условия.
Главное помнить:
"И"(AND) это умножение "*" "ИЛИ"(OR) это сложение "+"
Так к чему же нам нужны выходные Ложь и Правда? Для того чтобы понять нам нужно приступить к командам условий:
Команд условий всего 3 штуки, но по сути всего одна.
Команда
"IF".
С английского переводиться - ЕСЛИ.
IF "УСЛОВИЕ(УСЛОВИЯ)"{"ТЕЛО КОМАНДЫ".} \\ Если условие(условия) выдадут на выходе правду, то сработает всё что написано в "ТЕЛЕ КОМАНДЫ", если же
условие(условия) выдадут ложь, то код пойдет дальше к следующим командам "ТЕЛО КОМАНДЫ" не выполняя.
IF ALTITUDE>2000 AND VERTICALSPEED KOMANDA SRABOTALA
Можно написать одно условие если хочется.
IF SAS = TRUE PRINT "SAS ON". \\ К тому же если у вас только одна команда в
ТЕЛЕ КОМАНДЫ, то фигурные скобки можно не ставить.
БУДЬТЕ ВНИМАТЕЛЬНЫ(!), если вы хотите чтобы выполнилось несколько команд в
ТЕЛЕ КОМАНДЫ, не забудьте поставить фигурные скобки. Если вы их
НЕ ПОСТАВИТЕ, то вторую команду он рапознает как отдельную от цикла. Поэтому лучше особо не пренебрегайте этими скобками, а то потом не поймете что тут не так.
IF SAS = TRUE AND RCS = TRUE {Print "SAS ON". Print "RCS ON".} \\ Вот правильное написание нескольких команд в
ТЕЛЕ КОМАНДЫ IF. Не забываем что не обязательно писать это в строчку, главное что бы правильно были расставлены скобки.
Можно использовать сколько угодно условий объединения уже выучеными нами операторами:
И(AND) ,
ИЛИ(OR).
По сути из всех команд условий достаточно знать команду IF, потому что остальные команды делают практически тоже самое.
Команда
"WHEN THEN".
С английского переводиться КОГДА ТОГДА.
WHEN "УСЛОВИЕ(УСЛОВИЯ)" THEN {"ТЕЛО КОМАНДЫ"}.
т.е. по сути мы видим всю ту же команды, в которой так же можно применять условия, операторы и писать в теле команды сколько угодно команд.
Пример:
WHEN X=1 THEN {PRINT "X=1".}
Команда
"ON".
Перевод с английского НА
Вот это команда уже отличается. Она позволяет назначать какое-то действие на какую-то кнопку. К тому же позволяет работать с Acion Group-ами, а так же к примеру управлять своей программой при помощи кнопок за счет этого.
Примеры:
ON SAS RCS ON. \\ На нажатии кнопки включающую САС будет включаться еще и RCS
ON AG1 PRINT "ACTION GROUP 1 PRESSED". \\ На нажатие кнопки включающую первую Экшн группу он будет писать такую надпись
ON AG4 SET X TO X+1. \\ При нажатии на Экшн группу №4 увеличит Х на единицу
ON ABORT REBOOT \\ При нажатии на кнопку АБОРТ вверху экрана, перезагрузит консоль (Полезная команда).
Раньше на ON можно было закреплять разные вещи по типу условий типо ON ALTITUDE>2000 Print "2000 achived". ; Но сейчас это уже не работает.
Итак, мы наконец-то разабрали весь необходимый материал что бы в полной мере приступить к прикладной части языка, чем мы и займемся в следующем гайде!
Надеюсь вы хорошо усвоили информацию из первых трёх гайдов что бы приступить к действительно интересным вещам!!
Надеюсь было интересно! Оставляйте вопросы в
ТЕМЕ НА ФОРУМЕ, а в комментариях пишите отзывы!
Для вас старался Finn. До новых встреч!