68988

Операції над динамічними рядками

Лекция

Информатика, кибернетика и программирование

Розглянемо процедуру шукання заданого елемента. Попередньо опишемо тип, який відображає рядок символів як динамічну структуру. Складемо логічну функцію виявлення заданого символу в заданому динамічному рядку. Передбачимо як побічний ефект логічної функції шукання елемента вказівку...

Украинкский

2014-09-28

38 KB

1 чел.

Лекція № 17

Тема: Операції над динамічними рядками

План заняття:

  1.  Пошук заданого елементу
  2.  Вилучення заданого елемента з рядка

Пошук заданого елемента.

Розглянемо процедуру шукання заданого елемента. Попередньо опишемо тип, який відображає рядок символів як динамічну структуру. Складемо логічну функцію виявлення заданого символу в заданому динамічному рядку. Передбачимо як побічний ефект логічної функції шукання елемента вказівку на ланку, яка відповідає першому входженню заданого символу.

program Form2;

type

Link=^LRiad;

LRiad=Record

Elem: Char;

Next: Link;

end;

function SeekElem(Rjad:Link; Elm:char; var Res:Link): Boolean;

var Rb: Link;

begin

SeekElem:=False;

Res:=nil;

Rb:=Rjad^.Next;

while (Res=nil) and (Rb<>nil) do

if Rb^.EIem=Elm then

begin

SeekElem:=True;

Res:=Rb;

end

else Rb:=Rb^.next;

end;

begin

end.

Параметрами функції SeekElem є: вказівна змінна Rjad, що вказує на рядок символів; Elm, що містить шуканий елемент -символ; Res - вказівна змінна-результат, вказує на ланку, що містить шуканий елемент; Rb - робоча змінна вказівного типу.

Вилучення заданого елемента з рядка.

Описуючи цю процедуру, будемо задавати елемент, який треба вилучити, за допомогою вказівки на ту ланку ланцюга, після якої є елемент, що його потрібно вилучити.

Схематично процедуру вилучення зобразимо так. Нехай вихідний ланцюг є (опишемо фрагмент) таким, як показано на рис. 1.

Рис. 1. Фрагмент динамічного рядка.

Вилучення елемента В треба організувати так, щоб вказівка з ланки А була на ланку С. оминаючи ланку з елементом В (рис. 2).

Рис. 2. Вилучення ланки динамічного рядка.

Описуючи процедуру вилучення заданого елемента з рядка, передбачимо знищення всієї ланки, що містить цей елемент:

program Form3;

type

Link=^LRiad;

LRiad=record

Elem: Char;

Next: Link;

end;

procedure DelElem(Lanka: Link);

var Rb: Link;

begin

Rb:=Lanka^.Next;

Lanka^.Next:=Lanka^.Next^.Next;

dispose(Rb);

end;

begin

end.

Знищуємо ланку, що містить шуканий елемент, для економії пам'яті.


 

А также другие работы, которые могут Вас заинтересовать

72530. Минеральные вяжущие вещества 53 KB
  Одним из первых вяжущих которым пользовался человек была необожженная глина. Для повышения водостойкости вяжущих еще древние римляне к воздушной извести добавляли вулканический пепел. Толчком для дальнейшего развития производства и применения вяжущих явилось изобретение...
72531. Сырье для производства строительных материалов. Природные каменные материалы 58 KB
  Сырьем для изготовления всех неорганических строительных материалов каменных и металлов являются горные породы. Основное сырье для органических материалов нефть и каменный уголь можно также отнести к горным породам.
72532. Периодизация становления и развития отечественного уголовно-исполнительного права 55.5 KB
  Регламентация исполнения наказаний периода Российской империи. Система наказаний и процесс их исполнения по Судебникам 1497 и 1550 гг. Особенностью исполнения наказаний призванной усилить их превентивное воздействие стал их публичнопозорящий характер. Наращивался объем устрашающих наказаний.
72533. ИСТОРИЧЕСКОЕ ЗНАЧЕНИЕ СЛОВА «МЕНЕДЖМЕНТ» 310 KB
  Трудно установить с предельной точностью, какова этимология термина «менеджмент». Однако истинное значение слова мы можем установить, выявляя его исторические корни. В античной Греции буквального аналога слову «менеджмент» не существовало.
72534. Программный интерфейс к файловой системе UNIX 70.42 KB
  Инициализация файла: трансляция имени файла в файловый дескриптор номер в таблице дескрипторов внутри процесса; Создание записи в системной файловой таблице которая содержит права доступа к файлу текущую позицию указателя в нем и другую информацию; эта таблица общая для всех процессов.
72535. ВОЗМОЖНОСТИ ПОВЫШЕНИЯ ЭФФЕКТИВНОСТИ ЛОГИСТИЧЕСКИХ СИСТЕМ 1.52 MB
  Но замедление скорости движения материальных товарных и финансовых потоков в логистической системе предприятия неминуемо приводит к уменьшению объема выпуска и реализации продукции снижению ее рентабельности при наличии авансированных ресурсов в неизменных размерах.
72536. Ценообразование в условиях монополии и олигополии 154.5 KB
  Поэтому кривая спроса на его продукцию относительно стабильна а цены на товары ограничены лишь покупательской оценкой их полезности относительно дохода и общим состоянием рыночной конъюнктуры. Например если фирма монополизирующая рынок упаковочных материалов установит на них неприемлемо...
72537. ФИНАНСОВЫЕ РИСКИ В ЛОГИСТИЧЕСКИХ СИСТЕМАХ И СПОСОБЫ ИХ СНИЖЕНИЯ 363 KB
  На риски продавца связанные с оплатой по контракту и на риски покупателя связанные с доставкой товара существенно влияют установленные в контракте условия платежа. При этом регламентируются расходы по кредиту и платежам а также устанавливаются форма и путь оплаты.