-1
あなたは私が上でこれらのファイルを分割することができます:分割ファイル
がheader.h(これはすでに私が作った)
dane.cpp(これはすでに私が作った)
solve.cpp(すべての解パターン、逆行列、x1、x2、およびf) main.cpp
私は最初の2つでしたが、他のものは管理できません。
ヘッダー:
void dane(float(*q)[2], float *p);
データ:
#include "Header.h"
void dane(float(*q)[2], float *p)
{
printf("Write 4 numbers to Matrix: A\n");
for (int i = 0; i < 2; i++)
{
for (int j = 0; j <2; j++)
{
scanf_s(" %f", &q[i][j]);
}
}
printf("\nWrite vector: B\n");
for (int i = 0; i < 2; i++)
scanf_s(" %f", &p[i]);
}
ソース:
#include "Header.h"
float A[2][2], B[2], X[2];
void main(void)
{
float AA[2][2];
float h, det, value;
data(A, B);
system("cls");
printf("Matrix A: \n");
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
printf("[%5.2f] ", A[i][j]);
printf("\n");
}
printf("\n\nVector: \n");
for (int i = 0; i < 2; i++)
printf("\n[%5.2f] ", B[i]);
_getch();
det = (A[0][0] * A[1][1]) - (A[0][1] * A[1][0]);
AA[0][0] = (1/det) * A[1][1];
AA[0][1] = (1/det) * (-1)*A[1][0];
AA[1][0] = (1/det) * (-1)*A[0][1];
AA[1][1] = (1/det) * A[0][0];
h = AA[1][0];
AA[1][0] = AA[0][1];
AA[0][1] = h;
if (det <= 0)
{
printf("\n\nDoesnt have extreme.");
_getch();
}
else
{
printf("\n\n\nInv matrix: \n");
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
printf("[%5.2f] ", AA[i][j]);
printf("\n");
}
_getch();
X[0] = 0.5 * AA[0][0] * (-1) * B[0] + 0.5 * AA[0][1] * (-1) * B[1];
X[1] = 0.5 * AA[1][0] * (-1) * B[0] + 0.5 * AA[1][1] * (-1) * B[1];
printf("\n x1 = %5.2f", X[0]);
printf("\n x2 = %5.2f", X[1]);
value = A[0][0] * X[0] * X[0] + A[1][0] * 2 * X[0] * X[1] +
A[1][1] * X[1] * X[1] + B[0] * X[0] + B[1] * X[1];
printf("\n\n f = %5.2f", value);
_getch();
}
}