Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
#include <stdio.h> #include <math.h> ////////////////////////////////////////////////////////////Variaveis globais////////////////////////////////////////////////////////////////// int linha,coluna,selecao=0, selecao_op1=0, ordem,i,j,k=0,pares[10][10],par[100]; float m0[10][10],m1[10][10],m2[10][10],soma_matriz [10][10], bolha[100]; ////////////////////////////////////////////////////////////Protótipo de funções//////////////////////////////////////////////////// void preencher (float matriz [10][10], int *local); void imprimir (float matriz [10][10]); void cabecalho (); void diagonal_principal (float matriz [10][10]); void diagonal_secundaria (float matriz [10][10]); void acima_secundaria (float matriz [10][10]); void abaixo_secundaria (float matriz [10][10]); void det (float matriz [10][10]); void soma (float m0[10][10],float m1[10][10],float m2[10][10],float soma_matriz[10][10]); void multiplica (float m0[10][10],float m1[10][10],float soma_matriz[10][10]); void menor_elemento (float m0 [10][10]); void num_pares (int pares[10][10], int par[100]); void desvio (float m0[10][10]); void metodo_bolha(float bolha[100]); main () {// Inicio main int *local=0; printf("\n**************************TRABALHO GB - ALGORITMOS***************************** \n Prof: VIVIANE TODT ALUNOS: ARIEL CAMPOS E WILLIAN RODRIGUES \n "); while(1){ switch (selecao){ //Inicio switch - Tarefa 1: Mostrar uma matriz de ordem N no formato de uma tabela. case 0: cabecalho(); printf("\n \t Selecione a tarefa desejada: "); scanf("%d",&selecao); break; case 1: switch (selecao_op1) { case 0: printf(" \n Digite respectivamente a quantidade de linhas e colunas da matriz (max. 10):\n "); scanf("%d %d",&linha,&coluna); preencher(m0,&local); selecao_op1=7; break; case 7: system("cls"); printf(" \n opcao 0: Preencher novamente a matriz."); printf(" \n Opcao 1: Exibir matriz."); printf(" \n Opcao 2: Exibir a diagonal principal da matriz."); printf(" \n Opcao 3: Exibir a diagonal secundaria da matriz."); printf(" \n Opcao 4: Exibir os elementos posicionados acima da diagonal primaria."); printf(" \n Opcao 5: Exibir os elementos posicionados abaixo da diagonal secundaria."); printf(" \n opcao 6: Voltar ao MENU INICIAL \n\n"); printf(" \n \t Digite a opcao desejada: "); scanf("%d",&selecao_op1); system("cls"); break; case 1: system("cls"); imprimir(m0); system("pause"); selecao_op1=7; break; case 2: system("cls"); if (linha==coluna) diagonal_principal(m0); else printf(" \n Matriz deve ser quadrada para possuir diagonal principal. \n\n\n"); system("pause"); selecao_op1=7; break; case 3: system("cls"); if (linha==coluna) diagonal_secundaria(m0); else printf(" \n Matriz deve ser quadrada para possuir diagonal secundaria. \n\n\n"); system("pause"); selecao_op1=7; break; case 4: system("cls"); if (linha==coluna) acima_secundaria(m0); else printf(" \n Matriz deve ser quadrada para realizar operacao. \n\n\n"); system("pause"); selecao_op1=7; break; case 5: system("cls"); if (linha==coluna) abaixo_secundaria(m0); else printf(" \n Matriz deve ser quadrada para realizar operacao. \n\n\n"); system("pause"); selecao_op1=7; break; case 6: system("cls"); printf("\n\nAperte qualquer tecla para voltar a MENU INICIAL!!!\n\n"); selecao=0; break; default: system("cls"); selecao_op1=7; break; } break; case 2: system("cls"); printf(" \n Ordem da matriz 2 ou 3 ? "); scanf("%d",&ordem); if (ordem==2) {linha=2; coluna=linha;} else if (ordem==3) {linha=3; coluna=linha;} else if (ordem!=2&&ordem!=3) printf(" \n Funcao invalida \n\n"); if (ordem==2||ordem==3) { preencher(m0,&local); det (m0);} system("pause"); selecao=0; system("cls"); break; case 3: system("cls"); printf(" \n Digite respectivamente a qnt de linhas e colunas da matriz: \n"); scanf("%d %d",&linha,&coluna); printf(" \n Valores Matriz 0: \n"); local=0; preencher (m0,&local); printf(" \n Valores Matriz 1: \n"); local=1; preencher (m1,&local); printf(" \n Valores Matriz 2: \n"); local=2; preencher (m2,&local); soma(m0,m1,m2,soma_matriz); system("pause"); selecao=0; system("cls"); break; case 4: system("cls"); printf(" \n Digite respectivamente a qnt de linhas e colunas da matriz: \n"); scanf("%d %d",&linha,&coluna); printf(" \n Valores Matriz 0: \n"); local=0; preencher (m0,&local); printf(" \n Valores Matriz 1: \n"); local=1; preencher (m1,&local); multiplica(m0,m1,soma_matriz); system("pause"); selecao=0; system("cls"); break; case 5: system("cls"); printf(" \n Digite respectivamente a qnt de linhas e colunas da matriz: \n"); scanf("%d %d",&linha,&coluna); local=0; preencher (m0,&local); imprimir (m0); menor_elemento (m0); system("pause"); selecao=0; system("cls"); break; case 6: system("cls"); printf(" \n Digite respectivamente a quantidade de linhas e colunas da matriz (max. 10):\n "); scanf("%d %d",&linha,&coluna); preencher(m0,&local); desvio(m0); system("pause"); selecao=0; system("cls"); break; case 7: system("cls"); printf(" \n Digite respectivamente a qnt de linhas e colunas da matriz: \n"); scanf("%d %d",&linha,&coluna); printf(" Numeros pares da matriz:\n "); num_pares (pares,par); system("pause"); selecao=0; system("cls"); break; case 8: system("cls"); printf("\n\nDigite quanto elementos serao fornecido:\n"); scanf("%d",&linha); printf("Digite os valores:\n"); metodo_bolha(bolha); system("pause"); selecao=0; system("cls"); break; case 9: system("cls"); printf("\n\nsistema finalizado com sucesso!!!\n\n"); exit(0); break; default: system("cls"); selecao=0; break; } //Final switch }//Final while } //Final main /////////////////////////////////////////////////////////////////////Funções///////////////////////////////////////////////////////////// void preencher (float matriz [10][10], int *local) { int i,j; printf("\n \t Digite %d valores. \n",linha*coluna); for (i=0;i<linha;i++) { for (j=0;j<coluna;j++){ printf("\n \t Posicao [%d][%d]:",i+1,j+1); if (*local==0) scanf("%f",&m0[i][j]); else if (*local==1) scanf("%f",&m1[i][j]); else if (*local==2) scanf("%f",&m2[i][j]); }} } void imprimir (float matriz [10][10]) { int i,j; for (i=0;i<linha;i++) { printf(" \t| "); for (j=0;j<coluna;j++){ printf(" %.f ",matriz[i][j]); } printf(" | \n");} } void cabecalho (){ printf("\n Tarefa 1: Inserir uma matriz de ordem n. \n "); printf("\n Tarefa 2: Calcular e mostrar o determinante de uma matriz de ordem 2 ou 3. \n"); printf("\n Tarefa 3: Calcular e mostrar a soma de tres matrizes quaisquer. \n"); printf("\n Tarefa 4: Calcular e mostrar a multiplicacao de duas matrizes. \n"); printf("\n Tarefa 5: Calcular e mostrar o menor valor armazenado de uma matriz. \n"); printf("\n Tarefa 6: Desvio-padrao dos valores armazenados de uma matriz.. \n"); printf("\n Tarefa 7: Copiar para um vetor os numeros pares armazenados na matriz. \n"); printf("\n Tarefa 8: Classificar elementos de um vetor \"Metodo Bolha \" \n "); printf("\n Tarefa 9: Sair do programa"); printf(" \n________________________________________________________________________________ "); } void diagonal_principal (float matriz [10][10]){ int i,j; printf("\n\n\n\n \t Diagonal principal: \n"); for (i=0;i<linha;i++) { for (j=0;j<coluna;j++){ if (i==j){printf(" %1.f\n ",matriz[i][j]); } } } } void diagonal_secundaria (float matriz [10][10]){ int i,j; printf("\n\n \t Diagonal secundaria: \n"); for (i=0;i<linha;i++) { for (j=0;j<coluna;j++){ if ((i+j+1)==coluna) printf(" %1.f\n",matriz[i][j]); } } } void acima_secundaria (float matriz [10][10]){ int i,j; printf("\n\n \t Dados acima da diagonal secundaria: \n"); for (i=0;i<linha;i++) { for (j=0;j<coluna;j++){ if (linha-1>i+j) printf(" %1.f\n ",matriz[i][j]); } } } void abaixo_secundaria (float matriz [10][10]){ int i,j; printf("\n\n \t Dados abaixo da diagonal secundaria: \n"); for (i=0;i<linha;i++) { for (j=0;j<coluna;j++){ if (linha-1<i+j) printf(" %.1f\n ",matriz[i][j]); } } } void det (float matriz [10][10]) { int det,principal=0,secundaria=0,i,j; if (linha==2){ det=(matriz[0][0]*matriz[1][1])-(matriz[1][0]*matriz[0][1]); printf(" \n O determinante eh: %d \n\n", det); } else if (linha==3) { principal=(matriz[0][0]*matriz[1][1]*matriz[2][2])+(matriz[0][1]*matriz[1][2]*matriz[2][0])+(matriz[0][2]*matriz[1][0]*matriz[2][1]); secundaria=(matriz[2][0]*matriz[1][1]*matriz[0][2])+(matriz[2][1]*matriz[1][2]*matriz[0][0])+(matriz[2][2]*matriz[1][0]*matriz[0][1]); det=principal-secundaria; printf(" \n O determinante eh: %d \n\n", det); }} void soma(float m0[10][10],float m1[10][10],float m2[10][10],float soma_matriz[10][10]){ int i,j; for(i=0;i<linha;i++){ for(j=0;j<coluna;j++){ soma_matriz[i][j]=(m0[i][j]+m1[i][j]+m2[i][j]); } } printf("\n\n\n\n \t Soma das matrizes: \n"); imprimir(soma_matriz); } void multiplica (float m0[10][10],float m1[10][10],float soma_matriz[10][10]) { int i,j; for(i=0;i<linha;i++){ for(j=0;j<coluna;j++){ soma_matriz[i][j]=m0[i][j]*m1[i][j]; } } printf("\n\n\n\n \t Soma das matrizes: \n"); imprimir(soma_matriz); } void menor_elemento (float m0 [10][10]) { int i, j; short int menor=32766; for(i=0;i<linha;i++){ for(j=0;j<coluna;j++){ if(m0[i][j]<menor) menor=m0[i][j]; }} printf(" \n Menor elemento da matriz eh: %d \n\n", menor); } void num_pares (int pares[10][10], int par[100]) { k=0; printf("\n \t Digite %d valores. \n",linha*coluna); for (i=0;i<linha;i++) { for (j=0;j<coluna;j++){ printf("\n \t Posicao [%d][%d]:",i+1,j+1); scanf("%d",&pares [i][j]); }} for (i=0;i<linha;i++){ for (j=0;j<coluna;j++){ if (pares[i][j]%2==0){ par[k]=pares[i][j]; k++; } } } printf(" \n Matriz inserida: \n"); for (i=0;i<linha;i++) { for (j=0;j<coluna;j++){ printf(" |%d| ",pares[i][j]); } } printf(" \n\n Elementos pares da matriz: \n\n"); for (i=0;i<=k-1;i++){ printf(" %d ",par[i]); } printf("\n"); } void desvio (float m0[10][10]){ int i,j,somatorio=0; float m=0,dp=0,desvio1; for (i=0;i<linha;i++){ for(j=0;j<coluna;j++){ m=(m+m0[i][j]); } } m=m/(linha*coluna); printf("media: %f\n",m); for (i=0;i<linha;i++){ for(j=0;j<coluna;j++){ dp=(pow((m0[i][j]-m),2))+dp; desvio1=sqrt((dp/(linha*coluna))); }} printf("desvio padrao: %f",desvio1); } void metodo_bolha(float bolha[100]){ int i,j,aux; for(i=0;i<linha;i++){ scanf("%f",&bolha[i]);} for (i=0;i<linha;i++) { printf("vetor: %f\n", bolha[i]); } for(i=0;i<linha;i++){ for( j=i+1;j<linha;j++){ if(bolha[i]>bolha[j]){ aux=bolha[i]; bolha[i]=bolha[j]; bolha[j]=aux; } }} printf("\n vetor:\n"); for (i=0;i<linha;i++) { printf("vetor em ordem crescente: %f\n", bolha[i]); } }
Compartilhar