- •1. Среда программирования. Трансляция, компоновка и отладка программ
- •2. Виды и характеристики языков программирования
- •3. Виды программных ошибок.
- •4. Описание языка Си (используемые символы, константы, идентификаторы, ключевые слова, комментарии). Используемые символы
- •Константы
- •Ключевые слова
- •Использование комментариев в тексте программы
- •5. Идентификаторы и ключевые слова языка Си. Идентификаторы и ключевые слова
- •6. Структура программы на языке Си.
- •7. Категории типов данных (символьные, целые, с плавающей точкой).
- •Целый тип данных
- •Данные плавающего типа
- •8. Символьные и целые типы данных. Данные целого типа (integer)
- •Данные символьного типа (char)
- •9. Вещественные типы данных (с плавающей точкой). Данные вещественного типа (float, double)
- •10. Преобразование типов (явное и неявное).
- •11. Использование модификаторов при декларации типов данных.
- •12. Кодовая таблица ascii. Системы счисления. Классификация и преобразование символов. Классификация и преобразование символов
- •13. Константы. Целые константы. Константы с плавающей точкой. Символьные константы. Строки. Null.
- •1 Целые Константы
- •2 Константы с Плавающей Точкой
- •3 Символьные Константы
- •4 Строки
- •14. Условный оператор if.
- •15. Тернарная условная операция ?:.
- •16. Оператор выбора альтернатив switch.
- •17. Составление циклических алгоритмов. Операторы цикла с предусловием и с постусловием. Оператор while
- •Оператор do while
- •18. Оператор цикла с предусловием и коррекцией for. Оператор for
- •19. Операторы перехода (break, continue, return, goto). Оператор break
- •Оператор continue
- •Оператор return
- •Оператор goto
- •20. Унарные операции.
- •21. Аддитивные и мультипликативные операции.
- •22. Операции сдвига.
- •23. Поразрядные операции.
- •24. Операции отношения.
- •25. Логические операции.
- •26. Операция присваивания.
- •27. Сокращенная запись операции присваивания.
- •28. Стандартная библиотека языка Си. Математические функции.
- •29. Стандартная библиотека языка Си. Функции работы со строками.
- •Int strcmp(const char *s1, const char *s2);
- •Integer atoi(const char *nptr);
- •30. Стандартная библиотека языка Си. Ввод данных.
- •31. Стандартная библиотека языка Си. Вывод данных.
- •32. Управляющая строка функций ввода/вывода.
- •33. Препроцессор. Директивы #include, #define.
- •Директивы препроцессора и указания компилятору
- •34. Графический режим. Функции черчения и заполнения.
- •35. Графический режим. Функции вывода текста, функции управления цветом. (outtext, outtextxy, setbkcolor, setcolor, settextjustify, settextstyle, textheight, textwidth)
- •Цвет фона и вычерчивания
- •36. Одномерные массивы. Инициализация одномерных массивов. Ввод и инициализация массива символов.
- •37. Многомерные массивы. Инициализация многомерных массивов.
- •38. Структуры
- •Пример 5
- •39. Объединения.
- •Пример 2
- •40. Перечисления.
- •41. Работа с файлами. Типы открытия файлов (текстовый и бинарный). Дескриптор файла ("указатель на файл"). Режимы работы с файлами.
- •42. Работа с файлами. Открытие файла в различных режимах и закрытие файла.
- •Int feof(file *stream);
- •Int fclose(file *stream);
- •Коды, устанавливающие режимы доступа к открываемым файлам
- •Void rewind(file *stream);
- •Int fsetpos(file *stream, const fpos_t *pos);
- •45. Указатели. Указатели и адреса объектов. Указатели и массивы. Указатели.
- •Указатели и адреса объектов
- •Указатели и массивы
- •46. Операции с указателями: присваивание адреса, определение значения по адресу, присваивание указателей
- •1. Присваивание адреса.
- •3. Сравнение указателей.
- •48. Работа с динамической памятью. Динамические массивы.
- •49. Функции. Определение функции, объявление функции и вызов функции. Возвращаемое значение функции.
- •3. Вызов функции
- •50. Функции. Типы передачи параметров функции (по значению, по адресу).
- •Передача переменных
- •Передача векторных параметров
- •51. Функции. Переменные в качестве параметров функций.
- •52. Функции. Массивы в качестве параметров функций.
- •53. Указатели на функции.
- •1. Среда программирования. Трансляция, компоновка и отладка программ
- •2. Виды и характеристики языков программирования
11. Использование модификаторов при декларации типов данных.
Ключевые слова int, float, char и т.д. называют конечными атрибутами декларации объектов программы. При декларации так называемых производных объектов используют еще дополнительные – промежуточные атрибуты или, как их иногда называют, «модификаторы».
К символам модификации текущего типа относятся:
– символ * перед идентификатором, обозначающий декларацию указателя на объект исходного типа (левый промежуточный атрибут);
– символы [ ] после идентификатора объекта – декларация массива объектов;
– символы ( ) после идентификатора объекта – декларация функции (правые промежуточные атрибуты).
Допускается использование более одного модификатора типа с учетом следующих правил:
1) чем ближе модификатор к ID объекта, тем выше его приоритет;
2) при одинаковом расстоянии от идентификатора объекта модификаторы [ ] и ( ) обладают приоритетом перед атрибутом звездочка *;
3) дополнительные круглые скобки позволяют изменить приоритет объединяемых ими элементов описания;
4) квадратные и круглые скобки, имеющие одинаковый приоритет, рассматриваются слева направо.
Конечный атрибут декларации принимается во внимание в последнюю очередь, т.е. тогда, когда все промежуточные атрибуты уже проинтерпретированы.
Примеры декларации объектов с конечным атрибутом int:
int a; – переменная типа int;
int a[5]; – массив из пяти элементов типа int;
int *a; – указатель на объект типа int;
int **a; – указатель на указатель на объект типа int;
int *a[5]; – массив из пяти указателей на элементы типа int;
int (*a)[10]; – указатель на массив из десяти элементов типа int;
int *a[3][4]; – 3-элементный массив указателей на одномерные целочисленные массивы по четыре элемента каждый;
int a[5][2]; – двухмерный массив элементов типа int;
int a(void); – функция без параметров, возвращающая значение типа int;
int *a(void); – функция без параметров, возвращающая указатель на элемент типа int;
int (*a)(void); – указатель на функцию без параметров, возвращающую значение типа int;
int *a(void)[6]; – функция без параметров, возвращающая указатель на массив элементов типа int;
int *a [4](void); – массив указателей на функцию без параметров, возвращающую значение типа int.
Существуют и недопустимые последовательности промежуточных атрибутов, например, массив не может состоять из функций, а функция не может возвращать массив или другую функцию.
12. Кодовая таблица ascii. Системы счисления. Классификация и преобразование символов. Классификация и преобразование символов
Внутреннее представление символов в ПЭВМ осуществляется на основе определенной системы кодирования, которая может быть задана в виде кодовой таблицы. Такая истема устанавливает соответствие между изображениями или условными обозначениями символов и их внутренними числовыми кодами, которые обычно представляют в десятичной, восьмеричной или шестнадцатеричной форме. Персональные компьютеры для внутреннего представления символов используют байт, следовательно, имеется возможность представить 256 символов.
Кодовая таблица ASCII
Коды 0 – 31 закреплены за управляющими (непечатаемыми символами). Управляющие символы вызывают определенные действия в машине, например, звуковой сигнал – код 710, возврат курсора на один шаг – код 810, горизонтальная табуляция – код 910, перевод курсора на новую строку – код 1010.
Коды 33 – 127 соответствует символам цифр, прописных и строчных букв английского алфавита, символам-разделителям.
ASCII- таблица для кодов символов 0 – 127 называется основной таблицей.
Стандарт ASCII не регламентирует закрепление кодов от 128 до 255, образующих так называемую расширенную ASCII-таблицу.
Для русскоговорящих ПК коды от 128 до 255 используются для представления прописных и строчных букв русского алфавита и символов псевдографики – символов, используемых для вычерчивания таблиц и несложных «прямоугольных» рисунков. Существует несколько вариантов для вычерчивания расширенной ASCII-таблицы для русских букв: старая (Old), новая (New) и альтернативная (Alt). Они отличаются кодировкой только в расширенной части таблицы.
=================================================
Например, символ с кодом 4910 = 3116 =1
символ с кодом 3210 = 2016 – это пробел
Функция bioskey()
Назначение Интерфейс клавиатуры.
Синтаксис int bioskey (int cmd)
Прототип в bios.h
Эта функция выполняет различные операции с клавиатурой, используя при этом прерывание 0х16 BIOS. Параметр cmd полностью определяет операцию.
Значение, возвращаемое функцией, зависит от значение выполняемых ею действий, которые, в свою очередь, определяются параметром cmd:
cmd |
Действия, выполняемые функцией |
0 |
вернуть код клавиши, нажатой на клавиатуре. Если младшие восемь разрядов содержат ненулевое значение ,значит, введен ASCII-символ Если младшие восемь битов содержат нулевое значение, введен символ из расширенной кодировки. |
1 |
проверить, есть ли символ в буфере ввода (можем немедленно считать символ). Если нет, то возвращается ноль. Если есть готовый символ для ввода, возвращается его код, однако этот символ не изымается из буфера и будет считан при следующем обращении к функции с параметром cmd=0. |
2 |
опросить текущее состояние клавиш-модификаторов (нажаты или нет) 0 0x01 Нажата правая клавиша Shift 1 0x02 Нажата левая клавиша Shift 2 0x04 Нажата клавиша Ctrl 3 0x08 Нажата клавиша Alt 4 0x10 Установлен режим Scroll Lock (используется прикладными программами) 5 0x20 Установлен режим NumLock (клавиши калькуляторного поля используются как цифры) 6 0x40 Установлен режим Caps (прописные буквы) 7 0x80 Установлен режим Insert (вставка) |
|
8 0x0100 Нажата левая клавиша Ctrl 9 0x0200 Нажата левая клавиша Alt 10 0x0400 Нажата правая клавиша Ctrl 11 0x0800 Нажата правая клавиша Alt 12 0x1000 Нажата клавиша Scroll Lock 13 0x2000 Нажата клавиша Num Lock 14 0x4000 Нажата клавиша Caps Lock 15 0x8000 Нажата клавиша Sys Req |
