Идеальный отчет по программированию: листинги кода по ГОСТ
Требования нормоконтроля к исходному коду
В отчетах по программированию, вычислительной математике и системному администрированию листинг программы является главным доказательством работоспособности выполненного задания. Согласно ГОСТ 7.32-2017 и методическим указаниям вузов:
- Код оформляется моноширинным шрифтом (Courier New, Consolas) меньшего кегля (10–12 пт при основном тексте 14 пт).
- Каждый листинг должен иметь порядковый номер и содержательное название: например, «Листинг 1.1 — Функция быстрой сортировки массива».
- Длинные фрагменты кода (свыше 1–2 страниц) обязательно выносятся в приложения диплома или курсовой работы, а в основном тексте отчета остаются только ключевые функции и алгоритмы.
Отчет по лабораторной программирование шаблон: структура документа
Классический отчет по лабораторной программирование шаблон содержит следующие обязательные разделы:
- Титульный лист (кафедра, дисциплина, вариант, ФИО студента и преподавателя).
- Цель работы и техническое задание.
- Описание архитектуры и алгоритма решения (с блок-схемой).
- Ключевые листинги программного кода.
- Скриншоты работы программы по ГОСТ и тестовые наборы данных.
- Выводы по проделанной работе.
Оформление листингов в отчете: пакет listings и кириллица
Правильное оформление листингов в отчете настраивается через пакет listings в преамбуле LaTeX документа:
\usepackage{listings}
\usepackage{xcolor}
\lstset{
basicstyle=\ttfamily\small, % Моноширинный шрифт меньшего кегля
numbers=left, % Нумерация строк слева
numberstyle=\tiny\color{gray}, % Стиль номеров строк
stepnumber=1,
numbersep=8pt,
frame=single, % Тонкая рамка вокруг листинга
tabsize=4,
breaklines=true, % Автоматический перенос длинных строк
keywordstyle=\color{blue}\bfseries,
commentstyle=\color{teal}\textit,
stringstyle=\color{red},
captionpos=t % Подпись НАД листингом по ГОСТ
}
В тексте программы фрагмент вставляется через окружение lstlisting:
\begin{lstlisting}[language=Python, caption={Функция вычисления факториала}]
def factorial(n: int) -> int:
"""Вычисление факториала числа n"""
if n <= 1:
return 1
return n * factorial(n - 1)
\end{lstlisting}
Импорт кода напрямую из файлов программ
Вместо копирования кода вручную через буфер обмена гораздо надежнее подключать файлы проекта напрямую через команду \lstinputlisting:
% Вставка всего файла с кодом
\lstinputlisting[language=C++, caption={Главный модуль main.cpp}]{src/main.cpp}
% Вставка только диапазона строк с 15 по 45
\lstinputlisting[language=C++, firstline=15, lastline=45, caption={Алгоритм Дейкстры}]{src/graph.cpp}
При таком подходе любые изменения в вашем коде моментально отражаются в отчете при очередной компиляции.
Современная альтернатива: пакет minted
Если требуется подсветка синтаксиса полиграфического уровня, используют пакет minted на базе библиотек Pygments. Он обеспечивает безупречное выделение языковых конструкций для сотен языков (Rust, Go, Kotlin, Swift, SQL) с идеальной передачей русских комментариев.
Практические советы
Русские комментарии в listings
Чтобы кириллица в комментариях отображалась без артефактов, добавьте параметр: keepspaces=true, extendedchars=true.
Слово «Листинг» в заголовке
Чтобы заменить английское слово «Listing» на русское по ГОСТ, добавьте строчку: \renewcommand{\lstlistingname}{Листинг}.