Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
???????4-???_??????? ?_?????_16_11_14.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.11 Mб
Скачать

МГТУ им. Н.Э. Баумана

Факультет «Информатика и системы управления»

Кафедра «Программное обеспечение ЭВМ и информационные технологии»

 

 

 

 

Ю.Е. Алексеев, а.В. Куров

 

 

 

 

 

Практикум по программированию на языке C в среде VS C++

Часть 4

 

 

Электронное учебное издание

 

 

Учебное пособие

 по дисциплине «Информатика»

 

 

 

 

 

 

 

 

 

 

 

Москва

(С) 2014 МГТУ им. Н.Э. БАУМАНА

2014

УДК 681.3.06(075)

 

Рецензенты к.т.н., доцент С.М.Авдеева, к.т.н., доцент Т.Н.Ничушкина

 

Алексеев Ю.Е.,  Куров А.В.

Практикум по программированию на языке C в среде VS C++. Часть 4: Учеб. пособие. –М.: МГТУ им. Н.Э.Баумана, 2014.- с.

В четвертой части пособия рассматривается работа со следующими типами и структурами данных: символьным, строковым, структурным, файловым и указателями.

Для каждого рассматриваемого типа приводится его определение, указываются отличительные особенности, рассматриваются операции, которые можно выполнять с данными каждого типа, а также приводятся сведения о стандартных функциях обработки этих данных.

Изложение материала сопровождается примерами программ, позволяющих лучше уяснить основные особенности работы с каждым конкретным типом данных. Большое внимание уделено работе с указателями, так как они играют особую роль в языке C. Рассмотрено использование указателей при работе с динамическими переменными, а также для организации динамических структур данных: списков и деревьев.

Пособие ориентировано на среду программирования VS C++ и содержит алгоритмы решения практических задач. Представлены полные комплекты заданий (не менее 25 вариантов), имеющих разнообразный характер, но одинаковый уровень сложности.

Материал пособия авторы используют при проведении практических занятий в МГТУ им.Н.Э. Баумана.

Для студентов первого курса машино- и приборостроительных специальностей. Может быть полезно преподавателям как сборник заданий при проведении лабораторных работ.

 

Рекомендовано НМС МГТУ им.Н.Э. Баумана

 

Алексеев Юрий Евтихович Куров Андрей Владимирович

 

Практикум по программированию на языке C в среде VS C++. Часть 4

Москва

(С) 2014 МГТУ им. Н.Э. БАУМАНА 

Оглавление

8. СИМВОЛЬНЫЙ ТИП ДАННЫХ 6

8.1 Общие сведения и библиотечные функции 6

8.2 Примеры программ обработки символьных данных 11

8.3 Задания на обработку символьных матриц 17

9. СТРОКИ 23

9.1 Общие сведения и библиотечные функции 23

9.2 Примеры программ обработки строк (массивова символов) 32

9.3 Задания на обработку строк 42

10. ТИПЫ ДАННЫХ СТРУКТУРА И ОБЪЕДИНЕНИЕ 46

10.1 Общие сведения о структурах 46

10.2 Примеры программ обработки структур 48

10.3 Задания на обработку структур 55

10.4 Объединения 59

10.5 Примеры программ обработки объединений 60

11. ФАЙЛЫ 65

11.1 Основные сведения о файлах 65

11.2 Библиотечные функции для работы с файлами 66

11.3 Примеры программ обработки текстовых файлов 71

11.4 Задания на обработку текстовых файлов. 78

11.5 Примеры программ обработки бинарных файлов 81

11.6 Задания на бинарные файлы. 92

12. ТИП ДАННЫХ УКАЗАТЕЛЬ 99

12.1 Общие сведения 99

Объявления и присваивания 99

Операции с указателями 101

Приоритеты операций при работе с указателями. 104

Взаимосвязь массивов и указателей 105

12.2 Динамические переменные и массивы 105

Динамические переменные 105

Динамические массивы 106

Двумерные динамические массивы 108

Доступ к элементам динамической матрицы 112

Библиотечные функции С для работы с динамическими переменными и массивами 114

Передача в функции динамических массивов 117

13 ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ 121

13.1 Списки 121

Линейный список 121

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

Пример программы работы с двунаправленным списком 129

13.2 Задания на обработку списков. 134

13.3 Деревья бинарные 139

Структура бинарного дерева 140

Примеры работ с бинарным деревом 142

Список литературы 147

Алфавитный указатель 147

Вопросы для самопроверки 149

Введение

Данное пособие представляет собой четвертую часть пособия, посвященного изложению основ программирования и решения типовых инженерных задач на языке C в среде VS C++ . В данной части рассматриваются нечисловые и структурированные типы данных: символы, строки, структуры, указатели, файлы. Современный специалист при решении практических задач сталкивается с обработкой не только числовых данных, поэтому он должен владеть навыками обработки данных и других типов, представленных в используемом языке программирования.

В первом разделе данной части пособия рассматривается символьный тип данных. Авторы знакомят читателя с особенностями обработки символов в языке C, которые состоят в частности в том, что символьные данные можно обрабатывать так же, как целые, поскольку символы представляются в памяти ЭВМ своими кодами. Приводятся сведения о стандартных функциях обработки символов.

Второй раздел посвящен рассмотрению строк. Отмечается отсутствие в языке строкового типа данных и обращается внимание на то, что строка символов является одномерных символьным массивом, оканчивающимся нулевым символом. Рассматриваются функции ввода строк и особенности их использования. Отдельно рассматриваются проблемы, возникающие при вводе и выводе строк, содержащих в своем составе символы кириллицы. Авторы предлагают функции перекодировки, позволяющие справиться с этими затруднениями. Также приводятся сведения о стандартных функциях обработки строк.

В третьем разделе рассматриваются вопросы обработки структур. Приводятся правила объявления структур и обращения к полям структур. Обращено внимание на возможность передачи в функции массивов в качестве полей структур, что может помочь начинающим программистам избежать ошибок при передаче массивов в подпрограммы. Рассматривается частный случай структур – объединения, позволяющие экономить память в тех случаях, когда разные структуры в качестве значений одного поля должны иметь данные разных типов.

В четвертом разделе авторы подробно рассматривают работу с указателями, поскольку они играют особую роль в языке C. Приводятся правила и примеры объявления указателей на разные объекты языка – константы, переменные, функции, а также на переменные различных типов. Рассмотрены операции, выполняемые с указателями. Обращается внимание на взаимосвязь указателей и массивов в языке C. Подробно рассмотрены вопросы работы с динамическими данными, доступ к которым осуществляется с использованием указателей. Объясняются особенности выделения памяти и работы с динамическими переменными, одномерными и двумерными массивами, а также передачи этих данных в функции. Приводятся сведения о стандартных функциях для работы с динамической памятью, рассмотрено их использование в конкретных программах. Авторы также рассмотрели вопросы организации динамических структур данных, в частности однонаправленных и двунаправленных списков. Рассмотрен перечень операций, выполняемых со списками, приведены примеры программ, в которых каждая операция реализована в виде отдельной функции. Раздел завершается рассмотрением особой разновидности динамических структур – бинарных деревьев, играющих важную роль в программировании.

В заключительном разделе пособия рассматривается обработка файлов. Авторы знакомят читателя с особенностями открытия (подготовки к работе) файлов, приводят описание стандартных функций, обеспечивающих выполнение необходимых операций при работе с файлами. Приводятся примеры программ обработки файлов как в режиме последовательного доступа (для текстовых и бинарных файлов), так и в режиме прямого доступа для бинарных файлов.

Как и в предыдущих частях, в данном пособии краткое изложение теоретического материала сопровождается достаточным количеством примеров, что должно позволить студенту за ограниченное время познакомиться с новыми для него типами данных и освоить основные правила обработки этих данных.

Для закрепления изучаемого материала и приобретению необходимого опыта разработки программ обработки данных нечисловых и структурированных типов авторами предлагаются по каждой теме комплекты индивидуальных заданий, выполнение которых послужит приобретению навыков и умений при решении рассматриваемых задач.

Задания имеют индивидуальный характер, могут использоваться при проведении лабораторных работ, подготовке к рубежным контролям знаний, а также в качестве заданий при проведении контрольных мероприятий.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]