- •11. Операторы. Дополнение 135
- •12. Передача данных потоком 145
- •13. Файлы 149
- •14. Структура программы 157
- •15. Указатели, массивы, строки 170
- •16. Работа с экраhом 179
- •Задачи 185
- •Приложения 197
- •Библиографический список 224 введение
- •1. Основные понятия и определения
- •1.1. Компьютер
- •Процессор
- •Периферия
- •1.2. Алгоритмы
- •1.3. Программы и языки
- •Основные понятия языка программирования
- •Выполнение программы
- •Машинный и алгоритмический языки
- •Метаобозначения
- •Этапы обработки программы на компьютере
- •Терминология
- •Трансляция
- •Редактирование связей (компоновка)
- •Загрузка
- •1.4. Данные
- •Системы счисления
- •Типы и совокупности данных
- •Вещественные
- •Логические
- •Совокупности данных
- •2. Элементы языка
- •2.1. История языков с и Basic
- •2.2. Алфавит
- •2.3. Идентификаторы
- •2.4. Знаки разрядки
- •2.5. Комментарии
- •Могут ставиться везде, где допустим знак разрядки. Транслятор рассматривает их как пробел.
- •2.6. Запись текста программы
- •3.1.1. Целые
- •3.1.2. Данные с плавающей точкой
- •3.1.3. Логический тип
- •3.1.4. Символьные данные
- •3.1.5. Дополнительные типы данных
- •3.2. Совокупности данных
- •3.2.1. Массивы
- •Объявления массивов
- •Обращение к элементу массива
- •3.2.2. Структуры
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •4. Выражения
- •4.1. Арифметические операторы Основные
- •Дополнительные
- •Приоритет
- •4.2. Операторы конкатенации
- •4.3. Операторы сравнения
- •4.4. Логические операторы
- •4.5. Обращение к функции
- •4.6. Встроенные функции
- •4.7. Заключительные замечания
- •5.2. Присваивание
- •5.3. Безусловный переход
- •5.4. Инструкция If. Пустая инструкция
- •5.5. Составная инструкция
- •5.6. Циклы
- •5.6.1. Циклы с предусловием
- •Циклы while
- •Циклы for
- •5.6.2. Циклы с постусловием
- •5.6.3. Вложенные циклы
- •5.7. Управляемые переходы
- •5.7.1. Инструкция break
- •5.7.2. Инструкция continue
- •5.7.3. Инструкции exit и continue
- •5.8. Многоальтернативный выбор
- •5.8.1. Инструкция switch (язык с)
- •5.8.2. Инструкция select case (язык Basic)
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •6. Ввод-вывод
- •6.1. Язык Си
- •6.1.1. Управляющая строка
- •6.1.1.1. Спецификация d (целые десятичные числа)
- •6.1.1.2. Спецификация f (десятичные числа с плавающей точкой)
- •6.1.1.3. Спецификация e (десятичные числа с плавающей точкой)
- •6.1.1.4. Спецификация g (универсальная спецификация)
- •6.1.2. Вывод символьной информации
- •6.1.3. Инструкции printf и scanf. Схема ввода-вывода
- •6.2. Язык Basic
- •6.2.1. Метод ReadLine
- •6.2.2. Методы Write и WriteLine
- •7.1.1. Распределение скаляров
- •7 .1.2. Распределение массивов
- •7.1.3. Статическое и динамическое распределение памяти
- •7.2. Блоки
- •7.3. Процедуры
- •7.3.1. Определения процедур
- •7.3.2. Передача данных между процедурами
- •Механизмы передачи данных
- •Прототипы функций (c)
- •Передача скаляров Возвращаемое значение
- •Входные данные
- •Выходные данные
- •Передача массивов
- •Передача функций
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •8. Препроцессор
- •8.1. Определение символических констант
- •8.2. Включение файлов в текст программы
- •9.1. Формирование листинга
- •Перенос:
- •9.2. Комментарии
- •9.3. Имена Имена объектов программы должны быть осмысленными.
- •3. Литералы.
- •9. Ввод-вывод:
- •10.5. Подмассивы (сечения) (c)
- •10.6. Динамические массивы (b)
- •10.7. Структуры и объединения
- •10.7.1. Структуры
- •10.7.3. Поля битов (с)
- •10.7.4. Объединения (смеси) (с)
- •10.7.5. Переменные структуры
- •10.10. Пользовательские типы данных
- •10.11. Преобразование типов
- •10.10.1. Автоматические преобразования
- •10.10.2. Явные преобразования
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •11. Операторы. Дополнение
- •11.1. Уровень 1
- •11.2. Уровень 2 (унарные или одноместные операторы)
- •11.3. Уровень 3 (мультипликативные операторы)
- •11.4. Уровень 4 (аддитивные операторы)
- •11.5. Уровень 5 (сдвиги)
- •11.6. Уровень 6 (отношения)
- •11.7. Уровень 7 (равенство и неравенство)
- •11.8. Поразрядные операторы
- •11.9. Логические операторы
- •11.10. Уровень 13 (условное выражение)
- •11.11. Уровень 14 (операторы присваивания)
- •11.12. Уровень 15 (оператор ',' - запятая)
- •11.13. Некоторые замечания
- •11.14. Постоянные выражения
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •12. Передача данных потоком
- •12.1. Спецификация "s" управляющей строки функций scanf и printf
- •12.2. Функции getchar и putchar
- •12.3. Функции gets и puts
- •12.4. Внутренняя передача данных (функции sscanf и sprintf)
- •13.1. Основные понятия
- •13.2. Описание файла
- •13.3. Открытие и закрытие файлов
- •13.4. Средства языка с
- •13.4.1. Открытие и закрытие файла
- •13.4.2. Основные функции обмена
- •13.5. Средства языка Basic
- •13.5.1. Открытие и закрытие файла Инструкция FileOpen
- •Инструкция FileClose
- •13.5.2. Работа с файлами Инструкция Input
- •Инструкция LineInput
- •Инструкции Write и WriteLine
- •Инструкции Print и PrintLine
- •Дополнительные функции
- •Функция MsgBox
- •14.1. Элементы структуры программы.
- •14.1.2. Язык Basic
- •14.2. Область видимости (действия) и время жизни переменных
- •14.2.1. Язык c
- •14.2.2. Язык Basic
- •14.3. Инициализация данных
- •14.3.1. Язык с
- •2. Массивы.
- •15.1. Указатели
- •Определение указателей
- •Задание значений
- •Вывод значений
- •15.2. Указатели и массивы
- •15.3. Работа со строками
- •15.3.1. Литералы
- •15.3.2. Переменные
- •15.3.3. Операторы и функции
- •15.4. Динамические объекты
- •15.5. Типичные ошибки, связанные с указателями Отсутствие инициализации указателя
- •Двойное указание
- •15.6.2. Однонаправленный список
- •15.7. Указатели и многомерные массивы
- •15.8. Рекурсивные процедуры
- •15.8.1. Рекурсивное решение
- •15.8.2. Нерекурсивное решение. Стек в виде массива
- •15.8.3. Нерекурсивное решение. Стек в виде списка
- •Вопросы для самопроверки и контроля Вопросы для самопроверки
- •Контрольные вопросы
- •16. Работа с экраhом
- •16.2. Управление окном
- •16.3. Управление атрибутом (цветами символа и фона в окне)
- •16.4. Информация о текстовом режиме
- •16.5. Пример
- •Простые циклы
- •Вложенные циклы
- •Процедуры
- •Работа со строками
- •Приложения
- •П1.1. Установка среды
- •П1.2. Запуск среды
- •П1.3. Меню Файл
- •П1.4. Меню Сервис
- •П1.5. Отладка
- •Начало отладки
- •Установка точек прерывания
- •Прогон до точки прерывания
- •Пошаговое выполнение программы
- •Получение значений объектов программы
- •Приложение 2. Среда разработки Visual Basic п2.1. Запуск среды
- •П2.2. Подготовка к работе с новым проектом
- •П2.3. Окна и режимы работы
- •П2.4. Главное меню
- •П2.5. Меню File (Файл)
- •П2.6. Редактирование текста
- •П2.7. Меню View (Вид)
- •П2.8. Меню Project (Проект)
- •П2.9. Отладка
- •Точки прерывания
- •Определение значений объектов программы в момент прерывания
- •Продолжение работы
- •П2.10. Меню Tools (Сервис)
- •П2.11. Меню Window (Окно)
- •Приложение 3. Ответы на вопросы для самопроверки
- •2. Элементы языка
- •3. Элементы данных
- •4. Выражения
- •5. Основные инструкции
- •6. Ввод-вывод
- •7. Процедуры
- •8. Препроцессор
- •9. Стиль программирования
- •10. Данные. Дополнение
- •11. Операторы. Дополнение
- •12. Передача данных потоком
- •13. Файлы
- •14. Структура программы
- •15. Указатели, массивы, строки
- •16. Работа с экраном
- •Приложение 4. Темы для курсовой работы
- •Библиографический список
Оглавление
ВВЕДЕНИЕ 9
1. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ 11
1.1. КОМПЬЮТЕР 11
1.2. АЛГОРИТМЫ 13
1.3. ПРОГРАММЫ И ЯЗЫКИ 15
1.4. Данные 21
2. ЭЛЕМЕНТЫ ЯЗЫКА 25
2.1. История языков С и Basic 25
2.2. Алфавит 25
2.3. Идентификаторы 26
2.4. Знаки разрядки 26
2.5. Комментарии 26
2.6. Запись текста программы 28
Вопросы для самопроверки и контроля 29
3. ЭЛЕМЕНТЫ ДАННЫХ 30
3.1. Типы данных 30
3.1.1. Целые 30
3.1.2. Данные с плавающей точкой 31
3.1.3. Логический тип 32
3.1.4. Символьные данные 32
3.1.5. Дополнительные типы данных 34
3.2. Совокупности данных 34
3.2.1. Массивы 34
3.2.2. Структуры 37
Вопросы для самопроверки и контроля 37
4. ВЫРАЖЕНИЯ 39
4.1. Арифметические операторы 39
4.2. Операторы конкатенации 40
4.3. Операторы сравнения 41
4.4. Логические операторы 41
4.5. Обращение к функции 43
4.6. Встроенные функции 43
4.7. Заключительные замечания 44
Вопросы для самопроверки и контроля 45
5. ОСНОВНЫЕ ИНСТРУКЦИИ 46
5.1. Объявления 46
5.2. Присваивание 47
5.3. Безусловный переход 47
5.4. Инструкция If. Пустая инструкция 48
5.5. Составная инструкция 51
5.6. Циклы 51
5.6.1. Циклы с предусловием 53
5.6.2. Циклы с постусловием 57
5.6.3. Вложенные циклы 58
5.7. Управляемые переходы 60
5.7.1. Инструкция break 60
5.7.2. Инструкция continue 61
5.7.3. Инструкции exit и continue 62
5.8. Многоальтернативный выбор 62
5.8.1. Инструкция switch (язык С) 62
5.8.2. Инструкция select case (язык Basic) 64
Вопросы для самопроверки и контроля 65
6. ВВОД-ВЫВОД 67
6.1. Язык Си 67
6.1.1. Управляющая строка 67
6.1.2. Вывод символьной информации 71
6.1.3. Инструкции printf и scanf. Схема ввода-вывода 73
6.1.4. Ввод-вывод массивов 75
6.1.5. Очистка и останов экрана 75
6.2. Язык Basic 76
6.2.1. Метод ReadLine 76
6.2.2. Методы Write и WriteLine 77
Вопросы для самопроверки и контроля 78
7. ПРОЦЕДУРЫ 79
7.1. Распределение памяти 79
7.1.1. Распределение скаляров 79
7.1.2. Распределение массивов 79
7.1.3. Статическое и динамическое распределение памяти 80
7.2. Блоки 80
7.3. Процедуры 81
7.3.1. Определения процедур 82
7.3.2. Передача данных между процедурами 85
Вопросы для самопроверки и контроля 100
8. ПРЕПРОЦЕССОР 101
8.1. Определение символических констант 101
8.2. Включение файлов в текст программы 102
Вопросы для самопроверки и контроля 105
9. СТИЛЬ ПРОГРАММИРОВАHИЯ 106
9.1. Формирование листинга 106
9.2. Комментарии 107
9.3. Имена 108
9.4. Язык и приемы программирования 109
9.5. Стиль в языках С и Basic 111
Вопросы для самопроверки и контроля 113
10. ДАННЫЕ. ДОПОЛНЕНИЕ 114
10.1. Перечислимый тип 114
10.1.1. Тип enum (C++) 114
10.1.2. Тип enum (B) 115
10.2. Тип decimal (B) 115
10.3. Тип date (B) 116
10.4. Тип void (С) 120
10.5. Подмассивы (сечения) (C) 120
10.6. Динамические массивы (B) 121
10.7. Структуры и объединения 122
10.7.1. Структуры 122
10.7.2. Рекурсивные структуры (С++) 125
10.7.3. Поля битов (С) 127
10.7.4. Объединения (смеси) (С) 128
10.7.5. Переменные структуры 128
10.8. Тип object (B) 129
10.9. Тип delegate (B) 130
10.10. Пользовательские типы данных 131
10.11. Преобразование типов 131
10.10.1. Автоматические преобразования 131
10.10.2. Явные преобразования 132
Вопросы для самопроверки и контроля 134
11. Операторы. Дополнение 135
11.1. Уровень 1 135
11.2. Уровень 2 (унарные или одноместные операторы) 136
11.3. Уровень 3 (мультипликативные операторы) 138
11.4. Уровень 4 (аддитивные операторы) 138
11.5. Уровень 5 (сдвиги) 139
11.6. Уровень 6 (отношения) 139
11.7. Уровень 7 (равенство и неравенство) 140
11.8. Поразрядные операторы 140
11.9. Логические операторы 140
11.10. Уровень 13 (условное выражение) 141
11.11. Уровень 14 (операторы присваивания) 141
11.12. Уровень 15 (оператор ',' - запятая) 142
11.13. Некоторые замечания 143
11.14. Постоянные выражения 143
Вопросы для самопроверки и контроля 143
12. Передача данных потоком 145
12.1. Спецификация "s" управляющей строки функций scanf и printf 145
12.2. Функции getchar и putchar 146
12.3. Функции gets и puts 146
12.4. Внутренняя передача данных (функции sscanf и sprintf) 147
Вопросы для самопроверки и контроля 148
13. Файлы 149
13.1. Основные понятия 149
13.2. Описание файла 149
13.3. Открытие и закрытие файлов 150
13.4. Средства языка С 151
13.4.1. Открытие и закрытие файла 151
13.4.2. Основные функции обмена 151
13.5. Средства языка Basic 152
13.5.1. Открытие и закрытие файла 152
13.5.2. Работа с файлами 153
Вопросы для самопроверки и контроля 156
156
14. Структура программы 157
14.1. Элементы структуры программы. 157
14.1.1. Язык C++ 157
14.1.2. Язык Basic 158
14.2. Область видимости (действия) и время жизни переменных 159
14.2.1. Язык C 161
14.2.2. Язык Basic 163
14.3. Инициализация данных 165
14.3.1. Язык С 165
14.3.2. Язык Basic 168
14.4. Рекомендуемая структура программы 168
14.4.1. Структура модуля на языке Basic 168
14.4.2. Структура модуля на языке C 168
Вопросы для самопроверки и контроля 169
15. Указатели, массивы, строки 170
15.1. Указатели 170
15.2. Указатели и массивы 171
15.3. Работа со строками 172
15.3.1. Литералы 172
15.3.2. Переменные 172
15.3.3. Операторы и функции 173
15.4. Динамические объекты 164
15.5. Типичные ошибки, связанные с указателями 166
15.6. Примеры использования указателей. Структуры данных 167
15.6.1. Стек 167
15.6.2. Однонаправленный список 168
15.7. УКАЗАТЕЛИ и многомерные массивы 170
15.8. Рекурсивные процедуры 171
15.8.1. Рекурсивное решение 172
15.8.2. Нерекурсивное решение. Стек в виде массива 172
15.8.3. Нерекурсивное решение. Стек в виде списка 174
Вопросы для самопроверки и контроля 177
16. Работа с экраhом 179
16.1. Ввод/вывод и манипулирование 180
16.2. Управление окном 181
16.3. Управление атрибутом (цветами символа и фона в окне) 181
16.4. Информация о текстовом режиме 181
16.5. Пример 181
Вопросы для самопроверки и контроля 184
Задачи 185
Элементарные конструкции 185
Простые циклы 186
Вложенные циклы 188
Процедуры 191
Работа со строками 193
Разное 194
Приложения 197
Приложение 1. Среда разработки MinGW C/C++ 4.8 197
П1.1. Установка среды 197
П1.2. Запуск среды 197
П1.3. Меню Файл 200
П1.4. Меню Сервис 201
П1.5. Отладка 203
Приложение 2. Среда разработки Visual Basic 206
П2.1. Запуск среды 206
П2.2. Подготовка к работе с новым проектом 207
П2.3. Окна и режимы работы 208
П2.4. Главное меню 210
П2.5. Меню File (Файл) 210
П2.6. Редактирование текста 211
П2.7. Меню View (Вид) 211
П2.8. Меню Project (Проект) 211
П2.9. Отладка 212
П2.10. Меню Tools (Сервис) 213
П2.11. Меню Window (Окно) 214
Приложение 3. Ответы на вопросы для самопроверки 215
Приложение 4. Темы для курсовой работы 221
