studenci.pl - program do podliczania wynikow studentow
[c]piotao, 0.1, 20070124 Pisane na potrzeby przedmiotu monograficznego Perl-programowanie http://piotao.math.univ.gda.pl/Perl/
Uruchom program piszac:
studenci.pl
program oblicza wyniki studentow na podstawie zawartej w nim na stale struktury danych w ktorej w tablicy przechowywane sa tablice. Tablice wewnetrzne zawieraja w pierwszym elemencie napis (imie i nazwisko studenta), a w kolejnych elementach wyniki studenta otrzymane w trakcie kolejnych kolokwiow. Kazdy ze studentow ma taka sama ilosc wynikow, brak jakiejs oceny jest sygnalizowany zerem, chociaz nie jest to konieczne.
Wyniki, ktore program generuje, to lista studentow razem z ich srednimi wynikami wyrazonymi w procentach.
Ilosc danych jest dla programu nieistotna (moze byc 10 studentow, moze byc i
1000, tego nigdzie nie okreslamy). Wazne jest to, aby elementow w tablicy
@maxy
bylo tyle samo, ile jest liczb podawanych w tablicy danych dla kazdego
studenta. Inne ilosci liczb nie spowoduja zalamania programu, ale wyniki
procentowe beda nieprawidlowo obliczane co do wartosci. Czyli:
@maxy = ( ... , ... , ... ) # jakies n-elementow
i potem w tabeli danych:
[ '...napis...' , ..., ..., ... ], # n-liczb po napisie
Jezeli student nie brak udzialu w zadnym kolokwium, jego oceny mozna nawet nie wpisywac, program policzy sume wynikow jako 0 wtedy i bedzie to zgodne z prawda. Dodatkowo, kolejnosc wynikow wpisana do tabeli nie ma znaczenia, gdyz wazna jest tylko ich suma.
Program wymaga modulu List::Util, ktory jest dolaczony do standardowej
dystrybucji perla w wersji 5.8.+. Z tego modulu wykorzystana jest funkcja
sum
. Zamiast niej wystarczy uzyc swojej funkcji, napisanej np. tak:
sub sum { my $sum = 0; map{ $sum += $_ } @_; return $sum; }
Oczywiscie wtedy nie nalezy poprzedzac jej przedrostkiem List::Util::
Piotr Arlukowicz, <piotao@math.univ.gda.pl>, http://piotao.math.univ.gda.pl/
Jezeli sa jakies, nalezy zglosic je do autora. Program nie jest do konca przetestowany i ma stanowic tylko ilustracje zagadnien zwiazanych z przetwarzaniem zlozonych struktur danych.