# Zadania domowe 1. z Programowania w Pythonie (2016Z); 21.11.2016 # ## Zadanie 1 ## Wkładamy pewną kwotę w lokatę bankową, oprocentowaną według zasady procentu składanego z kapitalizacją comiesięczną. To znaczy, jeśli roczna stopa oprocentowania wynosi `p`, to kwota lokaty powiększana jest z upływem każdego miesiąca o `p/12` procent, i ta powiększona kwota podlega oprocentowaniu w kolejnym miesiącu. Jednak w momencie rozwiązania lokaty wypłacana kwota pomniejszana jest o podatek dochodowy, wynoszący `b` procent od zysku depozytariusza (niezależnie od czasu trwania lokaty). Napisać funkcję `zysk(n, p=5, b=19)` obliczającą całkowitą stopę zysku netto w procentach w przypadku, gdy lokata ulega rozwiązaniu po `n` miesiącach. Blok główny programu powinien wypisywać linijka po linijce wartości stopy zysku dla kolejnych wartości `n`, aż do pierwszej wartości, dla której zysk netto przekroczy 50%. ## Zadanie 2 ## Piszemy program, zawierający dwie funkcje: `CdoF(temp)` oraz `FdoC(temp)`, które przeliczają odpowiednio temperaturę (`temp` - liczba całkowita) wyrażoną w stopniach Celsjusza na stopnie Fahrenheita, i odwrotnie. Blok główny programu (wykonywany, w przypadku gdy plik jest uruchamiany jako program główny) wykonuje odpowiednie przeliczenie dla każdego argumentu podanego w linii poleceń (może być ich podanych kilka w jednym wywołaniu, jeden po drugim): jeżeli argument zakończony jest literą `C` - przelicza stopnie w skali Celsjusza na stopnie Fahrenheita, jeżeli zakończony jest literą `F` - przelicza stopnie Fahrenheita na stopnie Celsjusza, jeżeli nie zachodzi żaden z powyższych przypadków - wypisuje komunikat "? nie wiem o co chodzi". Przykład uruchomienia: $ ./konwtemp.py 212F -40C 37C 0K 212F = 100.0C -40C = -40.0F 37C = 98.6F 0K ? nie wiem o co chodzi.. ## Zadanie 3 ## Napisać program, który zamienia liczby całkowite na słowa, zgodnie z zasadami języka polskiego: $ ./liczebniki.py 0 -7 13 69 321 -999 0: zero -7: minus siedem 13: trzynaście 69: sześćdziesiąt dziewięć 321: zadużo -999: minus zadużo Niech program umie odczytać liczby do (+/-) 199 włącznie. ## Zadanie 4 ## Stworzyć histogram długości linii w zadanym pliku tekstowym (np. `/usr/share/dict/words`). Dokładniej, napisać program który: - przejrzy treść zadanego pliku i podliczy ile linii o dlugości 1, 2, 3, ... itd. w tym pliku występuje; - wynik przedstawi graficznie w postaci ciągu słupków poziomych o dlugości proporcjonalnej do liczby znalezionych linii o danej długości - podanej na początku odp. linii. Linijka z najdłuższym słupkiem powinna wypełniać typową szerokość okna terminalowego (80 znaków), tak by żadna linijka się nie ,,zawijała". Przykład: 1: ****************** 2: ************ 3: ****************************************** 4: *************************** ## Zadanie 5 ## Przeglądając plik tekstowy linijka po linijce, znaleźć w nim takie linijki, które zawierają największą liczbę różnych znaków, i wypisać tę liczbę oraz treść tych linijek, w kolejności w jakiej występują w pliku. Przykład: $ ./naj_znakow.py /usr/share/dict/words 15 cinematography's comprehensibility's oversimplification's unpredictability's ## Zadanie 6 ## Napisz program, który - używając gwiazdek i spacji - wypisze w oknie terminala następujący wzór (tu: `n = 5`): * * * * * Wartość `n` pobierana jest z standardowego wejścia po uprzednim zapytaniu.