Компьютер - машина. Процессор - кусок кремния.
Вот ты создал переменную. Как ты будешь ее использовать в коде? Ведь ее надо не только создать, ее надо использовать. А это значит, что код должен знать заранее обо всех этих переменных (ведь код динамически не изменяется). Получается, либо все эти переменные должны быть созданы заранее, либо программа изначально знает, что существует массив переменных, и знает количество его элементов, которое может меняться. В любом случае, переменная не может быть просто "создана", т.к. будет невозможно ее обрабатывать. Может быть только добавлена новая в какой-то существующий контейнер (массив, список, ...).
Если это не понятно, стоит сначала поиграть с более простыми вещами. Чтобы разобраться, как вообще это железо работает.
Для твоей архитектуры калькулятора решение может быть таким - при нажатии каждой операции мы читаем значение, сохраняем операцию, и добавляем структуру вида
Код:
record
value: real;
operation: int;
end;
в список таких структур. Когда нажали "=" - перебираем все элементы списка и производим операции.
Но сразу виден недостаток: все операции выполняются "в лоб", даже если приоритет второй выше первой (к примеру 1 + 3 * 4). Получается, что если мы добавили операцию, то все, что было нажато раньше уже может быть посчитано, т.к. более никогда не будет изменено и порядок всегда одинаков. А если так - зачем вообще городить списки и структуры, когда можно при нажатии на любую операцию сразу ее производить? К примеру (пишу ввод юзера и что делает при этом прога):
стартовые значения: результат - 0, операция - "+", временная переменная - 0.
Ввод:
- - в этот момент "-" в текущую операцию
1 - сохраняем во временную переменную
+ - в этот момент 1 вычитается из результата (т.к. текущая операция - "-"), а + - в текущую операцию.
2 - сохраняем во временную переменную
- - в этот момент 2 добавляется к результату (т.к. текущая операция - +), а "-" кладем в текущую операцию.
5 - сохраняем во временную переменную
= - в этот момент 5 вычитается из результата (т.к. текущая операция - "-"), а т.к. нажато =, завершаем вычисления.
Получили: -1+2-5=, что равносильно 0-1+2-5=.
Однако для калькулятора лучше сразу почитать хотя бы про "обратную польскую запись" - позволяет и сложные арифметические выражения записать (не только +/-), и относительно удобно рассчитывать.