Zadanie zaliczeniowe z laboratorium Pascala i C. ZSI I. 01/02
-------------------------------------------------------------

Zadane: 22-23.05.2002, odbiór: 29.05, 6..06.2002, 2 punkty.

Zad 14. (C)
---------------
Dany jest typ
  typedef struct{
     char   ch;      /* Kolejny znak wiadomości */
     int      nast;   /* Numer następnej struktury */
  } rekord;

  Plik dane.dat zawiera "zaszyfrowaną"  wiadomość. Poszczególne znaki tej wiadomości są
zapisane w strukturach o zanwie rekord (pole ch). Pola nast zawierają numer (w pliku)
_struktury_ zawierającej kolejny znak. -1 oznacza, że nie ma następnego znaku.
Struktury są numerowane od 0. Numer struktury zawierającej pierwszy znak jest zapisany
jako liczba typu int na początku pliku. Zatem plik ma postać

  | int |  struktura nr 0 | struktura nr 1 | ....  | struktura nr n |

Poszczególne znaki wiadomości należy wypisywać na ekran funkcją putchar.(c) lub
putc(c, stdout). Należy wypisać zasyfrowaną wiadomość na ekranie. 

Uwagi techniczne:
1) Pliki należy otwierać w trybie binarnym (sprawdź, że w trybie
   tekstowym nie da się prawidłowo odczytać wiadomości).
2) W opcjach kompilatora należy wybrać Word Alignment (sprawdź, że
   po skompilowaniu z Byte Alignment program nie odczytuje wiadomości).
3) Dostęp bezpośrdni do pliku zapewnia operacja:
     int fseek(FILE* stream, long ofset, int origin)
    gdzie origin może mieć jedną z 3 wartości:
          SEEK_SET,  SEEK_CUR lub SEEK_END.
4) Należy używać operatora sizeof, zamiast liczb oznaczających rozmiary 
typów danych.


Uwagi stałe:
 - programy nie kompilujące się kompilatorami języka C _nie_ będą sprawdzane,
   niezależnie od tego czy kompilują się kompilatormai C++ (dotyczy to
   _także_ komentarzy //, których nie ma w C),
 - pamiętaj, że pliki źródłowe w C mają rozszerzenie .c (a nie .cpp), użycie
   innego rozszerzenie może spowodować wywołanie kompilatora C++ a nie C,
 - pamiętaj o zwolnieniu pamięci (!!!),
 - pamiętaj o włączeniu _wszelkich_ dostępnych ostrzeżeń kompilatora.