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}