- •Вопросы к экзамену по дисциплине «программирование технических средств»
- •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
20 Данные вещественного типа (float, double)
Данные вещественного типа в памяти занимают: float - 4 байта; double - 8 байт; long double (повышенная точность) - 10 байт. Для размещения данных типа float обычно 8 бит выделено для представления порядка и знака и 24 бита под мантиссу.
21 Преобразование типов (явное и неявное). Приведение типа
Приведе́ние ти́па — преобразование значения переменной одного типа в значение другого типа. При явном приведении указывается тип переменной, к которому необходимо преобразовать исходную переменную. При неявном приведении преобразование происходит автоматически, по правилам, заложенным в данном языке программирования. Также в языке могут быть заданы специальные функции для приведения. Неявное приведение: Само приведение происходит как во время присваивания значения переменной, так и при операциях сравнения, вычисления выражения. При использовании в выражении несколько различных типов значения одного или нескольких подтипов может быть осуществлено преобразование к более общему типу (супертипу), с большим диапазоном возможных значений. В языке C:
double d; // вещественный тип
long l; // целый тип
int i; // целый тип
if (d > i) d = i;
if (i > l) l = i;
if (d == l) d *= 2;
Каждый раз при выполнении операции сравнения или присваивания переменные разных типов будут приведены к единому типу. Следует с осторожностью использовать неявное приведение типа. При переводе числа из вещественного типа в целочисленный, дробная часть отсекается. Обратное приведение из целочисленного типа к вещественному также может привести к понижению точности, что связано с различным представлением вещественных и целочисленных чисел на машинном уровне.
Явное приведение типа: Для явного приведения типов некоторой переменной перед ней следует указать в круглых скобках имя нового типа, например:
int X;
int Y = 200;
char C = 30;
X = (int)C * 10 + Y; //переменная С приведена к типу int.
Грубых ошибок в данном примере от автоматического приведения типов не произойдет, так как переменная C, которая имеет тип char будет приведена к типу int, так как здесь идет речь о «повышении» типа переменной к старшему в выражении(переменная С перед присваиванием неявно приводится к типу переменной Y). Но возможен один нюанс - в зав-сти от машинной реализации типа char при преобразовании char в int может получиться отрицательное число, потому рекомендуется использовать явное преобразование, а если все-таки есть преобразования типа char в int, char объявлять как беззнаковый(unsigned char).
22 Использование модификаторов при декларации типов данных. Ключев слова int, float, char ит.д. наз конечн атрибутами декларации объектов программы. При декларации т.н. производных объектов используют еще дополн– промежуточн атрибуты, «модификаторы». К символам модификации текущего типа относят: – символ * перед идентификатором, обозначает декларацию указателя на объект исходного типа; – символы [ ] после идентификатора объекта – декларация массива объектов; – символы ( ) после идентификатора объекта – декларация функции (правые промежуточные атрибуты).
Допускается использование более одного модификатора типа с учетом следующих правил:
1) чем ближе модификатор к ID объекта,тем выше его приоритет;2)при одинаковом расстоян от идентификатора объекта модификаторы [ ] и ( ) обладают приоритетом перед атрибутом звезды*;3)доп круглые скобки позвол изменить приоритет объединяемых ими эл-тов описа-ния; 4)квадратн и кругл скобки, имеющие одинаков приоритет, рассматрив слева направо.
Конечный атрибут декларации принимается во внимание в последнюю очередь, т.е. тогда, когда все промежуточные атрибуты уже проинтерпретированы.
Примеры декларации объектов с конечным атрибутом int: int a; – переменная типа int;
int a[5]; – массив из пяти элементов типа int; int *a; – указатель на объект типа int;
int **a; – указатель на указатель на объект типа int; int a(void); – функция без параметров, возвращающая значение типа int; int *a(void); – функция без параметров, возвращающая указатель на элемент типа int; int *a(void)[6]; – функция без параметров, возвращающая указатель на массив элементов. Существуют и недопустимые последовательности промежуточных атрибутов, например, массив не может состоять из функций, а функция не может возвращать массив или другую функцию.
23 Системы счисления. Кодовая таблица ASCII. Разнообразные системы счисления, кот сущ-ли раньше и кот исп-ся в наше время, делят на непозицион и позицион. Знаки, исп-зуемые при записи чисел, наз цифрами. В непозиц СС от положения цифры в записи числа не завис велич, кот она обознач. Примером непозиц СС явл римская система,I V X L C D M 1 5 10 50 100 500 1000. Например, VI = 5 + 1 = 6, а IX = 10 - 1 = 9. В позиц СС величина, обозначаемая цифрой в записи числа, зависит от ее позиции. Кол-во используемых цифр назыв основанием СС. Место каждой цифры в числе называется позицией. Первая известная нам система, основанная на позиционном принципе - шестидесятeричная вавилонская. Цифры в ней были 2х видов, одним из кот обозначались единицы, другим - десятки. Но наиб ценность для нас имеет индо-арабская десятичная система. Они первыми использ 0 для указания позицион значимости велич в строке цифр. Эта система получила название десятичной, так как в ней 10цифр. Для того чтоб лучше понять различие позицион и непозиц СС, рассмотрим пример сравнения двух чисел. В позицион СС сравнение 2х чисел происходит так: в рассматриваемых числах слева направо сравниваются цифры, стоящие в одинаковых позициях. Большая цифра соответствует большему значению числа. Например, для чисел 123 и 234, 1 меньше 2, поэтому число 234 больше, чем число 123. В непозицион СС это правило не действует. Примером этого может служить сравнение двух чисел IX и VI. Несмотря на то, что I меньше, чем V, число IX больше, чем число VI. ASCII — American Standard Code for Information Interchange — американский стандартный код для обмена информацией. ASCII представляет собой 8-битную кодировку для представления десятичных цифр, латинского и национального алфавитов, знаков препинания и управляющих символов. Нижнюю половину кодовой таблицы (0 — 127) занимают символы US-ASCII, а верхнюю (128 — 255) — разные другие нужные символы. Слово ASCII чаще употребляется в женском роде.
