1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 38

Определитель квадратной матрицы n-го порядка.

08.04.2021, 17:16. Показов 3024. Ответов 26

Студворк — интернет-сервис помощи студентам
Программа вычисления определителя квадратной матрицы n-го порядка
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.04.2021, 17:16
Ответы с готовыми решениями:

Определитель квадратной матрицы второго порядка.
Составить программу, которая вычисляет определитель квадратной матрицы второго порядка.

Определитель квадратной матрицы третьего порядка
Написать программу, которая вычисляет определитель квадратной матрицы третьего порядка. P.S. С использованием массивов, наполнение...

Найти определитель квадратной матрицы
Вот программка,которая находит определитель квадратной матрицы,только не понимаю где ошибка,что он каждый раз делит определитель на 10. ...

26
Почетный модератор
 Аватар для Puporev
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.04.2021, 19:38
Лучший ответ Сообщение было отмечено dedlyd как решение

Решение

Студворк — интернет-сервис помощи студентам
Если код из поста #5, то в Паскаль АВС.net будет так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
type mas=array of integer;
     mtr=array[,]of real;
{процедура обмена двух переменных}
procedure swap(var n1, n2: integer);
var
  t: integer;
begin
  t := n1;
  n1 := n2;
  n2 := t
end;
 
{функция генерации следующей перестановки, используется алгоритм Нарайаны}
{возвращает true, если перестановка сгенерирована, и false в противном случае}
{сама перестановка возвращается через формальный параметр q}
function next(var q:mas): boolean;
var
  i, j, m: integer;
begin
  i := high(q);
  repeat dec(i) until (i = -1) or (q[i] < q[i + 1]);
  next := i > -1;
  if i > -1 then
    begin
      j := high(q) + 1;
      repeat dec(j) until q[i] < q[j]; {поиск j}
      swap(q[i], q[j]);
      for m := low(q) to (high(q) - i) div 2 - 1 do swap(q[i + 1 + m], q[high(q) - m])
    end
end;
 
{функция вычисления знака перестановки}
{при нечётном количестве инверсий возвращается -1, в противном случае возвращается 1}
function sign(const q: mas): real;
var
  i, j, k: integer;
begin
  k := 0;
  for i := low(q) to high(q) - 1 do
    for j := i + 1 to high(q) do
      if q[i] > q[j] then inc(k);
  if odd(k) then sign := -1 else sign := 1
end;
 
{основная программа}
var
  a:mtr; {матрица}
  p: mas; {массив для перестановок}
  n: integer; //счётчики, ранг матрицы
  t, z, d: real; //слагаемое, знак перестановки, определитель
 
begin
  //ввод ранга матрицы с проверкой
  repeat
    write('Введите ранг матрицы: ');
    readln(n)
  until n > 0;
  {установка размеров массивов}
  setlength(a, n, n); {установка размера матрицы}
  setlength(p, n); {установка размера массива для перестановок}
  {ввод матрицы}
  writeln('Введите матрицу, ', n, ' строк по ', n, ' чисел (через пробелы):');
  for var i := low(a) to high(a) do
    for var j := low(a) to high(a) do
      read(a[i, j]);
  readln;
  {контрольная печать матрицы}
  writeln('Матрица:');
  for var i := low(a) to high(a) do
    begin
      for var j := low(a) to high(a) do write(a[i, j]:12, ' ');
      writeln
    end;
  {вычисление определителя}
  d := 0; {пока определитель равен 0}
  for var i := low(p) to high(p) do p[i] := i; {начальная перестановка: ряд 0, 1, 2, ..., n-1}
  repeat {цикл по перестановкам}
    z := sign(p); {знак перестановки}
    for var i := low(a) to high(a) do {цикл добавления слагаемого согласно текущей перестановки}
      begin
        t := z; {очередное слагаемое пока равно знаку перестановки}
        for var j := low(p) to high(p) do t *= a[j, p[j]]; {цикл умножения слагаемого на соответствующие элементы}
      end;
    d += t {добавляем слагаемое к определителю}
  until not next(p); {ищем следующую перестановку, в случае неудачи выходим из цикла по перестановкам}
  write('Определитель = ', d);
  readln
end.
0
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 38
11.04.2021, 19:41  [ТС]
Сейчас попробую

Добавлено через 1 минуту
Ты просто бог
0
 Аватар для JuriiMW
5096 / 2662 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
12.04.2021, 03:58
Во всех!
0
Модератор
10451 / 5747 / 3409
Регистрация: 17.08.2012
Сообщений: 17,491
12.04.2021, 11:27
Цитата Сообщение от dedlyd Посмотреть сообщение
Ты просто бог
А я так, сбоку стоял, и ничегошеньки для Вас не сделал. Как я попал в эту тему, вообще непонятно.

dedlyd, в следующий раз, пожалуйста, создавайте тему в том разделе паскаля, на котором Вам нужна программа. Можно и в общем разделе, но при этом указывайте, на каком диалекте паскаля Вам требуется программа.
1
12.04.2021, 11:32

Не по теме:

Cyborg Drone, Ты не просто бог, а бог номер 1.

0
1 / 1 / 0
Регистрация: 08.04.2021
Сообщений: 38
12.04.2021, 18:59  [ТС]
Тебе тоже огромное спасибо ты очень помог
1
Модератор
10451 / 5747 / 3409
Регистрация: 17.08.2012
Сообщений: 17,491
12.04.2021, 21:08
Просто меня удивило другое: я же Вам написал, как переделать программу для Pascal ABC.NET, но Вы почему-то на это внимания не обратили. То, что я написал, устраняет ошибку, возникающую из-за различий в способе установки размеров многомерных массивов в FPC и PABC.NET. Остаются только замечания насчёт объявления переменных цикла не в самом цикле. Но это только замечания, не ошибки. С ними программа вполне работает, пусть и чуть медленнее, чем при объявлении счётчиков в циклах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2021, 21:08
Помогаю со студенческими работами здесь

Отразить элементы квадратной матрицы порядка М относительно горизонтальной оси симметрии матрицы
кто знает. как сделать!!! Отразить элементы квадратной матрицы порядка М относительно горизонтальной оси симметрии матрицы.

Для квадратной матрицы порядка N найти такие k, что k-я строка матрицы совпадает с k-м столбцом
Для квадратной матрицы порядка N найти такие k, что k-я строка матрицы совпадает с k-м столбцом. Размеры массивов задаются именованными...

Заполнение квадратной матрицы порядка n
Помогите написать программу: Даны значения элементов вещественного вектора x1, x2, ..., xn. Заполнить квадратную матрицу порядка n...

Вычислить определитель матрицы 3-его порядка через разложение по любой строке или столбцу.
решите пожалуйста Вычислить определитель матрицы 3-его порядка через разложение по любой строке или столбцу.

программа транспонирования квадратной матрицы 3-го порядка
Помогите решить задачу: Составить программу транспонирования квадратной матрицы 3-го порядка с выводом результата на экран в виде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

Новые блоги и статьи
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru