Главная страница
Случайная страница
КАТЕГОРИИ:
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Задание. 1. Опишите следующие подпрограммы работы со списком: Create(L) – создание пустого списка L; InsertFirst(L
1. Опишите следующие подпрограммы работы со списком: Create(L) – создание пустого списка L; InsertFirst(L, v) – включение элемента со значением v в начало списка L; Size(L) – определение количества элементов списка L; WriteList(f, L) – вывод в файл f элементов списка L; Clear(L) – удаление всех элементов списка L. Тип элемента списка указан в столбце 2 таблицы вариантов заданий (табл. 1).
2. Составьте подпрограмму или подпрограммы обработки списка, указанные в столбце 3 табл. 1. Спецификации всех подпрограмм приведены в табл. 2.
3. С использованием разработанных подпрограмм составьте программу работы со списками в соответствии с вашим вариантом задания (столбец 4).
В программе необходимо:
1) сформировать исходные списки с помощью процедур Create и InsertFirst, вводя элементы из текстового файла;
2) определить размеры исходных списков с помощью процедуры Size;
3) для контроля вывести в текстовый файл размеры исходных списков и их элементы с помощью процедуры WriteList;
4) выполнить задание на обработку списков, указанное в вашем варианте (столбец 4 табл. 1);
5) вывести в текстовый файл результаты обработки списков – размеры итоговых списков, их элементы и найденные характеристики списков;
6) очистить исходные и итоговые списки с помощью процедуры Clear.
Замечание: программа должна использовать для работы со списками только созданные процедуры, не обращаясь непосредственно к элементам списков.
Варианты заданий Таблица 1
№
| Тип элемента
| Подпрограммы
| Действие со списком
|
|
|
|
|
| Integer
| DeleteFirst, Search, AssignValue,
| Удалить три первых элемента в каждом из списков L1, L2, L3, затем заменить нулями все элементы с заданным значением.
|
| Integer
| MaxItem, Move
| Переместить максимальные элементы списков L1, L2, L3 в их начала.
|
| Integer
| LastValue, DeleteLast
| Удалить все элементы с нулевым значением в конце списков L1, L2, L3 до 1-го отличного от нуля.
|
| Integer
| FirstValue, DeleteFirst
| Удалить все элементы с нулевым значением в начале списков L1, L2, L3 до 1-го отличного от нуля.
|
| Integer
| AssLists
| Сформировать список L4, состоящий из элементов, входящих хотя бы в один из списков L1, L2, L3.
|
| Integer
| CrossLists
| Сформировать список L4, состоящий из элементов, входящих одновременно в каждый из списков L1, L2, L3.
|
| Integer
| EvenList
| Сформировать список L4, состоящий из четных элементов списков L1, L2, L3.
|
| Real
| MinItem,
LastItem, ChangeP
| Поменять местами минимальный и последний элементы списков L1, L2.
|
| Real
| ChangeN
| Осуществить перестановку элементов списков L1, L2 – зеркальную относительно их середины.
|
| Real
| ZeroBeforNeg
| Перед каждым отрицательным элементом списков L1, L2 поместить элемент с нулевым значением.
|
| Real
| Equal
| Среди 4-х списков найти списки, состоящие из одинаковых элементов.
|
| Real
| Subtract
| Удалить из списка L1 элементы, входящие в списки L2 и L3.
|
| Real
| InsertSort,
SortList.
| Сформировать упорядоченный список L1 из элементов списков L2, L3.
|
| Real
| MaxValue
| Найти наименьший из наибольших элементов списков L1, L2, L3.
|
| Real
| Average
| Найти средние арифметические значения элементов списков L1, L2, L3.
|
| Char
| SplitLines
| После каждого 10-го элемента списков L1, L2 разместить символы CR, LF (#13, #10).
|
| Char
| DeleteDigits
| Исключить элементы-цифры из списков L1, L2.
|
| Char
| FirstValue, DeleteValue
| Удалить элементы списков L1, L2, совпадающие с первым.
|
| Char
| Identity
| Среди 4-х списков найти эквивалентные списки.
|
| Char
| DeleteLetters
| Исключить элементы-буквы из списков L1, L2.
|
| Char
| Quantity
| Среди 4-х списков найти список, содержащий наибольшее количество заданных символов.
|
| String
| Concat
| Сформировать список L4 сцеплением списков L1, L2, L3.
|
| String
| SortLength
| Отсортировать списки L1, L2, L3 по длине строкового значения элементов.
|
| String
| DigitList
| Сформировать списки L3 и L4 из тех элементов списков L1 и L2 соответственно, которые представляют собой правильную запись числовой константы.
|
| String
| ConsList
| Сформировать списки L3 и L4 из элементов списков L1 и L2 соответственно, содержащих не менее 3 согласных букв.
|
| String
| MaxVowel
| Найти элементы списков L1, L2, L3, содержащие наибольшее число гласных букв.
|
| String
| IDList
| Сформировать списки L3 и L4 из тех элементов списков L1 и L2 соответственно, которые являются идентификаторами.
|
| String
| InsertLast
| Дописать в конец списка слова «конец», «списка», «.»
|
| String
| Search, Delete
| Удалить элементы списков L1, L2, L3 с заданным значением.
|
| String
| InsertSort, SortList
| Включить в списки L2, L3 элементы списка L1 в отсортированном порядке.
|
Спецификации подпрограмм Таблица 2
Подпрограмма
| Спецификация
| AssignValue(L, p, v)
| Присвоение элементу с указателем p в списке L значения v.
| AssLists(L, L1)
| Пополнение списка L элементами списка L1, отсутствующими в L.
| Average(L): tValue
| Возвращение среднего арифметического значений элементов списка.
| ChangeN(L, n1, n2)
| Обмен значениями элементов с номерами n1 и n2 в списке L.
| ChangeP(L, p1, p2)
| Обмен значениями элементов с адресами p1 и p2 в списке L.
| Concat(L, L1, L2)
| Сцепление списков L1 и L2 в список L.
| ConsList(L, L1)
| Пополнение списка L элементами списка L1, содержащими не менее 3 согласных букв.
| CrossLists(L, L1)
| Удаление из списка L элементов, отсутствующих в списке L1.
| Delete(L, p): tValue
| Исключение элемента с указателем p списка L и возвращение его значения.
| DeleteDigits(L)
| Исключение символов-цифр из списка L.
| DeleteFirst(L): tValue
| Исключение первого элемента списка L и возвращение его значения.
| DeleteLast(L): tValue
| Исключение последнего элемента списка L и возвращение его значения.
| DeleteLetters(L)
| Исключение символов-букв из списка L.
| DeleteValue(L, v)
| Исключение из списка L элементов со значением v.
| DigitList(L, L1)
| Пополнение списка L элементами списка L1, представляющими собой правильную запись числовой константы.
| Equal(L1, L2): Boolean
| Возвращение True, если списки L1 и L2 состоят из одинаковых элементов.
| EvenList(L, L1)
| Пополнение списка L четными элементами списка L1, отсутствующими в списке L.
| FirstValue(L): tValue
| Возвращение значения первого элемента списка L.
| Identity(L1, L2): Boolean
| Возвращение True, если списки L1 и L2 состоят из одинаковых последовательностей элементов.
| IDList(L, L1)
| Пополнение списка L элементами списка L1, представляющими собой правильную запись идентификатора.
| IndexOf(L, p): Word
| Возвращение номера элемента с указателем p списка L.
| InsertLast(L, v)
| Вставка в конец списка L элемента со значением v.
| InsertSort(L, v)
| Вставка в список L элемента со значением v в отсортированном порядке.
| Item(L, n): pItem
| Возвращение указателя на элемент с номером n списка L.
| LastItem(L): pItem
| Возвращение указателя на последний элемент списка L.
| LastValue(L): tValue
| Возвращение значения последнего элемента списка L.
| MaxItem(L): pItem
| Поиск в списке L элемента с максимальным значением и возвращение указателя на него.
| MaxValue(L): tValue
| Поиск в списке L элемента с максимальным значением и возвращение его значения.
| MaxVowel(L): tValue
| Поиск в списке L элемента с максимальным числом гласных букв и возвращение его значения.
| MinItem(L): pItem
| Поиск в списке L элемента с минимальным значением и возвращение указателя на него.
| Move(L, p1, p2)
| Удаление элемента с указателем p1 списка L и вставка его перед элементом с указателем p2.
| Quantity(L, c): Word
| Возвращение количество символов c в списке L.
| Search(L, v): pItem
| Поиск в списке L первого элемента со значением v и возвращение указателя на него.
| SortLength(L, L1)
| Вставка элементов списка L1 в список L в порядке возрастания длин строк.
| SortList(L, L1)
| Вставка элементов списка L1 в список L в отсортированном порядке.
| SplitLines(L, n)
| Вставка после каждого n-го элемента (символа) списка L символов CR, LF (разбиение списка на строки).
| Subtract(L, L1)
| Удаление из списка L элементов, входящих в список L1.
| Value(L, p): tValue
| Возвращение значения элемента с указателем p списка L.
| ZeroBeforNeg(L)
| Вставка перед каждым отрицательным элементом списка L элемента с нулевым значением.
|
|