Здравствуйте! Помогите с задачкой. Файлы а и в, компоненты которых являются целыми числами, упорядочены по неубыванию. Получить в файле с все числа файлов а и в без повторений. Файл с должен быть упорядочен по неубыванию. Файлы а и в заполняются вручную.
Тов. Domin9es.
Поиск, поиск и еще раз поиск! (Как завещал Великий Ленин и как учит Коммунистическая Партия!).
Ну, стопудово уже решалось! И не раз.
Пред. сообщ. - моё. Почему-то форум выплюнул.
Перерыл поиск. Ненашел.
Все из одного файла в другой!!!
Что у тебя не получается с задачей?
Нашел сортировку, но с использованием готового файла. Помогите переделать на забивание значений вручную и удаление повторяющегося элемента
Var
f1,f2,f3: text;
max,min,i,t,j: integer;
b: boolean;
arr: array [1..100] of integer;
begin
i:=0;
{$I-}
assign(f1,'C:\1.txt'); reset(f1);
assign(f2,'C:\2.txt'); reset(f2);
assign(f3,'C:\3.txt'); rewrite(f3);
while not eof(f1) do begin
readln(f1,arr[i]);
inc(i);
end;
while not eof(f2) do begin
readln(f2,arr[i]);
inc(i);
end;
repeat
b := True;
for j := 1 to i-1 do
if arr[j] > arr[j+1] then begin
t := arr[j];
arr[j] := arr[j+1];
arr[j+1] := t;
b := False
end
until b;
for j:=1 to i-1 do writeln(f3,arr[j]);
close(f3);
readln
Это тебя устраивает? То, что надо считать все в массив, потом отсортировать массив в памяти, и вернуть назад в файл? Обычно сортировка файла подразумевает нечто другое... Я бы порекомендовал посмотреть вот на этот вариант:
http://forum.pascal.net.ru/index.php?s=&showtopic=10838&view=findpost&p=68835 (для твоего случая придется чуть-чуть подкорректировать программу)
Я не пойму что делает эта программа. Она переписывает три первых введенных числа каждой строки.
Проверьте эту программу
var a,b,c:file of integer;
x,y,t:integer;
begin
assign(a,'a.int');
assign(b,'b.int');
assign(c,'c.int');
{ Vvod znacheniy v faylu a,b -
(esli ne nuzhno - mozhno udalit)}
writeln('Vvedite chisla iz fayla A, v konce - 0');
rewrite(a);
readln(x);
while x<>0 do
begin
write(a,x);
readln(x);
end;
close(a);
writeln('Vvedite chisla iz fayla B, v konce - 0');
rewrite(b);
readln(x);
while x<>0 do
begin
write(b,x);
readln(x);
end;
close(b);
{Formirovanie fayla C};
reset(a); reset(b); rewrite©;
read(a,x); read(b,y);
if x<y then t:=x-1 else t:=y-1;
while not(eof(a)) and not(eof(b)) do
begin
while (x<=t) and not(eof(a)) do read(a,x);
while (y<=t) and not(eof(b)) do read(b,y);
if (x<y) and (x>t) then
begin
t:=x;
write(c,t);
end
else if (y>t) then
begin
t:=y;
write(c,t);
end;
end;
while not(eof(a)) do
begin
read(a,x);
if x>t then
begin
t:=x;
write(c,t);
end;
end;
close(a);
while not(eof(b)) do
begin
read(b,x);
if x>t then
begin
t:=x;
write(c,t);
end;
end;
close(b); close©;
{Vivod sodergimogo fayla C na ekran
(esli ne nuzhno - mozhno udalit)}
writeln('Itogovyj fayl:');
reset©;
while not(eof©) do
begin
read(c,x);
write(x:5);
end;
readln;
end.
1ый файл 1 1 2 56 8 0
2ой файл 4 8 3 19 6 0
Выдает 1 2 4 8 19
Задание перечитай: файлы должны быть упорядочены по неубыванию... Для упорядоченных файлов этот алгоритм работает...
Я видимо недопонял задание, но неупорядочены по убыванию это про компоненты файлов?
Упорядочены по неубыванию- это как, по возрастанию?
=>програма верна
Объясните алгоритм!!! Само формирование файла с непонятно
reset(a); reset(b); rewrite©;
read(a,x); read(b,y);
if x<y then t:=x-1 else t:=y-1;
while not(eof(a)) and not(eof(b)) do
begin
while (x<=t) and not(eof(a)) do read(a,x);
while (y<=t) and not(eof(b)) do read(b,y);
if (x<y) and (x>t) then
begin
t:=x;
write(c,t);
end
else if (y>t) then
begin
t:=y;
write(c,t);
end;
end;
while not(eof(a)) do
begin
read(a,x);
if x>t then
begin
t:=x;
write(c,t);
end;
end;
close(a);
while not(eof(b)) do
begin
read(b,x);
if x>t then
begin
t:=x;
write(c,t);
end;
end;
close(b); close©;