Выявление функциональной зависимости в массиве данных
Атрибут a функционально определяет атрибут b, если каждому значению атрибута a соответствует не более одного значения атрибута b. В этой работе приводится одна из реализаций простейшей самоорганизующейся таблицы, с самоорганизацией методом транспозиции. Для запуска программы необходимо запустить на выполнение файл kursovic. exe, а затем, для просмотра результата, открыть файл dat. txt. Программа… Читать ещё >
Выявление функциональной зависимости в массиве данных (реферат, курсовая, диплом, контрольная)
Министерство Образования Российской Федерации Пензенский Государственный Педагогический Университет им. В. Г. Белинского Кафедра прикладной математики-информатики
Курсовая работа
по дисциплине «Программирование»
Тема: «Выявление функциональной зависимости в массиве данных»
Выполнил: ст. гр. МП-11
Проверил: к. т. н., доцент Пенза-2008
- Введение
- Основной Раздел
- 1. Формальная постановка задачи
- 2. Описание алгоритма
- 3. Описание программы
- 4. Инструкция пользователю
- 5. Контрольный пример
- Заключение
- Приложения
- Список использованной литературы
В настоящее время формализованы многие задачи, возникающие в процессе человеческой деятельности, и все шире осуществляется их автоматизация на основе средств вычислительной техники.
Одним из методов формализации является алгоритмическое решение задач. Эффективность алгоритмического метода заключается в том, что он позволяет легко автоматизировать решение задачи путем составления программы на одном из языков программирования.
Простым в изучении, хорошо формализованным и широко распространенным языком программирования является язык C++. Его формальная строгость, высокая мощность конструкций объявления и обработки данных, возможности объектного программирования, а также общая направленность на обучение методам программирования выгодно выделяют этот язык среди других языков программирования высокого уровня.
С ходом научно-технического прогресса человечество всё более нуждается в удобном способе хранения и поиска данных.
Самоорганизующиеся списки (таблицы) обеспечивают способы наиболее эффективного хранения, поиска и наилучшей обработки данных. Именно поэтому самоорганизующиеся таблицы приобретают все большее значение в современном мире. В условиях глобальной компьютеризации самоорганизующиеся таблицы из фактора узкопрофессионального назначения переходят на более глобальный и, более того, даже бытовой уровень!
В этой работе приводится одна из реализаций простейшей самоорганизующейся таблицы, с самоорганизацией методом транспозиции.
Основной Раздел
1. Формальная постановка задачи
Определить функциональную зависимость в массиве данных.
2. Описание алгоритма
Алгоритм определяемой функциональной зависимости состоит из одного главного модуля и нескольких модулей. В главном модуле находится 3 цикла. В главном модуле создается файл, в котором сохраняется вся информация. Вывод информации производится в файле «dat. txt» .
3. Описание программы
Программа состоит из одного главного модуля, в котором используются операторы стандартных библиотек:
stdio. h.
stdlib. h
conio. h
math. h
time. h
io. h
dos. h
string. h
sysstat. h
Для хранения информации в программе создается файл «dat. txt».
Атрибут a функционально определяет атрибут b, если каждому значению атрибута a соответствует не более одного значения атрибута b.
4. Инструкция пользователю
Программа предназначена для определения функциональной зависимости в массиве данных.
Программа функционирует на IBM PC/AT 386 и выше и для нормальной работы требует 1 Мб оперативной памяти и 15 Кб дисковой памяти.
Для запуска программы необходимо запустить на выполнение файл kursovic. exe, а затем, для просмотра результата, открыть файл dat. txt.
Входные данные заполняются в программе случайными целыми числам.
Для завершения работы с программой необходимо нажать клавишу escape.
5. Контрольный пример
Заключение
На данном тестовом наборе программа функционирует успешно. Поставленная задача выполнена полностью, оформление соответствует требованиям ЕСПД.
Приложения
Приложение А
Приложение Б
# include
# include
# include
# include
# include
# include
# include
# include
# include
int const m=6, n=10, Ld=m*n/4, Lk=m*5;
unsigned short kk=0;
int a [n-1] [m-1] ;
int b [n-1] [m-1] ;
unsigned short k [Lk] ;
unsigned short kn [m] ;
unsigned short d [Ld] ;
unsigned short dn [m] ;
unsigned short kt [m+1] ;
unsigned short Lt;
unsigned short mt;
// —————————- //
unsigned short i, j;
void tabl ()
{
int i;
randomize ();
for (i=0; i
for (j=0; j
{
a [i] [j] =rand ()% (n+m);
if (a [i] [j] <0)
a [i] [j] =0;
}
}
void vivod1 ()
{
FILE *f;
int i, j;
f=fopen («dat. txt» ," a+");
fprintf (f," matrican");
for (i=1; i<=m; i++)
fprintf (f," a%1d", i);
fprintf (f," n");
for (i=0; i
{
for (j=0; j
fprintf (f," %3d", a [i] [j]);
fprintf (f," n");
}
fprintf (f," n");
fclose (f);
}
void vivod2 ()
{
FILE *f;
int i, j;
f=fopen («dat. txt» ," a+");
fprintf (f," new_matrican");
for (i=1; i<=m; i++)
fprintf (f," a%1d", dn [i] [1]);
fprintf (f," n");
for (i=0; i
{
for (j=0; j
if (b [i] [j] >0)
fprintf (f," %3d", d [b [i] [j] +dn [j-1] [2]] [1]);
else
fprintf (f," %3d", b [i] [j]);
fprintf (f," n");
}
fprintf (f," n");
fclose (f);
}
// ————————— //
void create_domain ()
{
FILE *f;
unsigned short i, j, ii, jj, num;
unsigned short dt [n-1] ;
f=fopen («dat. txt» ," a+");
dn [2] =0;
for (num=1; num
{
dn [num] =dn [num-1] ;
j=0;
for (i=0; i
if (a [i] [num] ! =0)
{
ii=1;