![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
NTL |
![]()
Сообщение
#1
|
![]() Фанат Delphi ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
В слове, заканчивающемся точкой, заменить вхождение Е1 на Е2, где Е1 и Е2 - элементы одинаковой длины
(проблема в доработки процедуры ChangeElement). Помогите пожалуйста... Код const n=8; Type point = ^MyWord; MyWord = record ch: char; next: point end; Type massiv = array[1..n] of char; var slovo:point; c:char; M,m1:massiv; E1,E2: string[100]; i:integer; {---------------------------------------------------------------------------} Procedure VvodEl(var mas:massiv;MyStr:string); var i:integer; begin for i:=1 to length(MyStr) do mas[i]:=MyStr[i]; end; {---------------------------------------------------------------------------} procedure Print (first: point); Var r: point; begin R:= first; write('CLOBO = '); While r<>nil do begin Write (r^.ch); R:=r^.Next; end; writeln; end; {---------------------------------------------------------------------------} procedure Vvod(var first: point); var r, last: point; begin first:= nil; last := nil; writeln('HABEPuTE C/\OBO C "." HA KOHCE '); repeat new( r ); r^.next := nil; read(r^.ch); if first = nil then first := r else last^.next := r; last := r; until r^.ch = '.'; end; {---------------------------------------------------------------------------} procedure ChangeElement(first:point;C:massiv;c1:massiv); var r,p:point; j:integer; bad: boolean; begin r := first; repeat { while (i <= length(E2)) and (C[1] <> r^.ch) do inc(i); } if r <> nil then begin j := 1; p:=r; bad := false; while (p^.ch <> '.') and (not bad) do begin bad := (p^.ch) <> C[j]; if not bad then begin p := p^.next; inc(j) end end; if c[j]<>#0 then r:=r^.next else begin r := p; {?????????????????????} end end until r = nil end; {--------------------------------------------------------------------------} begin clrscr; readln(E2); VvodEl(m,E2); readln(E1); VvodEl(m1,E1); vvod(slovo); writeln('Start word:'); print(slovo); ChangeElement(slovo,M,M1); writeln('Finish word:'); print(slovo); readkey end. Сообщение отредактировано: NTL - 10.06.2007 23:32 -------------------- ICQ (384-043-857)
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:30 |