WSWZ — Laboratorium – perl
Transkrypt
WSWZ — Laboratorium – perl
WSWZ — Laboratorium – perl Jarosław Piersa 2014-01-14 Zadanie 1 (tradycyjne) Napisz skrypt, który się przywita z użytkownikiem (Hello World, print). Zadanie 2 Napisz skrypt, wczyta dwie liczby całkowite a i b, i obliczy sumę kwadratów liczb pomiędzy a i b (do wykorzystania: for). Zadanie 3 Napisz skrypt, który czyta plik ./dane.txt i wypisuje jego zawartość (do wykorzystania: uchwyty plików). Zadanie 4 Napisz skrypt, który do pliku ./wynik.txt zapisuje kopię zawartości pliku ./dane.txt. Zadanie 5 Napisz skrypt, który tworzy plik ./obrazek.svg i renderuje w nim dziesięć prostokątów stycznych wierzchołkami. <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="800px" height="600px" > <!-- tu definicje prostokatow, jeden po drugim --> <rect width="200" height="100" x="50" y="20" fill="rgb(0,0,255)" stroke-width="1" stroke="rgb(0,0,0)"/> <!-- koniec definicji prostokatow --> </svg> Zadanie 7 (patrz kolokwium) Robot startuje w puncie (0,0), czyta instrukcje z pliku (zadane jako argument wywołania) i zgodnie z nimi podąża w lewo, w prawo, do góry lub do dołu poruszając się o określoną liczbę kroków. Napisz skrypt, który czyta plik z instrukcjami i generuje plik svg z narysowaną trasą ruchu robota. http://www.w3.org/TR/SVG11/ Zadanie 8 Napisz skrypt, który sprawdzi czy podane argumenty programu są plikami w systemie (do wykorzystania: ARGV). 1 Zadanie 9 Napisz skrypt, który przeczyta plik tekstowy policzy ile w pliku jest różnych wystąpień słów. Na koniec skrypt powinien wyświetlić słowa wraz z liczbą wystąpień (do wykorzystania: tablice hashowane). Zadanie 10 Napisz skrypt, który na podstawie pliku z logami (lub na ultrze60: last) wygeneruje raport: dla każdego użytkownika ile razy dany użytkownik logował się danego dnia tygodnia (poniedziałek, wtorek, środa...). Zadanie Domowe — translator Napisz skrypt w perlu, który będzie prostym (by nie rzec: prymitywnym) tłumaczem tekstu z języka polskiego na angielski (lub w drugą stronę, wybór języka jest dowolny, ale wskazane aby składał się przede wszystkim z liter łacińskich). Słownik wg którego dokonywane jest tłumaczenie jest przechowywany w pliku ./slownik.txt i zawiera linia po linii słowo w języku polskim, spację, słowo w języku angielskim (wskazane dołączyć swój własny słownik). Skrypt przetwarza plik tekstowy podany jako pierwszy argument wywołania, tłumaczy go prostym zastępowaniem słów przez ich odpowiedniki i wypisuje rezultat na ekran. (można dołączyć własne pliki tekstowe). Proszę przewidzieć sytuację gdy słowa nie ma w słowniku. Zadanie Domowe — Prawie trójkąt Pascala Napisz skrypt w perlu, który wykona następujący algorytm: 1. rozważmy tablicę dwuwymiarową max na max elementów tab 2. pierwszy wiersz tab wygląda: (1, 0, ..., 0) 3. dla wierszy i = 2..max obliczamy i-ty wiersz tab: • pierwszy element wiersza jest równy jeden • dla pozostałych j: niech s jest sumą elementów j-tego i (j − 1)-go wiersza poprzedniego (tzn.: (ten, co stoi nad nim + ten, co stoi nad nim i na lewo) ) • j-ty element = s mod 2 • Zauważ, że bez dodania „mod 2” byłby to tradycyjny trójkąt Pascala. Zauważ, że w tablicy są tylko zera i jedynki 4. skrypt wyrenderuje plik svg rozmiarze (max + 1) × (max + 1) i nazwie ./WSWZ zad18 Nazwisko Imie.svg 5. jeżeli na współrzędnych (i, j) w tablicy stoi wartość 1, to wydrukuje w danym miejscu mały prostokąt 1 × 1 (lub dla lepszego efektu — trójkąt prostokątny), jeżeli stoi wartość 0, to nie wydrukuje nic. 6. zadanie da się wykonać wykorzystując tylko dwie tablice 1 × max (zamiast max × max), a nawet jedną tablicę 1 × max (a nawet i bez tablic, ale wtedy jest trochę trudniej...) i − 1, j − 1 i − 1, j i, j − 1 i, j 2