1 / 1 / 0
Регистрация: 03.12.2018
Сообщений: 196
1

Вычислить сумму элементов каждой строки матрицы

11.05.2019, 10:20. Показов 2484. Ответов 20
Метки нет (Все метки)

Вычислить сумму элементов элементов каждой строки матрицы. Результат получить в виде вектора D, то есть вычислить
https://www.cyberforum.ru/cgi-bin/latex.cgi?{d}_{i}= \sum_{j=1}^{6}{a}_{ij}
Вот код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.btn1Click(Sender: TObject);
const n=15;
var
a:array[1..n,1..n] of Extended;
i,j:byte;
begin
for i:=1 to n do
for j:=1 to n do
begin
 a[i,j]:=Exp(3*ln(i+j))-45;
 mmo1.Lines.Add(FloatToStr(a[i, j]));
end;
end;
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2019, 10:20
Ответы с готовыми решениями:

Вычислить сумму элементов каждой строки матрицы.
Вычислить сумму квадратов положительных чисел. Вычислить сумму элементов каждой строки.

Вычислить сумму положительных элементов для каждой матрицы
Здраствуйте, помогите пожалуйста с задачей, завтра сдавать надо, сделать надо в консольном...

Найти сумму произведения элементов каждой строки матрицы
дана матрица А размерностью nxm.Найти сумму произведения элементов каждой строки матрицы ...

Для каждой строки матрицы найти сумму ее элементов
Дана матрица размера M N . для каждой строки матрицы найти сумму ее элементов. Помагите плиз если...

20
Модератор
1436 / 1013 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
11.05.2019, 12:12 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.btn1Click(Sender: TObject);
  const n=15;
var
  a:array[1..n,1..n] of Extended;
  i,j:byte;
  d: array[1..n] of Extended;
begin
  for i:=1 to n do
  begin
    d[i] := 0;
    for j:=1 to n do
    begin
      a[i,j]:=Exp(3*ln(i+j))-45;
      mmo1.Lines.Add(FloatToStr(a[i, j]));
 
      if j in [1..6] then
        d[i] := d[i] + a[i,j];
    end;
  end;
end;
1
1 / 1 / 0
Регистрация: 03.12.2018
Сообщений: 196
11.05.2019, 12:40  [ТС] 3
Matan!, спасибо, не подскажешь еще как вывести d в memo один раз? У меня происходит такая ошибка: Invalid floating point operator
0
Модератор
1436 / 1013 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
11.05.2019, 12:50 4
Saulq, А как вы хотите вывести вектор - в строку через пробел или в столбец?
0
1 / 1 / 0
Регистрация: 03.12.2018
Сообщений: 196
11.05.2019, 14:06  [ТС] 5
Matan!, Значение d(i)-это одно число показывающее сумму элементов каждой строки массива, так? Поэтому зачем их выводить многократно, вывести я хотел так
Delphi
1
memo.lines.add('d='+floattostr(d(i)))
0
Модератор
1436 / 1013 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
11.05.2019, 14:13 6
Saulq, так потому и спросил. Если уж как Вы хотите(в столбик), то уж так:
Delphi
1
memo.lines.add('d' + IntToStr(i) + '=' + floattostr(d(i)));
Есть второй способ - в строку через пробел. Он использует конкатенацию(склеивание) строк.
Delphi
1
2
3
4
5
6
7
8
//str: string;
str := '';
for i := 1 to n do
begin
  ...........
  str := str + ' ' + FloatToStr(d[i]);
end;
memo.lines.add(str);
0
1 / 1 / 0
Регистрация: 03.12.2018
Сообщений: 196
11.05.2019, 16:51  [ТС] 7
Matan!, Cделал все как ты и сказал, та же ошибка. Вот итоговый код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.btn1Click(Sender: TObject);
const n=15;
var
  a:array[1..n,1..n] of Extended;
  i,j:byte;
  d: array[1..n] of Extended;
begin
  for i:=1 to n do
  begin
    d[i] := 0;
    for j:=1 to n do
    begin
      a[i,j]:=Exp(3*ln(i+j))-45;
      if j in [1..6] then
        d[i] := d[i] + a[i,j];
    end;
  end;
  mmo1.lines.add('d' + IntToStr(i) + '=' + floattostr(d[i]));
end;
end.
0
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
11.05.2019, 17:02 8
Saulq, А приведите точное и полное задание, а то хрен поймешь. Например судя по формуле количество столбцов матрицы = 6, а не 15, да и откуда взялось 15?
Судя по формуле элементы равны целому числу (i+j)3-45, нафига extended.
0
1 / 1 / 0
Регистрация: 03.12.2018
Сообщений: 196
11.05.2019, 17:04  [ТС] 9
Puporev, границы массива действительно 6, это все о чем я ещё не сказал, разве это действительно важно?
0
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
11.05.2019, 17:18 10
Я бы вообще так написал.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure TForm1.Button1Click(Sender: TObject);
const n=6;
var a:array[1..n,1..n] of integer;
    d:array[1..n] of integer;
    i,j:byte;
begin
with StringGrid1 do
 begin
  rowcount:=n+1;
  colcount:=n+1;
  fixedrows:=1;
  fixedcols:=0;
  defaultcolwidth:=35;
  cells[n,0]:='Sum';
 end;
for i:=1 to n do
 begin
  d[i]:=0;
  for j:=1 to n do
   begin
    a[i,j]:=sqr(i+j)*(i+j)-45;
    StringGrid1.Cells[j-1,i]:=inttostr(a[i,j]);
    inc(d[i],a[i,j]);
   end;
  StringGrid1.Cells[n,i]:=inttostr(d[i]);
 end;
 
end;
0
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
11.05.2019, 17:23 11
Лучший ответ Сообщение было отмечено Saulq как решение

Решение

Или так.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
procedure TForm1.Button1Click(Sender: TObject);
const n=6;
var a:array[1..n,1..n] of integer;
    d:array[1..n] of integer;
    i,j:byte;
begin
with StringGrid1 do
 begin
  rowcount:=n;
  colcount:=n;
  fixedrows:=0;
  fixedcols:=0;
  defaultcolwidth:=35;
 end;
with StringGrid2 do
 begin
  rowcount:=1;
  colcount:=n;
  fixedrows:=0;
  fixedcols:=0;
  defaultcolwidth:=35;
 end;
for i:=1 to n do
 begin
  d[i]:=0;
  for j:=1 to n do
   begin
    a[i,j]:=sqr(i+j)*(i+j)-45;
    StringGrid1.Cells[j-1,i-1]:=inttostr(a[i,j]);
    inc(d[i],a[i,j]);
   end;
  StringGrid2.Cells[i-1,0]:=inttostr(d[i]);
 end;
 
end;
Миниатюры
Вычислить сумму элементов каждой строки матрицы  
1
Модератор
1436 / 1013 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
11.05.2019, 17:24 12
А ошибка-то в чём?
0
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
11.05.2019, 17:28 13
Надеюсь это вопрос к ТСу? Пусть архив проекта скинет, в Вашем и в его(последнем)коде ошибок нет.
0
Модератор
1436 / 1013 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
11.05.2019, 17:35 14
Да, к ТСу. В моём коде ошибки нет, хоть и на коленке писал("на заборе", как Веревкин выражается)) ).
0
Puporev
11.05.2019, 17:38
  #15

Не по теме:

Цитата Сообщение от Matan! Посмотреть сообщение
"на заборе"
А почему нет ни х ни y?

0
Matan!
11.05.2019, 18:02
  #16

Не по теме:

Цитата Сообщение от Puporev Посмотреть сообщение
А почему нет ни х ни y?
Сначала немного по-другому прочитал..)) Прошу простить..

0
1 / 1 / 0
Регистрация: 03.12.2018
Сообщений: 196
11.05.2019, 18:40  [ТС] 17
Matan!, я извиняюсь, ошибки нету, это моя невнимательность. Большое спасибо за помощь)

Добавлено через 1 минуту
Puporev, Отличный код, не подскажешь в какой строке ты высчитываешь d(i)?
0
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
11.05.2019, 18:43 18
Так написано же в коде
Delphi
1
2
3
4
5
6
7
8
9
10
for i:=1 to n do
 begin
  d[i]:=0;//вот здесь начало
  for j:=1 to n do
   begin
    a[i,j]:=sqr(i+j)*(i+j)-45;
    StringGrid1.Cells[j-1,i-1]:=inttostr(a[i,j]);
    inc(d[i],a[i,j]);//здесь конец
   end;
  StringGrid2.Cells[i-1,0]:=inttostr(d[i]);//здесь вывод
1
Модератор
1436 / 1013 / 228
Регистрация: 31.05.2013
Сообщений: 6,645
Записей в блоге: 6
11.05.2019, 19:09 19
Цитата Сообщение от Puporev Посмотреть сообщение
inc(d[i],a[i,j]);
Забыл, что так можно) Хорошо, что Вы напомнили
0
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
11.05.2019, 19:15 20
Так у вас раньше все extended было.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2019, 19:15
Помогаю со студенческими работами здесь

Вычислить суммы элементов каждой строки матрицы
Дана матрица X(N,N). Вычислить суммы элементов каждой строки матрицы и наибольшую из вычисленных...

Определить сумму элементов каждой строки и каждого столбца матрицы
В двумерном массиве(массив вводится пользователем с клавиатуры) определить сумму элементов каждой...

Вычислить суммы и количества элементов каждой строки матрицы
вычислить и запомнить суммы и числа элементов каждой строки матрицы.Результаты отпечатать в виде...

Вычислить количество положительных и отрицательных элементов каждой строки матрицы
Вычислить количество положительных и отрицательных элементов каждой строки матрицы b(n*m) записать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru