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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 28.12.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. Шпаргалки по Денежно-кредитному регулированию
2. Введение Петр Андреевич Толстой1645 1729 сыграл значительную роль в государстве в конце XVII начале XVIII века
3. Органические соединения
4. They see mny indictions tht the fmily in decline.html
5. Завдання шкільного курсу біології
6. Лабораторная работа MS Word 2010
7. ТЕМА 6 У другій половині вагітності жінка приймала транквілізатори групи бензодіазепинів
8. Тема- Современность научных идей М
9. Контрольная работа
10. на тему Проведение стратегических изменений в фирме Вы
11. Система самоменеджмента и ее основные элементы
12. і. Яке захворювання це могло викликати Поліомієліт B Бруцельоз C Псев
13. реферат дисертаціі на здобуття наукового ступеня доктора сільськогосподарських наук Дніпропе
14.  Що таке умовивід На які види поділяються умовиводи Що таке абстрактне мислення Охарактеризуй
15. ЛЭТИ ПРАВОВЕДЕНИЕ КОНСТИТУЦИОННОЕ ПРАВО
16. Тема 6- Эмиссионная деятельность компании Выход на международные и фондовые рынки Выпуск акции
17. мультипроцессоры с использованием единой общей памяти
18. Петербургский институт машиностроения Кафедра химии РА
19. х ~ 11 ~ х классов Для учеников 7х классов дискотеки не будет
20. Цветаева М.И