Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include <stdio.h> #include <locale.h> #include <stdlib.h> void cal_m (void); int fatorial(int); int main() { setlocale(LC_ALL,"portuguese"); int linha,coluna,linha1,coluna1,linha2=0,coluna2=0,op,i=0,j=0,num,x=0,aux=0,mul=1,soma1=0,determinante=0,continua; int mat[80][80],mat2[80][80],mat_resul[80][80]; while(1) { cal_m(); printf("\n\n\nEscolha uma operação:\n"); scanf("%d",&op); switch(op) { case 1: printf("\n\nDigite a ordem da Matrizes 01/02\n"); printf("\nLinhas:\n"); scanf("%d",&linha); printf("\nColunas:\n"); scanf("%d",&coluna); printf("\nDigite os termos da Matriz 01:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { scanf("%d",&mat[i][j]); } } printf("\n\nDigite os termos da Matriz 02:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { scanf("%d",&mat2[i][j]); } } printf("\n\nMatriz 01:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { printf(" %6d",mat[i][j]); } printf("\n"); } printf("\n\nMatriz 02:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { printf(" %6d",mat2[i][j]); } printf("\n"); } for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { mat_resul[i][j]=mat[i][j]+mat2[i][j]; } } printf("\nMatriz Resultante:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { printf(" %6d",mat_resul[i][j]); } printf("\n"); } break; case 2: printf("\n\nDigite a ordem da Matrizes 01 e 02\n"); printf("\nLinhas:\n"); scanf("%d",&linha); printf("\nColunas:\n"); scanf("%d",&coluna); printf("\nDigite os termos da Matriz 01:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { scanf("%d",&mat[i][j]); } } printf("\n\nDigite os termos da Matriz 02:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { scanf("%d",&mat2[i][j]); } } printf("\n\nMatriz 01:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { printf(" %4d",mat[i][j]); } printf("\n"); } printf("\n\nMatriz 02:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { printf(" %4d",mat2[i][j]); } printf("\n"); } linha2=linha; coluna2=coluna; for(i=0;i<linha2;i++) { for(j=0;j<coluna2;j++) { mat_resul[i][j]=mat[i][j]-mat2[i][j]; } } printf("\nMatriz Resultante:\n"); for(i=0;i<linha2;i++) { for(j=0;j<coluna2;j++) { printf(" %4d",mat_resul[i][j]); } printf("\n"); } break; case 3: printf("\n\nDigite a ordem da Matrizes 01:\n"); printf("\nLinhas:\n"); scanf("%d",&linha); printf("\nColunas:\n"); scanf("%d",&coluna); printf("\n\nDigite uma constante:\n"); scanf("%d",&num); printf("\nDigite os termos da Matriz 01:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { scanf("%d",&mat[i][j]); } } printf("\n\nMatriz 01:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { printf(" %5d",mat[i][j]); } printf("\n"); } for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { mat_resul[i][j]=num*mat[i][j]; } } linha2=linha; coluna2=coluna; printf("\nMatriz Resultante:\n"); for(i=0;i<linha2;i++) { for(j=0;j<coluna2;j++) { printf(" %5d",mat_resul[i][j]); } printf("\n"); } break; case 4: aux=1; printf("\n\nDigite a ordem da Matrizes 01 e 02:\n"); printf("\nLinhas 01:\n"); scanf("%d",&linha); printf("\nColunas 01:\n"); scanf("%d",&coluna); printf("\nLinhas 02:\n"); scanf("%d",&linha1); printf("\nColunas 02:\n"); scanf("%d",&coluna1); if(coluna!=linha1) { printf("\n\nNão é possivel execulta a operação coluna01 diferente de linha02\n"); break; } printf("\n\n Implemente a Matriz 01:\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { scanf("%d",&mat[i][j]); } } printf("\n\n Implemente a Matriz 02:\n"); for(i=0;i<linha1;i++) { for(j=0;j<coluna1;j++) { scanf("%d",&mat2[i][j]); } } for(i=0;i<linha;i++) { for(j=0;j<coluna1;j++) { mat_resul[i][j]=0; for(x=0;x<coluna;x++) { aux=aux+(mat[j][x]*mat2[x][j]); } mat_resul[i][j]=aux; aux=0; } } printf("\n\nMatriz 01\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { printf(" %6d",mat[i][j]); } printf("\n"); } printf("\n\nMatriz 02\n"); for(i=0;i<linha1;i++) { for(j=0;j<coluna1;j++) { printf(" %6d",mat_resul[i][j]); } printf("\n"); } printf("\n\nMatriz resultante\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna1;j++) { printf(" %6d",mat_resul[i][j]); } printf("\n"); } break; case 5: printf("\n\nDigite a ordem da Matrizes 01\n"); printf("\nLinhas:\n"); scanf("%d",&linha); printf("\nColunas:\n"); scanf("%d",&coluna); printf("\nDigite os termos da Matriz"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { scanf(" %6d",&mat[i][j]); } } printf("\n\nMatriz 01\n"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { printf(" %6d",mat[i][j]); } printf("\n"); } linha2=linha; coluna2=coluna; for(i=0;i<linha2;i++) { for(j=0;j<coluna2;j++) { mat_resul[i][j]=fatorial(mat[i][j]); } } printf("\n\nMatriz Resultante\n"); for(i=0;i<linha2;i++) { for(j=0;j<coluna2;j++) { printf(" %6d",mat_resul[i][j]); } printf("\n"); } break; case 6: aux=0; printf("\n\nDigite a ordem da Matrizes 01\n"); printf("\nLinhas/Colunas:\n"); scanf("%d",&linha); aux=linha; printf("\nDigite os termos da Matriz:\n"); for(i=0;i<linha;i++) { for(j=0;j<linha;j++) { scanf("%d",&mat[i][j]); } } printf("\nMatriz 01\n"); for(i=0;i<linha;i++) { for(j=0;j<linha;j++) { printf(" %6d",mat[i][j]); } printf("\n"); } for(x=0;x<linha;x++) { for(i=0;i<linha;i++) { j=(i + x)%aux; mul*=mat[i][j]; } soma1+=mul; } determinante=soma1; soma1=0; mul=1; linha=linha-1; for(x=linha;x>=0;x++) { for(i=linha;i>=0;i++) { j=(x + i)%aux; mul*=mat[i][j]; } soma1-=mul; } determinante+=soma1; printf("\n\nA determinante é: %d\n\n",determinante); break; case 7: printf("\n\nDigite a ordem da Matrizes 01:\n"); printf("\nLinhas 01:\n"); scanf("%d",&linha); printf("\nColunas 01:\n"); scanf("%d",&coluna); printf("\nDigite os termos da Matriz"); for(i=0;i<linha;i++) { for(j=0;j<coluna;j++) { scanf("%d",&mat[i][j]); } } linha2=coluna; coluna2=linha; for(i=0;i<linha2;i++) { for(j=0;j<coluna2;j++) { mat_resul[i][j]=mat[j][i]; } } printf("\n\nMatriz Tranposta\n"); for(i=0;i<linha2;i++) { for(j=0;j<coluna2;j++) { printf("%d",mat_resul[i][j]); } printf("\n"); } default: printf("\n\n\n Operação invalida!!!\n\n\n"); break; } printf("\n\n\n\nDeseja continuar usando a Calculadora? (0)sim (1)não\n\n"); scanf("%d",&continua); if(continua==1) { break; }else { system("cls"); } } return 0; } void cal_m (void) { printf("-------------------------------------------------------------------"); printf("\n\n"); printf(" CALCULADORA DE MATTRIZES"); printf("\n\n"); printf("-------------------------------------------------------------------"); printf("\n"); printf("(1)soma\n"); printf("(2)Subtração\n"); printf("(3) multiplicação por uma constante\n(4) Multiplicação matricial\n(5) Fatorial de todos os elementos\n"); printf("(6)Calcular a determinante da matriz (7) Transpor a Matriz"); } int fatorial(int fat) { int resp=1,i1; for(i1=1;i1<=fat;i1++) { resp*=i1; } return(resp); }
Compartilhar