Хранение информации

Автор работы: Пользователь скрыл имя, 24 Ноября 2013 в 13:19, курсовая работа

Описание работы

Цель курсовой работы – разработать программу, в которой будут использоваться линейные списки, обеспечивающую эффективную обработку и хранение информации.
Для достижения этой цели определены следующие задачи:
Усвоить и проанализировать задачу;
Подобрать какой алгоритм лучше использовать для решения этой задачи;
Написать программу на псевдокоде;
Написать программу на языке программирования высокого уровня;
Выполнить тестирование и отладку программы.

Содержание работы

Введение ..4
1 Уяснение задачи ..5
2 Выбор алгоритма решения задачи ..6
3 Написание программы на псевдокоде ..7
4 Составление программы на языке программирование высокого уровня ..9
5 Тестирование и отладка программы 11
6 Результаты работы программы 12
Заключение 13
Список используемых источников ..14
Приложение ..15

Файлы: 1 файл

Пояснительная записка ТГТУ.230400.205 ТЭ-ПЗ.docx

— 53.98 Кб (Скачать файл)



СОДЕРЖАНИЕ

Введение ..4

1 Уяснение задачи ..5

2 Выбор алгоритма решения задачи ..6

3 Написание программы  на псевдокоде ..7

4 Составление программы  на языке программирование высокого  уровня ..9

5 Тестирование и отладка  программы 11

6 Результаты работы программы 12

Заключение 13

Список используемых источников ..14

Приложение ..15

 

ВВЕДЕНИЕ

Список – это абстрактный тип данных, представляющий собой упорядоченный набор значений, в котором некоторое значение может встречаться более одного раза. Таким набором может быть ряд знаков в слове, слов в предложениях в книге. Этот термин может также относиться к набору элементов на диске. Существуют множество видов списков. Наиболее часто используют линейные списки, которые зачастую могут быть представлены массивами или связными списками. Таким образом, список, является очень удобным видом организации данных. [1]

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

Для достижения этой цели определены следующие задачи:

  • Усвоить и проанализировать задачу;
  • Подобрать  какой  алгоритм лучше использовать для решения этой задачи;
  • Написать программу на псевдокоде;
  • Написать программу на языке программирования высокого уровня;
  • Выполнить тестирование и отладку программы.

 

     1 Уяснение  задачи 

Даны натуральное число n, действительные числа a1, ... , аn. Вычислить , где а—среднее арифметическое чисел а1, ... , ап.

Для начала уясним эту задачу. Допустим, что есть 6 элементов: 0, 1, 2, 3, -4, 5. Среднее арифметическое = . И далее из каждого элемента мы вычтем среднее арифметическое и найдём минимальную по модулю разность. Это и будет решение данной задачи. 
         2 Подбор алгоритма решения задачи

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

Сначала выделяется память под динамический массив. Далее начнется цикл, в котором реализуется ввод элементов массива и нахождение их суммы. Затем, находим среднее арифметическое и начальную разность. В цикле находим минимальную разность по модулю. [2] 
        3 Написание программы на псевдокоде

На экран выводится сообщение  – «Введите количество элементов  массива». [3]

cout<<"Введите количество элементов n=";

cin>>n;

После введения количества элементов  массива выделяется память под динамический массив, размер которой зависит от переменной n. [4]

A=newdouble[n];

Далее начинается цикл, в котором  реализуется ввод элементов массива и нахождение их суммы.

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

{

cout<<"ВведитеA["<<i<<"]=";

cin>>A[i];

s+=A[i];//сумма элементов

}

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

cout<<"Среднее арифметическое = "<<(a=s/n);

min=abs(A[0]-a);

Запускается цикл для подсчёта следующих  разностей и нахождения минимальной  из них, с помощью условия if(s<=min). [6]

for(i=0;i<n;i++)//цикл для нахождения min

{

s=abs(A[i]-a);//нахождение разности

if(s<=min)

min=s;

}

В конце программы запускается  функция, которая применяется для  задержки программы.

getch();

     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

      4 Составление программы на языке программирования высокого уровня

Объявляем директиву include, которая сообщает компилятору о подключении библиотек stdafx.h, stdio.h, conio.h и iostream. [7]

#include"stdafx.h"

#include<stdio.h>

#include<conio.h>

#include<iostream>

Описываем главную функцию. [8]

int main()

{

setlocale(0,""); //функция, которая обеспечивает вывод кириллицы. [9]

int n,i;

float a,s,min;

s=0;

double *A;

cout<<"Количество действительных чисел? n=";

cin>>n;

A=new double[n];

for(i=0;i<n;i++)//цикл для присвоения значений элементам массива

{

cout<<"Введите A["<<i<<"]=";

cin>>A[i];

s+=A[i];//сумма элементов

}

cout<<"\nРешение:\n";

cout<<"Среднее арифметическое = "<<(a=s/n);

min=abs(A[0]-a);//для первого значения разности

for(i=0;i<n;i++)//цикл для нахождения min

{

s=abs(A[i]-a);//нахождение разности

if(s<=min)

min=s;

}

cout<<"\nМинимальное значение разности= "<<min;

getch();//задержка экрана


        5 Тестирование и отладка программы

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

Рисунок 1 – Ввод данных

Рисунок 2 – Результат работы программы

На рисунке 2 – изображены исходные данные и решение.

 

     6 Результаты работы программы

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

Рисунок 3 – Конечный результат

На рисунке 3 изображена окончательный  результат выполнения программы, который  свидетельствует о том, что цель курсовой работы достигнута. 
                                                                     ЗАКЛЮЧЕНИЕ

В ходе выполнения курсовой работы были выполнены следующие задачи:

-Выяснена и проанализирована цель поставленной задачи

-Разработан алгоритм решения задачи

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

-Выполнено тестирование и отладка программы

Вследствие  выполнения  курсовой  работы  была  разработана  программа, обеспечивающая     эффективную     обработку     и    хранение    информации   с использованием линейных списков. 
                              СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

1. Брукшир, Дж. Введение в компьютерные науки. Общий обзор: учеб. / Дж. Брукшир. – М.: Вильямс, 2001. – 688 с.

2. Павловская,Т.А. С/C++. Структурное программирование: Практикум / Т.А.Павловская, Ю.А.Щупак. – СПб.: Питер, 2007. – 240 с.: ил.

3. Павловская,Т.А. C++. Объектно-ориентированное программирование: Практикум / Т.А. Павловская. – СПб.: Питер, 2006. – 265 с.: ил.

4. Пономарев, В.А. Программирование на C++/C# в VisualStudio .NET 2003: учеб. / В.А. Пономарев. – М.: БХВ–Петербург, 2004. – 352 с.

5. Организация списков и их  обработка. Доступ к файлу: http://citforum.ru/programming/c/h21.shtml

6. Коплиен, Дж. Программирование на C++: учеб. / Дж. Коплиен. – М.: Питер, 2005. – 480 с.

7. Страуструп, Б. Справочное руководство  по С++. [Электронные ресурс] / Б. Страуструп. – Режим доступа: http://www.codenet.ru/progr/cpp/3/

8. Керниган, Б. Язык программирования C: учеб. / Б. Керниган, Д. Ритчи. – М.: Вильямс, 2009. – 304 с.

9. Основы алгоритмизации. Методическое  руководство для самостоятельного  изучения. / Сост. С.Г.Кузин. Н.Новгород - ННГУ, 1998.

10. Решение инженерных  и экономических задач на языке  C++: учеб. /Ю.Ю. Громов [и др.]. – Тамбов, 2003. – 112 с. 
                                                    ПРИЛОЖЕНИЕ

//Курсовая_работа.exe

/* Даны натуральное число n, действительные  числа a1, ... , аn.

Вычислить min|ai-a| (1<=i<=n), где а—среднее арифметическое чисел а1, ... , аn.*/

//Выполнил студент группы БИС-11 Парамонов А.А. 

#include"stdafx.h"

#include<stdio.h>

#include<conio.h>

#include<iostream>

using namespace std;

int main()

{

setlocale(0, "");//для вывода на кириллице

int n,i;

float a,s,min;

s=0;

double *A;

cout<<"Количество действительных чисел? n=";

cin>>n;

A=new double[n];

for(i=0;i<n;i++)//цикл для присвоения значений элементам массива

{

cout<<"Введите A["<<i<<"]=";

cin>>A[i];

s+=A[i];//сумма элементов

}

cout<<"\nРешение:\n";

cout<<"Среднее арифметическое = "<<(a=s/n);

min=abs(A[0]-a);//для первого значения разности

for(i=0;i<n;i++)//цикл для нахождения min

{

s=abs(A[i]-a);//нахождение разности

if(s<=min)

min=s;

}

cout<<"\nМинимальное значение разности= "<<min;

getch();//задержка экрана

}

         

ТГТУ. 230400.205 ПЗ

         

Изм.

Лист

№ Документа

Подпись

Дата

Разраб.

Парамонов А.А.

   

Хранение и обработка данных с использование линейных списков

Лит.

Лист

Листов

 Проверил

 Шахов  Н.Г.

         

3

16

Реценз.

     

БИС – 11

 Н. контр.

     

 Утвердил

Иванова О.Г.

   

 

         

ТГТУ 230400.205 ПЗ

 Лист

           

Изм.

Лист

№ Документа

Подпись

Дата


 


Информация о работе Хранение информации