Celem zadania jest napisanie programu, który, na podstawie tekstu odczytanego z pliku o nazwie podanej w linii poleceń, zbuduje listę zawierającą występujące w tym tekście słowa oraz liczbę ich wystąpień. Następnie w trybie interakcji z użytkownikiem program ma umożliwić sprawdzenie czy dane słowo występuje w tekście, a jeśli tak, wypisać je wraz z liczbą jego wystąpień.
Dane o słowach powinny być przechowywane w dynamicznie tworzonej liście. Jako słowa należy rozumieć ciągi liter, pozostałe znaki powinny być pomijane.
Program powinien podawać następujące informacje: po wczytaniu tekstu wyświetlić ogólną liczbę wszystkich słów w tekście oraz liczbę słów unikalnych (różnych), następnie po zapytaniu użytkownika o dane słowo wyświetlić informację czy takie słowo występuje, jeśli tak, to ile razy. Oprócz tego, obojętnie czy słowo zostanie znalezione, czy nie, liczbę porównań wykonanych przy przeszukiwaniu. Drugą opcją programu powinna być możliwość wypisania wszystkich słów w kolejności alfabetycznej.
Nazwę pliku z tekstem program będzie otrzymywał jako parametr
wywołania, po opcji -d, tzn.
./slownik1 -d tekst
W zadaniu dodatkowym należy przyjąć, że program może być wywoływany
z dodatkowym argumentem, będącym nazwą pliku z listą słów do
sprawdzenia. Jeśli tak się stanie, to program zamiast wchodzić
w tryb interaktywny, powinien wypisać listę wyników w postaci
slowo: wystepuje XXX razy, wykonano YYY porownan
slowo: nie wystepuje, wykonano YYY porownan
Podobnie jak w zadaniu z przetwarzaniem obrazów należy przyjąć, że nazwa - oznacza standardowe wejście.
program isalphatest(input,output); function isalpha(znak : integer):integer; external c; function strcmp(s1,s2 :string ):integer; external c; var s1,s2 : string; begin writeln(isalpha(ord('a'))); writeln(isalpha(ord('1'))); s1:='aar'; s1[4]:=chr(0); s2:='aax'; s2[4]:=chr(0); writeln(strcmp(s1,s2)); end.