Zestaw z dn. 14
Transkrypt
Zestaw z dn. 14
Zestaw 1 Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła programów (pliki o rozszerzeniach .py)!!! 1. Zdefiniować moduł Lancuchy zawierający funkcję najczestszyZnak zwracającą znak występujący w łańcuchu podanym jako parametr najwięcej razy (w przypadku gdy takich znaków jest kilka zwracany jest pierwszy z nich, natomiast gdy łańcuch wejściowy jest pusty zgłaszany jest wyjątek ValueError). Napisać program odczytujący plik tekstowy input.txt i w każdej linii tego pliku wyszukujący znak, który występuje w niej najczęściej (znak końca linii jest pomijany). Program tworzy nowy plik output.txt zawierający w kolejnych liniach znaki występujące najczęściej w odpowiadających (tj. tych samych w kolejności, licząc od początku) liniach pliku wejściowego. Dla pustych linii pliku wejściowego odpowiadające im linie pliku wyjściowego też powinny być puste. Program musi wykorzystać w/w funkcję z modułu Lancuchy i obsłużyć wyjątek zgłaszany przez tę funkcję. Dla pliku input.txt postaci: Ala ma kota bcdef powinien powstać następujący plik output.txt: a b 2. Zdefiniować moduł Ciagi zawierający następujące funkcje operujące na listach liczb rzeczywistych: • sredniaArytmetyczna – zwracającą średnią arytmetyczną wartości listy będącej parametrem (w przypadku pustej listy zgłaszany jest wyjątek ValueError); • mocnyCiag – zwracającą N-elementowy (N>0 jest parametrem) ciągły fragment listy podanej jako parametr, który ma największą średnią arytmetyczną spośród wszystkich fragmentów tej długości (w przypadku gdy jest kilka takich ciągów o maksymalnej średniej, zwracany jest ostatni z nich, natomiast gdy N nie jest dodatnia lub przekracza długość listy wejściowej zgłaszany jest wyjątek ValueError); do wyznaczania średniej fragmentów funkcja musi wykorzystywać funkcję sredniaArytmetyczna; Napisać program pobierający od użytkownika listę liczb rzeczywistych o dowolnej długości (o zakończeniu podawania wartości decyduje użytkownik), a następnie pozwalający użytkownikowi wielokrotnie podawać liczbę całkowitą oznaczającą zadany rozmiar szukanego fragmentu wejściowej listy o największej średniej. Podanie rozmiaru 0 kończy program. Dla każdego zadanego rozmiaru program wyświetla ten rozmiar i po dwukropku szukany fragment listy lub komunikat o braku takiego fragmentu. Program korzysta w tym celu z funkcji mocnyCiag z modułu Ciagi i musi obsłużyć wyjątek zgłaszany przez tę funkcję. Przykładowo dla listy: 1 -5.5 3 -7 4.3 0 5 -2.1 8 3.6 program generuje następujące wyniki dla kolejno podawanych rozmiarów fragmentów: 3: 5 -2.1 8 11: brak 2: 8 3.6 5: 4.3 0 5 -2.1 8 -2: brak 1: 8 Zestaw 2 Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła programów (pliki o rozszerzeniach .py)!!! 1. Zdefiniować moduł Wyrazy zawierający funkcję ilePodzielnych zwracającą informację ile wyrazów w liście łańcuchów podanej jako parametr ma długość podzielną przez K będącą drugim parametrem (w przypadku gdy K=0 zgłaszany jest wyjątek ZeroDivisionError). Napisać program odczytujący plik tekstowy input.txt z wyrazami oddzielonymi pojedynczymi spacjami i dla każdej linii tego pliku liczący wyrazy o długości podzielnej przez wartość podaną przez użytkownika. Program tworzy nowy plik output.txt zawierający w kolejnych liniach liczby szukanych wyrazów w odpowiadających (tj. tych samych w kolejności, licząc od początku) liniach pliku wejściowego. Program musi wykorzystać w/w funkcję z modułu Wyrazy i obsłużyć wyjątek zgłaszany przez tę funkcję. Dla wartości 2 podanej przez użytkownika i pliku input.txt postaci: Ala ma kota i trzy psy abc i efghi powinien powstać następujący plik output.txt: 3 0 0 2. Zdefiniować moduł Liczby zawierający następujące funkcje operujące na liczbach rzeczywistych: • czyBliskie – zwracającą informację czy dwie liczby podane jako parametry są oddalone od siebie maksymalnie o E będące trzecim parametrem funkcji (w przypadku ujemnego E zgłaszany jest wyjątek ValueError); • ciagOdleglych – zwracającą najdłuższy ciągły fragment listy podanej jako parametr, w którym każdy element poza pierwszym ma wartość oddaloną od poprzedniego o więcej niż E będącą kolejnym parametrem (w przypadku gdy jest kilka takich ciągów, zwracany jest pierwszy z nich, natomiast gdy E jest ujemna zgłaszany jest wyjątek ValueError); do wyznaczania odległości wartości listy funkcja musi wykorzystywać funkcję czyBliskie; Napisać program pobierający od użytkownika listę liczb rzeczywistych o dowolnej długości (o zakończeniu podawania wartości decyduje użytkownik), a następnie pozwalający użytkownikowi wielokrotnie podawać liczbę całkowitą oznaczającą minimalną odległość wartości szukanego fragmentu wejściowej listy. Podanie rozmiaru 0 kończy program. Dla każdej zadanej wartości program wyświetla ją i po dwukropku najdłuższy fragment listy o kolejnych wartościach odległych o więcej niż ta wartość (lub komunikat o braku takiego fragmentu). Program korzysta w tym celu z funkcji ciagOdleglych z modułu Liczby i musi obsłużyć wyjątek zgłaszany przez tę funkcję. Przykładowo dla listy: 1 -5.5 3 -7 4.3 0 5 -2.1 8 3.6 program generuje następujące wyniki dla kolejno podawanych rozmiarów fragmentów: 5: 1 -5.5 3 -7 4.3 15: brak 9: 3 -7 4.3 3: 1 -5.5 3 -7 4.3 0 5 -2.1 8 3.6 -2: brak 11: -7 4.3 Zestaw 3 Organizacja plików: Wszystkie pliki oddawane do sprawdzenia należy zapisać we wspólnym folderze o nazwie będącej numerem indeksu, umieszczonym na pulpicie. Oddajemy tylko źródła programów (pliki o rozszerzeniach .py)!!! 1. Zdefiniować moduł Napisy zawierający funkcję DlugoscNajdluzszego zwracającą długość najdłuższego wyrazu (rozumianego jako ciąg znaków nie zawierający spacji) w łańcuchu znaków podanym jako parametr (w przypadku gdy wejściowy łańcuch jest pusty zgłaszany jest wyjątek ValueError). Napisać program pobierający od użytkownika liczbę całkowitą K (K>0), a następnie odczytujący plik tekstowy input.txt zawierający wyrazy oddzielone pojedynczymi spacjami i dla każdej linii tego pliku sprawdzający czy długość najdłuższego wyrazu w tej linii przekracza K. Program tworzy nowy plik output.txt zawierający w kolejnych liniach informacje czy najdłuższe wyrazy w odpowiadających (tj. tych samych w kolejności, licząc od początku) liniach pliku wejściowego są dłuższe od K, a jeśli tak – jaką mają długość. Dla pustych linii pliku wejściowego odpowiadające im linie pliku wyjściowego też powinny być puste. Program musi wykorzystać w/w funkcję z modułu Napisy i obsłużyć wyjątek zgłaszany przez tę funkcję. Dla pliku input.txt postaci: Ala ma kota kolokwium i K=5 powinien powstać następujący plik output.txt: nie tak, 9 2. Zdefiniować moduł Liczby zawierający następujące funkcje operujące na liczbach całkowitych: • czyPodzielne – o dwóch parametrach liczbowych A i B, zwracającą informację czy któraś z tych liczb jest podzielna przez drugą (tj. A przez B lub B przez A). W przypadku A=B=0 funkcja ma zgłaszać wyjątek ZeroDivisionError; • ciagPodzielnych – zwracającą najdłuższy ciągły fragment listy podanej jako parametr, w którym każda para sąsiednich elementów zawiera liczby podzielne: pierwsza przez drugą lub druga przez pierwszą (w przypadku gdy jest kilka takich ciągów, zwracany jest pierwszy z nich, natomiast gdy lista wejściowa ma mniej niż dwa elementy zgłaszany jest wyjątek ValueError, a gdy złożona jest z samych zer – ZeroDivisionError); do sprawdzania podzielności elementów listy funkcja musi wykorzystywać funkcję czyPodzielne; Napisać program umożliwiający wielokrotne pobieranie od użytkownika listy liczb całkowitych o dowolnej długości (o zakończeniu podawania wartości do danej listy oraz o zakończeniu wprowadzania list decyduje użytkownik) i wypisujący dla każdej z nich: wprowadzoną listę oraz najdłuższy ciąg wartości tej listy, w którym każda para sąsiednich elementów zawiera liczby podzielne: pierwsza przez drugą lub druga przez pierwszą. Program korzysta w tym celu z funkcji ciagPodzielnych z modułu Liczby i musi obsłużyć wyjątki zgłaszane przez tę funkcję. Przykładowo dla podanych niżej list program generuje wyniki (dla ułatwienia ciągi podzielnych elementów zostały podkreślone): lista: lista: lista: lista: lista: 1 1 3 0 2 2 4 -2 7 5 0 0 0 5 ciąg: 1 2 4 -2 1 0 7 12 9 6 3 -3 0 8 5 7 11 12 -1 8 ciąg: 6 3 -3 0 8 ciąg: brak 0 0 0 ciąg: brak 4 -2 6 -12 ciąg: 2 4 -2 6 -12