From 46de5e92feb233cb9e32f323bc1df08317ca8a0e Mon Sep 17 00:00:00 2001 From: Arity-T Date: Sun, 9 Mar 2025 12:33:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BF=D0=B8=D1=81=D0=BE=D0=BA=20=D0=B2?= =?UTF-8?q?=D0=BE=D0=BF=D1=80=D0=BE=D1=81=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab1/report.tex | 149 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 147 insertions(+), 2 deletions(-) diff --git a/lab1/report.tex b/lab1/report.tex index 0f10afd..bed134a 100644 --- a/lab1/report.tex +++ b/lab1/report.tex @@ -246,8 +246,8 @@ Заседание происходило в следущем составе: \begin{itemize} - \item секретарь Кондраев Дмитрий, исполняющий роль координатора; - \item специалист по тестированию Астафьев Игорь; + \item секретарь Астафьев Игорь, исполняющий роль координатора; + \item специалист по тестированию Кондраев Дмитрий; \item программист Тищенко Артём, он же проектировщик программы. \end{itemize} @@ -423,6 +423,151 @@ int main() { } \end{lstlisting} + \subsection{Список вопросов и ответов на них} + + Ниже представлен список вопросов, которые специалист по тестированию Кондраев задавал программисту Тищенко. После каждого вопроса приведен ответ. После некоторых ответов следуют замечания специалиста по тестированию. + + \begin{enumerate} + \item Программа реализует бинарное дерево поиска? + + \textit{Ответ:} Да. + + \item На каком языке написана программа? + + \textit{Ответ:} C++. + + \item Какие типы переменных используются? + + \textit{Ответ:} int, string, BSTNode*, BST, vector, bool. + + \item Все ли константные переменные объявлены при их инициализации? + + \textit{Ответ:} Да. + + \item Где-то используется индексация массивов? + + \textit{Ответ:} Да, в выводе слов (например, \texttt{allWords[i]}) и обработке ввода. + + \item Проверяется ли аргумент индексации что он целочисленный? + + \textit{Ответ:} Да, через приведение типа и проверку условий (например, \texttt{(int)allWords.size()}). + + \item Корректно ли названы все методы и переменные? + + \textit{Ответ:} Да, кроме параметра \texttt{w} в методах BST. + + \textbf{Замечание:} Параметры вроде \texttt{w} стоит переименовать в \texttt{word} для ясности. + + \item Возможно ли деление на 0? + + \textit{Ответ:} Нет. + + \item Как выполняются проверки сравнения? + + \textit{Ответ:} Сравниваются строки (например, \texttt{w == node->word}) и целые числа. + + \item Есть ли операторы сравнения с целыми константами? + + \textit{Ответ:} Да (например, проверка \texttt{command == 0}). + + \item Используются ли переменные double, float? + + \textit{Ответ:} Нет. + + \item Может ли какая-нибудь переменная типа int переполниться? + + \textit{Ответ:} Теоретически возможно, но маловероятно (например, при очень большом количестве слов). + + \item Соблюдены ли правила наследования объектов? + + \textit{Ответ:} Да, наследование не используется. + + \item Все ли переменные объявлены? + + \textit{Ответ:} Да. + + \item Правильно ли инициализированы массивы и строки? + + \textit{Ответ:} Да (например, \texttt{vector result;} инициализируется пустым). + + \item Удаляются ли неиспользуемые переменные из памяти? + + \textit{Ответ:} Частично. + + \textbf{Замечание:} Не хватает деструктора для класса \texttt{BST} для полной очистки памяти. + + \item Присутствуют ли в программе потенциально бесконечные циклы? + + \textit{Ответ:} Нет. + + \item Может ли значение индекса выйти за размер массива? + + \textit{Ответ:} Нет (используется \texttt{(int)allWords.size()}, что предотвращает выход за границы). + + \item Проверяются ли входные данные на принадлежность к домену? + + \textit{Ответ:} Частично. + + \textbf{Замечание:} Не проверяется, содержит ли строка только допустимые символы (например, кириллицу). + + \item Используются ли логические выражения? + + \textit{Ответ:} Да (например, \texttt{if (!node)}). + + \item Используются ли файлы для ввода-вывода? + + \textit{Ответ:} Нет. + + \item У всех ли классов есть конструктор? + + \textit{Ответ:} Да (например, \texttt{BSTNode(const string\& w)}). + + \item В цикле for корректно ли написана операция сравнения в цикле? + + \textit{Ответ:} Да (например, \texttt{for (int i = 0; i < (int)allWords.size(); i++)}). + + \item Проверяется ли наличие элементов в дереве перед удалением? + + \textit{Ответ:} Нет. + + \textbf{Замечание:} Метод \texttt{remove} возвращает \texttt{false} при отсутствии элемента, но нет явной проверки на пустое дерево. + + \item Совпадает ли число аргументов, передаваемых вызываемым модулям и число ожидаемых параметров? + + \textit{Ответ:} Да. + + \item Делаются ли в программе попытки поправить входные аргументы? + + \textit{Ответ:} Да (например, обработка \texttt{stoi(cmdStr)} с исключениями). + + \item Нет ли пропущенных функций? + + \textit{Ответ:} Нет, все функции реализованы (вставка, удаление, очистка, вывод). + + \item Выдаются ли предупреждения при компиляции? + + \textit{Ответ:} Нет (при условии корректных настроек компилятора). + + \item Выдаются ли ошибки при компиляции? + + \textit{Ответ:} Нет. + + \item Выполняются ли вычисления с присваиванием несовпадающих типов? + + \textit{Ответ:} Нет. + + \item Есть ли комментарии в программе? + + \textit{Ответ:} Нет. + + \textbf{Замечание:} Стоит добавить пояснения к методам класса \texttt{BST}. + + \item Оформлен ли код в соответствии с некоторым регламентом? + + \textit{Ответ:} Да (отступы, именование классов и методов в camelCase). + \end{enumerate} + + \newpage \section*{Заключение} \addcontentsline{toc}{section}{Заключение}