- •1. Основные понятия информатики
- •1.1. Понятие и задачи информатики
- •1.2. Системы счисления
- •1.2.1. Двоичная система счисления
- •1.2.2. Восьмеричная система счисления
- •1.2.3. Шестнадцатеричная система
- •1.3. Обобщенная структура и состав персонального компьютера
- •1.4. Организация вычислительных процессов при решении инженерных задач
- •1.5. Алгоритмы
- •1.5.1. Алгоритм: основные свойства и способы представления
- •1.5.2. Базовые элементы и структуры программирования
- •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. Бинарные деревья
3.2.6. Комментарии
Комментарии — последовательность символов, игнорируемая компилятором.
Начинается комментарий либо с двух символов «косая черта» (//) и заканчивается символом перехода на новую строку, либо заключается между символами /* */ .
Замечание. Вложенные комментарии не допускаются.
Пример,
3.3. Лекция 6. Типы данных и их объявление
3.3.1. Основные типы данных
В языке С/С++ все переменные, используемые в программе, необходимо объявлять. Тоже самое касается констант. Объявление связано с необходимостью выделить под переменную или константу область памяти, размер которой определяется задаваемым типом данных.
Основные (стандартные) типы данных часто называют арифметическими, поскольку их можно использовать в арифметических операциях:
Целочисленные типы:
Типы с плавающей запятой:
Диапазоны значений, которые могут принимать переменные представленных типов, приведены в таблице 3.6.
Таблица 3.6 — Диапазоны значений простых типов данных
Тип |
Диапазон значений |
Размер, байт |
bool |
true и false |
1 |
signed char |
–128 … 127 |
1 |
unsigned char |
0 … 255 |
1 |
signed short int |
–32 768 … 32 767 |
2 |
unsigned short int |
0 … 65 535 |
2 |
signed long int |
–2 147 483 648 … 2 147 483 647 |
4 |
unsigned long int |
0 … 4 294 967 295 |
4 |
float |
3.4e–38 … 3.4e+38 |
4 |
double |
1.7e–308 … 1.7e+308 |
8 |
long double |
3.4e–4932 … 3.4e+4932 |
10 |
Примечания:
1. Размер типа int определяется при объявлении типом процессора (ЦПУ). Для 16-разрядного ЦПУ — 2 байта (16 бит) и для 32-разрядного — 4 байта (32 бита).
2. Выбор типа short int указывает компилятору, что под переменную требуется 2 байта независимо от ЦПУ.
Выбор типа long int — указывает, что требуется 4 байта независимо от ЦПУ.
3. Типы констант могут быть обозначены суффиксами:
L , l — long int ; long double ;
U , u — unsigned int ;
F , f — float .
Например: 32L — тип long int;
32ul — тип unsigned long int;
2E+6L — тип long double;
1.82f — тип float.
4. Для различных ПК и ОС нельзя делать предположение о размерах памяти, занимаемых различными типами переменных. Необходимо определять эту величину операцией sizeof.
Например:
a=sizeof(int) ;
Результатом операции будет число 2 (в байтах) для MS-DOS, и
4 для Windows или OS/2.
5. Целые типы short int, long int,
signed int и unsigned int
можно сокращать до
short, long,
signed и unsigned.
6. Минимальные и максимальные допустимые значения приводятся в заголовочных файлах float.h (для вещественных) и limits.h (для целых переменных).
3.3.2. Объявление типов данных
Объявления С/С++ в имеют следующий формат записи (квадратные скобки показывают, что элемент может отсутствовать):
[спецификатор_класса_памяти] [const] [спецификатор_типа] [тип] описатель [инициатор] [, описатель [инициатор] ] … ;
Здесь:
— [спецификатор_класса_памяти] — определяется одним из 4 классов и определяет, каким образом будет распределяться память под переменную и область видимости переменной:
auto — автоматические переменные; являются локальными для каждого вызова блока и исчезают при выходе из этого блока; не используется для глобальных переменных, для локальных устанавливается по умолчанию;
extern — внешние переменные; существуют и сохраняют свои значения в течение выполнения всей программы и могут использоваться для связи между функциями, в том числе и между независимо скомпилированными функциями;
static — статические переменные; являются локальными, но могут быть и глобальными; сохраняют свои значения после того, как управление передаётся за пределы блока;
register — регистровые переменные; хранятся (если это возможно) в быстрых регистрах процессора; являются локальными для каждого блока и исчезают при выходе из этого блока; если в регистры нет возможности поместить переменную, то она обрабатывается как auto.
— [const] — модификатор, указывающий на то, что значение переменной изменять нельзя, т.е. переменная является именованной константой;
— [спецификатор_типа] — уточняет внутреннее представление и диапазон значений типов:
short — короткий;
long — длинный;
signed — знаковый;
unsigned — беззнаковый;
— [тип] — указывает на тип переменной;
bool — целый тип;
char — символьный тип;
int — целый тип;
float — вещественный тип;
double — вещественный тип с двойной точностью;
— описатель — (имя переменной) идентификатор простой переменной, либо более сложная конструкция (с квадратными скобками, круглыми скобками, одной или несколькими звёздочками);
— [инициатор] — присвоение переменной начального значения при инициализации; существуют две формы записи:
=значение — присвоение значения с использованием знака равенства;
(значение) — присвоение значения с использованием круглых скобкок.
В одном операторе можно описать несколько переменных одного типа, разделяя их запятыми.
Примеры:
1)
short int a=1 ; // короткая целая a=1
int b (7) ; // целая b=7
float c=0.22 , //переменная с плавающей запятой c=0,22
x (3) , // переменная с плавающей запятой x=3
s ; // переменная с плавающей запятой
2)
int a ; // глобальная переменная
main ()
{
int b ; // локальная переменная b
extern int x ; // x определена в другом месте
static int y ; // статическая переменная y
a=1 ; // присвоение локальной переменной а
b=2 ; // присвоение локальной переменной b
:: a=3 ; //присвоение глобальной переменной
return 0 ;
}
int x=4 ; // присвоение и инициализация переменной х
