![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
|||
|
|||
|
А что делает эта строка???
Код:
WriteLn(Arr[Min]:5); |
|
#17
|
||||
|
||||
|
А вы запустите и посмотрите.
|
|
#18
|
|||
|
|||
|
все равно непонял
|
|
#19
|
||||
|
||||
|
Конкретно это строчка выводит в консоль значение минимального элемента в массиве используя форматирование.
|
|
#20
|
|||
|
|||
|
тогда можно запустить без неё
[опоздал ] |
|
#21
|
||||
|
||||
|
Цитата:
![]() |
|
#22
|
|||
|
|||
|
Страдалецъ.
Если не сложно, подпиши комментарии ко всем действиям которые ты написал в коде. Очень нужно!!! |
|
#23
|
||||
|
||||
|
Добавил коментарии к ранее опубликованному коду
|
|
#24
|
|||
|
|||
|
а что делает эта строка?
Код:
ReadLn; |
|
#25
|
||||
|
||||
|
Просто ожидает нажатия клавиши на клавиатуре. Нужно для того-что-бы консоль автоматом не закрылась, а ожидала действия пользователя.
|
|
#26
|
|||
|
|||
|
Цитата:
|
|
#27
|
||||
|
||||
|
Да, ведь это пример для консольного приложения, а там почти все как в Паскале.
|
|
#28
|
|||
|
|||
|
Цитата:
|
|
#29
|
||||
|
||||
|
Ну вы и лентяй:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormActivate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
Var
Arr: Array of Integer;
i,Min: Integer;
begin
SetLength(Arr, 10);
for i := 0 to Length(Arr) - 1
do Arr[i] := Random(100) + 1;
while Length(Arr) > 0
do begin
Memo1.Lines.Add('');
for i := 0 to Length(Arr) - 1
do Memo1.Lines[Memo1.Lines.Count - 1] := Memo1.Lines[Memo1.Lines.Count - 1] + Format('%d ',[Arr[i]]);
Min := 0;
for i := 1 to Length(Arr) - 1
do if Arr[i] < Arr[Min]
then Min := i;
Memo1.Lines.Add(Format('%d ',[Arr[Min]]));
for i := Min to Length(Arr) - 2
do Arr[i] := Arr[i + 1];
SetLength(Arr, Length(Arr) - 1);
end;
end;
end. |
|
#30
|
|||
|
|||
|
По идеи, должно быть так: находим индекс минимального значения в массиве, производим некоторые операции, затем удаляем минимум из массива и ищем новый минимум в получившемся массиве. И так до тех пор когда z1 станет равно нулю или меньше нуля.
У меня получился вот такой код: Код:
procedure TForm1.BitBtn2Click(Sender: TObject);
var
byteArray : Array of integer;
i:integer;
min1,x1,yy1,z1: Integer;
begin
SetLength(byteArray, 5);
for i := 0 to (Length(byteArray)-1) do
begin
byteArray[0] := StrToInt(Edit1.Text);
byteArray[1] := StrToInt(Edit2.Text);
byteArray[2] := StrToInt(Edit3.Text);
byteArray[3] := StrToInt(Edit4.Text);
byteArray[4] := StrToInt(Edit5.Text);
end;
z1:=0;
while z1 > 0 do
begin
min1:= 0;
for i := 1 to (Length(byteArray)-1) do if byteArray[i] < byteArray[min1] then min1 := i;
x1:= StrToInt(Edit21.Text);
if (min1 = 0) then
begin
Edit1.Color:=clLime;
yy1:= StrToInt(Edit16.text);
z1:=x1-yy1-z1;
end;
if (min1 = 1) then
begin
Edit2.Color:=clLime;
yy1:= StrToInt(Edit17.text);
z1:=x1-yy1-z1;
end;
if (min1 = 2) then
begin
Edit3.Color:=clLime;
yy1:= StrToInt(Edit18.text);
z1:=x1-yy1-z1;
end;
if (min1 = 3) then
begin
Edit4.Color:=clLime;
yy1:= StrToInt(Edit19.text);
z1:=x1-yy1-z1;
end;
if (min1 = 4) then
begin
Edit5.Color:=clLime;
yy1:= StrToInt(Edit20.text);
z1:=x1-yy1-z1;
end;
for i := min1 to Length(byteArray) - 2 do byteArray[i] := byteArray[i + 1];
SetLength(byteArray, Length(byteArray) - 1);
end;
Label16.Caption:= IntToStr(z1);
end; |