Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Решение вычислительных задач в объективно-ориентированной среде визуального программирования Delphi

РефератПомощь в написанииУзнать стоимостьмоей работы

Цель курсовой работы — закрепление знаний и навыков, приобретаемых при изучении дисциплины на лекциях, лабораторно-практических, индивидуальных и самостоятельных занятиях по использованию современных технологий и средств разработки программных продуктов. Для решения задачи нужны элементы ввода, вывода и элемент запуска обработки массива. Для ввода и вывода чисел будет использоваться объект Memo… Читать ещё >

Решение вычислительных задач в объективно-ориентированной среде визуального программирования Delphi (реферат, курсовая, диплом, контрольная)

Выполнение курсовой работы является важной составной частью в изучении дисциплины «Объектно-ориентированный анализ и программирование», которая является обязательной дисциплиной базовой части профессионального цикла дисциплин подготовки студентов по направлению подготовки 80 500.62 «Бизнес информатика».

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

Задачи курсовой работы — приобретение навыков.

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

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

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

Описание задания

Разработка программы для решения 5-ти задач в интегрированной среде объективно-ориентированного программирования визуальной программы Delphi. В рамках данного задания необходимо обеспечить решение следующих задач:

Задача 1: Найти y в данном выражении:

y = sin x +.

Задача 2: Вычислить выражение.

y = ln +, a = 5410.

Задача 3: Вычислить сумму ряда S = с погрешностью E>0.

Задача 4: Написать программу вычисления суммы отрицательных, произведения положительных и количества нулевых значений в одномерном массиве Задача 5: Получить матрицу [Bij], i, j= из матрицы [Aij], i, j=1 путем перестановки столбцов — первого с последним, второго с предпоследним и т. д.

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

Решение задачи 1

Для решения задачи нужны элементы ввода, вывода и элемент запуска счёта чисел. Для ввода и вывода чисел будет использоваться объект Edit. Для запуска вычисления чисел будет использоваться объект Button.

Внешний вид вкладки приведён на рисунке 1.

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

procedure TForm1. ButtonRez1Click (Sender: TObject);

begin.

if EditX1. Text=''.

then ShowMessage ('Укажите X').

else.

if (StrToFloat (EditX1.Text))>1.

then ShowMessage ('Sin (X)>1').

else.

if (StrToFloat (EditX1.Text))<-1.

then ShowMessage ('Sin (X)<-1').

else.

EditRez1.Text:=FloatToStr (Sin (StrToFloat (EditX1.Text))+.

Exp (5*Ln (Abs (Sqr (StrToFloat (EditX1.Text))+1)));

Sqrt (Abs ((Sqr (StrToFloat (EditX1.Text)))/(Sqr (StrToFloat (EditX1.Text)).

+5)))).

end;

На рисунках со 2-ой по 5-ую приведены иллюстрации работы процедуры:

Рис. 3 (Результат вычисления при некорректных данных)

Рис. 4 (Результат вычисления при некорректных данных)

Рис. 5 (Результат вычисления при некорректных данных)

Решение задачи 2.

Для решения задачи нужны элементы ввода, вывода и элемент запуска счёта чисел. Для ввода и вывода чисел будет использоваться объект Edit. Для запуска вычисления чисел будет использоваться объект Button.

Внешний вид вкладки приведён на рисунке 6.

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

procedure TForm1. ButtonRez2Click (Sender: TObject);

var a: Real;

begin.

a:=54*Exp ((-3)*Ln (10));

if EditX2. Text=''.

then ShowMessage ('Укажите X').

else.

if (StrToFloat (EditX2.Text))<-1.

then ShowMessage ('Sin (X)<-1').

else.

if (StrToFloat (EditX2.Text))>1.

then ShowMessage ('Sin (X)>1').

else.

if (StrToFloat (EditX2.Text))<0.

then ShowMessage ('Логарифмическая ошибка').

else.

EditRez2.Text:=FloatToStr (Ln (Sin (StrToFloat (EditX2.Text)*.

Sqr ((1+Cos (a/StrToFloat (EditX2.Text)))/a*StrToFloat (EditX2.Text).

*sin (a*strtofloat (EditX2.Text)))))+sqrt (Sin (StrToFloat (EditX2.Text)).

/StrToFloat (EditX2.Text))).

end;

На рисунках с 7-ой по 10-ую приведены иллюстрации работы процедуры:

Рис. 8 (Результат вычисления при некорректных данных)

Рис. 9 (Результат вычисления при некорректных данных)

Рис. 10 (Результат вычисления при некорректных данных)

Решение задачи 3.

Для решения задачи нужны элементы ввода, вывода и элемент запуска счёта чисел. Для ввода и вывода чисел будет использоваться объект Edit. Для запуска вычисления чисел будет использоваться объект Button.

Внешний вид вкладки приведён на рисунке 11.

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

procedure TForm1. ButtonRez3Click (Sender: TObject);

var S, y, z:Real;

i:Integer;

begin.

S:=0;

y:=0;

z:=0;

if EditEps. Text=''.

then ShowMessage ('Укажите Eps').

else.

if EditN. Text=''.

then ShowMessage ('Укажите N').

else.

for i:=0 to StrToInt (EditN.Text)-1 do.

begin.

z:=z+1;

y:=(1/sqr (z));

S:=(S)+(y);

end;

EditRez3.Text:=FloatToStr (S).

end;

На рисунках с 12-ой по 14-ую приведены иллюстрации работы процедуры:

Рис. 13 (Результат вычисления при некорректных данных)

Рис. 14 (Результат вычисления при некорректных данных)

Решение задачи 4.

Для решения задачи нужны элементы ввода, вывода и элемент запуска обработки массива. Для ввода и вывода чисел будет использоваться объект Memo. Для вывода данных будет использоваться объект Edit. Для запуска обработки массива будет использоваться объект Button.

Внешний вид вкладки приведён на рисунке 15.

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

procedure TForm1. ButtonRez4Click (Sender: TObject);

var i: Integer;

k, s, z:Real;

begin.

z:=1;

k:=0;

s:=0;

if Memo1.Lines.Count=0.

then ShowMessage ('Укажите массив').

else.

for i:=0 to Memo1.Lines.Count-1 do.

begin.

if StrToFloat (Memo1.Lines.Strings[i])=0.

then s:=s+1.

else.

if StrToFloat (Memo1.Lines.Strings[i])>0.

then z:=z*StrToFloat (Memo1.Lines.Strings[i]).

else.

if StrToFloat (Memo1.Lines.Strings[i])<0.

then k:=k+StrToFloat (Memo1.Lines.Strings[i]).

else.

end;

EditPol.Text:=FloatToStr (z);

EditKol.Text:=FloatToStr (s);

EditOtr.Text:=FloatToStr (k).

end;

На рисунках с 16-ой по 17-ую приведены иллюстрации работы процедуры:

Рис. 17 (Результат вычисления при некорректных данных)

Решение задачи 5.

Для решения задачи нужны элементы ввода, вывода, отображение строк и столбцов и элемент запуска обработки матрицы. Для ввода и вывода чисел будет использоваться объект Edit. Для отображения строк и столбцов будет использоваться объект StringGrid. Для запуска обработки матрицы будет использоваться объект Button.

Внешний вид вкладки приведён на рисунке 18.

Процедуры, изменения размера матрицы при вводе их значений:

procedure TForm1. EditMChange (Sender: TObject);

begin.

if EditM. Text' '.

then.

begin.

StringGrid1.RowCount:=strtoint (EditM.Text);

StringGrid2.RowCount:=strtoint (EditM.Text).

end;

end;

procedure TForm1. EditWChange (Sender: TObject);

begin.

if EditW. Text' '.

then.

begin.

StringGrid1.ColCount:=strtoint (EditW.Text);

StringGrid2.ColCount:=strtoint (EditW.Text);

end;

end;

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

procedure TForm1. ButtonRez5Click (Sender: TObject);

var i, j, z:Integer;

begin.

if EditM. Text=''.

then ShowMessage ('Укажите количество строк').

else.

if EditW. Text=''.

then ShowMessage ('Укажите количество столбцов').

else.

begin.

z:=0;

for i:=0 to stringgrid1. RowCount-1 do.

begin.

for j:=0 to stringgrid1. ColCount-1 do.

begin.

if StringGrid1. Cells[i, j]=''.

then z:=1.

end;

end;

end;

if z=1 then ShowMessage ('Введите числа матрицы').

else.

for i:=0 to stringgrid1. RowCount-1 do.

begin.

for j:=0 to StringGrid1. ColCount-1 do.

begin.

StringGrid2.Cells[i, j]: =StringGrid1.Cells[i, j];

end;

end;

end;

На рисунках с 19-ой по 22-ую приведены иллюстрации работы процедуры:

Рис. 20 (Результат вычисления при некорректных данных)

Рис. 21 (Результат вычисления при некорректных данных)

Рис. 22 (Результат вычисления при некорректных данных)

объектный ориентированный программирование delphi

В результате выполнения курсовой работы по дисциплине «Объектно-ориентированный анализ и программирование», я освоила язык программирования Delphi, в виде составления и написания программ. Приобрела навыки решения прикладных задач, а так же навыки разработки и отладки программ в современных системах программирования. Пользуясь литературой, я углубленно изучила материал по программированию. Я узнала такие объекты как: «Edit» — объект ввода и вывода данных, «Button» — объект для реализации в программе команд, «StringGrid» — объект для отображения различных данных в табличной форме, «Label» — объект для отображения надписей и меток на форме, которые не меняются в течение всего времени работы программы и «Memo» — текстовый редактор. В итоге всего мной изученного, я могу сказать что дисциплина «Объектно-ориентированный анализ и программирование» не легка, но очень интересна и пригодиться, для дальнейшей работы по направлению «Бизнес-инфоматика».

Список используемой литературы

  • 1. В. В. Фаронов «Турбо Паскаль Начальный курс Учебное пособие"// Издательство «ОМД Групп» 2003, 579 стр.
  • 2. Брантд З. «Анализ данных. Статистические и вычислительные методы для научных работников и инженеров» // АСТ МИР, 2008, 688стр.
  • 3. Кулаичев А. П. «Методы и средства комплексного анализа данных» // Инфра-М, 2011. 512стр.
  • 4. Владимир Попов. «Паскаль и Дельфи. Самоучитель.» // Питер, 2003 г., 544 с.
  • 5. Потопахин В. В. «TurboPascal: решение сложных задач.» // Издательство «БХВ-Петербург», 2006, 208 с.
  • 6. Шпак Ю. А. «TurboPascal 7.0 на примерах» // Издательство «Юниор», 2003, 498 с.
  • 7. Рапаков Г. Г., Ржеуцкая С. Ю. «TurboPascal для студентов и школьников.» // СПб.: БХВ-Петербург, 2004.
  • 8. Каплан В. Е. и др. «Статистическая обработка и анализ экономических данных» // Феникс, 2007. 336стр.
  • 9. Тюрин Ю. Н. «Анализ данных на компьютере» // Форум, 2010. 368стр.
  • 10. Гмурман В. Е. «Теория вероятностей и математическая статистика» // М.: Высшая школа, 2009. 479стр.
  • 11. Павловская Т. А. «Паскаль. Программирование на языке высокого уровня: Учебник для вузов.» // СПб.: Питер, 2007. — 293 с.
  • 12. Бугров Я. С., Никольский С. М. Высшая математика: В 3-х т. М: Дрофа, 2005.
  • 13. Алексеев Е. Р., Чеснокова О. В., Кучер Т. В. FreePascal и Lazarus. Учебник по программированию. — М.: ALT Linux: Издательский дом ДМК-пресс, 2010. — 440 с.
  • 14. Мельников С. В. Delphi и TurboPascal на занимательных примерах. — СПб.: БХВ-Петербург, 2006. — 448 с.
  • 15. Алексеев Е. Р., Чеснокова О. В., Кучер Т. В. Самоучитель по программированию на FreePascal и Lazarus. — М.: ALT Linux: Издательский дом ДМК-пресс, 2011. — 503 с.
  • 16. Рубанцев В. Большой самоучитель Delphi XE3. — 2013.

Приложение

Текстпрограммы.

program ProjectZadania1;

uses.

Forms,.

Zadanie1 in 'Zadanie1.pas' {Form1};

{$R *.res}.

begin.

Application.Initialize;

Application.CreateForm (TForm1, Form1);

Application.Run;

end.

unit Zadanie1;

interface.

uses.

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

Dialogs, Grids, StdCtrls, ComCtrls;

type.

TForm1 = class (TForm).

PageControl1: TPageControl;

Zadanie1: TTabSheet;

LabelX1: TLabel;

LabelRez1: TLabel;

EditX1: TEdit;

EditRez1: TEdit;

ButtonRez1: TButton;

Zadanie2: TTabSheet;

LabelX2: TLabel;

LabelRez2: TLabel;

EditX2: TEdit;

EditRez2: TEdit;

ButtonRez2: TButton;

Zadanie3: TTabSheet;

LabelN: TLabel;

LabelRez3: TLabel;

EditN: TEdit;

EditRez3: TEdit;

ButtonRez3: TButton;

Zadanie4: TTabSheet;

ButtonRez4: TButton;

Memo1: TMemo;

Zadanie5: TTabSheet;

LabelStrok: TLabel;

LabelStolb: TLabel;

EditM: TEdit;

EditW: TEdit;

StringGrid1: TStringGrid;

ButtonRez5: TButton;

LabelEps: TLabel;

EditEps: TEdit;

EditOtr: TEdit;

EditPol: TEdit;

EditKol: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

StringGrid2: TStringGrid;

procedure ButtonRez1Click (Sender: TObject);

procedure ButtonRez2Click (Sender: TObject);

procedure ButtonRez3Click (Sender: TObject);

procedure ButtonRez4Click (Sender: TObject);

procedure EditMChange (Sender: TObject);

procedure EditWChange (Sender: TObject);

procedure ButtonRez5Click (Sender: TObject);

private.

{ Private declarations }.

public.

{ Public declarations }.

end;

var.

Form1: TForm1;

implementation.

{$R *.dfm}.

procedure TForm1. ButtonRez1Click (Sender: TObject);

begin.

if EditX1. Text=''.

then ShowMessage ('Укажите X').

else.

if (StrToFloat (EditX1.Text))>1.

then ShowMessage ('Sin (X)>1').

else.

if (StrToFloat (EditX1.Text))<-1.

then ShowMessage ('Sin (X)<-1').

else.

EditRez1.Text:=FloatToStr (Sin (StrToFloat (EditX1.Text))+.

Exp (5*Ln (Abs (Sqr (StrToFloat (EditX1.Text))+1)));

Sqrt (Abs ((Sqr (StrToFloat (EditX1.Text)))/(Sqr (StrToFloat (EditX1.Text)).

+5)))).

end;

procedure TForm1. ButtonRez2Click (Sender: TObject);

var a: Real;

begin.

a:=54*Exp ((-3)*Ln (10));

if EditX2. Text=''.

then ShowMessage ('Укажите X').

else.

if (StrToFloat (EditX2.Text))<-1.

then ShowMessage ('Sin (X)<-1').

else.

if (StrToFloat (EditX2.Text))>1.

then ShowMessage ('Sin (X)>1').

else.

if (StrToFloat (EditX2.Text))<0.

then ShowMessage ('Логарифмическая ошибка').

else.

EditRez2.Text:=FloatToStr (Ln (Sin (StrToFloat (EditX2.Text)*.

Sqr ((1+Cos (a/StrToFloat (EditX2.Text)))/a*StrToFloat (EditX2.Text).

*sin (a*strtofloat (EditX2.Text)))))+sqrt (Sin (StrToFloat (EditX2.Text)).

/StrToFloat (EditX2.Text))).

end;

procedure TForm1. ButtonRez3Click (Sender: TObject);

var S, y, z:Real;

i:Integer;

begin.

S:=0;

y:=0;

z:=0;

if EditEps. Text=''.

then ShowMessage ('Укажите Eps').

else.

if EditN. Text=''.

then ShowMessage ('Укажите N').

else.

for i:=0 to StrToInt (EditN.Text)-1 do.

begin.

z:=z+1;

y:=(1/sqr (z));

S:=(S)+(y);

end;

EditRez3.Text:=FloatToStr (S).

end;

procedure TForm1. ButtonRez4Click (Sender: TObject);

var i: Integer;

k, s, z:Real;

begin.

z:=1;

k:=0;

s:=0;

if Memo1.Lines.Count=0.

then ShowMessage ('Укажите массив').

else.

for i:=0 to Memo1.Lines.Count-1 do.

begin.

if StrToFloat (Memo1.Lines.Strings[i])=0.

then s:=s+1.

else.

if StrToFloat (Memo1.Lines.Strings[i])>0.

then z:=z*StrToFloat (Memo1.Lines.Strings[i]).

else.

if StrToFloat (Memo1.Lines.Strings[i])<0.

then k:=k+StrToFloat (Memo1.Lines.Strings[i]).

else.

end;

EditPol.Text:=FloatToStr (z);

EditKol.Text:=FloatToStr (s);

EditOtr.Text:=FloatToStr (k).

end;

procedure TForm1. EditMChange (Sender: TObject);

begin.

if EditM. Text''.

then.

begin.

StringGrid1.RowCount:=strtoint (EditM.Text);

StringGrid2.RowCount:=strtoint (EditM.Text).

end;

end;

procedure TForm1. EditWChange (Sender: TObject);

begin.

if EditW. Text''.

then.

begin.

StringGrid1.ColCount:=strtoint (EditW.Text);

StringGrid2.ColCount:=strtoint (EditW.Text);

end;

end;

procedure TForm1. ButtonRez5Click (Sender: TObject);

var i, j, z:Integer;

begin.

if EditM. Text=''.

then ShowMessage ('Укажите количество строк').

else.

if EditW. Text=''.

then ShowMessage ('Укажите количество столбцов').

else.

begin.

z:=0;

for i:=0 to stringgrid1. RowCount-1 do.

begin.

for j:=0 to stringgrid1. ColCount-1 do.

begin.

if StringGrid1. Cells[i, j]=''.

then z:=1.

end;

end;

end;

if z=1 then ShowMessage ('Введите числа матрицы').

else.

for i:=0 to stringgrid1. RowCount-1 do.

begin.

for j:=0 to StringGrid1. ColCount-1 do.

begin.

StringGrid2.Cells[i, j]: =StringGrid1.Cells[i, j];

end;

end;

end;

end.

Показать весь текст
Заполнить форму текущей работой