![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
FENIX |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
Боюсь (знаю, что нарушаю - извините
![]() Она - последняя, и если я завтра ее сдам, поставят зачет, а вот если не сдам - начнется геморрой и т.п. Самое смешное - друг мне помог, и я ее сделал, используя массивы. Но в чертовой методичке указано, что все слова строки хранить в массиве нельзя - можно только отдельные. Как быть? А задача вот какая: сравнить два файла с точностью до слов (без учета неотображаемых символов и пробелов между словами). Совпадающие слова вывести в третий файл, несовпадающие слова в четвертый, а их количества на экран. Вот текст проги, который есть на данный момент (которая работает, но могут быть траблы при сдаче): Код Program Lab; var f1,f2,f3,f4 : text; st, nd : array[1..100] of string[20]; i, j, k : byte; maxa, maxb : byte; ch : char; BEGIN i:=1; assign(f1,'File_1.txt'); reset(f1); While not EOF(f1) do begin read(f1,ch); if (ch <> #13) and (ch <> ' ') then begin if ch<>#10 then st[i]:=st[i]+ch end else if st[i]<>'' then begin maxa:=i; inc(i); end; end; If (ch<>#13) and (ch<>' ') and (ch<>#10) then maxa:=i; close(f1); i:=1; assign(f2,'File_2.txt'); reset(f2); While not EOF(f2) do begin read(f2,ch); if (ch<>#13) and (ch<>' ') then begin if ch<>#10 then nd[i]:=nd[i]+ch end else if nd[i]<>'' then begin maxb:=i; inc(i); end; end; If (ch<>#13) and (ch<>' ') and (ch<>#10) then maxb:=i; close(f2); For i:=1 to maxa do For j:=i to maxa do If (j<>i) and (st[i]=st[j]) then st[j]:=''; For i:=1 to maxb do For j:=i to maxb do If (j<>i) and (nd[i]=nd[j]) then nd[j]:=''; assign(f3,'File_3.txt'); rewrite(f3); ch:=' '; For i:=1 to maxa do For j:=1 to maxb do If (st[i]=nd[j]) and (st[i]<>'') then begin for k:=1 to length(st[i]) do write(f3,st[i][k]); write(f3,ch); st[i]:=''; nd[j]:=''; end; close(f3); assign(f4,'File_4.txt'); rewrite(f4); For i:=1 to maxa do if st[i]<>'' then begin for k:=1 to length(st[i]) do write(f4,st[i][k]); write(f4,ch); end; For i:=1 to maxb do if nd[i]<>'' then begin for k:=1 to length(nd[i]) do write(f4,nd[i][k]); write(f4,ch); end; close(f4); END. |
![]() ![]() |
FENIX |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
2 volvo
Хм... Программа че-то не работает правильно. Пример 1-го файла: Tomorrow I will go to the ULSU 2-ой файл: Tomorrow I will not go to the ULSTU because I want sleep 3-ий файл: Tomorrow I will , а не "Tomorrow I will go to the", как должно быть. Да, кстати, мы работаем с текстовыми файлами. Сообщение отредактировано: FENIX - 22.12.2004 21:57 |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 20:18 |