Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Implementation





{ ниже прописываются сами процедуры и функции }

//==================================================

Procedure Vvod_Matr_iz_Tabl(StringGrid:TStringGrid; var n,m:integer;

var Matr:TMatr);

// ввод матрицы из StringGrid

Var

i, j: integer;

Begin

with StringGrid do begin

n:=RowCount-1; // число строк

m:=ColCount-1; // число столбцов

for i:=1 to n do

for j:=1 to m do

Matr[i,j]:=StrToFloat(Cells[j,i]);

end;

end;

//===================================================

Procedure Vyvod_Matr(n, m: integer; Matr:TMatr; Memo:TMemo);

// вывод матрицы в Мемо

Var

i, j: integer;

St: string;

Begin

St:='Введенная матрица:'+#13#10;

for i:=1 to n do begin

for j:=1 to m do

St:= St + FloatToStr(Matr[i, j])+#9;

St:= St + #13#10;

end;

Memo.Lines.Add(St);

end;

//===================================================

End.

 

Этот модуль компилируется отдельно, а затем подключается в разделе uses основной программы (см. Листинг 6.3).

Листинг 6.3

unit Unit1;

 

Interface

 

Uses

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

Dialogs, Grids, StdCtrls, jpeg, ExtCtrls, Spin, MyUnit; // подключили модуль MyUnit

 

Type

TForm1 = class (TForm)

Label1: TLabel;

Label2: TLabel;

StringGrid1: TStringGrid;

Button2: TButton;

Memo1: TMemo;

Button1: TButton;

Label3: TLabel;

Image1: TImage;

SpinEdit1: TSpinEdit;

SpinEdit2: TSpinEdit;

Label4: TLabel;

Label5: TLabel;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);

procedure SpinEdit1Change(Sender: TObject);

procedure SpinEdit2Change(Sender: TObject);

Private

{ Private declarations }

Public

{ Public declarations }

end;

Type

TMatr = array [1..10,1..10] of real; // Объявление типа двухмерного

// массива размером 10 x 10

Var

Form1: TForm1;

A: TMatr; // Глобальное объявление двухмерного массива

n, m: integer;

 

Implementation

 

{$R *.dfm}

 

{ Здесь уже не надо прописывать процедуры, т.к. они есть в подключ. модуле MyUnit }

//-------------------------------------------------------------

procedure TForm1.FormCreate(Sender: TObject);

// первоначальное формирование интерфейса программы

var i, j: integer;

Begin

Memo1.Clear;

SpinEdit1.Text:= '4';

SpinEdit2.Text:= '4';

With StringGrid1 do begin

RowCount:=StrToInt(SpinEdit1.Text)+1;

ColCount:=StrToInt(SpinEdit2.Text)+1;

Cells[0,0]:= ' A';

for i:=1 to RowCount do Cells[0,i]:= ' i=' + IntToStr(i);

for j:=1 to ColCount do Cells[j,0]:= ' j=' + IntToStr(j);

end;

End;

//---------------------------------------------------------------

procedure TForm1.SpinEdit1Change(Sender: TObject);

// изменение Числа строк в таблице

var i:integer;

Begin

if SpinEdit1.Text='' then Exit;

// подготовка таблицы по строкам

With StringGrid1 do begin

RowCount:=StrToInt(SpinEdit1.Text)+1;

for i:=1 to RowCount do Cells[0,i]:= ' i=' + IntToStr(i);

End;

End;

//--------------------------------------------------------

procedure TForm1.SpinEdit2Change(Sender: TObject);

// изменение Числа столбцов в таблице

var j: integer;

Begin

if SpinEdit2.Text='' then Exit;

// подготовка таблицы по столбцам

With StringGrid1 do begin

ColCount:=StrToInt(SpinEdit2.Text)+1;

for j:=1 to ColCount do StringGrid1.Cells[j,0]:= ' j=' + IntToStr(j);

End;

End;

//--------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);

// выполнить

Var

i, j, k, ke: integer;

p, pe: real;

s: string;

Begin

n:= StrToInt(SpinEdit1.Text); // Число строк в массиве

m:= StrToInt(SpinEdit2.Text); // Число столбцов в массиве

 

{ Проверка на заполненность таблицы }

for i:=1 to n do

for j:=1 to m do

if StringGrid1.Cells[j,i]='' then begin

ShowMessage('Надо заполнить все ячейки таблицы!!!');

Exit;

End;

 

{ Ввод матрицы А из таблицы StringGrid1 }

Vvod_Matr_iz_Tabl(StringGrid1, n, m, A); // вызов процедуры, текст которой

//находится в модуле MyUnit

 

{ Расчет }

k:= 0; ke:=0;

p:=0; pe:= 1;

for i:= 1 to n do

for j:= 1 to m do

if A[i, j]>0 then begin k:= k+1; p:=p+A[i,j]; end

Else

if (A[i,j]<0) then begin ke:=ke+1; pe:= pe * A[i,j]; end;

 

Memo1.Clear;

{ Показаваем в Мемо1 введенную матрицу А }

Vyvod_Matr(n, m, A, Memo1); // вызов процедуры, текст которой находится в MyUnit

 

{ показываем в Мемо1 результаты расчета }

if k=0 then Memo1.Lines.Add('Положительных элементов нет!')

Date: 2015-06-08; view: 554; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию