ZPO 2015: Platforma e.uksw.edu.pl

Od teraz powinny być już dostępne zajęcia laboratoryjne ZPO na platformie https://e.uksw.edu.pl (proszę sprawdzić) i od najbliższych zajęć wszystkie zaliczone zadania powinny być tam wysyłane. Aby mieć łatwy dostęp do swoich programów napisanych na zajęciach nr 1, proszę aby wszyscy, którzy nadal mają dostęp do tych programów (np. wysyłali rozwiązania jako załącznik do maila i zachowali kopie wysłanych maili), wysłali te pliki teraz, tj. jeszcze przed zajęciami nr 2, jako rozwiązania z zajęć nr 1 (odpowiednio poziom I i II).

ZPO 2015 lab. 2: hint

Zadanie za 3 pkt. będzie dotyczyło programowania z wykorzystaniem wyjątków.
Będzie polegało m.in. na zaimplementowaniu algorytmu obliczania wartości wyrażeń arytmetycznych zapisanych w postaci odwrotnej notacji polskiej, który wygląda następująco:

  1. Analizuj wyrażenie po jednym elemencie (stałej lub operatorze).
  2. Jeśli ten element jest:
    1. stałą – dopisz go na stos;
    2. operatorem – zdejmij ze stosu właściwą dla danego operatora liczbę argumentów, wykonaj na nich obliczenia, uzyskany wynik dopisz na stos;
  3. Jeśli badane wyrażenie
    1. nie zostało wyczerpane – wróć do punktu pierwszego;
    2. zostało wyczerpane – wartość znajdująca się na stosie to wynik obliczeń.

Uwaga:
Pobierając dwie liczby, np. 2 i 3, wyrażenie wykonuje się w odwrotnej kolejności, czyli, np. 3 / 2.

Przykłady:
8 9 + jest równoważne: 9+8;
5 6 7- * jest równoważne (7-6)*5

Dlatego pomocą w skutecznej realizacji tego zadania może być opracowanie przed zajęciami funkcji, która wczytuje z pliku tekstowego pojedynczy wiersz zawierający wyrażenie arytmetyczne zapisane w tej notacji i oblicza jego wartość. Można przyjąć, że ostatnim znakiem istotnym na końcu każdego wiersza jest np. znak '#’, oznaczający koniec wyrażenia arytmetycznego. Wydruk takiego programu może przydać się na zajęciach i nie będzie zabroniony.

Zwracam uwagę, że dla funkcji atoi, obliczającej wartość liczby na podstawie jej reprezentacji tekstowej, istnieje jej tzw. bezpieczna, tj. posługująca się wyjątkami w celu uruchomienia obsługi błędów, wersja stoi. Warto w domu przećwiczyć jej działanie dla tekstów reprezentujących liczby zarówno w sposób poprawny jak i błędny.