Файл: Отчет по выполнению практического задания.docx

ВУЗ: Не указан

Категория: Отчеты по практике

Дисциплина: Не указана

Добавлен: 19.03.2024

Просмотров: 60

Скачиваний: 10

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования"МИРЭА - Российский технологический университет"РТУ МИРЭА Отчет по выполнению практического задания №1Поразрядные операции и их применение Дисциплина Структуры и алгоритмы обработки данных Выполнил студентГруппы ИКБО-11-21 Чиркинян К.А. Москва 2022 Цель. Получить навыки применения поразрядных операций в алгоритмах. Задание 1. Постановка задачи Выполнить упражнения по применению битовых операций по изменению значений битов в ячейке оперативной памяти, созданию маски для изменения значения ячейки. Создание выражения, содержащего поразрядные операции, для выполнения определенной операции над значением ячейкиВариант 30.

2.1 Решение задачи. Пункт 1

Код реализации алгоритма

Тестирование алгоритма

2.2 Решение задачи. Пункт 2

Код реализации алгоритма

Тестирование алгоритма

2.3 Решение задачи. Пункт 3

Код реализации алгоритма

Тестирование алгоритма

2.4 Решение задачи. Пункт 4

Код реализации алгоритма

Тестирование алгоритма

2.5 Решение задачи. Пункт 5

Код реализации алгоритма

Тестирование алгоритма

Задание 2.

1.1 Постановка задачи

2.1 Алгоритм решения

2.2 Тестирование алгоритма

2.3 Код реализации алгоритма

2.4 Тестирование алгоритма на входных данных объемом 100 и 1000 чисел




МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

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

"МИРЭА - Российский технологический университет"
РТУ МИРЭА






Отчет по выполнению практического задания №1

Поразрядные операции и их применение

Дисциплина Структуры и алгоритмы обработки данных







Выполнил студент
Группы ИКБО-11-21

Чиркинян К.А.








Москва 2022

Цель.

  • Получить навыки применения поразрядных операций в алгоритмах.

Задание 1.
    1. Постановка задачи


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

Вариант 30.




1

Номер бита

2

Номер бита

3

множитель

4

делитель

5

Задание для выражения

30

С 7-ого бита пять слева

5-ый, 7-ой , 11-ый

32

32

Обнулить n-ый бит, используя маску (вар 1)



2.1 Решение задачи. Пункт 1


Определить переменную целого типа, присвоить ей значение, используя константу в шестнадцатеричной системе счисления.

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

long long int number = 0x412; // ... 0100 0001 0010

long long int mask = 0xE8; // ... 1110 1000
int bit_disjunction(int a, int b) { // функция для поразрядной дизъюнкции

return a | b;

}



Код реализации алгоритма




Рисунок 1 – Код функции, реализующей поразрядную дизъюнкцию


Рисунок 2 – Код функции main

Тестирование алгоритма




Рисунок 3 – Тестирование алгоритма задания 1

2.2 Решение задачи. Пункт 2


Определить переменную целого типа.

Разработать оператор присваивания и его выражение, которое обнуляет 5-ый, 7-ой, 11-ый биты исходного значения переменной, используя соответствующую маску и поразрядную операцию. Значение в переменную вводится с клавиатуры.

long long int number2;

long long int mask2 = 0xFFFFF75F; // ... 0111 0101 1111
int bit_conjunction(int a, int b) { // функция для поразрядной конъюнкции

return a & b;

}



Код реализации алгоритма




Рисунок 4 – Код функции, реализующей поразрядную конъюнкцию


Рисунок 5 – Код функции main

Тестирование алгоритма




Рисунок 6 – Тестирование алгоритма задания 2

2.3 Решение задачи. Пункт 3



Определить переменную целого типа.

Разработать оператор присваивания и выражение, которое умножает значение переменной на 32, используя соответствующую поразрядную операцию. Изменяемое число вводится с клавиатуры.

int multiplication(int a, int b) { // функция для побитового сдвига влево

return a << b;

}



Код реализации алгоритма




Рисунок 7 – Код функции, реализующей побитовый сдвиг влево


Рисунок 8 – Код функции main

Тестирование алгоритма




Рисунок 9 – Тестирование алгоритма задания 3

2.4 Решение задачи. Пункт 4


Определить переменную целого типа.

Разработать оператор присваивания и выражение, которое делит значение переменной на 32, используя соответствующую поразрядную операцию. Изменяемое число вводится с клавиатуры.

int division(int a, int b) { // функция для побитового сдвига вправо

return a >> b;

}



Код реализации алгоритма




Рисунок 10 – Код функции, реализующей побитовый сдвиг влево


Рисунок 11 – Код функции main

Тестирование алгоритма




Рисунок 12 – Тестирование алгоритма задания 4

2.5 Решение задачи. Пункт 5


Определить переменную целого типа.

Обнулить n-ый бит, используя маску. Разработать оператор присваивания и выражение, в котором используются только поразрядные операции. В выражении используется маска – переменная. Маска инициализирована единицей в младшем разряде (вар 1). Изменяемое число вводится с клавиатуры.


long long int mask5 = 0x01;

mask5 = mask5 << x;

mask5 = mask5;

int bit_conjunction(int a, int b) { // функция для поразрядной конъюнкции

return a & b;

}



Код реализации алгоритма




Рисунок 13 – Код функции main

Тестирование алгоритма




Рисунок 14 – Тестирование алгоритма задания 5

Задание 2.

1.1 Постановка задачи


Реализовать задачу по сортировке данных файла, используя для представления данных файла (107 семизначных чисел) в памяти, массив битов. Смоделировать тест на последовательности, вводимой с клавиатуры.

Ограничения: объем – 1 Мб; время – 10с; числа уникальны.

2.1 Алгоритм решения



2.2 Тестирование алгоритма




Рисунок 15 – Пример входных данных



Рисунок 16 – Пример выходных данных

2.3 Код реализации алгоритма




Рисунок 17 – Код реализации алгоритма

2.4 Тестирование алгоритма на входных данных объемом 100 и 1000 чисел