IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Помогите!, вычислить определитель
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Женский

Репутация: -  0  +


4 -2 0 1
-3 2 5 1
0 3 4 2
5 1-2 0
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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


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

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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






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





Группа: Пользователи
Сообщений: 9
Пол: Мужской
Реальное имя: Басков

Репутация: -  0  +


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


Прикрепленные файлы
Прикрепленный файл  Ramazanov.PAS ( 392 байт ) Кол-во скачиваний: 94
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






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





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Посмотрел в FAQ прогу на вычисление определителя методом приведения к диагональному виду.
epsilon:=Е-10 что ето? Зачем и откуда взялось?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






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

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

Вот и все сложности...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


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


с 1E сам разобрался, ток не понял что эт за константа такая. А вот с порядком-нужна помощь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






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

Программа будет работать для любого порядка, я прогонял ее при maxN = 6, все работало...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Большое всем спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


а слово exit в конце массива-это что, и можно ли заменить end-ом?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






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

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

Не знаешь синтаксиса? У тебя что, F1 на клавиатуре заело? Или Help не установлен? В крайнем случае (если это совсем не описывается нигде - задавай вопрос в разделе
Теоретические вопросы
)...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14





Группа: Пользователи
Сообщений: 5
Пол: Мужской

Репутация: -  0  +


Лан, тогда по теме прога правильно работает только для порядка не выше3!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 22.11.2017 17:50
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"