Егорова. Программирование на языке Си
.pdfВВЕДЕНИЕ............................................................................................................................................... |
3 |
1 ОСНОВЫПРОГРАММИРОВАНИЯНАЯЗЫКЕ СИ.................................................................. |
4 |
1.1 ОСНОВНЫЕ ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА ЭВМ............................................................................................ |
6 |
1.1.1 Математическая постановка задачи....................................................................................................... |
6 |
1.1.2 Выбор математического метода решения задачи.................................................................................. |
6 |
1.1.3 Алгоритм решения задачи........................................................................................................................... |
7 |
1.1.4 Программирование........................................................................................................................................ |
9 |
1.1.5 Ввод текста программы в ЭВМ................................................................................................................. |
10 |
1.1.6 Получение рабочей программы.................................................................................................................. |
11 |
1.1.7 Тестирование и отладка программы....................................................................................................... |
11 |
1.1.8 Решение задачи на ЭВМ и анализ результатов...................................................................................... |
12 |
1.1.9 Оформление отчета о проделанной работе.......................................................................................... |
12 |
1.2 НАЧАЛЬНЫЕ СВЕДЕНИЯ О ЯЗЫКЕ ПРОГРАММИРОВАНИЯ СИ.................................................................. |
12 |
1.2.1 Алфавит........................................................................................................................................................ |
12 |
1.2.2 Идентификаторы....................................................................................................................................... |
12 |
1.2.3 Функции. Структура программы на языке Си.......................................................................................... |
13 |
1.2.4 Описание переменных................................................................................................................................. |
14 |
1.2.5 Определение констант.............................................................................................................................. |
14 |
1.2.6 Операторы................................................................................................................................................... |
15 |
1.2.7 Точка с запятой............................................................................................................................................ |
15 |
1.2.8 Комментарии............................................................................................................................................... |
15 |
1.2.9 Препроцессор языка Си................................................................................................................................ |
15 |
1.2.10 Основные математические подпрограммы Си..................................................................................... |
16 |
1.3 КОНСТАНТЫ.............................................................................................................................................. |
17 |
1.3.1 Целочисленные константы ....................................................................................................................... |
17 |
1.3.2 Символьные константы............................................................................................................................. |
18 |
1.3.3 Константы с плавающей точкой ............................................................................................................. |
19 |
1.3.4 Константы перечисляемого типа............................................................................................................ |
19 |
1.3.5 Строковые константы............................................................................................................................... |
19 |
1.4 ТИПЫ И ПЕРЕМЕННЫЕ .............................................................................................................................. |
20 |
1.4.1 Знаки.............................................................................................................................................................. |
21 |
1.4.2 Целые переменные....................................................................................................................................... |
22 |
1.4.3 Плавающая точка........................................................................................................................................ |
22 |
1.4.4 Перечисляемые типы.................................................................................................................................. |
22 |
1.4.5 Тип void (пустой) .......................................................................................................................................... |
23 |
1.4.6 Логические значения.................................................................................................................................... |
24 |
1.5 ПРЕОБРАЗОВАНИЕ ТИПОВ........................................................................................................................ |
24 |
1.5.1 Неявные преобразования типов................................................................................................................ |
24 |
1.5.2 Арифметические преобразования............................................................................................................. |
24 |
1.5.3 Явные преобразования типов.................................................................................................................... |
25 |
1.6 ВВОД И ВЫВОД В СИ................................................................................................................................. |
25 |
1.6.1 Стандартные потоки ввода/вывода....................................................................................................... |
25 |
1.6.2 Вывод............................................................................................................................................................. |
25 |
1.6.3 Ввод................................................................................................................................................................ |
28 |
1.6.4 Очистка потока........................................................................................................................................... |
33 |
1.7 ЛАБОРАТОРНАЯ РАБОТА №1 "ЛИНЕЙНЫЙ ВЫЧИСЛИТЕЛЬНЫЙ ПРОЦЕСС"............................................ |
33 |
1.7.1 Линейный вычислительный процесс. Вычисление заданной величины................................................. |
34 |
1.7.2 Линейный вычислительный процесс. Расчет по формулам................................................................... |
38 |
1.8 КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 1 ............................................................................................... |
44 |
181
2 ОПЕРАЦИИИ ОПЕРАТОРЫ......................................................................................................... |
45 |
|
2.1 |
ОПЕРАЦИИ В СИ........................................................................................................................................ |
45 |
2.1.1 Арифметические операции........................................................................................................................ |
45 |
|
2.1.2 Увеличение и уменьшение........................................................................................................................... |
46 |
|
2.1.3 Операция присваивания .............................................................................................................................. |
46 |
|
2.1.4 Логические операции и операции отношения.......................................................................................... |
47 |
|
2.1.5 Поразрядные (побитовые) операции........................................................................................................ |
48 |
|
2.1.6 Операции: приоритет и порядок вычислений ......................................................................................... |
49 |
|
2.2 |
ОПЕРАТОРЫ УПРАВЛЕНИЯ........................................................................................................................ |
50 |
2.2.1 Выражения и операторы............................................................................................................................ |
50 |
|
2.2.2 Построение условий.................................................................................................................................... |
50 |
|
2.2.3 Разветвление............................................................................................................................................... |
51 |
|
2.2.4 Циклы............................................................................................................................................................. |
56 |
|
2.2.5 Оператор break............................................................................................................................................ |
60 |
|
2.2.6 Оператор continue ...................................................................................................................................... |
61 |
|
2.2.7 Оператор goto и метки операторов........................................................................................................ |
62 |
|
2.3 |
ЛАБОРАТОРНАЯ РАБОТА №2 "ОПЕРАТОРЫ УПРАВЛЕНИЯ" .................................................................. |
62 |
2.3.1 Точная формулировка условия для первой задачи................................................................................... |
63 |
|
2.3.2 Точная формулировка условия для второй задачи.................................................................................. |
63 |
|
2.3.3 Разветвляющийся вычислительный процесс. Неформализованные задачи....................................... |
64 |
|
2.3.4 Циклический вычислительный процесс. Неформализованные задачи.................................................. |
68 |
|
2.4 |
КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 2 ............................................................................................... |
71 |
3 ПРОИЗВОДНЫЕ ТИПЫ (МАССИВЫ, СТРУКТУРЫ, ОБЪЕДИНЕНИЯ)......................... |
72 |
|
3.1 |
МАССИВЫ.................................................................................................................................................. |
72 |
3.2 |
СТРУКТУРЫ................................................................................................................................................ |
75 |
3.2.1 Определение структуры............................................................................................................................ |
75 |
|
3.2.2 Доступ к компонентам структуры......................................................................................................... |
76 |
|
3.2.3 Пример работы со структурой................................................................................................................. |
76 |
|
3.3 |
ОБЪЕДИНЕНИЯ.......................................................................................................................................... |
77 |
3.4 |
ПЕРЕМЕННЫЕ СТРУКТУРЫ ........................................................................................................................ |
77 |
3.5 |
ИНИЦИАЛИЗАЦИЯ.................................................................................................................................... |
79 |
3.6 |
ЛАБОРАТОРНАЯ РАБОТА №3 "МАССИВЫ И СТРУКТУРЫ"........................................................................ |
79 |
3.6.1 Массивы ........................................................................................................................................................ |
80 |
|
3.6.2 Массив структур......................................................................................................................................... |
84 |
|
3.6.3 Массив переменных структур................................................................................................................... |
87 |
|
3.7 |
КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 3 ............................................................................................... |
91 |
4 УКАЗАТЕЛИ....................................................................................................................................... |
92 |
|
4.1 |
ПОНЯТИЕ УКАЗАТЕЛЯ................................................................................................................................ |
92 |
4.2 |
АДРЕСНЫЕ ОПЕРАЦИИ.............................................................................................................................. |
93 |
4.3 |
АДРЕСНАЯ АРИФМЕТИКА ......................................................................................................................... |
94 |
4.4 |
ДИНАМИЧЕСКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ............................................................................................ |
94 |
4.4.1 Динамические переменные......................................................................................................................... |
94 |
|
4.4.2 Создание динамических переменных......................................................................................................... |
95 |
182
4.4.3 Доступ к динамическим переменным....................................................................................................... |
97 |
|
4.4.4 Освобождение выделенной памяти.......................................................................................................... |
97 |
|
4.5 |
УКАЗАНИЕ НА СТАТИЧЕСКИЕ ПЕРЕМЕННЫЕ ............................................................................................. |
98 |
4.6 |
УКАЗАНИЕ НА ПРОИЗВОЛЬНУЮ ЯЧЕЙКУ ПАМЯТИ................................................................................... |
98 |
4.7 |
УКАЗАТЕЛИ И СТРУКТУРЫ......................................................................................................................... |
98 |
4.8 |
УКАЗАТЕЛЬ НА ПУСТОЙ ТИП void.............................................................................................................. |
99 |
4.9 |
ЛАБОРАТОРНАЯ РАБОТА №4 "ДИНАМИЧЕСКОЕ РАСПРЕДЕЛЕНИЕ ПАМЯТИ" ......................................... |
99 |
4.9.1 Динамическое распределение памяти и указатели............................................................................. |
100 |
|
4.10 КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 4 ........................................................................................... |
104 |
|
5 МАССИВЫ, СТРОКИ И УКАЗАТЕЛИ...................................................................................... |
105 |
|
5.1 |
СВЯЗЬ МЕЖДУ УКАЗАТЕЛЯМИ И МАССИВАМИ...................................................................................... |
105 |
5.2 |
МАССИВЫ, СТРОКИ, УКАЗАТЕЛИ ............................................................................................................ |
107 |
5.2.1 Понятие строки......................................................................................................................................... |
107 |
|
5.2.2 Определение строки.................................................................................................................................. |
108 |
|
5.2.3 Ввод строк.................................................................................................................................................. |
110 |
|
5.2.4 Строки резюме.......................................................................................................................................... |
111 |
|
5.2.5 Типичные ошибки при работе со строками........................................................................................... |
112 |
|
5.2.6 Примеры работы со строками................................................................................................................ |
113 |
|
5.2.7 Стандартные функции для работы со строками................................................................................ |
115 |
|
5.2.8 Примеры использования строковых стандартных функций .............................................................. |
117 |
|
5.2.9 Массивы указателей. Массивы символьных строк............................................................................... |
119 |
|
5.3 |
МНОГОМЕРНЫЕ МАССИВЫ И УКАЗАТЕЛИ ............................................................................................. |
120 |
5.3.1 Одномерные массивы и указатели.......................................................................................................... |
120 |
|
5.3.2 Двумерные массивы и указатели............................................................................................................ |
120 |
|
5.3.3 Многомерные массивы и указатели ....................................................................................................... |
121 |
|
5.4 |
ЛАБОРАТОРНАЯ РАБОТА № 5 "РАБОТА СО СТРОКАМИ" ....................................................................... |
122 |
5.4.1 Обработка текстовой информации. Работа со строками................................................................ |
122 |
|
5.5 |
КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 5 ............................................................................................. |
126 |
6 ФУНКЦИИ ....................................................................................................................................... |
127 |
|
6.1 |
ОПРЕДЕЛЕНИЕ И ОПИСАНИЕ ФУНКЦИИ ................................................................................................. |
127 |
6.1.1 Определение функции................................................................................................................................ |
127 |
|
6.1.2 Описание функции...................................................................................................................................... |
128 |
|
6.2 |
УПРАВЛЕНИЕ ВИДИМОСТЬЮ ФУНКЦИЙ ................................................................................................ |
129 |
6.3 |
ВЫЗОВ ФУНКЦИЙ.................................................................................................................................... |
130 |
6.4 |
ПЕРЕДАЧА ПАРАМЕТРОВ........................................................................................................................ |
130 |
6.5 |
ПЕРЕДАЧА МАССИВОВ В КАЧЕСТВЕ ПАРАМЕТРОВ................................................................................. |
132 |
6.6 |
УКАЗАТЕЛЬ НА ФУНКЦИЮ. ПЕРЕДАЧА ФУНКЦИЙ В КАЧЕСТВЕ ПАРАМЕТРОВ ....................................... |
135 |
6.7 |
СВЯЗЬ ФУНКЦИЙ ИЗ РАЗНЫХ ФАЙЛОВ................................................................................................... |
137 |
6.8 |
ЛОКАЛЬНЫЕ И ГЛОБАЛЬНЫЕ ДАННЫЕ .................................................................................................. |
137 |
183
6.9 |
ЛАБОРАТОРНАЯ РАБОТА №6 "ПОДПРОГРАММЫ В СИ" ........................................................................ |
138 |
6.9.1 Организация функций................................................................................................................................ |
138 |
|
6.9.2 Передача массивов в качестве параметров.......................................................................................... |
142 |
|
6.10 КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 6 ........................................................................................... |
145 |
|
7 ОПРЕДЕЛЕНИЯИ ОПИСАНИЯОБЩАЯ ФОРМА............................................................. |
146 |
|
7.1 |
ТИПЫ ДАННЫХ........................................................................................................................................ |
146 |
7.1.1 Тип unsigned char ....................................................................................................................................... |
146 |
|
7.1.2 Директива typedef ..................................................................................................................................... |
147 |
|
7.2 |
ОПИСАТЕЛИ В ОПРЕДЕЛЕНИЯХ И ОПИСАНИЯХ...................................................................................... |
148 |
7.3 |
КЛАССЫ ПАМЯТИ.................................................................................................................................... |
148 |
7.3.1 Автоматические переменные................................................................................................................. |
149 |
|
7.3.2 Регистровые переменные......................................................................................................................... |
149 |
|
7.3.3 Статические переменные (локальные) .................................................................................................. |
150 |
|
7.3.4 Глобальные переменные........................................................................................................................... |
151 |
|
7.3.5 Выбор класса памяти................................................................................................................................ |
152 |
|
7.4 |
СИНТАКСИЧЕСКИЕ ОТЛИЧИЯ ОПРЕДЕЛЕНИЙ И ОПИСАНИЙ .................................................................. |
153 |
7.5 |
ИНИЦИАЛИЗАТОРЫ................................................................................................................................ |
154 |
7.6 |
ЛАБОРАТОРНАЯ РАБОТА №7 "ИГРА. РАЗРАБОТКА ДИАЛОГОВОЙ ПРОГРАММЫ"................................ |
156 |
7.7 |
КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 7 ............................................................................................. |
161 |
8 ФАЙЛЫ............................................................................................................................................. |
162 |
|
8.1 |
ПОТОКИ (stream)..................................................................................................................................... |
162 |
8.2 |
ОПРЕДЕЛЕНИЕ ПОТОКА .......................................................................................................................... |
163 |
8.3 |
СТАНДАРТНЫЕ ПОТОКИ.......................................................................................................................... |
163 |
8.4 |
НЕСТАНДАРТНЫЕ ПОТОКИ...................................................................................................................... |
164 |
8.4.1 Открытие файла (потока) ...................................................................................................................... |
164 |
|
8.4.2 Закрытие потока...................................................................................................................................... |
167 |
|
8.4.3 Очистка потока......................................................................................................................................... |
167 |
|
8.4.4 Обработка (чтение и запись) нестандартных текстовых файлов.................................................. |
168 |
|
8.5 |
ЛАБОРАТОРНАЯ РАБОТА №8 "ФАЙЛЫ"................................................................................................. |
176 |
8.5.1 Файлы. Список заданий.............................................................................................................................. |
176 |
|
8.6 |
КОНТРОЛЬНЫЕ ВОПРОСЫ ПО МОДУЛЮ 8 ............................................................................................. |
179 |
СПИСОКИСПОЛЬЗОВАННЫХИСТОЧНИКОВ...................................................................... |
180 |
184