12.07.2015 Views

C++ - VideoTutorials-bg.com

C++ - VideoTutorials-bg.com

C++ - VideoTutorials-bg.com

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

В този случай, рекурсивното дефиниране на функцията факториел не еподходящо, тъй като съществува лесно итеративно решение.Препоръка: Ако за решаването на някаква задача може да се използваитеративен алгоритъм, реализирайте го. Не се препоръчва винагиизползването на рекурсия, тъй като това води до загуба на памет ивреме.В тази глава няма да спазим препоръката, тъй като целта ни епридобиване на умения за рекурсивно дефиниране на функции.Задача 86. Да се напише програма, която въвежда от клавиатуратазаписана без грешка формула от вида ::= |() ::= + | - | * ::= 0 | 1 | 2 | ...| 9.Програмата да намира и извежда стойността на въведената формула(Например 8 --> 8; ((2-6)*4) --> -16).Програма Zad86.cpp решава задачата. В нея е дефинирана рекурсивнатафункция formula, реализираща рекурсивната дефиниция на . Щеотбележим, че случаите на оператора switch не завършват с оператораbreak;. Това е така заради използването на оператора return в края навсеки случай.// Program Zad86.cpp#include int formula();int main(){cout c;// c е ‘(‘ или цифра// ::= 7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!