Код: Выделить всё
program Project2;
const
MAX = 25;
type
TArray = array [1..MAX] of string;
procedure Delemited(var Arr : TArray; str : string; var last : integer);
var
i : integer;
sub : string;
begin
if str = '' then
exit;
str := str + ' ';
for I := 1 to length(str) do
if ((str[i] in ['A'..'Z']) or (str[i] in ['a'..'z']) or (str[i] in ['1'..'9'])) then
sub := sub + str[i]
else
if sub <> '' then
if last > MAX then
exit
else
begin
arr[last] := sub;
inc(last);
sub := '';
end;
end;
procedure ReadFile(var s : string);
var
fname, tmp : string;
result : integer;
txt : text;
begin
repeat
writeln ('Enter file name:');
writeln('Files: dom.txt,news.txt');
Write('>> ');
readln(fname);
assign(Txt, fname);
{$I-}
reset(Txt);
{$I+}
Result := IOResult;
if result <> 0 then
writeln('ERROR!');
until result = 0;
writeln('text:');
while not eof(Txt) do
begin
Readln(Txt, tmp);
writeln(tmp);
tmp := tmp + ' ';
s := s + tmp;
end;
Close(Txt);
end;
procedure Swap(var Arr : TArray; pos1, pos2 : integer);
var
tmp : string;
begin
tmp := arr[pos1];
arr[pos1] := arr[pos2];
arr[pos2] := tmp;
end;
var
s : string;
cel, k : integer;
a : TArray;
twosort : boolean;
i, j : integer;
begin
cel := 1;
twosort := true;
ReadFile(s);
Delemited(a, s, cel);
writeLn('S kokogo slova sortiruem?');
readln(k);
if k > cel then
begin
k := cel;
twosort := false;
end;
for i := 1 to k - 1 do
for j:=1 to k - i do
if ord(a[j][1]) > ord(a[j+1][1]) then
swap(a, j, j + 1);
writeln('V porjadke vozrastanij');
for i := 1 to k do
writeln(a[i]);
if twosort then
begin
for i := k to cel - 1 do
for j := k + 1 to cel - i do
if ord(a[j][1]) < ord(a[j+1][1]) then
swap(a, j, j + 1);
writeln('V porjadke ubyvanija');
for i := k + 1 to cel - 1 do
writeln(a[i]);
end;
readln;
end.
Нп. методом пузырька. Програма читает данные(текст) с файла.как переделать програму , чтобы она была с
динамичесскиими структурами,списками.програму нужно сдать завтра :/
смогу заплатить.