program Sortowanie_tablicy_tekstowej;

{ Program napisany w czasie ćwiczeń z Podstaw Informatyki............}

const Nmax=1000; {maksymalna liczba wierszy w tablicy................}

var   TEKST: array[1..Nmax] of string[50]; {globalna tablica tekstowa}

      N    : word; {aktualna liczba wierszy w tablicy................}

 

procedure CzytajTekst(NazwaPliku:string);

var dsk : text;

begin

  assign(dsk,NazwaPliku);

  reset(dsk);

  N:=0;

  repeat

    inc(N);

    readln(dsk,TEKST[N]);

  until eof(dsk);

  close(dsk);

end;

 

procedure porownaj(k:word; var p:boolean);

{Porównanie k-tego elementu tablicy TEKST z elementem k+1}

var z:string;

begin

  if TEKST[k+1]<TEKST[k] then

  begin

    {jeżeli element "większy" ustawiony jest przed "mniejszym"}

    {to wykonywane jest przestawienie}

    z:=TEKST[k];

    TEKST[k]:=TEKST[k+1];

    TEKST[k+1]:=z;

    p:=true

  end

end;

 

procedure SortujTekst; {Sortowanie metodą bąbelkową}

var i,j:word;

    przestawienie:boolean;

begin

  i:=0; {Nr kolejnego sprawdzenia tablicy}

  repeat

    inc(i);

    przestawienie:=false;

    for j:=1 to N-i do porownaj(j,przestawienie);

  until not przestawienie;

end;

 

procedure ZapiszTekstPosortowany(NazwaPliku:string);

var j:word;

    dsk:text;

begin

  assign(dsk,NazwaPliku);

  rewrite(dsk);

  for j:=1 to N do writeln(dsk,TEKST[j]);

  close(dsk);

end;

 

begin

  CzytajTekst('Lista.txt');

  SortujTekst;

  ZapiszTekstPosortowany('Lista_P.txt');

end.

{Ten program sortuje globalną tablicę tekstową zgodnie z kolejnością  }

{wynikającą z kodów ASCII znaków.                                     }

{Pytanie:                                                             }

{Jak posortować tablicę aby kolejność zgodna była z polskim alfabetem?}

{Kody ASCII polskich znaków (CP 852 - Latin II) zawiera plik ASCII.pdf}