- •1. Основные понятия информатики
- •1.1. Понятие и задачи информатики
- •1.2. Системы счисления
- •1.2.1. Двоичная система счисления
- •1.2.2. Восьмеричная система счисления
- •1.2.3. Шестнадцатеричная система
- •1.3. Обобщенная структура и состав персонального компьютера
- •1.4. Организация вычислительных процессов при решении инженерных задач
- •1.5.1. Алгоритм: основные свойства и способы представления
- •1.5.2. Базовые элементы и структуры программирования
- •1.5. Алгоритмы
- •1.5.3. Представление линейных, разветвленных и циклических структур
- •2. ОБщие сведения об операционных системах
- •2.1. Общие сведения об операционных системах
- •2.1.1. Предпосылки создания и краткая история операционных систем ms-dos и Windows
- •2.1.1.1. Операционная система ms-dos
- •2.1.1.2. История создания операционной системы Windows
- •2.1.2. Основные отличия версий операционных систем
- •2.1.2.1. Операционная система Mac os
- •2.1.1.2. Операционная система Linux
- •2.1.1.3. Операционная система Windows
- •2.1.3. Основные команды операционной системы ms-dos
- •2.2. Основные элементы интерфейса операционной системы Windows
- •2.2.1. Элементы интерфейса ос Windows
- •2.2.2. Работа с файловыми системами операционной системы
- •3.2. Элементы языка с
- •3.2.1. Алфавит языка с (используемые символы)
- •3.2.2. Идентификаторы
- •3.2.3. Константы
- •3.2.4. Ключевые слова
- •3.2.5. Знаки операций
- •3.2.6. Комментарии
- •3.3. Лекция 6. Типы данных и их объявление
- •3.3.1. Основные типы данных
- •3.3.2. Объявление типов данных
- •3.4. Лекция 7. Указатели и массивы
- •3.4.1. Объявление указателей
- •3.4.2. Инициализация указателей
- •3.4.3. Составные указатели
- •3.4.4. Операции над указателями
- •3.4.5. Ссылки
- •3.5. Лекция 8. Массивы
- •3.5.1. Одномерные массивы
- •3.5.2. Многомерные массивы
- •3.5.3. Динамические массивы
- •3.5.3.1. Одномерные динамические массивы
- •3.5.3.2. Динамический многомерный массив
- •3.5.4. Символьные массивы (строки)
- •3.6. Лекция 9. Выражения и присваивания
- •3.6.1. Операции инкремента и декремента (увеличения и уменьшения на 1)
- •3.6.2. Операция определения размера типа
- •3.6.4. Операции деления ( / ) и нахождения остатка от деления ( % )
- •3.6.7. Поразрядные операции
- •3.6.8. Логические операции
- •3.6.9. Операции присваивания
- •3.6.10. Условная операция
- •3.6.11. Приоритеты выполнения операций
- •3.6.12. Преобразование типов
- •3.7. Лекция 10. Операторы
- •3.7.1. Операторы ветвления
- •3.7.1.1. Условный оператор if
- •If (выражение) [оператор_1]; [ else оператор_2 ; ]
- •3.7.1.2. Оператор switch
- •3.7.2. Операторы цикла
- •3.7.2.1. Цикл с предусловием (while)
- •3.7.2.2. Цикл с постусловием (do while)
- •3.7.2.3. Цикл с параметрами ( for )
- •3.7.3. Операторы передачи управления
- •3.7.3.1. Оператор безусловного перехода goto
- •3.7.3.2. Оператор прерывания break
- •3.7.3.3. Оператор пропуска continue
- •3.7.3.4. Оператор возврата из функции return
- •4. Модульное программирование
- •4.1. Лекция 11. Функции
- •4.1.1. Объявление функций
- •4.1.2. Определение функций
- •4.1.3. Вызов функций
- •4.1.4. Передача параметров в функцию
- •4.1.5. Передача массивов в функцию
- •В примере:
- •4.1.6. Функции с переменным числом параметров
- •4.1.7. Рекурсивные функции
- •4.1.8. Функция main()
- •4.1.9. Перегрузка функций
- •4.1.10. Шаблоны функций
- •4.2. Лекция 12. Директивы препроцессора
- •4.2.1. Директива #include
- •4.2.1. Директива # define
- •4.2.3. Директивы условной компиляции
- •4.2.4. Директивы #undef
- •4.3. Лекция 13. Пользовательские типы данных
- •4.3.1. Переименование типов
- •4.3.2. Перечисления
- •4.3.3. Структуры
- •4.3.4. Битовые поля
- •4.3.5. Объединения
- •5. Программирование графических изображений в языке с
- •5.1. Лекция 14. Программирование графических изображений
- •5.1.1. Графический режим видеоадаптера
- •5.1.2. Функции управления графическим окном
- •5.1.3. Управление цветом и стилем заполнения фигур
- •5.1.4. Рисование простейших графических фигур
- •5.1.5. Отображение текстовой информации в графическом режиме
- •5.1.7. Преобразование координат и анимационные эффекты
- •6.1.1.3. Функция gets()
- •6.1.1.4. Функция puts()
- •6.1.1.5. Функции printf() и scanf()
- •Потоковые объекты ввода/вывода (форматируемые):
- •6.1.2.1 Форматирование данных с помощью флагов и методов
- •6.2. Функции файлового ввода и вывода
- •6.2.1. Файловый ввод и вывод средствами с
- •6.3. Строки: операции с текстовыми файлами
- •6.3.1. Операции над строками
- •6.3.2. Методы и функции ввода и вывода строк
- •6.4. Лекция 18. Операции со структурами и бинарными файлами
- •6.5. Лекция 19. Списки: операции с динамическими структурами данных; организация списков и их обработка
- •6.5.1. Линейные списки
- •6.5.2. Стеки
- •6.5.3. Очередь
- •6.5.4. Бинарные деревья
4.2.4. Директивы #undef
Формат директивы удаления определения символа:
#undef имя_управляющего_символа
Примечание:
Директива используется редко для отключения какой-либо опции компилятора.
4.3. Лекция 13. Пользовательские типы данных
Для адекватного представления информации сложной структуры используются типы данных, построенные на основе простых типов данных, массивов и указателей. Как правило такие типы данных имеют сложную структуру.
4.3.1. Переименование типов
Формат записи:
typedef имя_типа новое_имя_типа [ размерность ] ;
Указание размерности может отсутствовать, в случае, если размерность должна быть указана, то она записывается в квадратных скобках.
Пример:
typedef unsigned int UINT ; // выделено 7 Байт.
typedef char SMS[100] ; // выделена область под 100 символов
typedef struct {
char FIO[30] ;
int Date, Code ;
double Salary ;
} Worker ;
// использование
UINT i, j ; // две переменные типа unsigned int
SMS str[10] ; // массив из 10 строк по 100 символов
Worker staff[100] ; // массив из 100 структур
4.3.2. Перечисления
Формат записи перечисления:
enum [ имя_типа ] { список_констант } ;
Здесь:
— имя_типа — задаётся, если в программе требуется определять переменные этого типа;
— список_констант — содержит перечисление констант, которые должны быть целочисленными.
Примечание:
При отсутствии инициализатора первая константа обнуляется, а значение любой последующей больше предыдущей на 1.
Примеры:
1)
enum Err_msg {ERR_NO, ERR_READ, ERR_WRITE, ERR_CONVERT} ;
/* =0 =1 =2 =3 */
…
switch (error) {
case ERR_NO : /*операторы*/ break ;
case ERR_READ : /*операторы*/ break ;
case ERR_WRITE : /*операторы*/ break ;
case ERR_CONVERT : /*операторы*/ break ;
default : /*операторы*/ break ;
}
2)
enum {two=2, three, four, ten=10, eleven, fifty=ten+40} ;
/* =2 =3 =4 =10 =11 =50 */
4.3.3. Структуры
Структуры могут содержать элементы различных типов
Формат записи структуры:
struct [ имя_типа ] {
тип_1 элемент_1 ;
тип_2 элемент_2 ;
…
тип_N элемент_N ;
} [ список_описателей ] ;
Здесь:
— элемент_1 … элемент_N — поля структуры;
— имя_типа — может быть использовано в дальнейшем наряду со стандартными типами;
— список_описателей — список описателей переменных, указателей или массивов, разделенных запятой.
Примечание:
1. Если имя_типа отсутствует, то должен быть указан список_описателей переменных, указателей или массивов.
Элементы структуры называют полями структуры.
Пример:
struct {
char FIO[30] ;
int Date, Code ;
double Salary ;
} staff[100], *ps;
/* *ps — указатель на структуру */
2. Если отсутствует список_описателей, то структура определяет новый тип, имя которого можно использовать в дальнейшем наряду со стандартными типами.
Пример:
struct Worker { // описание нового типа Worker
char FIO[30] ;
int Date, Code ;
double Salary ;
} ;
Worker staff[100], *ps; //объявление массива типа Worker
// и указателя на тип Worker.
3. Инициализация структуры производится перечислением значений элементов в фигурных скобках.
Пример:
struct {
char FIO[30] ;
int date, code ;
double salary ;
} worker={ ''Иванов Иван'' , 31 , 215 , 3500.45} ;
4. При инициализации массивов структур следует заключать в фигурные скобки { } каждый элемент массива.
Пример:
struct complex
{
float real, imaginary ;
} compl [2][3]= {
{ {1,1} , {1,1} , {1,1} }, // строка 0, т.е. массив compl[0][…]
{ {2,2} , {2,2} , {2,2} }, // строка 1, т.е. массив compl[1][…]
}
5. Доступ к полям структуры в программе осуществляют:
— через имя структуры с помощью операции выбора — . (точка);
— через указатель с помощью — –> .
Если элементом структуры является другая структура, то доступ осуществляется через две операции выбора
Пример:
struct Worker { // описание типа Worker
char FIO[30] ;
int Date, Code ;
double salary ;
} ;
struct A {int a; double x;} ; // описание типа А
struct B {A b; double x;} x[2] ; // описание типа B
…
Worker worker, // объявление переменной worker,
staff[100], // массива staff[] типа Worker
*pointer ; // и указателя на тип Worker
…
worker.FIO = ''Иванов Иван'' ;
staff[8].Code=301 ;
pointer –> Salary = 6400.37 ;
x[0].b.a=1 ;
x[1].x=0.1 ;
