Авторизация
или
или
Зарегистрироваться на сайте
Возник вопрос? Столкнулись с проблемой? Есть предложение?

Мы вам поможем!

Пишите нам на почту: [email protected] и мы вам ответим в ближайшее время, так же вы можете воспользоваться формой обратной связи прямо с сайта.

Последние комментарии
Сегодня, 00:21
Они запихнули тексты контрактов прям в код. Там еще много чего не в ресурсах лежит. тыц
Вчера, 22:32
Переключайся на крафтики поменьше. Это не те глюки, которые интересно смотреть. У меня такими глюками (вылетом игры) каждый запуск КСП заканчивается.
Вчера, 21:02
Вообще нетрудно. Ионник вывести можно, можно здоровенную буханку топлива. Вопрос скорее в функционале) Ну и в процентах расхода топлива. Когда половину затрачиваешь на выход на орбиту, это одно, когда 90%, а оставшиеся 10% дают отстыкованному крафту 20к дельты - другое.
Вчера, 19:51
Командный модуль, гироскоп, батареи и солнечные панели. Всё необходимое для управления, в общем)
Вчера, 19:25
Одно и то же. Уже и не интересно.
Циолковский, в вашем комментарии много текста, не несущего конструктивной критики.
Ладно, не путать не буду. Но "тормозимся тормозным", "для освежевания памяти" - хммм... Граммар наци уже в пути:)
Без сомнения эпично!
Вчера, 16:48
а что у тебя в сервисном отсеке перед ядерником?
Вчера, 12:14
Во-во. Каждый выполняет свою функцию? А то, куда ж мы пойдём. :)
Вчера, 10:14
Отличный пепелац! 10 из 10 ! ! ! P.S.: скуму можно гнать на орбите из лунного сахара. Но для этого понадобится [/s]завод по производству космического топлива М альфа[s] перегонный завод.
Вчера, 09:54
Да, пожалуй, не помешали бы)
Вчера, 09:52
Крутейший шарик получился. Надо взять технологию на заметку.
Вчера, 09:50
Отличный аппарат. А у меня ССТО вечно какие-то упоротые выходят.
Вчера, 09:49
Ха-ха! Шикарный баг. Хотели орбитальный лиф - получите орбитальную стремянку
Вчера, 09:48
Отличная идея и исполнение - однозначный плюс.
Вчера, 09:46
А сесть на него реально?
4 декабря 2016 23:51
Кста вот дельное наблюдение, зря народ минусит. У меня тоже стойкие ассоциации с U-96 и Первой мировой)
4 декабря 2016 19:09
не путай народ, разгонным разгоняемся, тормозным тормозимся, и не надо тут этого того самого...
4 декабря 2016 18:35
Агрх!.. "Находиться" Он находиться здесь? Нет, я не находиться, чертов иностранец!
4 декабря 2016 18:08
От разгона до торможения - один шаг (а именно направление вектора тяги).
4 декабря 2016 17:18
Stop right there, criminal scum! Скумой барыжить на территории Империи запрещено! )
4 декабря 2016 16:56
Предварительный вариант РН был еще ближе к оригиналу, но только первых 2 ступени были уже на 400 с лишним деталей... Пришлось немного упростить)
4 декабря 2016 16:30
Дык, не абы кто, а Королёв придумал)
4 декабря 2016 16:07
Однако, отличная реплика. За ракету не скажу, возможно на стоке это лучшее, что можно сделать, но сам корабль и схема посадки - великолепны!
4 декабря 2016 15:44
Если это Союз, то я Циолковский. Несуразная поделка, лишь повторяющая принципы работы. Крафт клепается за 10 минут и никакого восхищения не способен вызывать. Посмотри недавно тема была с Востоком - вот там да, работа впечатляющая.
4 декабря 2016 15:38
Круто конечно, но зачем ? Английский там простой и понятный, особой сложности даже любителю нет. Единственное, иногда приходилось попотеть над оригинальным юмором в описании деталей, в остальном все миссии и контракты понятны даже если половины слов не знаешь.
Показать все
Список игр в нашей базе

Изучаем kOS - Циклы [Гайд по kOS часть 2]

Доброго времени, друзья!


Если вы не читали первую часть гайда, то вам сюда -> ТЫКНИ МЕНЯ!

Добро пожаловать во вторую часть гайда по kOS. В этом разделе мы разберемся в циклах. Циклы по сути являются практически основной опорой работы большинства программ. Так почему же?

Цикл, позволяет нам проверять какие-либо значения и даже несколько значений одновременно и совершать для тех или иных условий необходимые нам действия. Если приведем небольшую аналогию. Дома,к примеру, мы должны проследить за чайником и ванной. Чайник греется и ванна набирается одновременно. Если бы мы следили без цикла, то мы бы стояли у чайника и ждали пока он вскипит, когда ванна затапливала уже крыс в подвале. Если бы мы следили циклом то мы бы постоянно бегали между кухней и ванной и смотрели бы за обоими предметами с небольшим промежутком времени. Аналогия понятна думаю.

Для чего нужны циклы:
- Для серьёзных программ с разветвленной системой выборов. (Посадка, КруизКонтроль, Перелёты, Авионики-помошники и т.п.)
- Для инфоэкранов, что бы всегда видеть на консоле актуальную информацию.
- Для тестов команд и изучения кОС. (Даже самую непонятную команду можно удачно прогнать циклом и точно понять как она работает)

Для простоты обучения я буду разбирать один цикл. Его хватит для всего. К тому же раньше особо больше циклов и не было, возможно с новыми обновлениями добавили еще чего, но это не имеет значение. 99,9% программ вы сможете заточить под этот цикл.

Итак-с команда UNTIL.

UNTIL с англ. переводится как - ДО, НЕ РАНЬШЕ, ДО ТЕХ ПОР ПОКА. И эти слова полностью описывают работу этой команды.

Пишеться это так:
UNTIL "УСЛОВИЕ"{
"ТЕЛО ЦИКЛА"
}

Фигурные скобочки обязательны(!) ставьте их сразу, и внутри них пишите цикл. Главное не перепутать принцип работы к примеру цикл:

UNTIL X=1{"ТЕЛО ЦИКЛА"
}

Будет работать до тех пор пока X не станет равен единице(!), а НЕ ПОКА Х=1. Это разграничение как раз есть в паскале, но тут я об этом решил не писать.

Тоесть к примеру нижеприведенная программа, пишет в столбик числа от 10,9,8.. и так до 1. Как только значение Х примет единицу и закончится тело цикла, цикл остановиться и код пойдет дальше. Просто в данном случае после цикла ничего нет поэтому программа завершиться.

SET X TO 10.
UNTIL X=0{Print X. SET X TO X-1.} \\ Напоминаю что можно писать команды в одну строку, главное правильно расставлять точки.

Очень важно понимать, что проверяется чему равен в вышеприведенном случае Х не 24 на 7, а только когда цикл заканчивается и идет на следующую итерацию. Один прогон цикла - называется Итерацией. Запомните это хорошее слово. В Вышеприведенном случае, на первой итерации цикла напечатается 10, на второй 9 и т.д.

Еще раз усвоили и повторили. Цикл UNTIL проверяет своё условие (работать ему или нет) ПЕРЕД каждой итерацией, не во время итерации, не после, а именно ПЕРЕД. Это на самом деле важно, потому что при составлении сложных программ это будет иметь значение, и нужно будет учитывать что именно ПЕРЕД. Опять же в паскале существует три вида циклов два из которых отличаются друг от друга тем, что один смотрит на условие перед выполнением цикла, а другой после его выполнения, но это так, лирическое отступление.

UNTIL можно использовать в команде WAIT. Сама комбинация слов Wait Until переводиться как - Жди до тех пор.

К примеру так:
Wait until GroundSpeed > 5. \\ Если перевести опять же дословно, то будет так - Жди до тех пор пока скорость относительно поверхности не будет выше 5 м\с
Wait until Altitude > 2000 \\ Жди до тех пор пока высота не будет выше 2000 м. Главное не перепутать.

К тому же Until немногочисленная команда после которой не стоит ставить точку, правда обязательно надо ставить квадртаные скобки.

Цикл Until можно сделать бесконечным, указав выходом из цикла переменную с таким значением, которого она никогда не достигнет или поступить еще проще написав
Until 0{"ТЕЛО ЦИКЛА"}

Для выхода из бесконечных циклов существует несколько команд (по сути одна, но если у вас после цикла кода больше нет, то можно изучить еще одну команду.)

Итак пример бесконечного цикла и команды BREAK.

Set x to 0. \\ Задаем Х значение 0
Until 0{ \\ Задаем бесконечный цикл
clearscreen. \\ Чистим экран. На каждой итерации очищает экран.
print X. \\ Пишим X на экран
set x to x+1. \\ Добавляем к Х единицу
wait 0.5. \\ Ждем пол секунды
IF X>10 BREAK.} \\ Если Х>10 используем команду BREAK.


Итак команда BREAK. Прерывает цикл. Ей неважно какие условия, какой цикл, что было в цикле и что будет, она просто его завершает и ваша программа продолжает выполнятся дальше(все что стоит после закрытие фигурных скобок.) Забавно, но BREAK не работает по условию WHEN THEN, а так же по условиям Action Group-ов. Вполне корректно она ведет себе на условии IF(если), и просто сама по себе без всяких условий. (Об условиях и мат логике мы поговорим в следующем гайде).

Если ваша программа состоит из Цикла и команд написанных до этого цикла, то остановка цикла, в большинстве случае будет эквивалентна завершению программы. Завершить программу можно простой командой REBOOT - перезагружает консоль. Команда REBOOT работает везде и в WHEN THEN и с помощью Action Group-а, и куда только его не вставь, но эта программа перезагрузит консоль и по сути сразу же завершит программу, как только сработает. К примеру в вышеописанном примере замена BREAK на REBOOT, имела по сути одинаковый результат.

Закрепим материал, подкрепив всё это дело основными тезисами о нашем цикле UNTIL.
Цикл UNTIL:
1. Переводиться как ДО, ДО ТЕХ ПОР ПОКА, НЕ РАНЬШЕ.
2. Повторяет ТЕЛО ЦИКЛА написаное в фигурных скобках после условия выполнения Цикла
("КОМАНДА UNTIL""УСЛОВИЕ"{"ТЕЛО ЦИКЛА"})
3. Проверяет условие на истинность ПЕРЕД каждой итерацией.
4. Можно использовать с командой Wait.
5. Можно задавать бесконечный цикл написав UNTIL 0 {"ТЕЛО ЦИКЛА"}
6. Не требует точек НИ ПЕРЕД открытием фигурных скобок НИ ПОСЛЕ ИХ ЗАКРЫТИЯ. (Внутри скобок точки обязательно должны быть расставлены)
7. Из бесконечного цикла можно выходить командой BREAK. или завершив программу и перезагрузив консоль командой REBOOT.
8. Может быть вложенным (Пока что не разбираем)

Ну и небольшая программка-бонусом:
Обратный отсчет перед стартом, отсчитывает от 10 до 1 после чего активирует ступень.

SET CD TO 10.
Until CD=0{
Set CD TO CD - 1.
WAIT 1.
PRINT "COUNTDOWN IS... "+CD.}
STAGE.


Итак, гайд получился достаточно компактным и разобрал одну небольшую тему. Тем не менее, тема достаточно важная и, я надеюсь, вы её хорошо усвоили. Следующий гайд будет по условиям и мат логике, по формату такой же как и этот. Ну а дальше мы уже в полной мере сможем без зазрения совести приступить к самому интересному - прикладной части нашего программирования. К сожалению, я немного не уложился в свои планы, я хотел выдать циклы, и условия одним гайдом, но боюсь у вас в головах возникнет каша "дружба народов":)

Надеюсь всем было интересно. Оставляте вопросы в теме на форуме и пишите свои отзывы в комментариях. С вами был Finn, до новых встреч!!
    Комментарии
    Подсветить мои комментарии
    1. veld 17 декабря 2015 22:59, Посетители, {repa} #1
      Первейший бысть, и с отроковицей не возлежал!

      (читаю,хоть и не использую...Ибо интересно)
      0
    2. Finn 17 декабря 2015 23:04, Стримеры, {repa} #2
      Ая-яй переделаю завтра. В тексте есть вставки заключенные в знаки > и < и они не работают, видимо сайт их видит по другому. Не работают в плане там был текст, а в итоге он не показывается.... Завтра переделаю...
      0
    3. Kerbiter 17 декабря 2015 23:06, Модераторы, {repa} #3
      Мне интересно - что это за язык (к какому наиболее приближен?)
      0
    4. Silver 18 декабря 2015 00:31, Гости, {repa} #4
      Мне Паскаль напоминает, когда я в него умел. Но это было так давно...
      +1
    5. veld 18 декабря 2015 02:40, Посетители, {repa} #5
      Извините дилетанта....вначале UNTIL X=0{Print X. SET X TO X+1.}....может Х-1 ?
      0
    6. Finn 18 декабря 2015 06:41, Стримеры, {repa} #6
      *ИСПРАВЛЕНО* поправил пару очевидных смысловых ошибок, и переносов.
      0
    7. DamnMan 18 декабря 2015 16:54, Посетители, {repa} #7
      Цитата: Silver
      Но это было так давно...

      ...и неправда peka
      На самом деле тоже Паскаль изучал, и чет неинтересно стало, забросил(
      +1
    8. Kerbiter 18 декабря 2015 17:51, Модераторы, {repa} #8
      А я в нём щас разбираюсь)
      0
    9. Finn 18 декабря 2015 19:42, Стримеры, {repa} #9
      Паскаль некуда прикладывать, а кОС очень даже есть. В этом он конечно замечателен. Т.к. прикладной по кох некуда.
      0
    10. Gonzales_Gonzo 20 декабря 2015 18:35, Посетители, {repa} #10
      Плюс конечно по умолчанию за kOS,но циклы очень жиденько разобраны, одним UNTIL-ом мир не ограничивается.
      +1
    11. Finn 20 декабря 2015 21:37, Стримеры, {repa} #11
      В kOS других особо и нет\не было на момент моего изучения онного. Какие циклы ты предложил бы мне разобрать?
      0
    12. Gonzales_Gonzo 20 декабря 2015 22:23, Посетители, {repa} #12
      Как минимум если часть касается разборов циклов, стоит упомянуть что-то, кроме UNTIL и показать отличия в применении, например для FOR или FROM.
      Для гайда "запустить здесь и сейчас" в принципе достаточно любого работающего, но статья могла быть полнее, если показывать и другие варианты.
      0
    13. lllypa 21 декабря 2015 17:35, Хорошие люди, {repa} #13
      Оформляй в ворде, в виде одной книги. Получится пухленький мануал. Пока в рамках еже.. дневных ...недельных публикация хорошо, но когда работа будет завершена хотелось бы иметь сборничек.
      +1
    Гостям запрещено оставлять комментарии.
    Вам надо авторизироваться или зарегистрироваться на сайте.
    Войти или зарегистрироваться
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.