Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2018, 23:29   #1
Sakuhoro
Новичок
Джуниор
 
Регистрация: 06.04.2018
Сообщений: 1
По умолчанию Найти произведение каждой строки матрицы

Дана двумерная матрица m*n . Необходимо найти произведение каждой строки.
Есть такой код, где матрица заполняется рандомными числами
procedure TForm1.btn1Click(Sender: TObject);
var
i,j,n,m:Integer;
begin
n:=StrToInt(edt1.Text);
m:=Strtoint(edt2.Text);
begin
Randomize;
Strngrd1.Colcount:=m+1;
Strngrd1.Rowcount:=n+1;
for i:=1 to n do
for j:=1 to m do
Strngrd1.Cells[i,j]:=IntToStr(random(10));
end;
end;
Sakuhoro вне форума Ответить с цитированием
Старый 07.04.2018, 07:06   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

1) у вас m ит перепутаны местами.

2) в гриде есть заголовки? (нулевые строка и столбец)?

3) "найти произведение каждой строки."
найти не сложно, куда их девать?

а найти можно так:
Код:
var p : double;
  i, j : integer;
begin
 for i:=1 to Rowcount-1  do begin
   p := 1.0;
   for j:=1 to Colcount-1 do
     p := p * StrToInt(Strngrd1.Cells[j, i]; // сначала индекс столбца, потом - индекс строки
    ShowMessage(format('В строке %d произведение = %3f',[i, p]));
 end;

end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.04.2018, 01:29   #3
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Serge_Bliznykov, ТС уже получил ответ на другом форуме и был им удовлетворен. У меня только вопрос зачем вы переходите в данном коде на вещественные числа? Озвученная ТС задача предполагает наличие только целых чисел.
northener вне форума Ответить с цитированием
Старый 09.04.2018, 09:42   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
зачем вы переходите в данном коде на вещественные числа?
по привычке и для универсальности.
произведение чисел достаточно быстро растущая функция.
понятно, что у ТС числа однозначные. Но если числа достаточно большие, то их произведение может не влезть в разрядную сетку.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.04.2018, 02:32   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
по привычке и для универсальности.
произведение чисел достаточно быстро растущая функция.
понятно, что у ТС числа однозначные. Но если числа достаточно большие, то их произведение может не влезть в разрядную сетку.
Понял.
northener вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти среднее арифметическое элементов каждой строки матрицы Q (l, m) и отнять его от элементов этой строки ( язык С ) FYNZIK Помощь студентам 3 13.02.2014 21:44
Найти скалярное произведение i строки на i столбец элементы матрицы зада по след правилу (Нафаня) Помощь студентам 5 07.06.2012 13:49