Войти

Показать полную графическую версию : Ошыбка в коде


Wllladik
14-12-2011, 02:12
Паскаль, условие задачи такое, задан файл чисел его нужно отсортировать от найменьшего к найбольшему. Я сделал так, задается файл чисел но текстовый файл, потом переганяется он в масив и сортируется но проблема в том что масив текстовый и выходи что число 235 меньше 3 так как первый елемент 2 и он меньше 3. Как мне сделать чтоб сравнивало как полностю число? Вот сам код програмы
var f1,f2,f3:text;
i,j,n,b:integer;
st,a,buf:string;
mas:array[1..100] of string;
begin
assign(f1, '1.txt');
rewrite(f1);
writeln('vvedite chisla');
readln(a);
writeln(f1, a);
close(f1);
reset(f1);
n:=0;
assign(f3, '3.txt');
rewrite(f3);
while not eof (f1) do
begin
readln(f1, st);
for i:=1 to length(st) do
begin
if st[i]<>' ' then
begin
append(f3);
write(f3, st[i]);
end
else
begin
n:=n+1;
reset(f3);
readln(f3, st);
mas[n]:=st;
rewrite(f3);
close(f3);
end;
end;
end;

for j:=1 to n-1 do
begin
if mas[j]>mas[j+1] then
begin
buf:=mas[j];
mas[j]:=mas[j+1];
mas[j+1]:=buf;
end;
end;
assign(f2, '2.txt');
rewrite(f2);
for j:=1 to n do
begin
append(f2);
write(f2, mas[j],' ');
end;
close(f2);

reset(f1);
readln(f1, st);
writeln('Ischodnaja stroka');
writeln(st);
close(f1);

reset(f2);
readln(f2, st);
writeln('Posle sortirivky');
writeln(st);
close(f2);
readln;
end.
Если кто не понял то выполняй програму и задавай числа
6 9 77 45 12 33 0 2
получается
0 12 2 33 45 6 77 9
а должно быть
0 2 6 9 12 33 45 77
Как так сделать, подскажыте?

ferget
14-12-2011, 02:26
переводите строки в числа StrtoInt




© OSzone.net 2001-2012