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

Zadane: 6.06.2002, odbiór: 20.06.2002, 4 punkty.

Zad 15. (C)
---------------
Napisz program który wczyta zawartość plików podanych jako parametry w wierszu wywołania,
zapamięta ja w drzewie BST, a następnie będzie odpowiadał w jakich plikach wystąpiło zadane
słowo. 

Przykładowe wywołanie programu:
	  slowa  c:\autoexec.bat  c:\daen\program.txt  c:\home\spis.txt

Przykładowa sesja pracy z programem (odpowiedzi użytkownika otoczono znakami ><):

	Podaj słowo:  >Pascal<
	Słowo Pascal wystąpiło w plikach:
	 1) c:\dane\program.txt 
	 2) c:\autoexec.bat

	Podaj słowo:  >PL/1<
	Słowo PL/1 nie wystąpiło w żadnym pliku.

	Podaj słowo:  ><
	Czy na pewno chcesz skończyć pracę (T/N): >T<

	Dziękuję za współpracę.


Program powinien zawierać co najmniej moduł BST (pliki .c i .h), zwróć uwagę na interfejs tego modułu.

Ciekawsza wersja tego zadania polega na pozwoleniu na podawania w wierszu wywołania:
	- wzorców nazw plików (do odszukiwania pasujących plików można użyć funkcji findfirst, findnext),
	- opcji przeszukiwania podkatalogów.

W przypadku wykrycia błędów w nazwach plików program ma wypisać komunikat i może przerwać działanie.

Uwagi:
 - struktura węzła w drzewie BST:
	struct wezel{
		char* slowo;	                        /* lub char slowo[MAX]	*/
		struct elt *pliki ;                     /* elt to element listy, ten typ także trzeba zadeklarować */
		struct wezel *lsyn,*psyn ;
	};
 - do kopiowania napisów do pól listy/drzewa warto użyć strdup, kopiować należy z bufora (dużej tablicy znaków
   występującej w jednym egzamplarzu),
 - deklaracja slowo[MAX] jest znacznie mniej elastyczna, gdyż ogranicza z góry maksymalną długość słów (i ścieżek
   do plików w liście), może być użyta jako bezpieczniejsza, ale zalecane jest zastosowanie char*.

Uwagi stałe:
 - programy które nie dają się skompilować kompilatorami języka C _nie_ będą sprawdzane,
   niezależnie od tego czy kompilują się kompilatorami 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.