Другие языки программирования и технологии

Помогите решить задачу в Delphi срочно! буду очень благодарен.

Найти сумму элементов одномерного массива N[1..20] веществ (20 ячеек) К сожалению сейчас нет делфи на компьютере... нужен код программы и то что должно быть в формебуду очень благодарен если предоставите список того, какие элементы будут в форме и присваемые им параметры и ВЕСЬ исходный код задачи.Заранее спасибо.Я абсолютно не знаю ничего про массивы кроме array[x..x]
PM
Pro100 Muhammad
664
скину тебе наподобие задачку про массив (исходник) там далее разберешься.... нету времени просто ее переделывать.. . Вот исходник:
unit Unit1;

{

}
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin;

type
TForm1 = class(TForm)
SpinEdit1: TSpinEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure SpinEdit1Change(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
ar:array of integer;
sumot:integer;
implementation

{$R *.dfm}

procedure TForm1.SpinEdit1Change(Sender: TObject);
{заполнение массива}
var
i,j:word;
mem,max,min,p:integer; {локальные переменные - результаты обработки массива}
begin
label1.Caption:='';
label2.Caption:='';
label3.Caption:='';
setlength(ar,spinedit1.Value+1);//размер массива по спин едиту
randomize;
sumot:=0;
for i:=1 to length(ar)-1 do ar:=random(500)-random(500);
label1.Caption:='массив= ';
for i:=1 to length(ar)-1 do label1.Caption:=label1.Caption+'| '+inttostr(ar);

for i:=1 to length(ar)-1 do if ar<0 then sumot:=sumot+ar;
label3.Caption:= 'сумма отрицательных элементов массива=' + inttostr(sumot);

for j:=1 to length(ar)-2 do
for i:=1 to length(ar)-2 do if ar>ar[i+1] then
begin
mem:=ar;
ar:=ar[i+1];
ar[i+1]:=mem;
end;
min:=ar[1];
max:=ar[length(ar)-1];
label2.Caption:='упорядочение элементов массива=';
for i:=1 to length(ar)-1 do label2.Caption:=label2.Caption+'| '+inttostr(ar);
p:=1;
for i:=1 to length(ar)-1 do if (ar<>max)and(ar<>min) then p:=p*ar;
label4.Caption:='произведение элемнтов массива=' + inttostr(p);
end;

end.
Антон Николенко
Антон Николенко
368
Лучший ответ
Антон Николенко там spinedit-ом задаешь размерностьо массива (от 1 и до скольки хочешь), лабел 1-4 енто:
1. сам массив
2. упорядочение элементов массива
3. сумма отрицательных элементов массива
4. произведение элементов массива...
Задачка в принципе не сложная....должен разобраться :)
скину тебе наподобие задачку про массив (исходник) там далее разберешься.... нету времени просто ее переделывать.. .Вот исходник:
unit Unit1;

{

}
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin;

type
TForm1 = class(TForm)
SpinEdit1: TSpinEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure SpinEdit1Change(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
ar:array of integer;
sumot:integer;
implementation

{$R *.dfm}

procedure TForm1.SpinEdit1Change(Sender: TObject);
{заполнение массива}
var
i,j:word;
mem,max,min,p:integer; {локальные переменные - результаты обработки массива}
begin
label1.Caption:='';
label2.Caption:='';
label3.Caption:='';
setlength(ar,spinedit1.Value+1);//размер массива по спин едиту
randomize;
sumot:=0;
for i:=1 to length(ar)-1 do ar:=random(500)-random(500);
label1.Caption:='массив= ';
for i:=1 to length(ar)-1 do label1.Caption:=label1.Caption+'| '+inttostr(ar);

for i:=1 to length(ar)-1 do if ar<0 then sumot:=sumot+ar;
label3.Caption:= 'сумма отрицательных элементов массива=' + inttostr(sumot);

for j:=1 to length(ar)-2 do
for i:=1 to length(ar)-2 do if ar>ar[i+1] then
begin
mem:=ar;
ar:=ar[i+1];
ar[i+1]:=mem;
end;
min:=ar[1];
max:=ar[length(ar)-1];
label2.Caption:='упорядочение элементов массива=';
for i:=1 to length(ar)-1 do label2.Caption:=label2.Caption+'| '+inttostr(ar);
p:=1;
for i:=1 to length(ar)-1 do if (ar<>max)and(ar<>min) then p:=p*ar;
label4.Caption:='произведение элемнтов массива=' + inttostr(p);
end;

end.
Vladimir G
Vladimir G
334