Lista 10 (3 stycznia 2006): 10 punktów.

Przeczytaj z książki B.W.Kernighana i D.M.Ritchiego Język ANSI C rozdział 7: Wejście i wyjście.

  1. (2 punkty) Napisz program, który wczyta nazwę pliku tekstowego, a następnie wypisze jego zawartość, o ile plik istnieje, na standardowym wyjściu. Plik należy napierw otworzyć do czytania, potem przeczytać go linia po linii, a na końcu zamknąć. Jeśli linia jest dłuższa niż 79 znaków, to pozostałe znaki w tej linii należy zignorować.
    Uwaga: Należy korzystać tylko z funkcji standardowych zadeklarowanych w pliku nagłówkowym <stdio.h>.
    Wskazówka: Posłuż się funkcją fgets().
  2. (3 punkty) Napisz program, który wczyta nazwę pliku tekstowego, a następnie zapisze w nim 1000 pierwszych liczb pierwszych (2, 3, 5, 7, ...). Plik należy napierw otworzyć do pisania, potem zapisać w nim tysiąc liczb (każda w osobnej linii), a na końcu zamknąć.
    Uwaga: Należy korzystać tylko z funkcji standardowych zadeklarowanych w pliku nagłówkowym <stdio.h>.
    Wskazówka: Zaprogramuj sito Eratostenesa.
  3. (5 punktów) W tekstowym pliku z danymi jest zapisanych N liczb rzeczywistych a1, ..., aN. Format pliku z danymi jest taki, że w pierwszej linii jest zapisana liczba całkowita N typu int, a w kolejnych liniach pooddzielane białymi znakami wartości rzeczywiste a1, ..., aN typu double. Należy te liczby odczytać, zapamiętując je równocześnie w dynamicznie przydzielonej tablicy. Na koniec trzeba je zapisać do pliku binarnego (bez wartości N na początku) i zwolnić przydzieloną pamięć.
    Uwaga: Należy korzystać tylko z funkcji standardowych zadeklarowanych w pliku nagłówkowym <stdio.h>.
  4. (5 punktów, kontynuacja poprzedniego zadania) W binarnym pliku z danymi jest zapisane są liczby typu double. Określ ile tych liczb jest zapisanych w pliku, przydziel dynamicznie odpowiedni obszar pamięci i wczytaj je tam. Następnie policz średnią arytmetyczną i odchylenie standardowe i wypisz te wielkości na standardowym wyjściu. Na końcu zwolnij przydzieloną pamięć.
    Uwaga: Należy korzystać tylko z funkcji standardowych zadeklarowanych w pliku nagłówkowym <stdio.h>.
    Uwaga: W celu określenia ilości zapisanych w pliku binarnym danych posłuż się funkcjami fseek() i ftell().