ВСЕРОССИЙСКИЙ ЗАОЧНЫЙ ФИНАНСОВО-ЭКОНОМИЧЕСКИЙ ИНСТИТУТ
КАФЕДРА АВТОМАТИЗИРОВАННОЙ ОБРАБОТКИ ЭКОНОМИЧЕСКОЙ ИНФОРМАЦИИ
КУРСОВАЯ РАБОТА
по дисциплине «Информатика»
на тему «Основные структуры данных»
Исполнитель:
Боева Мария Сергеевна
специальность Бухгалтерский учет, анализ и аудит
группа ФНО
№ зачетной книжки 06УБД43308
Руководитель:
Левчегов Олег Николаевич
Липецк- 2006
Оглавление:
Введение………………………………………………………………………….. 3
1.Теоритическая часть……………………………………………………………….4
1.1 Линейные структуры………………………………………………………….... 4
1.2 Табличные структуры (таблицы данных, матрицы данных)……………….... 6
1.3 Иерархические структуры данных………………………………………….......9
Заключение……………………………………………………………………….11
2. Практическая часть………………………………………………………………12
2.1 Общая характеристика задачи…………………………………………………12
2.2 Описание алгоритма решения задачи…………………………………….…...15
Список использованной литературы……………………………………………18
Введение
Данная тема является актуальной в наше время. Так как работа с большими наборами данных автоматизируется проще, когда данные упорядочены, то есть образуют заданную структуру.
Для рассмотрения этой темы необходимо раскрыть суть и подробную характеристику линейной, иерархической и табличной структур данных.
В практической части работы будут произведены необходимые вычисления, как с помощью арифметических действий, так и с использованием встроенных функций. На основании полученных данных будет построена диаграмма.
1.1 Линейные структуры
Линейные структуры — это хорошо знакомые нам списки. Список— это простейшая структура данных, отличающаяся тем, что каждый элемент данных однозначно определяется своим номером в массиве. Проставляя номера на отдельных страницах рассыпанной книги, мы создаем структуру списка. Обычный журнал посещаемости занятий, например, имеет структуру списка, поскольку все студенты группы зарегистрированы в нем под своими уникальными номерами. Мы называем номера уникальными потому, что в одной группе не могут быть зарегистрированы два студента с одним и тем же номером.
При создании любой структуры данных надо решить два вопроса: как разделять элементы данных между собой и как разыскивать нужные элементы. В журнале посещаемости, например, это решается так: каждый новый элемент списка заносится с новой строки, то есть разделителем является конец строки. Тогда нужный элемент можно разыскать по номеру строки.
Таблица 1
пример структуры данных
Разделителем может быть и какой-нибудь специальный символ. Нам хорошо известны разделители между словами — это пробелы. В русском и во многих европейских языках общепринятым разделителем предложений является точка. В рассмотренном нами классном журнале в качестве разделителя можно использовать любой символ, который не встречается в самих данных, например символ «*». Тогда наш список выглядел бы так:
Аистов Александр Алексеевич * Бобров Борис Борисович * Воробьева Валентина Владиславовна *... * Сорокин Сергей Семенович
В этом случае для розыска элемента с номером надо просмотреть список начиная с самого начала и пересчитать встретившиеся разделители. Когда будет отсчитано n-1 разделителей, начнется нужный элемент. Он закончится, когда будет встречен следующий разделитель.
Еще проще можно действовать, если все элементы списка имеют равную длину. В этом случае разделители в списке вообще не нужны. Для розыска элемента с номером надо просмотреть список с самого начала и отсчитать а (n -1) символ, где а - длина элемента. Со следующего символа начнется нужный элемент. Его длина тоже равна а, поэтому его конец определить нетрудно. Такие упрощенные списки, состоящие из элементов равной длины, называют векторами данных. Работать с ними особенно удобно.
Таким образом, линейные структуры данных (списки) — это упорядоченные структуры, в которых адрес элемента однозначно определяется его номером.
1.2 Табличные структуры (таблицы данных, матрицы данных)
С таблицами данных мы тоже хорошо знакомы, достаточно вспомнить всем известную таблицу умножения. Табличные структуры отличаются от списочных тем, что элементы данных определяются адресом ячейки, который состоит не из одного параметра, как в списках, а из нескольких. Для таблицы умножения, например, адрес ячейки определяется номерами строки и столбца. Нужная ячейка находится на их пересечении, а элемент выбирается из ячейки.
При хранении табличных данных количество разделителей должно быть больше, чем для данных, имеющих структуру списка. Например, когда таблицы печатают в книгах, строки и столбцы разделяют графическими элементами — линиями вертикальной и горизонтальной разметки:
Таблица 2
пример разделения графическими элементами
Если нужно сохранить таблицу в виде длинной символьной строки, используют один символ-разделитель между элементами, принадлежащими одной строке, и другой разделитель для отделения строк, например так:
Меркурий*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
пример таблицы, с помощью которой может быть организован учет учащихся
Размерность такой таблицы равна пяти, и для однозначного отыскания данных об учащемся в подобной структуре надо знать все пять параметров (координат).
1.3 Иерархические структуры данных
Нерегулярные данные, которые трудно представить в виде списка или таблицы, часто представляют в виде иерархических структур. С подобными структурами мы очень хорошо знакомы по обыденной жизни. Иерархическую структуру имеет система почтовых адресов. Подобные структуры также широко применяют в научных систематизациях и всевозможных классификациях. Смотрите рисунок ниже.
INCLUDEPICTURE "http://www.mkgt.ru/lib/sp230103/rsoi/intr/M1/images/r2_08.jpg" \* MERGEFORMATINET
В иерархической структуре адрес каждого элемента определяется путем доступа (маршрутом), ведущим от вершины структуры к данному элементу. Вот, например, как выглядит путь доступа к команде, запускающей программу Калькулятор (стандартная программа компьютеров, работающих в операционной системе Windows):
Пуск > Программы > Стандартные > Калькулятор.
Дихотомия данных
Основным недостатком иерархических структур данных является увеличенный размер пути доступа. Очень часто бывает так, что длина маршрута оказывается больше, чем длина самих данных, к которым он ведет. Поэтому в информатике применяют методы для регуляризации иерархических структур с тем, чтобы сделать путь доступа компактным. Один из методов получил название дихотомии. Его суть понятна из примера, представленного на рисунке ниже.
INCLUDEPICTURE "http://www.mkgt.ru/lib/sp230103/rsoi/intr/M1/images/r2_09.jpg" \* MERGEFORMATINET
В иерархической структуре, построенной методом дихотомии, путь доступа к любому элементу можно представить как путь через рациональный лабиринт с поворотами налево (0) или направо (1) и, таким образом, выразить путь доступа в виде компактной двоичной записи. В нашем примере путь доступа к текстовому процессору Word 2000 выразится следующим двоичным числом: 1010.
Заключение
Подводя итог, хочу сказать, что списочные и табличные структуры являются простыми. Ими легко пользоваться, поскольку адрес каждого элемента задается числом (для списка), двумя числами(для двумерной таблицы) или несколькими числами для многомерной таблицы. Они также легко упорядочиваются. Основным методом упорядочения является сортировка. Данные можно сортировать по любому избранному критерию, например: по алфавиту, по возрастанию порядкового номера или по возрастанию какого-либо параметра.
Несмотря на многочисленные удобства, у простых структур данных есть и недостаток — их трудно обновлять. Если, например, перевести студента из одной группы в другую, изменения надо вносить сразу в два журнала посещаемости; при этом в обоих журналах будет нарушена списочная структура.
Иерархические структуры данных по форме сложнее, чем линейные и табличные, но они не создают проблем с обновлением данных. Их легко развивать путем создания новых уровней. Даже если в учебном заведении будет создан новый факультет, это никак не отразится на пути доступа к сведениям об учащихся прочих факультетов.
Недостатком иерархических структур является относительная трудоемкость записи адреса элемента данных и сложность упорядочения.
2. Практическая часть
2.1 Общая характеристика задачи
Рассмотрим следующую задачу.
В бухгалтерии ООО «Снежок» производится расчет отчислений по каждому сотруднику предприятия:
в федеральный бюджет;
фонды обязательного медицинского страхования (ФФОМС - федеральный, ТФОМС - территориальный);
фонд социального страхования (ФСС).
Процентные ставки отчислений приведены на рис.6.1. Данные для расчета отчислений в фонды по каждому сотруднику приведены на рис.6.2.
Построить таблицы по приведенным ниже данным.
Выполнить расчет размеров отчислений с заработной платы по каждому сотруднику предприятия, данные расчета занести в таблицу (рис.6.2.).
Организовать межтабличные связи для автоматического формирования ведомости расчета ЕСН (единого социального налога) по предприятию.
Сформировать и заполнить ведомость расчета ЕСН (рис.6.3.).
Результаты расчета ЕСН по каждому сотруднику за текущий месяц представить в графическом виде.
СТАВКИ ЕСН
Рис.3. Процентные ставки отчислений
Рис.4. Данные для расчета ЕСН за текущий месяц по каждому сотруднику
ООО «Снежок»
ВЕДОМОСТЬ РАСЧЕТА ЕСН
Рис.5. Ведомость расчета ЕСН
2.2 Описание алгоритма решения задачи
1. Запустила табличный процессор MS Excel.
2. Создала книгу с именем "Снежок".
3. Лист 1 переименовала в лист с названием Фонды.
4. На рабочем листе Фонды MS Excel создала таблицу процентных ставок отчислений.
5. Заполнили таблицу процентных ставок отчислений исходными данными.
Рис.6. Расположение таблицы «Ставки ЕСН» на рабочем листе Фонды MS Excel
6. Лист 2 переименовала в лист с названием Сотрудники.
7. На рабочем листе Сотрудники MS Excel создала таблицу, в которой будут содержаться данные о сотрудниках, окладе и сумме отчислений.
8. Заполняем таблицу исходными данными.
9.Заполнила графу Федеральный бюджет таблицы «ЕСН за текущий месяц»,находящейся на листе Сотрудники следующим образом:
Занесла в ячейку D3 формулу:
= Сотрудники! C3*Фонды! В5 и нажать Enter
Так я рассчитала сумму отчислений сотрудника Иванова И.И. в Федеральный бюджет.
Принцип расчета отчислений в Федеральный бюджет и другие фонды для остальных сотрудников тот же, т.е. необходимую сумму из графы Начислено за месяц таблицы «ЕСН за текущий месяц» умножить на соответствующую ставку таблицы «Ставки ЕСН».
Рис.7.Расположение таблицы «ЕСН за текущий месяц» на рабочем листе Сотрудники MS Excel
10.Лист 3 переименовала в лист с названием Результаты расчета ЕСН.
11.На рабочем листе Результаты расчета ЕСН MS Excel создала Ведомость расчета ЕСН.
12. Путем создания межтабличных связей заполнила созданную ведомость полученными данными из таблицы «ЕСН за текущий месяц».
13.Лист 5 переименовала в лист с названием График.
14.Результаты вычислений представила графически (рис.8).
Список использованной литературы:
Симонович С.В. и др. Информатика. Базовый курс. - СПб.: Питер,1999.-350с.
Семакин И., Залогова Л.А., Русаков С.В., Шестакова Л.В. Информатика. Базовый курс., лаборатория базовых знаний,2001.-378с.
Мишена А.Л. Практическое пособие по информатике. Экспресс курс., изд. Кузьма, 2005.-22с.