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.

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


 

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

39277. АРХИТЕКТУРА СПЕЦИАЛИЗИРОВАННЫХ СИСТЕМ ОБРАБОТКИ, АНАЛИЗА И ИНТЕРПРЕТАЦИИ ДАННЫХ 1.33 MB
  Команды. Опережающий просмотр команд. Структура ЭВМ с множественным потоком команд Глава 12. Компьютеры становятся весьма сложными кудато пропадает дружественность интерфейса программная среда переходит на жесткий командный язык и начинает требовать от пользователей предоставления такой информации которая не всегда известна и т.
39278. Концептуальная модель безопасности сети 22.04 KB
  Направлены на минимизацию или устранение Предполагают реализацию Невыполнение ведет к предпосылкам Потенциально ведут к нанесению ущерба Обуславливают наличие Из паспорта Из типа Кумулятивно и взвешенно ведут к нарушениям целостности устойчивости функционирования и безопасности ЕСЭ {C} Проверяют выполнение {R} = Учитывает ценность Учитывает стоимость Учитывает актуальность Содержат Рисунок 1 Концептуальная модель безопасности сети Условные обозначения:...
39279. АРХИТЕКТУРА СПЕЦИАЛИЗИРОВАННЫХ СИСТЕМ ОБРАБОТКИ, АНАЛИЗА И ИНТЕРПРЕТАЦИИ ДАННЫХ 1.13 MB
  Содержание: Введение Параллельная обработка данных на ЭВМ Классификации параллельных ВС Классификация Кришнамарфи Используемые источники Введение Стремительное развитие науки и проникновение человеческой мысли во все новые области вместе с решением поставленных прежде проблем постоянно порождает поток вопросов и ставит новые как правило более сложные задачи. К настоящему времени спроектированы и опробованы сотни различных компьютеров использующих в своей архитектуре тот или иной вид параллельной обработки данных. Параллельная обработка...
39280. Научение путем наблюдения: научение с помощью имитации других или наблюдения 22.13 KB
  Это пример типа научения известного как научение путем наблюдения или подражание41. Научение путем наблюдения форма научения при которой люди приобретают новые знания путем систематического наблюдения за чужим опытом вознаграждений и наказаний. научение путем наблюдения Оно имеет место в тех случаях когда человек приобретает новые знания действуя вместо другого то есть посредством наблюдения за тем что происходит с другими людьми.
39281. Дисциплина 22.01 KB
  Другие считают что иногда наказание наиболее эффективный способ изменить поведение. НАКАЗАНИЕ определение Неприятное следствие определенной поведенческой реакции или отказ от желательного подкрепления в связи с определенной поведенческой реакцией. Наказание это инициирование неприятного события или устранение позитивного события следующие за нежелательным поведением и уменьшающие частоту нарушений96. Литература посвященная этому вопросу рассматривает теоретические рамки и основу для прогрессивных дисциплинарных программ организаций...
39282. Дисциплинарные взыскания 17.93 KB
  Управляя нежелательными последствиями поведения например используя временное отстранение от должности без оплаты труда компании ищут способы свести случаи такого поведения к минимуму. Вероятно у вас не вызывает никакого удивления тот факт что руководители не всегда наказывают подчиненных в каждом случае неприемлемого поведения76. Например в компании Нопс1а оГАтепса специалист по кадровой политике Тим Гарретт Тип СаггеИ отмечает что его компанией уделяется очень большое внимание всем нарушениям правил поведения включая даже те...
39283. ФИЛОСОФИЯ ЧЕЛОВЕКА 256.5 KB
  Стремление человека познать свою собственную природу – вспомним слова Сократа: «Познай самого себя» - является одним из главных стимулов развития философской мысли. В отличие от других наук и дисциплин, изучающих человека, философия стремится выяснить, что такое человек вообще, какова его природа, его сущность.
39284. ПЛОЖЕНИЕ ЧЕЛОВЕКА В КОСМОСЕ 183.13 KB
  ПЛОЖЕНИЕ ЧЕЛОВЕКА В КОСМОСЕ сокращенный текст ВОПРОСЫ К СЕМИНАРУ 1: 1. Идея человека как проблема. Сущностное различие человека и животного . Негативная и классическая теории человека: Негативная теория и ее критика.
39285. Электронная картотека 205.32 KB
  Задача должна быть структурирована, и отдельные части должны быть оформлены как функции. Исходные данные должны вводиться с клавиатуры. В процессе обработки картотека должна храниться в памяти компьютера в виде списка.