Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Работа с объектами- векторамиСодержание книги
Поиск на нашем сайте
Для работы с большими объемами данных создаем регулярную структуру данных - массив. Основная трудность при работе со статическими массивами - это большая память, запрашиваемая при описании массивов. Решение задачи упрощается при использовании динамических структур или массивов с указателями. В данном разделе задачника предлагается разрабатывать объекты для обработки структуры данных типа массива. 2.2.1. Разработать объект-вектор. Даны две последовательности А и В. Последовательности хранятся в файлах. Количество элементов в последовательностях неизвестно. Для обработки последовательностей описать методы: шейкер-сортировки, создания последовательности из не совпадающих элементов каждой из последовательностей, ввода и вывода всех последовательностей. Вывод результирующей последовательности сопровождать выводом номеров элементов в исходных последовательностях. Сортировку сравнить по скорости с методом простых перестановок. [Л.1, 2, 3] 2.2.2. Разработать объект-вектор. Дана последовательность А. Последовательность хранится в файле. Количество элементов последовательности неизвестно. Для обработки последовательности описать методы: сортировки простыми вставками, определения сумм отрицательных и положительных элементов, суммы всех элементов, а также индексов только положительных и только отрицательных элементов. Сортировку сравнить по скорости с методом простых перестановок. [Л.1, 2, 3] 2.2.3. Разработать объект-вектор. Даны последовательности А и В. Последовательности хранятся в файлах. Количество элементов в последовательностях неизвестно. Для обработки последовательностей описать методы: сортировки простыми включениями, создания последовательности из элементов, не входящих в одну из последовательностей, но входящих в другую, ввода и вывода всех последовательностей. Сортировку сравнить по скорости с методом пузырька. 2.2.4. Разработать объект-вектор. Даны последовательности А и В. Последовательности хранятся в файлах. Количество элементов в последовательностях неизвестно. Для обработки последовательностей описать методы: быстрой сортировки, создания последовательности из элементов, входящих в каждую из последовательностей только по одному разу, ввода и вывода всех последовательностей. Сортировку сравнить по скорости с методом простых перстановок. [Л.1, 2, 3] 2.2.5. Разработать объект-вектор. Даны последовательности А и В. Последовательности хранятся в файлах. Количество элементов в последовательностях неизвестно. Для обработки последовательностей описать методы: сортировки простым выбором, создания последовательности из 2-х исходных последовательностей, ввода и вывода всех последовательностей. Вывод результирующей последовательности сопровождать выводом номеров элементов в исходных последовательностях. Сортировку сравнить по скорости с методом простых перестановок. [Л.1, 2, 3] 2.2.6. Разработать объект-вектор. Дана последовательность А. Последовательность хранится в файле. Количество элементов в последовательности неизвестно. Для обработки последовательностей описать методы: сортировки простыми включениями, создания последовательности, в которой сначала стоят все положительные элементы, а затем все отрицательные, ввода и вывода всех последовательностей. Вывод результирующей последовательности сопровождать выводом номеров элементов в исходной последовательностях. Сортировку сравнить по скорости с методом простых перстановок. 2.2.7. Разработать объект-вектор. Дана последовательность А. Последовательность хранится в файле. Количество элементов в последовательности неизвестно. Для обработки последовательностей описать методы: сортировки простым выбором, Обработки последовательности, в форме -- <число1> <количество>,...,<число2> <количество>, ввода и вывода всех последовательностей. Сортировку сравнить по скорости с методом простых перестановок. 2.2.8. Разработать объект-вектор. Даны последовательности А. Последовательность хранится в файле. Количество элементов в последовательности неизвестно. Для обработки последовательностей описать методы: сортировки простыми включениями, создания последовательности, в которую входят только те элементы последовательности, которые стоят между максимальным и минимальным элементами неупорядоченной последовательности, ввода и вывода всех последовательностей. Вывод результирующей последовательности сопровождать выводом номеров элементов в исходной последовательностях. Сортировку сравнить по скорости с методом пузырька. 2.2.9. Разработать объект-вектор. В файле хранятся сведения о жителях некоторой улицы: фамилия, адрес, год рождения. Все сведения записываются в памяти в виде последовательности. Вводится некоторая текущая дата. В последовательности найти всех жителей, имеющих право участвовать в выборах(возраст >=18). Упорядочить последовательность методом простого выбора по фамилиям жителей. Полученные последовательности вывести на экран. 2.2.10. Разработать объект-вектор. В файле хранятся сведения об абонентах телефонной сети: фамилия, адрес, номер телефона. Записать все сведения в памяти в виде последовательности. Все записи в файле не упорядочены. Упорядочить сведения по фамилиям абонентов методом быстрой сортировки. Удалить из сведений убывшего абонента, внести в последовательность данные о новом абоненте, изменить данные об абоненте. Вывести все сведения на экран. 2.2.11. Разработать объект-вектор. Данные о фондах библиотеки хранятся в файле: автор книги, название книги, шифр издания(тоже строка), год издания, количество книг данного названия. Из всех сведений создать последовательность из книг одного автора. Упорядочить последовательность по фамилиям авторов методом простого включения. Обеспечить внесение в полученную последовательность новых сведений. Вывод на экран всех результатов обработки обязателен. 2.2.12. Вводится произвольная последовательность целых чисел и записывается в памяти в виде динамической последовательности. Разработать объект-вектор, обеспечивающий формирование последовательности, удаление из последовательности первого отрицательного числа, всех отрицательных чисел, любого заданного по номеру числа, определения длины результирующей последовательности, сохранение последовательности в файле, вывод последовательности и всех ее модификаций на экран. 2.2.13. Имеется N населенных пунктов. Все пункты пронумерованы и имеют свои наименования. Некоторые из пунктов соединены попарно дорогами. Определить можно ли попасть по этим дорогам из любого K-ого пункта в пункт M. Информация о дорогах задается в виде последовательности пар чисел i и j, указывающих номера соединенных дорогами пары пунктов i и j. Если пункты не соединены, тогда в паре i и j номера равны 0. Признак конца последовательности, - это пара нулей в разделе признаков соединения. Разработать объект, обеспечивающий формирование исходной последовательности, сохранение всех сведений в файле, обработка сведений о возможных траекториях движения, вывод последовательностей полученных траекторий движения по возможным дорогам. Обработка последовательности по всем заданиям обеспечивается через текстовое меню. 2.2.14. Дана действительная матрица размерности M x N. С помощью алгоритма сортировки выбором обеспечить выполнение методов обработки строк матрицы: упорядочить строки матрицы по неубыванию значений первых элементов каждой строки, по невозрастанию сумм элементов строк, по возрастанию значений наименьших элементов строк, по убыванию значений наибольших элементов строк, создание и сохранение исходной матрицы в файле, вывод всех вариантов преобразования. Объект, содержащий все названные методы обработки последовательностей строк, должен работать под управлением текстового меню. 2.2.15. В файлах создаются две последовательности A и B. Последовательности произвольные из действительных чисел. Выполнить сортировки последовательностей алгоритмом деления пополам: взять сначала 1 и n+1 в качестве границ места очередного элемента X последовательности, Далее сдвигать эти границы следующим образом: 1 и K -ый номер выбираются, где K равно целой части суммы индексов границ последовательности, если Ak < X. В качестве нижней границы берется K, а верхняя граница не меняется. При противоположном соотношении сортируемых чисел без изменеения остается нижняя граница. Когда границы совпадут, тогда сортировка завершается. Получить последовательность натуральных чисел K1,... Km., где Ki - это номер места элемента последовательности B при слиянии этой последовательности с упорядоченной последовательностью A без нарушения признака упорядоченности. Методы объекта должны также обеспечить вывод всех вариантов последовательностей и выполнение всех пунктов задания через текстовое меню. 2.2.16. Разработать объект для обработки результатов некоторой лотереи. В качестве первого из результатов розыгрыша лотереи имеется последовательность выигравших шестизначных номеров билетов. Для каждого из выигравших билетов есть последовательность сумм выигрышей. Количество выигрышей M. Выигрыши - это последовательность P1,.....,Pm, где Pi - это выигрыш i-ого билета. Определить суммарный выигрыш, выпавший на любые k билетов из массива выигравших билетов. Обеспечить сохранение данных розыгрышей в файлах и вывод сведений на экран. Обработка всех сведений по розыгрышу выполняется через меню. 2.2.17. В файле задать произвольную последовательность целых чисел. Создать упорядоченную последовательность из неповторяющихся чисел исходной последовательности. Элементы, которые уже попали в результирующую последовательность не надо пытаться вставить еще раз в последовательность. Определить количество сравнений, необходимых для решения этой задачи алгоритмом быстрой сортировки. Обеспечить в методах объекта вывод исходной последовательности, преобразованной последовательности и тех элементов, которые были исключены из последовательности в результате преобразования. Все преобразования выполнять через текстовое меню. 2.2.18. Создать файл из слов различной длины. Считаем, что слова не имеют более 8 букв в длину. Между словами может быть произвольное число пробелов. Разработать объект, в котором последовательность слов упорядочивается следующим образом: сначала по алфавиту однобуквенные слова, затем двухбуквенные и т.д. В каждой последовательности одинаковые слова записывать по одному разу. Обеспечить вывод всех видов последовательностей, а также тех слов, которые не вошли в результирующую последовательность. Обработку последовательностей выполнять через меню. 2.2.19. Дана последовательность несовпадающих между собой натуральных чисел. Длина последовательности не более 100. Элементы Xi и Xj последовательности считаются взаимосвязанными, если значение элемента Xi=j. Последовательность связанных элементов образует цепь. Описать методы объекта для определения цепей в последовательности элементов, создание последовательностей типа цепи, определение суммы элементов в каждой из цепей, минимальную и максимальные длины цепей. Все исходные данные должны быть записаны в файл. Обработка последовательности выполняется через меню. ПРИМЕР 2.2 Program Number_2_2; {текст основной программы} uses crt,prg8; var t:TPerson; Begin t.run; End. Unit Prg8;{ текст модуля, содержащего все объявления объекта -последовательности} Interface uses Crt; {Создать последовательность из некоторых сведений о жителях некоторого района. Данные представлены в формате: фамилия, возраст. Отсортировать последовательность по возрасту методом простых включений. Синтаксически решение задачи оформить через структуру объект- последовательность. Эту структуру можно рассматривать, как объект- персона.} Type Telement = record { Структура- запись } Title: string[20]; { Фамилия } age: integer; { Номер по порядку } end; pVec=^Vector; Vector=array[0..0] of Telement; TPerson=object pV:pVec; n,nm:integer; constructor Init(a:integer); destructor Done; procedure Insert; {Вставить элементы в последовательность} procedure Show; {Вывести на экран последовательность в заданной форме} procedure Sort; {Сортировка последовательности методом простого включения по возрасту} procedure Run; {выполнить заранее определенную последовательность действий} end; ff=file of Telement;{} Implementation constructor TPerson.init(a:integer); Begin Getmem(pv,a*sizeof(Telement)); {Выделение памяти для динамического вектора} nm:=a; end; destructor TPerson.Done; Begin Freemem(pv,nm*sizeof(Telement)); {Освобождение динамической памяти} end; procedure Tperson.Insert; Var i:integer; Begin for i:=1 to nm do Begin write('Введите фамилию '); readln(pv^[i].Title); write('Введите возраст '); readln(pv^[i].age); end; end; procedure TPerson.Show; Var i:integer; Begin for i:=1 to nm do Begin writeln(pv^[i].Title:20,' ',pv^[i].age:5); end; end; procedure TPerson.Sort; Var i,j:integer; temp: Telement; Begin for i:=2 to nm do Begin temp:=pV^[i]; pV^[0]:=temp; j:=i-1; while temp.age<pv^[j].age do Begin pv^[j+1]:=pv^[j]; j:=j-1; end; pv^[j+1]:=temp; end; end; procedure TPerson.run; var m:integer; Begin write('Введите количество сведений '); readln(m); init(m); insert; show; readln; sort; show; readln; done; end; Begin End.
|
||||
Последнее изменение этой страницы: 2016-07-16; просмотров: 147; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.198.113 (0.007 с.) |