Студопедия

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

КАТЕГОРИИ:

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






Interface






Динамический список.

 

Условие задачи

Создать С1 -направленный список, упорядоченный по С2, из N С3С4 и найти элемент, удовлетворяющий условию С5. Вывести созданный список или сообщение: «Список пуст». Для двунаправленных списков – созданный список выводить дважды: в прямом и обратном порядке.

Предусмотреть 1) возможность ввода данных в список из текстового файла; 2) генерации элементов в заданном количестве N; 3) добавления заданного элемента в список в указанном порядке C2.

Для решения задачи создать процедуры: добавления первого элемента в пустой список, добавления очередного элемента в требуемом порядке (в начало/конец/середину), генерация списка (генерация/ввод и вызов процедуры добавления для каждого элемента списка), вывода списка в Memo, поиска в списке, освобождения списка.

Варианты заданий

Вычисляются по правилу: сумма двух последних цифр зачетки. Если сумма больше 15, вариант = сумма минус 15

С1 С2 С3 С4 С5
  Одно- По возрастанию абсолютной величины Псевдослучайных, от -20 до +60 целых чисел Номер первого кратного 5
  Одно- По возрастанию кодов символов Псевдослучайных, от а до я символов кириллицы Номер первой гласной буквы
  Одно- По убыванию Псевдослучайных, от -100 до +100 целых чисел Номер последнего четного
  Одно- По убыванию кодов символов Псевдослучайных, от A до Z символов Номер последнего символа «B»
  Одно- В начало четные в конец нечетные Псевдослучайных, от -20 до +60 целых чисел Номер последнего минимального элемента
  Одно- В начало все гласные, остальные в конец Псевдослучайных, от #33 до #64 Символов кириллицы и знаков препинания Номер первого знака «.»
  Одно- В начало положительные, в конец отрицательные Псевдослучайных, от -150 до +150 целых чисел Номер последнего максимального по абсолютному значению элемента
  Одно- В начало все гласные, остальные в конец Псевдослучайных, от А до Я символов Первого символа «Д» либо «Е»
  Одно- По возрастанию абсолютной величины Псевдослучайных, от -15 до +25 целых чисел Номер первого нечетного элемента
  Одно- По возрастанию кодов символов Псевдослучайных, от a до z символов Символ, следующий за последним из символов «b»
  Одно- В начало нечетные, в конец четные Псевдослучайных, от -20 до +50 целых чисел Номер первого числа из заданного диапазона от a до b включительно
  Одно- По убыванию кодов символов Псевдослучайных, от a до z символов Номер первого символа из заданного диапазона от a до b включительно
  Одно- По возрастанию Псевдослучайных, от 10 до +1000 целых чисел Первое нечетное число
  Одно- По возрастанию кодов символов Псевдослучайных, от #65 до #250 символов Номер первого символа кириллицы
  Одно- По убыванию абсолютных величин Псевдослучайных, от -30 до +50 целых чисел Значение последнего элемента, большего 10

*Для задания псевдослучайных чисел используйте Randomize и Random (прошлый семестр).

Например,
для генерации целого числа R в диапазоне от 10 до 25 напишите: R: =10+Random(25-10+1);
для генерации вещественной части числа R в диапазоне 0, 0 до 0, 9 напишите R: =Random(9-0+1)/10;
или R: =Trunc(Random*10)/10;
для генерации символа R сгенерируйте его код (Ord) как целое число и преобразуйте (Chr) в символ;
для генерации слов из константы-массива сгенерируйте индекс элемента массива как целое число.

Randomize; //используйте один раз для изменения базы для генерируемой последовательности псевдослучайных величин. Иначе при каждом запуске программы будет выдаваться одна и та же последовательность чисел.

Пример. Создать однонаправленный список, упорядоченный по убыванию абсолютной величины, из N вещественных чисел, лежащих в интервале [-9, 9; 19, 9]. Найти в нем максимальный элемент. Вывести созданный список или сообщение, что список пуст. Предусмотреть 1) возможность ввода данных в список из текстового файла; 2) генерации элементов в заданном количестве N; 3) добавления заданного элемента в список в указанном порядке.

 

Для работы со списком создадим отдельный модуль с процедурами:

unit Unit2;

 

interface

 

type

PElem = ^TElem;

TElem = record

info: real;

next: PElem;

end;

 

// создать список из одного элемента

procedure CreateList(var ListN, ListK: PElem; r: real);

// добавить новый элемент перед первым

procedure AddFirst(var ListN: PElem; ListK: PElem; r: real);

// добавить новый элемент в конец

procedure AddLast(ListN: PElem; var ListK: PElem; r: real);

// добавить новый элемент в середину после ListC (не в конец)

procedure AddMedium(ListN, ListC, ListK: PElem; r: real);

// очистить список

procedure FreeList(var ListN, ListK: PElem);

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.01 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал