Контрольная работа Основные структуры данных 2
Работа добавлена на сайт bukvasha.net: 2015-10-25Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Содержание
ВВЕДЕНИЕ……………………………………………………………………3
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1. Понятие информации и данных …………………………………………4
2. Структура информации – важная характеристика экономической информации ……………………………………………………………….5
3. Особенности электронного документа. Основные структуры данных ..7
3.1 Линейные структуры данных …………………………………………...12
3.2 табличные структуры данных …………………………………………..13
3.3 Иерархические структуры данных………….…………………………..15
3.4 Упорядочение структур данных ……………………………………….16
4. Операции с данными…………………………………………………….18
ПРАКТИЧЕСКАЯ ЧАСТЬ
1. Общая характеристика задачи …………………………………….20
2. Описание алгоритма решения задачи…………………………….22
3. Выбор ППП ………………………………………………………22
4. Проектирование форм выходных документов и графическое представление данных по выбранной задаче…………………..2
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ………………..27
Введение
1.1. Основные структуры данных
Работа с большими наборами данных автоматизируется проще, когда данные упорядочены, то есть образуют заданную структуру. Существует три основных типа структур данных:
• линейная,
• иерархическая,
• табличная.
Если разобрать книгу на отдельные листы и перемешать их, книга потеряет свое назначение. Она по-прежнему будет представлять набор данных, но подобрать адекватный метод для получения из нее информации весьма непросто. (Еще хуже дело будет обстоять, если из книги вырезать каждую букву отдельно — в этом случае вряд ли вообще найдется адекватный метод для ее прочтения.)
Если же собрать все листы книги в правильной последовательности, мы получим простейшую структуру данных — линейную. Такую книгу уже можно читать, хотя для поиска нужных данных ее придется прочитать подряд, начиная с самого начала, что не всегда удобно.
Для быстрого поиска данных существует иерархическая структура. Так, например, книги разбивают на части, разделы, главы, параграфы и т. п. Элементы структуры более низкого уровня входят в элементы структуры более высокого уровня: разделы состоят из глав, главы из параграфов и т. д.
Для больших массивов поиск данных в иерархической структуре намного проще, чем в линейной, однако и здесь необходима навигация, связанная с необходимостью просмотра. На практике задачу упрощают тем, что в большинстве книг есть вспомогательная перекрестная таблица, связывающая элементы иерархической структуры с элементами линейной структуры, то есть связывающая разделы, главы и параграфы с номерами страниц. В книгах с простой иерархической структурой, рассчитанных на последовательное чтение, эту таблицу принято называть оглавлением, а в книгах со сложной структурой, допускающей выборочное чтение, ее называют содержанием.
1.2. Линейные структуры (списки данных, векторы данных)
Линейные структуры — это хорошо знакомые нам списки. Список — это простейшая структура данных, отличающаяся тем, что каждый элемент данных однозначно определяется своим номером в массиве. Проставляя номера на отдельных страницах рассыпанной книги, мы создаем структуру списка. Обычный журнал посещаемости занятий, например, имеет структуру списка, поскольку все студенты группы зарегистрированы в нем под своими уникальными номерами. Мы называем номера уникальными потому, что в одной группе не могут быть зарегистрированы два студента с одним и тем же номером.
При создании любой структуры данных надо решить два вопроса: как разделять элементы данных между собой и как разыскивать нужные элементы. В журнале посещаемости, например, это решается так: каждый новый элемент списка заносится с новой строки, то есть разделителем является конец строки. Тогда нужный элемент можно разыскать по номеру строки.
N п/п Фамилия, Имя, Отчество
1 Аистов Александр Алексеевич
2 Бобров Борис Борисович
3 Воробьева Валентина Владиславовна
……………………………………………………..
27 Сорокин Сергей Семенович
Разделителем может быть и какой-нибудь специальный символ. Нам хорошо известны разделители между словами — это пробелы. В русском и во многих европейских языках общепринятым разделителем предложений является точка. В рассмотренном нами классном журнале в качестве разделителя можно использовать любой символ, который не встречается в самих данных, например символ «*». Тогда наш список выглядел бы так:
Аистов Александр Алексеевич * Бобров Борис Борисович * Воробьева Валентина
Владиславовна *... * Сорокин Сергей Семенович
В этом случае для розыска элемента с номером я надо просмотреть список начиная с самого начала и пересчитать встретившиеся разделители. Когда будет отсчитано n- 1разделителей, начнется нужный элемент. Он закончится, когда будет встречен следующий разделитель.
Еще проще можно действовать, если все элементы списка имеют равную длину. В этом случае разделители в списке вообще не нужны. Для розыска элемента с номером и надо просмотреть список с самого начала и отсчитать а( n -1) символ, где а - длина элемента. Со следующего символа начнется нужный элемент. Его длина тоже равна а, поэтому его конец определить нетрудно. Такие упрощенные списки, состоящие из элементов равной длины, называют векторами данных. Работать с ними особенно удобно.
Таким образом, линейные структуры данных (списки) — это упорядоченные структуры, в которых адрес элемента однозначно определяется его номером.
1.3. Табличные структуры (таблицы данных, матрицы данных)
Табличные структуры отличаются от списочных тем, что элементы данных определяются адресом ячейки, который состоит не из одного параметра, как в списках, а из нескольких. Для таблицы умножения, например, адрес ячейки определяется номерами строки и столбца. Нужная ячейка находится на их пересечении, а элемент выбирается из ячейки.
При хранении табличных данных количество разделителей должно быть больше, чем для данных, имеющих структуру списка. Например, когда таблицы печатают в книгах, строки и столбцы разделяют графическими элементами — линиями вертикальной и горизонтальной разметки:
Планета | Расстояние до Солнца, а.е. | Относительная масса | Количество спутников |
Меркурий | 0,39 | 0,056 | 0 |
Венера | 0,67 | 0,88 | 0 |
Земля | 1,0 | 1,0 | 1 |
Марс | 1,51 | 0,1 | 2 |
Юпитер | 5,2 | 318 | 16 |
Если нужно сохранить таблицу в виде длинной символьной строки, используют один символ-разделитель между элементами, принадлежащими одной строке, и другой разделитель для отделения строк, например так:
Меркурий*0,39*0,056*0#Венера*0,67*0,88*0#Земля*1,0*1,0*1#Марс*1,51*0,1*2*...
Для розыска элемента, имеющего адрес ячейки ( m , n ), надо просмотреть набор данных с самого начала и пересчитать внешние разделители. Когда будет отсчитан m — 1 разделитель, надо пересчитывать внутренние разделители. После того как будет найден n — 1 разделитель, начнется нужный элемент. Он закончится, когда будет встречен любой очередной разделитель.
Еще проще можно действовать, если все элементы таблицы имеют равную длину. Такие таблицы называют матрицами . В данном случае разделители не нужны, поскольку все элементы имеют равную длину и количество их известно. Для розыска элемента с адресом ( m , n ) в матрице, имеющей М строк и N столбцов, надо просмотреть ее с самого начала и отсчитать a[N(m — 1) + ( n — 1)] символ, где а — длина одного элемента. Со следующего символа начнется нужный элемент. Его длина тоже равна а, поэтому его конец определить нетрудно.
Таким образом, табличные структуры данных (матрицы) — это упорядоченные структуры, в которых адрес элемента определяется номером строки и номером столбца, на пересечении которых находится ячейка, содержащая искомый элемент.
Многомерные таблицы. Выше мы рассмотрели пример таблицы, имеющей два измерения (строка и столбец), но в жизни нередко приходится иметь дело с таблицами, у которых количество измерений больше. Вот пример таблицы, с помощью которой может быть организован учет учащихся.
Номер факультета: | 3 |
Номер курса (на факультете): | 2 |
Номер специальности (на курсе): | 2 |
Номер группы в потоке одной специальности: | 1 |
Номер учащегося в группе: | 19 |
Размерность такой таблицы равна пяти, и для однозначного отыскания данных об учащемся в подобной структуре надо знать все пять параметров (координат).
1.4. Иерархические структуры данных
Нерегулярные данные, которые трудно представить в виде списка или таблицы, часто представляют в виде иерархических структур. Иерархическую структуру имеет система почтовых адресов. Подобные структуры также широко применяют в научных систематизациях и всевозможных классификациях. Смотрите рисунок ниже.
В иерархической структуре адрес каждого элемента определяется путем доступа (маршрутом), ведущим от вершины структуры к данному элементу. Вот, например, как выглядит путь доступа к команде, запускающей программу Калькулятор (стандартная программа компьютеров, работающих в операционной системе Windows):
Пуск > Программы > Стандартные > Калькулятор.
Дихотомия данных. Основным недостатком иерархических структур данных является увеличенный размер пути доступа. Очень часто бывает так, что длина маршрута оказывается больше, чем длина самих данных, к которым он ведет. Поэтому в информатике применяют методы для регуляризации иерархических структур с тем, чтобы сделать путь доступа компактным. Один из методов получил название дихотомии. Его суть понятна из примера, представленного на рисунке ниже.
В иерархической структуре, построенной методом дихотомии, путь доступа к любому элементу можно представить как путь через рациональный лабиринт с поворотами налево (0) или направо (1) и, таким образом, выразить путь доступа в виде компактной двоичной записи. В нашем примере путь доступа к текстовому процессору Word 2000 выразится следующим двоичным числом: 1010.
2.2.13. Упорядочение структур данных
Списочные и табличные структуры являются простыми. Ими легко пользоваться, поскольку адрес каждого элемента задается числом (для списка), двумя числами(для двумерной таблицы) или несколькими числами для многомерной таблицы. Они также легко упорядочиваются. Основным методом упорядочения является сортировка. Данные можно сортировать по любому избранному критерию, например: по алфавиту, по возрастанию порядкового номера или по возрастанию какого-либо параметра.
Несмотря на многочисленные удобства, у простых структур данных есть и недостаток — их трудно обновлять. Если, например, перевести студента из одной группы в другую, изменения надо вносить сразу в два журнала посещаемости; при этом в обоих журналах будет нарушена списочная структура. Если переведенного студента вписать в конец списка группы, нарушится упорядочение по алфавиту, а если его вписать в соответствии с алфавитом, то изменятся порядковые номера всех студентов, которые следуют за ним.
Таким образом, при добавлении произвольного элемента в упорядоченную структуру списка может происходить изменение адресных данных у других элементов. В журналах успеваемости это пережить нетрудно, но в системах, выполняющих автоматическую обработку данных, нужны специальные методы для решения этой проблемы.
Иерархические структуры данных по форме сложнее, чем линейные и табличные, но они не создают проблем с обновлением данных. Их легко развивать путем создания новых уровней. Даже если в учебном заведении будет создан новый факультет, это никак не отразится на пути доступа к сведениям об учащихся прочих факультетов.
Недостатком иерархических структур является относительная трудоемкость записи адреса элемента данных и сложность упорядочения. Часто методы упорядочения в таких структурах основывают на предварительной индексации, которая заключается в том, что каждому элементу данных присваивается свой уникальный индекс, который можно использовать при поиске, сортировке и т. п. Ранее рассмотренный принцип дихотомии на самом деле является одним из методов индексации данных в иерархических структурах. После такой индексации данные легко разыскиваются по двоичному коду связанного с ними индекса.
Адресные данные. Если данные хранятся не как попало, а в организованной структуре (причем любой), то каждый элемент данных приобретает новое свойство (параметр), который можно назвать адресом. Конечно, работать с упорядоченными данными удобнее, но за это приходится платить их размножением, поскольку адреса элементов данных — это тоже данные, и их тоже надо хранить и обрабатывать.
Заключение.
В данной курсовой работе на тему «Основные структуры данных» мне представилось изучить основные структуры данных, которые используются в повседневной жизни и выполняют роль помощников в каждом компьютере.
В результате проделанной работы я рассмотрела следующие темы:
· рассмотрены основные структуры данных как упорядочить работу с большими наборами данных;
· рассмотрены примеры структур данных;
· как работают основные структуры данных в жизни людей;
· рассмотрены все подструктуры основных структур данных;
· произведена лучшая структура данных на основе сравнение всех основных структур данных и выводах.
Курсовая работа должна найти свое приложение в сложных производственных системах, чтобы упростить жизнь людей и систематизировать работу данных.
Практическая часть
В бухгалтерии ООО «Снежок» производится расчет отчислений по каждому сотруднику предприятия:
· в федеральный бюджет;
· Фонды обязательного медицинского страхования (ФФОМС – федеральный, ТФОМС – территориальный);
· фонд социального страхования (ФСС).
Процентные ставки отчислений приведены на рис. 1.1. Данные для расчета отчислений в фонды по каждому сотруднику приведены на рис.
1. Построить таблицы по приведенным ниже данным.
2. Выполнить расчет размеров отчислений с заработной платы по каждому сотруднику предприятия, данные расчета занести в таблицу
3. Организовать межтабличные связи для автоматического формирования ведомости расчета ЕСН (единого социального налога) по предприятию.
4. Сформировать и заполнить ведомость расчета ЕСН
5. Результаты расчета ЕСН по каждому сотруднику за текущий месяц представить в графическом виде.
СТАВКИ ЕСН
Фонд, в который производится отчисление | Ставка, % |
ТФОМС | 2,00 |
Федеральный бюджет | 20,00 |
ФСС | 3,20 |
ФФОМС | 0,80 |
ИТОГО | 26,00 |
Рис. 1. Процентные ставки отчислений
Табельный номер | ФИО сотрудника | Начислено за месяц, руб. | Федеральный бюджет, руб. | ФФС, руб. | ФФОМС, руб. | ТФОМС, руб. | Итого, руб. |
001 | Иванов И.И. | 15 600,00 | | | | | |
002 | Сидоров А.А. | 12 300,00 | | | | | |
003 | Матвеев К.К. | 9 560,00 | | | | | |
004 | Сорокин М.М. | 4 620,00 | | | | | |
005 | Петров С.С. | 7 280,00 | | | | | |
Рис. 2. Данные для расчета ЕСН за текущий месяц по каждому сотруднику
ООО «Снежок»
Расчетный период | |
с | по |
__.__.20__ | __.__.20__ |
ВЕДОМОСТЬ РАСЧЕТА ЕСН
Табельный номер | ФИО сотрудника | Федеральный бюджет, руб. | ФФС, руб. | ФФОМС, руб. | ТФОМС, руб. | Итого, руб. | |
001 | Иванов И.И. | | | | | | |
002 | Сидоров А.А. | | | | | | |
003 | Матвеев К.К. | | | | | | |
004 | Сорокин М.М. | | | | | | |
005 | Петров С.С. | | | | | | |
ВСЕГО ПО ВЕДОМОСТИ |
Рис. 3. Ведомость расчета ЕСН
Описание алгоритма решения задачи
1. Запустить табличный процессор MS Excel.
2. Создать книгу с именем ООО «Снежок».
3. Лист 1 переименовать в лист с названием Ставки.
4. На рабочем листе Ставки MS Excel создать таблицу, в которой будет содержаться процентные ставки отчислений.
5. Заполнить таблицу процентные ставки отчислений исходными данными (рис. 4).
Рис. 4. Расположение таблицы «Процентные ставки отчислений»
на рабочем листе Ставки MS Excel
6. Лист 2 переименовать в лист с названием Данные для расчета ЕСН.
7. На рабочем листе Данные для расчета ЕСН MS Excel создать таблицу, в которой будет содержаться данные для расчета ЕСН за текущий месяц по каждому сотруднику.
8. Заполнить таблицу с данными для расчета ЕСН за текущий месяц по каждому сотруднику исходными данными (рис.5).
Рис. 5. Расположение таблицы «Данные для расчета ЕСН за текущий месяц по каждому сотруднику» на рабочем листе Данные для расчета ЕСН MS Excel
9. Разработать структуру шаблона таблицы «Данные для расчета ЕСН за текущий месяц по каждому сотруднику» (рис. 6)
Колонка электронной таблицы | Наименование (реквизит) | Тип Данных | Формат данных | |
Длина | точность | |||
A | Табельный номер | Числовой | 6 | |
B | ФИО сотрудника | Текстовый | 20 | |
C | Начислено за месяц, руб. | Числовой | 8 | 2 |
D | Федеральный бюджет, руб. | Числовой | 9 | 2 |
E | ФСС, руб. | Числовой | 9 | 2 |
F | ФФОМС, руб. | Числовой | 9 | 2 |
G | ТФОМС, руб. | Числовой | 9 | 2 |
Y | Итого, руб. | Числовой | 9 | 2 |
Рис. 6. Структура шаблона таблицы «Ведомость расчета ЕСН»
10. Заполнить графу Федеральный бюджет, руб. таблицы «Данные для расчета ЕСН за текущий месяц по каждому сотруднику», находящейся на листе Данные для расчета следующим образом:
Занести в ячейку E3 формулу:
= D10*ставки!В$3/100
Размножить введенную в ячейку E3 формулу для остальных ячеек (с Е4 по Е7) данной графы.
Таким образом, будет выполнен цикл, управляющим параметром которого является номер строки.
11. Заполним графу ФСС, руб. таблицы «Данные для расчета ЕСН за текущий месяц по каждому сотруднику», находящейся на листе Данные для расчета следующим образом:
Занести в ячейку F3 формулу:
= D10*ставки!В$4/100
Размножить введенную в ячейку F3 формулу для остальных ячеек (с F4 по F7) данной графы.
12. Заполнить графу ФФОМС, руб. таблицы «Данные для расчета ЕСН за текущий месяц по каждому сотруднику», находящейся на листе Данные для расчета следующим образом:
Занести в ячейку G3 формулу:
= D10*ставки!В$5/100
Размножить введенную в ячейку G3 формулу для остальных ячеек (с G4 по G7) данной графы.
13. Заполнить графу ТФОМС, руб. таблицы «Данные для расчета ЕСН за текущий месяц по каждому сотруднику», находящейся на листе Данные для расчета следующим образом:
Занести в ячейку H3 формулу:
= D10*ставки!В$2/100
Размножить введенную в ячейку H3 формулу для остальных ячеек (с Y4 по H7) данной графы.
14. Заполнить графу Итого, руб. таблицы «Данные для расчета ЕСН за текущий месяц по каждому сотруднику», находящейся на листе Данные для расчета следующим образом:
Занести в ячейку I3 формулу:
= Сумм(Е3:Н3)
Размножить введенную в ячейку I3 формулу для остальных ячеек (с I4 по I7) данной графы.
15. В таблице «Данные для расчета ЕСН за текущий месяц по каждому сотруднику» вставить
Список литературы
1. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. – М: МЦНМО, 2001.
2. Кристофидес Н.. Теория графов: алгоритмический подход, Мир, 1978.
3. Новиков Ф.А. Дискретная математика для программистов, Санк-Петербург, 2001.
4. Информатика. Методические указания по выполнению и темы курсовых работ. Для студентов 2 курса всех специальностей. / ВЗФЭИ. М.: Финстатинформ, 2006. .