{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
var i,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 to n+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;
// нумеруем строки и столбцы таблиц
fori:=1 tondo
stringgrid1.Cells[0,i]:=inttostr(i);
for i:=1 to n+1 do
stringgrid1.Cells[i,0]:=inttostr(i);
for i:=1 to n+1 do
stringgrid2.Cells[0,i]:=inttostr(i);
for i:=1 to n+2 do
stringgrid2.Cells[i,0]:=inttostr(i);
for i:=1 to n do
for j:=1 to n+1 do
begin
mas1[i,j]:=random(98)+1; // формируем значения исходного массива
stringgrid1.Cells[j,i]:=inttostr(mas1[i,j]); // выводим значения исходного массива в таблицу
end;
// формируем промежуточный массив вставкой строки в исходный массив
for i:=1 to p do
for j:=1 to n+1 do
mas[i,j]:=mas1[i,j];
for j:=1 to n+1 do
mas[p+1,j]:=a[j];
for i:=p+2 to n+1 do
for j:=1 to n+1 do
mas[i,j]:=mas1[i-1,j];
// формируем конечный массив вставкой столбца в промежуточный массив
for j:=1 to q do
for i:=1 to n+1 do
mas2[i,j]:=mas[i,j];
for i:=1 to n+1 do
mas2[i,q+1]:=b[i];
for j:=q+2 to n+2 do
for i:=1 to n+1 do
mas2[i,j]:=mas[i,j-1];
for i:=1 to n+1 do
for j:=1 to n+2 do
stringgrid2.Cells[j,i]:=inttostr(mas2[i,j]); // выводимвтаблицуконечныймассив
end;
procedure TForm4.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)
procedure FormClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
const r=150;
{$R *.dfm}
procedure TForm7.FormClick(Sender: TObject); //движениикругапоэкрану
var
i, j : integer;
begin
for i:=1 to screen.Width-r do // поканедостигнутконецэкрана
begin
form7.Color:=clGreen; //задаемформезеленыйцвет
form7.Left:=i; //задаем отступ формы слева
sleep(5); //задержка времени
//form7.Top:=j;
end;
for j:=1 to screen.Height-r do // поканедостигнутнизэкрана
begin
form7.Color:=clRed; // задаем форме красный цвет
form7.Top:=j; //задаем отступ сверху
sleep(5); // задержка времени
end;
fori:=screen.Width-rdownto 1 do // пока не достигнуто начало экрана
begin
form7.Color:=clBlue; // задаем форме синий цвет
form7.Left:=i; // задаем отступ слева
sleep(5); //задержка времени
//form7.Top:=j;
end;
for j:=screen.Height-r downto 1 do // поканедостигнутверхэкрана
begin
form7.Color:=clYellow; // задаемформежелтыйцвет
form7.Top:=j; //задаем отступ сверху
sleep(5); // задержка времени
end;
end;
procedure TForm7.FormCreate(Sender: TObject); // задаемвизуальнуюформуформызадания №3
var
formRgn : HRGN;
//i, j : integer;
begin
FormRgn:=createEllipticRgn(0,0,r,r);
SetWindowRgn(Handle, FormRgn, True);
end;
procedure TForm7.FormDblClick(Sender: TObject);
begin
close;
end;
procedure TForm7.FormShow(Sender: TObject);
begin
form7.Left:=1;
form7.Top:=1;
end;
end.
Инструкция по применению программы
Для запуска курсовой работы нужно в папке «Туктаров» двойным щелчком запустить файл «Project» с расширением .ехе. На экране появится главное окно. На нем находятся три кнопки, каждая из которых соответствует одному из трех заданий.
При нажатии на первую кнопку - «Задание 1» появится форма на которой будут находиться текст задания, таблица результатов расчета, управляющие кнопки. График строится автоматически при выполнении расчетов. Расчеты производятся при нажатии кнопки «Старт». Для просмотра графика необходимо воспользоваться кнопкой «График». Для возврата в основное окно работы предназначена кнопка «Финиш».
При нажатии на вторую кнопку - «Задание 2» на экране появится форма с полями задания значений формирования массивов, таблицами для вывода массивов и управляющими кнопками. Заполнение массивов в соответствии с заданием происходит по нажатии кнопки «Старт». Возврат к основному окну предусматривает кнопка «Финиш».
При нажатии на третью кнопку «Задание 3» на экране появляется круг. Для начала движения необходимо кликнуть на нем. После полного оборота по экрану станет доступным возврат в основное окно программы нажатием клавиш Alt+F4.
Преимущества:
В данной курсовой работе были приведены три задачи при решении которых были рассмотрены различные управляющие структуры программирования, разные компоненты и возможности Delphi.
В первой программе было реализовано табулирование, расчет значений функции и числового ряда и построен график функции с помощью компоненты TChart. Эта программа может быть реализована в разных сферах экономики для подсчета погрешности и построения графика по определенным критериям.
Во второй программе был использован массив. Преобразуя исходный массив, был создан новый массив. Данная программа также может применена в различных информационных сферах.
В третьей программе реализована возможность изменения интерфейса формы при помощи стандартных функций WindowsAPI. Данные возможности широко применяются в мультимедийных приложениях.
Возникновение ошибочных ситуаций при работе программы:
При запуске программы могут возникнуть ошибочные ситуации. Например, если в первом задании нажать кнопку просмотра графика до выполнения расчета, то график будет пустым. Также могут возникнуть ошибки при задании параметров вычисления.
Во втором задании к ошибке может привести попытка сформировать массивы без задания их величины.
В третьем задании существует недостаток невозможности остановить движения круга до прохождения полностью экрана, а также может возникнуть ошибка при попытке использовать основную форму программы без закрытия формы задания 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/