Файл: Способы организации данных: пользовательский тип данных - структура ( Понятие о программировании и структурировании данных).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.03.2023

Просмотров: 99

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ВВЕДЕНИЕ

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

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

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

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

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

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

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

Объект курсовой работы – структурированные типы данных.

Предметом исследования являются структуры данных.

Цель исследования – рассмотреть главные понятия и операции со структурами.

Согласно указанной цели, выделим основные задачи, которые выдвигаются в рассматриваемой работе:

– рассмотреть основные определения о структурировании данных с точки зрения программирования;

– выполнить анализ принципов обработки структур;

– дать характеристику нелинейным структурам;

– рассмотреть односвязные динамические списки в С++;

– выполнить реализацию основных алгоритмов по работе со структурами на практике.

Исследованиями в данном направлении долгое время занимались ученые: Бочков С. Т.[2], Липпман Т. К. [8], Страуструп П. [13]


1. ПОНЯТИЕ О ПРОГРАММИРОВАНИИ И СТРУКТУРИРОВАНИИ ДАННЫХ

1.1.Определение, понятия и классификация языков программирования

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

Стоит заметить, что также они могут различаться, по близости к пониманию для обычного человека, по выразительным способностям и простоте. [3]

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

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

Практически все современные программы, написанные на ЯП высокого уровня вводятся в компьютер при применении обычного текста, а сам ПК, зная, о свойствах написанного кода программы преобразует его в машинный код. [5]

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

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

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

Для решения всех основных задач в направлении коммерции со временем был специально создан язык, который имел название КОБОЛ, для обработки текстовых документов использовался ПРОЛОГ, при реализации процесса обучения студентов навыкам программирования были придуманы ЛИСП, БЕЙСИК, при выполнении математических вычислений – ФОРТРАН, в облегчении процесса программирования для аппаратной части ПК – язык С++. [10]

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

В то же время, активно может развиваться направление машинных специальных языков, имеющее использование только в строго определенных областях.

Все ЯП также занимают самое разное промежуточное положение, которое характеризуется состоянием между естественными и формализованными ЯП. [5]


Основные назначение для практически всех языков программирования – являться средством для выполнения программирования:

– реализовывать программы;

– писать программы на ПК.

Практически все ЯП используются в секторе формирования и описания алгоритмов, а также выполнения их в последующем на ПК, алгоритм при этом может также записываться с различным уровнем его детализации. [20]

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

Очень часто полагают, что опытные программисты могут писать программные продукты не для определенного ПК, а некоторой вычислительной машины (в общих понятиях). [4]

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

На одном с высших уровней абстракции может содержаться полное представление для ПК как о фоннеймановской машине, что состоит с основных частей:

– памяти;

– устройств для ввода/вывода;

– процессора.

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

ОС представляет собой специальный программный комплекс при реализации управления практически всеми устройствами ПК. [8]

В нынешнее время очень популярными ОС считаются:

– Microsoft Windows;

– Linux;

– UNIX.

В случае, когда абстрактной вычислительной машине можно добавить операционную систему – в результате получим так называемую виртуальную машину. [12]

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

Для написания программ на низких уровнях языков программирования используются специальные ЯП, которые называются низкоуровневыми.

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

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

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


Программа оказывается также связанной к определенной архитектуре. Все это можно посчитать недостатками для программирования в ЯП низкого уровня.

Самым главным и основным преимуществом будет является возможность «выжать» с ресурсов компьютера практически все его возможности.

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

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

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

– переменные;

– стандартные алгоритмические конструкции;

– операторы присваивания.

Императивные ЯП привязываются к традиционной архитектуре фон Неймана. [6]

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

Все традиционные операторы, переменные при этом не рассматриваются.

В программных продуктах, что написаны с использованием логических ЯП, нет какого-то фиксированного или определенного порядка для реализации разных правил алгоритма.

Сам выбор подходящей для этого последовательности операций алгоритма будет возлагаться на саму систему. [9]

Объектно-ориентированные языки в значительной степени могут упростить программирование с использованием объектно-ориентированного программирования.

Delphi – многофункциональный язык, созданным на основе языка Object Pascal. Он также является очень популярным из-за наличия диалектов и многих компиляторов.

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

В целом, ЯП Delphi является императивным, объектно-ориентированным.

Именно с использованием ЯП Delphi созданы программы The KMPlayer, AIMP, Light Alloy, Total Commander, графический интерфейс для программы Skype.

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

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


Стоит отметить, не нужно начинать изучение принципов программирования с указанного ЯП, хотя со временем С++ будет наиболее используемым. [8]

С момента возникновения язык прошёл несколько лицензирований, стандартизаций и благодаря этому остаётся очень актуальным он в нынешнее время.

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

ЯП также создан на основании одних из ранних языков, он в себя впитал их наработки, стал совершеннее. [2]

К тому же он обновляется постоянно, а самая последняя версия выпущена в 2014 г.

Основные положительные характеристики:

– простота;

– многофункциональность;

– минимализм.

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

Visual Basic фирмы Microsoft используют многие опытные программисты, поскольку большинство на нём познавало начала работы в началах программирования. Он очень многофункционален, прост, а также прекрасно подходит к быстрому проектированию программ. [4]

Он имеет все возможности по созданию ПО, также можно конструировать удобный пользовательский интерфейс программы.

VB применяют профессионалы из Microsoft для создания разного рода своих программ.

1.2. Определение, типы и предназначение структур данных

Необходимым условием для хранения информации непосредственно в памяти ПК является возможность преобразования ее в подходящую для обработки компьютером форму.

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

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

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