Projekty

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() i max() 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

  1. Liczby są odkładane na stos.
  2. Operatory pobierają wymagane operandy ze stosu, wykonują działanie i odkładają wynik.
  3. Funkcje pobierają najpierw liczbę argumentów, a następnie same argumenty.

Projekt jest przykładem zastosowania klasycznych struktur danych (stos) w praktycznym problemie algorytmicznym.