Metody Programowania - Lista 4
 Zadanie 1 
Napisać funkcję w Pop11 która mając zadaną listę liczb całkowitch:
-  obliczy ich sumę
-  znajdzie wartość elementu maksymalnego (ma zwracać liczbę, dla
listy pustej 0)
-  powiększy każdą z liczb na liście o 1 (zmieniamy wartosci na
starej liście)
-  wyprodukuje nową listę z liczb z listy źródłowej powiększonych o 1
(zachowując kolejność)
-  wyprodukuje listę liczb z listy zródłowej podzielnych przez 3
Uwaga: Listy odwraca wbudowana funkcja 'rev' (robiąc kopię) i 'ncrev'
(modyfikując listę). Zadanie 2 
Napisać funkcję w Pop11 która mając zadane dwie listy liczb
całkowitch równej długości:
-  wyprodukuje listę par odpowiadjących sobie liczb na obu listach.
Każda para ma być reprezentowana przez listę dwuelementową.
-  wyprodukuje listę sum odpowiadjących sobie liczb na obu listach
Uwaga1: instrucja for postaci 'for el1, el2 in list1, list2 do ...'
pozwala na równoczesną iterację po dwu listach.
Uwaga2: proste rozwiązanie buduje listę wynikową w odwrotnej kolejności
i używa 'ncrev'.
 Zadanie 3 
Napisać funkcję w Pop11 która mając dane dwie uporządkowane niemalejąco
listy liczb całkowitch połączy je w nową listę na której są wszystkie
liczby (z uwzględnieniem krotności) z list źródłowych w porządku
niemalejącym.  Jeśli dana liczba
występuje n razy na pierwszej liście i k razy na drugiej to ma
wystąpić n+k razy na liście wynikowej.
 Zadanie 4 
Napisać funkcję w Pop11 która mając daną listę liczb, słów i przecinków
podzieli ją na odcinki oddzielone przecinkami.  Każdy odcinek to lista,
wynik to lista list. Np:
[, 1 , 2 3 ala , 4]
ma dać
[[] [1] [2 3 ala] [4]]
Uwaga: Technicznie przecinek to też słowo, trzeba testować czy element
listy jest równy ",".
 Zadanie 5 
Napisać funkcję która mając dane listę (a właściwie drzewo) reprezentujące
wyrażenie logiczne i listę wartości zmiennych obliczy wartość tego wyrażenia
dla tych zmiennych. Np.
wartość_l([and x1 [or x2 x3]], [[x1 true] [x2 false] [x3 true]])
Tzn. wyrażenie jest listą która ma dwa argumenty, będące zmiennymi lub
wyrażeniami. "and" oznacza iloczyn logiczny, "or" sumę logiczną, "not"
negację (dla uproszczenia można pominąć inne operatory).
 Zadanie 6 
Napisać funkcję w Pop11 która mając dane drzewo wyrażenia arytmetycznego
takie jak akceptuje  program przykładowy 
obliczy:
-  ilość wystąpień stałych w tym wyrażeniu
-  ilość wystąpień zmiennych w tym wyrażeniu
-  ilość wystąpień operatorów w tym wyrażeniu
 Zadanie 7 
Napisać funkcję która mając dane drzewo wyrażenia arytmetycznego
takiego jak w wyżej, wyprodukuje listę argumentów i wartości
w postaci odwrotnej polskiej (tzn. tak że najpierw mamy listę
odpowiadającą pierwszemu argumentowi, potem drugiemu a na końcu
operator).
Uwaga: jak zwykle, wygodnie budować listę w odwrotnej kolejności
a potem odwracać.
 Zadanie 8 
Napisać funkcję która mając dane drzewo, reprezentowane jako lista
której elemntani są atomy (liczby i słowa) oraz podrzewa (czyli listy)
"spłaszczy" je, tzn wypodukuje listę wszystkich atomów, zachowując ich
kolejność przy wypisywaniu. np:
[[[ala 1] [] 2 [3 4]] [ma 5 6] [[kota 7] 8]]
ma dać
[ala 1 2 3 4 ma 5 6 kota 7 8]