Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2009, 19:45   #1
ANiMEcooL
 
Регистрация: 08.05.2009
Сообщений: 4
По умолчанию Задачка с файлами 1 курс паскаль

сформировать 2 файла целых чисел одинаковой длинны F1 и F2. Затем необходимо слить эти 2 файла в F3 таким образом, чтобы сначала шла компонента из F1, потом из F2, и т.д. В файле F3 поменять местами минимальную и предпоследнюю компоненты. Файлы вывести до и после преобразования.





Проблема в том как слить F1 и F2 в F3 таким образом, чтобы сначала шла компонента из F1, потом из F2, и т.д.
обмен местами минимальной и предпоследней компоненты работает.

Последний раз редактировалось ANiMEcooL; 12.05.2009 в 20:07.
ANiMEcooL вне форума Ответить с цитированием
Старый 12.05.2009, 19:55   #2
ANiMEcooL
 
Регистрация: 08.05.2009
Сообщений: 4
По умолчанию

Код:
Program bl;
uses crt;
var d,b1,b2,b3:integer; F1,F2,F3:file of integer;


procedure vvod(var F1,F2:file of integer; var b1,b2:integer);
var d,m:integer;
begin
assign (F1,'F1.dat');
assign (F2,'F2.dat');
rewrite (F1);
rewrite (F2);
m:=0;
write ('введите размер 2-ух файлов d=');
readln (d);
for m:=1 to d do
begin
write ('введите компоненту 1 файла   ');
readln (b1);
write (F1,b1);
end;
for m:=1 to d do
begin
write ('введите компоненту 2 файла   ');
readln (b2);
write (F1,b2);
end;
end;




procedure Modifikation(var F1,F2,F3:file of integer; var b1,b2,b3:integer);
var min,p,imin:integer;
begin
reset(F1);
reset(F2);
begin
assign (F3,'F3.dat');
rewrite (F3);
while not eof (F1) do
begin

read (F1,b1);
write (F3,b1);
end;
while not eof (F1) do
begin
read (F2,b2);
write (F3,b2);
end;
reset (F3);
imin:=0;
while not eof (F3) do
begin
read (F3,b3);
min:=b3;
imin:=filepos(F3)-1;
end;
reset (F3);
while not eof (F3) do
begin
read (F3,b3);
if b3<min then
begin
min:=b3;
imin:=filepos(F3)-1;
end;
end;

reset(F3);
while not eof (F3) do
begin
read (F3,b3);
write (b3:5);
end;

reset (F3);




seek(F3,filesize(F3)-2);
read(F3,b3);
p:=b3;
seek(F3,filesize(F3)-2);
write (F3,min);
seek(F3,imin);
write(F3,p);



end;
end;

procedure vivod(var F3:file of integer; var b3:integer);
begin
reset(F3);
while not eof (F3) do
begin
read (F3,b3);
write (b3:5);
end;
end;





begin
clrscr;
vvod(F1,F2,b1,b2);
Modifikation (F1,F2,F3,b1,b2,b3);
writeln;
vivod (F3,b3);
close(F3);
close(F1);
close(F2);
end.

Последний раз редактировалось ANiMEcooL; 12.05.2009 в 20:06.
ANiMEcooL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
паскаль задачка ириша Паскаль, Turbo Pascal, PascalABC.NET 33 23.01.2009 20:03
Задачка. Паскаль. Nexx Помощь студентам 5 30.11.2007 18:16