![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
NTL |
![]()
Сообщение
#1
|
![]() Фанат Delphi ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Задача. В слове, состоящем из букв и цифр и заканчивающемся точкой, продублировать каждый нецифровой символ.
Помогите с процедурой Finish, хотя ошибка вознкает в Insert_before. Код uses crt; Type point = ^MyWord; MyWord = record ch: char; next: point end; var digits: set of ord('0')..ord('9'); slovo:point; c:char; i:integer; {---------------------------------------------------------------------------} procedure Print (first: point); Var r: point; begin R:= first; 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('HA6EPuTE C/\OBO C "." HA KOHCE '); while r^.ch <> '.' do begin new(r); r^.next := nil; read(r^.ch); if first = nil then first := r else last^.next := r; last := r end end; {----------------------------------------------------------------------------} Procedure insert_before (Var q: point; x: char); Var r: point; Begin New(r); r^.Next:=q^.Next; q^.Next:=r; r^.ch:=q^.ch; q^.ch:=x end; {----------------------------------------------------------------------------} Procedure Finish(first:point); var r,temp:point; begin r := first; repeat case r^.ch of 'a'..'z', 'A'..'Z':insert_before(r,r^.ch); else r:=r^.next; end; until r = nil end; begin clrscr; vvod(slovo); writeln('Start word:'); print(slovo); Finish(slovo); writeln('Finish word:'); print(slovo); readkey end. -------------------- ICQ (384-043-857)
|
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 17:08 |