На каком компьютерном устройстве вычисляется арифметическое выражение
Обновлено: 21.11.2024
В этом приложении обсуждаются различные типы операторов. Предусмотрены следующие типы:
- Арифметические операторы используются для выполнения математических вычислений.
- Операторы присваивания используются для присвоения значения свойству или переменной. Операторы присваивания могут быть числовыми, датными, системными, временными или текстовыми.
- Операторы сравнения используются для выполнения сравнений.
- Операторы конкатенации используются для объединения строк.
- Логические операторы используются для выполнения логических операций и включают И, ИЛИ или НЕ.
- Булевы операторы включают AND, OR, XOR или NOT и могут иметь одно из двух значений: true или false.
Приоритет оператора
Если в выражении встречается несколько операций, каждая часть оценивается и разрешается в заранее определенном порядке, называемом приоритетом операций. Скобки можно использовать для переопределения порядка приоритета и оценки одних частей выражения перед другими. Операции внутри скобок всегда выполняются раньше тех, что снаружи. Однако внутри скобок сохраняется обычный приоритет оператора.
Если выражения содержат операторы из более чем одной категории, арифметические операторы вычисляются первыми, затем операторы сравнения и последними логические операторы. Все операторы сравнения имеют одинаковый приоритет; они оцениваются в порядке слева направо, в котором они появляются. Арифметические и логические операторы оцениваются в следующем порядке старшинства:
Арифметика
Сравнение
Логический
Если сложение и вычитание, умножение и деление встречаются в выражении вместе, соответственно, каждая операция оценивается слева направо.
& Амперсанд
Описание
Этот оператор принудительно объединяет текстовую строку двух выражений. Оператор конкатенации текста соединяет или объединяет два значения для создания непрерывного текстового значения.
Синтаксис
&
Всякий раз, когда выражение не является строкой, оно преобразуется в подтип String. Если оба выражения имеют значение Null, результатом будет значение Null. Однако, если только одно выражение имеет значение Null, это выражение рассматривается как строка нулевой длины ("") при объединении с другим выражением. Любое пустое выражение также рассматривается как строка нулевой длины.
Пример
= Знак равенства
Описание
Этот оператор присваивает значение переменной или свойству. Оператор сравнения также используется как эквивалент; результатом операций сравнения обычно является логическое значение, истинное или ложное.
Синтаксис
- Представляет любую переменную или любое записываемое свойство.
- Представляет любой числовой или строковый литерал, константу или выражение.
Комментарии
Имя слева от знака равенства может быть простой скалярной переменной или элементом массива. Свойства слева от знака равенства могут быть доступными для записи только во время выполнения.
Пример
Дополнение (+)
Описание
Этот оператор вычисляет суммы двух чисел. Основной арифметический оператор, используемый для сложения; результатом арифметического оператора обычно является числовое значение.
Синтаксис
[выражение1] [выражение2]
Комментарии
Хотя оператор + может использоваться для объединения двух строк символов, для устранения двусмысленности и обеспечения самодокументируемого кода следует использовать оператор &. Если используется оператор +, может быть невозможно определить, произойдет ли сложение или конкатенация строк. Базовый подтип выражений определяет поведение оператора + следующим образом:
Если одно или оба выражения являются выражениями Null, результатом будет Null. Если оба выражения пусты, результатом является целочисленный подтип. Однако, если только одно выражение имеет значение Empty, в результате другое выражение возвращается без изменений.
Пример
Описание
Этот оператор выполняет логическое соединение двух логических выражений. Если оба выражения оцениваются как True, оператор AND возвращает True. Если одно или оба выражения оцениваются как False, оператор AND возвращает False.
Синтаксис
[Логическое выражение] И [Логическое выражение]
Комментарии
Выражением является любое допустимое логическое выражение в Epi Info.
Пример
В этом случае значение «Старший» присваивается всем записям, которые соответствуют обоим критериям: Возраст>75 и Пол=2.
АРИФМЕТИКА
Описание
Эти основные арифметические операторы можно использовать в сочетании с другими командами. Результатом является числовое значение.
Синтаксис
[Выражение] [Выражение]
- [Выражение] – это числовое значение или переменная, содержащая данные в числовом формате.
Комментарии
Результаты выражаются в числовом формате. Основные математические операторы, которые можно использовать в Epi Info, следующие:
- Сложение + Основной арифметический оператор, используемый для сложения; результатом арифметического оператора обычно является числовое значение (например, EX. 3 + 3).
- Вычитание – (Используется для вычитания или отрицания.) Основной арифметический оператор, используемый для вычитания или отрицания; результатом арифметического оператора обычно является числовое значение (например, ПРИМЕР 3 - 1).
- Умножение * (звездочка) Основной арифметический оператор, используемый для умножения; результатом арифметического оператора обычно является числовое значение.
- Деление / Основной арифметический оператор, используемый для деления; результатом арифметического оператора обычно является числовое значение.
- Возведение в степень ^
- Модуль или остаток MOD
Арифметические операторы отображаются в порядке убывания приоритета. Скобки можно использовать для управления порядком, в котором оцениваются операторы. Однако порядок по умолчанию часто дает правильный результат.
Хотя можно выполнять математические операции с датами, рассматриваемыми как количество дней (например, IncubationDays = SymptomDateTime – ExposureDateTime), поведение служб баз данных, лежащих в основе Epi Info, делает более эффективным использование функций временных интервалов (например, Инкубационные дни = МИНУТЫ (дата воздействия, время появления симптомов)/[24*60]). Для вычисления даты применяются следующие правила:
Дата + Дата производит Дата
Дата – Дата производит Дни
Дата * Дата не разрешена
Дата / Дата не разрешена
Дата ^ Дата не разрешена
Дата + Число порождает дату
Число + дата порождает число
Последние два правила применимы и к другим математическим операциям: -, *, /, ^
«Нулевой день» для математических операций с датами — 30 декабря. , 1899 г.
Пример
Сравнения
Описание
Эти операторы сравнения можно использовать в операторах If, Then и Select в программах Check Code и Analysis. Переменные типа "Да/Нет" можно проверить только на равенство с другими константами типа "Да/Нет" (+), (-) и (.).
Оператор
Описание
Синтаксис
[Выражение] [Выражение]
[Выражение] — любое допустимое выражение.
Комментарии
Операторы сравнения выполняются слева направо. Иерархия операторов сравнения отсутствует. Оператор <> можно использовать только с числовыми переменными. Для нечисловых переменных используйте НЕ.
Пример
Описание
Этот оператор используется с командой SELECT для поиска подмножеств информации с помощью поиска с подстановочными знаками. LIKE может использоваться только для поиска данных в текстовых переменных и использует звездочки (*) для определения выбранного значения. Его также можно использовать для создания операторов IF/THEN.
Синтаксис
SELECT LIKE «*value*»
SELECT LIKE «*val*»
SELECT LIKE «v*»
SELECT LIKE «*v»
- Переменная выбора должна быть текстового типа. Значение может быть целым или частичным текстовым значением. Текстовые переменные должны быть заключены в кавычки.
Комментарии
Результаты отображаются в окне вывода. Используйте СПИСОК для просмотра выбранных записей.
Примеры
Описание
Этот оператор инвертирует значение True или False следующего за ним логического выражения.
Синтаксис
NOT [Expression]
Выражение представляет собой любое допустимое логическое выражение в Epi Info.
Комментарии
Если значение выражения равно True, НЕ возвращает значение False. Если выражение равно False, NOT равно True.
Пример
ВАНИЛЬ
НОВАНИЛЬЯ
Описание
Этот оператор возвращает True, если одно или другое или оба выражения имеют значение True. Если какое-либо из выражений оценивается как True, OR возвращает True. Если ни одно из выражений не оценивается как True, операция ИЛИ возвращает False.
Синтаксис
[Логическое выражение] ИЛИ [Логическое выражение]
[Логическое выражение] представляет любое допустимое логическое выражение в Epi Info.
Пример
ВАНИЛЬ
ШОКОЛАД
МОРОЖЕНОЕ
Исключающее ИЛИ (исключающее ИЛИ)
Описание
Этот оператор выполняет логическое исключение двух выражений.
Синтаксис
[Логическое выражение] XOR [Логическое выражение]
[Логическое выражение] представляет любое допустимое логическое выражение в Epi Info 7 для Windows.
Комментарии
Если одно и только одно из выражений имеет значение True, результатом будет True. Однако, если какое-либо из выражений равно Null, результат также будет Null. Если ни одно из выражений не равно Null, результат определяется в соответствии со следующей таблицей:
Компьютеры превращают каждое число в двоичное. Числа, которые мы используем, выражены в базе 10. Каждые 10 единиц равняются 1 десятку, каждые 10 десятков равняются 1 сотне и так далее. В двоичном формате вы поднимаетесь на единицу каждые 2 числа. Таким образом, 2 единицы равны 1 двойке, 2 двойки равны 1 4 и так далее. Например, число 9 будет 1001 в двоичном формате: 1 единица, 0 двоек, 0 четверок и 1 восьмерка. 1 + 8 = 9.Компьютеры делают это, потому что легче проектировать схемы, которые имеют только значения 1 или 0, чем схемы с 10 отдельными значениями каждая.
Дополнение
В компьютерах запрограммированы основные математические операции, такие как сложение и вычитание. Добавление в двоичном формате чрезвычайно просто. Если у вас есть 2 числа со значением 1, вы сохраняете 0 и переносите 1. В противном случае вы записываете большее из двух чисел в этот слот. Например, если вы сложите 5 + 4, вы получите: 0101 + 0100. В первом слоте у вас есть 1 + 0, поэтому вы сохраняете большее число, 1. Во втором слоте у вас есть два 0, поэтому вы сохраняете 0 (поскольку оба числа одинаковы. В третьем слоте у вас есть две единицы, поэтому вы сохраняете 0 и несете 1. В итоге вы получите число 1001 или 9.
Умножение.
Компьютеры используют длинное умножение, но в двоичном формате. Если компьютер умножает число на 1, он возвращает 1. Это гораздо более простая система, чем 10-кратная, хотя и требует больше шагов. Например, в системе счисления 10 задача 8 * 9 — это простая одношаговая задача без длинного умножения. Однако в двоичном формате каждое число состоит из 4 цифр, а решение состоит из 7 цифр!
Вычитание
Вычитание выполняется в два этапа. Вместо того, чтобы вычитать число, двоичный компьютер добавляет его дополнение, число с единицами, где исходное число имеет нули, и нулями, где исходное число имеет единицы. Например, тогда как 4 — это 0100 в двоичном формате, отрицательное 4 — это 1011. Таким образом, для 7 — 4 мы получаем 0111 + 1011 = 10010. Затем число в самой левой части сдвигается вправо, что дает нам 0011 = 3.< /p>
Компьютеры выполняют невероятно сложные задачи, но встроенные в них микропроцессоры способны выполнять только самые простые математические операции, такие как сложение и сравнение двоичных чисел. Использование этого ограниченного набора инструментов для выполнения вычислений и других сложных математических операций было знаменательным достижением первых дней электронных вычислений. Профессор института и бывший декан инженерного факультета Джоэл Мозес участвовал в этих революционных усилиях и объясняет, что решение заключалось в разбиении больших и сложных проблем на более мелкие и простые.
Сложная математика требует обработки двух типов операций: числовых, которые включают определенные числовые значения, и символических, таких как операции в алгебре и исчислении, которые включают такие символы, как «x» и «y».
Моисей отмечает, что числовые операции можно разбить на сложение, вычитание, умножение и деление, которые являются основными задачами для микропроцессора. Чтобы вместить более широкий диапазон числовых значений, не перегружая память и вычислительные ресурсы, компьютеры используют систему с плавающей запятой, заменяя обычные числа (скажем, 1 300 000) значениями с плавающей запятой (скажем, 1,3 x 106). Этот подход обычно дает только приблизительный результат, но с некоторой осторожностью он отображает значения, чрезвычайно близкие к «правильному» ответу. (Одно заметное исключение: некоторые процессоры Intel Pentium в начале 1990-х годов имели ошибку с плавающей запятой, которая в редких случаях приводила к неправильным вычислениям.)
Символьные операции представляют собой более сложную задачу. «Первая проблема, — объясняет Мозес, — заключается в том, как представить символы, используя только 0 и 1, доступные в двоичном компьютере. Это делается с помощью кодирования, где «х» представляется одним числом, а «у» — другим». Компьютерное оборудование и программное обеспечение понимают их как коды, а не числовые значения. Более сложные выражения могут быть представлены путем разложения выражений на более простые части, которые связаны указателями в памяти компьютера. Это позволяет представлять и обрабатывать такие выражения, как «x + 2y».
Например, дифференциацию можно сократить до шагов, которые дифференцируют более простые выражения. Результаты таких дифференцированных выражений могут быть представлены в виде сумм, произведений, констант и переменных. Конечным результатом является процедура, которая включает в себя полный алгоритм дифференцирования, но использует только числа и функции, понятные для компьютера. Другие операции, такие как символическое интегрирование, могут быть еще более сложными, но основная концепция, как правило, одна и та же: свести сложную задачу к более простым и вычислить.
Хотя эти процедуры могут быть длительными, а иногда и трудоемкими, современные микропроцессоры настолько мощны, что они быстро справляются с ними, выполняя миллиарды операций в секунду.
Дополнительная информация по этой теме доступна в учебнике Structure and Interpretation of Computer Programs, доступном в Интернете в MIT Press.
Компьютер с обманчивой простотой можно описать как «устройство, автоматически выполняющее рутинные вычисления.Такое определение обязано своей обманчивостью наивному и узкому взгляду на расчет как на строго математический процесс. На самом деле вычисления лежат в основе многих действий, которые обычно не считаются математическими. Ходьба по комнате, например, требует многих сложных, хотя и подсознательных вычислений. Компьютеры также доказали свою способность решать широкий спектр задач, от балансировки чековой книжки до даже — в виде систем управления для роботов — передвижения по комнате.
Поэтому, прежде чем можно было реализовать истинную мощь вычислений, необходимо было преодолеть наивный взгляд на вычисления. Изобретатели, трудившиеся над созданием компьютера, должны были понять, что вещь, которую они изобретали, была не просто машиной для обработки чисел, не просто калькулятором. Например, они должны были узнать, что нет необходимости изобретать новый компьютер для каждого нового расчета и что компьютер может быть разработан для решения множества задач, даже таких, которые еще не представлялись, когда компьютер был построен. Они также должны были научиться сообщать такому универсальному компьютеру, решающему задачи, какую задачу решать. Другими словами, им пришлось изобрести программирование.
Они должны были решить все головокружительные проблемы разработки такого устройства, реализации дизайна и фактического создания устройства. История решения этих задач есть история ЭВМ. Эта история описана в этом разделе, и даны ссылки на записи о многих упомянутых лицах и компаниях. Кроме того, см. статьи о компьютерных науках и суперкомпьютерах.
Ранняя история
Предшественники компьютеров
Счеты
Возможно, самым ранним известным счетным устройством являются счеты. Он восходит как минимум к 1100 г. до н.э. и используется до сих пор, особенно в Азии. Сейчас, как и тогда, он обычно представляет собой прямоугольную рамку с тонкими параллельными стержнями, нанизанными на бусины. Задолго до того, как для записи чисел была принята какая-либо систематическая позиционная запись, счеты присваивали каждому стержню разные единицы измерения или веса. Эта схема позволяла представлять широкий диапазон чисел всего несколькими бусинами и, вместе с изобретением нуля в Индии, возможно, вдохновила на изобретение индийско-арабской системы счисления. В любом случае с помощью счетов можно легко манипулировать для выполнения обычных арифметических операций — сложения, вычитания, умножения и деления, — которые полезны в коммерческих операциях и в бухгалтерии.
Счеты — это цифровое устройство; то есть он представляет значения дискретно. Бусинка находится либо в одном предопределенном положении, либо в другом, однозначно представляя, скажем, единицу или ноль.
Аналоговые калькуляторы: от логарифмов Непера к логарифмической линейке
Вычислительные устройства приняли другой оборот, когда Джон Нейпир, шотландский математик, опубликовал свое открытие логарифмов в 1614 году. Любой человек может подтвердить, что сложение двух десятизначных чисел намного проще, чем их умножение, а преобразование задача умножения в задачу сложения — это именно то, что позволяют логарифмы. Это упрощение возможно благодаря следующему логарифмическому свойству: логарифм произведения двух чисел равен сумме логарифмов чисел. К 1624 году были доступны таблицы с 14 значащими цифрами для логарифмов чисел от 1 до 20 000, и ученые быстро освоили новый инструмент, позволяющий экономить труд и выполнять утомительные астрономические расчеты.
Что наиболее важно для развития вычислительной техники, преобразование умножения в сложение значительно упростило возможности механизации. Вскоре появились аналоговые вычислительные устройства, основанные на логарифмах Непера, представляющих цифровые значения с аналогичными физическими длинами. В 1620 году Эдмунд Гюнтер, английский математик, придумавший термины косинус и котангенс, построил прибор для выполнения навигационных вычислений: шкалу Гюнтера, или, как ее называли мореплаватели, гантер. Около 1632 года английский священник и математик по имени Уильям Отред построил первую логарифмическую линейку, опираясь на идеи Непера. Эта первая логарифмическая линейка была круглой, но Отред также построил первую прямоугольную линейку в 1633 году. Аналоговые устройства Гюнтера и Отреда имели различные преимущества и недостатки по сравнению с цифровыми устройствами, такими как счеты. Важно то, что последствия этих дизайнерских решений проверялись в реальном мире.
Цифровые калькуляторы: от часов-счетчиков до арифмометра
В 1623 году немецкий астроном и математик Вильгельм Шикард построил первый калькулятор. Он описал это в письме своему другу астроному Иоганну Кеплеру, а в 1624 году он снова написал, чтобы объяснить, что машина, которую он заказал для Кеплера, была, очевидно, вместе с прототипом, уничтожена в огне. Он назвал это Счетными часами, что современные инженеры смогли воспроизвести по деталям в его письмах.Даже общее представление о часах было временно утрачено, когда Шикард и вся его семья погибли во время Тридцатилетней войны.
Репродукция счетных часов Вильгельма Шикарда. Устройство могло складывать и вычитать шестизначные числа (с звонком для семизначных переполнений) с помощью шести взаимосвязанных шестерен, каждая из которых поворачивалась на одну десятую оборота за каждый полный оборот шестерни вправо. Таким образом, 10 оборотов любой шестерни вызовут «перенос» одной цифры на следующей передаче и изменят соответствующий дисплей.
Но, возможно, Шикард не был истинным изобретателем калькулятора. Столетием ранее Леонардо да Винчи набросал планы калькулятора, которые были достаточно полными и правильными, чтобы современные инженеры могли построить на их основе калькулятор.
Первым калькулятором или арифмометром, произведенным в любом количестве и фактически использовавшимся, была Паскалина, или арифметическая машина, разработанная и построенная французским математиком и философом Блезом Паскалем между 1642 и 1644 годами. Она могла только складывать и вычитать, с числами, вводящимися, манипулируя его циферблатами. Паскаль изобрел машину для своего отца, сборщика налогов, так что это была и первая бизнес-машина (если не считать счеты). Он построил 50 из них в течение следующих 10 лет.
Арифметическая машина, или Паскалин, французский денежный (недесятичный) калькулятор, разработанный Блезом Паскалем c. 1642. Числа можно было складывать, поворачивая колеса (расположенные вдоль нижней части машины) по часовой стрелке, и вычитать, поворачивая колеса против часовой стрелки. Каждая цифра в ответе отображалась в отдельном окошке, видимом вверху фотографии.
В 1671 году немецкий математик и философ Готфрид Вильгельм фон Лейбниц сконструировал вычислительную машину, названную счетчиком шагов. (Впервые он был построен в 1673 году.) Счетчик шагов расширил идеи Паскаля и выполнял умножение путем многократного сложения и сдвига.
Репродукция картины Готфрида Вильгельма фон Лейбница «Счетчик шагов» с оригинала, хранящегося в музее Тринкса Брунсвига в Ганновере, Германия. Поворот рукоятки (слева) приводил во вращение несколько барабанов, каждый из которых вращал шестерню, соединенную с цифровым счетчиком.
Лейбниц был активным сторонником двоичной системы счисления. Двоичные числа идеально подходят для машин, поскольку для них требуется всего две цифры, которые можно легко представить включенным и выключенным состояниями переключателя. Когда компьютеры стали электронными, двоичная система стала особенно подходящей, потому что электрическая цепь либо включена, либо выключена. Это означало, что on может означать true, off — false, а поток current — напрямую представлять поток логики.
Лейбниц предвидел целесообразность использования двоичной системы в вычислительных машинах, но его машина не использовала ее. Вместо этого счетчик шагов представлял числа в десятичной форме в виде позиций на 10-позиционных циферблатах. Даже десятичное представление не было данностью: в 1668 году Сэмюэл Морланд изобрел арифмометр, предназначенный для британских денег, — явно недесятичная система.
Устройства Паскаля, Лейбница и Морланда были редкостью, но с промышленной революцией 18 века возникла широко распространенная потребность в эффективном выполнении повторяющихся операций. Если другие виды деятельности механизированы, то почему не расчет? В 1820 году Чарльз Ксавье Тома де Кольмар из Франции эффективно решил эту задачу, когда построил свой арифмометр, первое коммерческое вычислительное устройство массового производства. Он мог выполнять сложение, вычитание, умножение и, при более сложном участии пользователя, деление. Основанный на технологии Лейбница, он был чрезвычайно популярен и продавался в течение 90 лет. В отличие от современного калькулятора размером с кредитную карту, арифмометр был достаточно большим, чтобы покрыть рабочий стол.
Жаккардовый станок
Калькуляторы, такие как арифмометр, оставались популярными и после 1820 года, и их потенциал для коммерческого использования был хорошо изучен. Многие другие механические устройства, построенные в 19 веке, также выполняли повторяющиеся функции более или менее автоматически, но лишь немногие из них имели какое-либо применение в вычислительной технике. Было одно важное исключение: жаккардовый ткацкий станок, изобретенный в 1804–1805 годах французским ткачом Жозефом-Мари Жаккаром.
Жаккардовый ткацкий станок был чудом промышленной революции.Текстильный ткацкий станок, его также можно назвать первым практическим устройством обработки информации. Ткацкий станок работал, вытягивая разноцветные нити в узоры с помощью набора стержней. Вставив перфорированную карту, оператор мог управлять движением стержней и тем самым изменять рисунок плетения. Кроме того, ткацкий станок был оборудован устройством для считывания карт, которое вставляло новую карту из предварительно перфорированной колоды на место каждый раз, когда бросали челнок, что позволяло автоматизировать сложные узоры ткачества.
Жаккардовый ткацкий станок, гравюра, 1874 г. В верхней части станка находится стопка перфокарт, которые будут подаваться в ткацкий станок для контроля рисунка ткачества. Этот метод автоматического выдачи машинных инструкций использовался компьютерами еще в 20 веке.
Что было необычным в этом устройстве, так это то, что оно перенесло процесс проектирования с этапа трудоемкого ткачества на этап штамповки карт. После того, как карты были перфорированы и собраны, дизайн был готов, и ткацкий станок автоматически реализовал дизайн. Таким образом, можно сказать, что жаккардовый ткацкий станок запрограммирован на различные узоры с помощью этих колод перфокарт.
Тем, кто хочет механизировать вычисления, ткацкий станок Жаккарда дал важные уроки: последовательность операций, выполняемых машиной, можно контролировать, чтобы заставить машину делать что-то совершенно другое; перфокарта могла использоваться как средство управления машиной; и, что наиболее важно, устройство можно было направить на выполнение различных задач, передав ему инструкции на своего рода языке, т. е. сделав машину программируемой.
Не будет большим преувеличением сказать, что на жаккардовом станке программирование было изобретено раньше, чем компьютер. Тесная связь между устройством и программой стала очевидной спустя 20 лет, когда Чарльз Бэббидж изобрел первый компьютер.
Читайте также: