Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИиП.doc
Скачиваний:
29
Добавлен:
10.04.2015
Размер:
14.43 Mб
Скачать

D.8. Лабораторная работа № 8

Тема:Ссылки, списки, динамические структуры данных.

Цель:Практическая работа на ЭВМ с динамическими структурами данных.

При работе со статическими данными необходимо определить количество компонент (списка, массива), реально существующих в момент начала работы. Добавлять новые компоненты можно только к концу списка, исключать ненужные компоненты неудобно из-за возможности появления свободного пространства в массиве, которые необходимо каким-то образом отмечать. Эти недостатки можно исключить, используя динамические структуры данных.

Для выполнения работы необходимо изучить следующие понятия: ссылочный тип, односвязный, двусвязный, кольцевой список.

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

  1. Построить односвязный список из входной последовательности чисел и вывести ее в порядке неубывания.

  2. Написать программу, которая по списку из входной последовательности чисел строит два новых списка. Первый – из положительных элементов, второй – из остальных элементов исходного списка.

  3. Из входной последовательности чисел построить список, в котором необходимо определить номера элементов, содержащих наибольшее значение (номера элементов определяются порядком ввода чисел и появления соответствующих элементов).

  4. Построить односвязный список из входной последовательности чисел, затем удалить все отрицательные элементы и подсчитать их количество; вывести на печать количество удаленных элементов и получившийся список.

  5. Написать программу, которая удаляет из односвязного списка, содержащего последовательность чисел, первый отрицательный элемент и выводит список на печать.

  6. Построить односвязный список из входной последовательности символов, заменить все разделители на знак подчеркивания и вывести полученный текст в прямом и обратном порядке.

  7. Составить список из входной последовательности чисел и упорядочить их в порядке неубывания.

  8. Написать программу, которая в списке переставляет местами первое и последнее слово.

Построить список символов, содержащий входной текст. Написать программу, которая:

  1. Печатает текст из первых букв всех слов списка.

  2. Удаляет из слов списка их первые буквы.

  3. Печатает все слова списка в столбик.

  4. Определяет количество слов, отличных от последнего.

Написать программу, которая удаляет из линейного списка входной последовательности целых чисел:

  1. Первый элемент.

  2. Элемент, содержащий число, равное числу предыдущего элемента списка.

  3. Последний элемент.

  4. Первый отрицательный элемент.

  5. Все отрицательные элементы, если таковые есть.

18-25. Построить линейный список и решить задачу, используя условие задачи, приведенное в лабораторной работе № 7.

D.9. Лабораторная работа № 9

Тема:Создание и обработка двоичных файлов.

Цель:Написание и отладка программ на обработку двоичных файлов.

Файл – это область на внешнем запоминающем устройстве (ВЗУ) большой емкости, предназначенная для хранения однотипной информации. Область имеет имя, которое обычно хранится в каталоге ВЗУ. В двоичных файлах могут быть записаны целые, вещественные числа и другие данные. При обработке информации, записанной в двоичный файл, очень часто допускаются грубые ошибки, обусловленные тем, что сначала содержимое файла (например, массив или матрица) переписывают в ОЗУ ЭВМ. Если файл большого размера (а размер файла ограничивается объемом ВЗУ, на несколько порядков превышающем объем оперативной памяти), он просто не уместится в ОЗУ. Выполняя данную работу следует организовать поэлементную загрузку и обработку данных в ОЗУ, и запись результата обработки в файл.

Для выполнения лабораторной работы № 9 необходимо изучить следующие вопросы:

  • Понятие файла, способы объявления файловых структур;

  • Процедуры открытия файла для записи и чтения, процедура закрытия файла;

  • Процедуры, осуществляющие передвижение файлового указателя по файлу, а также чтение и запись данных файла.

В условиях заданий «СА» – обозначает среднее арифметическое, «СГ» – среднее геометрическое.

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

  1. В квадратной матрице, находящейся в файле, подсчитать «СА» положительных элементов каждого сектора. В файле первая компонента – размер матрицы, далее – элементы построчно.

  2. В прямоугольной матрице, находящейся в файле, подсчитать «СА» отрицательных элементов строк (по каждой строке в отдельности). В файле первая компонента – размер строки, вторая – размер столбца, далее – элементы построчно.

  3. В квадратной матрице, находящейся в файле, найти максимальный и минимальный элементы и заменить элементы главной диагонали на максимальный элемент, побочной – на минимальный элемент. В файле первая компонента – размер матрицы.

  4. В прямоугольной матрице, находящейся в файле, найти минимальные и максимальные элементы строк. В файле первая компонента – размер строки, вторая – размер столбца, далее – элементы построчно.

  5. В прямоугольной матрице, находящейся в файле, найти максимальные и минимальные элементы столбцов. В файле первая компонента – размер строки, вторая – размер столбца, далее элементы построчно.

  6. Отсортировать числовой массив в файле в порядке неубывания. В файле первая компонента – размер массива, далее – элементы массива.

  7. Отсортировать числовой массив в файле в порядке невозрастания. В файле первая компонента – размер массива, далее элементы массива.

  8. Расположить элементы числового массива в файле в обратном порядке. В файле первая компонента – размер массива, далее – элементы массива.

  9. В квадратной матрице, находящейся в файле, найти минимальные элементы каждого сектора. В файле первая компонента – размер матрицы, далее элементы построчно.

  10. Элементы числового массива, находящегося в файле, расположить в следующем порядке: сначала – все положительные, затем – все нулевые, потом – все отрицательные. В файле первая компонента – размер массива, далее элементы.

  11. В квадратной матрице, находящейся в файле, найти максимальные элементы каждого сектора. В файле первая компонента – размер матрицы, далее элементы построчно.

  12. Из числового массива, находящегося в файле, сформировать файл, содержащий массив, в котором сначала записаны номера всех положительных элементов исходного массива, затем – номера всех отрицательных элементов, далее – номера всех нулевых элементов. В файлах первая компонента – размер массива, далее элементы массива.

  13. В прямоугольной матрице, находящейся в файле, подсчитать «СА» отрицательных элементов столбцов (по каждому столбцу в отдельности). В файле первая компонента – размер строки, вторая – размер столбца, далее – элементы построчно.

  14. В квадратной матрице, находящейся в файле, найти минимальные и максимальные элементы диагоналей. В файле первая компонента – размер матрицы, далее – элементы построчно.

  15. В прямоугольной матрице, находящейся в файле, подсчитать «СА» положительных элементов строк (по каждой строке в отдельности). В файле первая компонента – размер строки, вторая - размер столбца, далее – элементы построчно.

  16. В квадратной матрице, находящейся в файле, подсчитать «СА» элементов расположенных ниже главной диагонали. В файле первая компонента – размер матрицы, далее – элементы построчно.

  17. В квадратной матрице, находящейся в файле, подсчитать количество не нулевых элементов, расположенных ниже побочной диагонали. В файле первая компонента – размер матрицы, далее – элементы построчно.

  18. В прямоугольной матрице, находящейся в файле, расположить элементы строк в порядке неубывания. В файле первая компонента – размер строки, вторая – размер столбца, далее – элементы построчно.

  19. В прямоугольной матрице, находящейся в файле, расположить элементы строк в порядке невозрастания. В файле первая компонента – размер строки, вторая – размер столбца, далее – элементы построчно.

  20. Из прямоугольной матрицы, находящейся в файле, сформировать файл, содержащий массив из сумм положительных элементов строк матрицы. Во входном файле первая компонента – размер строки, вторая - размер столбца, далее – элементы построчно. В выходном файле первая компонента – размер массива, далее – элементы.

  21. Из прямоугольной матрицы, находящейся в файле, сформировать файл, содержащий массив из сумм отрицательных элементов столбцов матрицы. Во входном файле первая компонента – размер строки, вторая - размер столбца, далее – элементы построчно. В выходном файле первая компонента – размер массива, далее – элементы.

  22. Из целочисленного массива, находящегося в файле, сформировать файл, содержащий массив, элементы которого характеризуют частоту встречаемости целых чисел в диапазоне от 0 до 255 в исходном массиве. Во входном и выходном файлах первая компонента – размер массива, далее – элементы.

  23. Из двух целочисленных массивов, расположенных в файлах, сформировать массив, расположенный в файле, элементы которого характеризуют частоту встречаемости элементов второго массива среди элементов первого массива. В файлах первая компонента – размер массива, далее – элементы.

  24. В прямоугольной матрице, находящейся в файле, поменять местами строки с четными и нечетными номерами. В файле первая компонента – размер строки, вторая – размер столбца, далее – элементы построчно.

  25. В прямоугольной матрице, находящейся в файле, поменять местами столбцы с четными и нечетными номерами. В файле первая компонента – размер строки, далее – элементы построчно.