Песни о Паскале - [24]

Шрифт
Интервал


>FALSE AND FALSE = FALSE

>FALSE AND TRUE = FALSE

>TRUE AND FALSE = FALSE

>TRUE AND TRUE = TRUE


Логическое сложение OR («ИЛИ»). Приоритет самый низкий, – выполняется в последнюю очередь. Требует двух операндов и в результате дает TRUE, если хотя бы один из операндов равен TRUE.


>FALSE OR FALSE = FALSE

>FALSE OR TRUE = TRUE

>TRUE OR FALSE = TRUE

>TRUE OR TRUE = TRUE


Итоги

• Информация – это то, что устраняет неопределенность.

• Получая ответ на вопрос, мы получаем информацию. Количество информации можно измерить.

• Наименьшая порция информации – бит – содержится в ответе на простой вопрос («да» или «нет»). Это количество принято за единицу измерения информации.

• Память компьютера состоит из элементарных ячеек – триггеров, каждый из которых хранит один бит информации. Восемь битов составляют один байт.

• Подобие триггеров в Паскале – булевы (логические) переменные. Они принимают только одно из двух значений: TRUE (истина) или FALSE (ложь).

• Булевы переменные в сочетании с логическими операциями OR, AND, NOT и скобками образуют булево выражение. Скобки нужны для изменения естественного порядка выполнения операций.

• Булевы выражения используют в условных и циклических операторах.

А слабо?

А) Что будет напечатано в результате выполнения следующего фрагмента?


>      S:=’123’;

>      Writeln (’123’=S);


Б) Переведите на русский язык это выражение.


>      if (S=’’) and (A or B) then …


В) Напишите программу к бортовому компьютеру для маршрута на рис. 36.



Рис.36 – Схема проезда к задаче «В»

Г) В переменные M1, M2 и M3 вводится итог подбрасывания трех монет так, что TRUE соответствует «орел», а FALSE – «решка». Надо составить пять выражений таких, чтобы они выдавали TRUE для следующих случаев:

• у всех монет выпал «орел»;

• у всех монет выпала «решка»;

• все монеты упали одинаково;

• у первой – «решка», у прочих – «орел»;

• у первой – «орел», а две остальные упали одинаково.

Подсказка: логические данные можно сравнивать; сравнение обладает самым низким приоритетом, и потому внутри выражений заключается в скобки, например: M1 and (M2=M3).

Глава 14

Дважды два – четыре



Первые компьютеры назывались электронными вычислительными машинами (ЭВМ). Хотите – верьте, хотите – нет, но тогда на них не документы печатали и не фильмы смотрели, а вычисляли. С тех пор компьютеры научились многому и даже обыгрывают в шахматы чемпионов мира, однако, их способность к счету по-прежнему в цене.

Поможем братьям нашим меньшим

Пора и нам обратиться к вычислительным талантам компьютера. Не будем тратить попусту время, и по ходу дела соорудим полезную программу. Вы сможете испытать её на живом человеке, если найдёте первоклашку, зубрящего таблицу умножения. Уверен, что он с удовольствием подвергнет себя такому испытанию. Итак, наша очередная программа – экзаменатор. Суть её проста: компьютер предлагает ученику два числа и ждет от него ответа – произведения этих чисел. За правильный ответ ученика поощряют, а иначе его ждет «нахлобучка».

Числа и действия с ними

Скажу честно: знакомых нам типов данных – STRING и BOOLEAN – не хватит для решения поставленной задачи. Для вычислений в Паскале припасены другие типы данных, один из которых называется INTEGER, что переводится как целое. Из названия следует, что переменные такого типа могут хранить целые числа (положительные и отрицательные), например 10, 25, -14. Переменные целого типа объявляют следующим образом:


>var N, M : integer;


Таким переменным можно присваивать выражения целого типа, состоящие из чисел, арифметических операций, скобок и других переменных, например:


>      N := 19; M :=-25;

>      M := 20 + 3*N;


К арифметическим операциям относятся:

• сложение (+) и вычитание (–);

• умножение (*) и деление (DIV);

• нахождение остатка от деления (MOD).

Здесь DIV и MOD – это ключевые слова языка. Примеры деления и нахождения остатка показаны ниже (в комментариях указаны результаты).


>      N := 10 div 2; { =5 }       M := 10 mod 2; { =0 }

>      N := 10 div 3; { =3 }       M := 10 mod 3; { =1 }

>      N := 10 div 4; { =2 }       M := 10 mod 4; { =2 }

>      N := 10 div 5; { =2 }       M := 10 mod 5; { =0 }

>      N := 10 div 6; { =1 }       M := 10 mod 6; { =4 }


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

Числовые переменные и выражения можно сравнивать между собой на равенство (=), неравенство (<>), больше (>), меньше (<), больше или равно (>=), меньше или равно (<=). При сравнении получается, как всегда, булев результат, например:


>var X, Y: integer;

>      B: Boolean;

>begin

>      X:=5;       Y:=10;

>      B:= X=Y; { B = FALSE }

>      B:= X

>      B:= X=Y-5; { B = TRUE }

>end.


А как быть с вводом и выводом числовых данных, нет ли тут сложностей? К счастью, нет. Так же как и строки, числовые данные вводятся процедурой Readln, а печатаются процедурами Write и Writeln, например:


>      Readln(X);

>      Writeln(X);

>      Writeln(’Y=’, X+10);


В последнем операторе на экран выводится строковая константа ’Y=’ и результат сложения X+10.

Теперь вы снабжены всем необходимым для написания экзаменатора.

Алгоритм экзаменатора

Рекомендуем почитать
Жлобские хроники

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Другая Земля Наследие Дружан

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Дороги своих любят

Четыре противоположности, чьи судьбы однажды удивительным образом переплелись – наемник, монах, воришка и маг – седлают коней. Что там, за горизонтом? Погони, разнесенные трактиры и странствующие музыканты да не оставят вас! Верные мечи, молитвы богам, ловкие руки, магия, и, конечно, верное плечо друга – и дороги будут благосклонны к своим любимцам, можете мне поверить.У менестрелей тяжелая работа. Но что на счет тех, кто им ее создает?


Зазеркалье. Фея для демона

Добрая и наивная сказка о любви.


Ли Кахори: Космическая любовь

На календаре 2283г. и у тебя светлое будущее.Ты — сын Советника Земного Союза и красивый парень. Отличник на курсе и прекрасный спортсмен. Просто тебе не повезло, Ли Кахори. Первой твоей ошибкой было влюбиться в сестру близкого друга, ну а второй — не отказаться от ваших взаимных чувств в угоду ее будущему жениху.Ты думал, что потерять ногу — это самое плохое в твоей жизни? Ты глубоко заблуждался, Лирой, мясорубка только начинается. Но ты ведь пройдешь этот путь до конца, так, Кахори? История про сильных духом, чья любовь разрушает любые преграды.Присутствует сёнэн-ай среди второстепенных героев.


Правила экстрасенса

Дело происходит в Питере. Молодой оперативник одного из убойных отделов Леонид Воронцов вызывает на допрос некоего бизнесмена Рыбкина с целью весьма низкой, а именно, получение взятки. Однако у Рыбкина, обвиняющегося в организации убийства своего зама, на этот счет совсем другие планы. Он подстраивает всё так, чтобы Воронцов получил сильный удар током, обычно в таких случаях ведущий к смерти. И Лёня действительно оказывается в морге. Однако в то время, когда для остальных такое путешествие, как правило, является последним, Лёнина история с него только начинается...