Программа для работы с матрицей

alexx_1203

Здравствуйте жильцы Кибер Форма, так уж вышло что у меня как то не выходит написать программу которая будет выполнять те условия которые я опишу ниже, и я решил обратиться к Вашим умам за помощью! Надеюсь что вы сможете мне помочь. Желательно все сделать на одной форме, и 2,3,4,5 реализовать с помощью CheckBox. А вот и зама задача: 1. Ввести матрицу B(N,M). 2. Определить минимальный из четных элемент в каждом столбце матрицы. 3. Определить суммы кратных пяти элементов матрицы. 4. Определить нечетные элементы каждого столбца и сформулировать из них новый массив. 5. Вывести результирующий массив. Буду невероятно благодарен даже если поможете хотя бы с одним из пунктов.Up.
8 ответов

alexx_1203

1. Ввести матрицу B(N,M).
const
  N = 5;
  M = 7;
var
  B: array[1..N, 1..M] of Integer;
  i, j: Integer;
begin
  Randomize;
  for i := 1 to N do
    for j := 1 to M do
      B[i, j] := Random(300);
end;


alexx_1203

Up.


alexx_1203

UP.


alexx_1203

3. Определить суммы кратных пяти элементов матрицы.
for i:=1 to N do
for j:=1 to M do
begin if B[i][j] mod 5 =0 then Sum:=Sum+B[i][j];
Могу предположить, что ты учишься на программиста, но учиться не хочешь, и поэтому пишешь здесь и просишь сделать всё за тебя. Разве не так?


alexx_1203

WestSide072, Работа с матрицами это одна из четырех подпрограмм одной большой программы. Все те уже удачно сданы, а вот с линейной алгеброй и собственно матрицами как-то не могу разобраться, увы.Спасибо за помощь!


alexx_1203

WestSide072, Работа с матрицами это одна из четырех подпрограмм одной большой программы. Все те уже удачно сданы, а вот с линейной алгеброй и собственно матрицами как-то не могу разобраться, увы.Спасибо за помощь!
советую разобраться, дальше сложнее будет, а матрицы - это есть основа, без них никуда.Для простоты твоего понимания можешь матрицу представлять на примере шахматной доски, где есть определяющие положение Буквы и Цифры (А1 - столбик А, строчка 1). Так и здесь, только здесь координаты X и Y. Можешь на листке нарисовать 'шахматную доску' и станет гораздо проще. ) Обращаться к элементам матрицы так: B[X][Y]. Тебе нужно перебирать, значит for for Удачи


alexx_1203

1. Ввести матрицу B(N,M). 2. Определить минимальный из четных элемент в каждом столбце матрицы.
Те какой смысл код массива расписывать если ты все-равно непонимаеш что происходит внутри массива?Такой те совет- сделай таблицу, копируй в нее массив и смотри что в ней происходит и делай хоть 100 подобных заданий.Смотри на картинку- там второе задание на пальцах показано.
procedure TForm1.BitBtn1Click(Sender: TObject);
const
  N = 5; //колонки
  M = 7; //строки
var
  B: array[1..N, 1..M] of Integer;
  i, j, min: Integer;
begin
  Randomize;
  ListBox1.Clear;
  //заполним массив
  for i := 1 to N do
    for j := 1 to M do
      B[i, j] := Random(300);
 
   //подготовим таблицу
     for i := 1 to N do
    for j := 1 to M do begin
   StringGrid1.Cells[i, 0] := 'Столбец '+ IntToStr(i);
   StringGrid1.Cells[0, j] := 'Строка '+ IntToStr(j);
   end;
 
  //отобразим массив в таблице
    for i := 1 to N do
    for j := 1 to M do
    StringGrid1.Cells[i, j]:= IntToStr(B[i, j]); //i- столбец, j- строка
 
 
  //предположим минимальное > на 1 предполагаемому максимальному из массива
  //тогда если это число неизменится будет обозначать четн. элементов в столбце нет!
  min := 300;
  for i := 1 to N do
  begin
    for j := 1 to M do //строки
      if (B[i, j] < min) and (B[i, j] mod 2 = 0) then
        min := B[i, j];
    if min = 300 then
      ListBox1.Items.Add('В столбце ' + IntToStr(i)+ ' четн элем необнаружено')
    else
    ListBox1.Items.Add('Мин. чет. ' + IntToStr(i) + ' столбца= ' + IntToStr(min));
    min := 300; //задаем минимальное для следующего столбца
  end;
end;


alexx_1203

Могу предположить, что ты учишься на программиста, но учиться не хочешь
4. Определить нечетные элементы каждого столбца и сформулировать из них новый массив.
Добавляеш еще массив и переписываеш. Там где четные числа в массиве, можеш нолики принудительно проставить.
  for i := 1 to N do
    for j := 1 to M do
      if B[i, j] mod 2 <> 0 then
        A[i, j] := B[i, j];