В некотором бинарном файле записаны числа типа LongInt. Если в файле есть хотя бы одно число, начинающееся цифрой 1 и содержащее цифры 2 и 3, упорядочить файл по неубыванию. Имя исходного файла и имя упорядоченного файла программа должна получать через командную строку. Не использовать массивы и динамическую память.
жду помощи =)
Digitalator
23.07.2005 20:23
Цитата
упорядочить файл
Цитата
Не использовать массивы и динамическую память.
прикольно, наверное сначала нужно установить дополнительное охлаждение на винт.
mlc
23.07.2005 20:26
Сейчас Volvo опять в глаз даст
uses crt;
var f,f2:fileof longint;
b:boolean;
i,j,x,y:longint;
s:string;
begin
assign(f,paramstr(1)); reset(f);
assign(f2,paramstr(2)); rewrite(f2);
b:=false;
repeat
read(f,x); str(x,s);
if (s[1]='1') or (pos ('2',s)>0) or (pos('3',s)>0) then b:=true;
write(f2,x);
until eof(f);
if b thenbeginfor i:=0to filesize(f2)-1dofor j:=i+1to filesize(f2) dobegin
seek(f2,i); read(f2,x);
seek(f2,j); read(f2,y);
if x>y thenbegin
seek(f2,i); write (f2,y);
seek(f2,j); write (f2,x);
end;
end;
end;
close(f); close(f2);
end.
Катюша
24.07.2005 3:31
пасип огромное.. разберусь.. дополнительно
а компактненько как! =)))
volvo
25.07.2005 2:07
Цитата(Катюша @ 23.07.05 23:31)
а компактненько как! =)))
Компактненько, да неправильно Задание какое было?
Цитата(Катюша @ 23.07.05 15:56)
... Если в файле есть хотя бы одно число, начинающееся цифрой 1 и содержащее цифры 2 и 3, упорядочить файл по неубыванию...
Что имеем?
Цитата(mlc @ 23.07.05 16:26)
...
if (s[1]='1') or (pos ('2',s)>0) or (pos('3',s)>0) then b:=true;
...
Понимаешь о чем я? То что получилось - "начинающееся цифрой 1 или содержащее цифры 2 или 3" Аккуратнее надо условия читать ;)
mlc
25.07.2005 2:34
Цитата(volvo @ 24.07.05 22:07)
Компактненько, да неправильно Задание какое было? Аккуратнее надо условия читать ;)
Ааа, сорри, ты прав, посыпаю голову пеплом Как в воду глядел про глаз Ну ор на на анд поменяй.
[Offtop удален: мой ответ был здесь достаточное время, чтобы ты успел его прочитать...]
Катюша
26.07.2005 15:17
я нашла старую программу, писала ее почти 2 года назад.. показываю ее..
но она не совсем такая, как это условие..
но похожа.. хорошая прога?
uses crt,dos;
var f1,f2:fileof word;
function kratno11(x:word):boolean;
var sum:byte;
begin
kratno11:=false;
sum:=0;
while x>=10dobegin
sum:=sum+(x mod10);
x:=x div10;
end;
if (sum mod11=0) then kratno11:=true;
end;
var number,n1,n2,tmp:word;
boolNum:boolean;
i,j,k:longInt;
begin
clrscr;
if ParamCount<2thenbegin
textcolor(red);
writeln('‘Їа ўЄ :');
textcolor(white);
writeln('?¬п Ёбе(r)¤(r)Ј(r) д (c)« Ё Ё¬п гЇ(r)ап¤(r)зҐ(r)Ј(r) д (c)« Їа(r)Ја ¬¬ ¤(r)«¦ Ї(r)«гз вм зҐаҐ§ '+
+'Є(r)¬ ¤го бва(r)Єг!');
ReadKey;
halt;
end;
assign(f1,paramStr(1));
assign(f2,paramStr(2));
{$I-}
reset(f1);
if ioresult <> 0thenbegin
writeln('” (c)« Ґ (c)¤Ґ!');
readkey;
halt;
end;
{$I-}
rewrite(f2);
boolNum:=false;
whilenot Eof(f1) dobegin
read(f1,number);
write(f2,number);
writeln(number);
if kratno11(number) then boolNum:=true;
end;
readKey;
if boolNum=true thenbegin
writeln('Ќ ¦¬ЁвҐ «оЎго Є« ўЁиг ¤«п ўле(r)¤ ..');
writeln('‚ д (c)«Ґ бҐвм зЁб« - б㬬 жЁда Є(r)в(r)але а ў 11- Ґ гЇ(r)ап¤(r)зЁў Ґ¬');
readKey;
halt;
end;
readkey;
writeln('Sort');
for i:=0to fileSize(f2)-2dobegin
Seek(f2,i);
Read(f2,n1);
for j:=i+1to fileSize(f2)-1dobegin
Seek(f2,j);
Read(f2,n2);
if n1>n2 thenbegin
tmp:=n1;
n1:=n2;
n2:=tmp;
Seek(f2,j);
Write(f2,n2);
Seek(f2,i);
Write(f2,n1);
end;
end;
end;
close(f1);
close(f2);
writeln('“бҐ!');
readkey;
end.
Malice
26.07.2005 16:16
Цитата(Катюша @ 26.07.05 11:17)
но похожа.. хорошая прога?
Не понял, что значит хорошая. Поменяй функцию Kratno11 на свою по условию и можно здавать.
Катюша
26.07.2005 22:46
гы..
это числа, который вводятся с командной строки.. СТОРМОЗИЛА
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.