Determinantes Por Cofctores
DE DOS POR DOS (2*2)
#include<stdio.h>
#include<conio.h>
main()
{
int a[10][10],n,m,f,i,j,g,k,s=0;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("\n elemento a[%d,%d]:",i+1,j+1);
scanf("%d",&a[i][j]);
if(i==0 && j==i){
n=a[i][j];
}else
if(i==0 && j==1){
m=a[i][j];
}else
if(i==1 && j==0) {
f=a[i][j];
}else{
g=a[i][j];
}
}
}
s=((n*g)-(m*f));
printf("\n\n\t |a|=%d",s);
return(0);
}
DE CUATRO POR CUATRO (4*4)
#include<stdio.h>
#include<conio.h>
#include<string.h>int a11(int bi[10][10]); /*funcion para calcular cofactor a11*/
int a12(int C[10][10]); /*funcion cofactor calcular a12*/
int a13(int d[10][10]); /*funcion cofactor calcular a13*/
int a14(int E[10][10]); /*funcion cofactor calcular a14*/
void det_2x2(int H[10][10]); /* funcion para calcular determinante de 2 orden*/
void det_3x3(int E[10][10]); /* funcion para calcular determinante de 3 orden*/
int bi[10][10],a[10][10],C[10][10],d[10][10],E[10][10],H[10][10];main(){
int s,q,r,c=0,z=0,i,t,A,f,op,j,a[10][10],C[10][10],n=0,d[10][10],w=0;
printf("\n\t\t\aPROGRAMA DE CALCULO DE DETERMINANTES ");
printf("\n\n\t\t\a POR: ROSEMBERG BENAVIDES MORELOS");
printf("\n\n\a ! ADVERTENCIA ! ");
printf("\n\n\a ESTE PROGRAMA ESTA DISEÑADO PARA CALCULAR DETERMINANTES ");
printf("\n\n\n\a DE MATRICES MENORES E IGUALES A 4 ORDEN POR FAVOR NO EXCEDA EL LIMITE");
printf("\n\n\n\n\n\a PRESIONE ENTER PRA EMPEZAR");
do{
getch();
clrscr();
/* printf("\n\n\t\t MENU DE OPCIONES:\n\n");
printf("\n\n\t\t==========================================\n");
printf("\n elija el orden de su matriz\n\n");
printf("\t\t 3. ORDEN \n");
printf("\t\t 4. ORDEN \n");
printf("\t\t 5. SALIR\n");*/printf("\n\n\t digite el orden de su matriz(solo 2,3 ó 4): ");
scanf("%d",&op);
switch(op){case 2:
clrscr();
det_2x2(H);
break;
case 3:
clrscr();
det_3x3(E);
break;
case 4:
clrscr();clrscr();
/* carga de la matriz de 4x4*/
for(i=0;i<4;i++){
for(j=0;j<4;j++){
printf("\n a[%d,%d]:",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(i==0 && j==0){
t=a[i][j];
}else
if(i==0 && j==1){
q=a[i][j];
}else
if(i==0 && j==2){
r=a[i][j];
}else
if(i==0 && j==3){
s=a[i][j];
}else
if(i==1 && j==0){
d[0][0]=a[1][0];
C[0][0]=a[1][0];
E[0][0]=a[1][0];
}else
if(i==1 && j==1){
d[0][1]=a[1][1];
bi[0][0]=a[1][1];
E[0][1]=a[1][1];
}else
if(i==1 && j==2){
bi[0][1]=a[1][2];
C[0][1]=a[1][2];
E[0][2]=a[1][2];
}else
if(i==1 && j==3){
bi[0][2]=a[1][3];
C[0][2]=a[1][3];
d[0][2]=a[1][3];
}else
if(i==2 && j==0){
C[1][0]=a[2][0];
d[1][0]=a[2][0];
E[1][0]=a[2][0];
}else
if(i==2 && j==1){
bi[1][0]=a[2][1];
d[1][1]=a[2][1];
E[1][1]=a[2][1];
}else
if(i==2 && j==2){
bi[1][1]=a[2][2];
C[1][1]=a[2][2];
E[1][2]=a[2][2];
}else
if(i==2 && j==3){
bi[1][2]=a[2][3];
C[1][2]=a[2][3];
d[1][2]=a[2][3];
} else
if(i==3 && j==0){
C[2][0]=a[3][0];
d[2][0]=a[3][0];
E[2][0]=a[3][0];
}else
if(i==3 && j==1){
bi[2][0]=a[3][1];
d[2][1]=a[3][1];
E[2][1]=a[3][1];
}elseif(i==3 && j==2){
bi[2][1]=a[3][2];
C[2][1]=a[3][2];
E[2][2]=a[3][2];
}else{
bi[2][2]=a[3][3];
C[2][2]=a[3][3];
d[2][2]=a[3][3];
}
}
}
}
clrscr();
/* muestra la matriz en pantalla*/
printf("\n\t\t\t\a PRESIONE ENTER PARA VER LA MATRIZ INGRESADA:");
printf("\n\t\t\tPOR FAVOR VERIFIQUELA");
getch();
printf("\n\n\n\t\t\a esta es la matriz a calcular:\n\n\t\t ");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
printf("%8d",a[i][j]);
}
printf("\n\t\t ");
}z=a11(bi);
c=(1)*(z);
printf("\n\t\t a11= (1)|b|\n\n");
printf("\n\t\t=================");
printf("\n\t\t A11= %d",c);
printf("\n\t\t==============");
z=a12(C);
n=(-1)*(z);
printf("\n\t\t A12= (-1)|b|\n\n");
printf("\n\t\t=============");
printf("\n\t\t A12= %d",n);
printf("\n\t\t=============");
z=a13(d);
f=(1)*(z);
printf("\n\t\t A13= (1)|b|\n\n");
printf("\n\t\t===============");
printf("\n\t\t A13= %d",f);
printf("\n\t\t================");
z=a14(E);
w=(-1)*(z);
printf("\n\t\t A14= (-1)|b|\n\n");
printf("\n\t\t==================");
printf("\n\t\t A14= %d",w);
printf("\n\t\t====================");
A=(((t)*(c))+((q)*(n))+((r)*(f))+((s)*(w)));
printf("\n\n\t\t PRESIONE ENTER PARA VER EL CALCULO DEL DETERMINANTE");
getch();
clrscr();
printf("\n\t\t CALCULANDO EL DETERMINANTE:");
printf("\n\t\tpor favor espere.................");
printf("\n\n DETERMINANTE CALCULADO PRESIONE ENTER");
getch();
printf("\n\t\t");
printf("\n el determinante de la matriz es:\n\n\t\t");
printf("\n========================================\n");
printf("|A|= %d",A);
printf("\n========================================\n");
printf("\n\n\n presione una tecla para continuar:");
getch();
break;
}}while(op!=5);
return(0);
}int a11(int bi[10][10])
{
int e=0,i,j,x=0,h=0,s=0,p=0,w=0,m=0,l=0,c=0,k=0,v=0,b=0,z=0;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(i==0 && j==0){
v=bi[i][j];
}else
if(i==0 && j==1){
e=bi[i][j];
}else
if(i==0 && j==2){
h=bi[i][j];
}else
if(i==1 && j==0){
x=bi[i][j];
}else
if(i==1 && j==1){
s=bi[i][j];
}else
if(i==1 && j==2){
p=bi[i][j];
}else
if(i==2 && j==0){
w=bi[i][j];
}else
if(i==2 && j==1){
m=bi[i][j];
}else{
l=bi[2][2];
}
}
}
printf("\n\t\n\t PRESIONE ENTER PARA VER EL CALCULO DE A11");
getch();
clrscr();
printf("\n\t\t A11 :");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%6d",bi[i][j]);
}
printf("\n\t\t ");
}
c=((s*l)-(m*p));
printf("\n\n\t b11= %d",c);
k=(-1)*((x*l)-(w*p));
printf("\n\n\t b12= %d",k);
b=((x*m)-(w*s));
printf("\n\n\t b13= %d",b);
printf("\n\n\t |a|= (%d)(%d)+(%d)(%d)+(%d)(%d)",v,c,e,k,h,b);
z=(((v)*(c))+((e)*(k))+((h)*(b)));return(z);
}
int a12(int C[10][10])
{
int e=0,i,j,x=0,h=0,s=0,p=0,w=0,m=0,l=0,c=0,k=0,v=0,b=0,z=0;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(i==0 && j==0){
v=C[i][j];
}else
if(i==0 && j==1){
e=C[i][j];
}else
if(i==0 && j==2){
h=C[i][j];
}else
if(i==1 && j==0){
x=C[i][j];
}else
if(i==1 && j==1){
s=C[i][j];
}else
if(i==1 && j==2){
p=C[i][j];
}else
if(i==2 && j==0){
w=C[i][j];
}else
if(i==2 && j==1){
m=C[i][j];
}else{
l=C[2][2];
}
}
}
printf("\n\t\n\t PRESIONE ENTER PARA VER EL CALCULO DE A12");
getch();
clrscr();
printf("\n\t\t A12(-1) :");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%6d",C[i][j]);
}
printf("\n\t\t ");
}
c=((s*l)-(m*p));
printf("\n\n\t b11= %d",c);
k=(-1)*((x*l)-(w*p));
printf("\n\n\t b12= %d",k);
b=((x*m)-(w*s));
printf("\n\n\t b13= %d",b);
printf("\n\n\t |a|= (%d)(%d)+(%d)(%d)+(%d)(%d)",v,c,e,k,h,b);
z=(((v)*(c))+((e)*(k))+((h)*(b)));return(z);
}
int a13(int d[10][10])
{int e=0,i,j,x=0,h=0,s=0,p=0,w=0,m=0,l=0,c=0,k=0,v=0,b=0,z=0;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(i==0 && j==0){
v=d[i][j];
}else
if(i==0 && j==1){
e=d[i][j];
}else
if(i==0 && j==2){
h=d[i][j];
}else
if(i==1 && j==0){
x=d[i][j];
}else
if(i==1 && j==1){
s=d[i][j];
}else
if(i==1 && j==2){
p=d[i][j];
}else
if(i==2 && j==0){
w=d[i][j];
}else
if(i==2 && j==1){
m=d[i][j];
}else{
l=d[2][2];
}
}
}
printf("\n\t\n\t PRESIONE ENTER PARA VER EL CALCULO DE A13");
getch();
clrscr();
printf("\n\t\t A13 :");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%6d",d[i][j]);
}
printf("\n\t\t ");
}
c=((s*l)-(m*p));
printf("\n\n\t b11= %d",c);
k=(-1)*((x*l)-(w*p));
printf("\n\n\t b12= %d",k);
b=((x*m)-(w*s));
printf("\n\n\t b13= %d",b);
printf("\n\n\t |a|= (%d)(%d)+(%d)(%d)+(%d)(%d)",v,c,e,k,h,b);
z=(((v)*(c))+((e)*(k))+((h)*(b)));return(z);
}int a14(int E[10][10])
{
int e=0,i,j,x=0,h=0,s=0,p=0,w=0,m=0,o=0,c=0,u=0,v=0,a=0,z=0;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
if(i==0 && j==0){
v=E[i][j];
}else
if(i==0 && j==1){
e=E[i][j];
}else
if(i==0 && j==2){
h=E[i][j];
}else
if(i==1 && j==0){
x=E[i][j];
}else
if(i==1 && j==1){
s=E[i][j];
}else
if(i==1 && j==2){
p=E[i][j];
}else
if(i==2 && j==0){
w=E[i][j];
}else
if(i==2 && j==1){
m=E[i][j];
}else{
o=E[i][j];
}
}
}
printf("\n\t\n\t PRESIONE ENTER PARA VER EL CALCULO DE A14");
getch();
clrscr();
printf("\n\t\t A14(-1) :");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%6d",E[i][j]);
}
printf("\n\t\t ");
}
c=((s*o)-(m*p));
printf("\n\n\t b11= %d",c);
u=(-1)*((x*o)-(w*p));
printf("\n\n\t b12= %d",u);
a=((x*m)-(w*s));
printf("\n\n\t b13= %d",a);
printf("\n\n\t |b|= (%d)(%d)+(%d)(%d)+(%d)(%d)",v,c,e,u,h,a);
z=(((v)*(c))+((e)*(u))+((h)*(a)));
printf("\n\n\n\t |b|= %d",z);
return(z);
}
void det_2x2(int H[10][10])
{
int n,m,f,i,j,g,k,s=0;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("\n elemento a[%d,%d]:",i+1,j+1);
scanf("%d",&H[i][j]);
if(i==0 && j==i){
n=H[i][j];
}else
if(i==0 && j==1){
m=H[i][j];
}else
if(i==1 && j==0) {
f=H[i][j];
}else{
g=H[i][j];
}
}
}
clrscr();
printf("\n\t\t esta es la matriz ingresada ....verifiquela\n\n\t\t");
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("%4d",H[i][j]);
}
printf("\n\t\t");
}
s=((n*g)-(m*f));
printf("\n\n\t |a|=%d",s);
printf("\n\n\n presione una tecla para continuar:");
getch();
return;
}void det_3x3(int E[10][10])
{
int e=0,i,j,x=0,h=0,s=0,p=0,w=0,m=0,l=0,c=0,k=0,v=0,b=0,z=0;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("\n elemento A[%d,%d]:",i+1,j+1);
scanf("%d",&E[i][j]);
if(i==0 && j==0){
v=E[i][j];
}else
if(i==0 && j==1){
e=E[i][j];
}else
if(i==0 && j==2){
h=E[i][j];
}else
if(i==1 && j==0){
x=E[i][j];
}else
if(i==1 && j==1){
s=E[i][j];
}else
if(i==1 && j==2){
p=E[i][j];
}else
if(i==2 && j==0){
w=E[i][j];
}else
if(i==2 && j==1){
m=E[i][j];
}else{
l=E[i][j];
}
}
}
clrscr();
printf("\n esta es la matriz:");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%6d",E[i][j]);
}
printf("\n\t\t ");
}
c=((s*l)-(m*p));
printf("\n\n\t A11= %d",c);
k=(-1)*((x*l)-(w*p));
printf("\n\n\t A12= %d",k);
b=((x*m)-(w*s));
printf("\n\n\t A13= %d",b);
printf("\n\n\t |a|= (%d)(%d)+(%d)(%d)+(%d)(%d)",v,c,e,k,h,b);
z=(((v)*(c))+((e)*(k))+((h)*(b)));
printf("\n\n\n\t |A|= %d",z);
printf("\n\n\n\n\t\t presione una tecla para continuar:");
getch();
return;
}
DE TRES POR TRES (3*3)
#include<stdio.h>
#include<conio.h>
main()
{
int a[3][3],e=0,i,j,x=0,h=0,s=0,p=0,w=0,m=0,l=0,c=0,k=0,v=0,b=0,z=0;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("\n elemento a[%d,%d]:",i+1,j+1);
scanf("%d",&a[i][j]);
if(i==0 && j==0){
v=a[i][j];
}else
if(i==0 && j==1){
e=a[i][j];
}else
if(i==0 && j==2){
h=a[i][j];
}else
if(i==1 && j==0){
x=a[i][j];
}else
if(i==1 && j==1){
s=a[i][j];
}else
if(i==1 && j==2){
p=a[i][j];
}else
if(i==2 && j==0){
w=a[i][j];
}else
if(i==2 && j==1){
m=a[i][j];
}else{
l=a[i][j];
}
}
}
clrscr();
printf("\n esta es la matriz:");
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%6d",a[i][j]);
}
printf("\n\t\t ");
}
c=((s*l)-(m*p));
printf("\n\n\t A11= %d",c);
k=(-1)*((x*l)-(w*p));
printf("\n\n\t A12= %d",k);
b=((x*m)-(w*s));
printf("\n\n\t A13= %d",b);
printf("\n\n\t |a|= (%d)(%d)+(%d)(%d)+(%d)(%d)",v,c,e,k,h,b);
z=(((v)*(c))+((e)*(k))+((h)*(b)));
printf("\n\n\n\t |A|= %d",z);
return(0);
}