Stos
- Stos — koncepcja, rozważania implementacyjne.
- Ćwiczenie: proszę zaimplementować stos z (1) wykorzystaniem dynamicznie alokowanej tablicy oraz (2) listy. Następnie proszę przeprowadzić następujące eksperymenty:
- Maksymalny stos: jaki największy stos można utworzyć z wykorzystaniem reprezentacji tablicowej a jaki z wykorzystaniem listy? Proszę napisać odpowiedni program automatyzujący eksperyment.
- Efektywność operacji na stosie Bazując na wynikach powyższego testu proszę wyznaczyć czas zapełniania (do rozmiaru maksymalnego) i czyszczenia stosu. Proszę napisać odpowiedni program automatyzujący eksperyment.
Proszę wybrać język programowania, przy czym taki, który umożliwia obie implementacje stosu — tablicową i listową. Kody obu implementacji stosu oraz programów testowych oraz krótki raport zawierający informację o konfiguracji komputera testowego oraz uzyskane wyniki proszę przesłać emailem na adres roman(at)siminskionline.pl. Jeżeli wybrany język programowania posiada w bibliotekach obiektową implementację stosu, proszę dołączyć do eksperymentów również tę implementację, jako 3-cią wersję realizacji stosu.
ONP
- Odrotna notacja polska — przykładowe algorytmy związane z odwrotną notacja polską, pseudokody oraz przykłady w języku C++.
- Ćwiczenie: proszę zaimplementować kalkulator realizujący łączone operacje arytmetyczne, również z wykorzystaniem nawiasów. Kalkulator powinien wykorzystywać ONP i stos do realizacji obliczeń. Aplikacja może być zrealizowana w dowolnym języku programowania i dowolnym środowisku. Minimum operacji (ocena dst) to dodawanie, odejmowanie, dzielenie, mnożenie i potęgowanie (uwaga na łączność lewo i prawostronną). Każde rozszerzenie (logarytmy, funkcje trygonometryczne itp.) pozwolą na uzyskanie wyższej oceny. Kod źródłowy (bez binariów) proszę spakować i wysłać na adres roman(at)siminskionline.pl.
- Prymitywna wersja demo kalkulatora dwuargumentowego, bez ONP dostępna jest tutaj, spakowany projekt C++ Builder 6. Prezentuje w jaki sposób zmieniać format wyprowadzanego wyniku (notacja wykładnicza i notacja z przecinkiem), prezentuje wykorzystanie obiektów klasy TCheckBox, TComboBox, ukrywanie/pokazywanie elementów interfejsu, wykorzystanie obsługi zdarzenia FormCreate i inicjowanie elementów interfejsu z poziomu kodu programu, kopiowanie tekstu do schowka.