\documentclass[bachelor, och, labwork]{SCWorks} % параметр - тип обучения - одно из значений: % spec - специальность % bachelor - бакалавриат (по умолчанию) % master - магистратура % параметр - форма обучения - одно из значений: % och - очное (по умолчанию) % zaoch - заочное % параметр - тип работы - одно из значений: % referat - реферат % coursework - курсовая работа (по умолчанию) % diploma - дипломная работа % pract - отчет по практике % параметр - включение шрифта % times - включение шрифта Times New Roman (если установлен) % по умолчанию выключен \usepackage{subfigure} \usepackage{tikz,pgfplots} \pgfplotsset{compat=1.5} \usepackage{float} %\usepackage{titlesec} \setcounter{secnumdepth}{4} %\titleformat{\paragraph} %{\normalfont\normalsize}{\theparagraph}{1em}{} %\titlespacing*{\paragraph} %{35.5pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} \titleformat{\paragraph}[block] {\hspace{1.25cm}\normalfont} {\theparagraph}{1ex}{} \titlespacing{\paragraph} {0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex} % --------------------------------------------------------------------------% \usepackage[T2A]{fontenc} \usepackage[utf8]{inputenc} \usepackage{graphicx} \graphicspath{ {./images/} } \usepackage{tempora} \usepackage[sort,compress]{cite} \usepackage{amsmath} \usepackage{amssymb} \usepackage{amsthm} \usepackage{fancyvrb} \usepackage{listings} \usepackage{listingsutf8} \usepackage{longtable} \usepackage{array} \usepackage[english,russian]{babel} \usepackage[colorlinks=true]{hyperref} \usepackage{url} \newcommand{\eqdef}{\stackrel {\rm def}{=}} \renewcommand\theFancyVerbLine{\small\arabic{FancyVerbLine}} \newtheorem{lem}{Лемма} \begin{document} % Кафедра (в родительном падеже) \chair{} % Тема работы \title{Ввод/вывод данных в файловую систему, Вариант 9} % Курс \course{2} % Группа \group{231} % Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ") \department{факультета КНиИТ} % Специальность/направление код - наименование %\napravlenie{09.03.04 "--- Программная инженерия} %\napravlenie{010500 "--- Математическое обеспечение и администрирование информационных систем} %\napravlenie{230100 "--- Информатика и вычислительная техника} %\napravlenie{231000 "--- Программная инженерия} \napravlenie{10.05.01 "--- Компьютерная безопасность} % Для студентки. Для работы студента следующая команда не нужна. % \studenttitle{Студентки} % Фамилия, имя, отчество в родительном падеже \author{Гущина Андрея Юрьевича} % Заведующий кафедрой % \chtitle{} % степень, звание % \chname{} %Научный руководитель (для реферата преподаватель проверяющий работу) \satitle{ассистент} %должность, степень, звание \saname{А.~А.~Трунов} % Руководитель практики от организации (только для практики, % для остальных типов работ не используется) % \patitle{к.ф.-м.н.} % \paname{С.~В.~Миронов} % Семестр (только для практики, для остальных % типов работ не используется) %\term{8} % Наименование практики (только для практики, для остальных % типов работ не используется) %\practtype{преддипломная} % Продолжительность практики (количество недель) (только для практики, % для остальных типов работ не используется) %\duration{4} % Даты начала и окончания практики (только для практики, для остальных % типов работ не используется) %\practStart{30.04.2019} %\practFinish{27.05.2019} % Год выполнения отчета \date{2020} \maketitle % Включение нумерации рисунков, формул и таблиц по разделам % (по умолчанию - нумерация сквозная) % (допускается оба вида нумерации) % \secNumbering % \tableofcontents % Раздел "Обозначения и сокращения". Может отсутствовать в работе % Раздел "Определения". Может отсутствовать в работе %\definitions % Раздел "Определения, обозначения и сокращения". Может отсутствовать в работе. % Если присутствует, то заменяет собой разделы "Обозначения и сокращения" и "Определения" % \defabbr \section{Лабораторная работа \#8} \subsection{Задание} Создать файл, куда записать n целых чисел. Массив создать из исходного файла. Внести в него числа, расположенные в файле между минимальным и максимальным элементами. Виртуальный прибор должен формировать исходный файл, выполнять задание и сохранять результат в новом файле \subsection{Ход работы} \begin{figure}[H] \centering \includegraphics[width=0.9\textwidth]{program.png} \caption{Блок-диаграмма программы} \end{figure} Для заполнения исходного файла я генерирую в цикле $n$ случайных чисел и записываю их в файл. \begin{figure}[H] \centering \includegraphics[width=0.6\textwidth]{generation.png} \caption{Заполнение исходного файла} \end{figure} Для считывания массива из файла я использую цикл, в котором используется блок <> для считывания числа по одному из строки. Результатами этого блока являются оставшаяся строка после отсканированного значения и само отсканированное значение. Отсканированные значения я передаю в туннель из блока цикла. \begin{figure}[H] \centering \includegraphics[width=0.6\textwidth]{loop.png} \caption{Блок-диаграмма цикла, считывающего массив из файла} \end{figure} При этом в <> необходимо указать <>, чтобы в результате получился массив из всех значений (по стандарту возвращается последнее значение, вычисленное в цикле). \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{indexing.png} \caption{Режим <> для туннеля} \end{figure} Для получения результата я использую блок <> для массивов из которого беру индексы минимального и максимального элементов. Пусть индекс минимального значения --- $i_{min}$, а индекс максимального значения --- $i_{max}$. Индекс начала искомого массива --- это $\min (i_{min}, i_{max}) + 1$. Длина искомого массива --- это $|i_{min} - i_{max}| - 1$. Чтобы получить искомый массив, можно применить блок <>, к исходному массиву, указав значения index и length. \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{subset.png} \caption{Алгоритм получения результата} \end{figure} Для вывода массива я использовал блок <>. В качестве формата я указал ``\%d'', в качестве разделителя указал запятую и применил к искомому массиву. В результате получилась строка, состящая из элементов массива, разделённых запятыми. Её записываем в указанный файл. \begin{figure}[H] \centering \includegraphics[width=0.8\textwidth]{print.png} \caption{Вывод массива} \end{figure} \subsection{Тесты} \begin{figure}[H] \centering \includegraphics[width=0.4\textwidth]{template.png} \caption{Лицевая панель виртуального прибора} \end{figure} \begin{figure}[H] \centering \includegraphics[width=0.7\textwidth]{test1.png} \caption{Тест 1} \end{figure} \begin{figure}[H] \centering \includegraphics[width=0.7\textwidth]{test2.png} \caption{Тест 2} \end{figure} \begin{figure}[H] \centering \includegraphics[width=0.7\textwidth]{test3.png} \caption{Тест 3} \end{figure} \begin{figure}[H] \centering \includegraphics[width=0.7\textwidth]{test4.png} \caption{Тест 4} \end{figure} \begin{figure}[H] \centering \includegraphics[width=0.7\textwidth]{test5.png} \caption{Тест 5} \end{figure} \end{document}