IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Списки, Помогите доработать...
сообщение
Сообщение #1


Фанат Delphi
**

Группа: Пользователи
Сообщений: 72
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


В слове, заканчивающемся точкой, заменить вхождение Е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 -


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
NTL   Списки   11.06.2007 3:31
NTL   up   11.06.2007 16:58
volvo   Процедура нуждалась не в ДОработке, а в ПЕРЕработк…   11.06.2007 17:24
NTL   Volvo,спасибо Вам!   12.06.2007 3:24


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 14:01
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name