Zadania domowe – Perl 4 (Tablice asocjacyjne oraz funkcje tablicowe)

Transkrypt

Zadania domowe – Perl 4 (Tablice asocjacyjne oraz funkcje tablicowe)
Zadania domowe – Perl 4 (Tablice asocjacyjne oraz funkcje
tablicowe)
Gotowe zadanie domowe należy przesłać na adres [email protected] . Należy dołączyć
wszystkie pliki potrzebne do poprawnego wyświetlenia wraz z krótkim komentarzem do każdego
zadania.
Proszę umieścić w mailu Imię, Nazwisko, Specjalizację i Rok.
Termin złożenia zadania domowego to 07.12.2008. Rozwiązania przysłane po tym terminie będą
punktowane odpowiednio niżej. Tym razem można otrzymać 20 punktów za rozwiązania.
Zadanie PERL 4.1 (Obowiązkowe!)
Przeczytać ze zrozumieniem rozdział piąty oraz podrozdział 15.4 o sortowaniu z książki Randal L.
Schwartz i Tom Phoenix, Learning Perl. Większość pojawiła się w skrócie na wykładzie.
Zadanie PERL 4.2
Napisać program, który wczytuje dowolny plik tekstowy z wejścia standardowego i zapisuje go na
wyjściu standardowym tak, aby powtarzające się wiersze zostały wydrukowane tylko raz.
Oryginalna kolejność wierszy nie musi być zachowana. Nie korzystać z funkcji map.
Wskazówka: Korzystać z hasza.
Punkty: 2
Zmodyfikować program tak, aby wyświetlał za każdym wierszem liczbę wystąpień danego wiersza.
Punkty: +2
Zadanie PERL 4.3
Jak wyżej, ale należy korzystać z funkcji map.
Punkty: 2
Zmodyfikować program tak, aby wyświetlał za każdym wierszem liczbę wystąpień danego wiersza.
Punkty: +2
Zadanie PERL 4.4
Napisać program taki jak w zadaniu PERL 4.2, ale tym razem bez wykorzystania haszy. I tutaj
oryginalna kolejność wierszy nie musi być zachowana.
Wskazówka: Zastanowić się, w jaki sposób są układane wiersze o tej samej treści, gdy
porządkujemy wiersze alfabetycznie?
Punkty: 2
Zmodyfikować program tak, aby wyświetlał za każdym wierszem liczbę wystąpień danego wiersza.
Punkty: +2
Zadanie PERL 4.5
Napisać program taki jak w zadania PERL 4.2. Można wykorzystać hasze, jednak tym razem należy
zachować oryginalną kolejność wierszy. W przypadku wierszy powtarzających się, mają się one
pojawić na wyjściu standardowym w tym miejscu, gdzie pojawiłyby się po raz pierwszy, gdybyśmy
nie usuwali następnych wystąpień. Program nie musi informować o liczbie wystąpień danego
wiersza.
Punkty: 2
Zastanowić się, jak należałoby napisać taki program, aby obsługiwał pliki o dużej ilości wierszy.
Czy jest konieczne, aby w haszu znajdowały się wszystkie wiersze pliku wejściowego?
Napisać taką zoptymalizowaną wersje programu.
Punkty: +2
Zadanie PERL 4.6
Napisać program, który „tłumaczy” dany polski rzeczownik na język angielski. Ograniczyć się do
np. 10-ciu wybranych rzeczowników.
Punkty: 2
Rozszerzyć program tak, by wczytał listę rzeczowników z pliku tekstowego. Zakładamy, że jeszcze
nie potrafimy dzielić wierszy na segmenty. W jakiej kolejności należy umieścić wyrazy źródłowe i
ich tłumaczenia w pliku?
Punkty: +2
Zadanie PERL 4.7
Zmodyfikować program z zadania PERL 2.3 lub PERL 3.3 tak, aby sprawdzał, czy podany
przymiotnik, jest przymiotnikiem nieregularnym w dotychczasowym znaczeniu. Jeśli podany
przymiotnik znajdzie się w liście przymiotników nieregularnych, należy wyświetlić komunikat, że
program nie może stopniować danego przymiotnika i odmienić tylko formę w stopniu równym.
Zakładamy, że lista przymiotników nieregularnych jest dana, przymiotnikami nieregularnymi to np.
gut, hoch, alt itd.
Punkty: 4
Zmodyfikować program tak, aby lista przymiotników nieregularnych były wczytywana z pliku
tekstowego.
Punkty: +4