Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Baby
4 -2 0 1
-3 2 5 1
0 3 4 2
5 1-2 0
klem4
Цитата(Правила)
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...


FAQ : Массивы, матрицы ...

ниже приведена программа, считающая определитель матрицы (рекурсия/приведение к диагональному виду)
volvo
Только вот конкретно для этой матрицы программа выдаст 0, ибо есть 0 на главной диагонали. Придется менять местами 2 строки, вычислять определитель, и умножать его на -1...
chubais
Можешь вуделить процедуру в отдельную прогу: работает.
volvo
Цитата
работает.
Оно, извини, даже не компилируется (тепепаты в отпуске)... Уж выкладываешь что-то, будь добр AA (это тип у тебя такой... Что бы он означал, интересно) тоже описывать.
наёмнег
Посмотрел в FAQ прогу на вычисление определителя методом приведения к диагональному виду.
epsilon:=Е-10 что ето? Зачем и откуда взялось?
volvo
Не надо вопросы дублировать...

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

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


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

Программа будет работать для любого порядка, я прогонял ее при maxN = 6, все работало...
мисс_граффити
smile.gif
это такая форма представления числа.
аналогична 1*10 в минус десятой.
то есть до Е идет мантисса, а после - степень 10, на которую надо умножить.
наёмнег
Большое всем спасибо!
наёмнег
а слово exit в конце массива-это что, и можно ли заменить end-ом?
volvo
Нет, нельзя... Exit немедленно выходит из подпрограммы, End у тебя там компилятор не пропустит...

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

Не знаешь синтаксиса? У тебя что, F1 на клавиатуре заело? Или Help не установлен? В крайнем случае (если это совсем не описывается нигде - задавай вопрос в разделе
Теоретические вопросы
)...
наёмнег
Лан, тогда по теме прога правильно работает только для порядка не выше3!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.