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.

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


 

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

52901. Екологічний ерудиціон (екологічна гра) 76 KB
  І ми спробуємо сьогодні дати відповідь на нього. Команда за кожну правильну відповідь отримує свою смужку а земна куля очищається від сміття. За правильну відповідь 1 бал Запитання 1. Якщо команда дає неправильну відповідь з подальшої боротьби в цьому турі вибуває.
52902. Уроки литературы в 5 классе. Книга для учителя 1.12 MB
  Из русской литературы XVIII века балладу сказки романы рассказ. Вариативная природа фольклора Урок чтения и обсуждения произведений 3 Сказки как вид народной прозы. Сказки о животных волшебные бытовые сказки Урок знакомства с теоретическими понятиями Царевналягушка Урок чтения и изучения произведения 5 Царевналягушка.
52903. Спонтанні роздуми… 305.5 KB
  Пазли чомусь асоціюються в мене з педагогікою. Тож хіба пазли – то не своєрідний символ науки педагогіки До речі перші пазли були створені не для забавки а як навчальний посібник у 1761 році лондонський торговець географічними картами Джон Спілсбері наклеював останні на дерев′яну основу і розрізав отриманий сандвіч на шматки неправильної форми. І ще: навіть у давнину пазли розрізнялися кількістю й химерністю форм частинок на які було розбито малюнок. Відтак можна говорити про рівні складності завдання А це вже щось зовсім методичне...
52905. П’ять сходинок до успіху або маршрутами життєвої успішності 114 KB
  Людина Її життя вимірюється не кількістю років а ступенями ціннісного сходження. Згадалась досить цікава інформація: вченими було підраховано що життя кожної людини нараховує 700 тисяч годин. А на життя власне внутрішнє життя людини залишається 200 тисяч годин. Уявіть собі лише всього 200 тисяч годин І вся справа духовності зводиться до одного питання: як використати як заповнити ці 200 тисяч годин Це при тому що ми витрачаємо два роки життя щоб додзвонитися до своїх знайомих і рік життя – на пошуки речей...
52906. Если ребенок не хочет делать уроки 40.5 KB
  Важно понять распространяется ли эта неприязнь на все уроки или на домашние задания по какимто конкретным предметам. Если ребенок в целом не желает садиться за уроки тогда переходим к Правилам № 2 и № 3. Главное чтобы за уроки он сел отдохнувшим и со свежей головой.
52908. Essen. Meine Lieblingsspeise 51 KB
  L.: Guten Tag, liebe Freunde! Ich freue mich, euch zu sehen! Heute arbeiten wir zum Thema „Essen“. Alle Leute haben ihre Lieblingsspeisen, nicht wahr? Wir werden heute über unsere Essengewohnheiten sprechen! Ich hoffe, dieses Thema ist für euch interessant. Also heute lesen wir einen Text, machen verschiedene Übungen, diskutieren über unsere Essengewohnheiten.
52909. Математична естафета: «Острів скарбів» Гра для учнів 8-9-тих класів 152.5 KB
  Ведучий 1. До нашої школи надійшло повідомлення від Старика Хотабича. Цей вельмишановний старець повідомляє, що на Таємничому Острові Скарбів він заховав чарівний напиток. Хто скуштує цього напитку усі задачі з математики буде мов насіння лускати. Отримає цей напиток той хто найкраще пройде математичну естафету. Для визначення переможця у нас працює рада розумних.