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


Программа "Умножение многочленов"



Содержание

Введение

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

2. Постановка задачи

3. Техническая часть

3.1 Разработка схемы алгоритма

3.2 Реализация программы на языке программирования

Заключение

Список использованных источников

Введение

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

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

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

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

Пояснительная записка состоит из трех разделов: анализа предметной части, постановки задачи и технической части.

В разделе «Анализ предметной части рассмотрены теоретические основы математической модели, приведено обоснование и словесное описание разрабатываемого алгоритма.

В разделе «Постановка задачи» рассматривается вопросы назначения программы, предъявлены требования к программе, выполнен выбор среды разработки и языка программирования.

В разделе «Техническая часть» рассматривается назначения каждого блока, характеристика вычислительного процесса и его организация, приведен текст исходного программного модуля на выбранном языке программирования

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

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

Математическая модель умножения многочленов представлена в формулах (1) и (2).

(1)

(2)

В частности,

Алгоритм умножения многочленов:

1) перемножение i-го и (k-i)-го элементов многочленов между собой, где k - номер элемента в многочлене-результате, а i - порядковый номер первого многочлена, (k-i) - порядковый номер второго многочлена;

2) сложение полученного результата с предыдущим произведением элементов многочленов;

3) переход к следующим элементам многочленов;

4) повторение пунктов 1-3 k раз для i-го элемента многочленов, где k - номер элемента в многочлене-результате, а i - порядковый номер для перемножающихся многочленов;

5) переход к следующему элементу многочлена-результата;

6) повторение пунктов 1-5 по числу элементов в многочлене-результате.

2. Постановка задачи

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

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

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

Программа предназначена для следующих основных функций:

- ввод размеров многочленов;

- ввод элементов многочленов;

- вывод результата перемножения многочленов.

Входной информацией будет являться:

- размер первого многочлена;

- размер второго многочлена;

- массив элементов первого многочлена;

- массив элементов второго многочлена.

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

Все внесенные изменения тут же визуально отображаются на экране.

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

Входная информация представлена в виде:

- массива элементов результирующего многочлена.

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

Для вывода выходной информации используется монитор.

Для решения выберем следующие идентификаторы:

- n - размер первого многочлена;

- m - размер второго многочлена;

- a[0..10] - массив элементов первого многочлена;

- b[0..10] - массив элементов второго многочлена;

- d[0..20] - массив элементов результирующего многочлена.

Автоматизированная система должна быть разработана для пользователя, не имеющего профессиональных навыков в программировании. Следовательно, программный продукт, должен работать в диалоговом режиме и взаимодействовать с пользователем через экран и клавиатуру ПЭВМ. К такой системе предъявляется ряд требований, которые позволяют облегчить диалог пользователя с машиной:

- комфорт и дружественность;

- развитая система подсказок;

- целостность и надежность данных.

При разработке системы должны учитываться некоторые принципы, которым должна соответствовать система:

- система должна обеспечивать машинное формирование входной информации и ее проверку,

- выдачу информации на экран монитора.

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

Разрабатываемая система должна работать в любой версии операционных систем семейства Windows.

Для этого рассмотрим наиболее распространенные средства реализации.

Необходимо сказать, что революционным шагом явилось появление визуального программирования основанного на принципе WYSIWYG (What you see is what you get), возникшего в Visual Basic и нашедшего блестящее воплощение в системах Delphi и C++Builder фирмы Borland.

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

Благодаря визуальному объектно-ориентированному программированию была создана технология, получившая название быстрая разработка приложений, по-английски - RAD-Rapid Application Development.

Системы Delphi и C++Builder это следующий шаг в развитии среды быстрой разработки приложений.

Для реализации была выбрана системы Delphi и язык программирования Object Pascal, так как хотя C++Builder и Delphi похожи, но предпочтительнее использовать Delphi, как более простой и удобный для разработки небольших приложений и баз данных.

3 Техническая часть

3.1 Разработка схемы алгоритма

Алгоритм отражает последовательность выполнения задач системы, режимы работы системы и возможности перехода из одного режима работы в другой. Укрупненный алгоритм функционирования системы представлен на рисунке 1.

Блок «начало» соответствует загрузке системы и выдачи главной формы.

Рисунок 1 - Алгоритм функционирования системы

Блок 1 - Начало программы.

Блок 2 - Ввод количества элементов в 1-го многочлена.

Блок 3 - Ввод количества элементов в 2-го многочлена.

Блок 4 - Цикл по всем элементам массивов a и b.

Блок 5 - Инициализация нулями массива a.

Блок 6 - Инициализация нулями массива b.

Блок 7 - Цикл по всем элементам массива d.

Блок 8 - Инициализация нулями массива d.

Блок 9 - Цикл по количеству введенных элементов массива a.

Блок 10 - Проверка условия является ли введенное значение элемента 1-го массива числом.

Блок 11 - Присваивание введенного значения в i-ый элемент массива.

Блок 12 - Вывод сообщения об ошибке на экран.

Блок 13 - Прекращения выполненных следующих далее инструкций.

Блок 14 - Цикл по количеству введенных элементов массива b.

Блок 15 - Проверка условия является ли введенное значение элемента 2-го массива числом.

Блок 16 - Присваивание введенного значения в i-ый элемент массива.

Блок 17 - Вывод сообщения об ошибке на экран.

Блок 18 - Прекращения выполненных следующих далее инструкций.

Блок 19 - Задать количество ячеек таблицы элементов многочлена-результата.

Блок 20 - Цикл для всех элементов многочлена-результата.

Блок 21 - Цикл для суммирования произведений a[i]*b[k-i], из которых складывается значение элемента многочлена-результата.

Блок 22 - Вычисление значения части суммы, из которой складывается значение элемента многочлена-результата.

Блок 23 - Вычисление значения элемента многочлена-результата.

Блок 24 - Вывод подписи для ячейки таблицы многочлена-результата..

Блок 25 - Вывод в заданную ячейку таблицы значения элемента многочлена-результата.

Блок 26 - Выход из программы.

3.2 Реализация программы на языке программирования

Программный продукт, выполнен при помощи языка программирования Object Pascal в интегрированной среде разработки Delphi.

Код программы на языке программирования Object Pascal, разработанной в системе разработки Delphi.

unit Unit1; // название модуля

interface // область описывающая интерфейс

uses // подключаемые модули

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, Spin;

Type // описываемые типы

TForm1 = class(TForm)

Button1: TButton;

GroupBox1: TGroupBox;

Label3: TLabel;

SpinEdit1: TSpinEdit;

StringGrid1: TStringGrid;

GroupBox2: TGroupBox;

Label1: TLabel;

Label5: TLabel;

SpinEdit2: TSpinEdit;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

Label2: TLabel;

procedure SpinEdit1Change(Sender: TObject);

procedure SpinEdit2Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var // объявление глобальных переменных

Form1: TForm1;

implementation // область описания реализации

{$R *.dfm}

// обработчик изменения значения в счетчике

procedure TForm1.SpinEdit1Change(Sender: TObject);

begin

StringGrid1.ColCount:=SpinEdit1.Value; // установить количество столбцов в таблице

StringGrid1.Cells[SpinEdit1.Value-1,0] := a + IntToStr(SpinEdit1.Value-1); // установить надпись для столбца

end;

// обработчик изменения значения в счетчике

procedure TForm1.SpinEdit2Change(Sender: TObject);

begin

StringGrid2.ColCount:=SpinEdit2.Value;

StringGrid2.Cells[SpinEdit2.Value-1,0] := b + IntToStr(SpinEdit2.Value-1);

end;

// обработчик нажатия кнопки

procedure TForm1.Button1Click(Sender: TObject);

var //объявление локальных переменных

a,b:array[0..10] of integer; // массивы элементов перемножаемых многочленов

d:array[0..20] of integer; // массив элементов результирующего многочлена

k,i:integer;

n,m:integer; // размеры многочленов

begin //начало процедуры

n:=SpinEdit1.Value; // размер 1-го многочлена

m:=SpinEdit2.Value; // размер 2-го многочлена

// инициализация многочленов нулями

for i:=0 to 10 do

begin

a[i] := 0;

b[i] := 0;

end;

for i:=0 to 20 do d[i] := 0;

// инициализация 1-го многочлена введенными значениями из таблицы формы

for i:=0 to n-1 do

begin

try

a[i]:=StrToInt(StringGrid1.Cells[i,1]); // инициализация элемента массива введенным значением

except // исключение

Application.MessageBox(Вы ввели ошибочное число в элементы первого многочлена. Повторите ввод., Умножение многочленов , MB_OK + MB_ICONSTOP); // вывод сообщения на экран

Exit; // выход из процедуры

end;

end;

// инициализация 2-го многочлена введенными значениями из таблицы формы

for i:=0 to m-1 do

begin

try

b[i]:=StrToInt(StringGrid2.Cells[i,1]); // инициализация элемента массива введенным значением

except

Application.MessageBox(Вы ввели ошибочное число в элементы второго многочлена. Повторите ввод., Умножение многочленов , MB_OK + MB_ICONSTOP); // вывод сообщения на экран

Exit; // выход из процедуры

end;

end;

StringGrid3.ColCount := n+m-1; // задать размер таблицы для многочлена-результата

// перемножение многочленов

for k:=0 to n+m-2 do

begin

for i:=0 to k do

begin

d[i] := d[k]; // нахождение произведения элементов многочленов

d[k] := d[i] + a[i] * b[k-i]; // нахождение элемента многочлена-результата

end;

StringGrid3.Cells[k,0] := d + IntToStr(k); // вывод подписи для столбца таблицы со значениями элементов многочлена-результата

StringGrid3.Cells[k,1] := IntToStr(d[k]); // вывод значения элемента многочлена-результата в таблицу на офрму

end;

end; // конец процедуры обработчика нажатия кнопки

// события создания формы

procedure TForm1.FormCreate(Sender: TObject);

begin

Form1.SpinEdit1Change(Sender); // вызов обработчика счетчика

Form1.SpinEdit2Change(Sender); // вызов обработчика счетчика

end;

end. // конец всех инструкций

Заключение

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

При проведении анализа предметной области были подробно описаны теоретические основы математической модели, приведены обоснование и словесное описание разрабатываемого алгоритма.

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

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

Внедрение данной программы позволит автоматически перемножать многочлены с помощью компьютера.

В ходе выполнения курсовой работы был разработана программа «Project1.exe», выполненный при помощи языка программирования Object Pascal в интегрированной среде разработки Delphi.

Все этапы разработки программного комплекса описаны в пояснительной записке.

Список использованных источников

1. Грис Д. Наука программирования. М.: Мир, 1984. - 416 с.,ил
2. Немюгин С.А. TURBO PASCAL. Программирование на языке высокого уровня.- СПБ.: Питер, 2003.
3. Котов В.М., Волков И.А., Харитонович А.И. Методы алгоритмизации. Мн.: Нар.асвета, 1996. - 127 с.: ил.
4. Культин Н.б. Delpi в примерах и задачах. - СПб.: БХВ - Петербург, 2006.
5. Поган А.М. Delpi руководство программиста. - М.: Ескмо, 2006.
6. Кандзюба С.П., Громов В.Н. Delphi базы данных и приложения. - М., СПб., К.: Diasoft, 2005.
7. Иртегов Д. В. Введение в операционные системы. - СПб.: БХВ-Петербург, 2002. - 624 с.: ил.
8. Системы отображения информации: Учебн. пособие для ВУЗов / Алиев Т.М., Пигдоров Д.И., Кривошеев В.П. - М.: Высш. школа, 1988. - 223 с.: ил.



Не сдавайте скачаную работу преподавателю!
Данную курсовую работу Вы можете использовать для написания своего курсового проекта.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем курсовую работу самостоятельно:
! Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ.
! Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу.
! Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться.
! План курсовой работы Нумерованным списком описывается порядок и структура будующей работы.
! Введение курсовой работы Что пишется в введении, какой объем вводной части?
! Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать.
! Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа.
! Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема.
! Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом.
! Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ.

Читайте также:
Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия.
Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта.
Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты.
Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести.
Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя.
Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика.

Сейчас смотрят :

Курсовая работа Сенсорное воспитание дошкольников
Курсовая работа Стили управления организацией
Курсовая работа Анализ факторов повышения объема производства и реализации ОАО "Биомашприбор"
Курсовая работа Организационная структура коммерческих банков
Курсовая работа Урок физической культуры в школе: особенности подготовки и проведения
Курсовая работа Формирование ассортимента товаров в различных типах торговых предприятий
Курсовая работа Планирование и прогнозирование на предприятиях общественного питания
Курсовая работа Особенности работы социального педагога с детьми из неполной семьи
Курсовая работа Аудит расчетов с прочими дебиторами и кредиторами
Курсовая работа Особенности функционального базиса письма у старших дошкольников с нарушением речи
Курсовая работа Анализ инвестиционной привлекательности предприятия
Курсовая работа Учет расчетов по налогу на прибыль, нераспределенной прибыли и анализ прибыли и рентабельности на примере предприятия Шарканского райпо
Курсовая работа Математическое мышление младших школьников
Курсовая работа Анализ и оценка финансового состояния предприятия
Курсовая работа Финансовое планирование на предприятии (на примере ОАО "Северное сияние")