Для матриц со случайным расположением элементов:
1. Три массива, длина которых равна количеству не фоновых элементов: массив для хранения не фоновых элементов и два массива для хранения индексов строки и столбца не фоновых элементов;
2. Одномерный массив для хранения не фоновых элементов и два вспомогательных массива: один хранит номер столбца не фонового элемента, другой размерностью количества строк матрицы для хранения номера первого не фонового элемента i-той строки в одномерном представлении
Варианты обработки матриц:
1. Найти максимальный элемент и его позицию в матрице.
2. Определить индексы и значения всех элементов, превышающих среднее арифметическое значение элементов матрицы.
3. Определить индексы и значения всех элементов, лежащих в заданном диапазоне (вводится с клавиатуры).
4. Определить индексы и значения всех элементов, меньших значения (max+min)/2.
5. Найти разницу между средним арифметическим значением элементов матрицы и значением (max+min)/2.
6. Определить минимальный положительный элемент матрицы и его индексы.
7. Определить максимальный отрицательный элемент матрицы и его индексы.
8. Найти минимальный элемент и его позицию в матрице.
9. Определить индексы и значения всех элементов, не превышающих среднее арифметическое значение элементов матрицы.
10. Определить индексы и значения всех элементов, не лежащих в заданном диапазоне (вводится с клавиатуры).
11. Определить индексы и значения всех элементов, больших значения (max+min)/2.
12. Найти разницу между средним арифметическим значением элементов матрицы и значением (max-min).
13. Определить минимальный по модулю элемент матрицы и его индексы.
14. Определить максимальный по модулю элемент матрицы и его индексы.
Лабораторная работа № 11.
Тема: Обработка динамических структур.
Цель работы: получить практические навыки организации и обработки связных списков.
Ход работы:
1. Выбрать вариант задания.
2. Реализовать заданную структуру данных. Для каждой структуры данных реализовать операции создания и удаления всего списка, а также добавления и удаления узлов.
3. Разработать алгоритм, реализующий индивидуальное задание.
4. Реализовать алгоритм.
5. Подготовить отчет о выполнении лабораторной работы.
Все манипуляции со списками необходимо выполнять через манипуляции с указателями, то есть если необходимо переставить местами два узла в списке, то следует соответствующим образом перевести указатели, а не переприсвоить значения информационной части узлов.
Варианты задания:
1. Описать структуру Student, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
- упорядочить записи по возрастанию номера группы;
- вывести фамилии и номера групп для студентов, средний балл которых больше 4,0;
- если таких студентов нет, вывести соответствующее сообщение.
2. Описать структуру Student, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
- упорядочить записи по возрастанию среднего балла;
- вывести ведомость на получение стипендии: фамилии и номера групп для студентов, которые имеют оценки 4 и 5;
- если таких студентов нет, вывести соответствующее сообщение.
3. Описать структуру Student, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
- упорядочить записи по алфавиту;
- вывести фамилии и номера групп для студентов, которые имеют хотя бы одну оценку 2;
- если таких студентов нет, вывести соответствующее сообщение.
4. Описать структуру Aeroflot, содержащую следующие поля: название пункта назначения; номер рейса; тип самолета.
Написать программу, выполняющую следующие действия:
- упорядочить записи по номеру рейса;
- вывести номера рейсов и типы самолетов, вылетающих в пункт назначения, название которого вводится с клавиатуры;
- если таких рейсов нет, вывести соответствующее сообщение.
5. Описать структуру Aeroflot, содержащую следующие поля: название пункта назначения; номер рейса; тип самолета.
Написать программу, выполняющую следующие действия:
- упорядочить записи в алфавитном порядке по названиям пунктов назначения;
- вывести номера рейсов и пункты назначения, обслуживаемых самолетами, тип которых вводится с клавиатуры;
- если таких рейсов нет, вывести соответствующее сообщение.
6. Описать структуру Train, содержащую следующие поля: название пункта назначения; номер поезда; время отправления.
Написать программу, выполняющую следующие действия:
- упорядочить записи в алфавитном порядке по названиям пунктов назначения;
- вывести информацию о поездах, отправляющихся после введенного с клавиатуры времени;
- если таких поездов нет, вывести соответствующее сообщение.
7. Описать структуру Train, содержащую следующие поля: название пункта назначения; номер поезда; время отправления.
Написать программу, выполняющую следующие действия:
- упорядочить записи по времени отправления поездов;
- вывести информацию о поездах, направляющихся в пункт назначения введенного с клавиатуры;
- если таких поездов нет, вывести соответствующее сообщение.
8. Описать структуру Train, содержащую следующие поля: название пункта назначения; номер поезда; время отправления.
Написать программу, выполняющую следующие действия:
- упорядочить записи по номерам поездов;
- вывести информацию о поездах, номера которых введены с клавиатуры;
- если таких поездов нет, вывести соответствующее сообщение.
9. Описать структуру Worker, содержащую следующие поля: фамилия и инициалы работника; название занимаемой должности; год поступления на работу.
Написать программу, выполняющую следующие действия:
- упорядочить записи в алфавитном порядке;
- вывести информацию о работниках, чей стаж работы превышает значение, введенное с клавиатуры;
- если таких работников нет, вывести соответствующее сообщение.
10. Описать структуру Marsh, содержащую следующие поля: название пункта назначения; название пункта отправления; номер маршрута.
Написать программу, выполняющую следующие действия:
- упорядочить записи по номерам маршрутов;
- вывести информацию о маршруте, номер которого введен с клавиатуры;
- если таких маршрутов нет, вывести соответствующее сообщение.
11. Описать структуру Price, содержащую следующие поля: название товара; название магазина, где он продается; стоимость товара.
Написать программу, выполняющую следующие действия:
- упорядочить записи в алфавитном порядке по наименованию товара;
- вывести информацию о товаре, название которого введено с клавиатуры;
- если таких товаров нет, вывести соответствующее сообщение.
12. Описать структуру Price, содержащую следующие поля: название товара; название магазина, где он продается; стоимость товара.
Написать программу, выполняющую следующие действия:
- упорядочить записи в алфавитном порядке по наименованию магазинов;
- вывести информацию о товарах, продающихся в магазине, название которого введено с клавиатуры;
- если таких магазинов нет, вывести соответствующее сообщение.
13. Описать структуру Order, содержащую следующие поля: расчетный счет плательщика; расчетный счет получателя; перечисляемая сумма.
Написать программу, выполняющую следующие действия:
- упорядочить записи в алфавитном порядке по расчетным счетам плательщиков;
- вывести информацию о сумме, снятой с расчетного счета плательщика, название которого введено с клавиатуры;
- если такого счета нет, вывести соответствующее сообщение.
14. Описать структуру Order, содержащую следующие поля: расчетный счет плательщика; расчетный счет получателя; перечисляемая сумма.
Написать программу, выполняющую следующие действия:
- упорядочить записи в порядке возрастания перечисляемых сумм;
- вывести информацию о плательщике, с расчетного счета которого снята наибольшая сумма и переведена на расчетный счет получателя, название которого введено с клавиатуры;
- если такого счета нет, вывести соответствующее сообщение.
15. Описать структуру Student, содержащую следующие поля: фамилия и инициалы; название группы (буквы и цифры); успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
- упорядочить записи по возрастанию среднего балла;
- вывести фамилии и названия групп для студентов, которые имеют одинаковую фамилию;
- вывести наибольшее количество однофамильцев;
- если таких студентов нет, вывести соответствующее сообщение.
16.. Описать структуру Student, содержащую следующие поля: фамилия и инициалы; номер группы; успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
- упорядочить записи по алфавиту;
- вывести фамилии и номера групп для студентов, которые имеют оценки 4 и 5;
- вывести список студентов заданной группы (номер группы ввести с клавиатуры);
- если таких студентов нет, вывести соответствующее сообщение.
17. Описать структуру Auto, содержащую следующие поля: марка; номер; фамилия владельца.
Написать программу, выполняющую следующие действия:
- вывести фамилии владельцев и номера автомобилей данной марки (марку ввести с клавиатуры), упорядочив записи по алфавиту;
- вывести количество автомобилей каждой марки;
- если автомобилей данной марки нет, вывести соответствующее сообщение.
18. Описать структуру Book, содержащую следующие поля: фамилия автора; название и год издания;
Написать программу, выполняющую следующие действия:
- вывести названия книг данного автора, упорядочив записи по алфавиту (фамилию автора ввести с клавиатуры);
- вывести список книг, которые прослужили более 10 лет;
- если таких книг нет, вывести соответствующее сообщение.
19. Описать структуру Cubic, содержащую следующие поля: длина ребра в сантиметрах; цвет; материал, из которого он изготовлен;
Написать программу, выполняющую следующие действия:
- вывести данные о кубиках, длина ребра которых больше 5 сантиметров;
- вывести данные о кубиках, изготовленных из заданного материала (название материала ввести с клавиатуры);
- если таких кубиков нет, вывести соответствующее сообщение.
20. Описать структуру Cubic, содержащую следующие поля: длина ребра в сантиметрах; цвет; материал, из которого он изготовлен;
Написать программу, выполняющую следующие действия:
- вывести данные о кубиках, упорядочив по убыванию длины ребра;
- вывести данные о кубиках, заданного цвета (цвет ввести с клавиатуры);
- если таких кубиков нет, вывести соответствующее сообщение.
Варианты динамических структур:
- односвязный список,
- двусвязный список,
- кольцевой список,
- стек.