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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2011, 23:55   #1
tan9
Пользователь
 
Регистрация: 06.05.2011
Сообщений: 11
Вопрос паскаль матрица.

помогите уже 2 неделю думаю не получается не меня нечего. ЗНАЮ ТЕМА НЕ АКТУАЛЬНА,но все таки.
дана матрица n*m (3x3).
1)сформировать матрицу по функции a[i,j]= i^-3 ( 2 - |j-3|^3 )(i+j)^5 lg(|j-i|)-(|5,3 - e^2j| )(-2)^j
2). Компоненты вектора Х- скалярная умножение (добуток,умножение, *) главной диагонали матрици на обратный i-тый ряд,если сумма елементов главной диагонали превышает его максимальный елемент, иначе за вектор Х взять главную діагональ.

вот код. посмотри те и скажите что не так. поправте меня не опытную)

1)es:=2.7183 (e-логарифм,константа)
a[I,j]=exp(ln(i)*(-3))*(2-exp(ln(abs(j-3))*3))*exp(ln(i+j)*5)*ln(abs(j-i))/ln(10)-(abs(5.3-exp(2*j*ln(es))))*(exp(ln(-2)*j))
но выдает ошибка 207 : Invalid floating point operation

2)не понимаю как ето умножение на обратный i-тый ряд.
а)умножение главной диагонали : for i:=1 to n do
begin
for j:=1 to m do
begin
j:=i; (тоесть цыкл берет и=1 а потом ж=1, и т.д. получается главная дианональ)
eb:=1;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=a[i,j](уже гл.диагональ ,после присваевание j:=i *es)

б)за вектор Х взять гл.даигональ
for i:=1 to n do
begin
x[i]=a[i,i];
end;


помогите пожалуйста
tan9 вне форума Ответить с цитированием
Старый 07.05.2011, 10:41   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
lg(|j-i|)
При первой же итерации мы получим десятичный логарифм нуля. Так что либо перепроверьте свою формулу, либо уточните у преподавателя его представление о десятичных и натуральных логарифмах.
Цитата:
(exp(ln(-2)*j))
Опять ерунда. Основание логарифма только положительные числа. Либо подключите модуль Math и пользуйтесь функцией Power(x,y) либо как то так
Код:
Function Step(x,y:Integer):Integer;
Begin
   If x = 0 then step:=0
   else
   If x = 1 then step:=1
   Else
   If y = 0 then step:=1
   Else
   If y = 1 then step:=x
   else
   Step:=x*Step(x,y-1)
End.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 07.05.2011, 16:57   #3
tan9
Пользователь
 
Регистрация: 06.05.2011
Сообщений: 11
По умолчанию

ага. ну не совсем я поняла ети функции тоесть код((

а насчет 2 задания???что
tan9 вне форума Ответить с цитированием
Старый 07.05.2011, 17:19   #4
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
а насчет 2 задания???что
Я совсем не понял, что вы пытались там изобразить. ИМХО как то так
1. Ищите максимальный элемент матрицы
2. Ищите сумму элементов главной диагонали.
Если сумма элементов диагонали больше максимального то вот это
Код:
For i:=1 to N do
Begin
   Scalar:=0;
   For j:=N downto 1 do
   Begin
      Scalar:=Scalar+(A[j,j]*A[i,j])
   End;
   X[i]:=Scalar
End;
Иначе вот это
Код:
For i:=1 to N do X[i]:=A[i,i]
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 07.05.2011, 18:09   #5
tan9
Пользователь
 
Регистрация: 06.05.2011
Сообщений: 11
По умолчанию

я искала максимум так.
sum:=0;
max=a[1,1];
for i:=1 to n do
for j:=1 to n do
begin
sum=sum+a[i,j]; сума гл.диагонали
if(max<a[i,j]) then max:=a[i,j]; проверял на макс.елемент в глюдиагонали.
end
if(sum>max) then
то идет там умножение гл.диагонали на и-тій ряд ,
если нет присваевание х(и) гл.диагональ.

вот такой вариант верен?

ОБЪЕСНИТЕ
tan9 вне форума Ответить с цитированием
Старый 07.05.2011, 18:41   #6
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
ОБЪЕСНИТЕ
Объесняю. Не верно, так как у вас находится сумма элементов не главной диагонали, а всей матрицы. Смотрите сюда
Код:
Max:=-10000;
For i:=1 to N do
Begin
  For j:=1 to N do
  Begin
     If i = j then Sum:=Sum+A[i,j];//главная диагональ - номер строки равен номеру столбца
     If A[i,j] > Max then Max:=A[i,j]
  End;
End;
И еще: Вам нужно найти максимальный элемент всей матрицы или максимальный элемент только главной диагонали(а то из условия не очень понятно)?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681

Последний раз редактировалось GetMax; 07.05.2011 в 18:45.
GetMax вне форума Ответить с цитированием
Старый 07.05.2011, 20:57   #7
tan9
Пользователь
 
Регистрация: 06.05.2011
Сообщений: 11
По умолчанию

"если сумма елементов главной диагонали превышает его максимальный елемент"
вот условие. перепишете еще раз код, исходя из етого условия.
tan9 вне форума Ответить с цитированием
Старый 07.05.2011, 22:14   #8
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
"если сумма елементов главной диагонали превышает его максимальный елемент"
вот условие. перепишете еще раз код, исходя из етого условия.
Есть сэр! Разрешите выполнять?!
_____________________________
Ваш код, вы и пишите. Здесь делов-то.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 07.05.2011, 22:19   #9
tan9
Пользователь
 
Регистрация: 06.05.2011
Сообщений: 11
По умолчанию

та Боже мой. извени если я тебя обидела)))) я не хотела так грубо написать
tan9 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль.матрица Yelisey Паскаль, Turbo Pascal, PascalABC.NET 2 03.03.2011 18:17
паскаль,матрица. Ам тя Помощь студентам 4 24.11.2009 00:44
Паскаль.Матрица. дайкири Помощь студентам 3 23.04.2009 19:23
Паскаль матрица Азарт Помощь студентам 3 13.04.2009 16:55
Паскаль. Матрица delphin100 Помощь студентам 3 19.11.2007 21:43