.
-
Jeżeli napis wejściowy zaczyna się znakiem ‘(’ a kończy się znakiem ‘)’ to obciąć oba.
-
Wyzerować zmienne liczba_nawiasów=0, Same_Cyfry=true
-
Pętla przeglądająca znaki napisu wejściowego START
-
Jeżeli kolejny znak jest nawiasem otwierającym Same_Cyfry=false; oraz zwiększ liczba_nawiasów
-
Jeżeli kolejny znak jest nawiasem zamykającym Same_Cyfry=false; oraz zmniejsz liczba_nawiasów i a jeżeli mniejsza niż zero to BŁĄD
-
Jeżeli kolejny znak jest znakiem operacji +,-,*,/ a liczba_nawiasów jest zerem to podziel w tym miejscu napis i wywołaj funkcje rekurencyjne fun(od lewej części) operacja fun(od prawej części) i zwróć wynik.
-
Jeżeli kolejny znak nie jest cyfrą to Same_Cyfry=false;
-
Koniec pętli.
-
Jeżeli Same_Cyfry to skonwertuj napis na liczbę i zwłócz ją
-
BŁĄD
.
#include
using namespace std;
int main()
{
//tutaj cały algorytm obliczeń
return 0;
}
Idąc w myśl z forum 4programmers, NIKT NIE JEST NA TYLE NAIWNY, BY NAPISAĆ ZA CIEBIE CAŁY PROGRAM, CZYLI ODROBIĆ ZA CIEBIE (W KOŃCU TO TY DOSTAŁES) ZADANIE DOMOWE, zacznij pisać, spytaj o konkretny problem przedstawiając swój kod, a na pewno ktoś pomoże.
Swoją drogą, możesz poszukać rozwiązań, jakie stosowane są w kalkulatorach wysokiej klasy, a wymyślonych przez Polaków, czyli Odwrotnej Notacji Polskiej (onp), w tedy kalkulator poradzi sobie ze wszystkim, szukaj w Google “onp +c++”
Niestety nie masz racji, z odwrotną polską notacją będzie pewien problem a mianowicie uwzględnia priorytety operacji, a w zadaniu ma nie uwzględniać.
Priorytetów uwzględniać nie trzeba, ale można. Równie dobrze można użyć konwersji na ONP.
Przecież ziołkowski właśnie o tym pisał. Masz racje nie doczytałem że można jednak uwzględniać.
Pamiętam też kiedyś, że jak przeglądałem przykładowy rozdział tej książki (która jest jeszcze w przygotowaniu) to natrafiłem się właśnie na taki program