Tablice i listy wielowymiarowe

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa

Perl: programowanie - Tablice i listy wielowymiarowe

Tablice

  1. Zdefiniuj strukturę w postaci: @TABLICA = ( [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ], );
    1. Sprawdź, co jest wypisywane gdy:
      • użyjesz polecenia print @TABLICA;
      • użyjesz polecenia print '@TABLICA';
      • użyjesz polecenia print "@TABLICA";
      • użyjesz polecenia print "@TABLICA\n";
      • użyjesz polecenia print q/@TABLICA\n/;
      • użyjesz polecenia print q"@TABLICA\n";
      • użyjesz polecenia print qq/@TABLICA\n/;
      • użyjesz polecenia print qq"@TABLICA\n";
      • użyjesz polecenia print qq#@TABLICA\n#;
      • użyjesz polecenia print qq~@TABLICA\n~;
      • użyjesz polecenia print qq!@TABLICA\n!;
      • użyjesz polecenia print qq@@TABLICA@;
      • użyjesz polecenia print qq$@TABLICA\n$;
      • użyjesz polecenia print qq%@TABLICA\n%;
      Sprawdź także działanie innych ograniczników.
    2. Używając pętli for wypisz wszystkie elementy tablicy.
    3. Używając pętli foreach wypisz wszystkie elementy tablicy.
    4. Oblicz sumę wszystkich elementów tablicy.
  2. Napisz program do dodawania, odejmowania i mnożenia macierzy. Odpowiednie tablice możesz zdefiniować wprost w programie, ale byłoby lepiej, gdybyś umożliwił ich wczytanie.
  3. Napisz program, który wczytuje ze standardowego wejścia wiersze, które umieszcza w tablicy. Następnie wypisz wszystkie wiersze w odwrotnej kolejności.
  4. Opracuj program, który wypisuje statystykę tekstu: to znaczy, liczy ile jest wierszy, oraz ile jest znaków. Jeżeli czujesz się na siłach, możesz spróbować napisać także zliczanie słów (to już może wymagać zastosowania technik dopasowania wzorca, których nie omawialiśmy na tym etapie; możliwe są również inne karkołomne ewolucje).
  5. Zdefiniuj w programie trzy tablice jednowymiarowe o nazwach @X, @Y i @Z, a następnie:
    • Do każdej z tablic wpisz trzy liczby rzeczywiste.
    • Połącz tablice X, Y i Z tak, aby otrzymać jedną długą tablicę.
    • Połącz w nową tablicę tylko ostatnie elementy z tablic X, Y i Z.
    • Zrób trzy-elementową tablicę, z sumami elementów z każdej tablicy X, Y i Z.
    • Potraktuj tablice X, Y i Z jak tablice, które zawierają jedną ze współrzędnych [x,y,z]. Scal współrzędne w jedną tablicę, tak, aby każdy jej element był wektorem 3-elementowym [x,y,z].
    • Oblicz odległości w przestrzeni pomiędzy punktami otrzymanymi w poprzednim rozwiązaniu.

Tablice i Tablice asocjacyjne - wielopoziomowo

  1. Wypisz dane osób w dwóch listach. W pierwszej zastosuj układ imię nazwisko, a w drugiej liście odwrotnie. Wykorzystaj jako źródło danych tablicę pokazaną poniżej. %LUDZIE = ( 'Enrico' => 'Fermi', 'Richard' => 'Feymann', 'Michael' => 'Faraday', 'Albert' => 'Einstein', );
  2. W poprzednim zadaniu wszystkie imiona i nazwiska pisane były prawidłowo z wielkiej litery. Możesz zmodyfikować program, aby wczytywał odpowiednie dane z klawiatury, dokonywał korekty i wypisywał dane jak jego poprzednik.
  3. Wklep do programu następującą strukturę danych: %HASH = ( zadania => { 1 => { opis => 'Zadanie pierwsze', tresc => 'Dodaj dwa do dwoch', oceny => { Zenon => 2.0, Stachu => 3.5, Zyndek => 2.1, Zdzich => 3.2, }, }, 12 => { opis => 'Podchwytliwe zadanie dla killerow', tresc => 'Ile jest zer w liczbie 1e2?', oceny => { Zenon => 1.0, Stachu => 1.0, Zyndek => 1.0, Zdzich => 1.0, }, }, 5 => { opis => 'Zadanie proste jak zwoj drutu', tresc => 'Odejmij dwa od dwoch i zobacz ile zostalo', oceny => { Zenon => 2.0, Stachu => 2.5, Zyndek => 3.3, Zdzich => 4.0, }, }, }, ); Pokazano tylko przykład. Samodzielnie dodaj jeszcze kilka opisów zadań, możesz także dodać więcej studentów/uczniów. Możesz nawet wystawić im lepsze oceny, chociaż nie jest to zalecane.
  4. Wypisz następnie następujące informacje:
    • Listę wszystkich zadań z ich numerami.
    • Średnie oceny Zenona.
    • Globalną średnią ocen.
    • Nazwy zadań, których średnia ocena przewyższa średnią globalną.
  5. Znajdź w tablicy najlepszego ucznia.
  6. Znajdź w tablicy najtrudniejsze zadanie.
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa - Perl
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.