Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методички.C++ / Конспект Лекций - Части 1,2.pdf
Скачиваний:
275
Добавлен:
24.02.2016
Размер:
1.97 Mб
Скачать

Министерство образования Республики Беларусь

Учреждение образования «Белорусский государственный университет

информатики и радиоэлектроники»

Кафедра «Вычислительные методы и программирование»

В.Л.Бусько, А.Г.Корбит, Т.М.Кривоносова

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

Конспект лекций

ЧАСТЬ 1

для студентов всех специальностей и форм обучения БГУИР

Минск 2006

СОДЕРЖАНИЕ

ЧАСТЬ 1.................................................................................................................

6

1. Основные понятия и определения...................................................................

6

1.1. Структура персональной ЭВМ.................................................................

6

1.2. Размещение данных и программ в памяти ПЭВМ.................................

6

1.3. Программные модули................................................................................

7

1.4. Ошибки........................................................................................................

8

1.5. Функциональная и модульная декомпозиции.........................................

8

1.6. Файловая система хранения информации...............................................

9

1.7. Операционная система ............................................................................

10

2. Понятие алгоритмов и способы их описания...............................................

10

2.1. Свойства алгоритмов...............................................................................

11

2.2. Способы описания алгоритмов...............................................................

11

2.3. Основные символы схемы алгоритма....................................................

12

3. Базовые элементы языка Cи...........................................................................

13

3.1. Алфавит языка..........................................................................................

13

3.2. Лексемы.....................................................................................................

13

3.3. Идентификаторы и ключевые слова......................................................

13

3.4. Знаки операций.........................................................................................

14

3.5. Литералы (константы) .............................................................................

14

3.6. Комментарии............................................................................................

14

4. Базовые типы объектов ..................................................................................

15

4.1. Простейшая программа...........................................................................

15

4.2. Основные типы данных...........................................................................

16

4.3. Декларация объектов...............................................................................

17

4.4. Данные целого типа (int) .........................................................................

17

4.5. Данные символьного типа (char) ............................................................

18

4.6. Данные вещественного типа (float, double)...........................................

18

5. Константы в программах................................................................................

18

5.1. Целочисленные константы......................................................................

18

5.2. Константы вещественного типа .............................................................

19

5.3. Символьные константы...........................................................................

19

5.4. Строковые константы..............................................................................

20

6. Обзор операций...............................................................................................

20

6.1. Операции, выражения..............................................................................

20

6.2. Арифметические операции.....................................................................

20

6.3. Операции присваивания..........................................................................

21

6.4. Сокращенная запись операции присваивания......................................

21

6.5. Преобразование типов операндов арифметических операций ...........

22

6.6. Операция приведения типа.....................................................................

23

6.7. Операции сравнения................................................................................

23

2

 

6.8. Логические операции...............................................................................

23

6.9. Побитовые логические операции, операции над битами ....................

24

6.10. Операция «,» (запятая)...........................................................................

26

7. Обзор базовых инструкций языка Си...........................................................

26

7.1. Стандартная библиотека языка Си.........................................................

26

7.2. Стандартные математические функции ................................................

26

7.3. Функции вывода данных.........................................................................

27

7.4. Функции ввода информации...................................................................

28

7.5. Ввод - вывод потоками............................................................................

29

8. Синтаксис операторов языка Cи ...................................................................

29

8.1. Условные операторы ...............................................................................

30

8.2. Условная операция «? :»..........................................................................

31

8.3. Оператор выбора альтернатив (переключатель) ..................................

32

9. Составление циклических алгоритмов.........................................................

33

9.1. Понятие цикла..........................................................................................

33

9.2. Оператор с предусловием while .............................................................

33

9.3. Оператор цикла с постусловием do - while ...........................................

34

9.4. Оператор цикла с предусловием и коррекцией for...............................

34

10. Операторы передачи управления................................................................

35

10.1. Оператор безусловного перехода goto.................................................

35

10.2. Оператор continue...................................................................................

36

10.3. Оператор break .......................................................................................

36

10.4. Оператор return.......................................................................................

36

11 . Указатели......................................................................................................

37

11.1. Операции над указателями (косвенная адресация) ............................

38

11.2. Ссылка.....................................................................................................

38

12. Массивы.........................................................................................................

39

12.1. Одномерные массивы............................................................................

39

12.2. Многомерные массивы..........................................................................

40

12.3. Операция sizeof ......................................................................................

40

12.4. Применение указателей.........................................................................

41

12.5. Указатели на указатели .........................................................................

42

13. Работа с динамической памятью.................................................................

43

13.1. Пример создания одномерного динамического массива...................

45

13.2. Пример создания двухмерного динамического массива...................

45

14. Строки в языке Си.........................................................................................

45

14.1. Русификация под Visual ........................................................................

47

15. Функции пользователя .................................................................................

48

15.1. Декларация функции .............................................................................

48

15.2. Вызов функции.......................................................................................

49

15.3. Операция typedef ....................................................................................

50

15.4. Указатели на функции...........................................................................

51

16. Классы памяти и области действия объектов............................................

53

16.1. Автоматические переменные................................................................

54

16.2. Внешние переменные............................................................................

54

3

16.3. Область действия переменных.............................................................

56

17. Структуры, объединения, перечисления....................................................

58

17.1. Структуры...............................................................................................

58

17.2. Декларация структурного типа данных...............................................

58

17.3. Создание структурных переменных ....................................................

59

17.4. Вложенные структуры...........................................................................

60

17.5. Массивы структур..................................................................................

61

17.6. Размещение структурных переменных в памяти ...............................

62

17.7. Объединения...........................................................................................

63

17.8. Перечисления .........................................................................................

64

18.

Файлы в языке Си ........................................................................................

65

18.1. Открытие файла .....................................................................................

65

18.2. Закрытие файла ......................................................................................

67

18.3. Запись - чтение информации ................................................................

68

18.4. Текстовые файлы ...................................................................................

69

18.5. Бинарные файлы.....................................................................................

69

Литература...........................................................................................................

72

Приложение 1. Таблицы символов ASCII ........................................................

73

Приложение 2. Операции языка Си..................................................................

74

Приложение 3. Возможности препроцессора..................................................

76

Приложение 4. Интегрированная среда программирования Visual C++ ......

80

1.

Вид рабочего стола консольного приложения Visual C++.....................

80

2.

Создание нового проекта ...........................................................................

81

3.

Добавление к проекту файлов с исходным кодом...................................

83

4.

Компиляция, компоновка и выполнение проекта ...................................

84

5.

Конфигурация проекта...............................................................................

86

6.

Открытие существующего проекта...........................................................

86

Приложение 5. Некоторые возможности отладчика Visual C++ ...................

87

1.

Установка точки прерывания ....................................................................

87

2.

Пошаговое выполнение программы .........................................................

89

3.

Проверка значений переменных во время выполнения программы.....

89

4.

Окна Auto и Watch 1 ...................................................................................

90

5.

Программные средства отладки................................................................

90

ЧАСТЬ 2...............................................................................................................

94

1. Системы счисления.........................................................................................

94

1.1. Общие определения.................................................................................

94

1.2. Алгоритмы перевода из одной системы счисления в другую.............

94

2. Организация памяти и структуры данных .................................................

100

3. Линейные списки и рекурсия.......................................................................

107

4. Динамическая структура данных – СТЕК.................................................

113

5. Динамическая структура данных – ОЧЕРЕДЬ ..........................................

120

6. Двунаправленный линейный список ..........................................................

125

7. Построение обратной польской записи......................................................

135

8. Нелинейные структуры данных ..................................................................

143

9. Понятие хеширования ..................................................................................

155

4

9.1. Хеш-функция и хеш-таблица................................................................

156

9.2. Схемы хеширования..............................................................................

159

10. Элементы теории погрешностей...............................................................

162

10.1. Методы реализации математических моделей.................................

163

10.2. Источники погрешностей....................................................................

164

10.3. Приближенные числа и оценка их погрешностей............................

164

10.4. Прямая задача теории погрешностей.................................................

165

10.5. Обратная задача теории погрешностей.............................................

166

10.6. Понятия устойчивости, корректности и сходимости.......................

166

11. Вычисление интегралов .............................................................................

167

11.1. Формулы численного интегрирования..............................................

168

11.2. Формула средних .................................................................................

168

11.3. Формула трапеций ...............................................................................

169

11.4. Формула Симпсона..............................................................................

169

11.5. Схема с автоматическим выбором шага по заданной точности....

170

12. Методы решения нелинейных уравнений................................................

171

12.1. Итерационные методы уточнения корней.........................................

172

12.2. Метод Ньютона....................................................................................

172

12.3. Метод секущих.....................................................................................

172

12.4. Метод Вегстейна..................................................................................

173

12.5. Метод парабол......................................................................................

173

12.6. Метод деления отрезка пополам........................................................

174

13. Решение систем линейных алгебраических уравнений..........................

177

13.1. Прямые методы решения СЛАУ........................................................

178

13.2. Метод Гаусса........................................................................................

179

13.3. Метод прогонки....................................................................................

181

13.4. Метод квадратного корня....................................................................

183

13.5. Итерационные методы решения СЛАУ.............................................

188

13.6. Метод простой итерации.....................................................................

190

14. Поиск и сортировка.....................................................................................

191

14.1. Последовательный поиск в массиве ..................................................

191

14.2. Барьерный последовательный поиск.................................................

193

14.3. Сортировка вставками (включениями)..............................................

195

14.4. Двоичный поиск...................................................................................

197

14.5. Сортировка выбором...........................................................................

200

14.6. Алгоритмы сортировки выбором.......................................................

201

14.7. Сортировка обменом ...........................................................................

204

14.8. Быстрая сортировка.............................................................................

210

15. Обработка статистических данных...........................................................

213

Используемая литература.................................................................................

219

5

Соседние файлы в папке методички.C++