Занятие №20 " Булевы, или логические выражения в реальном мире"
Вам приходится принимать решения каждый день, и большинство из них приводит к действию. Например, вы можете сказать себе: «Если эта машина стоит меньше 2000 долларов, я ее куплю». Затем вы интересуетесь ценой машины и решаете, будете вы ее покупать или нет.

В Scratch вы тоже можете принимать решения. При помощи опера-торов сравнения вы сравниваете значения двух переменных или выражений, чтобы определить разницу между ними. Операторы сравнения также называются реляционными операторами, потому что проверяют соотношение двух значений.
БУЛЕВЫ, ИЛИ ЛОГИЧЕСКИЕ, ВЫРАЖЕНИЯ В РЕАЛЬНОМ МИРЕ

Само слово булевы используется в память о Джордже Буле — британском математике, жившем в XIX веке и разработавшем логическую систему, основанную на двух значениях: 1 и 0 (истина и ложь). Булева алгебра стала основой современной компьютерной науки.

Мы постоянно используем булевы выражения для принятия решений. Компьютеры тоже пользуются ими, чтобы определить ветку, которой после- дует программа. Роботизированная рука может быть запрограммирована проверять подвижные детали на конвейере и перемещать в Корзину 1 те части, у которых хорошееКачество = истина, а в Корзину 2 — для которых хорошееКачество = ложь. Системы домашней безопасности обычно программируются так, чтобы при введении неверного кода включалась сигнализация (верныйКод = ложь), а правильного — выключалась (верныйКод = истина). Удаленный сервер может предоставлять или отказывать в доступе, если прокатать свою кредитную карту в магазине, в зависимости от того, действует карта (истина) или нет (ложь). Компьютер в автомобиле автоматически выбросит подушки безопасности, если решит, что произошло столкновение (столкновение = истина). Мобильный телефон может показывать специальную иконку, когда батарея садится (батареяРазряжена = истина), и скрывать ее, когда заряд достаточный (батареяРазряжена = ложь).

Это несколько примеров того, как компьютеры инициируют различные действия, проверяя результаты булевых условий.
Реляционные операторы в Scratch
Обратите внимание, что все блоки имеют шестиугольную форму. Как вы, возможно, помните, это означает, что результат оценки этих блоков — логическое значение, которое либо верно, либо нет. Поэтому такие выражения также называют логическими. Например, выражение цена < 2000 проверяет значение переменной цена. Если она меньше 2000, блок оценивается как истина; если нет — как ложь. Вы можете использовать это выражение, чтобы сформулировать условия принятия решения в формате «Если (цена < 2000), то покупаем машину».

Прежде чем мы взглянем на блок если, который позволяет провести такую проверку, рассмотрим простой пример, иллюстрирующий, как логические выражения оцениваются в Scratch.
Оцениваем булевы выражения

Предположим, у нас есть две переменные, x и y, далее: x = 5 и y = 10. В таблице 6.2 показаны несколько примеров использования блоков отношений Scratch.

Эти примеры показывают важные моменты, связанные с реляционными операторами. Во-первых, мы можем использовать их для сравнения как отдельных переменных (x, y), так и целых выражений (напри- мер, 2 × x и x + 6). Во-вторых, результат сравнения всегда либо верен либо неверен (это всегда булево значение). В-третьих, блок x = y не означает «Задать значение x равным y». Он спрашивает: «x равен y?» Таким образом, когда утверждение задать z значение (x = y) выполняется, значение x по-прежнему равно 5.
Образцы использования блоков отношений
Сравниваем буквы и строки


Представим себе игру, в которой пользователь пытается угадать секретный код, состоящий из одной буквы от A до Я. Игра считывает вариант, предложенный пользователем, сравнивает его с секретным кодом и инструктирует пользователя, как ему улучшить свой ответ на основе порядка букв в алфавите. Если секретная буква, скажем, Ё, а введен ответ Б, игра должна сказать что-то вроде «После Б», тем самым дав понять, что секретный код в алфавите стоит за буквой Б. Как сравнить правильную букву с ответом игрока, чтобы решить, какое сообщение нужно вывести на экран?

К счастью, реляционные операторы в Scratch умеют сравнивать буквы. Scratch сравнивает буквы на основании порядка их расположения в алфавите. Поскольку A стоит в алфавите раньше Б, выражение A < Б верно. Тут важно помнить, что такого рода сравнения нечувствительны к регистру. Заглавная A — то же самое, что и прописная a. Поэтому выражение A = a тоже верно.

Зная это, вы можете проверить догадку игрока при помощи следующего набора условий:

ЕСЛИ (ответ = секретный код), то сказать «Правда»
ЕСЛИ (ответ > секретный код), то сказать «До <ответ>»
ЕСЛИ (ответ < секретный код), то сказать «После <ответ>»
Условие — это высказывание в форме «если условие верно, совершить такое-то действие».

Что если код содержит более одной буквы? Например, игроку нужно угадать название животного. Сможем ли мы использовать реляционные операторы Scratch, чтобы провести сравнение? Ответ прост: да! Вы можете использовать реляционные операторы, чтобы сравнивать строки. Но как именно Scratch производит сравнение типа слон > хомяк? Примеры демонстрируют результаты сравнения строк.
Зная это, вы не должны удивляться, что выражение слон > хомяк окажется неверным, хотя что в реальной жизни слоны гораздо больше хомяков. По принятым в Scratch правилам сравнения строк строка «слон» меньше строки «хомяк», потому что буква с (первая в слове «слон») идет в алфавите раньше, чем буква х (первая в слове «хомяк»).

Сравнение и сортировка строк на основе алфавитного порядка их букв используется во многих реальных ситуациях: приведение в поря- док каталогов файлов, книг на полках, слов в словарях и т. д. Слово «слон» в словаре будет идти раньше слова «хомяк», и результат сравнения строк в Scratch основан именно на этом принципе

Scratch - Учись играя!
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website