- •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.5.4. Символьные массивы (строки)
Строка представляет собой массив символов, заканчивающийся нуль-символом ‘\0’.
Замечание.
По положению нуль-символа определяется длина строки, т.е. длина символьного массива.
Форматы объявления символьного массива:
char имя_массива [размер_массива] [= “ инициализатор ”] ;
char имя_массива [ ] = “ инициализатор ” ;
Примеры:
1. Объявление символьного массива заданной длины и инициализация строковым литералом:
char str[20] = ''University''; // объявление массива из 20 элементов
// с номерами от 0 до 19
Здесь под массив выделено 20 байт; символы массива записались в первые 11 байт, остальные ячейки памяти содержат нулевые значения:
2. Объявление символьного массива и инициализация строковым литералом без указания количества элементов массива:
char str[]= ''University''; // под массив выделено 11 Байт.
3. Запись следующего вида
char *str= ''University'';
создает указатель на строковую константу, а не символьный массив и не строковую переменную.
Примечание:
Указатель на константу удалить нельзя.
3.6. Лекция 9. Выражения и присваивания
Выражение — комбинация знаков операций и операндов, результатом которой является определённое значение.
Операнд — константа, литера, идентификатор, функция и т.д.
3.6.1. Операции инкремента и декремента (увеличения и уменьшения на 1)
Знак операции инкремента — ++ ,
знак операции декремента — – – .
Существует две формы записи этих операций:
— префиксная (++x, – –x), при которой вначале изменяется операнд, а затем его значение становится результатом выражения;
— постфиксная (x– –, x++), при которой значением выражения вначале является операнд (его исходное значение), после чего он изменяется.
Пример:
include <stdio.h>
int main()
{
int x=3, y=3;
printf(“Значение префиксного выражения ++x : %d\n”, ++x);
printf(“Значение постфиксного выражения y++ : %d\n”, y++);
printf(“Значение x после приращения : %d\n”, x);
printf(“Значение y после приращения : %d\n”, y);
return 0;
}
Результат выполнения программы:
Значение префиксного выражения ++x : 4
Значение постфиксного выражения y++ : 3
Значение x после приращения : 4
Значение y после приращения : 4.
3.6.2. Операция определения размера типа
Операция sizeof — предназначена для вычисления размера объекта или типа в байтах.
Существует две формы записи:
sizeof выражение ;
sizeof (тип) ;
Пример:
#include <iomanip.h>
int main()
{
float x =1 ;
cout<<“Размер типа: ”<< sizeof( float ) << endl; //1
cout<<“Размер выражения 1: ”<< sizeof x << endl; //2
cout<<“Размер выражения 2: ”<< sizeof (x+0.1) << endl; //3
return 0;
}
Результат выполнения примера:
Размер типа: 4
Размер выражения 1: 4
Размер выражения2: 8
Результат выполнения строки //3 отличается от результатов выполнения строк //1 и //2 так как по умолчанию ‘0.1’ имеет тип double и результат суммирования также по умолчанию имеет тип double, поэтому при сложении этой величины с переменной x происходит автоматическое преобразование типа переменной x и результата суммирования к типу double.
3.6.3. Операции отрицания ( – , ! , ~ )
Операция – — операция арифметического отрицания. Операция изменяет знак числа на противоположный.
Пример:
float x = 7 , y;
y = –x ; //в результате получаем y = –7 .
Операция ! — операция логического отрицания. Если операнд имеет значение ''Истинна'' (1), то применение операции ! даст результат — ''Ложь'' (0), и наоборот, если операнд ''Ложь'' (0), то операция дает результат ''Истинна'' (1).
Пример:
bool a = true, b=false, x, y;
x = !a ; // Получаем: x = 0, т.е false .
y = !b ; // Получаем: y = 1, т.е true .
Операция ~ — операция поразрядного (побитового) отрицания. Операция инвертирует каждый разряд (бит) числа.
Пример:
int x=110, y;
y= ~x ; // Получаем: y=145
Результат выполнения: y=~11010=14510=100100012
Рисунок 3.4 — К объяснению операции поразрядного отрицания
