русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Implementation


Дата додавання: 2014-11-27; переглядів: 827.


{$R *.DFM}

Type

Mas=array[1..1] integer; // масив цілочисельних значень

pMas=array[1..1] ^mas; // масив покажчиків

var // оголошення глобальних змінних

pA:^pMas; // покажчик на масив покажчиків

m,n,max,min:integer;

procedureTForm1.FormCreate(Sender: TObject);

Begin

m:=6; // початкове значення m

n:=8; // початкове значення n

SpinEdit1.Text:='6';

SpinEdit2.Text:='8';

StringGrid1.RowCount:=m; // кількість рядків

StringGrid1.ColCount:=n; // кількість стовпців

end;

procedure TForm1.SpinEdit1Change(Sender: TObject);

Begin

m:=StrToInt(SpinEdit1.Text); // m привласнюється вміст поля редактора

StringGrid1.RowCount:=m;

end;

procedure TForm1.SpinEdit2Change(Sender: TObject);

Begin

n:=StrToInt(SpinEdit2.Text); // n привласнюється вміст поля редактора

StringGrid1.ColCount:=n;

end;

procedure TForm1.Button1Click(Sender: TObject);

label 1;

Var

i,j,k,l,r:integer;

Begin

Randomize; // ініціалізація датчика випадкових чисел

GetMem(pA,4*m); // виділення пам'яті для масиву з m покажчиків

fori :=1 to m do

begin // формування i-й рядка масиву

{ Виділення пам'яті для n елементів i-й рядка}

GetMem(pA^[i],SizeOf(integer)*n);

pA^[1]^[1]:=Random(1000); // випадкове ціле число занести в масив

forj:=1 to n do

begin // формування j-го елементу рядка

1: r:=Random(1000); // генерація випадкового числа

forдо:=1 to i do

forl:=1 to j do

ifr=pA^[k]^[l] then// якщо таке число вже є в масиві тоді...

goto 1;

pA^[i]^[j]:=r; // випадкове число занести в масив

end;

end;

fori:=1 to m do // елементи масиву занести в осередки

forj:=1 to n do// компоненту StringGrid1

StringGrid1.Cells[j-1,i-1]:=IntToStr(pA^[i]^[j]);

{ Пошук min і max значень серед елементів масиву}

max:=pA^[1]^[1];

min:=max;

fori:=1 to m do

forj:=1 to n do

ifpA^[i]^[j]<min then

min:=pA^[i]^[j]

Else

ifpA^[i]^[j]>max then

max:=pA^[i]^[j];

Label7.Caption:=IntToStr(min); // висновок min значення

Label9.Caption:=IntToStr(max); // висновок max значення

fori:=1 to m do

{ Звільняє пам'яті, займаної n елементами i-й рядка}

FreeMem(pA^[i],SizeOf(integer)*n);

{ Звільнення пам'яті, займаної масивом з m покажчиків}

FreeMem(pA,4*m);

end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Integer;

Rect: TRect; State: TGridDrawState);

Begin

withStringGrid1.Canvas do

ifStringGrid1.Cells[Col,Row]=IntToStr(min) then // якщо елемент осередку

begin // рівний min тоді...

Brush.Color:=clGreen; // встановити колір зелений

FrameRect(Rect); // виділити межі осередку заданим кольором

End

Else

ifStringGrid1.Cells[Col,Row]=IntToStr(max) then // якщо елемент осередку

begin // рівний max тоді...

Brush.Color:=clRed; // встановити колір кисті червоний

FrameRect(Rect); // виділити межі осередку заданим кольором

End

end;

End.


<== попередня лекція | наступна лекція ==>
Створення процедур обробки подій FormCreate і Button1Click. | Використовування динамічних списків.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн