- •Вопросы к экзамену по дисциплине «программирование технических средств»
- •1 Основные понятия и определения
- •2 В состав базового программного обеспечения входят:
- •3 Программные модули
- •8 Функциональная и модульная декомпозиции
- •9 Операционная система
- •12 В ходе разработки программы должен быть подготовлен следующий графический материал:
- •13 Алфавит языка
- •14 Различают также следующие виды языков программирования:
- •15 Идентификаторы и ключевые слова
- •17 Декларация объектов
- •18 Данные целого типа (int)
- •19 Данные целого типа (int)
- •20 Данные вещественного типа (float, double)
- •21 Преобразование типов (явное и неявное). Приведение типа
- •24 Константы. Целые константы. Константы с плавающей точкой. Символьные константы. Строки.
- •25 Операции, выражения
- •26 Арифметические операции. Аддитивные и мультипликативные операции.
- •28 Условная операция «? :»
- •29 Оператор выбора альтернатив (переключатель)
- •30 Составление циклических алгоритмов. Операторы цикла с предусловием и с постусловием.
- •31 Оператор цикла с предусловием и коррекцией for
- •32 Оператор безусловного перехода goto
- •33 Побитовые логические операции, операции над битами
- •34 Операции сравнения. Логические операции. Унарные операции.
- •35 Операция присваивания. Сокращенная запись операции присваивания.
- •36 Стандартная библиотека языка Си. Математические функции.
- •37 Строки в языке Си. Функции работы со строками.
- •38 Функции ввода информации
- •39 Функции вывода данных
- •40 Управляющая строка функций ввода/вывода.
- •41 Ввод-вывод потоками
- •42 Препроцессор. Директивы #include, #define, #if…
- •43 Одномерные массивы. Инициализация одномерных массивов. Ввод и инициализация массива символов.
- •44 Многомерные массивы
- •45 Структуры. Вложенные структуры
- •46 Массивы структур. Битовые поля
- •47 Объединения. Перечисления
- •48 Указатели. Указатели и адреса объектов. Указатели и массивы.
- •49 Операции с указателями: присваивание адреса, определение значения по адресу, присваивание указателей Операция получения адреса
- •50 Операции с указателями: сложение и вычитание, инкремент и декремент, сравнение указателей
- •51 Работа с динамической памятью. Динамические массивы.
- •52 Операции typedef и sizeof
- •53 Функции. Определение функции, объявление функции и вызов функции. Возвращаемое значение функции.
- •54 Функции. Типы передачи параметров функции (по значению, по адресу, по ссылке).
- •55 Функции. Переменные в качестве параметров функций.
- •56 Функции. Массивы в качестве параметров функций.
- •57 Указатели на функции.
- •58 Перегрузка функций.
- •59 Классы памяти. Области действия объектов
- •60 Работа с файлами. Типы файлов (текстовый и бинарный). Дескриптор файла (“указатель на файл”). Режимы работы с файлами.
- •61 Работа с файлами. Открытие файла в различных режимах и закрытие файла.
- •62 Работа с файлами. Чтение и запись данных в файл. Посимвольный и построчный ввод-вывод
- •63 Работа с файлами. Чтение и запись данных в файл. Блоковый ввод-вывод
- •64 Работа с файлами. Чтение и запись данных в файл. Форматированный ввод-вывод
- •65 Работа с файлами. Указатель текущей позиции в файле, его перемещение к нужной позиции.
- •Заполнение:
- •67 Графический режим. Функции вывода текста, функции управления цветом. (outtext, outtextxy, setbkcolor, setcolor, settextjustify, settextstyle, textheight, textwidth)
- •68 Среды разработки программ для микроконтроллеров. Особенности написания программ для микроконтроллеров и программирования их периферийных устройств.
- •69 Средства записи программ и отладки для микроконтроллеров. Программаторы, симуляторы и внутрисхемные отладчики.
- •70 Интерфейсы программирования и отладки встроенных систем. Интерфейс jtag
40 Управляющая строка функций ввода/вывода.
fprintf(name,“<управляющая строка>”[, <список аргументов>])
fscanf (name,“<управляющая строка>”[, <список аргументов>])
Управляющая строка содержит обычные символы, которые выводятся на экран, спецификации преобразования и управляющие символы константы. Каждая спецификация начинается с символа % и заканчивается символом преобразования. Между ними могут записываться “ – ” ,” . ”,” l ”, указываться размер поля или максимальное число символов или цифр для вывода.
Символы преобразования: d- аргумент преобразуется в десятичное целое со знаком u- аргумент преобразуется в десятичное целое без знака o- аргумент преобразуется в восьмеричное целое без знака x- аргумент преобразуется в шестнадцатеричное целое без знака c- значением аргумента является одиночный символ s- значением аргумента является строка символов g- значением аргумента является вещественное: либо f, либо e e- значением аргумента является вещественное типа float или double в форме с плавающей точкой f- значением аргумента является вещественное типа float или double в форме с фиксированной точкой p- значением аргумента является указатель. Для произвольного перемещения по файлу и прямого доступа к его компонентам используется функция fseek(name, long offset, int point),которая устанавливает указатель текущей позиции в файле на offset байт относительно точки отсчета, определенной значением point ( 0- от начала файла, 1- от текущей позиции, 2- от конца файла). Функция возвращает значение 0, если операция выполнена правильно, и –1, если есть ошибка.
Для закрытия файла используется функция fclose(name).
41 Ввод-вывод потоками
Поток - это абстрактное понятие расширенной версии языка Си, которое относится к любому переносу данных от источника к приемнику. Для ввода-вывода используются две переопределенные операции
побитового сдвига << , >>. Формат записи: cout << ID переменной ; cin >> ID переменной ;
Стандартный поток вывода cout - по умолчанию подключен к монитору, ввода cin - к клавиатуре. Для их
работы необходимо подключить файл iostream.h.
42 Препроцессор. Директивы #include, #define, #if…
Препроцессор – программа, используемая для обработки исходного текста программы на языке С до компиляции и выполняющая следующие действия:
поиск и включение в программу нужных внешних файлов;
изменение условий компиляции;
определение значений констант и т. д.
Препроцессор “общается” с программой при помощи директив. Директивы препроцессора представляют собой инструкции, записанные в тексте программы и выполняемые до ее трансляции. Директивы препроцессора позволяют изменить текст программы, например, заменить некоторые лексемы в тексте, вставить текст из другого файла, запретить трансляцию части текста и т. п. Директивы препроцессора отмечаются специальным маркером#. Знак # должен быть первым символом в строке, содержащей директиву.
Директивы препроцессора могут встречаться в любом месте программы, но обычно их стараются помещать в начале для удобства восприятия текста программы. Директивы, появляющиеся в любом месте исходного файла, применимы только к тексту, идущему после этой директивы. Написание директивы препроцессора завершается нажатием клавиши Enter. Для написания директивы в две строки в месте переноса следует нажать комбинацию клавиш [\] + [Enter], и директива продолжается в следующей строке.
Обработанный препроцессором текст программы уже не содержит директив препроцессора, имеет гораздо больший объем по сравнению с исходным текстом. В таком виде программа передается для дальнейшей обработки компилятору.
Директива include включает в текст программы содержимое указанного файла и имеет две формы: #include"имя файла" #include <имя файла>
Имя файла должно соответствовать соглашениям ОС и может состоять только из имени файла, либо из имени файла с указанием пути к этому файлу. Способ поиска файла зависит от того, заключено ли его имя в двойные кавычки или в угловые скобки. Если имя файла задано в угловых скобках, поиск файла проводится в специальном каталоге. Обычно таким каталогом является каталог INCLUDE интегрированной среды разработки (IDE). Если имя файла указано в кавычках, то поиск файла начинается с текущего каталога, а если файл не найден, поиск продолжается в каталоге INCLUDE.
Заголовочный файл (объект-заголовок) снабжает компилятор необходимой информацией о данных и функциях, которые могут использоваться в программе, имеет расширение .h (header) и представляет собой текстовый файл. Заголовочный файл может содержать определение типов, прототипы функций, объявление внешних переменных (extern), директивы препроцессора и комментарии.
Любая C-программа должна содержать хотя бы одну директиву. Так, для реализации ввода/вывода должна присутствовать директива: #include <stdio.h>
Файл stdio.h (standard input/output header) содержит необходимую информацию о средствах ввода/вывода информации.
Директива define служит для замены часто использующихся констант, ключевых слов, операторов или выражений некоторыми идентификаторами - макросами. Идентификаторы, заменяющие текстовые или числовые константы, называют именованными или символическими константами. Идентификаторы, заменяющие фрагменты программ, называют макроопределениями, причем макроопределения могут иметь аргументы.
Директива define имеет две синтаксические формы:
#define идентификатор текст #define идентификатор (список параметров) текст
Эта директива заменяет все последующие вхождения идентификатора текстом. Такой процесс называется макроподстановкой. Текст может представлять собой любой фрагмент программы на C, а может и отсутствовать вовсе. В последнем случае все экземпляры идентификатора удаляются из программы.
Директива препроцессора #if во многом похожа на оператор if. Ее синтаксис имеет вид:
#if условие фрагмент кода #endif
В этой записи условие является целочисленным выражением. Если это выражение возвращает не нуль (истинно), то фрагмент кода, заключенный между директивой #if и директивой #endif, компилируется. Если же выражение возвращает нуль (ложно), то этот фрагмент игнорируется и препроцессором, и компилятором.
