Помощь в написании студенческих работ
Антистрессовый сервис

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

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

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

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

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

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

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

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

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

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

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

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

В рамках данного задания необходимо обеспечить решение следующих задач:

Задача 1: Найти y в данном выражении: y = arctg (x + 1) + e+ ln (x+2).

Задача 2: Вычислить выражение z = ln; y = 10.

Задача 3: Вычислить сумму первых N слагаемых S = 1+.

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

Задача 4: Сформировать массив [Ai] из элементов одномерного массива [Bi] по закону A= (B+B)/4, i =.

Задача 5: В квадратной матрице [Aij], i, j= заменить нулями элементы с четной суммой индексов, не превышающие некоторого числа X.

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

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

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

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

(Внешний вид вкладки для решения первой задачи).

Рис. 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)+1)/.

Cos (strtofloat (EditX1.Text)+1))+Exp (strtofloat (EditX1.Text)+1).

+Ln (Sqr (strtofloat (EditX1.Text))+2)).

end;

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

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

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

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

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

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

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

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

(Внешний вид вкладки для решения второй задачи).

Рис. 6 (Внешний вид вкладки для решения второй задачи)

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

procedure TForm1. ButtonRez2Click (Sender: TObject);

const y=10;

begin.

if EditX2. Text=' '.

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

else.

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

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

else.

EditRez2.Text:=FloatToStr (Ln (Sqrt ((y-sqrt (StrToFloat (EditX2.Text)))*.

(StrToFloat (EditX2.Text)-(y/(y+sqr (StrToFloat (EditX2.Text)))))))).

end;

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

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

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

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

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

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

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

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

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

(Внешний вид вкладки для решения третьей задачи).

Рис. 10 (Внешний вид вкладки для решения третьей задачи)

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

procedure TForm1. ButtonRez3Click (Sender: TObject);

var S, y: Real;

i:Integer;

begin.

S:=0;

y:=0;

if EditN. Text=' '.

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

else.

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

begin.

y:=(((i+1)+i)/(i+1));

S:=(S)+(y);

end;

EditRez3.Text:=FloatToStr (S).

end;

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

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

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

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

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

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

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

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

(Внешний вид вкладки для решения четвертой задачи).

Рис. 14 (Внешний вид вкладки для решения четвертой задачи)

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

procedure TForm1. ButtonRez4Click (Sender: TObject);

var i, j: Integer;

begin.

if Memo1.Lines.Count=0.

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

else.

Memo2.Lines.Clear;

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

begin.

Memo2.Lines.Add ('0');

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

begin.

Memo2.Lines.Strings[i]: =FloatToStr ((StrToFloat (Memo2.Lines.Strings[i]).

+StrToFloat (Memo1.Lines.Strings[i+j]))/4).

end;

end;

end;

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

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

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

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

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

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

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

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

(Внешний вид вкладки для решения пятой задачи).

Рис. 17 (Внешний вид вкладки для решения пятой задачи)

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

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.

if EditX5. Text=' '.

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

else.

if StringGrid1. RowCountStringGrid1.ColCount.

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.

if StringGrid1. Cells[i, j]>EditX5.Text.

then.

StringGrid2.Cells[i, j]: =FloatToStr (0).

else.

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

end;

end;

end;

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

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

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

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

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

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

программа задача интегрированный delphi.

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

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

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

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

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

Заключение.

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

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

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

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

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

program Project1;

uses.

Forms,.

Unit1 in 'Unit1.pas' {Form1};

{$R *.res}.

begin.

Application.Initialize;

Application.CreateForm (TForm1, Form1);

Application.Run;

end.

unit Unit1;

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;

LabelX5: TLabel;

EditM: TEdit;

EditW: TEdit;

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

ButtonRez5: TButton;

EditX5: TEdit;

Memo2: TMemo;

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)+1)/.

Cos (strtofloat (EditX1.Text)+1))+Exp (strtofloat (EditX1.Text)+1).

+Ln (Sqr (strtofloat (EditX1.Text))+2)).

end;

procedure TForm1. ButtonRez2Click (Sender: TObject);

const y=10;

begin.

if EditX2. Text=' '.

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

else.

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

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

else.

EditRez2.Text:=FloatToStr (Ln (Sqrt ((y-sqrt (StrToFloat (EditX2.Text)))*.

(StrToFloat (EditX2.Text)-(y/(y+sqr (StrToFloat (EditX2.Text)))))))).

end;

procedure TForm1. ButtonRez3Click (Sender: TObject);

var S, y: Real;

i:Integer;

begin.

S:=0;

y:=0;

if EditN. Text=' '.

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

else.

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

begin.

y:=(((i+1)+i)/(i+1));

S:=(S)+(y);

end;

EditRez3.Text:=FloatToStr (S).

end;

procedure TForm1. ButtonRez4Click (Sender: TObject);

var i, j: Integer;

begin.

if Memo1.Lines.Count=0.

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

else.

Memo2.Lines.Clear;

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

begin.

Memo2.Lines.Add ('0');

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

begin.

Memo2.Lines.Strings[i]: =FloatToStr ((StrToFloat (Memo2.Lines.Strings[i]).

+StrToFloat (Memo1.Lines.Strings[i+j]))/4).

end;

end;

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.

if EditX5. Text=' '.

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

else.

if StringGrid1. RowCountStringGrid1.ColCount.

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.

if StringGrid1. Cells[i, j]>EditX5.Text.

then.

StringGrid2.Cells[i, j]: =FloatToStr (0).

else.

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

end;

end;

end;

end.

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