Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите!

Автор: Baby 8.10.2006 19:57

4 -2 0 1
-3 2 5 1
0 3 4 2
5 1-2 0

Автор: klem4 8.10.2006 20:48

Цитата(Правила)
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...


http://forum.pascal.net.ru/index.php?showtopic=2694&hl=%EE%EF%F0%E5%E4%E5%EB%E8%F2%E5%EB%FC#

ниже приведена программа, считающая определитель матрицы (рекурсия/приведение к диагональному виду)

Автор: volvo 8.10.2006 21:02

Только вот конкретно для этой матрицы программа выдаст 0, ибо есть 0 на главной диагонали. Придется менять местами 2 строки, вычислять определитель, и умножать его на -1...

Автор: chubais 11.10.2006 21:22

Можешь вуделить процедуру в отдельную прогу: работает.


Прикрепленные файлы
Прикрепленный файл  Ramazanov.PAS ( 392 байт ) Кол-во скачиваний: 143

Автор: volvo 11.10.2006 21:42

Цитата
работает.
Оно, извини, даже не компилируется (тепепаты в отпуске)... Уж выкладываешь что-то, будь добр AA (это тип у тебя такой... Что бы он означал, интересно) тоже описывать.

Автор: наёмнег 14.12.2006 1:41

Посмотрел в FAQ прогу на вычисление определителя методом приведения к диагональному виду.
epsilon:=Е-10 что ето? Зачем и откуда взялось?

Автор: volvo 14.12.2006 2:06

Не надо вопросы дублировать...

Это взялось потому, что нельзя (может быть потенциально опасно) сравнивать значения типа Real с нулем через операцию "=", нужно проверять "отклонение от нуля", это особенность машинного представления вещественных типов... В той программе автора устроила точность 10^(-6), т.е. одна стотысячная... Если отклонение от нуля МЕНЬШЕ - число считается равным нулю...

Вот и все сложности...

Автор: наёмнег 14.12.2006 2:19

1E-10 как то не похоже на маленькое число, мож я чёт путаю е=2.7.... и ещё там MAXN=3, если поставить например 4 то есть матрицу порядка выше, будет работать или прога только для 3его порядка?


с 1E сам разобрался, ток не понял что эт за константа такая. А вот с порядком-нужна помощь!

Автор: volvo 14.12.2006 2:21

Упс... там не 1Е-6, а 1Е-10, оказывается... Но это ничего не меняет, Е здесь обозначает НЕ основание натуральных логарифмов, а степень десятки... А ведь степень отрицательная, то есть, 1Е-10 означает 1 / (10^10), то есть, число не маленькое, а ОЧЕНЬ маленькое...

Программа будет работать для любого порядка, я прогонял ее при maxN = 6, все работало...

Автор: мисс_граффити 14.12.2006 2:22

smile.gif
это такая форма представления числа.
аналогична 1*10 в минус десятой.
то есть до Е идет мантисса, а после - степень 10, на которую надо умножить.

Автор: наёмнег 14.12.2006 2:26

Большое всем спасибо!

Автор: наёмнег 14.12.2006 22:55

а слово exit в конце массива-это что, и можно ли заменить end-ом?

Автор: volvo 14.12.2006 23:06

Нет, нельзя... Exit немедленно выходит из подпрограммы, End у тебя там компилятор не пропустит...

А теперь у меня к тебе вопрос: не кажется ли тебе, что во-первых, влезть со своим вопросом в чужую тему, которой уже больше двух месяцев, да еще и поднимать ее постоянно вот такими вопросами (кстати, напрямую к "простым числам" вопрос об Exit совсем не относится) - это уже слишком?

Не знаешь синтаксиса? У тебя что, F1 на клавиатуре заело? Или Help не установлен? В крайнем случае (если это совсем не описывается нигде - задавай вопрос в разделе
http://forum.pascal.net.ru/index.php?showforum=11
)...

Автор: наёмнег 15.12.2006 0:13

Лан, тогда по теме прога правильно работает только для порядка не выше3!