Получить третий файл, записав в него элементы первого и второго по возрастанию

Таня^_^

Имеются 2 типизированных файла одинакового размера, элементами которых являются числа Получить третий файл, записав в него элементы первого и второго по возрастанию(не используя сортировку).
1 ответ

Таня^_^

Вроде вот оно:
type
 fil=  file of integer; {тип fil это файл типизированного типа}
mas = array [1..30] of integer;{массив для обработки цифр}
var
 c:string[30];{служит для хранения и передачи имени файла в процедуры}
f1,f2,f3: fil;{файлы хранящие цифры}
m:mas; {переменная массивва}
i,w,q,t,a,n:integer;{i-индекс массива,w-служит для выбора меню,q-для упорядовачивание по возростанию цифр,
a-цифра из файла,t- переменная для хранения цифры из массива для обмена,n-кол-во элементов в  файле}
procedure wwod(var f:fil;c:string;n:integer);{Процедура создание двух файлов}
begin
randomize; {генерация каждый раз различных цифр}
assign (f,c); {Связываем f, с именем файла}
rewrite(f);         {Открываем файл(f1), если есть файл с идентичным имнем то он удаляеться}
for i:=1 to n do begin {Создаём массив}
m[i]:=random(20);    {i элементу присваиваем генерируемое число}
end;
 for q:=1 to n-1 do     {уменьшаем кол-во просматриваемых переменных}
for i:=1 to (n-q) do   {}
if m[i]>m[i+1] then begin   {сравниваем число с переди него стоящим числом}
t:=m[i];                   {если,да то временной переменоой присваиваем i элемент}
m[i]:=m[i+1];                {i элементу присваиваем i+1 элемент}
m[i+1]:=t;                   {i+1 элементу присваиваем временную переменную}
end;       {}
for i:= 1 to n do      {сортированный массив записываем в файл }
write(f,m[i]);      {i элемента массива записываем в файл}
writeln(' ',c);   {выводим имя файла на экран}
close(f);        {закрываем файл }
end;   {}
procedure pros(var f: fil;c:string);    {процедура просмотра файла}
begin   {}
assign (f,c);    {Связываем f1, с именем файла}
reset(f);       {открываем файл}
writeln(' ',c);
while not eof(f) do       {пербираем файл до конца}
begin   {}
read(f,a);      {читаем элемент(цифру) из файла}
write(a:4);    {и выводим её на экран}
end;     {}
close(f);     {закрываем файл }
writeln;
end;
 procedure dob;  {создаем 3 файл и сортируем его}
var b:integer;  {b-элемент 2 файла}
begin       {}
assign (f1,'f1.dat');         {Связываем f1, с именем файла}
reset(f1);             {открываем файл}
assign (f2,'f2.dat');    {Связываем f2, с именем файла}
reset(f2);                  {открываем файл}
assign (f3,'f3.dat');        {Связываем f3, с именем файла}
rewrite(f3); {Открываем файл(f3), если есть файл с идентичным имнем то он удаляеться}
read(f1,a);read(f2,b);   {считываем элемент а из 1 файла и элемент b из 2 файла}
while not eof(f2) and not eof(f1)do  {пока нет конца 1 и 2 файла }
                      begin
if a<b  then  begin   {если а(эл.1 файла) меньше b(эл. 2 файла) тогда}
 write(f3,a);       {записываем в 3 файл а}
 read(f1,a);        {и считываем из 1 файла а}
              end
else begin        {иначе}
write(f3,b);    {записываем в 3 файл b}
read(f2,b);     {и считываем из 2 файла b}
     end;
                      end;
 if a<b then   {если a меньше b тогда}
 begin
  write(f3,a);{записываем в 3 файл а}
   end   {}
   else    {иначе}
  begin   {}
   write(f3,b);{в 3 файл записываем b}
   read(f2,b);  {считываем со 2 файла b}
    end; {}
if  eof(f1)and not eof(f2) then {если закончился 1 файл и не закончился файл 2 тогда}
                begin   {}
 while not eof(f2) do  {пока не закончился файл 2}
      begin    {}
       read(f2,b); {считываем b из 2 файла}
   write(f3,b);{записываем в 3 файл b}
         end;
 write(f3,b);  {записываем b в 3 файл}
                 end;
 if  eof(f2)and not eof(f1) then  {если закончился  файл и не закончился файл 1 тогда}
                   begin
while not eof(f1) do     {пока не закончился файл 2}
      begin
 read(f1,a);  {считываем а из 1 файла}
 write(f3,a);  {записываем в 3 файл а}
      end ;
           write(f3,a); {записываем а в 3 файл}
                   end;
close(f1);close(f2);close(f3); {закрываем фалы 1,2 и 3}
pros(f3,'f3.dat');   {3 файл отправляем в процедуру просмотра}
end;  {}
        begin     {}
w:=0;    {обнуляем счетчик}
while w<>4 do begin           {цикл пока не равно 4 }
writeln('  Меню программы:');         {выводим сообщения на экран}
writeln('1-Создание двух файлов');{}
writeln('2-Просмотр 1 и 2 файлов'); {}
writeln('3-создание 3 файла включаещего в себя 1 и 2 файл');     {}
writeln('4-Выход из программы');                            {}
write('         Ваш выбор-  ');                            {}
readln(w);        {считываем информацию с клавиатуры}
case w of      {и выбираем нужную процедуру}
1:begin
wwod(f1,'f1.dat',7);  {создание 1  файла из 7 элементов}
wwod(f2,'f2.dat',5);   {создание 2  файла из 5 элементов}
writeln('Файл 1 и файл 2 были созданны');
end;
2:begin
 pros(f1,'f1.dat');     {процедура  просмотра 1  файла}
 pros(f2,'f2.dat');  {процедура  просмотра 2  файла}
 end;
3:dob;       {процедура создания 3 файла и его сортировка}
end;          {}
end;   {}
end.  {}