Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Егорова. Программирование на языке Си

.pdf
Скачиваний:
523
Добавлен:
12.03.2016
Размер:
1.37 Mб
Скачать

ВВЕДЕНИЕ...............................................................................................................................................

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