Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет 4 - Указатели и ссылки - СФ

.pdf
Скачиваний:
1
Добавлен:
19.03.2023
Размер:
420.46 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕЕНЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра комплексной информационной безопасности электронно-

вычислительных систем (КИБЭВС)

Указатели и ссылки

Отчет по лабораторной работе № 4 По дисциплине «Языки программирования»

Студент гр. ххх

________ ххх

________

Принял

Ххх

ххх

________ ххх

________

Томск 2023

1 Введение

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

Для работы был выбран язык программирования C++, а также Python.

2

2 Ход работы

2.1Ход работы в C++

Входе выполнения данной лабораторной работы была написана программа, которая содержит в себе работу с указателями и ссылками, работу с одномерными массивами, двумерными массивами, присваиванием значений указателям и ссылкам, работу с типизированными и нетипизированными указателями, а также работу с константами в языке программирования C++.

На рисунке 2.1.1 показаны функции увеличения переменной без использования самой переменной и её возвращения, используется только указатель на неё, и ссылка.

Рисунок 2.1.1 - Функции увеличения переменной

На рисунке 2.1.2 представлена работа с одномерным массивом и указателем.

Рисунок 2.1.2 - Работа с указателем и одномерным массивом

3

На рисунке 2.1.3 представлена работа с указателями на константный объект и указателем-константой. Показаны ошибки (подчеркнуты красным),

присвоение знаечний.

Рисунок 2.1.3 - Работа с указателями и const

На рисунке 2.1.4 показана работа с типизированными и нетипизированными указателями.

4

Рисунок 2.1.4 – Работа с типизированными и нетипизированными указателями

На рисунке 2.1.5 показана работа с указателями на функции.

Рисунок 2.1.5 - Работа с указателями на функцию

5

На рисунке 2.1.6 показан перебор двухмерного массива с помощью указателя.

Рисунок 2.1.6 – Перебор двухмерного массива, с помошью указателя

На рисунке 2.1.7 предсталвен результат работы всей программы.

Рисунок 2.1.7 - Результат работы программы

6

2.2Ход работы в Python

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

На рисунке представлено переназанчение ссылка с одного списка на другой. Список [1,2,3] удалится сборщиком мусора, из-за того что на этот список отсутсвуют ссылки.

Рисунок 2.2.1 - Переназначение ссылки на другой список

На рисунке 2.2.2 показана работа с присвоениемсписку еще одной ссылки,

и изменение первого элемента списка, после список выводится на экран через ссылку b.

7

Рисунок 2.2.2 - Изменение списка через ссылку и вывод на экран

На рисунке 2.2.3 приведено удаление ссылки на список, после чего на список будет ссылаться только одна сслыка. Если выводить данную сслыку в консоль, то будет возникать ошибка.

Рисунок 2.2.3 - Удаление ссылки на список

8

На рисунке 2.2.4 показана присвоение переменной функции, и вызов её через переменную. В С++ это аналог операции указатель на функцию.

Рисунок 2.2.4 - Присвоение переменной функции

Результат программы приведен на рисунке 2.2.5.

Рисунок 2.2.5 - Результат программы

9

3Заключение

Входе выполнения данной лабораторной работы были получены навыки работы с указателями и ссылками. Была проведена работа с одномерными массивами, функциями, типизированными и нетипизированными указателями, с

указателями на константный объект и указателями-константами, была проведена работа с ссылками, был написан перебор двухмерного массива, с помощью указателя, а также работа с указателями на функции

Код программы на C++ представлен в приложении А. Код программы на

Python представлен в приложении Б.

10