Реферат: Программирование на Delphi с алгоритмами и кодами

Содержание

 

Введение

Минимальные системные требования для использования Delphi

План работы для первой задачи

Главная программа

Свойства и структура главной программы

Код главной программы

Задание №1

Алгоритм первой программы:

Свойства и структура первой программы

Код первой программы

Задание №2

Свойства и структура второй программы

Код второй программы

Результат выполнения программы

Задание № 3

Алгоритм третьей программы

Свойства и структура третьей программы

Код третьей программы

Инструкция по применению программы

Заключение

Список литературы

 


Введение

Целью данной курсовойработы является выполнение заданий на Delphi по предмету “программирование на языках высокого уровня».

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

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

Длясоздания программы использовались компоненты из вкладок Standardи Additional:

Button– кнопка;

StringGrid– таблица для отображения каких-либозначений;

Label – компонента, для отображения нередактируемого текста;

Edit – компонент ввода-вывода текстовойстрокиж

Panel – панель с надписью;

TChart – компонента для прорисовки графика.

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

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


Минимальные системные требования дляиспользования Delphi

 

Процессор- Intel Pentium 233 МГц и выше

Операционнаясистема — MicrosoftWindows XP,Windows 2000

Оперативнаяпамять — 64 Мбайт (рекомендуется 128 Мбайт)   

Пространствона жестком диске — 450 Мбайт

Монитор- SVGA или выше

Другоеаппаратное обеспечение — CD-ROM, мышь

План работы для первой задачи

 

Создаем форму и изменяемнеобходимые свойства главной формы в окне свойств:

Height — ширина формы;

Width — длина формы;

Caption — название формы.

Добавляем на главнуюформу необходимые элементы управления:

Button – запуск вычислений, открытие окнаграфика, выход из программы;

StringGrid– отображение таблицы значений x, y, s.

Label – отображение не редактируемоготекста;

Edit – ввод данных для вычислений.

Прописываем в компонентахEdit текст по умолчанию в свойство Text.

Изменяем свойствадобавленного элемента управления StringGrid:

ColCount

RowCount

FixedCols

FixedRows

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

Создаем отдельную формудля графика, на нее помещаем компонент TChart. Пишем команду ее открытия на одну из кнопок.

Запускаем программу сцелью проверки ее работоспособности. Сохраняем проект.

 

Планработы для второй задачи

 

Создаем форму и изменяемнеобходимые свойства главной формы в окне свойств:

Height — ширина формы;

Width — длина формы;

Caption — название формы.

Добавляем на главнуюформу необходимые элементы управления:

Button – запуск вычислений, открытие окнаграфика, выход из программы;

StringGrid– отображение таблицы значений x, y, s.

Label – отображение не редактируемоготекста;

Edit – ввод данных для формированиямассивов и вывода полученных числовых рядов.

Изменяем свойствадобавленного элемента управления StringGrid:

ColCount

RowCount

FixedCols

FixedRows

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

Планработы для третьей задачи

 

Создаем форму и изменяемнеобходимые свойства главной формы в окне свойств:

Height — ширина формы;

Width — длина формы;

Caption — название формы.

Задаем для формы регион,в который она будет вписана.

Пишем алгоритм движенияпо кромке экрана.Запускаем программу с целью проверки ее работоспособности.Сохраняем проект.

 

Кодглавнойпрограммы

 

unit Unit1;

interface

uses

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

Dialogs,ExtCtrls, StdCtrls;

type

TForm1 =class(TForm)

Button1:TButton;

Button2:TButton;

Button3:TButton;

Panel1:TPanel;

Panel2:TPanel;

Button4:TButton;

procedureButton4Click(Sender: TObject);

procedureButton1Click(Sender: TObject);

procedureButton2Click(Sender: TObject);

procedureButton3Click(Sender: TObject);

private

{ Privatedeclarations }

public

{ Publicdeclarations }

end;

var

Form1: TForm1;

implementation

uses Unit2,Unit4, Unit7;

{$R *.dfm}

procedureTForm1.Button4Click(Sender: TObject);

begin

Form1.Close; // закрывает главную форму и приложение

end;

procedureTForm1.Button1Click(Sender: TObject);

begin

form2.showmodal; // показывает форму задания № 1

end;

procedureTForm1.Button2Click(Sender: TObject);

begin

form4.showmodal; // показывает форму задания №2

end;

procedureTForm1.Button3Click(Sender: TObject);

begin

form7.showmodal; // показывает форму задание №3

end;

end.


Задание №1

1.        Построитьграфик:

/>

Алгоритм первой программы

 

Псевдокод:

Начало Расчет (a,b,n\x,y,s)

константа h=0.05

вещ s,y,a,b,x,su

цел i,n,j,k,p

ввод a,b,n

k:=round(1+(b-a)/h);

x=a

Цикл для i от одного до k

s:=(x-1)/3;

Цикл для j от двух до n

su:=1

Цикл для p от одного до j

su:=su*(x-1)/x

Все цикл

s:=s+su/j

Все цикл

y:=ln(x)

Вывод x,s,y

Построение графика наформе 3

x:=x+h

Все-цикл

Конец Расчет.

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

Edit – для ввода параметров вычисления;

Button1-кнопка для вычисления S и Y;

Button2-кнопка для закрытия формы;

Button3-кнопка для открытия формы сграфиком;

StringGrid1-таблица для вывода результатоввычислений;

Компоненты, которыеиспользовались для оформления:

Image1 – для вывода на экран задания;

Label- компонента для отображения текста.

Для вывода графикасоздана отдельная форма с компонентом Chart1.

 

Код первой программы

 

unit Unit2;

interface

uses

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

Dialogs,StdCtrls, Grids, ExtCtrls, Math, jpeg;

type

 TForm2 =class(TForm)

 Image1:TImage;

 StringGrid1:TStringGrid;

 Label1:TLabel;

 Label2:TLabel;

 Label3:TLabel;

 Edit1: TEdit;

 Edit2: TEdit;

 Edit3: TEdit;

 Button1:TButton;

 Button2:TButton;

 Button3:TButton;

 procedureButton2Click(Sender: TObject);

 procedureButton1Click(Sender: TObject);

 procedureButton3Click(Sender: TObject);

 private

 { Privatedeclarations }

 public

 { Publicdeclarations }

 end;

var

 Form2:TForm2;

implementation

uses Unit3;

{$R *.dfm}

procedureTForm2.Button2Click(Sender: TObject);

begin

Form2.Close; // закрывает форму задания №1

end;

procedure TForm2.Button1Click(Sender: TObject);// производит вычисления x, y, s, заполнение таблицы, постройка графика

const h=0.05;

vari,n,j,k,p:integer;

 s,y,a,b,x,su:real;

begin

a:=strtofloat(edit1.text);

b:=strtofloat(edit2.text);

n:=strtoint(edit3.text);

k:=round(1+(b-a)/h);

x:=a;

StringGrid1.ColWidths[0]:=20;// задает ширинустолбца

StringGrid1.cells[1,0]:='x';// задает подписьстолбца

StringGrid1.cells[2,0]:='s'; //задает подпись столбца

StringGrid1.cells[3,0]:='y'; //задает подпись столбца

for i:=1 to kdo

 begin

 s:=(x-1)/3;

 for j:=2 to ndo

 begin

 su:=1;

 for p:=1 to jdo

 su:=su*(x-1)/x;

 s:=s+su/j;

 end;

 y:=ln(x);

 StringGrid1.cells[0,i]:=inttostr(i);// нумерует строкитаблица

 StringGrid1.cells[1,i]:=floattostr(x);//выводит x

StringGrid1.cells[2,i]:=FloatToStr(Round(s*exp(10*ln(10)))/(exp(10*ln(10))));// выводит y

StringGrid1.cells[3,i]:=FloatToStr(Round(y*exp(10*ln(10)))/(exp(10*ln(10))));// выводит s

 Form3.Grafik.SeriesList[0].AddXY(x,ln(x),'',clRed);// строит график

 x:=x+h;

 end;

end;

procedureTForm2.Button3Click(Sender: TObject);

begin

form3.ShowModal; //показывает форму графика

end;

end.

 

Задание№2

 

Дана матрица размера n*(n+1), числа а1, …, аn+1,<sub/>b1, …, bn+1, натуральные числа р, g (p <= n, g <= n+1). Образовать новую матрицу размера(n+1)*(n+2) вставкой после строки с номером р данной матрицы новойстроки с элементами a1, …, an+1 и последующей вставкой после столбцас номером g нового столбца с элементами b1, …, bn+1.

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

Edit – для ввода параметров заполнения ивывода числовых рядов;

Button1-кнопка для заполнения числовыхрядов и массивов;

Button2-кнопка для закрытия формы;

StringGrid1-таблица для вывода начальногомассива a[i;j];

StringGrid2-таблица для вывода конечногомассива b[i;j];

Компоненты, которые использовалисьдля оформления:

Label- компонента для отображения текста.

Код второй программы

 

unit Unit4;

interface

uses

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

Dialogs,Grids, StdCtrls;

type

 TForm4 =class(TForm)

 Label2:TLabel;

 Label3:TLabel;

 Label4:TLabel;

 Edit1: TEdit;

 Label1:TLabel;

 Edit2: TEdit;

 Label5:TLabel;

 Edit3: TEdit;

 Button1:TButton;

 Button2:TButton;

 StringGrid1:TStringGrid;

 StringGrid2:TStringGrid;

 Edit4: TEdit;

 Edit5: TEdit;

 Label6:TLabel;

 Label7:TLabel;

 procedureButton1Click(Sender: TObject);

 procedureButton2Click(Sender: TObject);

 private

 { Privatedeclarations }

 public

 { Publicdeclarations }

 end;

var

 Form4:TForm4;

implementation

{$R *.dfm}

procedureTForm4.Button1Click(Sender: TObject);

vari,j,n,p,q:integer;

 mas1,mas,mas2:array[1..100,1..100]of integer;

 a,b:array[1..100]of integer;

begin

n:=strtoint(edit1.Text);

p:=strtoint(edit2.text);

q:=strtoint(edit3.Text);

edit4.Text:='';

edit5.text:='';

randomize;

for i:=1 ton+1 do

 begin

 a[i]:=random(98)+1; // формируем значения первогочислового ряда

edit4.Text:=edit4.Text+inttostr(a[i])+' '; //выводим значения первого числового ряда

b[i]:=random(98)+1;// формируем значения второго числового ряда

edit5.Text:=edit5.Text+inttostr(b[i])+' '; //выводим значения второго числового ряда

end;

// задаем количество стоки столбцов таблиц

stringgrid1.ColCount:=n+2;

stringgrid1.RowCount:=n+1;

stringgrid2.ColCount:=n+3;

stringgrid2.RowCount:=n+2;

// нумеруем строки истолбцы таблиц

for i:=1 to n do

 stringgrid1.Cells[0,i]:=inttostr(i);

for i:=1 ton+1 do

 stringgrid1.Cells[i,0]:=inttostr(i);

for i:=1 ton+1 do

 stringgrid2.Cells[0,i]:=inttostr(i);

for i:=1 ton+2 do

 stringgrid2.Cells[i,0]:=inttostr(i);

for i:=1 to ndo

 for j:=1 ton+1 do

 begin

mas1[i,j]:=random(98)+1; // формируем значенияисходного массива

stringgrid1.Cells[j,i]:=inttostr(mas1[i,j]); // выводим значения исходногомассива в таблицу

end;

// формируемпромежуточный массив вставкой строки в исходный массив

for i:=1 to pdo

 for j:=1 ton+1 do

 mas[i,j]:=mas1[i,j];

for j:=1 ton+1 do

 mas[p+1,j]:=a[j];

for i:=p+2 ton+1 do

 for j:=1 ton+1 do

 mas[i,j]:=mas1[i-1,j];

// формируем конечныймассив вставкой столбца в промежуточный массив

for j:=1 to qdo

 for i:=1 ton+1 do

 mas2[i,j]:=mas[i,j];

for i:=1 ton+1 do

 mas2[i,q+1]:=b[i];

for j:=q+2 ton+2 do

 for i:=1 ton+1 do

 mas2[i,j]:=mas[i,j-1];

for i:=1 ton+1 do

 for j:=1 ton+2 do

stringgrid2.Cells[j,i]:=inttostr(mas2[i,j]);// выводим в таблицу конечный массив

end;

procedureTForm4.Button2Click(Sender: TObject);

begin

form4.close; // закрывает форму задания №2

end;

end.

 

Результатвыполнения программы

 

/>

 

Задание№ 3

 

Движение закрашенногокруга по кромке экрана с изменением цвета при изменении направления движения.

Алгоритм третьей программы

 

Псевдокод:

Начало Движение (i,j)

цел i, j

Цикл для i от одного до конца ширин экрана

Задаем цвет круга

Двигаем круг

Задержка времени

Все цикл

Цикл для j от одного до конца высоты экрана

Задаем цвет круга

Двигаем круг

Задержка времени

Все цикл

Цикл для i от одного до начала ширин экрана

Задаем цвет круга

Двигаем круг

Задержка времени

Все цикл

Цикл для j от одного до начала высоты экрана

Задаем цвет круга

Двигаем круг

Задержка времени

Все цикл

Конец Движение.

Начало Создание формы

Задаем регион в виде круга

Задаем регион в качествевида формы

Конец Создание формы.

Код третьей программы

 

unit Unit7;

interface

uses

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

 Dialogs;

type

 TForm7 =class(TForm)

 procedureFormClick(Sender: TObject);

 procedureFormCreate(Sender: TObject);

 procedureFormDblClick(Sender: TObject);

 procedureFormShow(Sender: TObject);

private

 { Privatedeclarations }

 public

 { Publicdeclarations }

 end;

var

 Form7:TForm7;

implementation

const r=150;

{$R *.dfm}

procedureTForm7.FormClick(Sender: TObject); //движении круга по экрану

var

 i, j:integer;

begin

for i:=1 toscreen.Width-r do // пока не достигнут конец экрана

 begin

 form7.Color:=clGreen;//задаем форме зеленый цвет

 form7.Left:=i;//задаем отступ формы слева

 sleep(5); //задержка времени

 //form7.Top:=j;

 end;

for j:=1 toscreen.Height-r do // пока не достигнут низ экрана

 begin

 form7.Color:=clRed; // задаем форме красный цвет

 form7.Top:=j; //задаем отступ сверху

 sleep(5); // задержка времени

 end;

for i:=screen.Width-r downto 1 do //пока не достигнуто начало экрана

 begin

 form7.Color:=clBlue; // задаем форме синий цвет

 form7.Left:=i; // задаем отступ слева

 sleep(5); //задержка времени

 //form7.Top:=j;

 end;

forj:=screen.Height-r downto 1 do // пока не достигнут верх экрана

 begin

 form7.Color:=clYellow;// задаем форме желтый цвет

 form7.Top:=j;//задаем отступ сверху

 sleep(5); // задержка времени

 end;

end;

procedureTForm7.FormCreate(Sender: TObject); // задаемвизуальную форму формы задания№3

var

formRgn:HRGN;

//i, j:integer;

begin

 FormRgn:=createEllipticRgn(0,0,r,r);

 SetWindowRgn(Handle,FormRgn, True);

end;

procedureTForm7.FormDblClick(Sender: TObject);

begin

 close;

end;

procedureTForm7.FormShow(Sender: TObject);

begin

form7.Left:=1;

 form7.Top:=1;

end;

end.

Инструкция по применению программы

 

Для запуска курсовойработы нужно в папке «Туктаров» двойным щелчком запустить файл «Project» с расширением.ехе. На экранепоявится главное окно. На нем находятся три кнопки, каждая из которыхсоответствует одному из трех заданий.

При нажатии на первуюкнопку — «Задание 1» появится форма на которой будут находиться текст задания, таблицарезультатов расчета, управляющие кнопки. График строится автоматически при выполнениирасчетов. Расчеты производятся при нажатии кнопки «Старт». Для просмотраграфика необходимо воспользоваться кнопкой «График». Для возврата в основноеокно работы предназначена кнопка «Финиш».

При нажатии на вторуюкнопку — «Задание 2» на экране появится форма с полями задания значенийформирования массивов, таблицами для вывода массивов и управляющими кнопками. Заполнениемассивов в соответствии с заданием происходит по нажатии кнопки «Старт».Возврат к основному окну предусматривает кнопка «Финиш».

При нажатии на третьюкнопку «Задание 3» на экране появляется круг. Для начала движения необходимокликнуть на нем. После полного оборота по экрану станет доступным возврат в основноеокно программы нажатием клавиш Alt+F4.


Заключение

 

Преимущества:

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

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

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

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

Возникновениеошибочных ситуаций при работе программы:

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

Во втором задании кошибке может привести попытка сформировать массивы без задания их величины.

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


Список литературы

 

1.         Архангельский А. Я.Программирование в Delphi г. Москва:издательство «Бином», 2005г. – 332 с.;

2.         Ахметов А. Р.Программирование в Delphi 7.г.Москва: издательство «Бином-Пресс», 2003 г. – 780 с.;

3.         Бобровский С.И. Delphi7 – Учебный курс. г. Санкт-Петербург:издательство «Питер», 2004 г. – 736 с.;

4.         Глушаков С. В. Delphi 2007 г. Москва: издательство «Хранитель», 2008 г. – 635 с.;

5.         Жуков А. В. Изучаем Delphi. г. Санкт-Петербург: издательство«Питер», 2001 г. – 352 с.;

6.         Маслобоев А. В. Delphi г. Санкт-Петербург: издательство«БХВ-Петербург», 2005 г. – 496 с.;

7.         Стивенс Р.А. Delphi. Готовые алгоритмы. г. Москва:издательство «ДМК пресс», 2001 г. – 384 с.;

8.         Фаронов В. В. Delphi. Программирование на языке высокогоуровня г. Санкт-Перетбург: издательство «Питер», 2007 г. – 640 с.;

9.         Хузятов Ш. Ш. Delphi 7. Основные компоненты и элементыязыка программирования г. Набережные Челны: издательство КамПИ, 2005г. – 116 с.;

10.       www.delphisources.ru/

11.       www.edelphi.ru/

12.       www.delphi.int.ru/

13.       www.delphiexpert.ru/

еще рефераты
Еще работы по информатике, программированию