![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Bulkin |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Victor Репутация: ![]() ![]() ![]() |
Всем привет!
Есть условия: В один файл (F) пишем 5 чисел. В другой (G) другие 5 чисел. Пример: 12345 и 34567 Потом читаем их из этих файлов и ищем совпадения, те которые совпали пишем в файл (H1) которые не совпали пишем в другой файл (H2). Мой результат: в H1 пишет цифру 1, в H2 34567. Где я ошибься!? Тело программы: Program Zapis_i_chtenie;
uses crt;
var
n,i:integer;
fs,gs:integer;
f,g,h1,h2:text;
begin
writeln('Vvedite 5 cyfr dlya F: ');
assign(f,'d:\f.txt');
rewrite(f);
append(f);
for i:=1 to 5 do
begin
write('->');
readln(n);
writeln(f,n);
end;
close(f);
Writeln('Vvedite 5 cyfr dlya G: ');
assign(g,'d:\g.txt');
rewrite(g);
append(g);
for i:=1 to 5 do
begin
write('->');
readln(n);
writeln(g,n);
end;
close(g);
assign(f,'d:\f.txt');
assign(g,'d:\g.txt');
assign(h1,'d:\h1.txt');
assign(h2,'d:\h2.txt');
reset(f);
reset(g);
rewrite(h1);
rewrite(h2);
while not EOF(f) do
begin
Readln(f,fs);
begin
while not EOF(g) do
begin
Readln(g,gs);
if fs=gs
then writeln(h1,gs)
else writeln(h2,gs);
end;
end;
end;
close(f);
close(g);
close(h1);
close(h2);
end.
Сообщение отредактировано: Bulkin - 24.11.2010 10:30 |
![]() ![]() |
Lapp |
![]()
Сообщение
#2
|
|||
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
Bulkin |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Victor Репутация: ![]() ![]() ![]() |
Исправил название темы.
Сообщение отредактировано: Bulkin - 24.11.2010 10:33 |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Потом читаем их из этих файлов и ищем совпадения, те которые совпали пишем в файл (H1) которые не совпали пишем в другой файл (H2). ... Где я ошибься!? Много, где. Смотри, я даю тебе прогу, исправленную НАПОЛОВИНУ. Program Zapis_i_chtenie;
uses crt;
var
n,i:integer;
fs,gs:integer;
f,g,h1,h2:text;
b: boolean;
begin
writeln('Vvedite 5 cyfr dlya F: ');
assign(f,'f.txt');
rewrite(f);
for i:=1 to 5 do
begin
write('->');
readln(n);
writeln(f,n);
end;
close(f);
Writeln('Vvedite 5 cyfr dlya G: ');
assign(g,'g.txt');
rewrite(g);
for i:=1 to 5 do
begin
write('->');
readln(n);
writeln(g,n);
end;
close(g);
assign(h1,'h1.txt');
assign(h2,'h2.txt');
reset(f);
rewrite(h1);
rewrite(h2);
while not EOF(f) do begin
Readln(f,fs);
reset(g);
b:=true;
while b and not EOF(g) do begin
Readln(g,gs);
if fs=gs then begin
b:=false;
writeln(h1,gs)
end
end;
if b then writeln(h2,fs)
end;
close(f);
close(g);
close(h1);
close(h2);
end.
Существенно: - добавлена булева переменная b (разбирешься, зачем?) - reset(g) переставлен внутрь цикла Несущественно: - убраны ненужные append и лишние assign, а также begin и end Эта прога пишет все, что нужно в файл H1. Но в файл H2 она пишет только те несовпавшие числа, которые были в файле f. Остается добавить еще один цикл, тоже двойной. В нем только два отличия от того, что есть. 1. надо поменять местами файлы f и g (g - во внешнем цикле, f - во внутреннем). 2. выкинуть запись в файл h1 В промежутке между этими циклами файл H2 не трогай (не открывай заново). Файл H1 можешь закрыть совсем, он уже готов. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Bulkin |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Реальное имя: Victor Репутация: ![]() ![]() ![]() |
Спасибо, твоя ширина мысли намного больше моей и поэтому я не смог уловить ее. Т.е. решение понимаю, но в циклах уже запутался. (нет опыта).
Спасибо, буду дальше искать кто поможет. ---------- Ребята! Я могу пополнить мобильный, как оплата за решение задачи, напишите мне рабочий код, мне его сегодня-завтра сдавать преподу. Спасибо! Сообщение отредактировано: Bulkin - 24.11.2010 11:53 |
Lapp |
![]()
Сообщение
#6
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Вот, бери.
Только прошу: разберись. Что непонятно - спрашивай. Program Zapis_i_chtenie;
uses crt;
var
n,i:integer;
fs,gs:integer;
f,g,h1,h2:text;
b: boolean;
begin
writeln('Vvedite 5 cyfr dlya F: ');
assign(f,'f.txt');
rewrite(f);
for i:=1 to 5 do
begin
write('->');
readln(n);
writeln(f,n);
end;
close(f);
Writeln('Vvedite 5 cyfr dlya G: ');
assign(g,'g.txt');
rewrite(g);
for i:=1 to 5 do
begin
write('->');
readln(n);
writeln(g,n);
end;
close(g);
assign(h1,'h1.txt');
assign(h2,'h2.txt');
rewrite(h1);
rewrite(h2);
reset(f);
while not EOF(f) do begin
Readln(f,fs);
reset(g);
b:=true;
while b and not EOF(g) do begin
Readln(g,gs);
if fs=gs then begin
b:=false;
writeln(h1,gs)
end
end;
if b then writeln(h2,fs)
end;
reset(g);
while not EOF(g) do begin
Readln(g,gs);
reset(f);
b:=true;
while b and not EOF(f) do begin
Readln(f,fs);
b:=fs<>gs;
end;
if b then writeln(h2,gs)
end;
close(f);
close(g);
close(h1);
close(h2);
end.
А за деньги - в раздел "Задачи на заказ".. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Гость |
![]()
Сообщение
#7
|
Гость ![]() |
Спасибо за решение. Все работает.
Прошу извинить меня за то, что 2 раза нарушил правила Форума. |
TarasBer |
![]()
Сообщение
#8
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
> В один файл (F) пишем 5 чисел. В другой (G) другие 5 чисел. Пример: 12345 и 34567
> var > n,i:integer; Эээээ > 34567 > integer Надеюсь, у тебя 32-битный режим? -------------------- |
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Эээээ > 34567 > integer Надеюсь, у тебя 32-битный режим? ээээээээ Running "h:\...\fp101124_bulkin.exe " ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 0:16 |