30 Май

СОЗДАНИЕ ОБУЧАЮЩЕЙ СИСТЕМЫ ПО КУРСУ ДИНАМИЧЕСКИХ СТРУКТУР ДАННЫХ




Номер части:
Оглавление
Содержание
Журнал
Выходные данные


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

В настоящее время есть много разных технологий. Обучение компьютерам проходят со школы, и поэтому начинающие программисты слишком быстро смогут всё освоить. Кроме интернетных статей, создаются обучающие системы, дающие сразу понять материалы. Эти темы позволяют осознавать определённые компьютерные проблемы. Одна из таких проблем — понимание, как работают память и данные в компьютере. Данная работа проведёт обзор по динамическим структурам данных и написанных для них программ, расскажет об их важности в деле современного начинающего программиста.

В данной работе рассмотрены следующие вопросы:

— Анализ предметной области;

— Определение существующих обучающих систем;

— Определение недостатков существующих обучающих систем;

— Описание динамических структур данных;

— Создание схем динамических структур;

— Программное обеспечение предметной области;

— Сравнение языков программирования и сред разработки,

— Выбор языка разработки;

— Разработка алгоритмов работы динамических структур;

— Проектирование интерфейса.

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

Статические структуры данных — они имеют фиксированный размер и, соответственно, выделяемый участок памяти. Размер участка памяти зависит не только от размерности, но и от типа используемых данных. Они объявляются и хранятся в памяти компьютера на протяжении выполнения всего блока программы, будь то функция (локальные данные) или основной блок реализации (глобальные данные). Использование огромного количества подобных данных сильно влияет на переполнение памяти, поэтому они используются лишь, когда необходимо.

Динамические структуры данных —для них можно свободно управлять памятью (выделять и высвобождать её), если на то возникает необходимость во время работы. Помимо непостоянности существования, подобные структуры характеризуются ещё и связностью. Основные операции управления структурами таковы:

  1. Захват памяти;
  2. Обработка данных;
  3. Освобождение.

Динамические структуры используются в том случае, когда необходимо грамотно распределять память и нам заранее неизвестно количество элементов структуры. Кроме того, элементы распределяются по случайным незаполненным адресам памяти, и для этого необходимо использование ссылок на адреса объектов. Каждая структура имеет, как минимум, 2 поля, причём одно из них — поле хранимых данных, другое же является ссылкой на адрес следующего элемента, что тем самым образует связанную цепочку данных. Реализация ссылок на адреса — вопрос языка программирования. Для одних языков это переменная типа указатель (Pascal, C++), для других — объект того же типа, что и сама структура (Java, C#).

  К динамическим структурам данных относятся:

  1. Ссылки (необходимая часть, связывающая структуру);
  2. Динамические массивы (можно программно задать желаемый размер);
  3. Стеки (последний добавленный элемент уйдёт первым);
  4. Очереди (последний добавленный элемент уйдёт последним);

— Однонаправленные (операции в одну сторону);

— Двунаправленные (деки, операции в обе стороны);

— Кольцевые (конец смотрит на начало, могут быть как в одну, так и в обе стороны);

  1. Связные списки (всё, как у очередей, плюс возможность работать с любой позицией элемента);

— Односвязные (вывод в одну сторону);

— Двусвязные (вывод в обе стороны);

— Кольцевые (конец смотрит на начало, могут быть как в одну, так и в обе стороны);

  1. Двоичные деревья (элементы располагаются по сравнению с имеющимися, меньше — влево, больше — вправо);
  2. Графы (набор произвольных элементов и связей);
  3. Тексты (набор строк различной длины и количества слов).

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

— работу со структурами, такими, как: стек, очередь, дек, кольцевая очередь, односвязный, двусвязный, кольцевые списки, двоичное дерево, граф и текст;

— просмотр статистики структуры, составление столбчатой диаграммы, а также отрисовка;

— интерактивная обучающая система, позволяющая дать начинающему программисту основные понятия о динамических структурах;

— тестовое испытание на знание динамических структур;

— ведение отчёта о произведённых операциях (рисунок 1).

Рисунок 1. Отчёт об операциях

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

— главного меню;

— списка выбора структур;

— разноцветных кнопок и полей, предназначенных для операций, при этом цветом окрашиваются только те кнопки, которые нужны для определённой структуры;

— поля вывода.

Рисунок 2. Первоначальное окно

Главное меню состоит из пунктов:

Файл — основные функции работы с программой;

Создать —  подготовить структуру к работе;

Сохранить отчёт — запись операций в Блокнот;

Выход — выход из программы;

Операции — все те же операции, показанные на кнопках;

Обучение — интерактивная система ознакомления с динамическими структурами;

Настройки — настройки звука и внешнего вида окна;

Звук — включение/выключение звука;

Тема — выбор картинки для заднего фона;

Помощь — отображение дополнительной информации.

Кнопки отображают все возможные действия на данный момент. Среди них:

Создать — подготовка кнопок для работы;

Уничтожить — удаление всех элементов;

Завершить — удаление всех элементов и выход в режим ожидания;

Количество — подсчёт количества имеющихся элементов (в графах также подсчитываются связи);

Статистика — отображение дополнительной информации о полученной структуре;

Кнопки добавления — добавление элемента в определённую позицию (для деревьев создана отдельная кнопка Добавить (дерево), т. к. позиции отсутствуют);

Кнопки удаления —  удаление элемента по позиции или значению;

Кнопки поиска — поиск элемента по номеру или значению (не для графов);

Кнопки сортировки — сортировка элементов по возрастанию убыванию (не работает с деревьями и графами);

Кнопки вывода — отображение структур в прямом, обратном (двунаправленные структуры) и симметричном (только деревья) порядке;

Кнопки связки, развязки  — управление связями между элементами (только графы).

Для прохождения обучения по структуре нужно перейти по направлению: Обучение/(выбираемая структура). Данное окно повторяет компоненты главного окна плюс мы можем наблюдать за экраном и выполнять предлагаемые действия.

Чтобы пройти испытание, необходимо перейти по направлению: Обучение/Испытание. Откроется окно, в котором Вам надо ответить на вопросы, после чего вы сможете получить определённый ранг, зависящий от количества правильно данных Вами ответов (рисунок 3). Ранг рассчитывается по следующим критериям:

F E D C B A AA S SS X
(0..15) (16..23) (24..31) (32..39) (40..47) (48..55) (56..63) (64..71) (72..79) (80)

Рисунок 3. Тестовое испытание.

Работа с текстом. Работа с текстом не похожа на работу со всеми остальными структурами. При нажатии кнопки Создать откроется новое окно с совершенно другим набором кнопок и двумя полями, среди которых поле обработки текста (слева) и буферное поле (справа) (рисунок 4).

Рисунок 4. Окно работы с текстом

Согласуясь с рисунком 4, все кнопки цветами поделены на определённые группы операций. Перечислим их:

Основные операции: открыть файл, сохранить файл, завершить работу. При этом не обязательно работать с каким-то определённым текстовым файлом, можно печатать собственный, с клавиатуры;

Операции форматирования: убрать лишние пробелы, отсортировать все слова текста в прямом и обратном алфавитных порядках (учитываются только кириллица и латиница);

Операции со словами: найти длиннейшее слово, найти кратчайшее слово и определение длины слова, выделенного левой мышкой.

Буфер обмена: перетаскивать выделенный текст;

Буферное поле: добавить выделенный текст в буфер, вставить весь текст из буфера, очистить поле буфера;

Операции подсчёта количества: подсчитываются количество букв, количество слов и количество строк в тексте (подсчёт строк ведётся по наличию символов новой строки с помощью клавиши Enter).

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

СПИСОК ИСПОЛЬЗОВАННОЙ ИНФОРМАЦИИ

  1. Орлов С.А. Технологии разработки программного обеспечения. Учебник для вузов,2006.
  2. Шилдт Г. Системное программное обеспечение Питер, 2000.
  3. Буч Г. Проектирование баз данных информационных систем, 2008.
  4. Рубашкин Д.Д. Объектно-ориентированный анализ и проектирование с примерами приложений на C++, 2003.
  5. Культин Н.Б. Основы программирования в Delphi. – 2-е изд., перераб. и доп., 2009.
    СОЗДАНИЕ ОБУЧАЮЩЕЙ СИСТЕМЫ ПО КУРСУ ДИНАМИЧЕСКИХ СТРУКТУР ДАННЫХ
    Данная статья посвящена разработке концептуальной модели и реализации на ее основе программного обеспечения по курсу динамических структур данных.
    Written by: Рагимова Назиля Али кызы
    Published by: БАСАРАНОВИЧ ЕКАТЕРИНА
    Date Published: 06/06/2017
    Edition: ЕВРАЗИЙСКИЙ СОЮЗ УЧЕНЫХ_ 30.05.2017_05(38)
    Available in: Ebook