• Nie Znaleziono Wyników

Lista 2.

N/A
N/A
Protected

Academic year: 2021

Share "Lista 2."

Copied!
1
0
0

Pełen tekst

(1)

13 października 2017

Kurs języka Python

Lista 2.

Zadanie 1. Zaprogramuj klasę Wyrazenie wraz z odpowiednimi podklasami reprezentującymi rózne rodzaje wyrażeń arytmetycznych. Przykładowo, wyrażenie

(x + 2) * y

może być reprezentowane jako

Razy(Dodaj(Zmienna("x"), Stala(2)), Zmienna("y"))

gdzie Razy, Zmienna czy Stala są odpowiednimi podklasami klasy Wyrazenie. Zaprogramuj w każdej klasie metodę oblicz(self, zmienne), która oblicza wartość wyrażenia; przy czym argument zmienne przechowuje informacje o tym, jakie wartości mają odpowiednie zmienne.

Zaprogramuj własne wyjątki reagujące na niepoprawne sytuacje, np. dzielenie przez zero czy brak przypisania wartości zmiennej.

Wymagane jest, aby były zdefiniowane stałe, zmienne i podstawowe działania arytmetyczne.

Następnie w podobny sposób zaprogramuj hierarchię klas reprezentującą prosty język programowania z instrukcją przypisania do zmiennej, instrukcją warunkową i pętlą. Możesz przyjąć, że wyrażenie równe zero interpretujemy jako fałsz, a prawdę w przeciwnym przypadku. W każdej z tych klas zaprogramuj metodę wykonaj(self, zmienne) wykonującą instrukcje.

We wszystkich powyższych klasach zaprogramuj metodę __str__ zwracającą jako string ładnie sformatowane wyrażenie bądź program.

Zadanie 2. Zaprogramuj klasę Formula wraz odpowiednimi podklasami, które będą reprezentować formuły zdaniowe. Przykładowo

x =⇒ (y ∧ true) może być przedstawione jako

Impl(Zmienna("x"), And(Zmienna("y"), True())

Zaprogramuj w każdej klasie metodę oblicz(self, zmienne), która oblicza war-tość wyrażenia; przy czym argument zmienne przechowuje informacje o tym, jakie wartości mają odpowiednie zmienne.

Zaprogramuj funkcję, która sprawdza, czy podana formuła jest tautologią. We wszystkich klasach zaprogramuj metodę __str__ zwracającą jako string ładnie sformatowane wyrażenie.

Każde zadanie jest warte 5 punktów. Na pracowni do oceny należy przedstawić jedno zadanie.

Cytaty

Powiązane dokumenty

W przypadku funkcji kopiujących założyć, że wskaźnik docelowy wskazuje na zarezerwowany wy- starczająco duży obszar

4’.13 Znajdź wartość oczekiwaną pola prostokąta, którego obwód jest równy 20, a jeden bok jest zmienną losową X o rozkładzie jednostajnym na [1,

Na skutek tego, po pominięciu pionowych słupków, histogram daje się bardzo dobrze opisać przez wyrysowaną krzywą

Obliczyć średnią arytmetyczną tych czterech liczb dla dowolnej wartości liczby a.. Czas na wykonanie

Obliczyć średnią arytmetyczną tych czterech liczb dla dowolnej wartości

Sieci przekonań są zwykle w naturalny sposób zwarte, ponieważ zwykle tylko niewielka liczba zmiennych losowych, spośród być może wielkiej ich liczby, wpływa na każdą

Na przykład, dla sieci o n = 20 węzłach, w której maksymalna liczba zależności dla węzłów wynosi k = 5, dla zmiennych binarnych tablice CPT dla węzłów będą miały maksymalnie

nie mają nazwy – dostęp do takich zmiennych możliwy jest jedynie poprzez ich adres w pamięci (poprzez zmienne wskaźnikowe),... Zmienne