- •1. Общие правила выполнения лабораторных работ
- •2. Программное обеспечение, используемое для выполнения лабораторных работ
- •3. Лабораторная работа № 1. Создание простейшего консольного приложения C
- •3.1. Задание
- •3.2. Методические указания по выполнению лабораторной работы
- •3.2.1. Создание проекта консольного приложения
- •3.2.2. Открытие существующего проекта
- •3.2.3. Редактирование функции main Вашего проекта
- •3.2.4. Компиляция и сборка проекта
- •3.2.5. Пробный запуск проекта из интегрированной среды CodeBlocks
- •3.2.6. Запуск откомпилированного исполнительного файла проекта непосредственно из операционной системы
- •4.1. Задание
- •4.2. Методические указания по выполнению лабораторной работы
- •4.2.1.1. Создание переменных
- •4.2.1.2. Ввод значения входной переменной с клавиатуры
- •4.2.1.3. Выполнение арифметических вычислений
- •4.2.1.4. Вывод результата вычисления
- •4.2.1.5. Пример исходного текста программы
- •4.2.2. Использование переменных с модификатором const в исходных текстах приложений
- •5. Лабораторная работа № 3. Использование оператора выбора и преобразования типов значений переменных
- •5.1. Задание
- •5.2. Методические указания по выполнению лабораторной работы
- •5.2.1. Создание проекта приложения
- •5.2.3. Преобразование сигнала АЦП из целочисленного формата в формат с плавающей десятичной точкой и его масштабирование
- •5.2.4. Вычисление значения физического параметра (температуры) по значению напряжения на выходе датчика
- •5.2.5. Вывод вычисленного значения физического параметра (температуры) на дисплей
- •6. Лабораторная работа № 4. Использование оператора переключателя switch
- •6.1. Задание
- •6.2. Методические указания по выполнению лабораторной работы
- •6.2.1. Создание проекта консольного приложения
- •6.2.2. Ввод с клавиатуры символа - шестнадцатеричной цифры, которую требуется преобразовать в числовой формат
- •6.2.3. Преобразование ASCII-символа шестнадцатеричной цифры в числовой формат
- •6.2.4. Вывод результата преобразования
- •6.2.5. Ввод с клавиатуры произвольного символа и завершение работы приложения
- •7. Лабораторная работа № 5. Создание и использование пользовательских функций
- •7.1. Задание
- •7.2. Методические указания по выполнению лабораторной работы
- •7.2.1. Создание проекта консольного приложения
- •7.2.2. Ввод с клавиатуры символа - шестнадцатеричной цифры, которую требуется преобразовать в числовой формат
- •7.2.3. Создание и вызов функции преобразования кода ASCII-символа в число
- •7.2.3.1. Общий порядок создания и вызова функции
- •7.2.3.2. Использование функции для получения числового значения шестнадцатеричной цифры
- •7.2.4. Вывод на дисплей результата вычисления
- •7.2.5. Ввод с клавиатуры произвольного символа и завершение работы приложения
- •8.1. Методические указания по выполнению лабораторной работы
- •8.1.1. Создание проекта консольного приложения
- •8.1.2. Ввод с клавиатуры символа - шестнадцатеричной цифры, которую требуется преобразовать в числовой формат
- •8.1.3. Создание и вызов функции, размещенной в отдельном файле исходного текста
- •8.1.3.1. Создание нового файла исходного текста и размещение в нем пользовательской функции
- •8.1.3.2. Создание нового файла заголовка и подключение его к проекту
- •8.1.4. Вывод на дисплей результата вычисления
- •8.1.5. Ввод с клавиатуры произвольного символа и завершение работы приложения
- •9. Лабораторная работа №7. Использование массивов, структур и указателей
- •9.1. Методические указания по выполнению лабораторной работы
- •9.1.1. Создание проекта приложения
- •9.1.3. Создание пользовательского типа данных - структуры
- •9.1.4. Подключение файла-заголовка к проекту
- •9.1.5. Создание файла исходного текста и подключение его к проекту
- •9.1.6. Создание функции, выполняющей вычисление значения линейной функции по значению ее аргумента
- •9.1.7. Создание функции, выполняющей поиск линейного отрезка, на котором находится аргумент линеаризуемой функции, и вычисление ее (линеаризуемой функции) значения
- •9.1.7.1. Оператор итерационного цикла for
- •9.1.7.2. Оператор цикла с предусловием while
- •9.1.7.3. Оператор цикла с постусловием do while
- •9.1.7.4. Передача функции вычисления значения линейной функции указателей на используемые элементы массива
- •9.1.8. Создание в файле заголовка прототипа функции
- •9.1.9. Создание константного одномерного массива, содержащего параметры граничных точек линейных отрезков линеаризуемой функции
- •9.1.10. Определение размера массива
- •9.1.11. Объявление объекта данных как глобального
- •9.1.12. Вызов функции MultyLinearFuncCalc из файла main.cpp
- •9.1.13. Вывод результата вычислений и завершение работы приложения
5. Лабораторная работа № 3. Использование оператора выбора и преобразования типов значений переменных
5.1. Задание
Целью данной лабораторной работы является знакомство с оператором выбора и преобразованием типов значений переменных.
Консольное приложение, разрабатываемое в данной лабораторной работе, должно имитировать вычисление значения сигнала нелинейного датчика (например - полупроводникового датчика температуры - позистора), считанного с помощью схемы аналого-цифрового преобразования (АЦП). При этом, поскольку АЦП в данной системе реально отсутствует, пользователь будет имитировать его работу, вводя в качестве входного параметра приложения код, якобы полученный в результате преобразования аналого-цифровым преобразователем напряжения на его входе.
Приложение должно выполнять следующие действия:
1.Ввод пользователем с клавиатуры целого числа, имитирующего сигнал напряжения с выхода аналогового датчика, преобразованный АЦП и считанный из него.
2.Преобразование введенного значения напряжения из целочисленного формата в формат с плавающей десятичной точкой и его масштабирование для вычисления реального измеренного напряжения.
3.Вычисление значения физического параметра, измеряемого датчиком этого параметра (температуры) по значению напряжения, считанного из АЦП.
4.Вывод полученного значения физического параметра на дисплей.
Зависимость измеряемого физического параметра датчика (температуры) от его выходного напряжения линеаризована и представлена в виде графика, приведенного на рис. 27.
t ,0C |
|
|
|
|
|
|
|
t2 |
|
|
|
|
|
|
|
t |
1 |
|
|
|
|
|
|
|
U |
min |
U |
1 |
U 2 |
U max |
U , В |
|
|
|
|
|
|||
Рис. 27. Зависимость между измеряемым физическим параметром (температурой) и выходным напряжением датчика
На данном рисунке представлена типовая зависимость выходного напряжения датчика U
от измеряемого физического параметра (температуры |
t ). Зависимость является упрощенной и |
приведенной к трем линейным участкам. Параметры |
зависимости для каждого из вариантов |
34
приведены в таблице 6. Таблица содержит следующие параметры:
U min |
, В |
Минимальное напряжение на входе АЦП (на выходе датчика температуры) (см. |
|||
|
|
|
рис. 27). |
|
|
N min |
|
Выходной код АЦП, соответствующий |
U min |
на его входе. |
|
U max |
, В |
Максимальное напряжение на входе АЦП (на выходе датчика температуры) (см. |
|||
|
|
|
рис. 27). |
|
|
N max |
|
Выходной код АЦП, соответствующий |
U max |
на его входе. |
|
t1 |
, |
t2 |
Значения физического сигнала, измеряемого датчиком (температуры), |
||
|
|
|
соответствующие границам линейных участков характеристики датчика (см. рис. |
||
|
|
|
27). |
|
|
U 1 |
, |
U 2 |
Напряжения на выходе датчика (входе АЦП), соответствующие значениям t1 и |
||
|
|
|
t2 (см. рис. 27). |
|
|
N input |
|
Значение кода АЦП, которое пользователь должен ввести для проверки работы |
|||
|
|
|
приложения. |
|
|
toutput |
|
Значение физического сигнала (температуры) которое приложение должно |
|||
|
|
|
вычислить для значения toutput . |
|
|
Таблица 6. Варианты параметров лабораторной работы
№ варианта |
N min |
U min , |
N max |
U max , |
t1 , |
U 1 , |
t2 , |
U 2 , |
N input |
toutput , |
|
В |
|
В |
°C |
В |
°C |
В |
|
°C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
0.1 |
255 |
3 |
40 |
0.5 |
90 |
2.5 |
115 |
62.6961 |
|
|
|
|
|
|
|
|
|
|
|
2 |
0 |
0.5 |
127 |
2.5 |
25 |
1 |
70 |
2 |
5 |
25 |
|
|
|
|
|
|
|
|
|
|
|
3 |
0 |
0.25 |
1023 |
5 |
42 |
0.75 |
110 |
4 |
912 |
100 |
|
|
|
|
|
|
|
|
|
|
|
4 |
0 |
0.3 |
4095 |
3.3 |
5 |
1.2 |
65 |
2.7 |
2048 |
29.0147 |
|
|
|
|
|
|
|
|
|
|
|
5 |
0 |
0.35 |
2047 |
4.5 |
60 |
1.3 |
130 |
3.8 |
215 |
60 |
|
|
|
|
|
|
|
|
|
|
|
6 |
0 |
0.22 |
8191 |
2.7 |
45 |
0.75 |
92 |
2.4 |
7015 |
90.4032 |
|
|
|
|
|
|
|
|
|
|
|
7 |
0 |
0.75 |
127 |
4.75 |
12 |
1.1 |
76 |
4.1 |
23 |
19.9874 |
|
|
|
|
|
|
|
|
|
|
|
8 |
0 |
0.24 |
255 |
3.2 |
-15 |
0.52 |
50 |
2.9 |
230 |
50 |
|
|
|
|
|
|
|
|
|
|
|
9 |
0 |
0.32 |
511 |
3.1 |
-25 |
0.4 |
75 |
2.8 |
100 |
-5.56536 |
|
|
|
|
|
|
|
|
|
|
|
10 |
0 |
0.12 |
1023 |
4.5 |
-5 |
0.23 |
60 |
4 |
823 |
53.8568 |
|
|
|
|
|
|
|
|
|
|
|
11 |
0 |
0.14 |
2047 |
4.9 |
15 |
0.18 |
95 |
4.6 |
156 |
20.8417 |
|
|
|
|
|
|
|
|
|
|
|
12 |
0 |
0.45 |
4095 |
2.5 |
57 |
0.72 |
123 |
2.1 |
3920 |
123 |
|
|
|
|
|
|
|
|
|
|
|
13 |
0 |
0.33 |
8191 |
3.7 |
68 |
0.41 |
137 |
3 |
4000 |
109.712 |
|
|
|
|
|
|
|
|
|
|
|
14 |
0 |
0.15 |
63 |
3 |
44 |
0.2 |
110 |
2.8 |
28 |
74.8846 |
|
|
|
|
|
|
|
|
|
|
|
15 |
0 |
0.24 |
127 |
3.2 |
63 |
0.3 |
120 |
2.9 |
27 |
75.4806 |
|
|
|
|
|
|
|
|
|
|
|
16 |
0 |
0.28 |
255 |
2.7 |
72 |
0.32 |
134 |
2.3 |
200 |
130.181 |
|
|
|
|
|
|
|
|
|
|
|
17 |
0 |
0.17 |
511 |
4.9 |
-20 |
0.25 |
54 |
3.6 |
315 |
42.6405 |
|
|
|
|
|
|
|
|
|
|
|
35
