Определение сложности программного кода на основе лексического анализа
Автор: Илья ___ • Май 26, 2024 • Лабораторная работа • 2,627 Слов (11 Страниц) • 89 Просмотры
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ
И ПРОГРАММНОЙ ИНЖЕНЕРИИ (КАФЕДРА №43)
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ: |
ПРЕПОДАВАТЕЛЬ:
Старший преподаватель | Е. В. Павлов | |||
(должность, уч. степень, звание) | (подпись, дата) | (инициалы, фамилия) |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1
«ОПРЕДЕЛЕНИЕ СЛОЖНОСТИ ПРОГРАММНОГО КОДА
НА ОСНОВЕ ЛЕКСИЧЕСКОГО АНАЛИЗА»
ПО КУРСУ: «МЕТРОЛОГИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»
РАБОТУ ВЫПОЛНИЛ (-А) СТУДЕНТ (-КА): | Z0431 | / | И.И. Литвинов |
(номер группы) | (инициалы, фамилия) |
/ | / | 02.05.2024 | ||
(подпись студента) | (дата отчета) |
- Цель работы
Целью данной работы является оценка сложности программного кода на основе лексического анализа с использованием метрик Холстеда и Джилба.
- Задание на лабораторную работу
В соответствии с индивидуальным вариантом задания необходимо составить словарь операторов и операндов фрагмента программного кода и произвести расчёт метрик Холстеда и Джилба.
Выполнить анализ полученных результатов.
Для операторов и операндов, количество которых больше 7, можно не указывать номера строк.
Индивидуальный вариант задания представлен в ПРИЛОЖЕНИИ А.
- Словарь операторов и операндов
Анализируемый программный код представлен в ПРИЛОЖЕНИИ А
Таблица 1 — Словарь операторов
N | Операторы | Номера строк | Количество повторений |
1 | using | 6 | 1 |
2 | namespace | 6 | 1 |
3 | ; | - | 77 |
4 | int | 8, 18, 24, 25 | 4 |
5 | SetConsoleCP() | 10 | 1 |
6 | SetConsoleOutputCP() | 11 | 1 |
7 | SaveDate() | 13 | 1 |
8 | DataBase | 5, 15 | 2 |
9 | string | 3, 16, 17, 22, 26 | 5 |
10 | double | 19 | 1 |
11 | do-while | 28(138) | 1 |
12 | {} | 9(139), 29(138), 44(137), 68(70), 72( 74), 85(102), 95(97), 99(101), 104(106) | 9 |
13 | << | - | 25 |
14 | switch()-case | 43(45,76,108,117,121,125,129,132,135) | 1(9) |
15 | getline() | 50, 56, 81, 91, 112 | 5 |
16 | -> | 49, 55, 60, 80, 90, 111 | 6 |
17 | == | 51, 57, 82, 92, 113 | 5 |
18 | break | 52, 58, 68, 75, 83, 93, 107, 114, 116, 120, 124, 128, 131, 134, 136 | 14 |
19 | if | 51, 57, 82, 92, 113 | 5 |
20 | if -else | 67(71), 84(103), 94(98) | 3 |
21 | IsCorrect() | 67, 94 | 2 |
22 | Add() | 69 | 1 |
23 | Find | 84 | 1 |
24 | Delete( | 115 | 1 |
25 | SortByDesc() | 126 | 1 |
26 | Show() | 119, 123, 127 | 3 |
27 | ClearDB() | 130 | 1 |
28 | clear() | 48, 54, 59, 79, 89, 110, 130 | 7 |
29 | ignore() | 49, 55, 60, 80, 90, 111 | 6 |
30 | rdbuf() | 49, 55, 60, 80, 90, 111 | 6 |
31 | in_avail() | 49, 55, 60, 80, 90, 111 | 6 |
32 | , | 50, 56, 67, 69, 81, 86, 91, 94, 96, 112 | 10 |
33 | while | 138 | 1 |
34 | system() | 118, 133 | 2 |
35 | () | много | 46 |
Итого: | 261 |
...