Napisanie programu, który pozwoli wpisać użytkownikowi wyrażenie matematyczne, aby je obliczył i wypisał wynik na ekranie. Przykładowo dla 4 * 6 + 2 = otrzymamy:
Ze względu na fakt, że zapis może zawierać białe znaki, ale nie musi to dane będą początkowane interpretowane jako ciąg znaków, a dopiero potem program będzie szukał operatorów oraz liczb.
getChar() to funkcja pomocnicza, której działanie polega na pobraniu i usunięciu pierwszego znaku z wyrażenia. Pomoże to nam iterować każdy znak w wyrażeniu dokładnie raz. Jest ona używana przede wszystkim do usunięcia nawiasów z obliczanego wyrażenia.
Z kolei do pobierania liczby z łańcucha znaków służy funkcja retrieveNum(), której zadanie polega na pobieraniu liczby z łańcucha znaków. Jej działanie opiera się na fakcie, że cyfry są reprezentowane w tablicy ASCII od 48 do 57.
(2.) Przyjmij, że wczytana liczba to 0. (3. - 7.) W przypadku, gdy zostanie wykryty nawias to (4.) najpierw oblicz wyrażenie w nawiasie. (8.) Jednak, gdy wczytujesz liczby to (9.) dołączaj kolejne cyfry do zmiennej num dopóki (8.) wczytujesz cyfry. (11.) Na koniec zwróć zmienną num.
Ostatnia funkcja result() spaja cały kod w całość. Za argument przyjmujemy tu wprowadzony łańcuch znaków. Przyjmujemy aktualną wartość wyrażenia równą pierwszemu czynnikowi.
Następnie w pętli, aż do osiągnięcia znaku równości "=" lub do osiągnięcia długości 0 wprowadzonego wyrażenia sprawdzamy pierwszy znak, który będzie rozpoznany jako operator, a następnie przy użyciu funkcji switch określamy co ma zrobić program. Liczbę po operatorze otrzymujemy poprzez wywołanie funkcji retrieveNum().
Na sam koniec funkcja zwraca wartość numeryczną podanego wyrażenia. Takie rozwiązanie pozwala na rekurencyjne wywoływanie funkcji obliczającej co wykorzystujemy pzry obliczaniu wartości w nawiasach.
Poniższa funkcja main() wczytuje od użytkownika wyrażenie do obliczenia, a następnie oblicza jego wartość i wypisuje je na ekran.
Uwaga: Należy zauważyć, że program uwzględnia tylko podstawowe operatory i nie przestrzega zasad wykonywania działań.