Postscriptum
1

Работа с файлами. Слияние 2-х файлов в один.

05.12.2011, 08:49. Показов 3678. Ответов 3
Метки нет (Все метки)

Здравствуйте. Помогите сделать такую задачу - пусть файлы c и d с компонентами, являющимися действительными или целыми числами, упорядочены по невозрастанию компонент. Требуется собрать компоненты файлов c и d в упорядоченном виде в файле f. Количество сравнений не должно превосходить p+q, где p и q - число компонент в файлах c и d.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2011, 08:49
Ответы с готовыми решениями:

Осуществить слияние файлов в один
Имеются два файла сортировочных целых чисел All1 и All2 осуществить слияние файлов в один с...

Работа с файлами. Всего один ньюанс.
Доброго времени суток, уважаемые. Делаю задачку на файлы и вот возник небольшой вопрос. Сначала...

Работа с текстовыми файлами.Поиск файлов.
- Ввести с клавиатуры произвольное имя текстового файла. - Найти на жестком диске компьютера все...

Работа с файлами, объединение файлов(txt).
Помогите решить такую задачу,очень надо :sorry:: Тpи гpуппы абитуpиентов сдавали вступительные...

3
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
05.12.2011, 11:35 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
uses crt;
var c,d,f:file of real;
    n,i,j:integer;
    a,b:real;
begin
clrscr;
randomize;
assign(c,'fileC');
rewrite(c);
assign(d,'fileD');
rewrite(d);
assign(f,'fileF');
rewrite(f);
write('Сколько чисел ввести в первый файл n=');
readln(n);
writeln('Содержание файла FileC:');
a:=1;
for i:=1 to n do
 begin
  a:=a+2*random;
  write(c,a);
  write(a:0:2,' ');
 end;
writeln;
writeln;
write('Сколько чисел ввести во второй файл n=');
readln(n);
writeln('Содержание файла FileD:');
a:=1;
for i:=1 to n do
 begin
  a:=a+2*random;
  write(d,a);
  write(a:0:2,' ');
 end;
writeln;
writeln;
reset(c);
reset(d);
i:=0;j:=0;
while(i<=filesize(c)-1)or(j<=filesize(d)-1) do{пока не конец обойх файлов}
 begin
  if (i<=filesize(c)-1)and(j<=filesize(d)-1) then{если оба файла не закончились}
   begin
    seek(c,i);
    read(c,a);
    seek(d,j);
    read(d,b);
    if a<b then
     begin
      write(f,a);
      inc(i);
     end
    else
     begin
      write(f,b);
      inc(j);
     end;
   end
  else if j>filesize(d)-1 then{если второй кончился}
   begin
    seek(c,i);
    read(c,a);
    write(f,a);
    inc(i);
   end
  else if i>filesize(c)-1 then{если первый кончился}
   begin
    seek(d,j);
    read(d,b);
    write(f,b);
    inc(j);
   end;
 end;
close(c);
close(d);
reset(f);
writeln('Слияние файлов:');
while not eof(f) do
 begin
  read(f,a);
  write(a:0:2,' ');
 end;
close(f);
readln
end.
2
1 / 1 / 3
Регистрация: 14.02.2013
Сообщений: 77
03.09.2013, 11:42 3
Во ещё вопрос по этой теме, а как поменять возрастание на убывание в исходных файлах c и d?
0
Почетный модератор
64275 / 47574 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
03.09.2013, 11:52 4
Например так
Pascal
1
2
3
4
5
6
7
a:=100;
for i:=1 to n do
 begin
  a:=a-2*random;
  write(c,a);
  write(a:0:2,' ');
 end;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2013, 11:52
Помогаю со студенческими работами здесь

Слияние массивов в один упорядоченный массив
Помогите. Имеются три упорядоченных в порядке возрастания массива. Выполните слияние их в один...

слияние двух упорядоченных массивов в один упорядоченный
это слияние двух упорядоченных массивов в один упорядоченный, программу я сама напишу, тока...

Слияние двух упорядоченных списков в один упорядоченный
Даны два списка упорядоченные по не убыванию.Объединить их в третий список упорядоченный по не...

Слияние двух текстовых файлов
Ребят помогите плизз задали курсовую в универе на тему Разработать программу слияния двух...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru