# Логіка

### Умовні інструкції

Умовні інструкції необхідні програмування. Вони дозволяють сформулювати відмінкові диференціації, такі як:

- Якщо є шлях ліворуч, поверніть ліворуч.
- Якщо кількість балів = 100, натисніть «Молодець!».

#### якщо блоки

Найпростішою умовою є блок if:

[![Bild1_d.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bqlbild1-d.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bqlbild1-d.PNG)

При його виконанні значення змінної x порівнюється зі 100. Якщо воно більше, то "Яке велике число!" виводиться. В іншому випадку нічого не відбувається.

#### якщо блокує

Також можна вказати, що щось має статися, коли умова хибна, як у цьому прикладі:

[![Bild2_d.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild2-d.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild2-d.PNG)

Як і в попередньому блоці «Яке велике число!» виводиться, коли x &gt; 100. Інакше виводиться «Це дуже велика».

Блок if може мати розділ do , але не більше одного.

#### якщо зробити ще якщо блок

Також можна перевірити кілька умов за допомогою одного блоку if, додавши пропозиції do else:

[![Bild3_d.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild3-d.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild3-d.PNG)

Блок спочатку перевіряє, чи є x &gt; 100, і виводить «Яке велике число!» якщо це так. Якщо це не так, то перевіряється, чи дорівнює x = 42. Якщо так, то виводиться «Це моє щасливе число!». В іншому випадку нічого не відбувається.

Блок if може мати будь-яку кількість розділів if do. Умови оцінюються зверху вниз, поки одна з них не буде виконана або поки не залишиться більше умов.

#### якщо зробити ще якщо зробити ще блок

if блоки можуть мати розділи if do та else if :

[![Bild4_d.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild4-d.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild4-d.PNG)

Розділ else if гарантує виконання дії, навіть якщо жодна з попередніх умов не виконується.

Розділ else if також може розташовуватися після будь-якої кількості розділів if do , включаючи нуль, що тоді було б нормальним блоком if do .

#### Модифікація блоку

У списку інструментів відображаються лише простий блок if та блок if do :

[![image-1638372839221.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/image-1638372839221.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/image-1638372839221.png)

Щоб додати речення if do та else , натисніть символ (+). Символ (-) можна використовувати для видалення умов else if :

[![image-1638373059561.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/image-1638373059561.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/image-1638373059561.png)

Зверніть увагу, що форми блоків дозволяють додавати будь-яку кількість підблоків else if, але не більше одного блоку if.

### Булева логіка

Булева логіка - це проста математична система з двома значеннями:

- істинний
- неправильний

Логічні блоки в ROBO Pro Coding зазвичай призначені для управління умовами та циклами.

Ось приклад:

[![Bild1_d.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/VVlbild1-d.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/VVlbild1-d.PNG)

Якщо значення x не більше 100, то умова є хибною і «це не дуже велике». виводиться. Якщо значення x не більше 100, то умова є хибною і «це не дуже велике». виводиться. Логічні значення також можуть бути збережені в змінних і передані до функцій, так само, як числа, тексти та значення списку.

Якщо блок очікує логічне значення як вхідні дані, то ніякі вхідні дані не будуть інтерпретуватися як помилкові . Нелогічні значення не можна вставляти безпосередньо там, де очікуються логічні значення, хоча можливо (але не рекомендується) зберегти нелогічне значення змінної, а потім вставити його у вхідні дані умови. Цей метод не рекомендується, і його поведінка може бути змінена в майбутніх версіях ROBO Pro Coding.

#### Цінності

Для доступу до логічного значення можна використовувати окремий блок зі списком, в якому вказано значення true або false:

#### Порівняльні оператори

Є шість операторів порівняння. У кожен із них вводяться два входи (зазвичай два числа), і оператор порівняння повертає true чи false залежно від цього, як вхідні дані порівнюються друг з одним.

[![image-1623518116706.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518116706.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116706.png)[![image-1623518117182.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518117182.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518117182.png)

[![image-1623518116894.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518116894.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116894.png)[![image-1623518116802.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518116802.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116802.png)

[![image-1623518116985.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518116985.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116985.png)[![image-1623518166030.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518166030.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518166030.png)

Шість операторів: одно, не одно, менше, більше, менше чи одно, більше чи одно.

#### Логічні оператори

Блок and повертає істину тоді й тільки тоді, коли два його вхідні значення є істинними.

[![image-1623518251877.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518251877.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518251877.png)

Блок or повертає значення true якщо хоча б одне з двох його вхідних значень істинно.

[![image-1623518258449.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518258449.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518258449.png)

#### робити

Блок не перетворює логічний вхід у його протилежність. Наприклад, результат:

[![image-1623518278596.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518278596.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518278596.png)

є хибним.

Якщо немає вхідних даних, передбачається значення true , тому наступний блок згенерує значення false :

[![image-1623518270686.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518270686.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518270686.png)

Проте залишати поле введення порожнім не рекомендується.

#### Трикомпонентний оператор

Оператор із трьох частин діє як мініатюрний блок if do . Він використовує три вхідні значення. Перше логічне умова для перевірки - це перше вхідне значення, друге вхідне значення - це значення, що повертається, якщо перевірка вірна, а третє вхідне значення - це значення, що повертається, якщо перевірка помилкова. У наступному прикладі колір змінної визначається червоним, якщо змінна x менше 10, в іншому випадку колір змінної задається зеленим.

[![image-1623518297713.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518297713.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518297713.png)

Блок із трьох частин завжди можна замінити блоком if do. Наступні два приклади такі самі.

[![image-1638450294773.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/image-1638450294773.png) ](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/image-1638450294773.png)

[ ](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/image-1638450294773.png)[![Bild14_d.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild14-d.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild14-d.PNG)