Kolokwium poprawkowe 2 :!

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa
Czas delty:
2018-09-23 01:03:42
-odśwież-

Przeczytaj UWAŻNIE

Odpowiedz na zebrane poniżej zadania, zaznaczając numer pytania, na które odpowiadasz. Odpowiedzi wyślij mailem do prowadzącego zajęcia, umieszczając w tytule następujące informacje: [zboj2] [grupa N] Imie Nazwisko gdzie N jest numerem twojej grupy. Przestrzegaj limitu czasu pisania. Na rozwiązanie zadań masz dokładnie 120 minut. Pytania nie są podchwytliwe i możesz rozwiązać tyle z nich, ile chcesz. Brana pod uwagę będzie taka liczba poprawnie rozwiązanych zadań, aby wyrównać Twoją ocenę do 3.0.

Zadania dla grupy 'z'

  1. Porównaj działanie modyfikatorów /m oraz /s w operatorach dopasowania wzorca.
  2. Opracuj wyrażenie regularne które z dowolnego dokumentu HTML zwróci jedynie listę użytych w tym dokumencie otwierających tagów HTML (bez nawiasów kątowych). Przypadki np. <br /> także można uznać za otwierające. Przykład: z tagów <html><head><meta ... /><body...><p ...><br /></p></body...> ma powstać lista: html head meta body p br.
  3. Użyj mechanizmu wyrażeń regularnych, aby wydobyć drugie słowo z drugiego zdania tekstu, który znajduje się w zmiennej $tekst i ma długość w znakach przekraczającą tysiące znaków. Tekst ten zawiera więcej niż dwa zdania, i posiada wyłącznie znaki które należą do klasy znakowej [\w\s.,].
  4. Czym różni się działanie polecenia tr/a-z/A-Z/ od polecenia s/a-z/A-Z/?.
  5. Jak działa modyfikator /cg w operatorach dopasowania wzorca?
  6. Wyjaśnij, czym różni się use od require.
  7. Do czego służy moduł Exporter? Wyjaśnij przynajmniej jedno z jego zastosowań i podeprzyj je stosownym przykładem.
  8. Za pomocą debuggera perlowego znajdź przynajmniej jeden błąd w programie przedstawionym poniżej i podaj polecenia, których użyłeś. Wyjaśnij też na czym polega błąd. #!/usr/bin/perl -wl my $u = 11; sub A { my $a = 2; $u += $a; print "A: $u"; &B; } sub B { my $a = shift; $u -= $a+1; print "B: $u"; &A if $u > 0; } A(1);
  9. Wskaż które i wyjaśnij dlaczego, wywołanie konstruktora jest najbardziej poprawne: my $obj = new Object(); my $obj = Object::->new(); my $obj = Object->new();
  10. Stwórz iterator, który zwraca kolejne liczby będące elementami ciągu Fibonacciego, zaczynając od n-tego elementu, gdzie n jest podane jako argument przy tworzeniu iteratora. Użyj techniki domknięć.
  11. W jaki sposób odróżnić wywołanie metody klasy od wywołania metody instancji?
  12. W jaki sposób wywołać metodę obiektową tak, aby nie została ona wywołana jak metoda obiektowa, ale jak zwykła procedura perla?
  13. W jaki sposób w klasie perla przechować dane statyczne (być może prywatne dla klasy), nie należące do danych instancji?
  14. Czym różni się zapis our @ISA = qw(Moduł); od zapisu use base qw(Moduł);?
  15. Wyjaśnij, w jaki sposób sprawdzić, czy dana zmienna skalarna należy do klasy Stupid oraz jak upewnić się, że klasa ta implementuje metodę cure.
  16. Czy klasa może dziedziczyć po sobie samej?
  17. Opisz zachowanie perla w przypadku wywołania nazwy funkcji, która nie została nigdzie zdefiniowana.
  18. W jaki sposób można zdefiniować metody akcesorów i mutatorów klasy, nie pisząc ich explicite w kodzie? Zaproponuj przynajmniej jedną technikę :)
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa - Perl - Kolokwia
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.