1. [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).

  2. [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.

  3. [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.

  4. [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: 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.

  5. [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.