Segregacja słów

Segregacja słów

Program: Segregujący wpisane słowa w kolejności alfabetycznej.

Słowa są zczytywane z pliku tekstowego > przepisywane do zdefiniowanej tablicy, a następnie segregowane (plik wejściowy – “tekst.txt”).

Kompilator: Turbo Pascal

Galeria:

Program w akcji.

Kod programu:

program alfabetycznie;
uses crt;
var
        sciezka, s, m, tekst1, tekst2 : String;
        F : Text;
        tablica : Array[1..91] of String;
        i, j, l, koniec, koniec1 : Integer;
begin
        clrscr;
        sciezka:= 'tekst.txt';
        Assign(F, sciezka);
        Reset(F);
        while not eof(F) do
        begin
                for i:= 1 to 91 do
                begin
                        ReadLn(F, s);
                        tablica[i]:= s;
                end;
        end;
        close(F);
        repeat
        koniec:= 0;
        for i:= 91 downto 2 do
        begin
                koniec1:= 0;
                if Length(tablica[i]) < Length(tablica[i - 1]) then
                begin
                        m:= tablica[i];
                        tablica[i]:= tablica[i - 1];
                        tablica[i - 1]:= m;
                        koniec:= koniec + 1;
                end;
        end;
        until koniec = 0;
        repeat
        koniec:= 0;
        FOR i:= 2 TO 91 DO
        begin
                if Length(tablica[i]) = Length(tablica[i - 1]) then
                begin
                        tekst1:= tablica[i];
                        tekst2:= tablica[i - 1];
                        for j:= 1 to Length(tablica[i]) do
                        begin
                                if ord(upcase(tekst1[j])) < ord(upcase(tekst2[j])) then
                                begin
                                        koniec1:= koniec1 + 1;
                                end;
                        end;
                end;
                if koniec1 > 0 then
                begin
                        m:= tablica[i];
                        tablica[i]:= tablica[i - 1];
                        tablica[i - 1]:= m;
                        koniec:= koniec + 1;
                end;
        end;
        until koniec = 0;
        for i:= 1 TO 91 do Write(tablica[i], ' ');
        ReadKey;
end.