Infix to Postfix (ONP)
1. O projekcie
Kalkulator działający w wierszu poleceń, napisany w języku C++, służący do konwersji wyrażeń matematycznych z notacji infiksowej (klasycznej) na odwrotną notację polską (ONP/RPN). Program nie tylko konwertuje wyrażenia, ale również oblicza ich wartość, prezentując proces krok po kroku.
2. Kluczowe Funkcje
- Konwersja Infiks -> ONP: Zamiana standardowego zapisu matematycznego na notację postfiksową.
- Obsługa Liczb Zmiennoprzecinkowych: W przeciwieństwie do wielu prostych implementacji, ten program obsługuje liczby dziesiętne (np. 3.5, 4.2).
- Podstawowe Operacje: Dodawanie, odejmowanie, mnożenie, dzielenie.
- Funkcje Wbudowane: Obsługa funkcji
min()imax()ze zmienną liczbą argumentów. - Wsparcie dla Nawiasów: Poprawna obsługa zagnieżdżonych nawiasów i kolejności wykonywania działań.
- Podgląd Obliczeń: Wyświetlanie szczegółowych kroków obliczeń (idealne do celów edukacyjnych).
3. Implementacja Techniczna
Stos Operatorów
Algorytm wykorzystuje podejście oparte na stosie do parsowania wyrażeń. Priorytety operatorów:
- Mnożenie i dzielenie: priorytet 2
- Dodawanie i odejmowanie: priorytet 1
Kodowanie Funkcji
Unikalną cechą projektu jest sposób obsługi funkcji min i max.
Podczas parsowania liczba argumentów funkcji jest zakodowana i przechowywana na stosie, co pozwala
na
elastyczne obliczanie wartości dla dowolnej liczby parametrów.
Algorytm Obliczania
- Liczby są odkładane na stos.
- Operatory pobierają wymagane operandy ze stosu, wykonują działanie i odkładają wynik.
- Funkcje pobierają najpierw liczbę argumentów, a następnie same argumenty.
Projekt jest przykładem zastosowania klasycznych struktur danych (stos) w praktycznym problemie algorytmicznym.