Академический Документы
Профессиональный Документы
Культура Документы
А С. Васильев
Васильев, О.Ю. Лашманов
Санкт-Петербург
2015
МИНИСТЕРСТВО ОБРАЗОВ
ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ
КОЙ ФЕДЕРАЦИИ
УНИВЕРСИТЕТ ИТМО
А.С.
А С Васильев,
Васильев О.Ю. Лашманов
ОСНОВЫ ПРОГРАММИРОВАНИЯ
В СРЕДЕ LabVIEW
Учебно пособие
Учебное
Санкт-Петербург
2015
Васильев А.С., Лашманов О
О.Ю. Основы программирования в среде
LabVIEW. – СПб
СПб: Университет ИТМО, 2015. – 82 с.
Рекомендовано Учебно-методическим
Учебно объединением вузов Российской
Федерации по образованию в области приборостроения и оптотехники для
студентов высших учебных заведений, обучающихся по направле
направлению
подготовки бакалавриата 12.03.02 (200400) – Оптотехника и специалитета
12.05.01 (200401) – Электронные и оптико-электронные
электронные приборы и системы
специального назначения протокол №1 от 24.02.2015.
3
1 Запуск LabVIEW,
LabVIEW окна, палитры
Программы LabVIEW называются виртуальными приборами (ВП, VI
), так как они функционально и внешне подобны
– virtual instruments),
реальным (традиционным
традиционным) приборам. Однако они столь же подобны
программам и функциям на популярных языках программирования,
программирования таких
как С или Basic. Здесь и далее мы будем называть программы LabVIEW
виртуальными приборами или ВП, причем вне зависимости от того,
соотносится их вид и поведение с реальными приборами
и или нет
нет.
После запуска LabVIEW появляется стартовое диалоговое окно
(рис.1), предлагающее выбрать дальнейшие действия. Окно разделено на
две части, которые предлагают две группы вариантов действий
пользователя. Левая часть окна позволяет создать новый ВП (Blank VI),
пустой проект (Empty project) или создать ВП по шаблону (VI from
Template). Также можно открыть недавние проекты и файлы (ссылки под
надписью Open).
4
При создании пустого ВП (Blank VI) открываются два окна,
содержащие лицевую панель (Front Panel) и блок-диаграмму (Block Diagram)
(рис.2) виртуального прибора.
главное меню
инструментальная панель иконка
главное меню
инструментальная панель иконка
5
ВП. В правом верхнем углу каждого окна находится иконка, наложенная на
соединительную панель ВП (последняя показана на лицевой панели).
Окна блок-диаграммы и лицевой панели содержат инструментальную
панель (рис. 2).
В таблице 1 описаны функции кнопок инструментальных панелей,
которые служат для отладки и управления ходом исполнения ВП.
6
палитры Функции (Functions Palette) и палитры Инструменты (Tools Palette).
Все перечисленные палитры можно вывести для постоянного или
временного отображения и разместить в любом месте экрана. Вывод для
постоянного отображения осуществляется с помощью пунктов главного
меню Вид (View).
Палитру инструментов можно вывести с помощью щелчка правой
кнопки мыши при нажатой клавише <Shift>. Термин инструмент
подразумевает специальный операционный режим курсора мыши. Все
операции по созданию, редактированию и отладке ВП выполняются с
помощью палитры Инструменты (Tools Palette) (рис.3).
7
(Functions pallete). Для вывода палитры на экран следует щелкнуть правой
кнопкой мыши в рабочем пространстве блок-диаграммы. Все элементы на
палитре сгруппированы по разделам (рис. 5).
8
Установка каждого элемента на лицевой панели сопровождается
появлением соответствующего терминала данных (terminal) на панели
блок-диаграммы. Терминалы элементов управления представляют порты
ввода информации в блок-диаграмму, а терминалы индикаторов – порты
вывода информации из блок-диаграммы на лицевую панель. Для обработки
введенной информации и программного управления параметрами и
режимами работы элементов лицевой панели на панели блок-диаграммы
размещаются необходимые константы, функции (Functions), подприборы
(SubVI) и структуры (Structures), которые также имеют терминалы для
ввода и вывода информации. Все перечисленные элементы представляют
узлы (nodes) блок-диаграммы, которые соединяются с терминалами
элементов управления и индикации и между собой линиями, называемыми
проводниками (wires). В такой схеме через узлы в процессе обработки
проходят данные, идущие по проводникам от входных терминалов к
выходным. Узлы – это объекты на блок-диаграмме, которые имеют одно
или более полей ввода/вывода данных и выполняют алгоритмические
операции ВП. Они аналогичны операторам, функциям и подпрограммам
текстовых языков программирования.
9
позволяет производить обработку нескольких потоков независимо и
параллельно друг другу.
На рисунке 6 приведен пример программы, выполняющей умножение
y на число 3 и суммирование результата с переменной x , аналогичные
операции выполняются для переменных x 2 и y 2 .
3 Типы данных
Программирование потоков передачи данных в LabVIEW
осуществляется при помощи механизма графического связывания
терминалов. Терминалы данных имеют прямоугольную форму и содержат
буквенно-графическое
графическое обозначение, характеризующее тип и форму
представления воспринимаемых ими данных. Таким образом, по виду
терминала можно определить, является ли он источником или приемником
данных, какие типы данных он воспринимает – числовые, логические
логи или
строковые, а для числовых – является ли число целым или вещественным.
Для определения таких различий используются различия в толщине
внешней рамки терминала и направлении треугольной стрелки внутри него,
цвет терминала и буквенное или графическое обозначение. Кроме того, вид
терминала можно определить и по содержанию контекстного меню.
LabVIEW оперирует различными видами терминалов управляющих
элементов, индикаторов, узлов, констант, специализированных структур.
Перечень и вид терминалов элементов ввода/вывода данных LabVIEW с
10
характеристикой типа, цвета и значения по умолчанию приведены в
таблице 2.
11
Комплексный с Оранжевый 0+i0
плавающей
запятой
одинарной
точности
Комплексный с Оранжевый 0+i0
плавающей
запятой двойной
точности
Комплексный с Оранжевый 0+i0
плавающей
запятой
расширенной
точности
Массив - Серый -
заключает тип
данных в
квадратные
скобки и
принимает цвет
этого типа
данных
Перечисляемый Синий -
тип
Логический Зеленый FALSE
Например, функция add при подаче двух чисел с типом данных U8 вернет
число U8. При подаче двух массивов произойдет суммирование каждого
элемента с каждым. При
ри этом программист никак не задает это поведение
при использовании функции,
функции все происходит автоматически
автоматически.
13
– Битовые манипуляции
– Комплексные числа
– Масштабирование
– Числа с фиксированной точкой
– Математические константы
– Элементарные функции
– Тригонометрические функции
– Логарифмические функции
– Гиперболические функции
– Дискретная математика
– Линейная алгебра
– Аппроксимация
– Интерполяция и экстраполяция
– Интегрирование и дифференцирование
– Статистика
– Решение дифференциальных уравнений
– Геометрия
– Полиномы
Используя эти палитры и комбинации функций, можно выполнить
большую часть математических операций над числами.
14
Таблица 3 – Описание математических функций
Название Пиктограмма Описание
Add Возвращает сумму двух операндов
Subtract Возвращает разность двух операндов
Multiply Возвращает произведение двух операндов
Divide Возвращает частное двух операндов
Increment Возвращает значение входа
входа, увеличенное на 1
Decrement Возвращает значение входа
входа, уменьшенное на 1
Quotient & Возвращает целое частное (floor(x/y))
(floor( и остаток
Remainder (x-y*floor(x/y)) отделения х на у
Absolute Возвращает модуль значения входа
Value
Square Возвращает квадрат значения входа
Negate Возвращает значения входа
входа, умноженное на -1
Sine Возвращает синус значения входа,
входа на входе
ожидается значение в радианах
Cosine Возвращает косинус значения входа,
входа на входе
ожидается значение в радианах
Tangent Возвращает тангенс значения входа,
входа на входе
ожидается значение в радианах
Power Of Возвращает x в степени y
X
Power Of Возвращает значение два в степени x
2
Logarithm Возвращает десятичный логарифм от значение
Base 10 входа
Random Возвращает случайное число от 0 до 1
Number
Кроме рассмотренных
отренных функций работы с числами,
числами в LabVIEW
существует структура Formula Node, в которой программирование
осуществляется так же как и в классических текстовых языках
языках. В структуре
Formula Node математические выражения и операторы могут быть
записаны в текстовом виде.
виде Данную структуру целесообразно использовать
при наличии множества переменных или при выполнении сложных
расчетов.
Для того чтобы структура Formula Node функционировала,
функционировала
необходимо определить входы и выходы. Для того чтобы добабавить вход или
выход, нужно нажать правой кнопкой мыши на рамку FormulaF Node и
выбрать add input или add output соответственно
соответственно. При этом на рамке
структуры возникнет вход или выход, в которые вписываются имена
15
переменных. Стоит помнить,
помнить что имена входов и выходов должны
соответствовать именам переменных в тексте программы с учетом регистра,
написанном в Formula Node.
N
Выражения
ражения записываются с использованием функций и операторов,
перечисленных в таблице 4. Запись каждой формулы должна заканчиваться
символом « ; ».
16
cos(x) Косинус х
cosh(x) Гиперболический косинус х
cot(x) Котангес х (рад)
csx(x) Косеканс х
exp(x) Экспонента х
floor(x) Округление до меньшего целого х
pow(x,y) Возведение х в степень y
sec(x) Секанс х
sin(x) Синус х
sinh(x) Гиперболический синус х
sqrt(x) Квадратный корень х
tan(x) Тангес х
tanh(x) Гиперболический тангес х
17
Таблица 5 - Описание логических функций
Название Пиктограмма Описание
Возвращает значение ИСТИНА (1) только при
And подаче на оба входа значений ИСТИНА (1),
иначе возвращает значение ЛОЖЬ (0)
Возвращает значение ЛОЖЬ (0) только при
Or подаче на оба входа значений ЛОЖЬ (0), иначе
возвращает значение ИСТИНА (1)
Возвращает значение ЛОЖЬ (0) только при
Exclusive подаче на оба входа значений ЛОЖЬ (0) или
Or значений ИСТИНА (1), иначе возвращает
значение ИСТИНА (1)
Возвращает значение ЛОЖЬ (0) при подаче на
Not вход значения ИСТИНА (1) и наоборот
Возвращает значение ЛОЖЬ (0) только при
Not And подаче на оба входа значений ИСТИНА (1),
иначе возвращает значение ИСТИНА (1)
Возвращает значение ИСТИНА (1) только при
Not Or подаче на оба входа значений ЛОЖЬ (0), иначе
возвращает значение ЛОЖЬ (0)
Инвертирует х и затем выполняет операцию
Логическое ИЛИ с входом у Если на входе х
Implies значение ИСТИНА и на входе у значение
ЛОЖЬ, то функция возвращает ЛОЖЬ Иначе
возвращает ИСТИНА
18
В таблице 6 представлено описание основных строковых функций
LabVIEW.
19
Функция преобразует число
(number) в строку десятичных
цифр (decimal integer string) с
Number To Decimal String
шириной, равной или большей
шириной
значения, установленного на
значения
входе ширина (width)
Функция преобразует
цифровые символы строки
(string), начиная от смещения
Decimal String To Number
(offset), в целое десятичное
число и передает его на выход
число (number).
Функция преобразует строку в
массив байтов без знака
Каждый байт в массиве
String To Byte Array
является ASCII кодом
соответствующего символа в
строке
Функция преобразует массив
байтов без знака,
Byte Array To String
представляющих ASCII коды
символов, в строку
символов
20
логических скаляров, при выборе режима сравнение
равнение совокупности –
логический скаляр. Аналогичным образом ведут себя функции «больше»,
больше либо равно»,
«меньше», «больше равно «меньше либо равно
равно», «не
не равно».
равно
21
Функция возвращает значение, подключенное
к входам t или f в зависимости от состояния
входа s. Если на входе s установлено состояние
ИСТИНА, то функция возвращает значение,
Select
подключенное к входу t Если же на входе s
установлено состояние ЛОЖЬЛОЖЬ, то функция
возвращает значение, подключенное ко входу
f. Функция является полиморфной
Функция определяет нахождение х в
диапазоне, заданном входами верхний предел
In Range (upper limit) и нижний предел (lower limit), и
and дополнительно ограничивает выходное
Coerce значение указанным диапазоном Нахождение в
диапазоне приводит к появлению на выходе в
диапазоне? (In Range?)
5 Структура Варианта
Под ветвлением понимается конструкция языка программирования
программирования,
обеспечивающая выполнение определённой команды манды (набора команд)
только при условии истинности некоторого логического выражения
выражения, либо
выполнение одной из нескольких команд (наборов
наборов команд) в зависимости
от значения некоторого выражения.
выражения
В LabVIEW оператор ветвления реализуется на основе структуры
Вариант (Case). Структура варианта, показанная на рисунке 13, имеет две
или более поддиаграм и аналогична операторам варианта (switch
switch...case) или
логическим операторам (if...
( else) в текстовых языках программирования.
программирования
Лишь одна из поддиаграмм выполняется в зависимости от логического,
числового или строкового значения, которое подается на терминал
селектора. Структура варианта располагается в палитре Programming –
Structures.
В теле структуры варианта можно выделить несколько основных
элементов: Тело (2) – описывает блок-диаграммы для различных случаев;
селектор (1) – отображает
тображает значение с которым ассоциирована данная
блок-диаграмма.
диаграмма Программист может задавать в поле единичное значение,
диапазон или список значений;
значений терминал (3) – определяет,
определяет какая из
описанных блок-диаграмм
диаграмм будет выполнена.
Если к терминалу структуры вариант подключено логическое
значение, то структура будет иметь два варианта: ЛОЖЬ и ИСТИНА
ИСТИНА. Если к
терминалу селектора подключены числовые или строковые данные, то
структура может иметь почти неограниченное количество вариантов
(ограниченное только типом данных селектора). Первоначально существует
22
лишь два варианта
варианта, которые при помощи контекстного меню можно
увеличить до нужного количества.
количества Допустимо использовать несколько
значений терминала для одного варианта, отделяя их запятыми.
запятыми Кроме того,
всегда можно выбрать ть вариант по умолчанию (Default), который будет
выполняться, если величина
величина, подаваемая на терминал структуры,
структуры не
соответствует никакому другому варианту. Стоит помнить, что всегда один
(и только один) из вариантов структуры вариант должен быть назначен по
умолчанию.
6 Циклы
Цикл – это разновидность управляющей конструкции в
высокоуровневых языках программирования, предназначенная для
организации многократного исполнения набора инструкций.
Последовательность инструкций
инструкций, предназначенная для многократного
исполнения, называется телом цикла, а единичное выполнение тела цикла
называется итерацией. В LabVIEW различают два типа циклов: с
фиксированным числом итераций (For Loop) и цикл по условию (While
Loop). Структуры циклов расположены в палитре Programming – Structures.
23
Циклы могут иметь неограниченное количество входных и выходных
терминалов для получения и выдачи данных. В терминалы могут
подаваться как скалярные
скалярные, так и векторные значения.
значения Для создания нового
терминала достаточно подключить провод к одной из внешних границ
рамки цикла. При подключении таким образом массива к структуре For
Loop автоматически
ки создается перечисляемый вход. Каждая
аждая итерация цикла
будет считывать новое значение из массива.
24
Рисунок 15 – Структура цикла по условию
6.3 Сдвиговые
иговые регистры
Сдвиговые регистры используются при работе с циклами для
передачи значений из текущей итерации в следующую
следующую. Установка
сдвиговых регистров производится на вертикальных сторонах структуры с
помощью опции добавить
обавить сдвиговый регистр (Add Shift Register),
выбираемой из контекстного меню структуры при щелчке правой кнопкой
мыши на одной из этих сторон.
сторон
Тип и размерность сдвигового регистра определяются типом и
размерностью данных, подключаемых к правому (входному
входному) терминалу
сдвигового регистра.. Количество
К разрядов (циклов задержки)
задержки левого
терминала сдвигового регистра можно изменить с помощью инструмента
перемещения или с помощью опций добавить элемент (Add Element),
удалить элемент (Remove Element) контекстного меню структуры
структуры. По
умолчанию при первом
рвом запуске виртуального прибора начальные значения
левых терминалов сдвигового регистра равны значению по умолчанию для
типа данных регистра. Если эти терминалы не были подключены
подключены, то при
последующих запусках в них будут находиться значения, оставшиеся от
предыдущих запусков виртуального прибора. Для инициализации левого
25
терминала сдвигового регистра необходимо подключить константу,
элемент управления или функцию инициализации массивов.массивов Цикл с
неинициализированным сдвиговым регистром используется при
неоднократном запуске ВП для присвоения выходному значению
сдвигового регистра значения
значения, взятого с последнего выполнения ВП.
Предусмотрена возможность создания нескольких сдвиговых
регистров в одной структуре цикла. К тому же сдвиговый регистр может
иметь несколько левых терминалов сдвигового регистра для возможности
работы с несколькими значениями предыдущих итераций.
Единичные сдвиговые регистр могут быть преобразованы в туннели с
помощью опции заменить
аменить тоннелем (Replace with Tunnel). После замены
тоннель на правой вертикальной границе структуры цикла будет
представлять терминал выхода данных из цикла, а тоннель на левой границе
- терминал входа данных
данных. Операция является обратимой, т.е.
т.е входной или
выходной терминалы могут быть преобразованы в пару сдвиговых
регистров (Replace with shift register).
26
7 Массивы
Массив - набор однотипных данных (элементов), расположенных в
памяти непосредственно друг за другом, доступ к которым осуществляется
по индексу (индексам). Массив является структурой с произвольным
доступом, т.е. программист может осуществлять доступ к любому элементу
по его индексу в произвольном порядке.
Количество используемых индексов массива может быть различным.
Массивы с одним индексом называют одномерными, с двумя – двумерными
и т. д. Одномерный массив нестрого соответствует вектору в математике,
двумерный - матрице. Чаще всего применяются массивы с одним или двумя
индексами.
Основными характеристиками массива является его размерность, тип
входящих в него элементов и его размер (количество элементов по каждой
размерности).
Все массивы в LabVIEW являются динамическими. Динамические
массивы делают работу с данными более гибкой, так как не требуют
предварительного определения хранимых объёмов данных. Максимальное
количество элементов на каждую размерность составляет 231 . Значения
индексов лежат в диапазоне от 0 до N-1, где N – количество элементов
массива.
Элементом массива может быть любой тип данных, за исключением
массива, таблицы или графика.
В LabVIEW массивы могут быть созданы как вручную на лицевой
панели или на блок-диаграмме, так и программно. На лицевой панели могут
быть созданы массивы элементов управления или индикаторов, на
блок-диаграммы - массивы констант. Программно массивы создаются с
помощью структур и соответствующих функций.
Для формирования массивов на лицевой панели необходимо
разместить на ней шаблон массива (Array) из палитры Массив, матрица и
кластер (Array, Matrix & Cluster) палитры элементов управления. В окно
отображения элемента может быть помещен объект данных - элемент
управления или индикатор в соответствии с типом формируемого массива.
Помещение объекта в шаблоне приводит к присвоению терминалу массива
цвета и типа, помещенного объекта. После задания типа массива он может
использоваться для ввода или вывода данных (рис. 17).
Аналогичным образом создается массив констант на блок-диаграмме.
Для создания массива констант необходимо разместить на диаграмме
шаблон массива констант (Array Constant) из палитры Массив (Array) и
поместить в него константу необходимого типа.
Для программного формирования и обработки массивов
используются структуры Цикл с фиксированным числом итераций (For
Loop) и Цикл по условию (While Loop), имеющие в своем составе
27
индексную переменную i. Если элементы массива формируются в
структуре цикла с фиксированным числом итераций
итераций, то их преобразование
в массив происходит в терминале вывода данных данных, находящемся по
умолчанию в режиме включить
ключить индексирование (Enable Indexing) В этом
Enable Indexing).
режиме терминал вывода данных представляет пустотелый двойной
квадрат. Формирование массива сопровождается изменением толщины
провода с данными после его выхода из структуры
структуры. Выключение режима
индексирования осуществляется с помощью строки отключить
индексирование (Disable Indexing) контекстного меню терминала
терминала. При этом
из структуры будет выводиться только последний элемент.
28
Рисунок 18 – Варианты ввода/вывода данных в/из
в из цикла
29
Возвращает массив со
вставленным на
Insert Into Array указанную позицию
элементом
элементом.
Возвращает массив с
удаленным элементом.
Delete From Array Удаляется как
одиночный элемент,
так и часть массива.
Возвращает
максимальное и
Array Max & Min минимальное
значения в массива, а
так же их координаты.
Выполняет операцию
Transpose 2D Array транспонирования над
исходным массивом.
8 Ввод/вывод
вывод данных в/из файла
Операции ввода и вывода (I/O) запрашивают информацию из файла и
сохраняют информацию в файле на диске. LabVIEW имеет ряд гибких
функций ввода и вывода наряду с простыми функциями функциями, которые
обеспечивают выполнение практически всех операций ввода и вывода.
Функции ввода/вывода
вывода находятся в палитре Programming-File
File I/O (рис.
( 19).
Для функций
функций, работающих с файлами, необходимо ввести путь к
размещению файла, который выглядит как строка. Путь является особым
видом данных для работы с файловой системой, указывая местоположение
файла. Если переменная ая пути к файлу не была подключена,
подключена то функция
вызовет диалоговое окно и попросит выбрать файл или ввести его имя.
Будучи вызванными
вызванными, функции откроют или создадут файл, прочитают или
запишут данные
данные, а затем закроют файл.
Одним из наиболее распространенных способов хранения данных в
файле является форматирование текстового файла. Такой
акой файл может быть
открыт в любой программе
амме, работающей с таблицами или текстом (Excel,
Notepad и т.д.). В большинстве табличных форматов столбцы отделяются
табуляцией, а строки - символами конца строк (EOL). Функции Записать в
файл табличного формата (Write То Spreadsheet File) и Считать из файла
табличного формата (Read From Spreadsheet File) взаимодействуют с
файлами табличного формата.
формата При этом функция имеет Write То
Spreadsheet File на входе одномерный или двумерный массив для записи, а
30
так же флаг продолжения записи в файл. Функция Read From Spreadsheet
File является полиморфной, пользователь может выбирать в каком типе
данных считывать файл (double, integer, string). Эти функции очень удобны
при записи и чтения массивов данных.
31
Таблица 9 - Описание основных функций работы с файлами
Название Пиктограмма Описание
Возвращает содержимое
Read from Text File текстового файла в виде строки
Осуществляет запись текстовой
Write to Text File строки в файл
Open/Create/Replace Возвращает ссылку на открытый
File файл и начинает работу с ним
Завершает работу с файлом по
Close File
ссылке.
Функция преобразует массив чисел
или строк в текстовую строку и
записывает эту строку в виде
нового текстового файла или
добавляет строку к
существующему файлу
файлу. Эта
Write To Spreadsheet
функция используется для
File
создания текстового файла,
воспринимаемого большинством
табличных приложений
приложений. По
умолчанию разделение между
значениями производится при
помощи знака табуляции
табуляции.
Функция считывает текстовый
файл в таблицу значений,
Read From Spreadsheet
поддерживаются различные
File
форматы входных данных (строки,
целые, числа с плавающей точкой).
9 Создание подприбора
В LabVIEW очень важным аспектом является повторное
использование кода
кода. Для этих целей служат виртуальные подприборы.
подприборы
Подприбор - это отдельный ВП, применяемый другим ВП.
ВП Новый ВП
можно использовать в качестве подприбора на блок блок-диаграмме
высокоуровневого ВП,, снабдив иконкой и определив его соединительную
панель. Виртуальный подприбор LabVIEW является аналогом
подпрограммы в языке С или другом подобном языке программирования
программирования.
Поскольку не имеется никаких ограничений по количеству подпрограмм в
языке С, также не существует и каких-либо ограничений по количеству
подприбров, применяемых в ВП LabVIEW (если позволяет память).
память
32
Для того чтобы превратить любой ВП в подприбор, необходимо
определить какие данные в него поступают и какие данные он возвращает.
Это производится при помощи назначения соответствующих элементов
управления и индикаторов терминалам ВП. Палитра коннекторов ВП
находится в верхнем правом углу ВП (рис.2), для ее отображения
необходимо щелкнуть на иконку ВП правой кнопкой мыши и нажать show
connectors. Существует большое количество конфигураций (паттернов)
палитры коннекторов (рис. 20). В одном ВП рекомендуется применять
одинаковые паттерны (самый распространенный 4-2-4-2).
33
дважды кликнуть на его иконку в правом верхнем углу окна и
переопределить ее при помощи встроенного редактора.
Иконки очень маленькие: всего 32×32 пикселя, поэтому они должны
быть краткими, но понятными. Рекомендуется использовать символы и
шрифты, которые будут легко читаться при таких размерах. Глиф – это
графический, легко узнаваемый символ. К ним относятся, например, знаки
дорожного движения. Это отличный пример совмещения графики и текста
на ограниченном пространстве для сообщения важной информации.
Библиотеки глифов, значков и других символов обычно есть в любом
приложении и на многих сетевых ресурсах. Например, в зоне разработчиков
(NI Developer Zone) такая библиотека есть по адресу www.ni.com/
devzone/idnet/library/icon_art_glossary.htm.
Лучшие иконки состоят из глифа, лаконичного текста и окрашены в 2
или 3 цвета. Глиф занимает половину или 2/3 места, текст – от одного до
трех слов или понятных сокращений.
10 Стиль программирования
Блок-диаграмма LabVIEW представляет собой уникальное средство
отображения кода, отличное от большинства других языков
программирования. Принцип потока данных реализует программу на таких
элементах, как проводники, терминалы, структуры, узлы. У каждого
элемента есть свое назначение и уникальные возможности. Они почти не
ограничивают возможности и воображения программиста. В результате
появилось множество стилей написания программ в LabVIEW.
Одну и ту же задачу можно решить множеством способом, но
функционально программы будут эквивалентными. На первый взгляд
кажется, что предпочтения, стиль программирования и оформление –
личное дело каждого, но это только кажется. На самом деле все это
напрямую влияет на качество программы.
Стиль программирования в LabVIEW прямо связан с простотой
использования, эффективностью, надежностью программы и
читабельностью, простотой изменения и структуры кода всего приложения.
При написании программ в LabVIEW необходимо придерживаться
основных правил хорошего стиля:
34
– Параллельные проводники должны проходить на одинаковом
расстоянии;
– Избегать наложения объектов на блок-диаграмме
диаграмме;
– Ограничиватть длину проводника: его начало и конец должны
быть видны на экране;
– Добавлять метки для длинных проводников;
– Объединять связанные данные в кластеры;
– Всегда направля
направлять поток данных слева направо..
35
Соблюдение этих правил поможет повысить читаемость программ и
сэкономить время на их поддержку в будущем. На рисунках 22 и 23
представлен пример хорошего и плохого стиля программирования
соответственно. Как нетрудно догадаться, работу, выполненную в первом
варианте, будет легче защитить и исправить.
36
НЕ ПАНИКУЙ!
Д. Адамс «Автостопом по галактике»
Задание
1. Разработать виртуальный прибор, который вычисляет значения двух
эквивалентных числовых формул y1 ~ y2 , z1 ~ z2 с указанными в варианте
индивидуального задания значениями исходных данных;
2. Вычисление числовых формул y1 , z1 выполнить с помощью структуры
Formula Node;
3. Вычисление числовых формул y2 , z2 выполнить с помощью базовых
математических функций LabVIEW;
Примечание
Две числовых формулы эквивалентны, если для всех возможных
значений переменных их математические значения равны;
Будем считать, что значения эквивалентны, если они отличаются не более
чем на 10-5
Содержание отчета
1. Название работы и номер варианта индивидуального задания;
2. Фамилия, имя, отчество, номер группы студента;
3. Текст задания, формулы в том виде, как они приведены в варианте
индивидуального задания;
4. Области допустимых значений для переменных y1 и y 2 ;
5. Распечатка блок-диаграммы виртуального прибора
37
3. m1 = 0.47 ( 2m + 3)
− 24 m
2
m2 = 2.47 y1 = ;
3
2 m−
α = 0.1 m
при m ≤ 1.5 y1 ∼ y2 ; при m > 1.5 y1 ∼ y3 ;
y2 = − m ; y3 = m ;
cosα + sin α
z1 = ; z2 = tg 2α + sec2α ;
cosα − sin α
4. a = 3.5 a 2 − b 2 a 3 − b3 ab
y1 = − 2 ; y = ;
b = −2.1 a −b a − b2
2
a+b
α = 0.1 cos 2α 1 2
z1 = ; z = sin ( 2α ) ;
ctg 2α − tg 2α
2
4
5. m1 = 0.65 m5 + m 4 ⋅ 3 2 + 3 4 m9
y1 = ;.
m2 = 1.65 m3 − 1 − 1
α = 1.43 при m > 1 y1 ~ y2 ; при m ≤ 1 y1 ~ y3 ;
y2 =
m3
m− 2
(
; y3 = − m2 + m 3 2 + 3 4 ;)
1 − 2sin 2 α 1 − tgα
z1 = ; z2 = ;
1 + sin 2α 1 + tgα
x = 0.3
( 1
)
6.
y1 = 1 − x 2 + 1 : + 1 − x ; y2 = 1 + x ;
α = 0.77 1+ x
cos ( 3π − 2α ) 5
z1 = ; z2 = tg α − π ;
5 4
2sin 2 π + α
4
7. x = 4.3 x − x − x +1
4 3
y1 = 3 x − 3 ; y2 = x + x + 1;
2
α = 1.23 x − 5x + 7 x − 3
2
sin 4α cos2α
; z2 = ctg π − α ;
3
z1 = ⋅
1 + cos4α 1 + cos2α 2
8. a = 12.3 a
2
1 a −1 a +1 1− a
α = 0.24 y1 = − − ; y2 = ;
2 2 a a + 1 a − 1 a
sin 2α − sin3α + sin 4α
z1 = ; z2 = tg 3α ;
cos2α − cos3α + cos4α
38
m = 1.8
( )
2
9.
4 m m + m 2 −1 1
α = 0.43 y1 = ; y2 = ;
(m + ) m2 − 1
4
β = 0.58 m −1 2
−1
tg 2α + ctg 3β tg 2α
z1 = ; z2 = ;
ctg 2α + tg 3β tg 3β
10. a = 2.3
( 2a + 1) + ( 2a − 1)
3 3
α = 0.75 y1 = ; y2 = 4a − 4a 2 − 1;
4 a + 2 4a 2 − 1
π
sin + 3α
z1 = 2 ; z = ctg 5 π + 3 α ;
1 − sin ( 3α − π ) 2
4 2
11. a = 0.7 1 a2 + 2 −1 1
y1 = + − ; y2 = 2 ;
x = 0.44 2 1+ a( 2 1− a 1− a 3
) (
a + a +1 )
y = 0.82
z1 = cos 4 x + sin 2 y + sin 2 2 x − 1; z2 = sin ( y + x ) ⋅ sin ( y − x ) ;
1
4
12. a = 5.1 a +1 1
y1 = : 2 ; y2 = a − 1;
α = 0.1 a a +a+ a a − a
sin α − sin3α + sin5α
z1 = ; z2 = tg 3α ;
cosα − cos3α + cos5α
13. a = 5.3
b = 2.1 y1 =
( a 2 − b2 ) ⋅ 3 a − 3 b (
; y2 = a − b;
)
3
a + ab − a b − b
4 3 3 3 3 3 4
α = 0.75
z1 = cos 4α − sin 4α ⋅ ctg 2α ; z2 = cos 2α − 2cos 2 α ;
14. a = 1.7 1
a + ab −1
2
a 5
b = 2.8 y1 = 1 1 1 2
− 3 ; y2 = a 6 ;
− − − − b
α = 0.22 a 3
−a b +b 6 3 3
2tgα
z1 = cos 4α ⋅ tg 2α − sin 4α ; z2 = ;
tg 2α − 1
15. x = 1.4 2 2
x + 2 ⋅ xy + 4 y
3 3 3
1
y = 2.8 y1 = ; y2 =
( )
;
α = 0.66
3
x 4 − 8 y ⋅ 3 x : 3 xy 3
x
−2
y
β = 0.82
z1 = ( cos α − cos β ) − ( sin α − sin β ) ;
2 2
α −β
z2 = −4sin 2 ⋅ cos (α + β ) ;
2
39
16. a = 4.3 a 3 − 3a 2 + 4 + ( a 2 − 4 ) a 2 − 1 ( a − 2) a +1
α = 0.43 y1 = ; y2 = ;
a + 3a − 4 + ( a − 4 ) a − 1
3 2 2 2
( a + 2) a −1
z1 = cos α + cos 2α + cos6α + cos7α ;
α 5
z2 = 4cos ⋅ cos α ⋅ cos 4α ;
2 2
17. b = 4.8 b − 3b − ( b − 1) b 2 − 4 + 2 b + 2
2
1− b
α = 0.23 y1 = ⋅ ; y2 = ;
b + 3b − ( b + 1) b − 4 + 2
2 2 b − 2 1 + b
cos 4α + 1 1
z1 = ; z2 = sin 4α ;
ctgα − tgα 2
18. x1 = 2.8 4 1 1 1 1
y1 = + −1 − 2 + −1
+ + ;
x2 = 4.8 x 4x 4x 4x 2
α = 0.97 при x ≤ 4 y1 ∼ y2 ; при x > 4 y1 ∼ y3 ;
5 2x − 3
y2 = ; y3 = ;
2 x 2 x
7 9 sin 4α
z1 = sin 2 π − 2α − sin 2 π − 2α ; z2 = ;
8 8 2
19. x = 1.4 x3 + xy 2 − x 2 y − y 3
y = 2.8 y1 =
4
y + x y − xy − x
5 4 4 4 4 4 5
; y2 = − ( 4
x+4 y ;)
α = 0.5
cos 2 α − cos 2 β
β = 0.34 z1 = ctg 2α − ctg 2 β ; z2 = ;
sin 2 α ⋅ sin 2 β
20. a = 5.1 1+ a
2 2
1+ a 1− a 1+ a
α = 0.3 y1 = − − − ;
1 + a 1 + a 1 + a 1 − a
16a a
y2 = ;
(1 − a 2 ) ⋅ ( a − 1)
z1 = (1 + sec2α + tg 2α ) ⋅ (1 − sec2α + tg 2α ) ; z2 = 2tg 2α ;
21. a = 15.1 1 + a + a2 1 − a + a2
−1
4 − a2
2 ( ) 2 2 ;
α = 1.23 y1 = + 2 − 5 − 2 a 2
; y =
2 a + a 2
2 a − a
z1 = cos α + sin α + cos3α + sin 3α ;
π
z2 = 2 2 cos α ⋅ sin + 2α ;
4
40
22. x = 3.1 x y( x − y)
2
1
y = 0.8 y1 = 2 − 4 ; y2 = ;
x +y 2
x −y 4
x+ y
α = 0.81 3 α 11 α 2 α
z1 = cos 2 π − − cos 2 π + ; z2 = sin ;
8 4 8 4 2 2
23. a = 2.3 ( 2a − b )+ 2b 2 − 3ab 4a 2 − 3ab
2
b = 1.89 y1 = : ; y2 = a − b;
2a −1 + b 2 2 + ab 2
α = 0.23 α α
z1 = sin 6 − cos 6 ; z2 = ( sin 2 α − 4 ) cos α ;
1
2 2 4
24. b = 3.8
2b + 2 b2 − 4 1
α = 0.28 y1 = ; y2 = ;
b2 − 4 + b + 2 b+2
15 17 − cos4α
z1 = sin 2 π − 2α − cos 2 π − 2α ; z2 = ;
8 8 2
25. p = 0.7
2
2 −2
y1 = (1 − p ) − (1 + p ) + 2 (1 − p ) ; y2 =
1 1 1
2 −2 4 −2 2
α = 0.54 ;
(1 − p 4
)
8cos2 2α
z1 = tgα + ctgα + tg 3α + ctg 3α ; z2 = ;
sin 6α
26. a = 3.5 a2 + a a 2 − b2 − a2 − a a 2 − b2
2
b = 0.72
y1 = ;
α = 0.62 a b
2 a 2b + − 2
b a
( );
2
a+ b
y2 =
a −b
1
z1 = 1 − sin 2 2α + cos 2α ; z2 = cos 2 α + cos4 α ;
4
27. a = 12.3 a+2 a 2 a− 2 1
y1 = − + ⋅ a + 2 ; y2 = ;
α = 0.43 2 a 2 a + 2 a − 2 a a + 2
sin 2α + sin5α − sin3α
z1 = ; z2 = 2sin α ;
cosα + 1 − 2sin 2 2α
28. a = 8.6 a+b−c
b = 1.3
(
y1 = a 2 − b2 − c 2 + 2bc : )
a+b+c
; y1 = ( a + c ) − b 2
2
α = 0.75 z2 =
1 1 5
− sin π − 8α ;
4 4 2
41
29. a = 6.3 1 1 1
1 + 2a 4 − a 2 a4 − 2 1
α = 0.1 y1 = + ; y2 = ;
a −1
3 1 2
14
4
β = 0.7 1 − a + 4a 4 − 4 a 2
a − 1
sin α + cos ( 2 β − α ) 1 + sin 2 β
z1 = ; z2 = ;
cos α − sin ( 2 β − α ) cos 2 β
30. m = 0.4 ( m − 1) m − ( n − 1) n m− n
y1 = ; y2 = ;
n = 2.1 m3n + mn + m2 − m m
α = 0.43 tgα − sec α
z1 = ; z2 = tgα ⋅ secα ;
cos α − ctgα
Строковый ответ
Y
Содержание отчета
1. Название работы, номер варианта индивидуального задания.
2. Фамилия, имя, отчество и номер группы студента.
3. Рисунок в том виде, как он приведен в варианте задания.
4. Уравнения всех линий, ограничивающих заштрихованную область.
5. Система неравенств координат всех точек заштрихованной области.
6. Блок – диаграмма программы.
42
Варианты индивидуального задания
№ Задание № Задание
1. 2.
3. 4.
5. 6.
43
7. 8.
9. 10.
11. 12.
44
13. 14.
15. 16.
17. 18.
45
19. 20.
21. 22.
23. 24.
46
25. 26.
27. 28.
29. 30.
47
Лабораторная работа №3: Условные операторы
Задание
Разработать виртуальный прибор для решения задачи, согласно
заданному варианту индивидуального задания.
Содержание отчета
1. Название работы, номер варианта индивидуального задания.
2. Фамилия, имя, отчество и номер группы студента.
3. Текст задания индивидуального варианта.
4. Блок – диаграмма программы.
5. Блок – схема программы.
48
9. Дано трехзначное число. Определить:
а) является ли сумма его цифр двухзначным числом;
б) является ли произведение его цифр трехзначным числом.
10. Дано трехзначное число. Определить:
а) является ли произведение его цифр больше числа b ;
б) кратна ли сумма его цифр трем.
11. Даны вещественные числа a , b , c , a ≠ 0 . Решить уравнение
ax 2 + bx + c = 0 . Учесть возможность равенства корней.
12. Ввести с клавиатуры координаты точки A( x, y ) . Определить, лежит ли
точка A в области, ограниченной параболой y = 2 − x2 и прямой
y = −2 . Ответ вывести в виде сообщения.
13. Дано двухзначное число. Определить:
а) входят ли в него цифры 3 и 7;
б) входят ли в него цифры (4 и 8) или цифра 9.
14. Рейтинг бакалавра заочного отделения при поступлении в
магистратуру определяется средним баллом по диплому, умноженным
на коэффициент стажа работы по специальности, который равен: нет
стажа – 1, меньше 2 лет – 13, от 2 до 5 лет – 16. Составить программу
расчета рейтинга при заданном среднем балле диплома (от 3 до 5) и
вывести сообщение о приеме в магистратуру при проходном балле 45.
15. Даны целочисленные координаты трех вершин прямоугольника,
стороны которого параллельны координатным осям. Определить
координаты четвертой вершины.
16. Дано четырехзначное число. Определить:
а) равна ли сумма двух первых его цифр сумме двух последних;
б) кратна ли 7 сумма его цифр.
17. Дано четырехзначное число. Определить:
а) кратно ли произведение его цифр трем;
б) кратно ли числу a произведение его цифр.
18. Даны вещественные положительные числа a , b , c , d . Выяснить,
можно ли прямоугольник со сторонами a , b поместить в
прямоугольник со сторонами c , d так, чтобы стороны одного
прямоугольника были параллельны или перпендикулярны сторонам
другого прямоугольника.
19. Даны вещественные положительные числа a , b , c , x , y . Выяснить,
пройдет ли кирпич размером a × b × c в отверстие размером x × y при
параллельном или перпендикулярном расположении ребер кирпича
сторонам отверстия.
20. Написать программу, которая при вводе числа в диапазоне от 1 до 20
добавляет к нему слово «гривна» в правильной форме. Например, «1
гривна», «2 гривны», «5 гривен».
49
21. Ввести число от 1 до 31. Определить ближайшую (следующую) дату
полнолуния или новолуния (лунных месяц содержит 28 дней), если
последнее полнолуние было 27 августа.
22. Определить проводник с максимальным сопротивлением, если даны
три проводника с удельным сопротивлением r1 , r2 , r3 и площадью
сечения s1 , s2 , s3 .
23. Дано натуральное четырехзначное число. Выяснить, является ли оно
палиндромом (читается одинаково слева направо и справа налево).
24. Определить максимальный предельный заряд qmax и минимальный
потенциал ϕmin для трех шаров с диаметром r1 , r2 , r3 . Напряженность
поля, при которой начинается ударная ионизация, равна E = 3 МВ/м
E
( qmax = , ε 0 = 8.85 ⋅ 10−12 Ф/м; ε = 1 ; ϕmin = Er ).
4πε 0 r 2
50
Лабораторная работа №4: Решение задач с одномерными
массивами
Задание
1. Разработать виртуальный прибор, который включает в себя два
подприбора:
− Первый подприбор генерирует одномерный массив из 20
элементов случайных целых чисел в диапазоне значений [-100: 100],
либо выдает заранее введенный одномерный массив.
− Поведение первого подприбора определяется входом булева типа,
где значение ИСТИНА – генерирование массива случайных
элементов, ЛОЖЬ – выдача введенного массива.
− Второй подприбор осуществляет операции над одномерным
массивом согласно варианту индивидуального задания.
2. На лицевой панели виртуального прибора разместить элемент
управления выбора массива, поле ввода одномерного массива, вывод
исходного массива, результаты промежуточных вычислений и
вычисления по выражению в соответствии с вариантом
индивидуального задания. Структура виртуального прибора показана на
рисунке 25
Подприбор 1 Подприбор 2
Случ. Ответ 1
Знач. 1
массив
Ответ 2
Истина/Ложь Знач. 2
? Ответ 3
Знач. 3
Исходный массив
51
Содержание отчета
1. Название работы, номер варианта индивидуального задания.
2. Фамилия, имя, отчество и номер группы студента.
3. Текст варианта индивидуального задания.
4. Блок – диаграмма программы.
52
8. R R – сумма всех элементов;
+S
Q +1 Q – номер первого нулевого элемента;
S – среднее геометрическое положительных среди
N последних элементов.
9. H H – сумма положительных среди N первых
+ G элементов;
( E + 1)( H + 1)
E – номер первого отрицательного элемента;
G – среднее арифметическое отрицательных
элементов.
10. X X – количество элементов, меньших D, с
Y+ нечетными номерами;
10 + Z
Y – максимальный по модулю элемент (со знаком);
Z – среднее квадратичное положительных
элементов.
11. A+ B A – произведение положительных элементов;
C+
A⋅ B +1 B – последний положительный элемент с четным
номером;
C – среднее квадратичное N первых элементов.
12. T ⋅V + U V – сумма отрицательных элементов, больших D,
U +1 (D<0) ;
T – номер максимального элемента;
U – среднее геометрическое положительных среди
N первых элементов.
13. (U + T )( S + 2) S – сумма модулей отрицательных элементов;
T – номер минимального по модулю ненулевого
элемента;
U – среднее квадратичное N последних элементов.
14. H H – произведение модулей отрицательных
+ G элементов;
( E + 1)( H + 1)
E – номер последнего положительного элемента:
G – среднее арифметическое элементов с четными
номерами.
15. X +Z X – сумма элементов, больших D, с четными
Y +2 номерами;
Y – номер максимального отрицательного
элемента;
Z – среднее квадратичное всех элементов.
16. A A – среднее гармоническое отрицательных
B+ элементов;
C +1
B – номер второго нулевого элемента;
C – количество отрицательных элементов с
четными номерами.
53
17. A B A – сумма положительных элементов;
C+ + B – номер минимального положительного
10 10 + A
элемента;
C – среднее гармоническое ненулевых элементов.
18. X +Z X – количество положительных элементов с
Y +2 четными номерами;
Y – номер последнего нулевого элемента:
Z – среднее гармоническое ненулевых элементов,
больших D.
19. A⋅ B A – произведение отрицательных элементов;
C+2 B – максимальный по модулю элемент (со знаком);
C – среднее арифметическое модулей
отрицательных элементов.
20. E H – количество отрицательных элементов;
H + G E – минимальный элемент среди N последних
H +1
элементов;
G – среднее квадратичное элементов с четными
номерами.
21. 1 S – количество положительных элементов;
U+ T – минимальный положительный элемент;
S + T +1
U – среднее арифметическое элементов.
22. A B A – первый положительный элемент с четным
C+ + номером;
10 10 + A
B – сумма элементов с нечетными номерами;
C – среднее гармоническое ненулевых среди N
первых элементов.
23. U U – произведение ненулевых среди N первых
+S
R +1 элементов;
R – номер максимального по модулю элемента;
S – среднее геометрическое положительных
элементов.
24. R R – максимальный элемент с четным номером;
+S
Q +1 Q – количество ненулевых элементов;
S – среднее гармоническое положительных
элементов.
25. (U + T )( S + 2) S – сумма N последних элементов;
T – максимальный отрицательный элемент;
U – среднее квадратичное элементов с четными
номерами.
26. A+ B A – количество элементов, больших D;
C+
A⋅ B +1 B – первый положительный элемент с четным
номером;
C – среднее арифметическое N первых элементов.
54
27. H +1 H – сумма элементов со значениями из интервала
( C + 2) E [A, B];
E – последний положительный элемент с четным
номером;
C – среднее арифметическое положительных
элементов.
28. (H + E)⋅C H – произведение элементов со значениями из
( E + C + 4) интервала [A, B];
E – номер минимального по модулю ненулевого
элемента;
C – среднее геометрическое положительных среди
N последних элементов.
29. R+Q+S R – количество элементов, меньших D;
R ⋅Q ⋅ S + 2 Q – модуль минимального элемента;
S – среднее квадратичное положительных
элементов.
30. R U – минимальный элемент с номером из интервала
+U +T
R +1 [K, L];
T – среднее арифметическое элементов с
нечетными номерами.
R – количество нулей среди N последних
элементов.
Задание
Разработать виртуальный прибор для решения задачи, согласно
заданному варианту индивидуального задания.
Содержание отчета
1. Название работы, номер варианта индивидуального задания.
2. Фамилия, имя, отчество и номер группы студента.
3. Текст задания индивидуального варианта.
4. Блок – диаграмма программы.
5. Блок – схема программы.
55
2. Дано натуральное число n . Среди чисел 1, 2,...n найти все такие, запись
которых совпадает с последними цифрами записи их квадрата.
3. Назовём натуральное число палиндромом, если его запись читается
одинаково как с начала так и с конца (пример: 4884, 393, 1, 22). Найти
все меньшие 100 натуральные числа, которые являются палиндромами.
4. Написать программу поиска суммы последовательности
положительных чисел, вводимых с клавиатуры, предшествующих
первому введенному нулю. Контрольный пример: 1,2,3,-4,5,-2,0.
5. Натуральное число называется совершенным, если оно равно сумме
всех своих делителей за исключением самого себя. Например,
6 = 1 + 2 + 3 . Дано натуральное число n . Получить все совершенные
числа, меньшие n .
6. Написать программу поиска чисел, лежащих в интервале от -5 до 5, в
последовательности чисел, вводимых с клавиатуры, предшествующих
первому введенному нулю . Контрольный пример: 1,10,-4,5,-16,-5,0.
7. Вычислить сумму чисел от 1 до N , возведенных в степень M .
Возведение в степень оформить как многократное умножение.
8. Определить 20-е число Фибоначчи. Где последовательность чисел
Фибоначчи {Fn } задается линейным рекуррентным соотношением:
F0 = 0, F1 = 1, Fn+1 = Fn + Fn−1 , n ∈ N .
9. Написать программу поиска произведения последовательности
отрицательных чисел, вводимых с клавиатуры, предшествующих
первому введенному нулю. Контрольный пример: 1,2,3,-4,5,-2,0.
10. Ежемесячная стипендия студента составляет X руб., а расходы на
проживание превышают ее и составляют Y руб. в месяц. Рост цен
ежемесячно увеличивает расходы на 3%. Определить, какую нужно
иметь сумму денег, чтобы прожить учебный год (10 месяцев),
используя только эти деньги и стипендию.
11. Дано натуральное число n ( n < 9999 ) и число m . Найти сумму m
-последних цифр числа n .
12. Найти все четырехзначные числа, у которых все цифры различны.
13. Назовём натуральное число палиндромом, если его запись читается
одинаково как с начала так и с конца (пример: 4884, 393, 1, 22). Найти
все меньшие 100 натуральные числа, которые при возведении в квадрат
дают палиндром.
14. Остров Манхэттен был приобретен поселенцами за $24 в 1626 г. Каково
было бы в настоящее время состояние их счета, если бы эти 24 доллара
были помещены тогда в банк под 6% годового дохода?
15. Натуральное число из n цифр является число Армстронга, если сумма
его цифр возведенных в n -ую степень равна самому числу. Получите
все эти числа состоящие из трех и четырех цифр (пример
13 + 53 + 33 = 153 ).
56
16. Написать программу поиска чисел, лежащих в интервале от 3 до 13, в
последовательности чисел, вводимых с клавиатуры, предшествующих
первому введенному отрицательному числу. Контрольный пример:
1,3,16,7,13,10,2,-1 .
17. Найти в промежутке от 1 до 1000 числа, у которых пять делителей.
18. Написать программу поиска суммы последовательности
отрицательных чисел, вводимых с клавиатуры, предшествующих
первому введенному нулю. Контрольный пример: 1,2,3,-4,5,-2,0.
19. У студента имеются накопления S руб. Ежемесячная стипендия
составляет X руб., а расходы на проживание превышают ее и
составляют Y руб. в месяц. Рост цен ежемесячно увеличивает расходы
на 3%. Определить, сколько месяцев сможет прожить студент,
используя только накопления и стипендию.
20. Найти все числа кратные семи, и сумма цифр которых также кратна
семи.
21. Дано натуральное число. Найти сколько раз в нем встречается каждая
цифра.
22. Перевести целое число из десятичной системы счисления в
восьмеричную, используя алгоритм деления на 8.
23. Написать программу поиска произведения последовательности чисел,
вводимых с клавиатуры, предшествующих первому введенному
отрицательному числу. Контрольный пример: 1,2,3,4,5,-2.
24. Перевести целое число из десятичной системы счисления в двоичную,
используя алгоритм деления на 2.
25. Для чисел от 1 до 1000 . Найти все нечетные сотни в которой есть
повторение чисел.
26. Написать программу поиска произведения последовательности чисел,
вводимых с клавиатуры, предшествующих первому введенному нулю.
Контрольный пример: 1,2,3,-4,5,-2,0.
27. Каждая бактерия делится на две в течение одной минуты. В начальный
момент имеется одна бактерия. Составьте программу, которая
рассчитывает количество бактерий на заданное вами целое значение
момента времени (15 минут, 7 минут и т.п.).
28. Для чисел от 1 до 1000, возвести в куб каждый третий десяток каждой
второй сотни.
29. Перевести целое число из десятичной системы счисления в
шестнадцатеричную, используя алгоритм деления на 16.
30. Билет называют «счастливым», если в его номере сумма первых трех
цифр равна сумме последних трех. Подсчитать число тех «счастливых»
билетов, у которых сумма трех цифр равна 13. Номер билета может
быть от 000000 до 999999 .
57
Лабораторная работа №6: Решение задач с двумерными
массивами
Задание
1. Разработать виртуальный прибор, который:
− генерирует двумерный массив размера M × N из случайных чисел
в диапазоне [-100: 100] в соответствии с вариантом
индивидуального задания. Параметры размера матрицы M и N
вводятся с клавиатуры.
− выводит на лицевую панель исходную матрицу.
− дополнительные параметры, если они есть в варианте
индивидуального задания, вводятся через элементы управления на
лицевой панели.
− выполняет действия в соответствии с индивидуальным заданием с
использованием вложенных циклов или встроенных функций
LabVIEW для работы с массивами.
− выводит результаты работы программы на лицевую панель,
поясняя каждое значение формулировками из индивидуального
задания.
2. Программа должна иметь минимум два подприбора.
Содержание отчета
1. Название работы, номер варианта индивидуального задания.
2. Фамилия, имя, отчество и номер группы студента.
3. Текст варианта индивидуального задания.
4. Блок – диаграмма программы.
58
2. I. Сформировать матрицу B из элементов матрицы A. Каждый элемент
bik должен быть равен сумме элементов матрицы A из области,
определяемой индексами i , k в соответствии с
рисунком. Вывести результирующую матрицу.
II. Составить и вывести одномерный массив из сумм aik
положительных элементов с четными номерами
строк в каждом столбце матрицы A.
3. I. Отобрать в матрицу B только те строки матрицы A , элементы
которых расположены в порядке возрастания. Если в матрице A таких
строк нет, вывести сообщение, иначе вывести:
• номера строк матрицы A, помещенных в матрицу B;
• полученную матрицу B.
II. Найти и вывести сумму положительных элементов матрицы A с
двумя нечетными индексами.
4. I. Если сумма положительных элементов матрицы больше
произведения модулей ее отрицательных элементов, сформировать
одномерный массив из положительных элементов матрицы, иначе
массив формировать из ее отрицательных элементов. При
формировании одномерного массива матрицу просматривать
построчно. Вывести:
• вычисленные значения суммы и произведения;
• полученный одномерный массив.
II. Составить и вывести одномерный массив из максимальных
отрицательных элементов среди второй половины каждой строки
матрицы. Если таких элементов в строке нет, соответствующий
элемент одномерного массива должен быть равен 0.
5. I. В каждой строке матрицы каждый отрицательный
элемент, расположенный между двумя
положительными, заменить их полусуммой. Вывести
преобразованную матрицу.
II. Найти значение максимального элемента из
заштрихованной части преобразованной матрицы и вывести это
значение и координаты его в матрице. Границы заштрихованной части
выберите сами.
6. I. Записать в одномерный массив максимальные отрицательные
элементы каждой строки матрицы. Для строк матрицы, не содержащих
отрицательных элементов, в результирующий массив записать 0.
Вывести полученный одномерный массив.
II. Составить и вывести одномерный массив из средних квадратичных
значений элементов с четными номерами строк в каждом столбце
матрицы.
59
7. I. Найти среднее арифметическое значение максимальных по модулю
элементов строк матрицы. Вывести:
• значения максимальных по модулю элементов строк (со знаком);
• полученное значение.
II. Составить и вывести одномерный массив из количеств элементов со
значениями в интервале [C, D] в каждой строке матрицы.
8. I. В каждом столбце целочисленной матрицы подсчитать сумму
положительных элементов с четными значениями и записать ее в
одномерный массив. Вывести полученный массив.
II. Составить и вывести одномерный массив из минимальных
положительных элементов среди первой половины каждого столбца
матрицы. Если таких элементов в столбце нет, соответствующий
элемент одномерного массива должен быть равен 0.
9. I. Вычислить среднее арифметическое значение элементов каждого
столбца матрицы без учета минимального и максимального элементов
этого столбца; записать это значение в одномерный массив. Вывести:
• значения минимума и максимума столбцов;
• полученный одномерный массив.
II. Составить и вывести одномерный массив из сумм элементов со
значениями из интервала [C, D] в каждом столбце матрицы.
10. I. Сформировать матрицу B из элементов матрицы A. Каждый элемент
bik должен быть равен сумме элементов матрицы A
aik
из области, определяемой индексами i , k в
соответствии с рисунком. Вывести
результирующую матрицу.
II. Найти и вывести среднее геометрическое положительных элементов
матрицы A с двумя четными индексами. Если таких элементов в
матрице нет, вывести сообщение.
11. I. Преобразовать целочисленную матрицу, удалив из нее строки,
содержащие нулевые элементы, и сдвинув оставшиеся строки. Если
нулевых элементов в матрице нет, вывести сообщение. Вывести:
• номера удаленных строк или сообщение;
• преобразованную матрицу.
II. Составить и вывести одномерный массив из максимальных
отрицательных элементов каждого столбца преобразованной матрицы.
Если отрицательных элементов в столбце нет, соответствующий
элемент одномерного массива должен быть равен 0.
60
12. I. Преобразовать целочисленную матрицу,
переставив на первое место столбец с наибольшим
количеством нулей (сдвинуть остальные столбцы).
При отсутствии в матрице нулевых элементов
вывести сообщение, иначе вывести
преобразованную матрицу.
II. Найти значение минимального ненулевого элемента в
заштрихованной части преобразованной матрицы и вывести это
значение и его координаты в матрице. Границы заштрихованной части
выберите сами. Если таких элементов в матрице нет, вывести
сообщение
13. I. Сформировать и вывести квадратную матрицу B
из элементов квадратной матрицы A . Каждый aik
элемент bik должен быть равен сумме элементов
матрицы A из области, определяемой индексами
aki
i , k в соответствии с рисунком.
II. Составить и вывести одномерный массив из количеств элементов,
меньших D , с четными номерами строк в каждом столбце матрицы A.
14. I. Если модуль суммы отрицательных элементов целочисленной
матрицы больше суммы ее положительных элементов, сформировать
одномерный массив из первых элементов строк матрицы, иначе массив
формируется из последних элементов строк матрицы. Если в матрице
нет положительных или отрицательных элементов, вывести
сообщение, иначе вывести:
• суммы отрицательных и положительных элементов матрицы;
• результирующий массив.
II. Найти и вывести координаты и значение максимального элемента
матрицы с двумя четными индексами.
15. I. Найти максимальный и минимальный по модулю ненулевые
элементы матрицы и поменять их местами. Вывести:
• координаты найденных элементов;
• преобразованную матрицу.
II. Составить и вывести одномерный массив из произведений
ненулевых элементов с нечетными номерами столбцов в каждой строке
преобразованной матрицы. Если таких элементов в строке нет,
соответствующий элемент одномерного массива должен быть равен 0.
61
16. I. Записать в одномерный массив столбец матрицы с максимальным
количеством отрицательных элементов. При отсутствии
отрицательных элементов в матрице вывести сообщение. Вывести:
• количество отрицательных элементов в столбцах или сообщение;
• результирующий одномерный массив.
II. Составить и вывести одномерный массив из сумм квадратов
отрицательных элементов каждой строки матрицы. Если
отрицательных элементов в строке нет, соответствующий элемент
одномерного массив должен быть равен 0.
17. I. Если в каждой строке целочисленной матрицы A есть равный нулю
элемент, то сформировать матрицу B из строк матрицы A с четными
номерами, иначе - из ее строк с нечетными номерами. Вывести:
• номера строк, в которых нет нулей;
• полученную матрицу.
II. Составить и вывести одномерный массив из количеств
отрицательных элементов с четными номерами столбцов в каждой
строке матрицы A.
18. I. Заменить максимальный элемент матрицы A средним
арифметическим его соседей. Соседями элемента aij в матрице считать
элементы ai +1, j , ai −1, j , ai , j +1 , ai , j −1 . Следует учесть, что в зависимости от
положения элемента aij в матрице у него может быть 2, 3 или 4 соседа.
Вывести:
• координаты и значение максимального элемента матрицы;
• преобразованную матрицу.
II. Найти и вывести количество ненулевых элементов преобразованной
матрицы с двумя нечетными индексами.
19. I. Назовем допустимым преобразованием матрицы перестановку двух
строк или двух столбцов. С помощью допустимых преобразований
добиться того, чтобы наибольший по модулю элемент матрицы
располагался в ее левом верхнем углу. Вывести преобразованную
матрицу после каждой перестановки (строки или столбца).
II. Составить и вывести одномерный массив из средних
арифметических значений элементов с нечетными индексами столбцов
в каждой строке преобразованной матрицы.
62
20. I. Сформировать матрицу B из элементов матрицы A. Каждый элемент
bik должен быть равен максимальному элементу
матрицы A из области, определяемой индексами i , k
в соответствии с рисунком. Вывести aik
результирующую матрицу.
II. Составить и вывести одномерный массив из
минимальных модулей ненулевых элементов каждой строки матрицы
A. Если в строке все элементы равны 0, соответствующий элемент
одномерного массив должен быть равен 0.
21. I. Найти координаты и значение максимума из минимальных элементов
каждого столбца матрицы. Вывести:
• координаты минимальных элементов столбцов;
• координаты и значение максимума.
II. Составить и вывести одномерный массив из произведений
ненулевых элементов каждого столбца матрицы. Если в столбце все
элементы равны 0, соответствующий элемент одномерного массива
должен быть равен 0.
22. I. Найти минимальный по модулю ненулевой элемент в каждой строке
квадратной матрицы и поменять его местами с элементом этой же
строки, находящимся на побочной диагонали матрицы. Вывести:
• координаты найденных в строках элементов;
• преобразованную матрицу.
II. Найти и вывести координаты максимального элемента со значением
в интервале [C, D] в преобразованной матрице. Если таких элементов в
матрице нет, вывести сообщение.
23. I. Записать в одномерный массив модули разности первого и
последнего отрицательных элементов каждого столбца матрицы. Для
столбцов, содержащих менее двух отрицательных элементов, в
результирующий массив записать ( −1) и вывести сообщение. Вывести:
• для каждого столбца – значения первого и последнего
отрицательных элементов или сообщение;
• полученный одномерный массив.
II. Составить и вывести одномерный массив из максимальных модулей
элементов каждой строки матрицы.
63
24. I. Сформировать матрицу B из элементов матрицы
A . Каждый элемент bik должен быть равен aik
максимальному элементу матрицы A из области,
определяемой индексами i , k в соответствии с
рисунком. Вывести результирующую матрицу.
II. Составить и вывести одномерный массив из минимальных
положительных элементов с четными индексами столбцов в каждой
строке матрицы A . Если таких элементов в строке нет,
соответствующий элемент одномерного массива должен быть равен 0.
25. I. Поменять местами первый и второй положительные элементы в
каждом столбце матрицы. Для столбцов матрицы, содержащих менее
двух положительных элементов, вывести сообщение. Вывести:
• координаты элементов, найденных в каждом столбце;
• преобразованную матрицу.
II. Составить и вывести одномерный массив из сумм отрицательных
элементов каждой строки преобразованной матрицы.
26. I. Удалить из целочисленной матрицы строки и столбцы, заполненные
нулями (оставшиеся строки и столбцы сдвинуть). Вывести
результирующую матрицу после каждого удаления (строк или
столбцов).
II. Найти и вывести произведение ненулевых элементов матрицы со
значениями в интервале [C, D] . Если таких элементов в матрице нет,
вывести сообщение.
27. I. Рассматривая построчно целочисленную матрицу A, сформировать
три одномерных массива, поместив в массив B - четные элементы, в
массив C - элементы, кратные 3, в массив D - элементы, кратные 5.
Возможна запись элемента в два или три массива. Вывести полученные
одномерные массивы.
II. Найти и вывести сумму отрицательных элементов матрицы с двумя
четными индексами.
28. I. Сформировать квадратную матрицу B из элементов квадратной
матрицы A. Каждый элемент bik должен быть равен максимальному
элементу матрицы A из области, определяемой индексами i , k в
соответствии с рисунком. Вывести результирующую матрицу.
II. Найти и вывести сумму отрицательных элементов матрицы,
больших D ( D < 0 ) . Если таких элементов в матрице нет, вывести
сообщение.
64
29. I. В каждом столбце целочисленной матрицы найти количество рядом
стоящих пар одинаковых элементов. Результаты записать в
одномерный массив. Вывести полученный массив.
II. Составить и вывести одномерный массив из сумм последних K
элементов каждой строки матрицы. ( K меньше числа элементов в
строке матрицы).
30. I. Умножить матрицу A на вектор B . Произведением матрицы
A ( M , N ) и вектора B ( N ) является вектор C ( M ) , каждый элемент
n
которого вычисляется по формуле c j = ∑ a jk ⋅ bk . Вывести полученный
k =1
массив.
II. Найти и вывести координаты и значение минимального элемента
матрицы. При поиске минимума исключить из рассмотрения первую и
последнюю строки и первый и последний столбцы.
Задание
Разработать виртуальный прибор для решения задачи, согласно
заданному варианту индивидуального задания.
Содержание отчета
1. Название работы, номер варианта индивидуального задания.
2. Фамилия, имя, отчество и номер группы студента.
3. Текст задания индивидуального варианта.
4. Блок – диаграмма программы.
65
5. Введите строку из 17 символов, содержащую два или более слов,
разделенных пробелами. Поменять местами все четные и нечетные
слова в строке.
6. Введите строку из 11 символов (английских символов, знаков
препинания и пробелов). Зашифровать его посимвольно операцией
«исключающее ИЛИ» с заданным числом из диапазона 0-255.
Организовать дешифрование строки.
7. Строка состоит из слов, в которые входят только русские буквы.
Оканчивается строка точкой. Одно слово от другого отделяется одним
или несколькими пробелами. Оставить в строке только те слова, в
которых чередуются гласные и согласные буквы, и эти слова
симметричны относительно своего центра.
8. Ввести строку, содержащий текст. Определить длину самого короткого
слова и самого длинного слова.
9. Введите строку из 23 символов. Определить, является ли она
палиндромом (симметричной с точностью до пробелов) или нет.
Например, «А РОЗА УПАЛА НА ЛАПУ АЗОРА» – палиндром.
(Предполагается, что все буквы строки – прописные.)
10. Введите строку из 16 символов. Найти наибольшее целое число (без
учета знака числа).
11. В заданной строке слова зашифрованы — каждое из них записано
наоборот. Расшифровать сообщение.
12. Дана строка, содержащая слова на латинице, разделенные пробелами.
Определить, какие буквы в словах совпадают чаще: первые, последние
или средние. Позиция средней буквы в слове определяется по формуле:
поз _ средн _ буквы = длина _ слова : 2 + 1 , где : — операция
целочисленного деления .
13. Дана строка, содержащая текст. Определите, каких букв (строчных или
прописных) в нем больше, и преобразуйте следующим образом: если
больше прописных букв, чем строчных, то все буквы преобразуются в
прописные; если больше строчных, то все буквы преобразуются в
строчные; если поровну и тех и других — текст остается без изменения.
14. Дана строка символов, содержащая слова, разделенные точкой с
запятой «;». Набор заканчивается двоеточием «:». Определить, сколько
в нем слов, заканчивающихся буквой «а».
15. Строка не более чем из 100 символов, содержащая произвольный
русский текст. Написать, какие буквы и сколько раз встречаются в этом
тексте. Ответ должен приводиться в грамматически правильной форме,
например «а – 5 раз», «к – 7 раз» и т.д.
66
16. Даны две строки символов: А и В Составьте программу, проверяющую,
можно ли из букв, входящих в А, составить В (буквы можно
использовать не более одного раза и можно переставлять). Например,
А: ИНТЕГРАЛ; В: АГЕНТ – составить можно; В: ГРАФ – составить
нельзя.
17. Введите строку из 7 символов. Определите, является ли она
симметричной (Симметричной считается строка, которая одинаково
читается слева направо и справа налево).
18. Дана строка символов, состоящая из предложений, разделенных
точками. Напишите программу, производящую следующее
форматирование:
а) после каждой точки в конце предложения должен стоять хотя бы
один пробел;
б) первое слово в предложении должно начинаться с прописной буквы.
Замечание, текст может быть как на русском, так и на английском
языке.
19. В строке хранятся фамилии и инициалы студентов группы. Требуется
напечатать список группы с указанием для каждого студента
количества его однофамильцев.
20. Дана строка, содержащая текст. Отредактировать заданный текст,
удаляя из него те слова, которые встречаются в предложении заданное
число раз.
21. Даны две строки, содержащие тексты. Напечатать те слова, которые
встречаются в каждой из двух строках.
22. Дана строка, содержащая текст на английском языке; соседние слова
отделены друг от друга запятой, за последним словом – точка.
Определить количество слов, которые заканчиваются буквой «w».
23. Дана строка, содержащая текст; соседние слова отделены друг от друга
запятой, за последним словом – точка. Определить количество слов,
которые начинаются и оканчиваются одной и той же буквой.
24. Дана строка, содержащая слова, разделенные пробелами. Найти в ней
слова-рифмы для заданного слова (рифма – совпадение трех последних
символов).
25. Даны две строки. Определить, совпадают ли они. Если нет, сообщить
номер позиции первого несовпадающего символа.
26. Дана строка, содержащая текст. Составить программу проверки
правильности написания сочетаний «жи»-«ши», «ча»-«ща», «чу»-«щу».
Исправить ошибки.
27. Дана строка, содержащая текст. Текст состоит из цифр, латинских и
русских букв. Подсчитать сумму цифр, встречающихся в тексте.
28. Дана строка, содержащая текст из латинских букв; соседние слова
отделены друг от друга запятой, за последним словом – точка. Вывести
текст, составленный из первых символов всех слов текста.
67
29. Составить программу исправления ошибочного набора текста вида
«после символов «.», «!», «?» должен стоять пробел».
30. Дана строка, содержащая текст. Вывести все слова, предварительно
заменив в них первую букву на заглавную.
Задание
Разработать виртуальный прибор для решения задачи, согласно
заданному варианту индивидуального задания.
Виртуальный прибор должен формировать исходный файл,
выполнять задание и сохранять результат в новом файле в соответствии с
вариантом индивидуального задания.
Содержание отчета
1. Название работы, номер варианта индивидуального задания.
2. Фамилия, имя, отчество и номер группы студента.
3. Текст задания индивидуального варианта.
4. Блок – диаграмма программы.
68
6. Создать файл, куда записать n целых чисел. Из файла целых чисел
сформировать массив, записав в него только ненулевые компоненты,
находящиеся после максимального элемента.
7. Создать файл, куда записать n вещественных чисел. Сделать массив из
элементов исходного файла, внеся в него числа, превосходящие
среднее значение среди положительных значений файла.
8. Создать файл, куда записать n целых чисел. Из исходного файла
сформировать массив, записав в него числа, расположенные в файле до
минимального элемента и после максимального.
9. Создать файл, куда записать n целых чисел. Массив создать из
исходного файла. Внести в него числа, расположенные в файле между
минимальным и максимальным элементами.
10. Создать файл, куда записать n целых чисел. Из исходного файла
сформировать массив, в котором вначале расположить четные, а затем
нечетные числа. Определить номера наибольшего нечетного и
наименьшего четного компонентов.
11. Создать файл, куда записать n целых чисел. В файле поменять местами
максимальное среди отрицательных и наибольшее среди простых.
12. Создать файл, куда записать n целых чисел. Из файла переписать все
простые большие среднего арифметические в новый файл.
13. Создать файл, куда записать n целых чисел. Найти среднее
арифметическое среди простых чисел, расположенных после
минимального значения.
14. Создать файл, куда записать n целых чисел. Поменять Местами первое
совершенное и последнее отрицательное число в файле.
15. Создать файл, куда записать n целых чисел. Все простые числа из
исходного файла записать в массив, который упорядочить по
убыванию.
16. Создать файл, куда записать n целых чисел. Последнюю группу
совершенных чисел из исходного файла переписать в текстовый файл.
17. Создать файл, куда записать n целых чисел. Найти в нем группу
положительных элементов наибольшей длины.
18. Создать файл, куда записать n целых чисел. Из исходного файла
сформировать массивы простых и совершенных чисел. Определить
наибольшее простое число в файле и наименьшее совершенное.
19. Создать файл, куда записать n целых чисел. Из файла создать массив,
элементы которого являются простыми числами и расположены после
максимального значения файла.
20. Создать файл, куда записать n целых чисел. Из файла целых чисел
сформировать массив, записав в него только кратные 3 значения,
находящиеся до минимального элемента файла.
69
21. Создать файл, куда записать n вещественных чисел. Сделать массив из
элементов исходного файла, внеся в него числа, превосходящие
среднее значение среди четных значений файла.
22. Создать файл, куда записать n вещественных чисел. Поменять местами
последнее простое число в файле с наименьшим совершенным.
23. Создать файл, куда записать n вещественных чисел. Найти сумму
последней группы отрицательных элементов.
24. Создать файл, куда записать n целых чисел. Найти произведение
первой группы, состоящей из простых чисел.
25. Создать файл, куда записать n целых чисел. Найти разность между
суммой простых чисел, находящихся в файле и максимальным
значением файла.
26. Создать файл, куда записать n целых чисел. Найти разность между
суммой четных чисел и произведением нечетных чисел, находящихся в
файле.
27. Создать файл из действительных чисел. Создать два новых файла - в
первом файле записать все чётные числа исходного файла, а все
нечётные во второй файл. Порядок следования чисел сохраняется.
28. Создать файл из вещественных чисел. Из файла удалить все
компоненты, находящиеся после первого чётного компонента.
29. Создать файл, компонент которого состоит из двух переменных: первая
переменная – число, вторая – символ. Поместить в качестве первого
компонента файла последний компонент, значение первой
составляющей которого больше заданного числа.
30. Создать файл из строковых данных. Из файла удалить первый
компонент, содержащий заданную строку.
70
Список литературы
71
Содержание
72
Миссия университета – генерация передовых знаний
знаний, внедрение
инновационных разработок и подготовка элитных кадров,
кадров способных
действовать в условиях быстро меняющегося мира и обеспечива
обеспечивать
опережающее развитие науки,
науки технологий и других областей для содействия
решению актуальных задач
задач.
КАФЕДРА ОПТИКО-ЭЛЕКТРОННЫХ
ОПТИКО ПРИБОРОВ И СИСТЕМ
Кафедра создавалась в 1937-38 годах и существовала под
следующими названиями
названиями:
− с 1938 по 1958 год - кафедра военных оптических приборов
приборов;
− с 1958 по 1967 год - кафедра специальных оптических приборов;
− с 1967 по 1992 год - кафедра оптико-электронных
электронных приборов;
приборов
− с 1992 года - кафедра оптико-электронных приборов и систем.
Кафедру возглавляли
вляли:
− с 1938 по 1942 год - профессор К.Е. Солодилов;
− с 1942 по 1945 год - профессор А.Н. Н Захарьевский (по
совместительству);
− с 1945 по 1946 год - профессор М.А. М А. Резунов (по
совместительству);
− с 1947 по 1972 год - профессор С.Т. Цуккерман;
− с 1972 по 19922 год - заслуженный деятель науки и техники РСФСР,
профессор Л.Ф. Порфирьев;
Порфирьев
− с 1992 по 2007 год - заслуженный деятель науки РФ, РФ профессор
Э.Д. Панков.
− с 2007 года по настоящее время - почетный работник высшего
профессионального образования,
образования профессор В.В. Коротаев.
История кафедры началась в 1937-38 годах с организации в
Ленинградском институте точной механики и оптики (ЛИТМО ЛИТМО) кафедры
военных оптических приборов.
приборов Первым заведующим кафедрой был
К.Е. Солодилов
Солодилов, до этого возглавлявший Центральное конструкторское
конструкт
бюро (ЦКБ) Всесоюзного объединения оптико-механической
оптико
промышленности (ВООМП
ВООМП). Преподавателями кафедры стали сотрудники
этого ЦКБ - М.А. А Резунов,
Резунов М.Я. Кругер, С.Т. Цуккерман
Цуккерман, В.А.
В Егоров,
Б.М. Кулeжнов.
В годы Великой Отечественной войны кафедра былаа эвакуирована в
Черепаново, где обязанности заведующего кафедрой выполнял профессор
А.И. Захарьевский
Захарьевский. Преподавателями кафедры по состоянию на 01.04.1945
г были профессор Чулановский
Чулановский, доцент Кругер,
Кругер ст. преподаватель
Гриневич, ассистенты Дедюлин и Погарев. После возвращения в
Ленинград кафедрой в 1945-46 годах по совместительству заведовал
73
начальник конструкторского бюро (КБ) Государственного оптического
института им. С.И. Вавилова (ГОИ) М.А. Резунов.
В начале 1947 года кафедру возглавил профессор С.Т. Цуккерман,
который руководил ею до 1972 года. В 1958 году кафедра была
реорганизована в кафедру специальных оптических приборов, а в 1967 году
в кафедру оптико-электронных приборов (ОЭП).
Создание С.Т. Цуккерманом в предвоенные годы книги «Точные
механизмы» (М.: Оборонгиз, 1941) является значительным вкладом в
развитие отечественного точного приборостроения. С.Т. Цуккерман
является автором более 120 научных работ и более 50 изобретений. В
предвоенные, военные и послевоенные годы С.Т. Цуккерман работал над
созданием прицельных устройств для зенитной и авиационной артиллерии.
Он был одним из создателей серийного авиационного гироскопического
прицела АСП с автоматической выработкой поправки на упреждение,
который устанавливался на истребителях МиГ, а также механического
ракурсного прицела для мелкокалиберной зенитной артиллерии, широко
применяемого во время войны во Вьетнаме.
В 1958 г. при кафедре была организована отраслевая лаборатория
«Специальные оптические приборы» с достаточно сильной группой
конструкторов-разработчиков.
С.Т. Цуккерман и старший научный сотрудник А.С. Гридин
руководили разработкой приборов управления по лучу (ПУЛ),
предназначенных для управления движением различных подвижных
объектов по прямой линии или по программе.
В начале 60-х годов старший научный сотрудник Г.Г. Ишанин
занимался разработкой фотометрической аппаратуры, предназначенной
для паспортизации оптико-электронных приборов и систем различного
назначения.
Значительное влияние на содержание подготовки специалистов и
научных исследований оказало привлечение к работе на кафедре
выдающегося специалиста в области оптико-электронного
приборостроения, члена-корреспондента Российской академии наук (РАН),
Героя Социалистического Труда, лауреата Ленинской премии профессора
М.М. Мирошникова, который, работая на кафедре ОЭП с 1969 года по 1976
год в должности профессора по совместительству, поставил и читал курс
«Теория оптико-электронных приборов».
С 1972 года по 1992 год кафедрой ОЭП заведовал заслуженный
деятель науки и техники РСФСР, профессор Л.Ф. Порфирьев, известный
специалист в области автоматических ОЭПиС в комплексах навигации и
управления авиационной и космической техникой. Соответственно
тематика выполнения научно-исследовательских работ на кафедре
приобрела новые направления, существенно увеличилось число тем,
74
носящих поисковый фундаментальный характер. Были разработаны новый
учебный план и программы учебных дисциплин.
Л.Ф. Порфирьев является автором 19 учебников, учебных пособий и
монографий, среди которых можно выделить такие как «Теория
оптико-электронных приборов и систем» (Л.: Машиностроение, 1980),
«Основы теории преобразования сигналов в оптико-электронных
системах» (Л.: Машиностроение, 1989). Результаты его работ можно
оценить как значительный вклад в разработку общей теории
оптико-электронных систем.
Л.Ф. Порфирьев как руководитель проводил достаточно жесткую
кадровую политику, при которой на кафедре оставались работать только те
сотрудники, которые отличались преданностью делу. При этом он
оказывал всемерную поддержку сотрудникам кафедры по разработке ими
различных направлений теории и практики оптико-электронного
приборостроения. По результатам научно-исследовательских работ в этот
период защитили диссертации на соискание ученой степени доктора
технических наук Г.Н. Грязин (1983 г.), Е.Г. Лебедько (1985 г.), Э.Д.
Панков (1986 г.), Г.Г. Ишанин (1988 г.), защищено много диссертаций на
соискание ученой степени кандидата технических наук.
В этот период под руководством Э.Д. Панкова начали проводиться
исследования по разработке новых оптико-электронных систем измерения
взаимного положения разнесенных в пространстве объектов.
Г.Н. Грязин, перешедший на кафедру с радиотехнического
факультета в конце 60-х годов, продолжил свои работы в области
прикладного телевидения, в частности, по разработке систем наблюдения
за быстродвижущимися объектами и быстропротекающими процессами.
С 1975 года заведующим отраслевой лабораторией стал старший
научный сотрудник А.Н. Тимофеев, который продолжил исследования по
разработке методов и средств контроля пространственного положения
объектов с помощью ОЭП с оптической равносигнальной зоной для
машиностроения, энергетики, строительства, судостроения и
железнодорожного транспорта.
С 1975 года, после увольнения в запас, из Ленинградской военной
инженерной краснознаменной академии (ЛВИКА) им. А.Ф. Можайского на
кафедру пришел работать в должности профессора С.П. Авдеев, известный
специалист в области ОЭПиС космических аппаратов. Он поставил курсы и
читал лекции по учебным дисциплинам «Оптико-электронные приборы»,
«Оптико-электронные приборы систем управления»,
«Оптико-электронные приборы для научных исследований».
Существенное влияние на содержание подготовки специалистов и
научных исследований оказало привлечение к работе на кафедре лауреата
Ленинской и Государственной премий профессора Б.А. Ермакова,
известного специалиста в области физической оптики и
75
оптико-электронного приборостроения. Б.А. Ермаков работал на кафедре
ОЭП с 1979 года по 1992 год в должности профессора по совместительству
и поставил курс «Оптико-электронные приборы с лазерами».
В 70-80 годах под руководством доцента Е.Г. Лебедько проводились
исследования законов отражения лазерного излучения от нестационарных
поверхностей и протяженных объектов, исследования в области теории
идентификации объектов по их излучению в сложной фоновой ситуации.
Создан комплекс для лазерной локации крупногабаритных морских
объектов сложной конфигурации и водной поверхности. В этих работах
принимали участие доценты О.П. Тимофеев и С.Б. Лукин.
В 70-90 годах под руководством Л.Ф. Порфирьева был разработан
ряд астродатчиков, систем астроориентации и космической навигации
(В.И. Калинчук, А.Л. Андреев, С.Н. Ярышев).
С 1992 г. заведующим кафедрой является заслуженный деятель науки
Российской Федерации, профессор Э.Д. Панков. В 1992 году кафедра была
переименована в кафедру оптико-электронных приборов и систем
(ОЭПиС).
Под руководством Э.Д. Панкова в 70-90-х годах были проведены
разработки ряда оптико-электронных приборов и систем специального и
гражданского применения, нашедших практическое внедрение и
способствующих научно-техническому прогрессу и укреплению
обороноспособности нашей страны.
В частности, исследования и разработки в области линейных и
угловых измерений позволили приступить к решению общей проблемы
согласования отсчетных баз на нестационарно деформируемых объектах с
помощью оптико-электронных систем.
В рамках указанной проблемы доцентом И.А. Коняхиным
проводились исследования, результаты которых можно классифицировать
как разработку теории построения автоколлимационных систем с
компонентами нарушенной типовой конфигурации.
В то же время доцентом В.В. Коротаевым разработан ряд
поляризационных приборов и измерительных установок. Теоретическим
результатом работ явилась разработка методологии анализа
поляризационных свойств оптических систем с изменяющейся
ориентацией элементов. По результатам указанных работ В.В. Коротаев (в
1997 г.) и И.А. Коняхин (в 1998г.) защитили диссертации на соискание
ученой степени доктора технических наук.
Применение многоэлементных приемников в системах пеленгации
дало толчок развитию телевизионных систем технического зрения,
измерительных телевизионных систем и систем обработки изображений.
Результаты этих исследований были использованы доцентом
А.Л. Андреевым при постановке учебных курсов «Оптико-электронные
системы с ЭВМ», «Специализированные аппаратные и программные
76
средства ОЭП», «Автоматизированные телевизионные вычислительные
комплексы», а также доцентом С.Н. Ярышевым при постановке им в 1993
году учебной дисциплины «Видеотехника».
Указанные курсы обеспечиваются лабораторным практикумом на
базе рабочих мест, оснащенных персональными компьютерами,
объединенными в локальную сеть. Рабочие места оснащены аппаратными и
программными средствами цифровой видеозаписи и обработки
изображений. В этот период Г.Н. Грязиным были подготовлены
дисциплинам: «Телевизионные системы», «Прикладное телевидение и
телевизионно-вычислительные комплексы» (совместно с А.Л. Андреевым).
На основе обобщения методик расчета оптико-электронных систем
различного назначения и принципа действия в 1981 году были развернуты
работы по созданию элементов систем автоматизированного
проектирования ОЭП. За период с 1981 по 1987 год под руководством И.А.
Коняхина были разработаны оригинальные пакеты прикладных программ
расчета параметров систем измерения пространственного положения
объектов.
Развитие компьютерной техники и программного обеспечения
общего назначения позволило создать проблемно-ориентированное
программное обеспечение поддержки проектирования ОЭП на
системотехническом уровне.
По результатам научных работ сотрудниками кафедры ОЭПиС
выпущено в свет 15 монографий, 11 учебников и учебных пособий. На
кафедре подготовлено 14 докторов наук, а также более 110 кандидатов
наук.
На разработки кафедры получены авторские свидетельства СССР и
патенты Российской Федерации на более чем 200 изобретений.
Наибольший вклад в изобретательскую деятельность внес Э.Д. Панков -
автор 123 изобретений, из которых 33 внедрены в промышленности.
При заявлении научно-педагогической школы
«Оптико-электронное приборостроение» в 2009 году были
сформулированы следующие основные научно-технические результаты,
достигнутые в период с 1938 по 2009 годы:
− разработаны принципы построения военных оптико-механических
приборов;
− разработаны принципы построения точных механизмов;
− разработаны принципы построения оптико-электронных приборов
с оптической равносигнальной зоной;
− систематизированы теоретические основы и принципы построения
оптико-электронных приборов;
− разработаны методы описания импульсных сигналов,
идентификации и классификации объектов в системах нестационарной
лазерной локации;
77
− разработаны теория, принципы построения и методы расчета
импульсных телевизионных систем наблюдения быстродвижущихся
объектов;
− обнаружен термоупругий эффект в кристаллическом кварце и
создан новый тип приемников оптического излучения;
− разработана теория построения автоколлимационных систем с
компонентами нарушенной типовой конфигурации;
− разработана методология анализа поляризационных свойств
оптических систем с изменяющейся ориентацией элементов;
− систематизированы теоретические основы и принципы построения
измерительных систем на основе матричных фотопреобразователей;
− разработаны основы построения ОЭС согласования отсчетных баз
на нестационарно деформируемых объектах.
Основоположники научной школы:
• Солодилов Константин Евгеньевич, заведующий кафедрой с 1938 г. по
1942 г., профессор;
• Цуккерман Семен Тобиасович, заведующий кафедрой с 1947 г. по 1972 г.,
профессор;
• Мирошников Михаил Михайлович, директор ГОИ, д.т.н., профессор,
профессор кафедры ОЭП с 1967 г. по 1978 г.; член-корреспондент
Российской Академии наук, Герой Социалистического Труда, лауреат
Ленинской премии.
• Порфирьев Леонид Федорович, заведующий кафедрой с 1972 г. по 1992 г.,
д.т.н., профессор, Заслуженный деятель науки и техники РСФСР.
• С 2007 г. заведующим кафедрой является почетный работник высшего
профессионального образования Российской Федерации, профессор
В.В. Коротаев.
На кафедре была открыта подготовка по новой специализации
инженеров «Оптико-электронные приборы и системы обработки
видеоинформации» и новая магистерская программа «Оптико-электронные
методы и средства обработки видеоинформации».
В 2007 году был создан научно-образовательный центр
оптико-электронного приборостроения (НОЦ ОЭП).
Научно-образовательный центр оптико-электронного
приборостроения выполняет научно-исследовательские и
опытно-конструкторские работы по созданию видеоинформационных и
информационно-измерительных приборов различного назначения,
высокоточных приборов для измерения линейных, угловых и других
физических величин в промышленности, энергетике, на транспорте, а
также систем технического зрения и обработки видеоинформации. К
выполнению научно-исследовательских и опытно-конструкторских работ
широко привлекаются студенты, аспиранты, молодые специалисты,
78
молодые кандидаты наук. Научно-образовательный центр является
активным участником Федеральной целевой программы «Научные и
научно-педагогические кадры инновационной России» на 2009-2013 годы.
Направления научных исследований кафедры ОЭПиС
в 2007-2012 годах.
Развитие теоретических основ и принципов построения
оптико-электронных приборов и систем, в том числе:
• видеоинформационных измерительных систем;
• видеоинформационных систем наблюдения;
• видеоинформационных импульсных систем наблюдения
быстродвижущихся объектов;
• комплексированных телевизионно-тепловизионных систем наблюдения,
• ОЭПиС обеспечения техносферной безопасности;
• ОЭПиС согласования отсчетных баз на нестационарно деформируемых
объектах;
• автоколлимационных систем с компонентами нарушенной типовой
конфигурации;
• ОЭПиС цветового и спектрального анализа объектов;
• фотометрических систем аттестации ОЭПиС, источников и приемников
оптического излучения;
• систем лазерной локации с нестационарным облучением;
• ОЭС сепарации полезных ископаемых.
По результатам исследований в этот период на кафедре были
защищены 14 диссертаций на соискание ученой степени кандидата
технических наук.
Идет активное пополнение преподавательского состава молодыми
кандидатами наук. В настоящее время на кафедре работает 7 кандидатов
наук в возрасте до 35 лет.
Мы занимаемся разработкой оптико-электронных приборов и систем
в целом:
− системотехническое проектирование,
− разработка (выбор) оптической системы,
− разработка конструкции,
− разработка (выбор) электроники и средств обработки информации,
− разработка программного обеспечения,
− сборка, юстировка, настройка и испытания.
Мы учим тому, что сами умеем делать!
По итогам конкурсов ведущих научно-педагогических коллективов
СПб НИУ ИТМО 2007-2011 годов кафедра занимала призовые места.
79
С 2011 года подготовка бакалавров, магистров и специалистов на
кафедре ОЭПиС осуществляется по Федеральным государственным
образовательным стандартам третьего поколения (ФГОС).
Подготовка бакалавров по направлению:
200400 «Оптотехника» (профиль - Оптико-электронные приборы и
системы). Срок обучения - 4 года
Подготовка магистров по направлению:
200400 Оптотехника.
Магистерские программы:
− Оптико-электронные методы и средства обработки
видеоинформации
− Оптико-электронные приборы и системы безопасности
Срок обучения – 2 года.
Подготовка инженеров по специальности:
200401 -Электронные и оптико-электронные приборы и системы
специального назначения.
Специализация:
− Оптико-электронные информационно-измерительные приборы и
системы. Срок обучения – 5,5 лет.
80
Васильев Александр Сергеевич
Лашманов Олег Юрьевич
В авторской редакции
Редакционно-издательский отдел Университета ИТМО
Зав. РИО Н.Ф. Гусарова
Подписано к печати
Заказ №
Тираж
Отпечатано на ризографе
Редакционно-издательский отдел
Университета ИТМО
197101, Санкт-Петербург, Кронверкский пр., 49