Našel jsem velmi přehledně zpracovaný úvod do Pascalu i s příklady, při programování doporučuji
mít otevřené http://pascal.webz.cz/kurs/index.html

Program na analýzu textu

program An_textu;
uses crt;

const max_pocet=maxint;                                         //maximální počet slov

var file_in, file_out : text;                                   //proměnné pro vstupní a výstupní soubor
    slova_pole : array [0..max_pocet] of string [25];           //vektor načtených slov
    pocet : integer;
    M : string; //mezipamet                                     //mezipaměť pro sežazení slov

Procedure Nacteni_textu;                                        //Procedura pro načtení textu do programu
 var index : integer;
     znak : char;
     prvek : string;                                            

 begin
  assign(file_in,'C:\FreePascal\text.txt');                     //načítá soubor umístěný ve složce C:\FreePascal
  reset(file_in);                                               //otevírá soubor

  index := 0;

  repeat                                                        //cyklus pro načtení 
   if eoln(file_in)                                             //pokud natazím na konec řádku
    then readln(file_in,znak)                                   //tak načti řádek(slovo) i s enterem do proměnné znak
    else read(file_in,znak);                                    //jinak načti řádek(slovo) bez enteru do proměnné znak

   if (znak in [' ',',','.','"','-']) and (prvek <> '')         //pokud znak obsahuje něco z uvedených a prvek je různý od ničeho
    then                                                        //tak
     begin
      slova_pole[index]:= prvek;                                //
      prvek:='';
      index:=index+1;
     end;

   if not (znak in [' ',',','.','"','-'])
    then prvek:=prvek+znak;

  until eof(file_in);

  pocet:= index;
 end;

Procedure Zobrazeni;
 var i:integer;
 begin
  for i:=0 to Pocet do writeln (Slova_pole[i]);
 end;

Procedure Serazeni;
var w:integer; //citac
    i, nej :integer;
    max: string;
 begin
   w:=1;
  repeat
   nej:=  w;
   max:=slova_pole[w];
   for i:=w to max_pocet do
    begin
     if slova_pole[i]>max then
      begin
       max:=slova_pole[i];
       nej:=i;
      end;
    end; //urcen nejvetsi
   M:=slova_pole[w];
   slova_pole[w]:=slova_pole[nej];
   slova_pole[nej]:=M;
   w:=w+1;
 until w=max_pocet;

 end;

procedure vypis;
 var w,i:integer;
 begin
  assign(file_out,'c:\FreePascal\out.txt');
  Rewrite(file_out);
  w:=1;
  for i:=max_pocet downto 1 do
   begin
    if slova_pole[i]=slova_pole[i-1]
     then w:=w+1
     else
      begin
       write(file_out,w); write(file_out,'x ');
       writeln(file_out,slova_pole[i]);
       w:=1;
      end
   end;
  Close(file_out);

 end;


begin
 clrscr;
 Nacteni_textu;
// Zobrazeni;
 Close(file_in);
 Serazeni;
 vypis;
 readln;
end.













Vít Bednář