Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа (метод Крамера).doc
Скачиваний:
40
Добавлен:
20.06.2014
Размер:
696.83 Кб
Скачать

2.4 Входные данные

Коэффициенты при переменных в уравнениях. Данные быть введены в виде десятичной дроби со знаком или без (для отделения дробной части используется знак «,»), а также в виде целого числа, которое в ходе программы преобразуется в вещественное.

    1. 2.5 Выходные данные

Корни системы линейных уравнений, которые могут быть выводятся в виде десятичной дроби со знаком (выводится только знак «-», если он есть, знак «+» опускается) с точностью до 10-6

  1. 3. Руководство программиста

3.1 Назначение и условия применения программы

      1. 3.1.1 Назначение программы

Программа предназначена для нахождения решения системы линейных алгебраических уравнений методом Крамера. Программа имеет некоторые ограничения, которые необходимо учитывать пользователю при вводе тех или иных параметров. В любом случае параметры проверяются перед расчетом. Данные, вводимые пользователем, имеют вещественный тип, т. е. возможно использование запятой. Ввод экспоненциальных данных в программе не предусмотрен. В случае ввода таких данных, будет выведено сообщение об ошибке.

Работу облегчает простой и интуитивно понятный интерфейс. Автор стремился сделать программу дружественной к пользователю.

      1. 3.1.2 Условия применения программы

- Процессор Intel Pentium II.

- Наличие не менее 16Mб ОЗУ.

- Наличие не менее 1Мб свободного дискового пространства.

- SVGA – графический адаптер.

- Минимальный набор периферийного оборудования.

3.2 Характеристики программы

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

    1. 3.3 Вызов и загрузка

Для начала работы программы необходимо запустить файл «Cramers.exe»

    1. 3.4 Данные

      1. 3.4.1. Входные данные

- количество уравнений в системе, целое число;

- коэффициенты при соответствующих переменных в уравнениях, числа вещественные;

      1. 3.4.2. Выходные данные

- значение корней системы, вещественные числа;

3.5. Сообщения

Сообщения выводятся на экран во время выполнения данной программы в случае 3-х возможных ошибок:

  1. Пользователь ввел неверное количество уравнений системы:

«Ошибка! Вводимое число должно иметь целое значение от 1 до 9. Повторите ввод.» Следует заново ввести целое число от 1 до 9.

  1. Пользователь ввел неверное значение коэффициента уравнения:

«Ошибка! Повторите ввод данных. Введите числовое значение. Например 12,34» Следует ввести верное вещественное число.

  1. Главный определитель равен нулю:

«Главный определитель равен нулю. Система не имеет единственного решения.» Следует ввести коэффициенты уравнений, при которых система совместна.

  1. 4. Описание контрольного примера

    1. 4.1 Назначение программы

Программа предназначена для решения системы линейных уравнений методом Крамера. Программа имеет некоторые ограничения, которые необходимо учитывать пользователю при вводе тех или иных параметров. В любом случае параметры проверяются перед расчетом.

    1. 4.2. Цель проведения испытаний

Проверить правильность нахождения решения системы линейных уравнений методом Крамера.

    1. 4.3 Требования, подлежащие проверке

- Правильность нахождения решения системы линейных уравнений;

- Верность выдаваемых сообщений об ошибке.

    1. 4.4. Технические программные средства, используемые при вводе

Технические средства: компьютер типа IBM PC, монитор, мышь и клавиатура.

Программные средства: операционная система Microsoft Windows 7 и тестируемая программа.

    1. 4.5. Порядок проведения тестирования

- Ввести значения, соответствующие проверяемым требованиям;

- Отследить результаты работы программы;

- Сравнить полученные значения с ожидаемыми результатами.

4.6. Используемые методы тестирования

4.6.1.Проверка правильности решения системы линейных уравнений

Введем количество уравнений 3 (рис. 1)

Ввод количества (рис. 1)

Введем значения коэффициентов и свободных членов (рис. 2)

Ввод данных (рис. 2)

Получим ожидаемые значения корней: X1=-152, X2=270, X3=-254 (рис. 3)

Вывод результатов (рис. 3)

4.6.2. Проверка поведения программы при заведомо неправильных входных данных

Введем неверное число уравнений системы или нечисловое значение (рис. 4)

Сообщение об ошибке ввода количества уравнений (рис. 4)

Введем нечисловое значение коэффициента или свободного члена (рис. 5)

Сообщение об ошибке ввода коэффициента или свободного члена (рис. 5)

Введем данные, делающие значение определителя матрицы нулевым (рис. 6)

Система не имеет единственного решения (рис. 6)

5. Текст программы

#include <conio.h>

#include <math.h>

#include <stdio.h>

#include <locale.h>

#include <cstdlib>

int n;

float A1,A2,A3,A4,A5;

float B1,B2,B3,B4,B5;

float C1,C2,C3,C4,C5;

float D1,D2,D3,D4,D5;

float E1,E2,E3,E4,E5;

float S1,S2,S3,S4,S5;

float detA,detA1,detA2,detA3,detA4,detA5;

float x1,x2,x3,x4,x5;

int main ()

{

system("color f0");

setlocale(LC_ALL,"rus");

printf("Введите количество уравнений в системе:\n");

scanf("%d",&n);

if(n<2)

{

printf("Количество уравнений не может быть менее 2-х. Повторите попытку.\n");

main();

}

if(n==2)

{

printf("Введите значения коэффициентов при x сначала из 1-й строки, а потом из второй, начиная слева направо\n");

scanf("%f %f %f %f",&A1,&B1,&A2,&B2);

printf("Теперь введите значения уравнений\n");

scanf("%f %f",&S1,&S2);

detA=A1*B2-B1*A2;

if(detA==0)

{

printf("Главный определитель равен 0. Система имеет бесконечно много решений или не имеет решений.\n");

}

else

{

printf("Главный определитель равен %.3f\n",detA);

detA1=S1*B2-B1*S2;

printf("1-й побочный определитель равен %.3f\n",detA1);

detA2=A1*S2-S1*A2;

printf("2-й побочный определитель равен %.3f\n",detA2);

x1=detA1/detA;

x2=detA2/detA;

printf("Значения x1=%.3f x2=%.3f\n",x1,x2);

}

}

if(n==3)

{

printf("Введите значения коэффициентов при x сначала из 1-ой строки, а потом из 2-ой и 3-ей, начиная слева направо\n");

scanf("%f %f %f %f %f %f %f %f %f",&A1,&B1,&C1,&A2,&B2,&C2,&A3,&B3,&C3);

printf("Теперь введите значения уравнений\n");

scanf("%f %f %f",&S1,&S2,&S3);

detA=A1*(B2*C3-C2*B3)-B1*(A2*C3-C2*A3)+C1*(A2*B3-B2*A3);

if(detA==0)

{

printf("Главный определитель равен 0. Система имеет бесконечно много решений или не имеет решений.\n");

}

else

{

printf("Главный определитель равен %.3f\n",detA);

detA1=S1*(B2*C3-C2*B3)-B1*(S2*C3-C2*S3)+C1*(S2*B3-B2*S3);

printf("1-й побочный определитель равен %.3f\n",detA1);

detA2=A1*(S2*C3-C2*S3)-S1*(A2*C3-C2*A3)+C1*(A2*S3-S2*A3);

printf("2-й побочный определитель равен %.3f\n",detA2);

detA3=A1*(B2*S3-S2*B3)-B1*(A2*S3-S2*A3)+S1*(A2*B3-B2*A3);

printf("3-й побочный определитель равен %.3f\n",detA3);

x1=detA1/detA;

x2=detA2/detA;

x3=detA3/detA;

printf("Значения x1=%.3f x2=%.3f x3=%.3f\n",x1,x2,x3);

}

}

if(n==4)

{

printf("Введите значения коэффициентов при x сначала из 1-ой строки, а потом из 2-ой, 3-ей и 4-ой, начиная слева направо\n");

scanf("%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f",&A1,&B1,&C1,&D1,&A2,&B2,&C2,&D2,&A3,&B3,&C3,&D3,&A4,&B4,&C4,&D4);

printf("Теперь введите значения уравнений\n");

scanf("%f %f %f %f",&S1,&S2,&S3,&S4);

detA=A1*(B2*(C3*D4-D3*C4)-C2*(B3*D4-D3*B4)+D2*(B3*C4-C3*B4))-B1*(A2*(C3*D4-D3*C4)-C2*(A3*D4-D3*A4)+D2*(A3*C4-C3*A4))+C1*(A2*(B3*D4-D3*B4)-B2*(A3*D4-D3*A4)+D2*(A3*B4-B3*A4))-D1*(A2*(B3*C4-C3*B4)-B2*(A3*C4-C3*A4)+C2*(A3*B4-B3*A4));

if(detA==0)

{

printf("Главный определитель равен 0. Система имеет бесконечно много решений или не имеет решений.\n");

}

else

{

printf("Главный определитель равен %.3f\n",detA);

detA1=S1*(B2*(C3*D4-D3*C4)-C2*(B3*D4-D3*B4)+D2*(B3*C4-C3*B4))-B1*(S2*(C3*D4-D3*C4)-C2*(S3*D4-D3*S4)+D2*(S3*C4-C3*S4))+C1*(S2*(B3*D4-D3*B4)-B2*(S3*D4-D3*S4)+D2*(S3*B4-B3*S4))-D1*(S2*(B3*C4-C3*B4)-B2*(S3*C4-C3*S4)+C2*(S3*B4-B3*S4));

printf("1-й побочный определитель равен %.3f\n",detA1);

detA2=A1*(S2*(C3*D4-D3*C4)-C2*(S3*D4-D3*S4)+D2*(S3*C4-C3*S4))-S1*(A2*(C3*D4-D3*C4)-C2*(A3*D4-D3*A4)+D2*(A3*C4-C3*A4))+C1*(A2*(S3*D4-D3*S4)-S2*(A3*D4-D3*A4)+D2*(A3*S4-S3*A4))-D1*(A2*(S3*C4-C3*S4)-S2*(A3*C4-C3*A4)+C2*(A3*S4-S3*A4));

printf("2-й побочный определитель равен %.3f\n",detA2);

detA3=A1*(B2*(S3*D4-D3*S4)-S2*(B3*D4-D3*B4)+D2*(B3*S4-S3*B4))-B1*(A2*(S3*D4-D3*S4)-S2*(A3*D4-D3*A4)+D2*(A3*S4-S3*A4))+S1*(A2*(B3*D4-D3*B4)-B2*(A3*D4-D3*A4)+D2*(A3*B4-B3*A4))-D1*(A2*(B3*S4-S3*B4)-B2*(A3*S4-S3*A4)+S2*(A3*B4-B3*A4));

printf("3-й побочный определитель равен %.3f\n",detA3);

detA4=A1*(B2*(C3*S4-S3*C4)-C2*(B3*S4-S3*B4)+S2*(B3*C4-C3*B4))-B1*(A2*(C3*S4-S3*C4)-C2*(A3*S4-S3*A4)+S2*(A3*C4-C3*A4))+C1*(A2*(B3*S4-S3*B4)-B2*(A3*S4-S3*A4)+S2*(A3*B4-B3*A4))-S1*(A2*(B3*C4-C3*B4)-B2*(A3*C4-C3*A4)+C2*(A3*B4-B3*A4));

printf("4-й побочный определитель равен %.3f\n",detA4);

x1=detA1/detA;

x2=detA2/detA;

x3=detA3/detA;

x4=detA4/detA;

printf("Значения x1=%.3f x2=%.3f x3=%.3f x4=%.3f\n",x1,x2,x3,x4);

}

}

if(n==5)

{

printf("Введите значения коэффициентов при x сначала из 1-ой строки, а потом из 2-ой, 3-ей, 4-ой и 5-ой, начиная слева направо\n");

scanf("%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f",&A1,&B1,&C1,&D1,&E1,&A2,&B2,&C2,&D2,&E2,&A3,&B3,&C3,&D3,&E3,&A4,&B4,&C4,&D4,&E4,&A5,&B5,&C5,&D5,&E5);

printf("Теперь введите значения уравнений\n");

scanf("%f %f %f %f %f",&S1,&S2,&S3,&S4,&S5);

detA=A1*(B2*(C3*(D4*E5-E4*D5)-D3*(C4*E5-E4*C5)+E3*(C4*D5-D4*C5))-C2*(B3*(D4*E5-E4*D5)-D3*(B4*E5-E4*B5)+E3*(B4*D5-D4*B5))+D2*(B3*(C4*E5-E4*C5)-C3*(B4*E5-E4*B5)+E3*(B4*C5-C4*B5))-E2*(B3*(C4*D5-D4*C5)-C3*(B4*D5-D4*B5)+D3*(B4*C5-C4*B5)))

-B1*(A2*(C3*(D4*E5-E4*D5)-D3*(C4*E5-E4*C5)+E3*(C4*D5-D4*C5))-C2*(A3*(D4*E5-E4*D5)-D3*(A4*E5-E4*A5)+E3*(A4*D5-D4*A5))+D2*(A3*(C4*E5-E4*C5)-C3*(A4*E5-E4*A5)+E3*(A4*C5-C4*A5))-E2*(A3*(C4*D5-D4*C5)-C3*(A4*D5-D4*A5)+D3*(A4*C5-C4*A5)))

+C1*(A2*(B3*(D4*E5-E4*D5)-D3*(B4*E5-E4*B5)+E3*(B4*D5-D4*B5))-B2*(A3*(D4*E5-E4*D5)-D3*(A4*E5-E4*A5)+E3*(A4*D5-D4*A5))+D2*(A3*(B4*E5-E4*B5)-B3*(A4*E5-E4*A5)+E3*(A4*B5-B4*A5))-E2*(A3*(B4*D5-D4*B5)-B3*(A4*D5-D4*A5)+D3*(A4*B5-B4*A5)))

-D1*(A2*(B3*(C4*E5-E4*C5)-C3*(B4*E5-E4*B5)+E3*(B4*C5-C4*B5))-B2*(A3*(C4*E5-E4*C5)-C3*(A4*E5-E4*A5)+E3*(A4*C5-C4*A5))+C2*(A3*(B4*E5-E4*B5)-B3*(A4*E5-E4*A5)+E3*(A4*B5-B4*A5))-E2*(A3*(B4*C5-C4*B5)-B3*(A4*C5-C4*A5)+C3*(A4*B5-B4*A5)))

+E1*(A2*(B3*(C4*D5-D4*C5)-C3*(B4*D5-D4*B5)+D3*(B4*C5-C4*B5))-B2*(A3*(C4*D5-D4*C5)-C3*(A4*D5-D4*A5)+D3*(A4*C5-C4*A5))+C2*(A3*(B4*D5-D4*B5)-B3*(A4*D5-D4*A5)+D3*(A4*B5-B4*A5))-D2*(A3*(B4*C5-C4*B5)-B3*(A4*C5-C4*A5)+C3*(A4*B5-B4*A5)));

if(detA==0)

{

printf("Главный определитель равен 0. Система имеет бесконечно много решений или не имеет решений.\n");

}

else

{

printf("Главный определитель равен %.3f\n",detA);

detA1=S1*(B2*(C3*(D4*E5-E4*D5)-D3*(C4*E5-E4*C5)+E3*(C4*D5-D4*C5))-C2*(B3*(D4*E5-E4*D5)-D3*(B4*E5-E4*B5)+E3*(B4*D5-D4*B5))+D2*(B3*(C4*E5-E4*C5)-C3*(B4*E5-E4*B5)+E3*(B4*C5-C4*B5))-E2*(B3*(C4*D5-D4*C5)-C3*(B4*D5-D4*B5)+D3*(B4*C5-C4*B5)))

-B1*(S2*(C3*(D4*E5-E4*D5)-D3*(C4*E5-E4*C5)+E3*(C4*D5-D4*C5))-C2*(S3*(D4*E5-E4*D5)-D3*(S4*E5-E4*S5)+E3*(S4*D5-D4*S5))+D2*(S3*(C4*E5-E4*C5)-C3*(S4*E5-E4*S5)+E3*(S4*C5-C4*S5))-E2*(S3*(C4*D5-D4*C5)-C3*(S4*D5-D4*S5)+D3*(S4*C5-C4*S5)))

+C1*(S2*(B3*(D4*E5-E4*D5)-D3*(B4*E5-E4*B5)+E3*(B4*D5-D4*B5))-B2*(S3*(D4*E5-E4*D5)-D3*(S4*E5-E4*S5)+E3*(S4*D5-D4*S5))+D2*(S3*(B4*E5-E4*B5)-B3*(S4*E5-E4*S5)+E3*(S4*B5-B4*S5))-E2*(S3*(B4*D5-D4*B5)-B3*(S4*D5-D4*S5)+D3*(S4*B5-B4*S5)))

-D1*(S2*(B3*(C4*E5-E4*C5)-C3*(B4*E5-E4*B5)+E3*(B4*C5-C4*B5))-B2*(S3*(C4*E5-E4*C5)-C3*(S4*E5-E4*S5)+E3*(S4*C5-C4*S5))+C2*(S3*(B4*E5-E4*B5)-B3*(S4*E5-E4*S5)+E3*(S4*B5-B4*S5))-E2*(S3*(B4*C5-C4*B5)-B3*(S4*C5-C4*S5)+C3*(S4*B5-B4*S5)))

+E1*(S2*(B3*(C4*D5-D4*C5)-C3*(B4*D5-D4*B5)+D3*(B4*C5-C4*B5))-B2*(S3*(C4*D5-D4*C5)-C3*(S4*D5-D4*S5)+D3*(S4*C5-C4*S5))+C2*(S3*(B4*D5-D4*B5)-B3*(S4*D5-D4*S5)+D3*(S4*B5-B4*S5))-D2*(S3*(B4*C5-C4*B5)-B3*(S4*C5-C4*S5)+C3*(S4*B5-B4*S5)));

printf("1-й побочный определитель равен %.3f\n",detA1);

detA2=A1*(S2*(C3*(D4*E5-E4*D5)-D3*(C4*E5-E4*C5)+E3*(C4*D5-D4*C5))-C2*(S3*(D4*E5-E4*D5)-D3*(S4*E5-E4*S5)+E3*(S4*D5-D4*S5))+D2*(S3*(C4*E5-E4*C5)-C3*(S4*E5-E4*S5)+E3*(S4*C5-C4*S5))-E2*(S3*(C4*D5-D4*C5)-C3*(S4*D5-D4*S5)+D3*(S4*C5-C4*S5)))

-S1*(A2*(C3*(D4*E5-E4*D5)-D3*(C4*E5-E4*C5)+E3*(C4*D5-D4*C5))-C2*(A3*(D4*E5-E4*D5)-D3*(A4*E5-E4*A5)+E3*(A4*D5-D4*A5))+D2*(A3*(C4*E5-E4*C5)-C3*(A4*E5-E4*A5)+E3*(A4*C5-C4*A5))-E2*(A3*(C4*D5-D4*C5)-C3*(A4*D5-D4*A5)+D3*(A4*C5-C4*A5)))

+C1*(A2*(S3*(D4*E5-E4*D5)-D3*(S4*E5-E4*S5)+E3*(S4*D5-D4*S5))-S2*(A3*(D4*E5-E4*D5)-D3*(A4*E5-E4*A5)+E3*(A4*D5-D4*A5))+D2*(A3*(S4*E5-E4*S5)-S3*(A4*E5-E4*A5)+E3*(A4*S5-S4*A5))-E2*(A3*(S4*D5-D4*S5)-S3*(A4*D5-D4*A5)+D3*(A4*S5-S4*A5)))

-D1*(A2*(S3*(C4*E5-E4*C5)-C3*(S4*E5-E4*S5)+E3*(S4*C5-C4*S5))-S2*(A3*(C4*E5-E4*C5)-C3*(A4*E5-E4*A5)+E3*(A4*C5-C4*A5))+C2*(A3*(S4*E5-E4*S5)-S3*(A4*E5-E4*A5)+E3*(A4*S5-S4*A5))-E2*(A3*(S4*C5-C4*S5)-S3*(A4*C5-C4*A5)+C3*(A4*S5-S4*A5)))

+E1*(A2*(S3*(C4*D5-D4*C5)-C3*(S4*D5-D4*S5)+D3*(S4*C5-C4*S5))-S2*(A3*(C4*D5-D4*C5)-C3*(A4*D5-D4*A5)+D3*(A4*C5-C4*A5))+C2*(A3*(S4*D5-D4*S5)-S3*(A4*D5-D4*A5)+D3*(A4*S5-S4*A5))-D2*(A3*(S4*C5-C4*S5)-S3*(A4*C5-C4*A5)+C3*(A4*S5-S4*A5)));

printf("2-й побочный определитель равен %.3f\n",detA2);

detA3=A1*(B2*(S3*(D4*E5-E4*D5)-D3*(S4*E5-E4*S5)+E3*(S4*D5-D4*S5))-S2*(B3*(D4*E5-E4*D5)-D3*(B4*E5-E4*B5)+E3*(B4*D5-D4*B5))+D2*(B3*(S4*E5-E4*S5)-S3*(B4*E5-E4*B5)+E3*(B4*S5-S4*B5))-E2*(B3*(S4*D5-D4*S5)-S3*(B4*D5-D4*B5)+D3*(B4*S5-S4*B5)))

-B1*(A2*(S3*(D4*E5-E4*D5)-D3*(S4*E5-E4*S5)+E3*(S4*D5-D4*S5))-S2*(A3*(D4*E5-E4*D5)-D3*(A4*E5-E4*A5)+E3*(A4*D5-D4*A5))+D2*(A3*(S4*E5-E4*S5)-S3*(A4*E5-E4*A5)+E3*(A4*S5-S4*A5))-E2*(A3*(S4*D5-D4*S5)-S3*(A4*D5-D4*A5)+D3*(A4*S5-S4*A5)))

+S1*(A2*(B3*(D4*E5-E4*D5)-D3*(B4*E5-E4*B5)+E3*(B4*D5-D4*B5))-B2*(A3*(D4*E5-E4*D5)-D3*(A4*E5-E4*A5)+E3*(A4*D5-D4*A5))+D2*(A3*(B4*E5-E4*B5)-B3*(A4*E5-E4*A5)+E3*(A4*B5-B4*A5))-E2*(A3*(B4*D5-D4*B5)-B3*(A4*D5-D4*A5)+D3*(A4*B5-B4*A5)))

-D1*(A2*(B3*(S4*E5-E4*S5)-S3*(B4*E5-E4*B5)+E3*(B4*S5-S4*B5))-B2*(A3*(S4*E5-E4*S5)-S3*(A4*E5-E4*A5)+E3*(A4*S5-S4*A5))+S2*(A3*(B4*E5-E4*B5)-B3*(A4*E5-E4*A5)+E3*(A4*B5-B4*A5))-E2*(A3*(B4*S5-S4*B5)-B3*(A4*S5-S4*A5)+S3*(A4*B5-B4*A5)))

+E1*(A2*(B3*(S4*D5-D4*S5)-S3*(B4*D5-D4*B5)+D3*(B4*S5-S4*B5))-B2*(A3*(S4*D5-D4*S5)-S3*(A4*D5-D4*A5)+D3*(A4*S5-S4*A5))+S2*(A3*(B4*D5-D4*B5)-B3*(A4*D5-D4*A5)+D3*(A4*B5-B4*A5))-D2*(A3*(B4*S5-S4*B5)-B3*(A4*S5-S4*A5)+S3*(A4*B5-B4*A5)));

printf("3-й побочный определитель равен %.3f\n",detA3);

detA4=A1*(B2*(C3*(S4*E5-E4*S5)-S3*(C4*E5-E4*C5)+E3*(C4*S5-S4*C5))-C2*(B3*(S4*E5-E4*S5)-S3*(B4*E5-E4*B5)+E3*(B4*S5-S4*B5))+S2*(B3*(C4*E5-E4*C5)-C3*(B4*E5-E4*B5)+E3*(B4*C5-C4*B5))-E2*(B3*(C4*S5-S4*C5)-C3*(B4*S5-S4*B5)+S3*(B4*C5-C4*B5)))

-B1*(A2*(C3*(S4*E5-E4*S5)-S3*(C4*E5-E4*C5)+E3*(C4*S5-S4*C5))-C2*(A3*(S4*E5-E4*S5)-S3*(A4*E5-E4*A5)+E3*(A4*S5-S4*A5))+S2*(A3*(C4*E5-E4*C5)-C3*(A4*E5-E4*A5)+E3*(A4*C5-C4*A5))-E2*(A3*(C4*S5-S4*C5)-C3*(A4*S5-S4*A5)+S3*(A4*C5-C4*A5)))

+C1*(A2*(B3*(S4*E5-E4*S5)-S3*(B4*E5-E4*B5)+E3*(B4*S5-S4*B5))-B2*(A3*(S4*E5-E4*S5)-S3*(A4*E5-E4*A5)+E3*(A4*S5-S4*A5))+S2*(A3*(B4*E5-E4*B5)-B3*(A4*E5-E4*A5)+E3*(A4*B5-B4*A5))-E2*(A3*(B4*S5-S4*B5)-B3*(A4*S5-S4*A5)+S3*(A4*B5-B4*A5)))

-S1*(A2*(B3*(C4*E5-E4*C5)-C3*(B4*E5-E4*B5)+E3*(B4*C5-C4*B5))-B2*(A3*(C4*E5-E4*C5)-C3*(A4*E5-E4*A5)+E3*(A4*C5-C4*A5))+C2*(A3*(B4*E5-E4*B5)-B3*(A4*E5-E4*A5)+E3*(A4*B5-B4*A5))-E2*(A3*(B4*C5-C4*B5)-B3*(A4*C5-C4*A5)+C3*(A4*B5-B4*A5)))

+E1*(A2*(B3*(C4*S5-S4*C5)-C3*(B4*S5-S4*B5)+S3*(B4*C5-C4*B5))-B2*(A3*(C4*S5-S4*C5)-C3*(A4*S5-S4*A5)+S3*(A4*C5-C4*A5))+C2*(A3*(B4*S5-S4*B5)-B3*(A4*S5-S4*A5)+S3*(A4*B5-B4*A5))-S2*(A3*(B4*C5-C4*B5)-B3*(A4*C5-C4*A5)+C3*(A4*B5-B4*A5)));

printf("4-й побочный определитель равен %.3f\n",detA4);

detA5=A1*(B2*(C3*(D4*S5-S4*D5)-D3*(C4*S5-S4*C5)+S3*(C4*D5-D4*C5))-C2*(B3*(D4*S5-S4*D5)-D3*(B4*S5-S4*B5)+S3*(B4*D5-D4*B5))+D2*(B3*(C4*S5-S4*C5)-C3*(B4*S5-S4*B5)+S3*(B4*C5-C4*B5))-S2*(B3*(C4*D5-D4*C5)-C3*(B4*D5-D4*B5)+D3*(B4*C5-C4*B5)))

-B1*(A2*(C3*(D4*S5-S4*D5)-D3*(C4*S5-S4*C5)+S3*(C4*D5-D4*C5))-C2*(A3*(D4*S5-S4*D5)-D3*(A4*S5-S4*A5)+S3*(A4*D5-D4*A5))+D2*(A3*(C4*S5-S4*C5)-C3*(A4*S5-S4*A5)+S3*(A4*C5-C4*A5))-S2*(A3*(C4*D5-D4*C5)-C3*(A4*D5-D4*A5)+D3*(A4*C5-C4*A5)))

+C1*(A2*(B3*(D4*S5-S4*D5)-D3*(B4*S5-S4*B5)+S3*(B4*D5-D4*B5))-B2*(A3*(D4*S5-S4*D5)-D3*(A4*S5-S4*A5)+S3*(A4*D5-D4*A5))+D2*(A3*(B4*S5-S4*B5)-B3*(A4*S5-S4*A5)+S3*(A4*B5-B4*A5))-S2*(A3*(B4*D5-D4*B5)-B3*(A4*D5-D4*A5)+D3*(A4*B5-B4*A5)))

-D1*(A2*(B3*(C4*S5-S4*C5)-C3*(B4*S5-S4*B5)+S3*(B4*C5-C4*B5))-B2*(A3*(C4*S5-S4*C5)-C3*(A4*S5-S4*A5)+S3*(A4*C5-C4*A5))+C2*(A3*(B4*S5-S4*B5)-B3*(A4*S5-S4*A5)+S3*(A4*B5-B4*A5))-S2*(A3*(B4*C5-C4*B5)-B3*(A4*C5-C4*A5)+C3*(A4*B5-B4*A5)))

+S1*(A2*(B3*(C4*D5-D4*C5)-C3*(B4*D5-D4*B5)+D3*(B4*C5-C4*B5))-B2*(A3*(C4*D5-D4*C5)-C3*(A4*D5-D4*A5)+D3*(A4*C5-C4*A5))+C2*(A3*(B4*D5-D4*B5)-B3*(A4*D5-D4*A5)+D3*(A4*B5-B4*A5))-D2*(A3*(B4*C5-C4*B5)-B3*(A4*C5-C4*A5)+C3*(A4*B5-B4*A5)));

printf("5-й побочный определитель равен %.3f\n",detA5);

x1=detA1/detA;

x2=detA2/detA;

x3=detA3/detA;

x4=detA4/detA;

x5=detA5/detA;

printf("Значения x1=%.3f x2=%.3f x3=%.3f x4=%.3f x5=%.3f\n",x1,x2,x3,x4,x5);

}

}

if(n>5)

{

printf("Это слишком много, я столько не напишу. Привет Умеду)\n");

}

system("pause");

}