
- •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. Вывод результата вычислений и завершение работы приложения
Таблица 15. Таблица зависимости физического параметра от заданного сигнала, варианты 16 - 18
Сигнал АЦП |
Значение физического |
|
Сигнал АЦП |
Значение физического |
|
параметра |
|
|
параметра |
|
|
|
|
|
-250 |
-2000 |
|
50 |
3000 |
|
|
|
|
|
-200 |
0 |
|
100 |
4500 |
|
|
|
|
|
-150 |
1000 |
|
150 |
4750 |
|
|
|
|
|
-100 |
1500 |
|
200 |
4900 |
|
|
|
|
|
-50 |
1750 |
|
250 |
5000 |
|
|
|
|
|
0 |
2250 |
|
|
|
|
|
|
|
|
Таблица 16. Таблица зависимости физического параметра от заданного сигнала, варианты 19 - 21
Сигнал АЦП |
Значение физического |
|
Сигнал АЦП |
Значение физического |
|
параметра |
|
|
параметра |
|
|
|
|
|
-2.5 |
-400 |
|
0.5 |
600 |
|
|
|
|
|
-2 |
0 |
|
1 |
900 |
|
|
|
|
|
-1.5 |
200 |
|
1.5 |
950 |
|
|
|
|
|
-1 |
300 |
|
2 |
980 |
|
|
|
|
|
-0.5 |
350 |
|
2.5 |
1000 |
|
|
|
|
|
0 |
450 |
|
|
|
|
|
|
|
|
Таблица 17. Таблица зависимости физического параметра от заданного сигнала, варианты 22 - 24
Сигнал АЦП |
Значение физического |
|
Сигнал АЦП |
Значение физического |
|
параметра |
|
|
параметра |
|
|
|
|
|
-250 |
-4000 |
|
50 |
6000 |
|
|
|
|
|
-200 |
0 |
|
100 |
9000 |
|
|
|
|
|
-150 |
2000 |
|
150 |
9500 |
|
|
|
|
|
-100 |
3000 |
|
200 |
9800 |
|
|
|
|
|
-50 |
3500 |
|
250 |
10000 |
|
|
|
|
|
0 |
4500 |
|
|
|
|
|
|
|
|
9.1. Методические указания по выполнению лабораторной работы
9.1.1. Создание проекта приложения
Создание консольного приложения уже рассматривалось в предыдущих лабораторных работах (см. разделы 3.2.1., 3.2.2.).
66
9.1.2.Создание файла-заголовка и подключение его в файлы исходного текста проекта
Создание файла-заголовка и подключение его в файлы исходного текста проекта уже рассматривалось в предыдущих лабораторных работах (см. раздел 8.1.3.2.).
9.1.3. Создание пользовательского типа данных - структуры
Структура - объект данных, содержащая набор разнотипных объектов данных - полей. В данной работе предлагается использовать определение типа структуры с помощью спецификатора typedef. Определение типа структуры должно быть выполнено в файле заголовка, который затем
включается во все файлы исходного текста, в котором будут использоваться структуры данного типа.
В общем виде определение типа структуры с помощью спецификатора typedef выглядит следующим образом:
typedef struct {тип1 имя1; тип2 имя2; ... типN имяN;} имя_типа;
где:
тип1 |
тип поля 1 структуры (любой стандартный или пользовательский тип объекта, |
|
определенный в Вашем проекте); |
имя1 |
имя поля 1 - произвольный идентификатор, уникальный в пределах данной |
|
структуры; |
тип2 |
тип поля 2 структуры (любой стандартный или пользовательский тип объекта, |
|
определенный в Вашем проекте); |
имя2 |
имя поля 2 - произвольный идентификатор, уникальный в пределах данной |
|
структуры; |
... |
... |
типN |
тип поля N структуры (любой стандартный или пользовательский тип объекта, |
|
определенный в Вашем проекте); |
имяN
имя_типа
имя поля N - произвольный идентификатор, уникальный в пределах данной структуры;
имя, присваиваемое данному типу структуры. Не является именем экземпляра структуры, не может быть использовано для доступа к полям реального экземпляра структуры.
Следующий пример определяет тип структуры MyStructType, состоящей из двух полей:
Xпеременная типа int;
Yпеременная типа float.
typedef struct
{
int X; float Y;
} MyStructType;
Далее этот тип структуры может использоваться в Вашем проекте как любой стандартный тип данных.
67
9.1.4. Подключение файла-заголовка к проекту
Подключение файла-заголовка в файлы исходного текста проекта уже рассматривалось в предыдущих лабораторных работах (см. раздел 8.1.3.2.).
9.1.5. Создание файла исходного текста и подключение его к проекту
Создание файла исходного текста и подключение его к проекту уже рассматривалось в предыдущих лабораторных работах (см. раздел 8.1.3.1.).
9.1.6.Создание функции, выполняющей вычисление значения линейной функции по значению ее аргумента
Сам процесс создания функции, а также алгоритм вычисления для линейного отрезка функции уже рассматривался в предыдущих лабораторных работах (см. раздел 5.2.4.).
В данной лабораторной работе предлагается использовать в качестве входных параметров функции указатели на структуры ранее определенного Вами типа (см. пункт 3. задания) LinearArrayType, содержащие значения аргумента и значения линейной функции в граничных
точках линейного отрезка этой функции.
Указатель - особый вид переменной, содержащий не значение объекта данных, а его адрес. Определение указателя в общем случае имеет вид:
тип *имя
где:
тип |
тип объекта, адрес которого содержит указатель; |
имя |
имя самой переменной - указателя. |
Поскольку в задании к лабораторной работе предполагается, что указатель должен содержать адрес объекта, определенного с модификатором const (см. пункт 5. задания),
определение указателя принимает следующий вид:
LinearArrayType const *Point1
или
LinearArrayType const *Point2
где
LinearArrayType
Point1, Point2
тип структуры, определенный Вами ранее (см. пункт 3. задания);
имена параметров функции, в которые передаются указатели на структуры типа LinearArrayType, соответствующие крайним точкам
линейного отрезка, для которого выполняется вычисление.
Для получения доступа к полям структуры по имени ее эеземпляра используется операция
".":
имя_структуры.имя_поля
Однако в данном случае в функции используется не имя экземпляра структуры, а указатель на него (экземпляр структуры). В этом случае для доступа к полю структуры используется операция "->":
68