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

Г.В. Ваныкина, Т.О. Сундукова

ПРОГРАММИРОВАНИЕ

НА ЯЗЫКЕ С++

Часть 3. Программирование структур данных

Тула – 2010

ГОУ ВПО Тульский государственный педагогический университет имени Л.Н. Толстого

Кафедра информатики и методики обучения информатике

Г.В. Ваныкина, Т.О. Сундукова

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С++

Часть 3. Программирование структур данных

Лабораторный практикум

Тула - 2010

ББК 32.973.26

УДК 004.438

Ваныкина Г.В., Сундукова Т.О.

Программирование на языке С++. Часть 3. Программирование структур данных / Г.В. Ваныкина, Т.О. Сундукова; Тулгоспедуниверситет. – Тула, Папирус, 2010. – 168 с.

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

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

Для студентов специальностей 351500 Математическое обеспечение и администрирование информационных систем, 030100 Информатика, направлений подготовки 540200 Физико-математическое образование (профиль 540203 Информатика) и 511900 Информационные технологии. Может быть использовано студентами и преподавателями вузов, средних профессиональных и средних общеобразовательных учреждений.

УДК 004.438

Рецензенты:

Есаян А.Р. – доктор педагогических наук, профессор кафедры информатики и методики обучения информатике ТГПУ им. Л.Н. Толстого;

Баженова И.Ю. – кандидат физико-математических наук, доцент факультета ВМК МГУ им. М.В. Ломоносова

Утверждено

редакционно-издательским

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

 Авторы, 2010

Содержание

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

Структуры 6

Указатели на структуры. Структуры и функции 17

Объединения (смеси) 26

Битовые поля 35

Стандартные файлы и функции по работе с ними 41

Обработка файлов в потоковом режиме 51

Прямой доступ к данным файла 55

Работа с элементами файлов 64

Решение задач на обработку файлов 71

Распределение памяти. Динамическое выделение памяти 82

Одномерные динамические массивы 89

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

Решение задач на динамические массивы 104

Динамические структуры данных 114

Однонаправленные списки 121

Двунаправленные списки 129

Стеки и очереди 140

Бинарные деревья 148

ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ 154

ЛИТЕРАТУРА 168

Предисловие

Язык программирования С++ был разработан датским ученым Бьёрном Страуструпом в начале 90-х годов, первоначально как объектно-ориентированное расширение языка С. В настоящее время язык C++ является одним из наиболее мощных и широко распространенных языков программирования. Язык характеризуется своей универсальностью, он успешно применяется для решения разнообразных задач прикладного и системного программирования с использованием различных парадигм программирования – процедурной, объектно-ориентированной, параметрической.

Предлагаемое пособие представляет собой учебно-методический материал, основным содержанием которого является описание системы лабораторных работ, следующих в порядке, соответствующем последовательности обучения программированию на С++.

Представленный в пособии набор лабораторных работ покрывает основные синтаксические и семантические аспекты языка С++ в объеме вузовских программ по основам программирования для специальностей 351500 Математическое обеспечение и администрирование информационных систем, 030100 Информатика и направлений подготовки 540200 Физико-математическое образование (профиль 540203 Информатика), 511900 Информационные технологии.

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

Третья часть пособия опирается на сформированные ранее базовые знания обучающихся по основным алгоритмическим конструкциям и базовым типам данных языка С++, умения программирвать задачи на обработку массивов и строковых данных методом процедурной абстракции. Часть «Программирование структур данных» акцентирует внимание на организацию работы с динамической памятью, глубокое изучение структурированных типов данных языка С++, приемов и алгоритмов их обработки. В пособии продолжается реализация идеи процедурной парадигмы программирования, так как обучение приемам работы с динамической памятью и знанию базовых алгоритмов обработки структур данных, построение на их основе решения различных классов прикладных задач способствует формированию определенного стиля мышления и культуры. Формируется база для перехода к изучению альтернативных парадигм современного программирования.

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

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

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

Пособие написано на основе курса лекций и лабораторно-практических занятий по программированию со студентами факультета математики, физики и информатики ТГПУ им. Л.Н. Толстого. Для базовой подготовки студентов, обучающихся на основе материалов пособия, необходимо знание основ программирования, умение работать с массивами, строками и реализовывать метод процедурной абстракции средствами языка С++.