Учебный курс Программирование на Delphi. Модуль 13: различия между версиями
(→Задание) |
(→Задание) |
||
| (не показано 7 промежуточных версий 3 участников) | |||
| Строка 7: | Строка 7: | ||
В заголовке процедуры, может быть задан список формальных параметров.При вызове процедур, формальные параметры, будут заменены фактическими. | В заголовке процедуры, может быть задан список формальных параметров.При вызове процедур, формальные параметры, будут заменены фактическими. | ||
| − | В Delphi7, | + | В Delphi7, объявления процедур происходит автоматически при создании действия с элементом. |
Создать такое действие можно либо просто дважды щёлкнув на объекте (click), либо выбрав нужное действие из подменю events в object inspector | Создать такое действие можно либо просто дважды щёлкнув на объекте (click), либо выбрав нужное действие из подменю events в object inspector | ||
| Строка 102: | Строка 102: | ||
==Задание== | ==Задание== | ||
| − | Таблица | + | Таблица 13 |
{| border=1 | {| border=1 | ||
| Строка 119: | Строка 119: | ||
| <Center>6</Center>|| Вычислить: | | <Center>6</Center>|| Вычислить: | ||
| − | [[Изображение: | + | [[Изображение:Формула вар 6.jpg]] |
где Xmax - максимальный элемент вектора X(n) Уmax - максимальный элемент вектора У(m). | где Xmax - максимальный элемент вектора X(n) Уmax - максимальный элемент вектора У(m). | ||
| Строка 128: | Строка 128: | ||
| <Center>8</Center>||Вычислить: | | <Center>8</Center>||Вычислить: | ||
| − | [[Изображение: | + | [[Изображение:Формула вар 8.jpg]] |
|- | |- | ||
| <Center>9</Center>||Решить уравнение a*x+b=0, | | <Center>9</Center>||Решить уравнение a*x+b=0, | ||
где а - длина вектора У(n), b - длина вектора Z(m). | где а - длина вектора У(n), b - длина вектора Z(m). | ||
|- | |- | ||
| − | | <Center>10</Center>||Решить уравнение [[Изображение: | + | | <Center>10</Center>||Решить уравнение [[Изображение:Формула вар 10.jpg]] |
где а - произведение элементов целочисленного вектора Т(к), b - произведение элементов целочисленного вектора D(L), с - произведение элементов целочисленного вектора R(n). | где а - произведение элементов целочисленного вектора Т(к), b - произведение элементов целочисленного вектора D(L), с - произведение элементов целочисленного вектора R(n). | ||
| Строка 139: | Строка 139: | ||
| <Center>11</Center>||Дана матрица У(к,к). Сформировать вектор, содержащий диагональные элементы матрицы У. Отсортировать его в порядке убывания элементов. | | <Center>11</Center>||Дана матрица У(к,к). Сформировать вектор, содержащий диагональные элементы матрицы У. Отсортировать его в порядке убывания элементов. | ||
|- | |- | ||
| − | | <Center>12</Center>||Решить уравнение [[Изображение: | + | | <Center>12</Center>||Решить уравнение [[Изображение:Формула вар 12.jpg]] |
где р - минимальный элемент матрицы A(3,3), q - минимальный элемент матрицы B(4,4), r - минимальный элемент матрицы С(5,5). | где р - минимальный элемент матрицы A(3,3), q - минимальный элемент матрицы B(4,4), r - минимальный элемент матрицы С(5,5). | ||
| Строка 148: | Строка 148: | ||
| <Center>14</Center>||Вычислить: | | <Center>14</Center>||Вычислить: | ||
| − | [[Изображение: | + | [[Изображение:Формула вар 14.jpg]] |
|- | |- | ||
|} | |} | ||
Текущая версия на 11:55, 20 мая 2008
Использование процедур
Часто в программе появляются участки, выполняющие одни и те же действия с различными данными. Такие участки лучше всего оформлять в виде подпрограмм. Выделяют два вида подпрограмм: Процедуры и функции. Процедурой называют особенным образом оформленный фрагмент программы, имеющий собственное имя. В заголовке процедуры, может быть задан список формальных параметров.При вызове процедур, формальные параметры, будут заменены фактическими.
В Delphi7, объявления процедур происходит автоматически при создании действия с элементом. Создать такое действие можно либо просто дважды щёлкнув на объекте (click), либо выбрав нужное действие из подменю events в object inspector
Пример объявления процедуры:
procedure TForm1.Button1Click(Sender: TObject); Эта строка означает, что если нажать (click) на кнопку button1, находящуюся на форме form1, то будут выполнятся действия, которые указаны в теле процедуры.
Пример 1.
- Условие
Массив A(n) отсортировать в порядке возрастания элементов.
Сортировка осуществляется методом выбора.
Для этого в процедуре max ищется номер максимального элемента. В основном алгоритме максимальный эемент и последний меняются местами. Цикл повторяется до тех пор, пока не останется только один не отсортированный элемент.
- Использованные компоненты
label1 - для текстовых комментарий;
label2 - для текстовых комментарий;
label3 - для текстовых комментарий;
Button1 - для формирования вектора;
Button2 - для вызова процедуры сортировки;
Button3 - для выхода;
StringGrid1 - для вывода исходного массива;
StringGrid2 - для вывода отсортированного массива.
- Программный код
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMan, Grids, StdCtrls, Buttons;
type
x=array [1..20] of real;
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
StringGrid1: TStringGrid;
Label2: TLabel;
Button2: TButton;
StringGrid2: TStringGrid;
Label3: TLabel;
XPManifest1: TXPManifest;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a:x; i, j, n, k: integer; R: real;
implementation
{$R *.dfm}
procedure max (q: integer; var nmax: integer);
var m: real; l: integer;
begin
m:=A[1]; nmax:=1;
for l:=1 to q do
if A[l]>m then
begin
m:= A[l]; nmax:= l
end
end; {конец описания процедуры}
procedure TForm1.Button2Click(Sender: TObject);
begin
randomize;
n:=strtoint(edit1.Text);
j:=n;
for i:=1 to n do begin
a[i]:=random(11);
stringgrid1.Cells[i-1,0]:=floattostr(a[i]);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin {основная программа}
while j <> 1 do
begin
max (j, k);
R:= A[k]; A[k]:= A[j]; A[j]:= R;
j:= j-1;
end;
for i:=1 to n do
stringgrid2.Cells[i-1,0]:=floattostr(a[i]);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
close;
end;
end.
- Форма с результатом работы программы
Задание
Таблица 13
Литература
- Архангельский. Программирование на Delphi 6. – М: БИНОМ, 2002
- Бобровский С. Delphi 7. Учебный курс. – СПб: Питер, 2003
- Культин Н. Основы программирования в Delphi 7. СПб: БХВ-Петербург, 2005.


