summaryrefslogtreecommitdiff
path: root/asvt/labview/lab8/lab8.tex
blob: efd225b4047a10fd99a171eecb14782217dcc54f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
\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}

Для считывания массива из файла я использую цикл, в котором используется
блок <<Scan From String>> для считывания числа по одному из строки.
Результатами этого блока являются оставшаяся строка после отсканированного
значения и само отсканированное значение. Отсканированные значения я передаю
в туннель из блока цикла. 

\begin{figure}[H]
    \centering
    \includegraphics[width=0.6\textwidth]{loop.png}
    \caption{Блок-диаграмма цикла, считывающего массив из файла}
\end{figure}

При этом в <<Tunnel mode>> необходимо указать
<<Indexing>>, чтобы в результате получился массив из всех значений (по
стандарту возвращается последнее значение, вычисленное в цикле).

\begin{figure}[H]
    \centering
    \includegraphics[width=0.8\textwidth]{indexing.png}
    \caption{Режим <<Indexing>> для туннеля}
\end{figure}

Для получения результата я использую блок <<Max \& Min>> для массивов
из которого беру индексы минимального и максимального элементов.
Пусть индекс минимального значения --- $i_{min}$, а
индекс максимального значения --- $i_{max}$.
Индекс начала искомого массива --- это $\min (i_{min}, i_{max}) + 1$.
Длина искомого массива --- это $|i_{min} - i_{max}| - 1$.

Чтобы получить искомый массив, можно применить блок <<Array subset>>,
к исходному массиву, указав значения index и length.

\begin{figure}[H]
    \centering
    \includegraphics[width=0.8\textwidth]{subset.png}
    \caption{Алгоритм получения результата}
\end{figure}

Для вывода массива я использовал блок <<Array to Spreadsheet string>>.
В качестве формата я указал ``\%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}