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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2013, 17:38   #1
Юлия0605
Новичок
Джуниор
 
Регистрация: 08.04.2013
Сообщений: 4
По умолчанию необходимо решить задачу, как задать произведение?

НЕобходимо написать программу: Дана квадратная вещественная матрица А порядка N, где N - заданное натуральное число. найти произведение элементов матрицы, расположенных на двух диагоналях, параллельной главной и граничащих с ней. заранее спасибо большое)
Юлия0605 вне форума Ответить с цитированием
Старый 08.04.2013, 17:44   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Что Вы уже сделали? В чём Вы испытываете затруднения?
Если не сделали пока ничего - напишите код, который бы выводил верхний левый элемент матрицы (и только его).
Abstraction вне форума Ответить с цитированием
Старый 08.04.2013, 18:22   #3
Юлия0605
Новичок
Джуниор
 
Регистрация: 08.04.2013
Сообщений: 4
По умолчанию

Код:
Program Kurs_Ch1;
uses crt;
var A: array [1..100, 1..100] of integer;
   i, j, p, N: integer;
begin
clrscr;
write ('Vvedite razmer massiva ');
readln (N);
randomize;
for i:=1 to N do
for j:=1 to N do
  begin
  A[i,j]:= random (100);
  end;
for i:=1 to N do
  begin
  for j:=1 to N do
     begin
     write (A[i,j],' ');
     end;
  writeln;
  end;
p:=1;
for i:=1 to N-1 do
begin
  for j:=2 to N do
begin
p:=p*A[i,j]*A[j,i]
end;
  end;
writeln ('proizvedenie= ',p);
readkey;
end.

Вот что есть, но не правильно выдает... что не так?

Последний раз редактировалось Stilet; 08.04.2013 в 20:34.
Юлия0605 вне форума Ответить с цитированием
Старый 08.04.2013, 20:38   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Думаю цикл вычисления должен выглядеть так:
Код:
p:=1;
for i:=1 to n do begin
 if (i>1) then p:=p*a[i-1,i];
 if (i<N) then p:=p*a[i+1,i];
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.04.2013, 19:05   #5
Юлия0605
Новичок
Джуниор
 
Регистрация: 08.04.2013
Сообщений: 4
По умолчанию

не работает(
Юлия0605 вне форума Ответить с цитированием
Старый 09.04.2013, 19:19   #6
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Вот как вариант
Код:
p:=a[1,2];
for i:=2 to N-1 do
  p:=p*a[i,i+1]*a[i,i-1];
p:=p*a[n,n-1];
Те же яйца, только в профиль
Вариант Stilet'а тоже правильно считает
Все тривиальное просто

Последний раз редактировалось whatever; 09.04.2013 в 19:22.
whatever вне форума Ответить с цитированием
Старый 09.04.2013, 19:25   #7
Юлия0605
Новичок
Джуниор
 
Регистрация: 08.04.2013
Сообщений: 4
По умолчанию

число маленькое получается((((( что-то не так
Юлия0605 вне форума Ответить с цитированием
Старый 09.04.2013, 19:44   #8
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Все так, просто в integer не влезает. Сделай p:real;
Я просто на random(10) проверял, чтоб проще считать было.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
необходимо решить задачу amar Помощь студентам 1 13.11.2012 13:12
Необходимо решить задачу в C# Надежда1286 Помощь студентам 0 29.09.2012 21:42
Необходимо решить задачу в excel Narina Microsoft Office Excel 1 05.09.2012 21:38