Предисловие
Язык программирования С++ был разработан датским ученым Бьёрном Страуструпом в начале 90-х годов, первоначально как объектно-ориентированное расширение языка С. В настоящее время язык C++ является одним из наиболее мощных и широко распространенных языков программирования. Язык характеризуется своей универсальностью, он успешно применяется для решения разнообразных задач прикладного и системного программирования с использованием различных парадигм программирования – процедурной, объектно-ориентированной, параметрической.
Предлагаемый курс представляет собой учебно-методический материал, основным содержанием которого является лекционно-практические тематические разделы, которые следуют в порядке, соответствующем последовательности изучения структур и алгоритмов компьютерной обработки данных. В качестве программной реализации выбран язык С++ и использована среда MS Visual Studio 2010. Представленный в курсе набор лекций и упражнений покрывает основные синтаксические и семантические аспекты языка С++ в объеме вузовских программ по структурам и алгоритмам компьютерной обработки данных для специальностей 351500 Математическое обеспечение и администрирование информационных систем. Отдельные разделы могут быть использованы при обучении программированию студентов специальности 030100 Информатика и направлений подготовки 540200 Физико-математическое образование (профиль 540203 Информатика), 511900 Информационные технологии.
Данный курс или его разделы могут использоваться для изучения основ программирования на базе языка С++ и в рамках других направлений/специальностей высшего профессионального образования, а также использоваться студентами и преподавателями средних профессиональных и средних общеобразовательных учреждений. Оно может быть полезным и при самостоятельном изучении способов организации структур и алгоритмов их обработки на языке С++.
Лекционный и практический материал опирается на сформированные ранее базовые знания обучающихся по основам алгоритмизации на языке С++. Курс акцентирует внимание на знакомстве со структурированными типами данных языка С++, более глубокое изучение приемов и алгоритмов их обработки. В пособии продолжается реализация идеи процедурной парадигмы программирования, так как обучение знанию базовых алгоритмов обработки структурированных данных и построение на их основе решения различных классов задач способствует формированию определенного стиля мышления и культуры. Формируется база для перехода к изучению альтернативных парадигм современного программирования.
В состав курса вошли лекции и соответствующие им упражнения, охватывающие следующие основные разделы.
- Типы данных, перегрузка функций, рекурсия
- Указатели
- Символьные данные и строки
- Массивы
- Структуры и объединения
- Файлы
- Распределение памяти. Динамические массивы
- Динамические структуры данных
- Трудоемкость алгоритмов и рекурсия
- Алгоритмы поиска, хеширования и сжатия данных
- Алгоритмы сортировки массивов. Алгоритмы на графах
Каждая тема включает изложение теоретического материала, на основе которого построено объяснение синтаксиса и семантики основных алгоритмических конструкций или технологических особенностей программирования. При необходимости в тексте приводится справочный материал. Практическая часть представлена многочисленными примерами программных кодов с комментариями, в которых раскрываются алгоритмические подходы к решению задач. Для закрепления изученного материала и приобретения навыков программирования предусмотрена система аудиторных заданий и заданий для самостоятельной работы в соответствии с рассматриваемой тематикой.
Центральным аспектом в обучении программированию является систематичность и интенсивность самостоятельной работы обучающихся, направленной на приобретение устойчивых навыков в алгоритмизации и программировании задач. При этом осуществить дифференцированный подход в обучении можно с помощью системы индивидуальных заданий, которые в достаточном количестве приведены в материалах.
Пособие написано на основе курса лекций и лабораторно-практических занятий по дисциплинам "Программирование" и "Структуры и алгоритмы компьютерной обработки данных" со студентами факультета математики, физики и информатики ТГПУ им. Л.Н. Толстого. Для базовой подготовки студентов, обучающихся на основе материалов пособия, необходимо знание основ программирования, умение работать с массивами, строками и реализовывать метод процедурной абстракции средствами языка С++.
Авторы выражают благодарность техническому консультанту по среде MS Visual Studio 2010 ассистенту кафедры информатики и МОИ ТГПУ им. Л.Н.Толстого Титову Андрею Валерьевичу.