Решение задач и создание компонента в Delphi
ОТЧЕТ
по
курсовой работе
по
программированию и основам алгоритмизации
Решение
задач и создание компонента в Delphi
Томск
2011 г.
РЕФЕРАТ
Всего страниц, приложение, рисунков.
Цель данной курсовой работы заключается в
закреплении и расширении теоретических и практических знаний, в развитии
навыков программирования на Delphi.
Для решения поставленных задач необходимо:
. Проанализировать каждую задачу.
. Выбрать наиболее рациональный метод решения
задач, т. е применяемый алгоритм.
СОДЕРЖАНИЕ
1. Введение
. Решение поставленных задач
.1 Поставленные задачи
.2 Реализация поставленных задач
.2.1 Задача № 1
.2.2 Анализ полученных результатов
.3.1 Задача № 2
.3.2 Анализ полученных результатов
. Заключение
. Список литературы
. Приложение 1 (Листинг модуля задач
№ 1, 2 3)
1.
Введение
Научно-технический
прогресс стремительно увеличивает темпы обработки информации. В связи с этим,
резко возрастает потребность в быстром и качественном решении сложных задач.
Все это требует максимального упрощения и ускорения процесса разработки
приложений и использование ранее произведенных программных фрагментов.
Cреда Delphi включает в себя полный набор
визуальных инструментов для скоростной разработки приложений (RAD - rapid
application development), поддерживающей разработку пользовательского
интерфейса и подключение к корпоративным базам данных.- это греческий город,
где жил дельфийский оракул. И этим именем был назван новый программный продукт
с феноменальными характеристиками.- это комбинация нескольких важнейших
технологий:
· Высокопроизводительный компилятор в
машинный код
· Объектно-ориентированная модель
компонент
· Визуальное (а, следовательно, и
скоростное) построение приложений из программных прототипов
· Масштабируемые средства для построения
баз данных.- библиотека визуальных компонент, включает в себя стандартные
объекты построения пользовательского интерфейса, объекты управления данными,
графические объекты, объекты мультимедиа, диалоги и объекты управления файлами,
управление DDE и OLE. Визуальные компоненты в Delphi обладают большой
гибкостью. [1]использует структурный объектно-ориентированный язык (Object
Pascal), который сочетает с одной стороны выразительную мощь и простоту
программирования, характерную для языков 4GL, а с другой стороны эффективность
языка 3GL. Программисты немедленно могут начать производить работающие
приложения, и им не придется для этого изучать особенности программирования
событий в Windows. Delphi полностью поддерживает передовые программные
концепции включая инкапсуляцию, наследование, полиморфизм и управление
событиями.
В данном отчёте приведены результаты курсовой
работы по программированию в среде Delphi.
Во время этой работы было реализовано решение поставленных задач с
использованием ЭВМ.
В отчете представлены: постановка задачи,
листинг программы, схема алгоритма реализации, подробное описание решения
поставленных задач.
2. РЕШЕНИЕ ПОСТАВЛЕННЫХ ЗАДАЧ
.1 Поставленные задачи
1. Целой переменной s
присвоить сумму цифр трёхзначного целого числа k.
. Числа Фибоначчи (fn)
определяются формулами f0=f1=1;
fn-1+fn-2
при n=2,3… Определить
40-е число Фибоначчи.
Для решения поставленных задач использовался
язык программирования Object Pascal. Программы написаны с использованием многих
функций, процедур и компонентов Delphi.
.2 Реализация поставленных задач
.2.1 Задача №1
Целой переменной s присвоить сумму цифр
трёхзначного целого числа k.
Для решения данной задачи необходимо написать
программу которая находила бы количество сотен, десятков и единиц трёхзначного
числа, и считала их сумму.
Приступим к созданию формы. Внешний вид формы,
отвечающей за создание интерфейса пользователя для решения задачи, приведён на
рис.1
Рис. 1. Интерфейс программы
На форме расположим окнa
редактирования Edit1,Edit2.
С помощью Label1,Label2
поясняются окна редактирования: «Введите число k»,
«S». При нажатии на
кнопку Button1
«Вычислить» организуется захват события "Нажатие на кнопку", при
котором происходит обработка информации, введённой в окно Edit1. В результате
окно Edit2 выводит результат работы программы. Нажатие на кнопку Bitbtn1
"Close"
позволяет прервать выполнение программы.
Блок-схема алгоритма решения задачи №1 приведена
на рисунке 2:
Рис.2. Блок-схема алгоритма решения задачи №1
В блоке 1 вводится переменная. В блоке 2
происходит вычисление суммы. В блоке 3 происходит вывод результата.
Распечатка процедуры приведена в листинге 1:
Листинг 1
procedure
TForm1.Button1Click(Sender: TObject);:=StrToInt(Edit1.Text);:=k div 100+k div
10 mod 10+k mod 10;:=IntToStr(s);.Text:=ResultStr;;
программирование delphi
алгоритмическое
Подробная распечатка модуля, решающего
поставленную задачу, представлена в приложении A
(часть 1).
2.2.2 Анализ полученных результатов
Для проверки правильности выполнения программы
произведем расчет математически, полученные выражения сравним с результатом
выполнения программы.
Математический расчет:
K=135
S=1+3+5=9
Результат работы программы приведены на рис3.
Рис.3.Результат работы программы
Полученные результаты совпадают. Из этого можно
сделать вывод о правильности работы программы при вычислении суммы цифр
трёхзначного целого числа k.
.3.1 Задача №2
Числа Фибоначчи (fn) определяются формулами
f0=f1=1; fn-1+fn-2 при n=2,3… Определить 40-е число Фибоначчи.
Рассмотрим алгоритм решения задачи.
Числа Фибоначчи - это ряд чисел, в котором
каждый последующий член равен сумме двух предыдущих. Любой n-ый член ряда можно
найти по формуле Бине: (a1n - a2n)/√5. Где a1 = (1 +√5)/2; a2 = (1
- √5)/2.
Теперь приступим к созданию формы. Внешний вид
формы, отвечающей за создание интерфейса пользователя для решения задачи,
приведён на рис. 4:
Рис.4. Интерфейс программы
Для удобства просмотра результатов выполнения
поставленной задачи на форму был помещен стандартный компонент Edit1.
Окно поясняется Label1
- «40-е число Фибоначчи». При нажатии на кнопку Button1 «Вычислить»
организуется захват события "Нажатие на кнопку", при котором
происходит обработка информации. В результате окно редактирования Edit1 выводит
результат работы программы. Нажатие на кнопку BitBtn1
- "Close"
позволяет прервать выполнение программы.
Рис. 5. Блок-схема алгоритма решения задачи №2
В блоке 1 по формуле рассчитывается 40-е число
Фибоначчи.
Распечатка процедуры представлена в листинге 2:
Листинг
2TForm1.Button1Click(Sender: TObject);:=40;
{Вычисляем}:=(1 + sqrt(5))/2;:=-(1 -
sqrt(5))/2;:=(exp(N*ln(a1)) - exp(N*ln(a2)))/sqrt(5);
{Выводим
рез-тат}.Text:=FloatToStr(f);;
Подробная распечатка модуля, решающего
поставленную задачу, представлена в приложении 1 (часть 2).
.2.2 Анализ полученных результатов
Результат работы программы представлен на
рисунке ниже:
Рис. 6.Результат работы программы.
По результатам работы программы, можно сделать
вывод, что полученные данные полностью соответствуют действительности.
Заключение
Данные программы отвечают заданным требованиям.
Вычислена сумма цифр трёхзначного целого числа k.; по формуле Бине определено
40-е число Фибоначчи.
В процессе выполнения курсовой работы были
освоены многие особенности и тонкости программирования в среде Delphi.
Также был освоен способ перехода от алгоритмического решения к непосредственной
программной реализации на языке Object
Pascal с использованием
всех необходимых средств данного языка. После анализа полученных результатов
можно сделать вывод о правильности решения поставленных задач.
Список литературы
1. Вебсайт http://www.citforum.ru/list.php?article=23791.
. Фаронов B.
Delphi. Программирование
на языке высокого уровня. - СПб.: Питер, 2006. - 640 с.
. Парижский С.М. Delphi Учимся на
примерах
. Возневич Э. Delphi. Освой
самостоятельно. - М.: Восточная Книжная Компания, 1996. - 736 с.
. Фленов М. Библия Delphi.
- СПб.: БХВ-Петербург, 2007. - 865 с.
. Рубенкинг Н. Программирование в
Delphi для “чайников”. -К.: Диалектика, 1996. - 304 с.
Приложения
Приложение 1
(Листинг модуля задач №1, 2,)
// ЧАСТЬ 1 (задача №1)
nit Unit22;
, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,, StdCtrls, Buttons;
= class(TForm): TLabel;: TLabel;:
TEdit;: TEdit;: TBitBtn;: TButton;: TButton;Button1Click(Sender:
TObject);Button2Click(Sender: TObject);
{ Private declarations }
{ Public declarations };
,k:integer;:string;
: TForm1;
{$R *.dfm}
TForm1.Button1Click(Sender:
TObject);:=StrToInt(Edit1.Text);:=k div 100+k div 10 mod 10+k mod
10;:=IntToStr(s);.Text:=ResultStr;;TForm1.Button2Click(Sender:
TObject);.Text:=' ';.Text:=' ';;.
//ЧАСТЬ
2 ( задача
№ 2)Unit1;
, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,, Buttons, StdCtrls;
= class(TForm): TEdit;: TLabel;:
TButton;: TBitBtn;Button1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };
var
{Переменная для хранения числа, тип real
так как значение 40 член ряда Фидоначчи больше максимального значения типа real}
f: extended;
{a1
и a2 необходимы для
вычисления}
a1, a2:
real;
{Номер числа в ряду}
n: integer;: TForm1;
{$R
*.dfm}TForm1.Button1Click(Sender: TObject);:=40;
{Вычисляем}:=(1 + sqrt(5))/2;:=-(1 -
sqrt(5))/2;:=(exp(N*ln(a1)) - exp(N*ln(a2)))/sqrt(5);
{Выводим
рез-тат}.Text:=FloatToStr(f);;