Разработка программного обеспечения для интерполирования функций с помощью полиномов Лагранжа

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 05.09.2015
Размер файла 578,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Введение

Данная курсовая работа выполнена на языке программирования высокого уровня С++ с использованием компилятора Microsoft Visual Studio 2013. Этот язык был разработан в начале 80-х годов в Bell Laboratories. С++ - расширение С, т.е. он обеспечивает кардинальное преимущество языка С++, как над своим предшественником языком С так и над другими языками высокого уровня: поддержка объектно-ориентированного программирования, перегруженных операций и возможность разработки полномасштабных windows -приложений. Можно сказать, что язык С++ является одним из совершенных и сложных языков программирования на сегодняшний день.

С помощью языка С++ можно решать всевозможные задачи ставящиеся перед современным программистом: написание системных программ, разработка полноценных windows-приложений, объектное моделирование. Благодаря тому, что язык С++ первоначально разрабатывался как язык системного программирования, то он предоставляет программисту широкие возможности для работы с аппаратурой. Но так как язык С++ подвергся полномасштабной обработки, то он обеспечивает пользователя широким набором средств для решения задач объектно-ориентированного программирования, благодаря этому язык С++ позволяет осуществить интеграцию принципов объектно-ориентированного программирования на аппаратный уровень.

В данной курсовой работе была реализовано создание класса и его дальнейшее использование в программном продукте для интерполирования функции с помощью полинома Лагранжа

1.Анализ предметной области

1.1 Интерполяция функция с помощью полиномов Лагранжа

Интерполяция, интерполирование -- в вычислительной математике способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.

Многим из тех, кто сталкивается с научными и инженерными расчётами, часто приходится оперировать наборами значений, полученных опытным путём или методом случайной выборки. Как правило, на основании этих наборов требуется построить функцию, на которую могли бы с высокой точностью попадать другие получаемые значения. Такая задача называется аппроксимацией. Интерполяцией называют такую разновидность аппроксимации, при которой кривая построенной функции проходит точно через имеющиеся точки данных. Рассмотрим систему несовпадающих точек () из некоторой области . Пусть значения функции известны только в этих точках:

Задача интерполяции состоит в поиске такой функции из заданного класса функций, что

· Точки называют узлами интерполяции, а их совокупность -- интерполяционной сеткой.

· Пары называют точками данных или базовыми точками.

· Разность между «соседними» значениями -- шагом интерполяционной сетки. Он может быть как переменным, так и постоянным.

· Функцию -- интерполирующей функцией или интерполянтом.

Интерполяционный многочлен Лагранжа -- многочлен минимальной степени, принимающий данные значения в данном наборе точек. Для n+1 пар чисел (x0, y0), (x1, y1),…, (xn, yn), где все xj различны, существует единственный многочлен L(x) степени не более n, для которого L(xj) = yj.

В простейшем случае (n=1) -- это линейный многочлен, график которого -- прямая, проходящая через две заданные точки.

Лагранж предложил способ вычисления таких многочленов:

где базисные полиномы определяются по формуле:

li(x) обладают следующими свойствами:

· являются многочленами степени n

· li(xi) = 1

· li(xj) = 0 при j ? i

Отсюда следует, что L(x), как линейная комбинация li(x), может иметь степень не больше n, и L(xi) = yi.

Найдем формулу интерполяции для f(x) = tan(x) имеющей следующие значения:

Получим

2.Техническое задание

2.1 Программа для интерполирования функций с помощью полиномов Лагранжа

Краткая характеристика области применения

Данное ПО должно применятся в вычислительной математике и связанные с ней научные области. Благодаря интуитивно простому интерфейсу, данное ПО подойдет для широкого круга людей.

Аналоги

Технология нахождения полиномов Лагранжа реализована в пакетах Mathcad и MatLab.Однако для их нахождения нужно построить необходимые алгоритмы. Во вторых, недостатком является и необходимость наличия пакетов Mathcad или же Matlab.

Основание для разработки

Документ, на основании которого ведется разработка

Индивидуальное задание по дисциплине «Технология программирования».

Организация, утвердившая документ

Самарский Государственный Университет Путей Сообщений.

Назначение разработки

Программное обеспечение для интерполирования функций с помощью полиномов Лагранжа позволит упростить данную задачу. Потому что, все алгоритмы уже реализованы в самой программе, и не требуют от пользователя наличия громоздких пакетов типа MatLab или MathCad

3.Требование к программному продукту

3.1 Требования к функциональным характеристикам

Разрабатываемое ПО должно реализовывать нахождение полиномов по формуле Лагранжа.

· Интуитивно понятный графический интерфейс

· Легкость в эксплуатации

· Надежность

· Гибкость. Наличие возможности для доработки и усовершенствования

· Программа должна быть реализована на основе ООП

· Программная система должна использовать визуальные требования для ввода исходных данных и вывода результатов

Требования к составу и параметрам технических средств

Для функционирования программы необходим персональный компьютер соответствующий минимальным требованиям к составу данного программного продукта:

· процессор IntelPentium или совместимый,

· объем свободной оперативной памяти 3000 Кб,

· объем необходимой памяти на жестком диске 1000 Кб,

· стандартный VGA монитор,

· стандартная клавиатура,

· манипулятор «мышь»

Требования к информационной и программной совместимости

Программа должна работать под операционной системой Microsoft Windows XP и выше.

Требования к программной документации

В пакет программной системы должен входить «Руководство пользователя» , документ , благодаря которому пользователь ,впервые использующий программный продукт , будет без труда ориентироваться.

Таблица. Стадии и этапы разработки

Стадии

Результат

Время выполнения

Системный анализ

Математическая постановка задачи

1 день

Проектирование и программная реализация

Исходный код и графический интерфейс

4 дня

Документирование

Руководство пользователя

2 дня

Алгоритм решения задачи

1.Вводим количество узлов интерполяции (N).

2.Вводим элементы массива X и Y.

3.Вычислениям шаг(h), где h=x[1]-x[0].

Листинг программы

#include "Interpolation.h"

#pragma once

namespace InterpolationLagrange {

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

/// <summary>

/// Сводка для Form1

/// </summary>

public ref class Form1 : public System::Windows::Forms::Form

{

public:

Form1(void)

{

InitializeComponent();

//

//TODO: добавьте код конструктора

//

}

protected:

/// <summary>

/// Освободить все используемые ресурсы.

/// </summary>

~Form1()

{

if (components)

{

delete components;

}

}

private: System::Windows::Forms::GroupBox^ groupBox1;

protected:

private: System::Windows::Forms::Button^ button2;

private: System::Windows::Forms::Button^ button1;

private: System::Windows::Forms::TextBox^ textBox2;

private: System::Windows::Forms::TextBox^ textBox1;

private: System::Windows::Forms::Label^ label2;

private: System::Windows::Forms::Label^ label1;

private: System::Windows::Forms::GroupBox^ groupBox2;

private: System::Windows::Forms::TextBox^ textBox3;

private: System::Windows::Forms::Label^ label3;

private: System::Windows::Forms::DataGridView^ dataGridView1;

private: System::Windows::Forms::DataGridViewTextBoxColumn^ X;

private: System::Windows::Forms::DataGridViewTextBoxColumn^ Y;

private:

/// <summary>

/// Требуется переменная конструктора.

/// </summary>

System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code

/// <summary>

/// Обязательный метод для поддержки конструктора - не изменяйте

/// содержимое данного метода при помощи редактора кода.

/// </summary>

void InitializeComponent(void)

{

this->groupBox1 = (gcnew System::Windows::Forms::GroupBox());

this->button2 = (gcnew System::Windows::Forms::Button());

this->button1 = (gcnew System::Windows::Forms::Button());

this->textBox2 = (gcnew System::Windows::Forms::TextBox());

this->textBox1 = (gcnew System::Windows::Forms::TextBox());

this->label2 = (gcnew System::Windows::Forms::Label());

this->label1 = (gcnew System::Windows::Forms::Label());

this->groupBox2 = (gcnew System::Windows::Forms::GroupBox());

this->textBox3 = (gcnew System::Windows::Forms::TextBox());

this->label3 = (gcnew System::Windows::Forms::Label());

this->dataGridView1 = (gcnew System::Windows::Forms::DataGridView());

this->X = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());

this->Y = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());

this->groupBox1->SuspendLayout();

this->groupBox2->SuspendLayout();

(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->dataGridView1))->BeginInit();

this->SuspendLayout();

//

// groupBox1

//

this->groupBox1->Controls->Add(this->button2);

this->groupBox1->Controls->Add(this->button1);

this->groupBox1->Controls->Add(this->textBox2);

this->groupBox1->Controls->Add(this->textBox1);

this->groupBox1->Controls->Add(this->label2);

this->groupBox1->Controls->Add(this->label1);

this->groupBox1->Location = System::Drawing::Point(15, 15);

this->groupBox1->Name = L"groupBox1";

this->groupBox1->Size = System::Drawing::Size(250, 220);

this->groupBox1->TabIndex = 0;

this->groupBox1->TabStop = false;

this->groupBox1->Text = L" Ввод данных ";

//

// button2

//

this->button2->Location = System::Drawing::Point(13, 180);

this->button2->Name = L"button2";

this->button2->Size = System::Drawing::Size(220, 23);

this->button2->TabIndex = 5;

this->button2->Text = L"Найти решение";

this->button2->UseVisualStyleBackColor = true;

this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click);

//

// button1

//

this->button1->Location = System::Drawing::Point(205, 25);

this->button1->Name = L"button1";

this->button1->Size = System::Drawing::Size(39, 23);

this->button1->TabIndex = 4;

this->button1->Text = L"Ok";

this->button1->UseVisualStyleBackColor = true;

this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);

//

// textBox2

//

this->textBox2->Location = System::Drawing::Point(78, 147);

this->textBox2->Name = L"textBox2";

this->textBox2->Size = System::Drawing::Size(121, 20);

this->textBox2->TabIndex = 3;

this->textBox2->KeyPress += gcnew System::Windows::Forms::KeyPressEventHandler(this, &Form1::textBox2_KeyPress);

//

// textBox1

//

this->textBox1->Location = System::Drawing::Point(124, 27);

this->textBox1->Name = L"textBox1";

this->textBox1->Size = System::Drawing::Size(75, 20);

this->textBox1->TabIndex = 2;

this->textBox1->KeyPress += gcnew System::Windows::Forms::KeyPressEventHandler(this, &Form1::textBox1_KeyPress);

//

// label2

//

this->label2->AutoSize = true;

this->label2->Location = System::Drawing::Point(10, 150);

this->label2->Name = L"label2";

this->label2->Size = System::Drawing::Size(62, 13);

this->label2->TabIndex = 1;

this->label2->Text = L"Введите X:";

//

// label1

//

this->label1->AutoSize = true;

this->label1->Location = System::Drawing::Point(10, 30);

this->label1->Name = L"label1";

this->label1->Size = System::Drawing::Size(108, 13);

this->label1->TabIndex = 0;

this->label1->Text = L"Введите к-во узлов:";

//

// groupBox2

//

this->groupBox2->Controls->Add(this->textBox3);

this->groupBox2->Controls->Add(this->label3);

this->groupBox2->Location = System::Drawing::Point(15, 240);

this->groupBox2->Name = L"groupBox2";

this->groupBox2->Size = System::Drawing::Size(250, 60);

this->groupBox2->TabIndex = 1;

this->groupBox2->TabStop = false;

this->groupBox2->Text = L" Результат ";

//

// textBox3

//

this->textBox3->Location = System::Drawing::Point(55, 27);

this->textBox3->Name = L"textBox3";

this->textBox3->ReadOnly = true;

this->textBox3->Size = System::Drawing::Size(150, 20);

this->textBox3->TabIndex = 1;

//

// label3

//

this->label3->AutoSize = true;

this->label3->Location = System::Drawing::Point(15, 30);

this->label3->Name = L"label3";

this->label3->Size = System::Drawing::Size(34, 13);

this->label3->TabIndex = 0;

this->label3->Text = L"P(x) =";

//

// dataGridView1

//

this->dataGridView1->AllowUserToAddRows = false;

this->dataGridView1->AllowUserToDeleteRows = false;

this->dataGridView1->AllowUserToResizeColumns = false;

this->dataGridView1->AllowUserToResizeRows = false;

this->dataGridView1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHeightSizeMode::AutoSize;

this->dataGridView1->Columns->AddRange(gcnew cli::array< System::Windows::Forms::DataGridViewColumn^ >(2) {this->X, this->Y});

this->dataGridView1->Location = System::Drawing::Point(275, 15);

this->dataGridView1->Name = L"dataGridView1";

this->dataGridView1->RowHeadersVisible = false;

this->dataGridView1->ScrollBars = System::Windows::Forms::ScrollBars::Vertical;

this->dataGridView1->Size = System::Drawing::Size(154, 285);

this->dataGridView1->TabIndex = 2;

//

// X

//

this->X->Frozen = true;

this->X->HeaderText = L"X";

this->X->Name = L"X";

this->X->SortMode = System::Windows::Forms::DataGridViewColumnSortMode::NotSortable;

this->X->Width = 75;

//

// Y

//

this->Y->Frozen = true;

this->Y->HeaderText = L"Y";

this->Y->Name = L"Y";

this->Y->SortMode = System::Windows::Forms::DataGridViewColumnSortMode::NotSortable;

this->Y->Width = 75;

//

// Form1

//

this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;

this->ClientSize = System::Drawing::Size(444, 312);

this->Controls->Add(this->dataGridView1);

this->Controls->Add(this->groupBox2);

this->Controls->Add(this->groupBox1);

this->Name = L"Form1";

this->Text = L"Интерполяция методом Лагранжа";

this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);

this->groupBox1->ResumeLayout(false);

this->groupBox1->PerformLayout();

this->groupBox2->ResumeLayout(false);

this->groupBox2->PerformLayout();

(cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->dataGridView1))->EndInit();

this->ResumeLayout(false);

}

#pragma endregion

String^ decSeparator;

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)

{

decSeparator = Globalization::NumberFormatInfo::CurrentInfo->NumberDecimalSeparator;

}

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)

{

if(!int::TryParse(textBox1->Text,(int)n))

{

MessageBox::Show(L"Ошибка! Проверте правильность ввода параметра - n");

return;

}

n = int::Parse(textBox1->Text);

if(!n)

{

MessageBox::Show(L"Ошибка! Проверте правильность ввода n > 0");

return;

}

while(dataGridView1->RowCount != 0) // Удалим все строки из dataGridView1

dataGridView1->Rows->RemoveAt(0);

for(int i=0; i!=n; ++i) // Добавить n строк

dataGridView1->Rows->Add();

}

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)

{

if(!int::TryParse(textBox1->Text,(int)n))

{

MessageBox::Show(L"Ошибка! Проверте правильность ввода параметра - n");

return;

}

n = int::Parse(textBox1->Text);

if(!n)

{

MessageBox::Show(L"Ошибка! Проверте правильность ввода n > 0");

return;

}

double x = 0.0;

if(!Double::TryParse(textBox2->Text,x))

{

MessageBox::Show(L"Ошибка! Проверте правильность ввода параметра - x");

return;

}

Points *points = new Points[n];

for(unsigned int i=0; i!=n; ++i)

{

String ^str;

str = dataGridView1->Rows[i]->Cells[0]->FormattedValue->ToString();

if(!Double::TryParse(str,points[i].x))

{

MessageBox::Show(L"Ошибка! Проверте правильность ввода узлов");

return;

}

str = dataGridView1->Rows[i]->Cells[1]->FormattedValue->ToString();

if(!Double::TryParse(str,points[i].y))

{

MessageBox::Show(L"Ошибка! Проверте правильность ввода узлов");

return;

}

}

textBox3->Text = interpolation.Lagrange(x, points, n).ToString();

delete[] points;

}

private: System::Void textBox1_KeyPress(System::Object^ sender, System::Windows::Forms::KeyPressEventArgs^ e)

{

if(Char::IsDigit(e->KeyChar))

return;

if(e->KeyChar == (char)Keys::Back)

return;

e->Handled = true;

}

private: System::Void textBox2_KeyPress(System::Object^ sender, System::Windows::Forms::KeyPressEventArgs^ e)

{

bool flDecSeparator = false;

if (!(textBox2->Text->Length) && (e->KeyChar == '-'))

return;

if(Char::IsDigit(e->KeyChar))

return;

if(e->KeyChar == (char)Keys::Back)

return;

if(textBox2->Text->IndexOf(decSeparator) != -1)

flDecSeparator = true;

if(flDecSeparator)

{

e->Handled = true;

return;

}

if(e->KeyChar.ToString() == decSeparator)

return;

e->Handled = true;

}

};

}

Блок схема

Руководство пользователя

Назначение системы

Данное ПО разработана специально для широкого круга людей для более быстрого и удобного вычисления интерполяции функции полиномами Ньютона.

Основные возможности

В программе реализованы возможности :

· Ввод данных , в частности ввод массивов путем поочередной записи значений элементов.

· Вывод решения на экран.

· Изменение размеров окна программы.

Установка и удаление системы

Для установки ПО необходимо копировать все файлы системы на жесткий диск.

Запуск системы

Для того, что бы запустить программу необходимо запустить исполняемый файл Interpolation Lagrange.exe из директории программы на жестком диске.

Инструкция использования

При запуске ПО пользователь видит на экране форму (рис. 1), где:

1. Приглашение ввести количество узлов

2. Кнопка подтверждения

3. Таблицы для записи значений X,Y

4. Приглашение ввести Х

5. Кнопка “Найти решение”, после нажатия которой вычисляется значение функции

6. Результат вычисления

Рис 1.Интерфейс программы

Пример решения задачи

[Расход, л/с] [Диаметр, мм] [Скорость м/с]

[100] л/с [400]мм [1,1] м/с

[100] л/с [450]мм [0,9] м/с

[100] л/с [500]мм [0,75] м/с

[100] л/с [550]мм [0,68] м/с

Вы, в таблице из нормативного документа видите, что нашего диаметра трубы (510 мм) просто нету(как и скорости потока который нам нужен в результате)... но зато есть(известно) такое:

диаметр трубы (500)мм - для которого скорость - 0,75 м/с

для диаметра трубы (510)мм - т.е X-?

диаметр трубы (550)мм - для которого скорость - 0,68 м/с

В промежуток которого [500....550] попадает наше значение(диаметр) 510 мм и соответственно мы можем интерполировать, то есть найти, как вы уже поняли, промежуточное значение (в данном случаи найти какая будет скорость воды в трубе при пропуске 100 литров для диаметра 510 мм) вам поможет в этом не сложном ремесле подпрограмма интерполятор

1)Количество узлов 5 . Значения для X : 400; 450; 500; 550; 600 . Y:1,1; 0,9;0,75;0,68;0,6

Рис.2

2) Количество узлов 5 . Значения для X : 1,6; 1,7 ; 1,8 ; 1,9 ; 2 . Значения для Y : 1,6416 ; 2,3961 ; 3,3536 ; 4,5441 ; 6. Значение точки X, для которого необходимо найти значение 1,68 Ответ при решении аналитическим способом 2,2299

Рис. 3

Заключение

В результате выполнения курсовой работы была разработана программа на языке С++ в среде Microsoft Visual Studio 2013 ,реализующая процесс, описанный в постановке задачи.

Программа не имеет исходных данных .Начальное количество данных может быть изменено в процессе работы программы. Количество узлов и искомый интервал задаются пользователем.

программный обеспечение интерполяционный многочлен

Литература

1. Единая система программной документации (ЕСПД).

2. Брауде Э. Технология разработки программного обеспечения. -- СПб.: «Питер», 2004. --655 с.

3. Брукс Ф. Мифический человеко-месяц или как создаются программные системы: Пер. с англ. --СПб.: Символ-Плюс, 1999. --304 с.

4. Орлов С.А. Технологии разработки программного обеспечения, 2-е изд. --СПб.: «Питер», 2003. --473 с.

5. Якобсон А., Буч Г., Рамбо Дж. Унифицированный процесс разработки программного обеспечения.--СПб.: «Питер», 2002. --496 с.

Размещено на Allbest.ru

...

Подобные документы

  • Роль интерполяции функций в вычислительной математике. Реализация интерполирования функций полиномом Лагранжа в программном продукте MatLab. Интерполяционная формула Лагранжа. Интерполяция по соседним элементам, кубическими сплайнами. Анализ результатов.

    курсовая работа [1,4 M], добавлен 10.06.2012

  • Интерполирование рабочих точек в пакете Mathcad с помощью полиномов (канонического, Лагранжа и Ньютона) и сплайнов (линейного, квадратичного, кубического). Реализация программы для решения системы линейных алгебраических уравнений на языке Pascal.

    лабораторная работа [202,8 K], добавлен 15.11.2012

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

    практическая работа [153,8 K], добавлен 16.03.2015

  • Интерполирование функций методом Лагранжа. Получение функциональной зависимости по экспериментальным данным. Близость интерполяционного многочлена к заданной функции. Интерполяционный полином в форме Лагранжа. Построение интерполяционных графиков.

    лабораторная работа [315,8 K], добавлен 24.05.2014

  • Задача интерполирования алгебраическими многочленами. Рассмотрение интерполяционных формул Лагранжа и Ньютона. Расчет гиперболического синуса и создание демонстративной программы на Delphi 7, которая наглядно показывает достоверность решения методов.

    курсовая работа [312,7 K], добавлен 10.08.2014

  • Постановка задачи в численной интерполяции. Интерполяционный многочлен Лагранжа. Интерполяционная формула Ньютона. Практическая реализация методов в среде MathCad. Операции с действительными и комплексными числами. Векторные и матричные операции.

    курсовая работа [823,2 K], добавлен 13.10.2015

  • Понятие и ключевое отличие распределенной разработки программного обеспечения, его достоинства и недостатки. Концептуальное решение и выбор типа разработки. Особенности программного обеспечения с открытым исходным кодом. Идея и развитие Open Source.

    курсовая работа [97,7 K], добавлен 14.12.2012

  • Описание параметрических и непараметрических методов штрафных функций в области нелинейного программирования. Решение задачи с использованием множителей Лагранжа. Непрерывность, гладкость, выпуклость, простота вычисления значения функции и производных.

    курсовая работа [114,8 K], добавлен 25.11.2011

  • Современные инструменты разработки программного обеспечения для СУТП. Универсальные языки программирования и сравнение их со SCADA-системами. Разработка программного обеспечения с использованием многоканальных измерительных преобразователей Ш9327.

    дипломная работа [2,3 M], добавлен 13.07.2011

  • Создание программы, вычисляющей значение функции, заданной таблично при помощи интерполяционного полинома Лагранжа на языке Pascal с комментариями. Диалоговое взаимодействие пользователя с программой, модули для ввода и вывода данных и основных действий.

    курсовая работа [49,2 K], добавлен 02.11.2011

  • Понятие программного обеспечения, вопросы его разработки и использования. Общая характеристика системного программного обеспечения и работа операционной системы. Специфика процесса управления разработкой программного обеспечения и его особенности.

    курсовая работа [636,2 K], добавлен 23.08.2011

  • Цели и задачи программной инженерии. Понятие программного обеспечения. Шесть принципов эффективного использования программного обеспечения. Виды программного обеспечения: общесистемное, сетевое и прикладное. Принципы построения программного обеспечения.

    курсовая работа [30,4 K], добавлен 29.06.2010

  • Использование моделирования в программной инженерии в процессе разработки программного обеспечения. Основные этапы процесса разработки программного обеспечения, их характеристика. Моделирование процессов, их определение фазами и видами деятельности.

    реферат [2,2 M], добавлен 25.12.2017

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

    курсовая работа [784,4 K], добавлен 28.05.2013

  • Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.

    курсовая работа [355,8 K], добавлен 26.09.2014

  • Написание программного обеспечения на языке ассемблер для AVR-МК ATmega16, позволяющего осуществлять вычисление заданной функции. Введение входных данных с помощью определенного макроса с командой загрузки значений в регистры ldi. Исходный код программы.

    контрольная работа [521,0 K], добавлен 23.11.2014

  • Порядок автоматизации расчетов себестоимости и длительности программного обеспечения производственного предприятия. Выбор языка программирования и системы управления базами данных. Разработка алгоритмов расчета себестоимости программного обеспечения.

    дипломная работа [1,7 M], добавлен 13.06.2017

  • Знакомство с проблемами обнаружения вредоносного программного обеспечения для мобильных устройств. Анализ функций антивирусного пакета Kaspersky Mobile Security 8.0. Характеристика наиболее распространенных антивирусных программ для мобильных устройств.

    реферат [55,1 K], добавлен 11.01.2017

  • Разработка программы, осуществляющей контроль за своевременностью обновления программного обеспечения с помощью рассылки электронных писем. Анализ требований к системе; выбор метода решения, алгоритма, выбор языка программирования, описание программы.

    дипломная работа [5,6 M], добавлен 29.06.2011

  • Аналіз теоретичної бази методів інтерполювання функцій. Розробка алгоритмів та вибір оптимального. Приклад програми інтерполювання функції за допомогою інтерполяційного многочлена Лагранжа: інструкція користувача, опис, тестування та лістинг програми.

    курсовая работа [1,0 M], добавлен 19.09.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.