Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

ЛАБОРАТОРНАЯ РАБОТА 8 динамические переменные ЦЕЛЬ РАБОТЫ- рассмотреть использование и преимущества

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 5.6.2024

ЛАБОРАТОРНАЯ РАБОТА № 8

динамические переменные

ЦЕЛЬ РАБОТЫ: рассмотреть использование и преимущества динамических переменных при решении задач, связанных с обработкой больших объемов информации.

ОБРАЗЕЦ РЕШЕНИЯ ЗАДАЧИ

ЗАДАЧА

Сформировать односвязанный список и вывести его на печать.

АНАЛИЗ ПОСТАНОВКИ ЗАДАЧИ

Алгоритм:

  •  Создать первый элемент списка и запомнить его адрес.
  •  Сформировать элементы списка.
  •  Вывести на печать элементы сформированного списка.

Выходные данные: 

Односвязанный список 

РЕШЕНИЕ

Модуль 1 содержащий описания используемые, как в основной программе так и в других модулях

unit op;

interface

type bond=^link;

    link=record

         data:byte;

         ads :bond;

         end;

implementation

end.

Модуль 2 содержащий функции обработки данных

 

unit obrabotki;

interface

uses op;

procedure put_in(var ptr1, ptr2:bond;elem1:byte);

procedure put(var ptr1:bond;elem1:byte);

procedure print(var tr:bond);

implementation

{формирование первого элемента списка, с запоминанием начала списка}

procedure put_in;

var       temp:bond;

begin

      new(temp);

      temp^.ads:=nil;

      temp^.data:=elem1;

      ptr1:=temp;

      ptr2:=temp 

end;

{формирование списка элементов}

procedure put;

var       temp:bond;

begin

      new(temp);

      temp^.ads:=nil;

      temp^.data:=elem1;

      ptr1^.ads:=temp;

      ptr1:=temp

end;

{печать списка элементов}

procedure print;

var       temp:bond;

begin

   while tr^.ads<>nil do

                    begin

                     write('elem= ');

                     writeln(tr^.data);

                     tr:=tr^.ads

                    end

end;

end.

Основная программа

Var  elem        :integer;

     ptr,top     :bond;

     d           :char;

uses 

    op, obrabotki;

begin

    ptr:=nil;

    top:=nil;

    d:='y';

    readln(elem);

    put_in(ptr, top, elem);    

    while d='y' do

               begin

                 writeln('Введите одно значение');

                 readln(elem);

                 put(ptr,elem);

                 writeln('Будете вводить еще элементы, если да – 'y’');

                 readln(d);

              end;

    print(top);      

end.

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ:  

Вариант 1.

  1.  Добавить элемент в начало списка.
  2.  Опишите процедуру, которая формирует список L, включив в него по одному разу элементы, которые: входят хотя бы в один из списков L1  и L2.
  3.  Одно из возможных представлений "д л и н о г о" текста - это  разделить его на участки (строки) равной длины и создать  массив  ссылок  на эти строки:

const  d =...;   {Д л и н а  строки}

          n =...;   {Максимальное число строк}

type  stroka = Array [1..d] of Char;

        Ref    = ^stroka;

        tekst  = Array [1..n] of Ref;

Если текст содержит менее n строк, то последние элементы массива равны Nil. Если в операции над текстом указан номер  отсутствующей  строки, т.е. элемент массива с этим номером равен Nil, то такая операция не выполняется. Используя данное представление текста, описать: процедуру З_а_м_е_н_а (T,i,j), заменяющую i-ю строку текста T на копию j-й строки.

Вариант 2. 

  1.  Удалить элемент из начала списка.
  2.  Опишите процедуру, которая формирует список L, включив в него по одному разу элементы, которые: входят одновременно в оба списка L1  и L2.
  3.  Одно из возможных представлений "длинного" текста - это  разделить его на участки (строки) равной длины и создать  массив  ссылок  на эти строки:

               const  d =...;      {Д л и н а  строки}

                          n =...;      {Максимальное число строк}

                type  stroka = Array [1..d] of Char;

                         Ref    = ^stroka;

                         tekst  = Array [1..n] of Ref;

Если текст содержит менее n строк, то последние элементы массива равны Nil. Если в операции над текстом указан номер  отсутствующей  строки, т.е. элемент массива с этим номером равен Nil, то такая операция не выполняется. Используя данное представление текста, описать логическую функцию Э_л_е_м (T,i,j,c), проверяющую, есть ли  в тексте T строка с номером i, и, если есть, присваивающую j-ю литеру этой строки параметру c.

Вариант 3.

  1.  Добавить элемент в список после элемента, на который указывает P.
  2.  Опишите процедуру, которая формирует список L, включив в него по одному разу элементы, которые: входят в список L1, но не входят в список L2.
  3.  Одно из возможных представлений "д л и н н о г о" текста - это  разделить его на участки (строки) равной длины и создать  массив  ссылок  на эти строки:

const  d =...;      {Д л и н а  строки }

         n =...;      {Максимальное число строк}

type  stroka = Array [1..d] of Char;

        Ref    = ^stroka;

        tekst  = Array [1..n] of Ref;

Если текст содержит менее n строк, то последние элементы массива равны Nil. Если в операции над текстом указан номер  отсутствующей  строки, т.е. элемент массива с этим номером равен Nil, то такая операция не выполняется.

Используя данное представление текста, описать: процедуру  П_е_р_е_с_т_а_н_о_в_к_а (T,i,j), меняющую местами  i-ю и j-ю строки текста T.

Вариант 4.

  1.  Удалить элемент из произвольного места списка, отличного от начала.
  2.  Опишите процедуру, которая формирует список L, включив в него по одному разу элементы, которые: входят хотя бы в один из списков L1 и L2, но в то же время не входят в другой из них.
  3.  Одно из возможных представлений "д л и н н о г о" текста - это  разделить его на участки (строки) равной длины и создать  массив  ссылок  на эти строки:

              const  d =...;      { Д л и н а  строки        }

                         n =...;      { Максимальное число строк }

                type  stroka = Array [1..d] of Char;

                         Ref    = ^stroka;

                         tekst  = Array [1..n] of Ref;

Если текст содержит менее n строк, то последние элементы массива равны Nil. Если в операции над текстом указан номер  отсутствующей  строки, т.е. элемент массива с этим номером равен Nil, то такая операция не выполняется.    Используя данное представление текста, описать процедуру  Д_о_б_а_в_и_т_ь (T,i,j),добавляющую после i-й строки текста T копию j-й строки.

Вариант 5.

  1.  Удалить последний элемент из списка.
  2.  Опишите процедуру, присоединения списка L2 к списку L1.
  3.  Одно из возможных представлений "д л и н н о г о" текста - это  разделить его на участки (строки) равной длины и создать  массив  ссылок  на эти строки:

             const  d =...;      { Д л и н а  строки        }

                        n =...;      { Максимальное число строк }

                type  stroka = Array [1..d] of Char;

                         Ref    = ^stroka;

                         tekst  = Array [1..n] of Ref;

Если текст содержит менее n строк, то последние элементы массива равны Nil. Если в операции над текстом указан номер  отсутствующей  строки, т.е. элемент массива с этим номером равен Nil, то такая операция не выполняется.

Используя данное представление текста, описать логическую функцию  П_о_и_с_к (T,c,i,j), определяющую, входит ли литера c в текст T, и, если входит, присваивающую параметрам i и j  "координаты" первого вхождения этой литеры: i - номер строки, а j - номер позиции в этой строке.

Вариант 6.

  1.  Добавить элемент в список перед элементом, на который указывает P.
  2.  Опишите процедуру, изменения порядка элементов списка на противоположный порядок.
  3.  Одно из возможных представлений "д л и н о г о" текста - это  разделить его на участки (строки) равной длины и создать  массив  ссылок  на эти строки:

const  d =...;   {Д л и н а  строки}

          n =...;   {Максимальное число строк}

type  stroka = Array [1..d] of Char;

        Ref    = ^stroka;

        tekst  = Array [1..n] of Ref;

Если текст содержит менее n строк, то последние элементы массива равны Nil. Если в операции над текстом указан номер  отсутствующей  строки, т.е. элемент массива с этим номером равен Nil, то такая операция не выполняется. Используя данное представление текста, описать: процедуру З_а_м_е_н_а (T,i,j), заменяющую i-ю строку текста T на копию j-й строки.

Вариант 7.

1. Добавить элемент в список после элемента, на который указывает P.

2. Опишите процедуру, которая формирует список L, включив в него по одному разу элементы, которые: входят одновременно в оба списка L1  и L2.

3. Одно из возможных представлений "д л и н н о г о" текста - это  разделить его на участки (строки) равной длины и создать  массив  ссылок  на эти строки:

             const  d =...;      { Д л и н а  строки        }

                        n =...;      { Максимальное число строк }

                type  stroka = Array [1..d] of Char;

                         Ref    = ^stroka;

                         tekst  = Array [1..n] of Ref;

Если текст содержит менее n строк, то последние элементы массива равны Nil. Если в операции над текстом указан номер  отсутствующей  строки, т.е. элемент массива с этим номером равен Nil, то такая операция не выполняется.

Используя данное представление текста, описать логическую функцию  П_о_и_с_к (T,c,i,j), определяющую, входит ли литера c в текст T, и, если входит, присваивающую параметрам i и j  "координаты" первого вхождения этой литеры: i - номер строки, а j - номер позиции в этой строке.

Вариант 8.

1. Удалить элемент из произвольного места списка, отличного от начала.

2. Опишите процедуру, которая формирует список L, включив в него по одному разу элементы, которые: входят в список L1, но не входят в список L2.

3. Одно из возможных представлений "длинного" текста - это  разделить его на участки (строки) равной длины и создать  массив  ссылок  на эти строки:

               const  d =...;      {Д л и н а  строки}

                          n =...;      {Максимальное число строк}

                type  stroka = Array [1..d] of Char;

                         Ref    = ^stroka;

                         tekst  = Array [1..n] of Ref;

Если текст содержит менее n строк, то последние элементы массива равны Nil. Если в операции над текстом указан номер  отсутствующей  строки, т.е. элемент массива с этим номером равен Nil, то такая операция не выполняется. Используя данное представление текста, описать логическую функцию Э_л_е_м (T,i,j,c), проверяющую, есть ли  в тексте T строка с номером i, и, если есть, присваивающую j-ю литеру этой строки параметру c.

Вариант 9.

1. Добавить элемент в начало списка.

2. Опишите процедуру, изменения порядка элементов списка на противоположный порядок.

3. Одно из возможных представлений "д л и н о г о" текста - это  разделить его на участки (строки) равной длины и создать  массив  ссылок  на эти строки:

const  d =...;   {Д л и н а  строки}

          n =...;   {Максимальное число строк}

type  stroka = Array [1..d] of Char;

        Ref    = ^stroka;

        tekst  = Array [1..n] of Ref;

Если текст содержит менее n строк, то последние элементы массива равны Nil. Если в операции над текстом указан номер  отсутствующей  строки, т.е. элемент массива с этим номером равен Nil, то такая операция не выполняется. Используя данное представление текста, описать: процедуру З_а_м_е_н_а (T,i,j), заменяющую i-ю строку текста T на копию j-й строки.

Вариант 10.

1. Добавить элемент в список после элемента, на который указывает P.

2. Опишите процедуру, которая формирует список L, включив в него по одному разу элементы, которые: входят хотя бы в один из списков L1  и L2.

3. Одно из возможных представлений "д л и н н о г о" текста - это  разделить его на участки (строки) равной длины и создать  массив  ссылок  на эти строки:

             const  d =...;      { Д л и н а  строки        }

                        n =...;      { Максимальное число строк }

                type  stroka = Array [1..d] of Char;

                         Ref    = ^stroka;

                         tekst  = Array [1..n] of Ref;

Если текст содержит менее n строк, то последние элементы массива равны Nil. Если в операции над текстом указан номер  отсутствующей  строки, т.е. элемент массива с этим номером равен Nil, то такая операция не выполняется.

Используя данное представление текста, описать логическую функцию  П_о_и_с_к (T,c,i,j), определяющую, входит ли литера c в текст T, и, если входит, присваивающую параметрам i и j  "координаты" первого вхождения этой литеры: i - номер строки, а j - номер позиции в этой строке.

ТРЕБОВАНИЯ К ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ:

  •  Программа должна состоять из 2 модулей;
  •  Обрабатываемые данные описать в отдельном модуле (модуль 1);
  •  Функции обработки данных должны быть реализованы в виде подпрограмм (модуль 2).

ОТЧЕТ ДОЛЖЕН СОДЕРЖАТЬ:

  •  Математическую или логическую модель задачи.
  •  Функциональную структуру алгоритма.
  •  Программный код задачи.

КОНТРОЛЬНЫЕ ВОПРОСЫ

  1.  Что такое указатель?
  2.  Какая память называется динамически распределяемой?
  3.  Как выделить память под динамическую переменную? Как освободить память от динамической переменной?
  4.  Что такое "разыменование"?
  5.  Что обозначает константа nil?
  6.  Назовите операции, определенные над указателем.
  7.  Перечислите основные ошибки, связанные с динамическим выделением памяти.
  8.  Чем отличаются статические и динамические величины?
  9.  Какие виды указателей вам известны?
  10.  Как определяется адрес переменной?
  11.  Приведите примеры объявления указателей.
  12.  В каком случае возможно присваивание указателей?
  13.  Какие ситуации приводят к возникновению в динамически распределяемой памяти "мусора"?
  14.  Опишите указатель, который указывает на объект вещественного типа.




1. Лабораторная работа 10 Генетический алгоритм и его реализация в среде MTLB Цель Минимизировать функцию
2. На тему- Термоядерные реакции Выполнил студент 2 к
3. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ по дисциплине Психология ЮУрГУ~050100
4. Основные средства предприятия и эффективность их использования
5. Колибри Учредители фестиваля- Алтайская государственная академия культуры и искусств кафедра те
6. Лекция 4. Товар и деньги как основные инструменты рыночного хозяйства 1
7. ОЦЕНКА ТЕХНИЧЕСКОГО СОСТОЯНИЯ ЗДАНИЙ, СООРУЖЕНИЙ И ИХ КОНСТРУКТИВНЫХ ЭЛЕМЕНТОВ
8. Акционерное общество как форма организации крупного производства
9. реферат дисертації на здобуття наукового ступеня кандидата хімічних наук Дніпропетров.html
10. тема систематически выходит из строя а у ремонтников нет никакой системы в работе
11. реферату- Міжнародні валютні відносиниРозділ- Гроші і кредит Міжнародні валютні відносини Є невідємною
12. практикум по бухучету Профиль Бух
13. практикум по химии белка Методические указания СанктПетербург
14. СОВЗОНД главы из учебного пособия по программному комплексу ENVI компании RSI
15. ИНСТИТУТ РАЗВИТИЯ ОБРАЗОВАНИЯ ИРКУТСКОЙ ОБЛАСТИ Кафедра развития и экспертиз
16. Техносферная безопасность по новому перечню приказ Минобрнауки РФ от 12 сентября 2013 года 1061
17. БИОНИКА 21 Общая организационноэкономическая характеристика предприятия 2
18. Древо познания добра и зл
19. Понятие правоохранительной деятельности
20. Бухгалтерский финансовый учет на предприятии1