4 -2 0 1
-3 2 5 1
0 3 4 2
5 1-2 0
Только вот конкретно для этой матрицы программа выдаст 0, ибо есть 0 на главной диагонали. Придется менять местами 2 строки, вычислять определитель, и умножать его на -1...
Можешь вуделить процедуру в отдельную прогу: работает.
Прикрепленные файлы
Ramazanov.PAS ( 392 байт )
Кол-во скачиваний: 232
Посмотрел в FAQ прогу на вычисление определителя методом приведения к диагональному виду.
epsilon:=Е-10 что ето? Зачем и откуда взялось?
Не надо вопросы дублировать...
Это взялось потому, что нельзя (может быть потенциально опасно) сравнивать значения типа Real с нулем через операцию "=", нужно проверять "отклонение от нуля", это особенность машинного представления вещественных типов... В той программе автора устроила точность 10^(-6), т.е. одна стотысячная... Если отклонение от нуля МЕНЬШЕ - число считается равным нулю...
Вот и все сложности...
1E-10 как то не похоже на маленькое число, мож я чёт путаю е=2.7.... и ещё там MAXN=3, если поставить например 4 то есть матрицу порядка выше, будет работать или прога только для 3его порядка?
с 1E сам разобрался, ток не понял что эт за константа такая. А вот с порядком-нужна помощь!
Упс... там не 1Е-6, а 1Е-10, оказывается... Но это ничего не меняет, Е здесь обозначает НЕ основание натуральных логарифмов, а степень десятки... А ведь степень отрицательная, то есть, 1Е-10 означает 1 / (10^10), то есть, число не маленькое, а ОЧЕНЬ маленькое...
Программа будет работать для любого порядка, я прогонял ее при maxN = 6, все работало...
это такая форма представления числа.
аналогична 1*10 в минус десятой.
то есть до Е идет мантисса, а после - степень 10, на которую надо умножить.
Большое всем спасибо!
а слово exit в конце массива-это что, и можно ли заменить end-ом?
Нет, нельзя... Exit немедленно выходит из подпрограммы, End у тебя там компилятор не пропустит...
А теперь у меня к тебе вопрос: не кажется ли тебе, что во-первых, влезть со своим вопросом в чужую тему, которой уже больше двух месяцев, да еще и поднимать ее постоянно вот такими вопросами (кстати, напрямую к "простым числам" вопрос об Exit совсем не относится) - это уже слишком?
Не знаешь синтаксиса? У тебя что, F1 на клавиатуре заело? Или Help не установлен? В крайнем случае (если это совсем не описывается нигде - задавай вопрос в разделе
http://forum.pascal.net.ru/index.php?showforum=11
)...
Лан, тогда по теме прога правильно работает только для порядка не выше3!