
- •1 Структура пэвм. Размещение данных и программ в памяти пэвм. Биты, байты. Программа, машинная команда.
- •2. Состав программного обеспечения техн. Средств. Среда програм-я.
- •3.Среда программирования. Программные модули: исходный, объектный, загрузочный. Трансляторы, интерпретаторы, компоновщик, отладчик.
- •4.Трасляторы,интерпреторы,компоновщик,отладчик. Режимы компиляции и компоновки.
- •5.Особенности программирования и отладки встроенных систем.
- •6. Компоновка программных модулей и запись программной кодировки в целевое устройство.
- •7. Понятие структурного и модульного программирования.
- •8. Функциональная и модульная декомпозиции в программировании
- •9. Операционная система. Файловая система хранения информации.
- •10. Понятие алгоритмов и способы их описания
- •11. Графическое описание алгоритма. Основные символы схемы алгоритма
- •12. Стандартизация графического представления алгоритмов. Программная документация.
- •13. Базовые элементы языка Си. Алфавит. Лексемы. Знаки операций. Литералы. Комментарии.
- •14. Виды и характеристики языков программирования. Виды программных ошибок.
- •15. Идентификаторы и ключевые слова языка Си.
- •16. Структура программы на языке Си.
- •17. Декларация объектов. Основные типы данных
- •18. Категории типов данных (символьные, целые, с плавающей точкой).
- •19.Символьные и целые типы данных
- •20. Вещественные типы данных(с плавающей точкой).
- •21. Преобразование типов (явное и неявное). Приведение типа
- •22. Использование модификаторов при декларации типов данных
- •23 Система счисления. Кодовая таблица ascii. Классификация и преобразование символов
- •24. Константы. Целые константы. Константы с плавающей точкой. Символьные константы. Строки. Null.
- •Константы вещественного типа Данные константы размещаются в памяти в формате double, а во внешнем представлении могут иметь две формы:
- •25. Операции, выражения языка си
- •26.Арифметические операции. Аддитивные и мультипликативные операции
- •27. Условный оператор if.
- •28. Тернарная условная операция ?:.
- •29. Оператор выбора альтернатив switch.
- •30. Составление циклических алгоритмов. Операторы цикла с предусловием и с постусловием.
- •Оператор цикла с постусловием do – while Цикл с постусловием реализует структурную схему, приведенную на рис. 7.1, б.
- •31. Оператор цикла с предусловием и коррекцией for.
- •32. Операторы передачи управления (break, continue, return, goto).
- •33. Побитовые логические операции, операции над битами
- •34. Операции сравнения. Логические операции. Унарные операции.
- •Логические операции
- •35. Операция присваивания. Сокращенная запись операции присваивают.
- •Сокращенная запись операции присваивания:
- •36. Стандартная библиотека языка Си. Математические функции.
- •37. Строки в языке Си. Функции работы со строками.
- •38. Стандартная библиотека языка Си. Ввод данных.
- •39. Стандартная библиотека языка Си. Вывод данных.
- •40. Управляющая строка функций ввода/вывода
- •41. Ввод-вывод потоками.
- •42. Препроцессор. Директивы #include, #define, #if.
- •43. Одномерные массивы. Инициализация одномерных массивов. Ввод и инициализация массива символов.
- •44. Многомерные массивы. Инициализация многомерных массивов
- •Void main()
- •45. Структуры. Вложенные структуры
- •46. Массивы структур. Битовые поля
- •Int day, month, year;
- •47. Объединения. Перечисления
- •Void main(void)
- •Перечисления – средство создания типа данных посредством задания ограниченного множества значений.
- •48. Указатели. Указатели и адреса объектов. Указатели и массивы.
- •49. Операции с указателями: присваивание адреса, определение значения по адресу, присваивание указателей.
- •50. Операции с указателями: сложение и вычитание, инкремент и декремент, сравнение указателей
- •52.Операции typedef и sizeof.
- •53.Функции.Определение функции. Объявление функции и вызов функции. Возвращаемое значение функции.
- •Id_функции (список аргументов);
- •54.Функции. Типы передачи параметров функции (по значению, по адресу).
- •56. Функции. Массивы в качестве параметров функции
- •Void f1(int m[3][4]) {
- •Void fun( int m[ ][3]) {
- •57 Указатели на функции
- •58. Перегрузка функций
- •59 Классы памяти. Области действия объектов
- •60.Работа с файлами.Типы файлов (текстовый и бинарный)
- •61.Работа с файлами. Открытие файла в различных режимах и закрытие файла.
- •62.Работа с файлами. Чтение и запись данных в файл. Посимвольный и построчный ввод-вывод
- •63.Работа с файлами. Чтение и запись данных в файл. Блоковый ввод-вывод
- •Блоковый ввод-вывод.
- •64.Работа с файлами. Чтение и запись данных в файл. Форматированный ввод-вывод
- •65. Работа с файлами. Указатель текущей позиции в файле, его перемещение к нужной позиции.
- •66. Графический режим. Функции черчения и Заполнения
- •67. Графический режим. Функции вывода текста, функции управления цветом (outtext, outtextxy…..)
- •68. Среда разработки программ для микроконтроллеров, особенности написания программ для микроконтроллеров и программирования их периферийных устройств.
- •69. Средства записи программ и отладки для микроконтроллеров. Программаторы, симуляторы и внутрисхемные отладчики.
- •70. Интерфейс программирования jtag
33. Побитовые логические операции, операции над битами
В языке Си предусмотрен набор операций для работы с отдельными битами. Эти операции нельзя применять к переменным вещественного типа.
Обозначения операций над битами: ~ - дополнение (унарная операция); инвертирование (одноместная операция);& – побитовое «И» – конъюнкция;
– побитовое включающее «ИЛИ» – дизъюнкция;^ – побитовое исключ. «ИЛИ» – сложение по модулю 2; >> – сдвиг вправо; <<– сдвиг влево.
Общий вид операции инвертирования (поразрядное отрицание): ~ выражение инвертирует каждый разряд в двоичном представлении своего операнда. Остальные операции над битами имеют вид: Выражение_1 знак операции Выражение_2 Операндами операций над битами могут быть только выражения, приводимые к целому типу. Операции (~, &, |, ^) выполняются поразрядно над всеми битами операндов (знаковый разряд особо не выделяется). Операция & часто используется для маскирования некоторого множества бит. Операции сдвига выполняются также для всех разрядов с потерей выходящих за границы бит.Операция (|) используется для включения бит w = x | y, устанавливает в единицу те биты в x, которые равны 1 в y.
Необходимо отличать побитовые операции & и | от логических операций && и || , если x = 1, y = 2, то x & y равно нулю, а x && y равно 1.
Если выражение_1 имеет тип unsigned, то при сдвиге вправо освобождающиеся разряды гарантированно заполняются нулями (логический сдвиг). Выражения типа signed могут, но необязательно, сдвигаться вправо с копированием знакового разряда (арифметический сдвиг). При сдвиге влево освобождающиеся разряды всегда заполняются нулями. Если выражение_2 отрицательно либо больше длины выражения_1 в битах, то результат операции сдвига не определен. Унарная операция (~) дает дополнение к целому, т.е. каждый бит со значением 1 получает значение 0 и наоборот. Операции сдвига << и >> применяются к целочисленным операндам и осуществляют соответственно сдвиг вправо (влево) своего левого операнда на число позиций, задаваемых правым операндом, например, x << 2 сдвигает x влево на две позиции, заполняя освобождающиеся биты нулями (эквивалентно умножению на 4). Операции сдвига вправо на k разрядов весьма эффективны для деления, а сдвиг влево – для умножения целых чисел на 2 в степени k. Подобное применение операций сдвига безопасно для беззнаковых и положительных значений выражения_1. Операции сдвига не учитывают переполнение и потерю значимости. В математическом смысле операнды логических операций над битами можно рассматривать как отображение некоторых множеств с размерностью не более разрядности операнда на значения {0,1}.Пусть единица означает обладание элемента множества некоторым свойством, тогда очевидна теоретико-множественная интерпретация рассматриваемых операций:~ – дополнение; | – объединение; & – пересечение. Комбинирование операций над битами с арифметическими операциями часто позволяет упростить выражения
34. Операции сравнения. Логические операции. Унарные операции.
В языке Си используются четыре унарные операции, имеющие самый высокий приоритет, их часто называют первичными:– операция доступа к полям структур и объединений при помощи идентификаторов «.» – точка;– операция доступа к полям структур и объединений при помощи указателей «–>» – стрелка;– операция [ ] индексации, используемая при декларации массива и обращении к его элементам; – операция ( ) обращения к функции.Первичные операции будут рассмотрены в соответствующих разделах. В языке Си используются следующие операции сравнения, т.е. отношения между объектами:==– равно или эквивалентно;!=– не равно; < – меньше; <=– меньше либо равно;> –больше; >=– больше либо равно. Пары символов соответствующих операций разделять нельзя.Общий вид операций отношений:Операнд_1 Знак операции Операнд_2. Указанные операции выполняют сравнение значений первого операнда со вторым. Операндами могут быть любые арифметические выражения и указатели. Значения арифметических выражений перед сравнением вычисляются и преобразуются к одному типу.Арифметические операнды преобразуются по правилам, аналогичным для арифметических операций. Операнды-указатели преобразуются в целые числа необходимого типа. Результат сравнения указателей будет корректным в арифметическом смысле лишь для объектов одного массива.В языке Си нет логического типа данных. Результат операции отношения имеет значение 1, если отношение истинно, или в результате вычислений получено не нулевое значение, воспринимаемое компилятором Си как истина (true), или 0 – в противном случае, т.е. – ложно (false). Следовательно, операция отношения может использоваться в любых арифметических выражениях.Операции сравнения на равенство и неравенство имеют меньший приоритет, чем остальные операции отношений.Примеры использования операций отношений:y > 0 , x == y , x != 2 .
Отношения между объектами сложных типов проверяются либо посредством последовательного сравнения их элементов (для массивов), либо используя стандартные библиотечные функции, которые будут рассмотрены позже.