Выявление функциональной зависимости в массиве данных

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

Министерство Образования Российской Федерации

Московский Государственный Педагогический Университет

Кафедра прикладной математики-информатики

 

 

 

 

 

 

 

 

Курсовая работа

по дисциплине Программирование

 

Тема: Выявление функциональной зависимости

в массиве данных

 

 

 

 

 

 

 

 

 

 

 

 

 

Москва-2009

Введение

 

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

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

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

С ходом научно-технического прогресса человечество всё более нуждается в удобном способе хранения и поиска данных.

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

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

 

1. Формальная постановка задачи

 

Определить функциональную зависимость в массиве данных.

 

2. Описание алгоритма

 

Алгоритм определяемой функциональной зависимости состоит из одного главного модуля и нескольких модулей. В главном модуле находится 3 цикла. В главном модуле создается файл, в котором сохраняется вся информация. Вывод информации производится в файле dat.txt.

 

3. Описание программы

 

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

  • stdio.h.
  • stdlib.h
  • conio.h
  • math.h
  • time.h
  • io.h
  • dos.h
  • string.h
  • sys\stat.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] [2];

unsigned short dn[m] [2];

unsigned short kt [m+1];

unsigned short Lt;

unsigned short mt;

 

// //

 

unsigned short i, j;

 

void tabl()

{

int i;

randomize();

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

a[i] [j]=rand()%(n+m);

if (a[i] [j]<0)

a[i] [j]=0;

}

}

 

void vivod_1 ()

{

FILE *f;

int i, j;

f=fopen (dat.txt, a+);

fprintf (f, matrica\n);

for (i=1; i<=m; i++)

fprintf (f, a % 1d, i);

fprintf (f, "\n);

for (i=0; i<n; i++)

{

for (j=0; j<m; j++)

fprintf (f, , a[i] [j]);

fprintf (f, "\n);

}

fprintf (f, "\n);

fclose(f);

}

void vivod_2 ()

{

FILE *f;

int i, j;