Лабораторная работа №11
Тема: Применение указателей
Цель: рассмотреть возможности использования указателей при решении задач на обработку массивов и списков.
Вид работы: фронтальная.
Время выполнения: 2 часа.
Теоретические сведения:
Указатели в Си++ используются для связи переменных с машинными адресами. Понятие указателя тесно сплетено с обработкой массивов и строк. Массивы в Си++ могут рассматриваться как специальная форма указателя, связанная с непрерывной областью памяти для хранения индексируемой последовательности значений.
Если v – переменная, то &v – это адрес или место в памяти, где хранится её значение. Оператор определения адреса & (address operator) является унарным и имеет такой же приоритет и порядок выполнения справа налево, как и остальные унарные операторы. В программе можно объявить переменные-указатели и затем использовать их для получения адресов в качестве значений.
Объявление
int *p;
говорит, что переменная p будет иметь тип “указатель на целое”.
Унарные операторы new и delete служат для управления свободной памятью (free store). Свободная память – это предоставляемая системой область памяти для объектов, время жизни которых напрямую управляется программистом. Программист создаёт объект с помощью ключевого слова new, а уничтожает его, используя delete.
Ход работы:
1) Составьте словесный алгоритм решения каждой задачи.
2) Оформите в тетрадь листинги программ.
Задания к работе:
Вариант №1
1. Найти в каждом столбце матрицы S(n, m) максимальный и минимальный элементы и поместить их на место первого и последнего элемента столбца соответственно. Вывести на экран исходную и полученную матрицы в общепринятом виде. Для создания массива используйте указатели.
Вариант №2
1. Упорядочить по убыванию элементы каждого столбца матрицы A(n, m). Вывести на экран исходную и полученную матрицы в общепринятом виде. Для создания массива используйте указатели.
Вариант №3
1. Для целочисленной матрицы X(n, m) найти для каждой строки число элементов, кратных пяти, и наибольший из полученных результатов. Для создания массива используйте указатели.
Вариант №4
1. Из матрицы A(n, m) записать в массив B подряд все положительные элементы, в матрицу C подряд все отрицательные. Для создания массивов используйте указатели.
Вариант №5
1. Найти в каждой строке матрицы G(n, m) максимальный и минимальный элементы и поместить их на место первого и последнего элемента строки соответственно. Вывести на экран исходную и полученную матрицы в общепринятом виде. Для создания массива используйте указатели.
Вариант №6
1. Дана матрица Z(n, n), получите транспонированную. Транспонированием квадратной матрицы называется такое ее преобразование, при котором строки и столбцы меняются ролями: i-й столбец становится i-й строкой. Для создания массивов используйте указатели. На экран выведите обе матрицы в общепринятом виде.
Вариант №7
1. Переписать подряд в массив Y чётные элементы матрицы X(n, m), а в массив Z – нечётные элементы. Для создания массивов используйте указатели. На экран выведите три массива в общепринятом виде.
Контрольные вопросы:
1) Дайте определение понятию “указатель”.
2) Для чего предназначены указатели? Охарактеризуйте основные области использования.
3) Какие функции для работы с памятью вы знаете?
4) Напишите пример выделения памяти для произвольного массива.
5) Приведите пример использования операции разыменования.
6) Что такое список и как его создать с помощью указателя?
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.