скачать книгу бесплатно
И если у нас есть более сложное выражение, в нем может быть порядок, согласно которому вычисляются разные части этого выражения.
И вычисление более сложного выражения может занять больше времени.
Но что более важно, представьте, что у нас есть сложное выражение, и мы вычислили его один раз.
И мы должны снова вычислить его, если мы хотим позже получить значение выражения.
Хотя было бы неплохо иметь некий способ запомнить значение выражения для будущего использования?
Поэтому, рассмотрим такой калькулятор, где у нас есть запоминание.
Здесь у нас есть несколько клавиш для хранения или получения значений из этой памяти.
Функция запоминания позволяет нам сохранить значение для будущего использования.
Память может содержать значение, и могут быть связанные с ней операции, такие как MS, чтобы сохранить значение, и MR, чтобы восстановить его или вызвать его.
Иногда есть третья клавиша, MC для очистки памяти,
Назовем эти две клавиши для работы с памятью set и get.
Сейчас ячейки памяти названы предопределенными именами, M1, M2 и т. д.
Но мы хотели бы назвать их x и y, как мы привыкли в математике.
И мы будем присваивать этим ячейкам памяти имена переменных.
Теперь мы обсудим, что такое начальное значение переменной, которое сохраняется до того, как мы установим переменную в другое значение.
Мы можем сказать, что значение переменной неопределенно.
Поэтому, если мы попытаемся получить это значение, мы получим ошибку.
В калькуляторах, где есть числовые переменные, эта переменная обычно устанавливается равной 0, чтобы избежать ошибки.
Теперь мы хотим, чтобы дисплей показывал что-то, когда мы нажимаем кнопки Set или Get.
Давайте сначала поговорим о Set.
Предположим, что дисплей показывает число 3, и что мы нажимаем кнопку set переменной x.
Теперь значение 3 будет храниться в переменной x.
И дисплей может показать что-то вроде x равно 3 точка с запятой,
Чтобы записать то, что мы только что сделали.
Мы говорим, что мы назначили значение 3 переменной X, и записали это как x равно 3 в инструкции присваивания.
Как только мы установили значение переменной, мы можем использовать это значение в выражениях.
Например, представьте, что у нас есть 5 на дисплее,
И мы хотим добавить значение x.
Мы нажимаем символ плюса, а затем кнопку Get х.
Таким образом, мы увидим на дисплее 5 плюс x.
Но это выражение, и до того, как мы используем оператор присваивания, что дисплей действительно отображает, выражение или законченную операцию?
Мы можем рассматривать выражения в калькуляторе как законченные операции, считая, что дисплей также может считаться переменной, переменной с прямым вводом.
Поэтому на дисплее написано d равно перед выражением.
Таким образом мы преобразуем выражение в операцию.
На слайде показаны различные выражения присваивания.
Здесь показано, что выражения могут также иметь переменные.
И для вычисления выражения, нам нужно найти сохраненное значение в соответствующих переменных.
Теперь может оказаться, что одна и та же переменная появляется как слева, так и справа от присваивания.
Давайте проанализируем это более подробно.
Но сначала, давайте вспомним, что выражение присваивания состоит из переменной, за которой следует символ равенства, за которым следует выражение для вычисления, которое завершается точкой с запятой.
Представьте, что мы имеем три переменные x, y и z.
Мы не знаем их начальных значений.
У нас есть первая операция, которая присваивает 1 переменной x.
Поэтому после выполнения содержимое переменной x равно 1.
Следующая операция присваивания y равно x плюс 1.
Сначала мы должны оценить выражение справа, x плюс 1.
Для этого нам нужно получить значение, сохраненное в x.
Поэтому мы получаем 2 и 2 сохраняем в y.
Мы всегда работаем справа налево.
Сначала вычисляем выражение, а затем сохраняем результат в переменной.
Теперь мы сначала получаем значения x и y, складываем их вместе, получаем 3 и сохраняем 3 в x.
Переменные вместе со значениями – это то, что мы называем состоянием.
Таким образом, оператор присваивания преобразует одно состояние в другое состояние.
Здесь состояния обозначены фигурными скобками.
Коллекция значений переменных – это состояние.
Поэтому присваивание приводит к изменению состояния.
Теперь представьте, что вы сегодня делаете расчеты, и вы хотите повторить те же самые вычисления завтра.
Для этого вам нужно будет ввести все выражения снова.
Поэтому мы хотели бы иметь возможность записывать вычисления.
Точно так же, как мы хотим использовать память переменных для хранения значений, мы хотели бы теперь сохранить всю программу.
Некоторые калькуляторы печатают вычисления на бумаге.
Таким образом, у нас может быть запись наших вычислений.
Мы называем эту запись программой.
На данный момент программа является последовательностью простых вычислений.
Теперь было бы здорово, если бы мы могли повторно использовать программу, чтобы программа была не только результатом записи калькулятора, чтобы мы имели возможность подавать эту программу в калькулятор, как инструкции для повторного расчета.
Теперь наш калькулятор становится все больше похож на компьютер.
Таким образом, последовательность инструкций является программой.
Этот набор инструкций должен быть четко определен, и каждая из инструкций должна эффективно исполняться нашим компьютером.
Теперь эти инструкции обычно представляют собой текст.
Расширенный калькулятор выглядит следующим образом.
На дисплее теперь отображается история операций.
Это то, что мы называем программой.
Помимо записи истории операций, мы также хотим возможность ввода этой истории в калькулятор.
Таким образом, мы получим простой компьютер.
В общем и целом, программа является не чем иным, как записанным вычислением.
Ее можно записать на листе бумаги или сохранить другим способом, например, в памяти компьютера.
И компьютер будет интерпретировать эту программу и выполнять вычисление каждый раз, когда это потребуется.
Таким образом, мы прошли путь от значения и выражения до программы.
Основные операторы
Калькулятор, которые мы рассматривали, работал с числами.
Мы использовали числа и операции с числами для получения чисел.
Теперь, что делать, если вы хотите сравнить два числа?
Если мы хотим проверить, например, 5 меньше 6 или нет.
Ответ может быть положительным или отрицательным, – да или нет.
Это будет утверждение истинное или ложное.
В этом случае true и false также являются значениями, но они не являются числовыми значениями.
Их называют булевыми значениями в честь математика Джорджа Була.
Существует шесть операций сравнения – меньше чем, больше чем, меньше или равно, больше или равно.
И наконец, мы должны проверить, являются ли два значения равными или разными.
Результатом проверки будет булево значение true или false.
Булевы значения представляют собой тип данных с двумя значениями true и false.
Мы могли бы назвать их да или нет, или один и ноль, но мы будем называть их true и false, как это делает Java.
И так же, как у нас были арифметические операции, теперь мы имеем несколько булевых операций.
Давайте посмотрим на некоторые из них.
Отрицание, которое также называется «нет» и представлено восклицательным знаком.
Эта операция принимает одно логическое значение, один аргумент, и возвращает другое логическое значение.
Конъюнкция – это еще одна операция, также называемая «и», и она представлена двумя амперсандами.
Эта операция принимает два значения, два аргумента.
И еще одна операция – дизъюнкция, также называемая «или», и она представлена двумя вертикальными полосами.
Эта операция также принимает два аргумента.