Организовать заполнение двумерного массива целыми четными и нечетными числами случайным образом в интервале от 1 до 6

pavel123456789

Запрашивать размерность двумерного массива. Затем организовать заполнение двумерного массива целыми четными и нечетными числами случайным образом в интервале от 1 до 6. Найти среднее арифметическое: а) каждой из строк, имеющей только четные числа б) каждого из столбцов, имеющих только нечетные числа. заранее спасибо)
9 ответов

pavel123456789

помогите пожалуйста...(не могу разобраться с массивом помогите(


pavel123456789

заполнение двумерного массива целыми четными и нечетными числами случайным образом в интервале от 1 до 6
var
 matr:array[1..5, 1..5] of Integer; //5x5
 i,j:integer;
 begin
Randomize;
 for i :=1 to 5 do
   for j :=1 to 5 do
   matr[i,j] :=Random(6)+1;
 Writeln('Матрица :');
 Writeln;
 for i :=1 to 5 do
  begin
   for j :=1 to 5 do
    Write(matr[i,j]:4);
    Writeln;
     end;
.....
это часть


pavel123456789

а на форме?


pavel123456789

При случайном заполнении искомых строк и столбцов практически не будет, только при матрице [m,2] или [2,n]
var
  Form1: TForm1;
  a: array[1..20,1..20] of integer;
  m,n: integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
//зададим некоторые параметры таблицы
with StringGrid1 do
 begin
  fixedCols:=1;
  fixedRows:=1;
  defaultColwidth:=45;
  scrollBars:=ssBoth;
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
randomize;
//проверим ввод размеров
val(Edit1.Text,m,i);
if (i<>0)or not(m in [1..20])then
 begin
  ShowMessage('Неверно введено количество строк');
  Edit1.Clear;
  Edit1.SetFocus;
  exit
 end;
val(Edit2.Text,n,i);
if (i<>0)or not(n in [1..20])then
 begin
  ShowMessage('Неверно введено количество столбцов');
  Edit2.Clear;
  Edit1.SetFocus;
  exit
 end;
with StringGrid1 do
 begin
  RowCount:=m+2;
  ColCount:=n+2;
  Cells[n+1,0]:='Среднее';
  Cells[0,m+1]:='Среднее';
  for i:=1 to m do
  for j:=1 to n do
   begin
    a[i,j]:=1+random(6);
    StringGrid1.Cells[j,i]:=IntToStr(a[i,j]);
   end;
  end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var i,j,k:integer;
    s:real;
begin
for i:=1 to m do
 begin
  k:=0;
  j:=1;
  s:=0;
  while(j<=n)and(k=0) do
  if odd(a[i,j]) then k:=1
  else
   begin
    s:=s+a[i,j];
    inc(j);
   end;
  if k=0 then StringGrid1.Cells[n+1,i]:=floattostrF(s/n,ffFixed,5,2)
  else StringGrid1.Cells[n+1,i]:='нет'
 end;
for j:=1 to n do
 begin
  k:=0;
  i:=1;
  s:=0;
  while(i<=m)and(k=0) do
  if not odd(a[i,j]) then k:=1
  else
   begin
    s:=s+a[i,j];
    inc(i);
   end;
  if k=0 then StringGrid1.Cells[j,m+1]:=floattostrF(s/m,ffFixed,5,2)
  else StringGrid1.Cells[j,m+1]:='нет'
 end;
end;


pavel123456789

это же на четность и не четность проверка?
RowCount:=m+2;
  ColCount:=n+2;
  Cells[n+1,0]:='Среднее';
  Cells[0,m+1]:='Среднее';
  for i:=1 to m do
  for j:=1 to n do


pavel123456789

Ты когда научишься теги ставить? Или все время я за тебя это буду делать?У тебя же написано в задани
Найти среднее арифметическое: а) каждой из строк, имеющей только четные числа б) каждого из столбцов, имеющих только нечетные числа.


pavel123456789

как их делать?


pavel123456789

А проверка на нечетность и четность здесь
if odd(a[i,j]) then k:=1//нечетность
if not odd(a[i,j]) then k:=1//четность
как их делать?
Так тебе готовый код написали, чего еще нужно?


pavel123456789

проосто не понял где проверка..(