Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 49
1

Создать новый файл D из чисел, которые встречаются во всех трех файлах

15.12.2009, 21:04. Показов 1100. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
const
Length: word = 10;
MinRange: integer = -25;
MaxRange: integer = 25;
MaxLength = 255;
 
type
TArray = array [1..MaxLength] of integer;
 
procedure RandomIntToFile(wLength: word; iMin, iMax: integer; var fOut: Text);
var
i: integer;
begin
Randomize();
for i := 1 to wLength do
writeln(fOut, Random(iMax - iMin + 1) + iMin);
end;
 
procedure FileToArray(var aArray: TArray; wLength: word; var fIn: Text);
var
i: integer;
begin
for i := 1 to wLength do
readln(fIn, aArray[ i ]);
end;
 
procedure ArrayToFile(aArray: TArray; wLength: word; var fOut: Text);
var
i: integer;
begin
for i := 1 to wLength do
writeln(fOut, aArray[ i ]);
end;
 
procedure ArrayPrint(aArray: TArray; wLength: word);
var
i: integer;
begin
if (wLength = 0) then
writeln('empty')
else begin
for i := 1 to wLength do
write(aArray[ i ]:3, ' ');
writeln;
end;
end;
 
procedure ArrayUnion(a1, a2, a3: TArray; wLength: word; var aOut: TArray; var wOutLength: word);
var
i1, i2, i3, i4: integer;
b1, b2, b4: boolean;
begin
wOutLength := 0;
for i1 := 1 to wLength do
begin
b1 := False;
b2 := False;
for i2 := 1 to wLength do
begin
if (a1[i1] = a2[i2]) then
begin
b1 := True;
Break;
end;
end;
for i3 := 1 to wLength do
begin
if (a1[i1] = a3[i3]) then
begin
b2 := True;
Break;
end;
end;
b4 := False;
if (b1 and b2) then
begin
for i4 := 1 to wOutLength do
begin
if (a1[i1] = aOut[i4]) then
begin
b4 := True;
Break;
end;
end;
if (not b4) then
begin
Inc(wOutLength);
aOut[wOutLength] := a1[i1];
end;
end;
end;
end;
 
var
fA, fB, fC, fD: Text;
aA, aB, aC, aD: TArray;
waDLength: word;
begin
Assign(fA, 'a.dat');
Rewrite(fA);
Assign(fB, 'b.dat');
Rewrite(fB);
Assign(fC, 'c.dat');
Rewrite(fC);
Assign(fD, 'd.dat');
Rewrite(fD);
RandomIntToFile(Length, MinRange, MaxRange, fA);
RandomIntToFile(Length, MinRange, MaxRange, fB);
RandomIntToFile(Length, MinRange, MaxRange, fC);
Close(fA);
Close(fB);
Close(fC);
Reset(fA);
Reset(fB);
Reset(fC);
FileToArray(aA, Length, fA);
FileToArray(aB, Length, fB);
FileToArray(aC, Length, fC);
writeln('A:');
ArrayPrint(aA, Length);
writeln('B:');
ArrayPrint(aB, Length);
writeln('C:');
ArrayPrint(aC, Length);
ArrayUnion(aA, aB, aC, Length, aD, waDLength);
writeln('AxBxC:');
ArrayPrint(aD, waDLength);
ArrayToFile(aD, waDLength, fD);
Close(fD);
readln;
end.
почему всегда empty пишет ?

Добавлено через 2 минуты
Создать три файла: А,В,С из целых чисел. Создать новый файл D из чисел, которые встречаются во всех трех файлах. В файле D числа не должны повторяться.

вот задача
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2009, 21:04
Ответы с готовыми решениями:

Создать новый файл D из чисел, которые встречаются во всех трех файлах
Решить на С++, с комментариями. Спасибо:) Даны три файла: А,В,С из целых чисел. Создать новый...

Найти элементы, которые встречаются во всех трех массивах
Заданы три одномерных массива содержащие по n элементов. Написать программу, которая находит те...

Дан файл состоящий из целых чисел. Создать новый файл целых чисел, содержащий длины всех серий исходного файла
Дан файл целых чисел. Создать новый файл целых чисел, содержащий длины всех серий исходного файла...

Дан файл целых чисел. Создать новый файл целых чисел, содержащий длины всех серий исходного файла
Дан файл целых чисел. Создать новый файл целых чисел, содержащий длины всех серий исходного файла...

3
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.12.2009, 21:08 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Очень большой разброс значений от -25 до 25 и маленький размер массивов = 10. Поэтому нет совпадений по трем массивам. Напишите например так, или еще потренируйтесь с диапазоном и размером.
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
uses crt;
const
Length: word = 10;
MaxLength = 255;
 
type
TArray = array [1..MaxLength] of integer;
 
procedure RandomIntToFile(wLength: word; r: integer; var fOut: Text);
var
i: integer;
begin
Randomize;
for i := 1 to wLength do
write(fOut, Random(r),' ');
end;
 
procedure FileToArray(var aArray: TArray; wLength: word; var fIn: Text);
var
i: integer;
begin
for i := 1 to wLength do
read(fIn, aArray[ i ]);
end;
 
procedure ArrayToFile(aArray: TArray; wLength: word; var fOut: Text);
var
i: integer;
begin
for i := 1 to wLength do
write(fOut, aArray[ i ],' ');
end;
 
procedure ArrayPrint(aArray: TArray; wLength: word);
var
i: integer;
begin
if (wLength = 0) then
writeln('empty')
else begin
for i := 1 to wLength do
write(aArray[ i ]:3, ' ');
writeln;
end;
end;
 
procedure ArrayUnion(a1, a2, a3: TArray; wLength: word; var aOut: TArray; var wOutLength: word);
var
i1, i2, i3, i4: integer;
b1, b2, b4: boolean;
begin
wOutLength := 0;
for i1 := 1 to wLength do
begin
b1 := False;
b2 := False;
for i2 := 1 to wLength do
begin
if (a1[i1] = a2[i2]) then
begin
b1 := True;
Break;
end;
end;
for i3 := 1 to wLength do
begin
if (a1[i1] = a3[i3]) then
begin
b2 := True;
Break;
end;
end;
b4 := False;
if (b1 and b2) then
begin
for i4 := 1 to wOutLength do
begin
if (a1[i1] = aOut[i4]) then
begin
b4 := True;
Break;
end;
end;
if (not b4) then
begin
Inc(wOutLength);
aOut[wOutLength] := a1[i1];
end;
end;
end;
end;
 
var
fA, fB, fC, fD: Text;
aA, aB, aC, aD: TArray;
waDLength: word;
begin
clrscr;
randomize;
Assign(fA, 'a.txt');
Rewrite(fA);
Assign(fB, 'b.txt');
Rewrite(fB);
Assign(fC, 'c.txt');
Rewrite(fC);
Assign(fD, 'd.txt');
Rewrite(fD);
RandomIntToFile(Length,10,fA);
RandomIntToFile(Length, 10, fB);
RandomIntToFile(Length, 10, fC);
Close(fA);
Close(fB);
Close(fC);
Reset(fA);
Reset(fB);
Reset(fC);
FileToArray(aA, Length, fA);
FileToArray(aB, Length, fB);
FileToArray(aC, Length, fC);
writeln('A:');
ArrayPrint(aA, Length);
writeln('B:');
ArrayPrint(aB, Length);
writeln('C:');
ArrayPrint(aC, Length);
ArrayUnion(aA, aB, aC, Length, aD, waDLength);
writeln('AxBxC:');
ArrayPrint(aD, waDLength);
ArrayToFile(aD, waDLength, fD);
Close(fD);
readln;
end.
0
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 49
15.12.2009, 21:21  [ТС] 3
там типы не совпадают тогда если так делать, не мог бы исправить если не сложно ?

Добавлено через 7 минут
Цитата Сообщение от Puporev Посмотреть сообщение
Нужно в программе объявить реальный максимальный размер массива, например
aA, aB, aC, aD: array[1..100];
кстати еще есть кое какая просьба с процедурами , ты так такую сортировку сделал,меня препод чуть не убил )))) сказал переделывай , типо там можно гораздо проще без перемещений сделать
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
15.12.2009, 22:24 4
yurka17, Ты отвечаешь на сообщение, которое я сразу удалил, а про исправленную программу вообще молчок. Вот когда сам напишешь хоть одну программу сам, вместо того, чтоб калечить чужие, вот тогда и вякать будешь.
0
15.12.2009, 22:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2009, 22:24
Помогаю со студенческими работами здесь

Дан файл целых чисел. Создать новый файл целых чисел, содержащий длины всех серий исходного файла.
Задачу нужно решить в Borland C++ 3.11 Дан файл целых чисел. Создать новый файл целых чисел,...

Удалить из файла f числа, которые входят в файл g более двух раз, если таких чисел нет, то создать новый файл
Даны целочисленные файлы f и g. Удалить из файла f числа, которые входят в файл g более двух раз,...

Одномерные массивы: найти те элементы, которые встречаются одновременно во всех трех массивах
Заданы три одномерных массива содержащие по n элементов. Написать программу, которая находит те...

Найти наименьшее из чисел, встречающееся во всех трех файлах
Даны три упорядоченные по возрастанию файла целых чисел.:) Найти наименьшее из чисел,...

Найти наименьшее из чисел, встречающихся во всех трех файлах
Даны три упорядоченные по возрастанию файла целых чисел. Напечатать наименьшее из чисел,...

Записать в новый бинарный файл F2 все числа файла F1, которые встречаются один раз
Компонентами бинарного файла F1 есть целые числа. Записать в новый бинарный файл F2 все числа файла...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru