Да се напише програма, която да работи като калкулатор за счетоводители – да позволява следното:
- да се въведе едно число – първи операнд
- после знак за операция (+ – * / )
- после следващо число – втори операнд
- след което да се изведе резултатът
Той става първи операнд за следващата операция, така че след него се въвежда знак за операция и ново число, после се извежда резултата и така нататък. Програмата да поддържа и следните функции, въвеждани като операции:
- C – „забравя“ първия операнд и позволява следващото въведено число да стане пръв операнд
- M – запомня резултата в памет; позволява наново да се въведе операция
- A – прибавя резултата към този в паметта; позволява наново да се въведе операция
- R – указва, че съхраненото в паметта ще се ползва за операнд; позволява наново да се въведе операция, после за втори неин операнд ползва съхраненото в паметта.
Обяснението звучи сложно. На практика програмата трябва да прави онова, което прави и един обикновен калкулатор. Например:
102 + 24 = 427 + 53 = 480
… и така нататък
Някакво подобие на калкулатор :)
Доста добро подобие, бих казал – поздравления!
Не виждам какво мога да добавя по него, освен може би, че може да се поработи малко по извеждането, за да стане съвсем използваем конзолен калкулатор. Например може съдържанието на паметта винаги да се вижда в някаква дясна колконка, на една и съща позиция. Тогава човек винаги ще знае колко има натрупано и запомнено там. Така ще стане дори по-добър от традиционните калкулатори :-)
Друго, което може да се направи, за да прилича още повече на традиционните е, ако след извеждане на резултат вместо операция направо се въведе ново число, да се приема все едно досегания резултат се игнорира и започваме нова сметка (операцията C при нас). Това може да стане ако анализираш знака за операция и ако той е цифра, прилагаш операция C и добавяш цифрата като най-старша към числото след нея :-)