Czy ktoś mogłby mi pomóc w napisaniu programu, który sortuje elementy tablicy jednowymiarowej dwudziestoelementowej dowolną metodą. Dane do sortowania są losowe. Elementy tablicy przed sortowaniem muszę zapisac w pliku tekstowym tablica_1.txt, a posortowane – tablica_2.txt. Do wprowadzania danych, sortowania, drukowania i zapisywania w plikach danych z tablicy muszę zastosować procedury.
Przyznam szczerze, że kompletnie nie wiem jak się za to zabrac.
Bardzo proszę o w miarę łopatologiczne wskazówki.
-- 31 gru 2010, o 13:28 --
Kod: Zaznacz cały
program tablica;
uses crt;
var
tab:array[1..20] of integer;
i,j,k: integer;
begin
clrscr;
randomize;
for i:=1 to 20 do
begin
tab[i]:=random(100);
write(tab[i]:7);
end;
begin
writeln();
writeln('Liczby przed sortowaniem:');
for i := 1 to 20 do write(tab[i]);
for j := 1 to 20 - 1 do
for i := 1 to 20 - 1 do
if tab[i] > tab[i+1] then
begin
k:= tab[i];
tab[i]:=tab[i+1];
tab[i+1]:=k;
end;
writeln();
writeln('Liczby po sortowaniu:');
for i := 1 to 20
do write(tab[i]);
repeat until keypressed;
end;
end.
-- 31 gru 2010, o 15:59 --
Jakimś cudem udało mi się stwoerzyc coś takiego:
Kod: Zaznacz cały
program tablica;
uses crt;
var
plik:text;
tab:array[1..20] of integer;
i,j,k: integer;
begin
clrscr;
randomize;
assign(plik,'D:\pliktekstowy.txt');
rewrite(plik);
for i:=1 to 20 do
begin
tab[i]:=random(100);
writeln(plik,tab[i]);
write(tab[i]:7);
end;
close(plik);
begin
writeln();
writeln('Liczby przed sortowaniem:');
for i := 1 to 20 do write(tab[i]);
for j := 1 to 20 - 1 do
for i := 1 to 20 - 1 do
if tab[i] > tab[i+1] then
begin
k:= tab[i];
tab[i]:=tab[i+1];
tab[i+1]:=k;
end;
assign(plik,'D:\pliktekstowy2.txt');
rewrite(plik);
writeln();
writeln('Liczby po sortowaniu:');
for i := 1 to 20
do begin
writeln(plik,tab[i]);
write(tab[i]);
end;
close(plik);
readln;
end;
end.