Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы алгоритмизации и программирования .Язык си.pdf
Скачиваний:
104
Добавлен:
16.03.2016
Размер:
4.49 Mб
Скачать

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

 

 

 

 

 

 

 

 

 

 

 

 

Р

 

 

 

 

 

 

 

 

 

Г

И

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

 

 

 

 

 

ЯЗЫК СИ

Б

У

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а

 

 

 

 

 

 

 

 

 

 

к

 

 

 

 

 

 

 

 

 

 

ве

 

 

 

 

 

 

 

 

 

 

т

 

 

 

 

 

 

 

Допущено Министерс

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

 

 

 

 

в качес

 

учебного пособия

 

 

 

 

 

 

по

 

 

 

 

 

 

 

 

 

для студентов учреждений, обеспечивающих получение

 

высшего образования

с ециальностям «Искусственный интеллект»,

 

«Программн е

бес ечение информационных технологий»,

 

 

л

 

 

 

 

 

 

 

 

 

 

 

«Автомат з рованные системы обработки информации»,

 

 

«Э ектронные вычислительные средства»,

 

 

 

б

 

 

 

 

 

 

 

 

 

 

«Инженерно-психоиог ческое обеспечение информационных технологий»

и

 

 

 

 

 

 

 

 

 

 

 

Б

 

 

 

 

 

 

 

 

 

 

 

 

Минск БГУИР 2007

УДК 621.3 (075.8) ББК 22.193 я 73

Б 28

Р е ц е н з е н т ы :

зав. кафедрой алгоритмики и дискретной математики БГУ, д-р техн. наук, проф. В. М. Котов;

начальник кафедры систем автоматического управления Военной академии

 

 

 

 

 

 

 

 

 

 

Р

 

Республики Беларусь, д-р техн. наук, проф. В. А. Куренев

 

 

 

 

 

 

 

 

 

И

 

 

 

 

 

 

 

 

У

 

 

 

 

 

 

 

 

Г

 

 

 

Батура, М. П.

 

 

 

 

Б

 

 

 

 

 

 

 

 

 

 

 

 

Б 28

Основы алгоритмизации и прогр ммирования. Язык Си : учеб.

 

 

 

 

 

ко

 

 

 

 

 

пособие / М. П. Батура, В. Л. Бусь

, А. Г. Корбит, Т. М. Кривоносова. –

 

Минск : БГУИР, 2007. – 240 с. : ил.

 

 

 

 

 

 

 

е

 

 

 

 

 

 

ISBN 978-985-488-192-8 а

 

 

 

 

 

 

т

 

на

основе курса лекций

по дисциплине

 

Материал пособия составл н

 

«Основы алгори мизации и программирования», читаемого авторами в

 

Белорусском государс венном университете информатики и радиоэлектроники на

 

факультете инф рмаци нных

 

ехнологий и управления.

 

 

 

 

ние

п с бия

охватывает темы, посвященные основным

 

Содержа

 

конструкциям языка Си. Приведенные примеры, иллюстрирующие основные

 

л

 

проверку в качестве консольных приложений среды

 

возможности языкаошли, пр

 

программ рован я Visual C++ 6.0.

 

 

 

 

 

 

б

 

частью

учебного

пособия являются

индивидуальные

 

Неотъем емой

задания д я практических и лабораторных работ. В приложениях рассматриваются некоторые элементы языка С++, приведены дополнительные

задан

я.

Б

 

и

УДК 621.3 (075.8)

 

ББК 22.193 я 73

ISBN 978-985-488-192-8

ã УО «Белорусский государственный

 

университет информатики

 

и радиоэлектроники», 2007

2

 

 

 

 

СОДЕРЖАНИЕ

 

 

 

 

 

ПРЕДИСЛОВИЕ ..................................................................................................

 

 

 

 

 

 

 

 

 

 

8

ГЛАВА 1. Введение в алгоритмы

.....................................................................

 

 

 

 

 

 

10

1.1. Этапы решения задач на ЭВМ ................................................................

 

 

 

 

 

 

10

1.2. Понятие алгоритма ..................................................................................

 

 

 

 

 

 

 

 

10

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

 

 

 

 

 

 

 

 

11

1.4. Сложность алгоритма

..............................................................................

 

 

 

 

 

 

 

11

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

 

 

 

 

 

 

12

1.6. Способы реализации алгоритмов............................................................

 

 

 

 

 

 

14

1.7. Пример простейшего линейного процесса

.............................................

 

 

 

 

15

 

 

 

 

 

 

 

 

 

И

 

1.7. Пример циклического процесса..............................................................

 

 

 

 

 

 

16

ГЛАВА 2. Базовые средства языка Си..............................................................

 

 

 

 

 

Р17

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

 

 

 

 

 

 

 

 

17

 

 

 

 

 

 

 

Г

 

 

 

2.2. Лексемы....................................................................................................

 

 

 

 

 

 

 

 

 

 

17

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

 

 

 

 

 

18

 

 

 

 

 

 

Б

 

 

 

 

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

 

 

 

 

 

 

У

 

19

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

 

 

 

 

 

 

 

19

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

 

 

 

 

 

 

 

20

 

 

 

 

 

а

 

 

 

 

 

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

 

 

 

 

 

 

 

 

21

2.8. Данные целого типа (integer) ..................................................................

 

 

 

 

 

 

22

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

 

 

 

 

 

 

22

 

 

 

 

е

 

 

 

 

 

 

 

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

 

 

 

 

23

2.11. Использование модификаторовкпри декларации производных типов

 

 

 

 

т

 

 

 

 

 

 

 

данных .............................................................................................................

 

 

 

 

 

 

 

 

 

 

24

ГЛАВА 3. Константы в программах .................................................................

 

 

 

 

 

 

25

 

 

но

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

25

 

ций

 

 

 

 

 

 

 

 

 

3.2. Константы веществен го

ипа ..............................................................

 

 

 

 

 

 

26

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

 

 

 

 

 

 

 

26

л

 

 

 

 

 

 

 

 

 

 

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

..............................................................................

 

 

 

 

 

 

 

27

б

 

 

 

 

 

 

 

 

 

 

 

ГЛАВА 4. О зор опера ................................................................................

 

 

 

 

 

 

 

 

27

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

 

 

 

 

 

 

 

27

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

 

 

 

 

 

 

 

28

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

 

 

 

 

 

 

 

29

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

 

 

 

 

29

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

..............

30

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

 

 

 

 

 

 

 

31

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

 

 

 

 

 

 

 

 

31

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

 

 

 

 

 

 

 

 

32

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

......................

 

33

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

 

 

 

 

 

 

 

35

ГЛАВА 5. Обзор базовых инструкций языка Си

.............................................

 

 

 

 

35

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

 

 

 

 

 

 

35

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

 

 

 

 

 

36

 

 

 

 

 

 

 

 

 

 

 

3

5.3. Функции вывода данных на дисплей......................................................

 

 

 

 

 

36

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

...................................................................

 

 

 

 

 

 

38

Советы по программированию

...................................................................

 

 

 

 

 

 

40

ЗАДАНИЕ 1. Составление линейных алгоритмов

...........................................

 

 

 

40

Первый уровень сложности ........................................................................

 

 

 

 

 

 

 

40

Второй уровень сложности .........................................................................

 

 

 

 

 

 

 

42

ГЛАВА 6. Составление разветвляющихся алгоритмов ...................................

 

 

 

44

6.1. Краткая характеристика операторов языка Си.......................................

 

 

 

44

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

 

 

 

 

 

 

Р

44

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

 

 

 

 

 

 

47

 

 

 

 

 

 

 

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

 

И

48

ГЛАВА 7. Составление циклических алгоритмов

 

 

52

 

 

 

 

7.1. Понятие циклического кода ....................................................................

 

 

 

 

У

 

52

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

 

 

 

 

52

 

 

 

 

 

 

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

Г

 

 

54

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

 

 

55

 

 

 

 

 

 

 

Б

 

 

 

58

ГЛАВА 8. Операторы и функции передачи управления .................................

 

 

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

 

 

 

 

 

58

8.2. Операторы continue, break и return .........................................................

 

 

 

 

 

58

8.3. Функции exit и abort ................................................................................

к

 

 

 

 

 

59

Советы по программированию

...................................................................

 

 

 

 

 

 

59

ЗАДАНИЕ 2. Разветвляющиеся алгоритмы .....................................................

 

 

 

 

 

60

Первый уровень сложности ........................................................................

 

а

 

 

 

 

60

Второй уровень сложности .........................................................................

 

 

 

 

 

 

 

61

 

 

 

 

т

 

 

 

 

 

 

 

62

ЗАДАНИЕ 3. Циклические алгоритмы.............................................................

 

 

 

 

 

 

Первый уровень сложнос ие........................................................................

 

 

 

 

 

 

62

 

 

 

ло

 

 

 

 

 

 

 

63

Второй уровень с жнос и .........................................................................

 

 

 

 

 

 

 

ГЛАВА 9. Указате

..........................................................................................

 

 

 

 

 

 

 

 

64

 

 

ли

 

 

 

 

 

 

 

 

64

9.1. Определен е указателей..........................................................................

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

67

9.3. Инициа зац я указателей......................................................................

 

 

 

 

 

 

 

67

 

б

 

 

 

 

 

 

 

 

 

 

69

9.4. Операции над указателями......................................................................

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

 

ГЛАВА 10. лМассивы..........................................................................................

 

 

 

 

 

 

 

 

71

10.1. Понятие массива ....................................................................................

 

 

 

 

 

 

 

 

71

Б

 

 

 

 

 

 

 

 

 

 

 

72

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

 

 

 

 

 

 

 

10.3. Связь указателей и массивов.................................................................

 

 

 

 

 

 

72

10.4. Строки как одномерные массивы данных типа ...........................char

 

 

74

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

 

 

 

 

 

 

 

77

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

 

 

 

 

 

 

 

77

10.7. Адресная функция..................................................................................

 

 

 

 

 

 

 

79

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

 

 

 

 

 

81

10.9. Библиотечные функции .........................................................................

 

 

 

 

 

 

 

81

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

 

82

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

 

83

ГЛАВА 11. Функции пользователя

...................................................................

 

 

 

 

 

 

84

4

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

85

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

 

 

 

 

 

 

 

 

 

86

11.3. Передача аргументов в функцию..........................................................

 

 

 

 

 

 

88

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

 

 

 

 

 

 

 

 

 

89

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

 

 

 

 

 

 

 

 

89

11.6. Рекурсивные функции ...........................................................................

 

 

 

 

 

 

 

 

93

11.7. Параметры командной строки функции main

......................................

 

 

 

 

96

ГЛАВА 12. Классы памяти и область действия объектов ...............................

 

 

 

 

97

12.1. Классы памяти объектов в языке Cи.....................................................

 

 

 

 

 

 

97

 

 

 

 

 

 

 

 

 

 

 

 

Р

 

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

................................................................

 

 

 

 

 

 

98

12.3. Статические и внешние переменные ....................................................

 

 

 

 

 

 

99

 

 

 

 

 

 

 

 

 

 

 

И

 

 

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

 

 

 

 

 

101

Советы по программированию.................................................................

 

 

 

 

 

 

104

 

 

 

 

 

 

 

 

 

 

У

 

 

 

ЗАДАНИЕ 4. Обработка массивов..................................................................

 

 

 

 

 

 

105

Первый уровень сложности ......................................................................

 

 

 

 

 

 

 

105

 

 

 

 

 

 

 

 

 

Г

 

 

 

 

Второй уровень сложности.......................................................................

 

 

 

 

 

 

 

106

 

 

 

 

 

 

 

 

Б

 

 

 

 

 

ЗАДАНИЕ 5. Функции пользователя..............................................................

 

 

 

 

 

 

107

Первый уровень сложности ......................................................................

 

 

 

 

 

 

 

107

Второй уровень сложности.......................................................................

 

 

 

 

 

 

 

107

ГЛАВА 13. Структуры, объединения ...................................., перечисления

 

 

 

 

108

 

 

 

 

 

 

 

к

 

 

 

 

 

 

 

13.1. Структуры

............................................................................................

 

 

 

 

 

 

 

 

 

108

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

 

 

 

 

 

109

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

 

 

 

 

110

13.4. Обращение к полям структур..............................................................

 

 

 

 

 

 

111

 

 

 

 

 

т

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

112

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

 

ме

 

 

 

 

 

113

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

 

 

 

114

 

 

 

и

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

114

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

 

 

 

 

 

 

 

 

 

115

 

 

поля

 

 

 

 

 

 

 

 

 

 

 

13.10. Битовые

......................................................................................

о

 

 

 

 

 

 

 

117

ГЛАВА 14. Фай ы в языке Си ........................................................................

 

 

 

 

 

 

 

118

 

б

 

 

 

 

 

 

 

 

 

 

 

 

14.1. Открытие фай а ...................................................................................

 

 

 

 

 

 

 

 

118

пи

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

120

14.3. За сь – чтение информации ..............................................................

 

 

 

 

 

 

121

Б

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14.4. Поз ционирование в файле.................................................................

 

 

 

 

 

 

122

14.5. Дополнительные файловые функции .................................................

 

 

 

 

 

123

Советы по программированию.................................................................

 

 

 

 

 

 

124

ЗАДАНИЕ 6. Создание и обработка структур ...............................................

 

 

 

 

 

125

Первый уровень сложности ......................................................................

 

 

 

 

 

 

 

125

Второй уровень сложности.......................................................................

 

 

 

 

 

 

 

126

ЗАДАНИЕ 7. Создание и обработка файлов ..................................................

 

 

 

 

 

126

Первый уровень сложности ......................................................................

 

 

 

 

 

 

 

126

Второй уровень сложности.......................................................................

 

 

 

 

 

 

 

127

ГЛАВА 15. Динамические структуры ...............................................данных

 

 

 

 

 

128

15.1. Линейные списки .................................................................................

 

 

 

 

 

 

 

 

128

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

15.2. Структура данных СТЕК .....................................................................

 

 

 

 

 

 

 

129

15.2.1. Алгоритм формирования стека ....................................................

 

 

 

 

 

130

15.2.2. Алгоритм извлечения элемента из стека......................................

 

 

 

132

15.2.3. Просмотр стека ..............................................................................

 

 

 

 

 

 

 

132

15.2.4. Алгоритм освобождения памяти, занятой стеком ......................

 

133

15.2.5. Алгоритм проверки правильности расстановки скобок

..............

133

15.3. Структура данных ОЧЕРЕДЬ..............................................................

 

 

 

 

 

 

134

15.3.1. Формирование очереди

.................................................................

 

 

 

 

 

 

135

15.3.2. Алгоритм удаления первого элемента из очереди.......................

Р

137

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

 

 

 

 

137

 

 

 

 

 

15.4.1. Формирование первого элемента..................................................

 

 

 

И

138

15.4.2. Добавление элементов в конец списка

.........................................

 

 

 

138

15.4.3. Алгоритм просмотра списка .........................................................

 

 

У

 

139

15.4.4. Алгоритм поиска элемента в списке по ............................ключу

 

 

139

15.4.5. Алгоритм удаления элемента в списке ........................по ключу

 

 

140

 

 

 

 

 

 

Г

 

 

 

15.4.6. Алгоритм вставки элемента в список после элемента

 

 

с указанным ключом

 

 

 

Б

 

 

 

141

 

 

 

 

 

 

 

 

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

 

 

 

 

 

142

15.5.1. Бинарные деревья ..........................................................................

 

 

 

 

 

 

 

143

15.5.2. Основные алгоритмы работы с бин рным .....................деревом

 

144

15.5.3. Формирование дерева....................................................................

к

 

 

 

 

 

144

15.5.4. Вставка нового элемента ...............................................................

а

 

 

 

 

145

15.5.5. Удаление узла

................................................................................

 

 

 

 

 

146

15.5.6. Алгоритмы обхода д р ва .............................................................

 

 

 

 

 

 

149

 

 

т

 

 

 

 

 

 

 

150

15.5.7. Функция просмо ра .......................................................................

 

 

 

 

 

 

 

15.5.8. Освобождение памяеи ...................................................................

 

 

 

 

 

151

 

о

 

 

 

 

 

 

 

151

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

 

 

 

 

 

ори

 

 

 

 

 

 

 

 

152

15.6.1. Алг тм, исп льзующий дерево.................................................

 

 

 

 

 

15.6.2. Алгоритм, сп льзующий стек.....................................................

 

 

 

 

 

153

15.6.3. Пример реализации........................................................................

 

 

 

 

 

 

 

154

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

 

 

 

 

 

 

 

157

 

б

 

 

 

 

 

 

 

 

157

15.7.1. Хеш-таб ица и хеш-функции........................................................

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

15.7.2. Примерылхеш-функций

.................................................................

 

 

 

 

 

 

158

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

 

 

 

 

 

 

 

160

Б

 

 

 

 

 

 

 

 

 

161

15.7.4. Примеры реализации схем хеширования .....................................

 

 

 

ЗАДАНИЕ 8. Обработка списков....................................................................

 

 

 

 

 

 

 

163

Вариант 1. Однонаправленные списки.....................................................

 

 

 

 

 

163

Вариант 2. Двунаправленные списки.......................................................

 

 

 

 

 

164

ЗАДАНИЕ 9. Деревья и польская запись........................................................

 

 

 

 

 

165

Вариант 1. Создание и обработка структур типа .....................«дерево»

 

165

Вариант 2. Создание и использование польской .........................записи

 

 

166

ГЛАВА 16. Переход к ООП.............................................................................

 

 

 

 

 

 

 

168

16.1. Потоковый ввод-вывод........................................................................

 

 

 

 

 

 

 

168

16.2. Управление выводом ...........................................................................

 

 

 

 

 

 

 

168

16.3. Проблема ввода-вывода кириллицы в среде ...................Visual C++

 

171

6

 

 

 

 

 

 

 

 

 

 

16.4. Операции new и delete..........................................................................

 

 

 

 

 

 

 

173

16.5. Дополнительные возможности при работе с пользовательскими

 

функциями

.....................................................................................................

 

 

 

 

 

 

 

 

 

 

174

16.6. Шаблоны ...............................................................................функций

 

 

 

 

 

 

 

 

178

Советы по .................................................................программированию

 

 

 

 

 

 

 

182

ЗАДАНИЕ 10. ...............................................................Перегрузка функций

 

 

 

 

 

 

 

183

Первый уровень ......................................................................сложности

 

 

 

 

 

 

 

183

Второй уровень .......................................................................сложности

 

 

 

 

 

 

 

184

ПРИЛОЖЕНИЕ .................................................1. Таблицы символов ASCII

 

 

 

 

 

186

 

 

 

 

 

 

 

 

 

 

 

 

Р

ПРИЛОЖЕНИЕ ..........................................................2. Операции языка Си

 

 

 

 

 

 

187

ПРИЛОЖЕНИЕ ...........................................3. Возможности препроцессора

 

 

 

 

189

 

 

 

 

 

 

 

 

 

 

 

И

 

ПРИЛОЖЕНИЕ 4. Интегрированная среда программирования Visual C++ 193

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

 

200

 

 

 

 

 

 

 

 

 

 

У

 

 

ПРИЛОЖЕНИЕ .......6. Некоторые возможности графической подсистемы

206

6.1. Основные .................................................................................понятия

 

 

 

 

 

 

 

 

206

 

 

 

 

 

 

 

 

 

Г

 

 

 

6.2. Контекст ..............................................................................устройства

 

 

 

 

 

 

 

 

206

 

 

 

 

 

 

 

 

Б

 

 

 

 

6.3. Примитивы .....................................................................................GDI

 

 

 

 

 

 

 

 

 

206

6.4. Пример ...........................................................................вывода текста

 

 

 

 

 

 

 

207

6.5. Получение ........................................описателя контекста устройства

 

 

 

 

218

6.6. Основные ..............................инструменты графической подсистемы

 

 

 

219

 

 

 

 

 

 

к

 

 

 

 

 

 

6.7. Закрашивание .............................................................................пустот

 

 

 

 

 

 

 

 

225

6.8. Рисование ....................................................................линий и кривых

 

 

 

 

 

 

 

225

6.9. Пример ..........................................изображения графика фун

ации sin

 

 

 

 

227

6.10. Рисование ...............................................................замкнутых фигур

 

 

 

 

 

 

 

229

 

 

 

 

 

т

 

 

 

 

 

 

 

 

6.11. Функция ...............Polygon и режим закрашивания многоугольника

 

231

6.12. Пример ................................................................отображения линийе

 

 

 

 

 

 

231

6.13. Управление ....................................облас ями вывода и отсечением

 

 

 

 

232

 

 

 

и

 

 

 

 

 

 

 

 

 

6.14. Растровая ................................................................................граф

ка

 

 

 

 

 

 

 

 

235

ЗАДАНИЕ 11. .....................................Создан е графических изображений

 

 

 

 

238

 

 

л

 

 

 

 

 

 

 

 

 

 

ЛИТЕРАТУРА..................................................................................................

 

о

 

 

 

 

 

 

 

240

 

б

 

 

 

 

 

 

 

 

 

 

 

и

 

 

 

 

 

 

 

 

 

 

 

 

Б

 

 

 

 

 

 

 

 

 

 

 

 

 

7