Skocz do zawartości

SORTOWANIE BOMBELKOWE Z PLIKU


pawlak89

Rekomendowane odpowiedzi

Mam takie zadanie na zaliczenie pierwszej klasy:

Napisz program (pascal) odczytujący z pliku tekstowego ciąg liczb, sortujący go, a następnie wyświetlający posortowany ciąg na ekranie.

 

No i mam duży problem. Bo napisać program sortujący to jest łatwo, ale jeśli ten program ma odczytywac cyfry z pliku to już jest trudniejsze.

 

to jest kod do programu sortującego metodą bombelkową:

var
i,n,b,c:integer;
tab:array[1..30] of integer;
pomoc:integer;

begin
writeln('Podaj ilość liczb');
readln(n);
writeln('Podawaj kolejno liczby');
for i:=1 to n do readln(tab[i]);

b:=0;
c:=1;
while c>0 do
begin
inc(B);
c:=0;
for i:=1 to n-b do
        begin
        if tab[i] > tab[i+1] then
                begin
                pomoc:=tab[i+1];
                tab[i+1]:=tab[i];
                tab[i]:=pomoc;
                incŠ;
                end;
        end;
end;
for i:=1 to n do
        write(tab[i],', ');
readln;
end.

 

 

 

a to do programu który wczytuje cyfry z pliku:

USES CRT; 

VAR
t:text;
a:char; 

BEGIN
clrscr;
assign(t, 'c:\plik1.txt');
reset(t);
REPEAT
read(t,a);
write(a);
UNTIL EOF(t);
close(t);
readln;
END.

 

No i teraz najtrudniejsze zadanie. Jak to połączyć, żeby program czytał cyfry z pliku i wyświetlał je już posortowane od najmniejszej do największej. Prosze o pomoc. Z góry dziękuje.

 

Używaj znacznika [ code ].

Marmot

Odnośnik do komentarza
Udostępnij na innych stronach

Na szybko wymyślone:

uses crt;
var
i,n,b,c:integer;
tab:array[1..99] of integer;
pomoc:integer;

begin
clrscr;
assign(t, 'c:\plik1.txt');
reset(t);
REPEAT
read(t,a);
n:=a;
tab[a]:=t;
UNTIL EOF(t);
close(t);
b:=0;
c:=1;
while c>0 do
begin
inc(B);
c:=0;
for i:=1 to n-b do
begin
if tab[i] > tab[i+1] then
begin
pomoc:=tab[i+1];
tab[i+1]:=tab[i];
tab[i]:=pomoc;
inc(c);
end;
end;
end;
for i:=1 to n do
write(tab[i],', ');
readln;
end.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...