ЯП5
.docxМинистерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра безопасности информационных систем (БИС)
Указатели
Отчет по лабораторной работе №5
по дисциплине «Языки программирования»
Студент гр.739-1
_______ М. Д. Климанов
3.12.2020
Принял
Младший научный сотрудник
______ В. А. Полюга
3.12.2020
Томск 2020
Содержание
Содержание 2
1 Введение 3
2 Ход работы 4
2.1 Указатели и ссылки на языке программирования Python 4
2.2 Указатели и ссылки на языке программирования C# 5
3 Заключение 7
Приложение А 8
Приложение Б 9
1 Введение
Целью данной работы является изучение различных типов рекурсий и способов их применения для решения практических задач.
2 Ход работы
В задании требуется в свободной форме продемонстрировать работу ссылок и указателей на двух языках:
1) С#, C, С++
2) Любой другой
Мною были выбраны языки: Python и C#.
2.1 Указатели и ссылки на языке программирования Python
На языке Python не существует указателей, поэтому на рисунке 2.1.1 представлен фрагмент ссылок
Пример программы представлен на рисунке 2.1.1.
Пример программы рисунок 2.1.1.
Результат работы программы представлен на рисунке 2.1.2.
Рисунок 2.1.2 – Результат работы первой программы
Листинг кода можно найти в приложении А.
2.2 Указатели и ссылки на языке программирования C#
На рисунке 2.2.1 изображен фрагмент кода, на котором представлена работа с указателями.
Пример программы рисунок 2.2.1.
Результат работы программы представлен на рисунке 2.2.2.
Рисунок 2.2.2 – Результат работы второй программы
На рисунке 2.2.3 изображен фрагмент кода, на котором представлена работа с ссылками
Пример программы рисунок 2.2.3.
Листинг кода можно найти в приложении Б.
Результат работы программы приведен на рисунке 2.2.4.
Рисунок 2.2.4 – Продолжение работы второй программы
3 Заключение
В результате выполнения лабораторной работы, были изучены такие приёмы как указатели и ссылки на языках Python и C#.
Отчет был написан согласно ГОСТ ОС ТУСУР.
Приложение А
(обязательное)
Листинг кода программы
list = [1, 2, 3, 'нет, один', 'два', 'три']
element_twoo = list[1], list[3]
print(element_twoo)
plist = list
plist[1] = 55
plist[3] = 'двадцать'
print(list[1], list[3])
print(list)
index = list[-1], list[-0]
print(index)
list = [5, 10, 15, 20]
for q in range(len(list)):
plist[q]*=2
print(list)
print(list[1:4])
plist = list
plist.append(666)
print(list)
plist.reverse()
print(list)
print(list.index(10), list.index(666))
Приложение Б
Листинг кода программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace указатели
{
class Program
{
static void Main(string[] args)
{
unsafe
{
//указатели
int x = 15;
int* y;
y = &x;
Console.WriteLine(*y);
*y = 25;
x = x / 5;
Console.WriteLine(*y);
int** z = &y;
**z = **z + 25;
Console.WriteLine(*y);
uint q = (uint)y;
Console.WriteLine("{0}", q);
byte* b = (byte*)(q + 4);
Console.WriteLine("{0}: {1}", q + 4, *b);
double* d = (double*)(q + 8);
Console.WriteLine("{0}: {1}", q + 8, *d);
//ссылки
int sx = 30;
ref int sy = ref sx;
Console.WriteLine(sx);
Console.WriteLine(sy);
sy = 59;
Console.WriteLine(sy);
sy++;
Console.WriteLine(sx);
Console.WriteLine(sy);
int sxs = 46;
int sys = 64;
ref int r = ref sxs;
Console.WriteLine(r);
r = 77;
Console.WriteLine(r);
r = ref sys;
Console.WriteLine(r);
r = 1;
Console.WriteLine(r);
}
}
}
}