
Лабораторная работа №1
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)
Факультет Инфокоммуникационных сетей и систем Кафедра Защищенных систем связи
Дисциплина Эксплуатация уязвимостей программного обеспечения
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №1
Введение в assembler, C и Python
(тема отчета)
Информационная безопасность (10.03.01)
(код и наименование направления/специальности)
Студент группы ИКБ-06:
Ерохин А.Г.
(Ф.И.О.) (подпись)
К.т.н., доц. каф. ЗСС:
Браницкий А.А.
(Ф.И.О.) (подпись)
Задачи:
Реализовать программу рекурсивного вычисления факториала заданного числа на C;
Реализовать программу итеративного вычисления факториала заданного числа на C;
Реализовать программу рекурсивного вычисления факториала заданного числа на python;
Реализовать программу итеративного вычисления факториала заданного числа на python;
Реализовать программу вычисления суммы ряда
(на assembler, C или python).
Ход работы:
Задача 1. Реализовать программу рекурсивного вычисления факториала заданного числа на C.
Листинг:
#include <stdio.h> unsigned int Factorial(int n) { if (n <= 1){ return 1; } return n * Factorial(n-1); } int main() { int n; printf("Enter the number:"); scanf("%d", &n); printf("Answer: %d! = %d\n", n, Factorial(n)); return 0; }
Результат работы программы (рис.1):
Рисунок 1 – Результат работы программы для задачи 1
Задача 2. Реализовать программу итеративного вычисления факториала заданного числа на C.
Листинг:
#include <stdio.h> unsigned int Factorial(int n) { if (n <= 0){ return 1; } int result = 1; for (int i = 1; i <= n; i++){ result *= i; } return result; } int main() { int n; printf("Enter the number:"); scanf("%d", &n); printf("Answer: %d! = %d\n",n, Factorial(n)); return 0; }
Результат работы программы (рис.2):
Рисунок 2 – Результат работы программы для задачи 2
Задача 3. Реализовать программу рекурсивного вычисления факториала заданного числа на python.
Листинг:
def Factorial(n): if n <= 0: return 1 return n * Factorial(n-1) n = int(input("Enter the number:")) print(f"Answer: {n}! = {Factorial(n)}")
Результат работы программы (рис.3):
Рисунок 3 – Результат работы программы для задачи 3
Задача 4. Реализовать программу итеративного вычисления факториала заданного числа на python.
Листинг:
def Factorial(n): if n <= 0: return 1 factorial = 1 for i in range(1, n+1): factorial *= i return factorial n = int(input("Enter the number:")) print(f"Answer: {n}! = {Factorial(n)}")
Результат работы программы (рис.4):
Рисунок 4 – Результат работы программы для задачи 4
Задача 5. Реализовать программу вычисления суммы ряда (на assembler, C или python).
Листинг:
#include <stdio.h> double Row(int n) { double result = 0; for (int i = 1; i <= n; i++){ result += (1.0/(i*i)); } return result; } int main() { int n; printf("Enter the number:"); scanf("%d", &n); printf("Answer: %f", Row(n)); return 0; }
Результат работы программы (рис.5):
Рисунок 5 – Результат работы программы для задачи 5
Вывод:
В ходе выполнения лабораторной работы получили базовые навыки программирования на assembler, C и python. Были реализованы все поставленные задачи.
Санкт-Петербург 2023 г