Вывести массив b(n), в котром b1=a1 a2 .. an,i=1,2,..

MoLoDoI94

Дан массив a(n). Вывести массив b(n), в котром b1=a1+a2+..+an,i=1,2,..n. Примечание:для вывода второго массива разместить ещё один stringGrid.Помогите пожалуйста
3 ответа

MoLoDoI94

b1=a1+a2+..+an
А чему равно b2 и далее?


MoLoDoI94

b2 нету. Все, что есть. Больше ничего не было дано)


MoLoDoI94

Вероятно массив B формируется так b[i]:=a[1]+a[2]+...a[i];
var
  Form1: TForm1;
  a: array of integer;
  n: integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
//зададим некоторые параметры таблиц
with StringGrid1 do
 begin
  fixedCols:=0;
  fixedRows:=0;
  defaultColwidth:=30;
  rowcount:=1;
  scrollBars:=ssHorizontal;
 end;
with StringGrid2 do
 begin
  fixedCols:=0;
  fixedRows:=0;
  defaultColwidth:=30;
  rowcount:=1;
  scrollBars:=ssHorizontal;
 end;
Label2.Caption:='Массив  А';
Label3.Caption:='Массив  B';
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
randomize;
//проверим ввод размеров
val(Edit1.Text,n,i);
if (i<>0)or (n<1)then
 begin
  ShowMessage('Неверно введен размер массива');
  Edit1.Clear;
  Edit1.SetFocus;
  exit
 end;
Setlength(a,n);
StringGrid1.ColCount:=n;
StringGrid2.ColCount:=n;
for i:=0 to n-1 do
 begin
  a[i]:=random(50);
  StringGrid1.Cells[i,0]:=IntToStr(a[i]);
 end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var b:array of integer;
    i,s:integer;
begin
Setlength(b,n);
s:=0;
for i:=0 to n-1 do
 begin
  s:=s+a[i];
  b[i]:=s;
  StringGrid2.Cells[i,0]:=IntToStr(b[i]);
 end;
end;