Языки программирования

Содержание

Слайд 2

Слайд 3

Слайд 4

Слайд 5

Слайд 6

Слайд 7

Слайд 8

Слайд 9

Примеры приборов

Примеры приборов

Слайд 10

Примеры приборов

Примеры приборов

Слайд 11

F. Block Diagram – Терминалы Терминалы - это: Представление объектов лицевой

F. Block Diagram – Терминалы

Терминалы - это:
Представление объектов лицевой панели на

блок-диаграмме
Порты ввода и вывода, через которые осуществляется обмен информацией между лицевой панелью и блок-диаграммой
Аналоги параметров и констант в текстовых языках программирования
Внешний вид терминалов можно изменить, выбрав и переключив пункт View as Icon контекстного меню
Слайд 12

F. Терминалы блок-диаграммы

F. Терминалы блок-диаграммы

Слайд 13

F. Block Diagram – Узлы Объекты блок-диаграммы, у которых есть входы

F. Block Diagram – Узлы

Объекты блок-диаграммы, у которых есть входы и/или

выходы, и которые выполняют операции при запуске VI
Аналоги высказываний, операторов, функций и подпрограмм в текстовых языках программирования
Узлами могут быть функции, subVI или структуры

Nodes

Слайд 14

F. Block Diagram – Узлы функций Базовые операционные элементы LabVIEW Не

F. Block Diagram – Узлы функций

Базовые операционные элементы LabVIEW
Не имеют лицевой

панели или блок-диаграммы, но имеют панель подключения
Двойной щелчок только выделяет функцию, но не раскрывает ее, как в VI
Фон иконки – бледно-желтый
Слайд 15

F. Block Diagram – Узлы SubVI SubVI – это VI, которые

F. Block Diagram – Узлы SubVI

SubVI – это VI, которые создаются

для использования внутри других VI
Любой VI потенциально может быть использован в качестве subVI
Если щелкнуть дважды по subVI на блок-диаграмме, то можно увидеть лицевую панель и блок-диаграмму subVI
В верхнем правом углу лицевой панели находится иконка текущего VI
Эта иконка и появляется на блок-диаграмме, когда VI помещается на блок-диаграмму в качестве subVI
Слайд 16

F. Block Diagram – Узлы SubVI Express VI – специальный тип

F. Block Diagram – Узлы SubVI

Express VI – специальный тип subVI
Требуют

минимума соединений, поскольку их конфигурируют с помощью диалоговых окон
Конфигурацию Express VI можно сохранить, как subVI
Иконки Express VI на блок-диаграмме окружены голубым полем
Слайд 17

F. Block Diagram – Иконки/Расширяемые узлы

F. Block Diagram – Иконки/Расширяемые узлы

Слайд 18

Структуры С помощью структур можно осуществить повторение отдельных частей программы, выполнение

Структуры

С помощью структур можно осуществить повторение отдельных частей программы, выполнение той

или иной части программы в зависимости от какого-либо условия, выполнение программы в строго определенном порядке
Functions => Structures
Слайд 19

While Loop Functions - Programming - Structures - While Loop

While Loop

Functions - Programming - Structures - While Loop

Слайд 20

Слайд 21

Слайд 22

Генерация массива псевдослучайных чисел For Loop

Генерация массива псевдослучайных чисел For Loop

Слайд 23

Слайд 24

Слайд 25

Слайд 26

F. Block Diagram – Советы для соединений Нажмите -B, чтобы удалить

F. Block Diagram – Советы для соединений

Нажмите -B, чтобы удалить все

разорванные проводники
Щелкните правой кнопкой мыши и выберите Clean Up Wire для изменения маршрута, по которому проходит проводник
Слайд 27

F. Block Diagram – Советы для соединений Используйте инструмент Clean Up

F. Block Diagram – Советы для соединений

Используйте инструмент Clean Up Diagram

(привести в порядок диаграмму) для упорядочения проводников и объектов с целью улучшения читаемости
Выделите фрагмент блок-диаграммы
Щелкните по кнопке Clean Up Diagram на панели инструментов блок-диаграммы
Слайд 28

I. Потоковое программирование LabVIEW использует модель потока данных для управления исполнением

I. Потоковое программирование

LabVIEW использует модель потока данных для управления исполнением VI
Узел

выполняется только, когда данные доступны на всех его входных терминалах
Узел передает данные на выходные терминалы только когда завершается исполнение узла
Слайд 29

I. Потоковое программирование – Контрольный вопрос Какой узел выполняется первым? Add Subtract Random Number Divide Sine

I. Потоковое программирование – Контрольный вопрос

Какой узел выполняется первым?
Add
Subtract
Random Number
Divide


Sine
Слайд 30

I. Потоковое программирование – Ответ на контрольный вопрос НЕТ КОРРЕКТНОГО ОТВЕТА

I. Потоковое программирование – Ответ на контрольный вопрос

НЕТ КОРРЕКТНОГО ОТВЕТА
Какой узел

выполняется первым?
Add – возможно
Subtract – определенно нет
Random Number – возможно
Divide – возможно
Sine – определенно нет
Слайд 31

Запись в файл Functions - Programming - File I/O Write to Spreadsheet File);

Запись в файл
Functions - Programming - File I/O Write to Spreadsheet

File);
Слайд 32

Слайд 33

Слайд 34

Пример кодирования

Пример кодирования

Слайд 35

Блок диаграмма

Блок диаграмма

Слайд 36

Подключение данных

Подключение данных

Слайд 37

Константа для транспонирования (Programming >Boolean > False constant)

Константа для транспонирования

(Programming >Boolean > False constant)

Слайд 38

Элементы Языка С/C++

Элементы Языка С/C++

Слайд 39

Файлы Текстовый файл – файл, содержащий текст, разбитый на строки парой

Файлы

Текстовый файл – файл, содержащий текст, разбитый на строки парой специальных

кодов: «возврат каретки» (0x13) и «перевод строки» (0x10). Если файл открыт в текстовом режиме, то при чтении из такого файла комбинация этих кодов преобразуется в один символ’\n’ — переход к новой строке. При записи в файл осуществляется обратное преобразование.
Бинарный файл – файл, из которого байты считываются и выводятся в первоначальном виде без каких-либо преобразований. Если требуется указать на такой файл, то к параметру добавляется буква b. Например: rb, или wb, или r+b. В некоторых компиляторах текстовый режим обмена обозначается буквой t, т.е. записывается r+t или rt.
Слайд 40

Функции чтения из файла и записи в файл: fputс(переменная типа char,

Функции чтения из файла и записи в файл:

fputс(переменная типа char, указатель

на файл) – посимвольная запись данных в файл
fgetc(указатель на файл) – посимвольное чтение из файла
fputs(переменная типа строка, указатель на файл) – построчная запись данных в файл. Записывает в файл строку, но в конце не добавляет символ окончания строки.
fgets(переменная типа строка, длина, указатель на файл) – построчное чтение данных из файла. Читает строку целиком до символа новой строки, если ее длина не превышает значения параметра «длина» минус один символ. Параметр «длина» является целым числом или целочисленной переменной,указывающей максимально возможное количество символов в строке
fprintf(указатель на файл, строка формата, список переменных) – форматированный вывод символов, строк или чисел в файл
fwrite(указатель на буфер хранения данных, размер элемента, количество элементов, указатель на файл) – запись заданного количества блоков данных определѐнной длины из буфера в файл
fscanf(указатель на файл, строка формата, список переменных) – форматированный ввод символов строк или чисел из файла.
fread(указатель на буфер размещения данных, размер элемента, количество элементов, указатель на файл) – чтение блоков данных заданного размера в указанном количестве из файла в буфер.
feof(указатель на файл) – функция определяет, достигнут ли конец файла. Если текущая позиция является концом файла (EOF), то функция возвращает ненулевое значение, в противном случае возвращается 0.
fflush(указатель на файл) – принудительная очистка буфера вывода путем передачи содержимого на ВЗУ
remove(имя файла) – удаляет файл. Функция remove() возвращает 0, если файл успешно удален
rename(старое имя, новое имя) – переименовывает файл или директорию, указанную в параметре «старое имя», и присваивает имя, указанное в параметре «новое имя». Также может применяться для перемещения файла.
fseek(указатель на файл, количество байт, начало отсчѐта) -- устанавливает указатель текущей позиции в файле. Количество байт отсчитывается от значения параметра «начало отсчета», оно определяет новое значение указателя текущей позиции, а начало отсчѐта - это один из следующих макросов: начало файла (SEEK_SET), текущая позиция (SEEK_CUR), конец
файла (SEEK_END). Обычно данная функция применяется только для бинарых файлов.
Слайд 41

Пример В программе создать текстовый файл ft, содержащий n случайных целых

Пример

В программе создать текстовый файл ft, содержащий n случайных целых чисел.

Считать числа из ft, подсчитать среднее значение всех чисел и записать в бинарный файл fd все числа меньше этого среднего значения.
Слайд 42

Слайд 43

Слайд 44

Слайд 45

Слайд 46

Слайд 47

Основы ООП

Основы ООП

Слайд 48

Парадигма программирования, основанная на представлении предметной области в виде взаимосвязанных абстрактных объектов и их реализаций

Парадигма программирования, основанная на представлении предметной области в виде взаимосвязанных абстрактных

объектов и их реализаций
Слайд 49

Классы и объекты В ООП вводится понятие Класса – пользовательского типа

Классы и объекты

В ООП вводится понятие Класса – пользовательского типа данных,

объединяющего данные и методы их обработки
Объектом называется экземпляр класса
Собака – это класс
Собака Жучка из 3 подъезда – это объект, представитель или экземпляр класса «Собака»
Слайд 50

Объекты имеют два основных компонента: Список соответствующих свойств (например: вес, цвет,

Объекты имеют два основных компонента:
Список соответствующих свойств (например: вес, цвет,

размер, прочность, форма и т.д.).
Поведение, которое они могут проявлять (например: открывать что-либо, делать что-то и т.д.).

driveTo(you, work);


you.driveTo(work);

Слайд 51

Слайд 52

Слайд 53

Слайд 54

Данные объекта (переменные объекта, члены-данные) Члены-данные (data members) хранят всю необходимую

Данные объекта (переменные объекта, члены-данные)

Члены-данные (data members) хранят всю необходимую информацию

об объекте, формируют его состояние, характеристики и т.п.
Изменение состояния объекта или его характеристик связано с изменением данных, в нем содержащихся
Слайд 55

Методы класса Класс может содержать один или более методов, позволяющих осуществлять

Методы класса

Класс может содержать один или более методов, позволяющих осуществлять манипуляцию

данными объекта
Метод объекта – программный код, выполненный в виде процедуры или функции, реагирующий на передачу объекту определенного сообщения
Вызов метода объекта может приводить к изменению его состояния (значение членов-данных), а может и не приводить
Пример 1: поиск и замена текста в документе
Пример 2: проверка правописания текста документа
Слайд 56

Пример: Треугольник Свойства Координаты вершины A Координаты вершины B Координаты вершины

Пример: Треугольник

Свойства
Координаты вершины A
Координаты вершины B
Координаты вершины C
Площадь
Периметр
Координаты центра вписанной окружности
Методы
Переместить

в заданном направлении
Отмасштабировать
Повернуть вокруг заданной точки
Слайд 57

Слайд 58

Важнейшие принципы ООП Абстракция данных Инкапсуляция Наследование Полиморфизм

Важнейшие принципы ООП

Абстракция данных
Инкапсуляция
Наследование
Полиморфизм

Слайд 59

Абстракция данных Объекты представляют неполную информацию о реальных сущностях предметной области

Абстракция данных

Объекты представляют неполную информацию о реальных сущностях предметной области
Абстракция позволяет

оперировать с объектном на уровне, адекватном решаемой задаче
Высокоуровневые обращения к объекту могут обрабатываться с помощью вызова функций и методов низкого уровня
Слайд 60

Инкапсуляция Инкапсуляция - способность объекта скрывать внутреннее устройство своих свойств и

Инкапсуляция

Инкапсуляция - способность объекта скрывать внутреннее устройство своих свойств и методов
Согласно

данному принципу, класс должен рассматриваться как черный ящик
Внешний пользователь не знает детали реализации объекта и работает с ним только путем предоставленного объектом интерфейса
Следование данному принципу может уменьшить число связей между классами и упростить их независимую реализацию, модификацию и тестирование
Слайд 61

Ограничение доступа к данным и методам класса Доступ к данным и

Ограничение доступа к данным и методам класса

Доступ к данным и методам

класса извне может быть ограничен
Рекомендуется запрещать доступ к данным класса в обход его методов
Для разделения прав доступа к полям класса используются ключевые слова
public:
private:
protected:
Слайд 62

Публичные (public) поля класса Public-методы и данные класса определяют его интерфейс

Публичные (public) поля класса

Public-методы и данные класса определяют его интерфейс
доступ к

ним возможен из любой части кода
необходимо помещать в public-раздел класса только необходимый набор методов, выполняющих высокоуровневые операции над объектом класса
Слайд 63

Закрытые (частные) поля класса Private-данные и методы класса определяют его реализацию

Закрытые (частные) поля класса

Private-данные и методы класса определяют его реализацию
Доступ к

ним разрешен только из методов данного класса
Рекомендуется все данные класса делать закрытыми, их обработку осуществлять внутри методов
Закрытые методы класса обычно используются публичными методами, решая внутренние задачи класса
Слайд 64

Защищенные поля класса Protected-данные и методы определяют интерфейс для производных классов

Защищенные поля класса

Protected-данные и методы определяют интерфейс для производных классов
Доступ к

ним разрешен изнутри методов данного класса и всех его потомков
В защищенной зоне размещают методы, которые не должны быть видны снаружи класса, но реализация которых может быть переопределена или использована производными классами
Слайд 65

class DateClass // члены класса являются закрытыми по умолчанию { int

class DateClass // члены класса являются закрытыми по умолчанию
{
int m_day;

// закрыто по умолчанию, доступ имеют только другие члены класса
int m_month; // закрыто по умолчанию, доступ имеют только другие члены класса
int m_year; // закрыто по умолчанию, доступ имеют только другие члены класса
};
int main()
{
DateClass date;
date.m_day = 12; // ошибка
date.m_month = 11; // ошибка
date.m_year = 2018; // ошибка
return 0;
}
Слайд 66

class DateClass { public: // Спецификатор доступа int m_day; // открыто,

class DateClass
{
public: // Спецификатор доступа
int m_day; // открыто, доступ имеет

любой объект
int m_month; // открыто, доступ имеет любой объект
int m_year; // открыто, доступ имеет любой объект
};
int main()
{
DateClass date;
date.m_day = 12; // ок, так как m_day имеет спецификатор доступа public
date.m_month = 11; // ок, так как m_month имеет спецификатор доступа public
date.m_year = 2018; // ок, так как m_year имеет спецификатор доступа public
return 0;
}
Слайд 67

Слайд 68

Наследование Наследование позволяет описать новый класс на основе уже существующего родительского

Наследование

Наследование позволяет описать новый класс на основе уже существующего родительского (базового)

класса
Класс-потомок может добавить свои собственные свойства и методы, пользоваться методами и свойствами базового класса
Наследование позволяет строить иерархии классов
Слайд 69

Пример class Plane { public: void TakeOff(); void Fly(); void Land();

Пример

class Plane
{
public:
void TakeOff();
void Fly();
void Land();
private:
double m_fuel;
};
class MilitaryPlane : public Plane
{
public:
void Attack();
private:
int m_ammo;
};

Слайд 70

Полиморфизм Полиморфизмом называют явление, при котором классы-потомки могут изменять реализацию метода

Полиморфизм

Полиморфизмом называют явление, при котором классы-потомки могут изменять реализацию метода класса-предка,

сохраняя его интерфейс
Полиморфизм позволяет обрабатывать объекты классов-потомков как однотипные объекты, не смотря на то, что реализация методов у них может различаться
Слайд 71

class Shape { public: virtual double GetArea()=0; }; class Rectangle :

class Shape
{
public:
virtual double GetArea()=0;
};
class Rectangle : public Shape
{
public:
virtual double GetArea()
{
return width

* height;
}
private:
double width, height;
};
class Circle : public Shape
{
public:
virtual double GetArea()
{
return 3.1415927 * radius * radius;
}
private:
double radius;
};
Слайд 72

Размещение классов в различных файлах Общепринятой практикой является размещение объявления классов

Размещение классов в различных файлах

Общепринятой практикой является размещение объявления классов в

заголовочных файлах .h, а их реализации – в файлах .cpp
Повышение модульности проекта
Каждый класс может быть подключен для дальнейшего использования при помощи директивы #include “имя заголовочного файла”
При внесении изменений в реализацию метода класса перекомпиляции подвергнутся только измененные файлы
Слайд 73

Пример date.h class Date { public: void Next(); void Print(); private:

Пример

date.h
class Date
{
public:
void Next();
void Print();
private:
int m_day;
int m_month;
int m_year;
};

date.cpp
#include “date.h”
void Date::Next()
{
// ...
}
void Date::Print()
{
//

...
}

main.cpp
#include “date.h”
int main()
{
Date date1;
return 0;
}

Слайд 74

Инициализация экземпляра класса Для инициализации состояния объекта в момент его создания

Инициализация экземпляра класса

Для инициализации состояния объекта в момент его создания существует

специальная функция – конструктор
Конструктор имеет то же имя, что и имя класса
Тип возвращаемого значения для конструктора не указывается (даже void)
Конструктор вызывается в момент создания экземпляра класса (объявление переменной класса или вызов оператора new)
Класс может иметь несколько конструкторов, предоставляющих различные способы инициализации объекта
Слайд 75

Слайд 76

Конструктор по умолчанию Конструктор, не имеющий параметров, называется конструктором по умолчанию

Конструктор по умолчанию

Конструктор, не имеющий параметров, называется конструктором по умолчанию
Поля данных

в таком конструкторе инициализируются значениями по умолчанию
Создавать такой конструктор или не создавать – зависит от конкретной задачи
Слайд 77

Слайд 78

Слайд 79

Слайд 80

ПЛИС

ПЛИС

Слайд 81

1. Массив из логических элементов (макроячеек, логических блоков). 2. Блоки входа-выхода

1. Массив из логических элементов (макроячеек, логических блоков).
2. Блоки входа-выхода (IO).
3.

Линии связи между ними и устройство, которое управляет этими связями.
Слайд 82

Слайд 83

HDL (Hardware Description Language, рус. Язык описания аппаратуры) Verilog

HDL (Hardware Description Language, рус. Язык описания аппаратуры)
Verilog

Слайд 84

Слайд 85

Слайд 86

Слайд 87

Слайд 88

Слайд 89

Слайд 90

Слайд 91