- [4p.]
Obmyśl jakąś prostą funkcję jednej zmiennej, która Ci się podoba, typu:
"2*x**2 - 5*x + 3.5". Napisz skrypt awk, który wygeneruje 20
par <x,f(x)> dla losowo wygenerowanych wartości x. Zapisz te
pary na pliku, np. /tmp/dane1.txt przez skierowanie wyjścia
awk, po jednej parze w wierszu.
Zdefiniuj w gnuplocie pierwotną funkcję i wygeneruj jej wykres, łącznie z
wykresem przebiegu danych z pliku, z czytelną legendą i opisem osi.
Dopracuj wykres (np. przez dobór kolorów), aby widać było zarówno wykres
funkcji jak i wygenerowane punkty.
W raporcie podaj opracowane wyrażenia awk i gnuplota.
Uwaga na problemy z przecinkiem dziesiętnym w polskiej lokalizacji.
Najłatwiej jest pracować w lokalizacji POSIX (LC_NUMERIC=POSIX)
unikając problemów.
Uwaga2: ponieważ w tym zastosowaniu awk nie będzie przetwarzał
żadnych danych, w wyrażeniu należy użyć warunku specjalnego BEGIN (lub
END).
- [4p.]
Zdefiniuj funkcję jednej zmiennej z parametrami, typu:
"a*x**2 + b*x + c". Wykorzystując polecenie fit
gnuplota znajdź wartości a,b,c odpowiadające danym zapisanym
wcześniej do pliku za pomocą polecenia/skryptu awk podobnego do tego
z poprzedniego zadania. Polecenie fit ustawia wartości zmiennych
a,b,c na znalezione wartości optymalne. Można również wyświetlić te
wartości poleceniem print gnuplota.
Następnie zmodyfikuj skrypt awk, aby wygenerował dane z minimalnie
losowo zaburzonymi wartościami y. Ponownie użyj polecenia
fit aby znaleźć nowe wartości parametrów a,b,c. Skonstruuj wykres
znalezionej funkcji łącznie z danymi z pliku (zaburzonymi).
W raporcie podaj komplet opracowanych wyrażeń awk i gnuplota,
pozwalający na wygenerowanie kompletnego wykresu ostatecznej wersji danych
(zaburzonych). Podaj również znalezione wartości parametrów, pierwotne
oraz po zaburzeniu.
- [4p.]
Zapoznaj się z dostarczonym plikiem danych meteorologicznych.
Za pomocą poleceń awk i programu uniq zbuduj zestaw danych
pozwalających na wygenerowanie histogramu temperatur zewnętrznych.
Wygeneruj gnuplotem ten histogram, z odpowiednią legendą.
Przećwicz poprawność generowania wykresu (opisy osi, czytelność) wybierając
różne okresy czasu z pliku danych: poszczególne dni, przedziały dni, itp.
Opracuj generowanie tych histogramów jako potoku poleceń shella, bez
jawnego tworzenia jakichkolwiek plików roboczych. Podaj opracowany potok
poleceń w raporcie.
Wskazówka: mocnym i często przydatnym idiomem generowania histogramu danych
jest sort|uniq -c.
- [4p.]
Do opracowanych poleceń generowania histogramów proszę dodać opcję
tworzenia wyników w postaci plików Postscript (grafika wektorowa) i dodać
możliwości łączenia programem psnup kilku wykresów w orientacji
poziomej (z tytułami) na jednej stronie A4:
- dwa wykresy w orientacji pionowej (temperatura wewnętrzna i zewnętrzna),
- cztery wykresy w orientacji poziomej (dodatkowo wilgotność wewnętrzna
i zewnętrzna),
- sześć wykresów w orientacji pionowej (dodatkowo prędkość i kierunek
wiatru, podany symbolicznie).
Ostateczny wynik należy przekonwertować na dokument typu PDF (ps2pdf).
Proszę upewnić się, że wykresy zawarte w tym pliku są w pełni wektorowe, tzn.
przy zmianie skali wyświetlania nie widać rastrów, tylko za każdym razem
grafikę we właściwej rozdzielczości ekranu.
W raporcie podaj wszystkie polecenia generowania wykresów łącznych.
- [4p.]
Zapoznaj się z poleceniem gnuplota plot newhistogram. Za
pomocą awk utwórz zestaw wymyślonych wyników testu dla grupy 60
studentów, którzy odpowiadali na 20 pytań tak/nie. To znaczy, będzie to
dokładnie 20 wierszy po cztery liczby w każdy wierszu: numer pytania,
liczba odpowiedzi poprawnych, liczba odpowiedzi niepoprawnych, i liczba
studentów, którzy nie odpowiedzieli na dane pytanie (suma ostatnich trzech
liczb wynosi 60). Użyj polecenia plot newhistogram aby wygenerować
histogram poprawności odpowiedzi na poszczególne pytania.
W raporcie podaj opracowany zestaw poleceń gnuplota.