7.55M
Category: programmingprogramming

Основы программирования информационных систем

1.

Основы
программирования
информационных
систем
Преподаватель:
Олег Чеславович Ролич
кандидат технических наук, доцент

2.

Лабораторная работа 1
ПРИМЕНЕНИЕ
ТЕХНОЛОГИИ ActiveX
В ПРОГРАММИРОВАНИИ
ИНФОРМАЦИОННЫХ
СИСТЕМ

3.

Цель
работы
Применение стандартных
элементов
ActiveX
в
разработке
и
программировании
пользовательского
интерфейса
3

4.

Вопросы для самоподготовки
1. Базовый принцип программирования
2. Атрибуты программных объектов
3. Форматы MSB (big endian) и LSB (little
endian) в представлении данных в памяти и
файлах
4. Представление целых беззнаковых чисел в
памяти: unsigned char, unsigned short,
unsigned int
4
5. Представление целых знаковых чисел в
памяти: signed char, signed short, signed int

5.

Вопросы для самоподготовки
6.
Представление вещественных чисел в памяти
7. Массивы и их представление в памяти
8. Функции и их представление в памяти
9. Структуры их представление в памяти
10. Понятие указателя
11. Правила преобразования указателей
12. Указатели на массивы
13. Указатели на функции
14. Указатели на структуры
5

6.

Chart
<ALT+F11
>
Использование
ActiveX-компонента
Chart в Microsoft
Office Excel на базе
языка VBA
6

7.

Итоговый
пользовательский
интерфейс
Chart
7

8.

Chart
В случае
отсутствия
у формы
панели
инструментов
8

9.

Chart
CommandButton
Frame
9

10.

Chart
Properties
Свойства объекта
Заголовок кнопки
10

11.

Важно!!!
Properties
Свойство
модальности
формы
11

12.

Chart
Двойной щелчок мыши на кнопке
12

13.

Триггер события
нажатия на кнопку
Private Sub CommandButton2_Click()
Dim myFile As String
Dim textline As String
Dim rows As Integer
myFile = Application.GetOpenFilename()
Open myFile For Input As #1
Do Until EOF(1)
Line Input #1, textline
ActiveCell.FormulaR1C1 = textline
ActiveCell.Offset(1, 0).Select
rows = rows + 1
Loop
Close #1
Chart
13

14.

Триггер события
нажатия на кнопку
Dim rRange As Range: Set rRange = Range(ActiveCell.Offset(
-rows, 0), ActiveCell.Offset(-1, 0))
Dim cChart As Chart: Set cChart = Charts.Add(,
ActiveSheet)
With cChart
.ChartType = xlLine
.SetSourceData Source:=rRange,
PlotBy:=xlColumns
.Location WHERE:=xlLocationAsObject,
Name:="Лист1"
End With
End Sub
Chart
14

15.

Chart
Попытка запуска формы
15

16.

Chart
Возможное появление окна предупреждения
о типе файла с поддержкой макросов
В случае отсутствия данного окна –
переход к слайду 20
16

17.

Chart
Возможное появление окна предупреждения
о типе файла с поддержкой макросов
1
2
17

18.

Chart
Настройка свойств документа для поддержки макросов
18

19.

Chart
Настройка свойств документа для поддержки макросов
После этапов подключения макросов Excel
необходимо перезапустить!!!
19

20.

Повтор
действий
слайда 15
Chart
Установить
удобную
ячейку
1
2
Нажать на кнопку
(массив данных
будет записываться
в колонке по
вертикали)
20

21.

Chart
Выбор файла
Формат файла
данных
21

22.

Chart
Создание файла
данных
с помощью
среды MathCAD
Обратить
внимание на
формат данных
в созданном файле
22

23.

Создание файла данных с помощью среды MathCAD
Степень
Клавиша ":"
Клавиша ";"
Степень
Возведение в степень
клавиша "^"
Клавиша "["
Пишется вручную
или выбирается отсюда
23

24.

Результат работы программы
«Активное» (от «active») средство «Chart»
управления пользовательским
интерфейсом
24

25.

Первая часть
лабораторной
работы № 1
ВЫПОЛНЕНА 25

26.

Image
<ALT+F11
>
Использование
ActiveXкомпонента Image в
Microsoft Office
Excel на базе языка
26

27.

Image
CommandButton
OptionButton
Image
Итоговый пользовательский интерфейс
27

28.

Image
CommandButton
Image
OptionButton
28

29.

Свойства
UserForm
Image
Свойства объекта
Заголовок
формы
29

30.

Свойства
UserForm
Image
Свойство
модальности
формы
Достаточно
важно!!!
30

31.

Свойства
CommandButton
Image
Заголовок кнопки
Размеры кнопки
Width 306 х Height 24
31

32.

Свойства
CommandButton
Image
Размеры кнопки
Width 306 х Height 24
32

33.

Свойства
Image
Image
Размеры области
изображения
Width 306 х Height 186
33

34.

Свойства
Image
Image
Размеры области
изображения
Width 306 х Height 186
34

35.

Свойства
OptionButton1
Image
Заголовок
радиопереключателя 1
Важно!!!
Имя группы верхних
переключателей, не
зависящих от нижней группы
Размеры радиопереключателя 1
Width 93,75 х Height 18
35

36.

Свойства
OptionButton1
Image
Размеры
радиопереключателя 1
Width 93,75 х Height 18
36

37.

Свойства
OptionButton2
Image
Заголовок
радиопереключателя 2
Важно!!!
Имя группы верхних
переключателей, не
зависящих от нижней группы
Размеры радиопереключателя 2
Width 93,75 х Height 18
37

38.

Свойства
OptionButton2
Image
Размеры
радиопереключателя 2
Width 93,75 х Height 18
38

39.

Свойства
OptionButton3
Image
Заголовок
радиопереключателя 3
Важно!!!
Имя группы верхних
переключателей, не
зависящих от нижней группы
Размеры радиопереключателя 3
Width 84 х Height 18
39

40.

Свойства
OptionButton3
Image
Размеры
радиопереключателя 3
Width 84 х Height 18
40

41.

Свойства
OptionButton4
Image
Заголовок
радиопереключателя 4
Важно!!!
Имя группы нижних
переключателей, не зависящих
от верхней группы
Размеры радиопереключателя 4
Width 54 х Height 18
41

42.

Свойства
OptionButton4
Image
Размеры
радиопереключателя 4
Width 54 х Height 18
42

43.

Свойства
OptionButton5
Image
Заголовок
радиопереключателя 5
Важно!!!
Имя группы нижних
переключателей, не зависящих
от верхней группы
Размеры радиопереключателя 5
Width 93,75 х Height 18
43

44.

Свойства
OptionButton5
Image
Размеры радиопереключателя 5
Width 93,75 х Height 18
44

45.

Важно!!!
Image
Убедиться в принадлежности
верхних
радиопереключателей
к одной группе GROUP_1
45

46.

Важно!!!
Image
Убедиться в принадлежности
нижних
радиопереключателей
к одной группе GROUP_2
46

47.

Image
Двойной щелчок
левой клавишей
мыши на кнопке
47

48.

Триггер события
нажатия на кнопку
Image
48

49.

Триггер события
нажатия на кнопку
Image
Расшифровка самой длинной строки
предыдущего слайда
FilePathAndName =
Application.GetOpenFilename(filefilter:="PNG
Files(*.png),*.PNG,GIF Files(*.gif),*.gif,JPEG Files
(*.jpg;*.jpeg;*.jfif;*.jpe),*.jpg;*.jpeg;*.jfif;*.jpe,Bitma
p Files(*.bmp),*.bmp", FilterIndex:=3, Title:="Select a
File", MultiSelect:=False)
49

50.

Image
Двойной щелчок
левой клавишей мыши
на радиопереключателе
50

51.

Триггер события
нажатия
на радиопереключатель 1
Image
51

52.

Image
Двойной щелчок
левой клавишей мыши
на радиопереключателе
52

53.

Триггер события
нажатия
на радиопереключатель 2
Image
53

54.

Image
Двойной щелчок
левой клавишей мыши
на радиопереключателе
54

55.

Триггер события
нажатия
на радиопереключатель 3
Image
Для радиопереключателя
OptionButton3 триггер нажатия
на него написать самостоятельно
по аналогии с OptionButton1
и OptionButton2 в соответствии
с форматом LSB (little endian)
представления цветовых
компонентов в памяти
55

56.

Image
Двойной щелчок
левой клавишей мыши
на радиопереключателе
56

57.

Триггер события
нажатия
на радиопереключатель 4
Image
57

58.

Image
Двойной щелчок
левой клавишей мыши
на радиопереключателе
58

59.

Триггер события
нажатия
на радиопереключатель 5
Image
59

60.

Дополнительный
программный код
в начале документа
(в области General)
Image
60

61.

Дополнительный
программный код
в начале документа
(в области General)
Image
Расшифровка длинных строк предыдущего слайда
Private Declare PtrSafe Function GetObject Lib "gdi32" Alias
"GetObjectA" (ByVal hObject As LongPtr, ByVal nCount As
Long, lpObject As Any) As Long
Private Declare PtrSafe Function GetBitmapBits Lib "gdi32"
(ByVal hBitmap As LongPtr, ByVal dwCount As Long, lpBits As
Any) As Long
Private Declare PtrSafe Function SetBitmapBits Lib "gdi32"
(ByVal hBitmap As LongPtr, ByVal dwCount As Long, lpBits As
Any) As Long
61

62.

Запуск
программы
Image
62

63.

Image
Работа программы: загрузка файла изображения
63

64.

Image
Работа программы: действие красного фильтра
64

65.

Image
Работа программы: действие зелёного фильтра
65

66.

Image
Работа программы: действие зелёного фильтра в полутоновом виде
66

67.

Вторая часть
лабораторной
работы № 1
ВЫПОЛНЕНА 67

68.

Решение аналогичных задач в Visual Studio
68

69.

Chart
Использование
ActiveX-компонента
Chart
в Visual Studio на
базе языка C#
Создание нового проекта в Visual
69

70.

Chart
Использование
ActiveXкомпонента
Chart
в Visual Studio
на базе языка C#
Указать имя проекта, например, LW_Chart
Указать доступное месторасположение, например, Z:/Share/и т.д.
Создание нового проекта в Visual Studio
70

71.

Chart
Использование ActiveX-компонента Chart
в Visual Studio на базе языка C#
Рекомендуемый интерфейс пользователя
71

72.

Chart
Использование ActiveX-компонента Chart
в Visual Studio на базе языка C#
Рекомендуемый интерфейс пользователя
72

73.

Chart
Использование ActiveX-компонента Chart
в Visual Studio на базе языка C#
Примерные свойства формы Form1
73

74.

Chart
Использование ActiveX-компонента Chart
в Visual Studio на базе языка C#
Примерные свойства кнопки button1
74

75.

Chart
Использование ActiveX-компонента Chart
в Visual Studio на базе языка C#
Примерные свойства средства chart1
75

76.

Chart
Использование ActiveX-компонента Chart
в Visual Studio на базе языка C#
Примерные свойства группы управления groupBox1
76

77.

Chart
Использование ActiveX-компонента Chart
в Visual Studio на базе языка C#
Примерные свойства текстового поля textBox1
77

78.

Chart
Использование ActiveX-компонента Chart
в Visual Studio на базе языка C#
Двойной щелчок
левой клавишей
мыши на кнопке
78

79.

Chart
Триггер события
нажатия
на кнопку button1
Использование
ActiveXкомпонента
Chart
в Visual Studio
на базе языка
C#
79

80.

Chart
Использование ActiveX-компонента Chart
в Visual Studio на базе языка C#
Изменения в конструкторе формы
Изменения в том же файле…
80

81.

Chart
Запуск программы на выполнение
81

82.

Chart
Работа
программы:
загрузка
файла данных
82

83.

Chart
Работа программы: результат обработки файла данных
83

84.

Третья часть
лабораторной
работы № 1
ВЫПОЛНЕНА 84

85.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Рекомендуемый интерфейс пользователя
85

86.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Примерные свойства формы Form1
86

87.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Примерные свойства кнопки button1
87

88.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Примерные свойства средства pictureBox1
88

89.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Примерные свойства группы управления groupBox1
89

90.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Примерные свойства группы управления groupBox1
90

91.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Примерные свойства радиопереключателя radioButton4
Внимание! В примере имена радиопереключателей неупорядочены!
91

92.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Примерные свойства радиопереключателя radioButton5
Внимание! В примере имена радиопереключателей неупорядочены!
92

93.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Примерные свойства радиопереключателя radioButton8
Внимание! В примере имена радиопереключателей неупорядочены!
93

94.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Примерные свойства радиопереключателя radioButton3
Внимание! В примере имена радиопереключателей неупорядочены!
94

95.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Примерные свойства радиопереключателя radioButton6
Внимание! В примере имена радиопереключателей неупорядочены!
95

96.

Image
Использование ActiveX-компонента Image
в Visual Studio на базе языка C#
Двойной щелчок
левой клавишей
мыши на кнопке
96

97.

Image
Использование ActiveX-компонента Chart
в Visual Studio на базе языка C#
Триггер события нажатия на кнопку button1
Не забыть дописать вручную компонент класса
97

98.

Image
Двойной щелчок
левой клавишей мыши
на радиопереключателе
«Красный компонент»
Использование
ActiveX-компонента
Image в Visual Studio
на базе языка C#
98

99.

Image
Использование ActiveX-компонента Chart в Visual Studio на базе языка C#
Триггер события нажатия на радиопереключатель «Красный компонент»
99

100.

Image
Двойной щелчок
левой клавишей мыши
на радиопереключателе
«Зелёный компонент»
Использование
ActiveX-компонента
Image в Visual Studio
на базе языка C#
100

101.

Image
Использование ActiveX-компонента Chart в Visual Studio на базе языка C#
Триггер события нажатия на радиопереключатель «Зелёный компонент»
101

102.

Image
Двойной щелчок
левой клавишей мыши
на радиопереключателе
«Синий компонент»
Использование
ActiveX-компонента
Image в Visual Studio
на базе языка C#
102

103.

Image
Использование ActiveX-компонента Chart в Visual Studio на базе языка C#
Триггер события нажатия на радиопереключатель «Синий компонент»
103

104.

Image
Двойной щелчок
левой клавишей мыши
на радиопереключателе
«Цветное»
Использование
ActiveX-компонента
Image в Visual Studio
на базе языка C#
104

105.

Image
Использование ActiveX-компонента Chart в Visual Studio на базе языка C#
Триггер события нажатия на радиопереключатель «Цветное»
105

106.

Image
Двойной щелчок
левой клавишей мыши
на радиопереключателе
«В оттенках серого»
Использование
ActiveX-компонента
Image в Visual Studio
на базе языка C#
106

107.

Image
Использование ActiveX-компонента Chart в Visual Studio на базе языка C#
Триггер события нажатия на радиопереключатель «В оттенках серого»
107

108.

Image
Запуск программы на выполнение
108

109.

Image
Работа программы:
загрузка файла
изображения
109

110.

Image
Работа программы: результат загрузки файла
изображения
110

111.

Image
Работа программы: результат красного цветофильтра
111

112.

Image
Работа программы: результат зелёного цветофильтра
112

113.

Image
Работа программы: результат зелёного цветофильтра
с представлением изображения в полутоновом виде
113

114.

Лабораторная
работа № 1
ВЫПОЛНЕНА!
114

115.

Контрольные вопросы и задачи
1. Основные технологии программирования
2. Основные принципы объектноориентированного программирования
3. Программирование, управляемое
событиями
4. Визуальное программирование
5. Стандарт COM
6. Технология OLE
7. Технология ActiveX
115

116.

Контрольные вопросы и задачи
Представить в памяти заданное
преподавателем число типов unsigned char,
unsigned short, signed char, signed short, float
9. Вычислить результат цепочки преобразований
типов «int → float → int» для исходно
заданного преподавателем числа, большего
100000000
10. Вычислить максимальное целое число, не
искажающееся после цепочки преобразований
типов «int → float → int»
116
8.

117.

Контрольные вопросы и задачи
11. Написать программу инвертирования бита
двоичного представления в памяти исходного
целого или вещественного числа и вычислить
вручную результирующее числовое значение
на множестве того же типа (например, если
исходное число имело целый тип, то и
результат должен быть целочисленным, если
вещественный – то вещественным). Номер
инвертируемого бита и исходное число
задаются преподавателем
117

118.

Контрольные вопросы и задачи
12. Написать функцию переписывания числа
(целого или вещественного по заданию
преподавателя) с разрядностью, кратной
байту, в направлении от младшего бита к
старшему
13. Текстовый формат хранения массивов
чисел
14. Бинарный (двоичный) формат хранения
массивов чисел
118

119.

Контрольные вопросы и задачи
15. Понятие изображения и его представление в
памяти в контексте системы RGB
16. Формат BMP-файла
17. Структура битовой карты DIB
18. Отфильтровать изображение, отобразив его
красную, зелёную или синюю составляющую
в оттенках следующих цветов: жёлтого,
голубого,
пурпурного,
фиолетового,
коричневого (базовая составляющая и оттенок
распределяются преподавателем)
119

120.

Контрольные вопросы и задачи
19. Сформировать бинарный файл одномерного массива
данных заданного преподавателем типа: unsigned
char, unsigned short, signed char, signed short, float в
форматах LSB и MSB
20. Сгенерировать векторное изображение размером
(N x N) пикселей, яркость красной, зелёной и синей
составляющих которого распределены следующим
образом (i, j – соответственно индексы строки и
столбца пикселя изображения):
a)
120

121.

Контрольные вопросы и задачи
b)
c)
d)
e)
f)
121

122.

Контрольные вопросы и задачи
g)
h)
В сечении
кардиоида
i)
В сечении
окружность
j)
k)
В сечении можно
выделить трилистник,
пятилистник и
семилистник
122

123.

Контрольные вопросы и задачи
l)
m)
В перечисленных вариантах текущей задачи
(i0, j0) = (N/2, N/2)
– координаты центра
123

124.

Контрольные вопросы и задачи
21. Построить графики для следующих массивов,
заданных явным способом, с учётом синтаксиса Сиподобных языков программирования, где PI – это
число π = 3.1415926, k = 0, 1, 2, …, (N – 1), N = 64:
a)
b)
c)
d)
e)
f)
g)
h)
f[k] = 2.0*sin((2*PI/N)*1*k + 0)
f[k] = 3.0*cos((2*PI/N)*5*k + 0)
f[k] = 5.0*sin((2*PI/N)*1*k + PI/2)
f[k] = 5.0*cos((2*PI/N)*3*k + PI/2)
f[k] = 1.0*cos((2*PI/N)*2*k – PI/2)
f[k] = 4.0*sin((2*PI/N)*3*k – PI/2)
f[k] = 4.0*cos((2*PI/N)*1*k + PI)
f[k] = 1.0*sin((2*PI/N)*2*k + PI)
124

125.

Контрольные вопросы и задачи
21. Построить графики для следующих массивов,
заданных явным способом, с учётом синтаксиса Сиподобных языков программирования, где PI – это
число π = 3.1415926, k = 0, 1, 2, …, (N – 1), N = 64:
i)
j)
k)
l)
m)
n)
o)
p)
f[k] = 3.0*cos((2*PI/N)*2*k – PI)
f[k] = 4.0*sin((2*PI/N)*2*k – PI)
f[k] = 3.0*cos((2*PI/N)*3*k – PI)
f[k] = 1.0*sin((2*PI/N)*3*k – PI)
f[k] = –1.0*sin((2*PI/N)*1*k + 0)
f[k] = –3.0*sin((2*PI/N)*2*k + 0)
f[k] = –3.0*cos((2*PI/N)*3*k + 0)
f[k] = –1.0*sin((2*PI/N)*1*k + PI/2)
125

126.

Контрольные вопросы и задачи
21. Построить графики для следующих массивов,
заданных явным способом, с учётом синтаксиса Сиподобных языков программирования, где PI – это
число π = 3.1415926, k = 0, 1, 2, …, (N – 1), N = 64:
q)
r)
s)
t)
u)
v)
w)
x)
f[k] = –5.0*cos((2*PI/N)*2*k + PI/2)
f[k] = –4.0*sin((2*PI/N)*3*k + PI/2)
f[k] = –4.0*sin((2*PI/N)*4*k + PI/2)
f[k] = –3.0*cos((2*PI/N)*5*k + PI/2)
f[k] = –4.0*cos((2*PI/N)*1*k – PI/2)
f[k] = –4.0*cos((2*PI/N)*2*k – PI/2)
f[k] = –5.0*sin((2*PI/N)*2*k – PI/2)
f[k] = –4.0*cos((2*PI/N)*3*k – PI/2)
126

127.

Контрольные вопросы и задачи
21. Построить графики для следующих массивов,
заданных явным способом, с учётом синтаксиса Сиподобных языков программирования, где PI – это
число π = 3.1415926, k = 0, 1, 2, …, (N – 1), N = 64:
y)
z)
aa)
bb)
cc)
dd)
ee)
ff)
f[k] = –4.0*cos((2*PI/N)*4*k – PI/2)
f[k] = –3.0*sin((2*PI/N)*4*k – PI/2)
f[k] = –3.0*sin((2*PI/N)*1*k + PI)
f[k] = –5.0*cos((2*PI/N)*2*k + PI)
f[k] = –3.0*sin((2*PI/N)*2*k + PI)
f[k] = –2.0*cos((2*PI/N)*3*k + PI)
f[k] = –4.0*sin((2*PI/N)*3*k + PI)
f[k] = –3.0*cos((2*PI/N)*4*k + PI)
127

128.

Контрольные вопросы и задачи
21. Построить графики для следующих массивов,
заданных явным способом, с учётом синтаксиса Сиподобных языков программирования, где PI – это
число π = 3.1415926, k = 0, 1, 2, …, (N – 1), N = 64:
gg) f[k] = –5.0*sin((2*PI/N)*4*k + PI)
hh) f[k] = –2.0*sin((2*PI/N)*5*k + PI)
ii)
f[k] = –3.0*cos((2*PI/N)*1*k – PI)
jj)
f[k] = –5.0*sin((2*PI/N)*1*k – PI)
kk) f[k] = –4.0*cos((2*PI/N)*2*k – PI)
ll)
f[k] = –2.0*sin((2*PI/N)*3*k – PI)
mm) f[k] = –4.0*cos((2*PI/N)*4*k – PI)
nn) f[k] = –4.0*cos((2*PI/N)*5*k – PI)
oo) f[k] = –3.0*sin((2*PI/N)*5*k – PI)
128

129.

Контрольные вопросы и задачи
22. Дискретное преобразование Фурье (ДПФ)
массива f[N], N = 2p, p – натуральное число,
записывается в виде
где k = 0, 1, 2, …, (N – 1), n = 0, 1, 2, …, (N – 1),
i – мнимая единица. В результате ДПФ можно
построить амплитудно-частотную (АЧХ),
фазо-частотную (ФЧХ) и амплитудно-фазочастотную (АФЧХ) характеристики.
129

130.

Контрольные вопросы и задачи
АЧХ – это зависимость |Cn|, ФЧХ – это зависимость
arg(Cn). И АЧХ, и ФЧХ представляются в виде
столбчатой диаграммы. АФЧХ строится в полярной
плоскости так, что каждому n на ней сопоставляется
точка с полярным углом arg(Cn), расстояние до которой
равно |Cn|.
Построить АЧХ и ФЧХ для следующих массивов f[N],
заданных явно с учётом синтаксиса Си-подобных языков
программирования, где PI – это число π = 3.1415926,
N = 16:
a) f[k] = 0.9 * cos((2*PI/N) * 3 * (k + N/8)) – 0.7 * sin((2*PI/N) * 5 * (k – N/4))
b) f[k] = –0.9 * sin((2*PI/N) * 3 * (k + N/8)) + 0.7 * cos((2*PI/N) * 5 * (k – N/4))
c) f[k] = –0.9 * sin((2*PI/N) * 3 * (k + N/8)) + 0.7 * cos((2*PI/N) * 5 * (k + N/4))
130

131.

Контрольные вопросы и задачи
e) f[k] = 0.9 * sin((2*PI/N) * 3 * (k – N/8)) – 0.7 * cos((2*PI/N) * 5 * (k – N/4))
f) f[k] = –0.9 * sin((2*PI/N) * 3 * (k – N/8)) – 0.7 * cos((2*PI/N) * 5 * (k – N/4))
g) f[k] = –1.1 * cos((2*PI/N) * 3 * (k + N/8)) + 0.5 * sin((2*PI/N) * 5 * (k – N/4))
h) f[k] = 1.1 * sin((2*PI/N) * 3 * (k + N/8)) + 0.5 * sin((2*PI/N) * 5 * (k + N/4))
i) f[k] = 1.1 * sin((2*PI/N) * 3 * (k – N/8)) + 0.5 * sin((2*PI/N) * 5 * (k + N/4))
j) f[k] = –1.1 * sin((2*PI/N) * 3 * (k – N/8)) – 0.5 * cos((2*PI/N) * 5 * (k + N/4))
k) f[k] = –1.1 * cos((2*PI/N) * 3 * (k – N/8)) + 0.5 * cos((2*PI/N) * 5 * (k – N/4))
l) f[k] = –1.1 * sin((2*PI/N) * 3 * (k – N/8)) – 0.5 * cos((2*PI/N) * 5 * (k – N/4))
m) f[k] = 0.9 * cos((2*PI/N) * 3 * (k + N/6)) – 0.7 * cos((2*PI/N) * 5 * (k – N/9))
n) f[k] = –0.9 * sin((2*PI/N) * 3 * (k + N/6)) + 0.7 * cos((2*PI/N) * 5 * (k – N/9))
o) f[k] = 0.9 * cos((2*PI/N) * 3 * (k + N/6)) – 0.7 * cos((2*PI/N) * 5 * (k + N/9))
p) f[k] = –0.9 * sin((2*PI/N) * 3 * (k + N/6)) – 0.7 * sin((2*PI/N) * 5 * (k + N/9))
q) f[k] = –0.9 * cos((2*PI/N) * 3 * (k – N/6)) + 0.7 * sin((2*PI/N) * 5 * (k + N/9))
r) f[k] = 0.9 * sin((2*PI/N) * 3 * (k – N/6)) + 0.7 * sin((2*PI/N) * 5 * (k – N/9))
s) f[k] = –0.9 * cos((2*PI/N) * 3 * (k – N/6)) – 0.7 * sin((2*PI/N) * 5 * (k – N/9))
t) f[k] = 1.1 * sin((2*PI/N) * 3 * (k + N/6)) – 0.5 * cos((2*PI/N) * 5 * (k – N/9))
u) f[k] = –1.1 * cos((2*PI/N) * 3 * (k + N/6)) – 0.5 * sin((2*PI/N) * 5 * (k – N/9))
131

132.

Контрольные вопросы и задачи
v) f[k] = 1.1 * cos((2*PI/N) * 3 * (k + N/6)) – 0.5 * cos((2*PI/N) * 5 * (k + N/9))
w) f[k] = –1.1 * cos((2*PI/N) * 3 * (k + N/6)) – 0.5 * sin((2*PI/N) * 5 * (k + N/9))
x) f[k] = 1.1 * sin((2*PI/N) * 3 * (k – N/6)) – 0.5 * sin((2*PI/N) * 5 * (k + N/9))
y) f[k] = –1.1 * sin((2*PI/N) * 3 * (k – N/6)) – 0.5 * cos((2*PI/N) * 5 * (k + N/9))
z) f[k] = 1.1 * cos((2*PI/N) * 3 * (k – N/6)) – 0.5 * cos((2*PI/N) * 5 * (k – N/9))
aa) f[k] = –1.1 * sin((2*PI/N) * 3 * (k – N/6)) – 0.5 * cos((2*PI/N) * 5 * (k – N/9))
bb) f[k] = –0.9 * cos((2*PI/N) * 3 * (k + N/8)) + 0.7 * sin((2*PI/N) * 4 * (k – N/4))
cc) f[k] = 0.9 * sin((2*PI/N) * 3 * (k + N/8)) – 0.7 * sin((2*PI/N) * 4 * (k + N/4))
dd) f[k] = –0.9 * sin((2*PI/N) * 3 * (k + N/8)) – 0.7 * cos((2*PI/N) * 4 * (k + N/4))
ee) f[k] = –0.9 * cos((2*PI/N) * 3 * (k – N/8)) + 0.7 * cos((2*PI/N) * 4 * (k + N/4))
ff) f[k] = 0.9 * sin((2*PI/N) * 3 * (k – N/8)) + 0.7 * cos((2*PI/N) * 4 * (k – N/4))
gg) f[k] = –0.9 * cos((2*PI/N) * 3 * (k – N/8)) – 0.7 * cos((2*PI/N) * 4 * (k – N/4))
hh) f[k] = –1.1 * cos((2*PI/N) * 3 * (k + N/8)) + 0.5 * sin((2*PI/N) * 4 * (k – N/4))
ii) f[k] = 1.1 * cos((2*PI/N) * 3 * (k + N/8)) – 0.5 * cos((2*PI/N) * 4 * (k + N/4))
jj) f[k] = –1.1 * sin((2*PI/N) * 3 * (k + N/8)) – 0.5 * sin((2*PI/N) * 4 * (k + N/4))
kk) f[k] = –1.1 * cos((2*PI/N) * 3 * (k – N/8)) + 0.5 * sin((2*PI/N) * 4 * (k + N/4))
ll) f[k] = 1.1 * sin((2*PI/N) * 3 * (k – N/8)) + 0.5 * sin((2*PI/N) * 4 * (k – N/4))
132

133.

Контрольные вопросы и задачи
mm) f[k] = 1.1 * cos((2*PI/N) * 3 * (k + N/6)) – 0.5 * cos((2*PI/N) * 5 * (k + N/9))
nn) f[k] = –1.1 * sin((2*PI/N) * 3 * (k – N/8)) + 0.5 * cos((2*PI/N) * 4 * (k – N/4))
oo) f[k] = –0.9 * cos((2*PI/N) * 3 * (k + N/6)) – 0.7 * sin((2*PI/N) * 4 * (k – N/9))
pp) f[k] = 0.9 * sin((2*PI/N) * 3 * (k + N/6)) – 0.7 * cos((2*PI/N) * 4 * (k + N/9))
qq) f[k] = –0.9 * sin((2*PI/N) * 3 * (k + N/6)) + 0.7 * cos((2*PI/N) * 4 * (k + N/9))
rr) f[k] = 0.9 * cos((2*PI/N) * 3 * (k – N/6)) + 0.7 * sin((2*PI/N) * 4 * (k + N/9))
ss) f[k] = –0.9 * cos((2*PI/N) * 3 * (k – N/6)) + 0.7 * cos((2*PI/N) * 4 * (k + N/9))
tt) f[k] = –0.9 * sin((2*PI/N) * 3 * (k – N/6)) – 0.7 * sin((2*PI/N) * 4 * (k + N/9))
uu) f[k] = 0.9 * cos((2*PI/N) * 3 * (k – N/6)) – 0.7 * sin((2*PI/N) * 4 * (k – N/9))
vv) f[k] = 1.1 * cos((2*PI/N) * 3 * (k + N/6)) + 0.5 * cos((2*PI/N) * 4 * (k – N/9))
ww) f[k] = –1.1 * sin((2*PI/N) * 3 * (k + N/6)) + 0.5 * cos((2*PI/N) * 4 * (k – N/9))
xx) f[k] = 1.1 * sin((2*PI/N) * 3 * (k + N/6)) – 0.5 * sin((2*PI/N) * 4 * (k + N/9))
yy) f[k] = 1.1 * cos((2*PI/N) * 3 * (k – N/6)) + 0.5 * sin((2*PI/N) * 4 * (k + N/9))
zz) f[k] = –1.1 * sin((2*PI/N) * 3 * (k – N/6)) + 0.5 * sin((2*PI/N) * 4 * (k + N/9))
aaa) f[k] = 1.1 * cos((2*PI/N) * 3 * (k – N/6)) + 0.5 * cos((2*PI/N) * 4 * (k – N/9))
bbb) f[k] = 1.1 * sin((2*PI/N) * 3 * (k – N/6)) – 0.5 * cos((2*PI/N) * 4 * (k – N/9))
ccc) f[k] = –1.1 * cos((2*PI/N) * 3 * (k – N/6)) – 0.5 * cos((2*PI/N) * 4 * (k – N/9))
133

134.

Контрольные вопросы и задачи
23. Построить
графики
массивов,
заданных
функционально посредством обратного дискретного
преобразования Фурье (ОДПФ):
134

135.

Контрольные вопросы и задачи
Построить поверхность
135

136.

Контрольные вопросы и задачи
24. Построить гистограмму следующих составляющих
изображения: красной, зелёной, синей, жёлтой,
голубой, пурпурной, фиолетовой, коричневой
25. В BMP-файле бинарного (16-цветного или 256цветного)
изображения
заменить
заданный
преподавателем цвет, не корректируя при этом
непосредственную битовую карту (DIB)
26. Выделить в JPEG-файле тег с таблицей квантования
и представить её в матричном виде с учётом
зигзагообразной траектории
27. Выделить в JPEG-файле тег с таблицей Хаффмана и
построить гистограмму распределения длин кодов
Хаффмана
136
English     Русский Rules