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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2018, 16:55   #1
OnEDooM
 
Регистрация: 18.12.2018
Сообщений: 5
Восклицание Произведение в матрице

Задана случайным образом матрица NxN. Найти произведения суммы элементов главной диагонали и суммы элементов i-ой строки
OnEDooM вне форума Ответить с цитированием
Старый 26.12.2018, 16:56   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

И? Что не получается? Не знаете, что такое главная диагональ?
p51x вне форума Ответить с цитированием
Старый 26.12.2018, 16:57   #3
OnEDooM
 
Регистрация: 18.12.2018
Сообщений: 5
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
n:=StrToInt(Edit1.Text);
Stringgrid1.ColCount:=n;
Stringgrid1.RowCount:=n;
for i:=0 to n do
for j:=0 to n do
Stringgrid1.cells[i,j]:=IntToStr(random(10));
end;

procedure TForm1.Button2Click(Sender: TObject);
var sg,si,p,k:integer;
a:array [0..20,0..20] of integer;
begin
Memo1.Clear;
k:=StrToInt(Edit2.Text);
sg:=0;
si:=0;
p:=1;
for i:=0 to n do
for j:=0 to n do
a[i,j]:=StrToInt(Stringgrid1.cells[j,i]);
for i:=0 to n-1 do
sg:=sg+a[i,i];
for j:=0 to n do
if (i=k)  then
si:=si+a[i,j];
p:=sg*si;
Memo1.Lines.Add('Сумма глав диаг='+Inttostr(sg));
Memo1.Lines.Add('Сумма i-ой строки='+IntToStr(Si));
Memo1.Lines.Add('Произведение='+IntToStr(p));
end;
Вопрос в том, что не считает нормально сумму элементов заданной строки i(В программе идет как переменная k)
OnEDooM вне форума Ответить с цитированием
Старый 26.12.2018, 17:00   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А если подумать, как правильно - циклы до n-1 или до n?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.12.2018, 17:02   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Код:
for j:=0 to n do
if (i=k)  then si:=si+a[i,j];
Чему здесь равно i?
p51x вне форума Ответить с цитированием
Старый 26.12.2018, 17:06   #6
OnEDooM
 
Регистрация: 18.12.2018
Сообщений: 5
По умолчанию

Код:
for i:=0 to n do
if (i=k)  then si:=si+a[i,j];
OnEDooM вне форума Ответить с цитированием
Старый 26.12.2018, 17:09   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Хорошо. Чему равно j в a[i,j]? До сих пор не доходит, что условие не нужно?
p51x вне форума Ответить с цитированием
Старый 26.12.2018, 17:12   #8
OnEDooM
 
Регистрация: 18.12.2018
Сообщений: 5
По умолчанию

Всё спасибо дошло, программа работает
OnEDooM вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Turbo Pascal]: в сформированной случайным образом матрице 4x4 найти сумму элементов главной диагонали, а также произведение элементов побочной temar Помощь студентам 2 18.12.2016 15:16
[РЕШЕНО] [Turbo Pascal]: В заданной матрице найти произведение всех её элементов temar Помощь студентам 3 18.12.2016 13:31
В матрице найти сумму и произведение элементов строк - С++ SenkShow C++ Builder 4 21.09.2015 21:25
СКАЛЯРНОЕ ПРОИЗВЕДЕНИЕ В МАТРИЦЕ. вопрос жизни и смерти wonter Помощь студентам 1 19.06.2014 16:41
Произведение в матрице BaronVik Помощь студентам 2 05.05.2010 00:24