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

Лабораторная работа №1

.docx
Скачиваний:
9
Добавлен:
10.08.2024
Размер:
65.59 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)

Факультет Инфокоммуникационных сетей и систем Кафедра Защищенных систем связи

Дисциплина Эксплуатация уязвимостей программного обеспечения

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №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 г