Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Then begin






    Writeln('Список пуст'); Halt; end

    else begin // список не пуст – удаление:

    DisItem: =List; // устанавливаем DistItem на начало списка,

    List: =List^.Next; // устанавливаем List на второй элемент списка,

    DeleteFirst: =DisItem^.Value; // возвращаем значение удаляемого элемента

    Dispose(DisItem); // и удаляем первый элемент списка

    end;

    end;

    Исключение последнего элемента списка List:

    function DeleteLast(var List: pItem): tValue;

    // Исключение последнего элемента списка List и возвращение его значения

    var DisItem, // указатель на удаляемый (последний) элемент списка

    PredItem: pItem; // указатель на элемент, предшествующий удаляемому

    Begin

    if List= nil // если список пуст, то удаление невозможно

    Then begin

    Writeln('Список пуст'); Halt;

    End

    else begin // список не пуст – удаление:

    // Поиск последнего (удаляемого) и предпоследнего элементов списка

    DisItem: =List; PredItem: = nil;

    while DisItem^.Next< > nil do begin // пока не достигнут конец списка:

    PredItem: =DisItem; // сдвиг PredItem на следующий за ним элемент

    DisItem: =DisItem^.Next; // и сдвиг DisItem на следующий за ним элемент

    end;

    if PredItem= nil // если в списке один элемент,

    then List: = nil // то после его удаления список станет пустым

    // иначе предпоследний элемент становится последним

    else PredItem^.Next: = nil;

    DeleteLast: =DisItem^.Value; // возвращаем значение удаляемого элемента

    Dispose(DisItem); // удаляем последний элемент списка

    end;

    end;

    Вывод в файл f элементов списка List:

    procedure WriteList(var f: Text; List: pItem);

    // Вывод в файл f элементов списка List

    var Item: pItem; // указатель на элемент списка

    Begin

    Item: =List; // устанавливаем Item на начало списка

    while Item< > nil do begin // пока не достигнут конец списка:

    Write(f, Item^.Value: 8: 2); // выводим значение элемента

    Item: =Item^.Next; // и сдвигаем указатель Item на следующий элемент

    end;

    Writeln(f);

    end;

    Удаление всех элементов списка List:

    procedure Clear(var List: pItem);

    // Удаление элементов списка

    var Item: pItem; // указатель на удаляемый элемент списка

    Begin

    while List< > nil do begin // пока список не пуст:

    Item: =List; // устанавливаем Item на начало списка,

    List: =List^.Next; // передвигаем начало списка на следующий элемен т

    Dispose(Item); // и удаляем первый элемент

    end; // while

    end;

    Вычисление размера списка List:

    function Size(List: pItem): Word;

    // Возвращение количества элементов списка

    var Item: pItem; // указатель на элемент списка

    Begin

    Item: =List; // устанавливаем Item на начало списка

    Result: =0; // обнуляем счетчик числа элементов

    while Item< > nil do begin // пока не достигнут конец списка:

    Item: =Item^.Next; Inc(Result); // сдвигаем Item и увеличиваем счетчик

    end; // while

    end;

    Контрольные вопросы

    1. Какие переменные программы называются статическими, где они размещаются и на каком этапе под них выделяется память?

    2. Какие переменные называются динамическими, где они размещаются и на каком этапе под них выделяется память?

    3. Что представляет собой значение указателя?

    4. Адреса каких объектов могут хранить типизированные указатели и как они описываются?

    5. Адреса каких объектов могут хранить нетипизированные указатели и как они описываются?

    6. Каковы характеристики операции получения адреса?

    7. Какие функции используются для работы с адресами?

    8. Какие процедуры используются для работы с указателями?

    9. Каким образом можно присвоить значение переменной-указателю?

    10. Что такое ссылка на переменную?

    11. Какие структуры данных называют динамическими?

    12. Что такое список и как он реализуется с помощью динамических переменных? Как можно описать список в программе?

    13. Какие операции определены для работы со списком?

    Лабораторная работа 1.
    Организация списков
    с помощью динамических переменных






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.