Ir ao conteúdo

Posts recomendados

Postado

Elabore um programa na linguagem C para classificar o alimento
correspondente ao código digitado quanto à sua origem, e sua sensibilidade às alterações ou
ao seu teor de água livre (Aa).
Observações:
a) O A saída do programa deve, além da classificação, exibir o nome do alimento
classificado correspondente ao código.
b) Quando o código digitado não corresponder a nenhum dos códigos previstos no trecho
de programa abaixo, emitir uma mensagem.
c) O programa deve ser executado tantas vezes quanto o usuário desejar fazê-lo.

  • Curtir 1
Postado

@mrsmeenster      use vetores para armazenar os dados e use um laço de repetição que pode ser o do / while e dentro dele use o comando scanf para pegar os dados , o código , a origem , a sensibilidade e as alterações , e colocar no vetor   e use o comando if para fazer a classificação e para isso você precisa de uma tabela de referencia para saber qual a classificação do alimento ,  mas não posso te dar o código pronto pois é contra as regras do fórum , então faça seu código e poste aqui para podermos ver como está e em que podemos ajudar  .

Postado

No do - while tu define a saída do laço. Ex:

int x=0;

do{

}while(x!=1);
//enquanto o x nao for 1 ele fica repetindo

 

sobre o switch. Você coloca a variável a ser usada. Ex

int num;

printf("1:Arroz");
printf("2:Batata");
do{
switch(num){
	
	case 1:printf("informações sobre arroz");
      break;

	case 2:
			printf("informações sobre Batata");
		break;
	default:
     //Escolher qualquer opção que nao esteja no switch entra em default e termina o programa
}while(num !=0);
  //coloque uma opção de saída para o usuário

 

  • Curtir 1
Postado

@mrsmeenster    o scanf você coloca logo depois do menu de opções , e o switch é depois de pegar a opção ,  e o do / while é para repetir enquanto o usuário quiser ver as informações ,  então seu código está bom , então acrescentado alguns comandos seu código pode ser assim   :

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
int main(){
    int cod;
    char op;
    do{
        system("cls");
        printf(" 1 - açucar\n");
        printf(" 2 - arroz\n");
        printf(" 3 - batata\n");
        printf(" 4 - beterraba\n");
        printf(" 5 - carnes\n");
        printf(" 6 - farinha\n");
        printf(" 7 - feijão\n");
        printf(" 8 - frutas\n");
        printf(" 9 - hortaliças\n");
        printf("10 - leite\n");
        printf("11 - pescados\n");
        printf("\n");
        printf("digite o codigo do alimento ");
        fflush(stdin);
        scanf("%d",&cod);
        printf("\n");
        switch(cod){
        case 1:
            printf("====  Açucar ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> nao periveis\n");
            break;
        case 2:
            printf("==== Arroz ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> nao pereciveis\n");
           break;
        case 3: 
            printf("==== Batata ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> nao pereciveis\n");
            break;
        case 4:
            printf("==== Beterraba ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> semi-pereciveis\n");
            break;
        case 5:
            printf("==== Carnes ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> pereciveis\n");
            break;
        case 6:
            printf("==== Farinha ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> nao pereciveis\n");
            break;
        case 7:
            printf("==== Feijao ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> nao pereciveis\n");
            break;
        case 8:
            printf("==== Frutas ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> semi-pereciveis\n");
            break;
        case 9:
            printf("==== Hortaliças ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> semi-pereciveis\n");
            break;
        case 10:
            printf("==== Leite ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> pereciveis\n");
            break;
        case 11:
            printf("==== Pescados ====\n\n");
            printf("Origem ----------> Vegetal\n");
            printf("Classificacao ---> pereciveis\n");
            break;
        default:
            printf("Opcao Invalida !\n");
        }
        printf("\nVer Outro Alimento S/N ");
        fflush(stdin);
        scanf("%c",&op);
    }while(toupper(op) != 'N');
    return 0;    
}

 

  • Curtir 1
  • 4 semanas depois...
Postado

Você poderia me ajudar com este código? Está dando erro mas não consigo encontrá-lo. O codigo está anexado em pdf. Mas o enunciado da questão é esse: 

Elabore um programa para ler dois vetores Xn e Yn (n ≤ 20) de elementos inteiros e, de acordo com a opção do usuário (use um menu de opções e o comando switch), calcule:

1 – A união de X com Y

2 – A diferença entre X e Y

3 – O produto escalar de X e Y

4 – A interseção de X e Y

 

CODIGO pd.pdf

adicionado 3 minutos depois

@devair1010

adicionado 4 minutos depois
4 minutos atrás, mrsmeenster disse:

Você poderia me ajudar com este código? Está dando erro mas não consigo encontrá-lo. O codigo está anexado em pdf. Mas o enunciado da questão é esse: 

Elabore um programa para ler dois vetores Xn e Yn (n ≤ 20) de elementos inteiros e, de acordo com a opção do usuário (use um menu de opções e o comando switch), calcule:

1 – A união de X com Y

2 – A diferença entre X e Y

3 – O produto escalar de X e Y

4 – A interseção de X e Y

 

CODIGO pd.pdf

adicionado 3 minutos depois

@devair1010

@devair1010

  • Curtir 1
Postado
3 minutos atrás, devair1010 disse:

@mrsmeenster     esse link passado não está funcionado , melhor você postar o código aqui no fórum mesmo, use o botão  <>  que está lá na barra de ferramentas da janela de postar .

@devair1010 @devair1010 @devair1010

#include <stdio.h> 
#define N 5 
int main() { 
int x[N], y[N], soma[N], prod[N], uniao[2*N], inter[N], dif_xy[N]; 
char ja_consta; 
int i, j, n_inter=0, n_dif_xy=0, n_uniao=0, aux; 
for (i=0; i<N; i++) { 
printf("Informe X[%d]: ", i); 
scanf(" %d", &x[i]); 
do { 
ja_consta = 'N'; 
for (j=0; j<i; j++) 
if (x[i] == x[j]) 
ja_consta = 'S'; 
if (ja_consta == 'S') { 
printf("%d já existe no conjunto. Reinforme X[%d]: ", x[i], i); 
scanf(" %d", &x[i]); 
} 
} while (ja_consta == 'S'); 
} 
for (i=0; i<N; i++) { 
printf("Informe Y[%d]: ", i); 
scanf(" %d", &y[i]); 
do { 
ja_consta = 'N'; 
for (j=0; j<i; j++) 
if (y[i] == y[j]) 
ja_consta = 'S'; 
if (ja_consta == 'S') { 
printf("%d já existe no conjunto. Reinforme Y[%d]: ", y[i], i); 
scanf(" %d", &y[i]); 
} 
} while (ja_consta == 'S'); 
} 

printf("\nX:\n"); 
for (i=0; i<N; i++) 
printf("\t%d", x[i]); 
printf("\nY:\n"); 
for (i=0; i<N; i++) 
printf("\t%d", y[i]); 

/* Soma */ 
for (i=0; i<N; i++) 
soma[i] = x[i] + y[i]; 
printf("\nSoma:\n"); 
for (i=0; i<N; i++) 
printf("\t%d", soma[i]); 

/* Produto */ 
for (i=0; i<N; i++) 
prod[i] = x[i] * y[i]; 
printf("\nProduto:\n"); 
for (i=0; i<N; i++) 
printf("\t%d", prod[i]); 

/* União */ 
for (i=0; i<N; i++) 
uniao[n_uniao++] = x[i]; 
for (i=0; i<N; i++) { 
for (j=0; j<i, y[i] != uniao[j]; j++) 
; 
if (j >= i) 
uniao[n_uniao++] = y[i]; 
} 
printf("\nUnião:\n"); 
for (i=0; i<n_uniao; i++) 
printf("\t%d", uniao[i]); 

/* Diferença X - Y*/ 
for (i=0; i<N; i++) { 
ja_consta = 'N'; 
for (j=0; j<N; j++) 
if (x[i] == y[j]) 
ja_consta = 'S'; 
if (ja_consta == 'N') 
dif[n_dif_xy++] = x[i]; 
} 
printf("\nDiferença X - Y:\n"); 
for (i=0; i<n_dif_xy; i++) 
printf("\t%d", dif_xy[i]); 

/* Intersecção */ 
for (i=0; i<N; i++) 
for (j=0; j<N; j++) 
if (x[i] == y[j]) { 
ja_consta = 'N'; 
for (k=0; k<n_inter; k++) 
if (x[i] == inter[k]) 
ja_consta = 'S'; 
if (ja_consta == 'N') 
inter[n_inter++] = x[i]; 
} 
printf("\nIntersecção:\n"); 
for (i=0; i<n_inter; i++) 
printf("\t%d", inter[i]); 

printf("\n"); 
return 0; 
}




 

  • Obrigado 1
Postado

@mrsmeenster     seu código está bom , mas na hora de comparar ele compara com o mesmo número ,  e também se digitar algum caractere que não é número ele dá erro ,  então apenas ajeitei essa parte ,  e não sei o que é a interseção , mas seu código poderia ser assim  :

#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <windows.h>
/*#include <locale.h>*/
#define N 5
/*             0     1    2     3   4      5      6      7         8  */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,   /* nome das cores */
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9         10         11        12        13         14    15 */

static int __BACKGROUND = 1/*BLACK*/;/*pode ser o numero ou o nome da cor*/
static int __FOREGROUND = LIGHTGRAY;

void textcolor (int letras, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = letras;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    letras + (__BACKGROUND << 4));
}
int main(){
    /*printf("%s\n", setlocale(LC_ALL,"")); getch();*/
    int x[N], y[N], soma[N], prod[N];
    int inter[N], dif_xy[N*2],uniao[2*N];
    char ja_consta,str[30];
    int i,k,j,n_inter=0, n_dif_xy=0,flag;
    /*setlocale(LC_ALL,"portuguese-brazilian");*/
    for(i=0; i<N; i++)
        do{
            textcolor(11,0);
            printf("Informe X[%d]: ",i);
            textcolor(14,0);
            scanf("%s",str);           /* para não aceitar letras */
            flag=0;
            ja_consta = 'N';
            for(k=0;k<strlen(str);k++){
                if( ! isdigit(str[k])){/* testa se é número */
                    flag=1;
                    ja_consta='S';
                    break;
                }
            }
            if( flag )printf("Digitou Caracteres Que n%co S%co N%cmeros !\n",132,132,163);
            else{
                x[i]= atoi(str);
                for(j=0; j<i; j++)
                    if(x[i] == x[j] && j != i )
                        ja_consta = 'S';
                if(ja_consta == 'S' )
                    printf("%d j%c existe no conjunto.\n",atoi(str),160);
            }

        }while(ja_consta == 'S');

    for(i=0; i<N; i++)
        do{
            textcolor(11,0);
            printf("Informe y[%d]: ",i);
            textcolor(14,0);
            scanf("%s",str);           /* para não aceitar letras */
            flag=0;
            ja_consta = 'N';
            for(k=0;k<strlen(str);k++){
                if( ! isdigit(str[k])){/* testa se é número */
                    flag=1;
                    ja_consta='S';
                    break;
                }
            }
            if( flag )printf("Digitou Caracteres Que n%co S%co N%cmeros !\n",132,132,163);
            else{
                y[i]= atoi(str);
                for(j=0; j<i; j++)
                    if(y[i] == y[j] && j != i )
                        ja_consta = 'S';
                if(ja_consta == 'S' )
                    printf("%d j%c existe no conjunto.\n",atoi(str),160);
            }
        }while(ja_consta == 'S');
    textcolor(11,0);
    printf("\n\nX ---------------> ");
    textcolor(14,0);
    for(i=0; i<N; i++)
        printf("%3d",x[i]);
    textcolor(11,0);
    printf("\n\nY ---------------> ");
    textcolor(14,0);
    for (i=0; i<N; i++)
        printf("%3d", y[i]);

    /* Soma */
    for(i=0; i<N; i++)
        soma[i] = x[i] + y[i];
    textcolor(11,0);
    printf("\n\nSoma ------------> ");
    textcolor(14,0);
    for(i=0; i<N; i++)
        printf("%3d",soma[i]);

    /* Produto */
    for(i=0; i<N; i++)
        prod[i] = x[i] * y[i];
    textcolor(11,0);
    printf("\n\nProduto ---------> ");
    textcolor(14,0);
    for(i=0; i<N; i++)
        printf("%3d",prod[i]);

    /* União */
    for(i=0; i<N; i++){
        uniao[i] = x[i];
        uniao[i+N] = y[i];
    }
    textcolor(11,0);
    printf("\n\nUni%co -----------> ",132);
    textcolor(14,0);
    for(i=0; i<N*2; i++)
        printf("%3d",uniao[i]);

    /* Diferença X - Y*/
    for(i=0; i<N; i++){
        ja_consta = 'N';
        for(j=0; j<N; j++)
            if(x[i] == y[j])
                ja_consta = 'S';
        if(ja_consta == 'N'){
            dif_xy[n_dif_xy  ] = x[i];
            dif_xy[n_dif_xy+N] = y[i];
            n_dif_xy++;
        }
    }
    textcolor(11,0);
    printf("\n\nDiferença X - Y -> ");
    textcolor(14,0);
    for (i=0; i<N*2; i++)
        printf("%3d",dif_xy[i]);

    /* Intersecção *//* eesa parte aqui não precisava pois não haverá números repetidos */
    for(i=0; i<N; i++)
        for(j=0; j<N; j++)
            if(x[i] == y[j]){
                ja_consta = 'N';
                for(k=0; k<n_inter; k++)
                    if(x[i] == inter[k])
                        ja_consta = 'S';
                if(ja_consta == 'N')
                    inter[n_inter++] = x[i];
            }
    textcolor(11,0);
    printf("\n\nIntersec%c%co -----> ",135,132);
    textcolor(14,0);
    flag=0;
    for(i=0; i<n_inter; i++)
        if(inter[i]!= 0){
            printf("%3d",inter[i]);
            flag=1;
        }
    if( ! flag )printf("Nao Teve Interse%c%co !",135,132);
    printf("\n\n");
    textcolor(7,0);
    getch();
    return 0;
}

 

  • Curtir 1
  • 4 semanas depois...
Postado
Em 03/11/2018 às 21:02, mrsmeenster disse:

Preciso de ajuda com um ultimo programa em C sobre matrizes que fiz porém não sei como termina-lo (onde tá as partes sem o código) O programa em C deve possuir a


// Programa
#include <stdio.h>
#include <stdlib.h>
#include<locale.h>
int main ()
{
 setlocale(LC_ALL, "Portuguese");
 /* Declaração de variáveis*/
 int opcao;
 
system(“cls”);
printf(“**************************** ******************\n”);
printf(“********* M E N U D E O P C O E S ***********\n”);
printf(“**************************** ******************\n”);
do
 {
printf(“Escolha uma das opções de 1 a 4 ”);
printf(“Digite [1] para calcular a transposta de uma matriz A”);
printf(“Digite [2] para verificar se A uma matriz é simétrica ”);
printf(“Digite [3] para calcular o produto de duas matrizes A e B ”);
printf(“Digite [4] para terminar ”);
scanf(“%d”, &opcao);
if ((opcao <= 1) || (opcao >4)
 printf(“voce digitou uma opcao e invalida, escolha novamente por favor”);
 } while ((OPCAO <= 1) || (OPCAO >4)) // Teste de consistência
 if(opcao ! = 4)
 {
 switch (opcao)
 {
 case 1:
 //escrever o código necessário para realizar esta operação
 ...
   2:
 //escrever o código necessário para realizar esta operação
 ...
 break;
 case 3:
 //escrever o código necessário para realizar esta operação
 ...
 break;
 ...

 }
 }

...
}

Interface com o usuário (o formato das solicitações de entrada de dados e a impressão dos resultados)

@devair1010

adicionado 32 minutos depois

@devair1010

  • Obrigado 1
Postado

@mrsmeenster      seu código está bom , mas precisa de uma melhor identação , e a matriz transposta seria pegar os elementos das linha da matriz e colocar nas colunas da matriz transposta , então essa parte do código poderia ser assim  :

#include <stdio.h>
#include <stdlib.h>
#include<locale.h>
void transposta();
void simetrica();
void produto();
int main(){
    setlocale(LC_ALL,"");
    int opcao;
    system("cls");
    do{
        printf("**************************** ******************  \n");
        printf("********* M E N U D E O P C O E S *************  \n");
        printf("**************************** ******************\n\n");
        printf("Digite [1] para calcular a transposta de uma matriz A\n");
        printf("Digite [2] para verificar se A uma matriz é simétrica\n");
        printf("Digite [3] para calcular o produto de duas matrizes A e B\n");
        printf("Digite [4] para terminar");
        printf("Escolha uma das opções de 1 a 4 ");
        scanf("%d",&opcao);
        switch(opcao){
        case 1 :
            //escrever o código necessário para realizar esta operação
            transposta();
            break;
        case 2 :
        //escrever o código necessário para realizar esta operação
            simetrica();
            break;
        case 3 :
            //escrever o código necessário para realizar esta operação
            produto();
            break;
        case 4 :
            printf("\nSaindo do programa !\n\n");
            break;
        default :
            printf("OPcao invalida !\n");
        }
    }while(opcao != 4 ); // Teste de consistência
}
void transposta(){
    int j,w,L,c,op,matriz[100][100];
    int matriz_transp[100][100];
    printf("quantidade de linhas da matriz ");
    scanf("%d",&L);
    printf("quantidade de colunas da matriz ");
    scanf("%d",&c);
    printf("Informe os numeros da matriz\n");
    for(j=0; j<L; j++){
        for(w=0; w<c; w++){
            printf("numero da linha %d e coluna %d ",j,w);
            scanf("%d",&matriz[j][w]);
        }
    }
    printf("\nA matriz informada\n");
    for(j=0;j<L;j++){
        for(w=0;w<c;w++)
            printf("% 3d",matriz[j][w]);
        printf("\n");
    }
    for(w=0;w<c;w++){
        for(j=0;j<L;j++){
            matriz_transp[w][j] = matriz[j][w];/* preenchendo a matriz transposta */
        }
    }
    printf("\nA matriz transposta\n");
    for(w=0;w<c;w++){
        for(j=0;j<L;j++)
            printf("%3d",matriz_transp[w][j]);
        printf("\n");
    }
    printf("\n");
}
void simetrica(){

}
void produto(){

}

faça as outras duas opções e poste aqui para vermos como está e em que podemos ajudar   .

Postado

Fiz as duas outras opções mas está dando erro e não consigo arruma-lo! Poderia me ajudar? O codigo segue abaixo. 

#include <stdio.h>
#include <stdlib.h>
#include<locale.h>
void transposta();
void simetrica();
void produto();
int main(){
    setlocale(LC_ALL,"");
    int opcao;
    system("cls");
    do{
        printf("**************************** ******************  \n");
        printf("********* M E N U D E O P C O E S *************  \n");
        printf("**************************** ******************\n\n");
        printf("Digite [1] para calcular a transposta de uma matriz A\n");
        printf("Digite [2] para verificar se A uma matriz é simétrica\n");
        printf("Digite [3] para calcular o produto de duas matrizes A e B\n");
        printf("Digite [4] para terminar");
        printf("Escolha uma das opções de 1 a 4 ");
        scanf("%d",&opcao);
        switch(opcao){
        case 1 :
            //escrever o código necessário para realizar esta operação
            transposta();
            break;
        case 2 :
        //escrever o código necessário para realizar esta operação
            simetrica();
            break;
        case 3 :
            //escrever o código necessário para realizar esta operação
            produto();
            break;
        case 4 :
            printf("\nSaindo do programa !\n\n");
            break;
        default :
            printf("OPcao invalida !\n");
        }
    }while(opcao != 4 ); // Teste de consistência
}
void transposta(){
    int j,w,L,c,op,matriz[100][100];
    int matriz_transp[100][100];
    printf("quantidade de linhas da matriz ");
    scanf("%d",&L);
    printf("quantidade de colunas da matriz ");
    scanf("%d",&c);
    printf("Informe os numeros da matriz\n");
    for(j=0; j<L; j++){
        for(w=0; w<c; w++){
            printf("numero da linha %d e coluna %d ",j,w);
            scanf("%d",&matriz[j][w]);
        }
    }
    printf("\nA matriz informada\n");
    for(j=0;j<L;j++){
        for(w=0;w<c;w++)
            printf("% 3d",matriz[j][w]);
        printf("\n");
    }
    for(w=0;w<c;w++){
        for(j=0;j<L;j++){
            matriz_transp[w][j] = matriz[j][w];/* preenchendo a matriz transposta */
        }
    }
    printf("\nA matriz transposta\n");
    for(w=0;w<c;w++){
        for(j=0;j<L;j++)
            printf("%3d",matriz_transp[w][j]);
        printf("\n");
    }
    printf("\n");
}
void simetrica()
    {
    srand (time(NULL));
    int ordem=0;
    printf ("\nDigite a ordem da matriz simetrica:");
    while (ordem<=0)
    {
         fflush(stdin);
         scanf ("%i", &ordem);
         if (ordem<=0)
         {
                     printf ("/n\t ERRO!! ORDEM DEVE SER MAIOR QUE ZERO!!");
                     printf ("\nDigite a ordem da matriz simetrica:");
         }
    }
    int mat[ordem][ordem],i,j;
    for (i=0; i<ordem;i++)
    {
        for (j=i;j<ordem;j++)
        {
               if (i!=j)
               {
                  mat[i][j] = rand()%101;
                  mat[j][i] = mat[i][j];
               }
               else
                  mat[i][j] = rand()%101;
        }
    }
    printf ("\n\n MATRIZ SIMETRICA GERADA:\n\n");
    for (i=0;i<ordem;i++)
    {
        for (j=0;j<ordem;j++)
          printf ("\t%i", mat[i][j]);
        printf ("\n\n");
    }
    getch();
    return 0;


}
void produto(){
{

int j,w,L,c,op, matrizA[5][5],matrizB[5][5],matrizC[5][5],X,Aux=0;

printf("\n Informe a quantidade de linhas da matriz A : ");

scanf("%d",&j);

printf("\n Informe a quantidade de colunas da matriz A : ");

scanf("%d",&w);

printf("\n Informe a quntidade de linhas da matriz B : ");

scanf("%d",&L);

printf("\n Informe a quantidade de colunas da matriz B : ");

scanf("%d",&c);

if(l==c)

{

for(i=0; j<w; i++)

{

for(j=0; j<c; j++)

{

printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da Matriz A: ", i+1, 167, j+1, 167);

scanf("%d", &matrizA[i][j]);

}

printf("\n");

}

for(i=0; i<p; i++)

{

for(j=0; j<q; j++)

{

printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ", i+1, 167, j+1, 167, 167);

scanf("%d", &matrizB[i][j]);

}

printf("\n");

}

for(i=0; i<m; i++)

{

for(j=0; j<q; j++)

{

matrizC[i][j]=0;

for(X=0; X<p; X++)

{

Aux += matrizA[i][X] * matrizB[X][j];

}

matrizC[i][j]=Aux;

Aux=0;

}

}

printf("\n\n");

printf("***** Matriz \"A\" Gerada *****\n\n");

for(i=0; i<m; i++)

{

for(j=0; j<n; j++)

{

printf("%d\t", matrizA[i][j]);

}

printf("\n\n");

}

printf("***** Matriz \"B\" Gerada *****\n\n");

for(i=0; i<p; i++)

{

for(j=0; j<q; j++)

{

printf("%d\t", matrizB[i][j]);

}

printf("\n\n");

}

printf(" Matriz Multiplicada\n\n");

for(i=0; i<m; i++)

{

for(j=0; j<q; j++)

{

printf("%d\t", matrizC[i][j]);

}

printf("\n\n");

}

printf("\n\n");

}

else

{

printf("\n\n Nao ha com multiplicar as matrizes dadas ");

}

system("pause");
}

 

adicionado 3 minutos depois

 

2 horas atrás, devair1010 disse:

@mrsmeenster      seu código está bom , mas precisa de uma melhor identação , e a matriz transposta seria pegar os elementos das linha da matriz e colocar nas colunas da matriz transposta , então essa parte do código poderia ser assim  :


#include <stdio.h>
#include <stdlib.h>
#include<locale.h>
void transposta();
void simetrica();
void produto();
int main(){
    setlocale(LC_ALL,"");
    int opcao;
    system("cls");
    do{
        printf("**************************** ******************  \n");
        printf("********* M E N U D E O P C O E S *************  \n");
        printf("**************************** ******************\n\n");
        printf("Digite [1] para calcular a transposta de uma matriz A\n");
        printf("Digite [2] para verificar se A uma matriz é simétrica\n");
        printf("Digite [3] para calcular o produto de duas matrizes A e B\n");
        printf("Digite [4] para terminar");
        printf("Escolha uma das opções de 1 a 4 ");
        scanf("%d",&opcao);
        switch(opcao){
        case 1 :
            //escrever o código necessário para realizar esta operação
            transposta();
            break;
        case 2 :
        //escrever o código necessário para realizar esta operação
            simetrica();
            break;
        case 3 :
            //escrever o código necessário para realizar esta operação
            produto();
            break;
        case 4 :
            printf("\nSaindo do programa !\n\n");
            break;
        default :
            printf("OPcao invalida !\n");
        }
    }while(opcao != 4 ); // Teste de consistência
}
void transposta(){
    int j,w,L,c,op,matriz[100][100];
    int matriz_transp[100][100];
    printf("quantidade de linhas da matriz ");
    scanf("%d",&L);
    printf("quantidade de colunas da matriz ");
    scanf("%d",&c);
    printf("Informe os numeros da matriz\n");
    for(j=0; j<L; j++){
        for(w=0; w<c; w++){
            printf("numero da linha %d e coluna %d ",j,w);
            scanf("%d",&matriz[j][w]);
        }
    }
    printf("\nA matriz informada\n");
    for(j=0;j<L;j++){
        for(w=0;w<c;w++)
            printf("% 3d",matriz[j][w]);
        printf("\n");
    }
    for(w=0;w<c;w++){
        for(j=0;j<L;j++){
            matriz_transp[w][j] = matriz[j][w];/* preenchendo a matriz transposta */
        }
    }
    printf("\nA matriz transposta\n");
    for(w=0;w<c;w++){
        for(j=0;j<L;j++)
            printf("%3d",matriz_transp[w][j]);
        printf("\n");
    }
    printf("\n");
}
void simetrica(){

}
void produto(){

}

faça as outras duas opções e poste aqui para vermos como está e em que podemos ajudar   .

@devair1010

 eu fiz o resto do código, porém está dando erro e não consigo arruma-lo. poderia me ajudar com isto? segue abaixo o codigo.

#include <stdio.h>
#include <stdlib.h>
#include<locale.h>
void transposta();
void simetrica();
void produto();
int main(){
    setlocale(LC_ALL,"");
    int opcao;
    system("cls");
    do{
        printf("**************************** ******************  \n");
        printf("********* M E N U D E O P C O E S *************  \n");
        printf("**************************** ******************\n\n");
        printf("Digite [1] para calcular a transposta de uma matriz A\n");
        printf("Digite [2] para verificar se A uma matriz é simétrica\n");
        printf("Digite [3] para calcular o produto de duas matrizes A e B\n");
        printf("Digite [4] para terminar");
        printf("Escolha uma das opções de 1 a 4 ");
        scanf("%d",&opcao);
        switch(opcao){
        case 1 :
            //escrever o código necessário para realizar esta operação
            transposta();
            break;
        case 2 :
        //escrever o código necessário para realizar esta operação
            simetrica();
            break;
        case 3 :
            //escrever o código necessário para realizar esta operação
            produto();
            break;
        case 4 :
            printf("\nSaindo do programa !\n\n");
            break;
        default :
            printf("OPcao invalida !\n");
        }
    }while(opcao != 4 ); // Teste de consistência
}
void transposta(){
    int j,w,L,c,op,matriz[100][100];
    int matriz_transp[100][100];
    printf("quantidade de linhas da matriz ");
    scanf("%d",&L);
    printf("quantidade de colunas da matriz ");
    scanf("%d",&c);
    printf("Informe os numeros da matriz\n");
    for(j=0; j<L; j++){
        for(w=0; w<c; w++){
            printf("numero da linha %d e coluna %d ",j,w);
            scanf("%d",&matriz[j][w]);
        }
    }
    printf("\nA matriz informada\n");
    for(j=0;j<L;j++){
        for(w=0;w<c;w++)
            printf("% 3d",matriz[j][w]);
        printf("\n");
    }
    for(w=0;w<c;w++){
        for(j=0;j<L;j++){
            matriz_transp[w][j] = matriz[j][w];/* preenchendo a matriz transposta */
        }
    }
    printf("\nA matriz transposta\n");
    for(w=0;w<c;w++){
        for(j=0;j<L;j++)
            printf("%3d",matriz_transp[w][j]);
        printf("\n");
    }
    printf("\n");
}
void simetrica()
    {
    srand (time(NULL));
    int ordem=0;
    printf ("\nDigite a ordem da matriz simetrica:");
    while (ordem<=0)
    {
         fflush(stdin);
         scanf ("%i", &ordem);
         if (ordem<=0)
         {
                     printf ("/n\t ERRO!! ORDEM DEVE SER MAIOR QUE ZERO!!");
                     printf ("\nDigite a ordem da matriz simetrica:");
         }
    }
    int mat[ordem][ordem],i,j;
    for (i=0; i<ordem;i++)
    {
        for (j=i;j<ordem;j++)
        {
               if (i!=j)
               {
                  mat[i][j] = rand()%101;
                  mat[j][i] = mat[i][j];
               }
               else
                  mat[i][j] = rand()%101;
        }
    }
    printf ("\n\n MATRIZ SIMETRICA GERADA:\n\n");
    for (i=0;i<ordem;i++)
    {
        for (j=0;j<ordem;j++)
          printf ("\t%i", mat[i][j]);
        printf ("\n\n");
    }
    getch();
    return 0;


}
void produto(){
{

int j,w,L,c,op, matrizA[5][5],matrizB[5][5],matrizC[5][5],X,Aux=0;

printf("\n Informe a quantidade de linhas da matriz A : ");

scanf("%d",&j);

printf("\n Informe a quantidade de colunas da matriz A : ");

scanf("%d",&w);

printf("\n Informe a quntidade de linhas da matriz B : ");

scanf("%d",&L);

printf("\n Informe a quantidade de colunas da matriz B : ");

scanf("%d",&c);

if(l==c)

{

for(i=0; j<w; i++)

{

for(j=0; j<c; j++)

{

printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da Matriz A: ", i+1, 167, j+1, 167);

scanf("%d", &matrizA[i][j]);

}

printf("\n");

}

for(i=0; i<p; i++)

{

for(j=0; j<q; j++)

{

printf("\n\n Informe o valor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ", i+1, 167, j+1, 167, 167);

scanf("%d", &matrizB[i][j]);

}

printf("\n");

}

for(i=0; i<m; i++)

{

for(j=0; j<q; j++)

{

matrizC[i][j]=0;

for(X=0; X<p; X++)

{

Aux += matrizA[i][X] * matrizB[X][j];

}

matrizC[i][j]=Aux;

Aux=0;

}

}

printf("\n\n");

printf("***** Matriz \"A\" Gerada *****\n\n");

for(i=0; i<m; i++)

{

for(j=0; j<n; j++)

{

printf("%d\t", matrizA[i][j]);

}

printf("\n\n");

}

printf("***** Matriz \"B\" Gerada *****\n\n");

for(i=0; i<p; i++)

{

for(j=0; j<q; j++)

{

printf("%d\t", matrizB[i][j]);

}

printf("\n\n");

}

printf(" Matriz Multiplicada\n\n");

for(i=0; i<m; i++)

{

for(j=0; j<q; j++)

{

printf("%d\t", matrizC[i][j]);

}

printf("\n\n");

}

printf("\n\n");

}

else

{

printf("\n\n Nao ha com multiplicar as matrizes dadas ");

}

system("pause");
}

 

  • Curtir 1
Postado

@mrsmeenster     seu código com algumas modificações :

#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <stdlib.h>
#include<locale.h>
#include <time.h>
void transposta();
int simetrica();
void produto();
int matriz[100][100],L,c;
int main(){
    setlocale(LC_ALL,"");
    int opcao;
    system("cls");
    do{
        printf("\n**************************** ******************    \n");
        printf("********* M E N U D E O P C O E S *************      \n");
        printf("**************************** ******************    \n\n");
        printf("Digite [1] para calcular a transposta de uma matriz A\n");
        printf("Digite [2] para verificar se A uma matriz é simétrica\n");
        printf("Digite [3] para calcular o produto de duas matrizes A e B\n");
        printf("Digite [4] para terminar\n");
        printf("Escolha uma das opções de 1 a 4\n\n");
        printf("opcao -> ");
        scanf("%d",&opcao);
        switch(opcao){
        case 1 :
            //escrever o código necessário para realizar esta operação
            transposta();
            break;
        case 2 :
        //escrever o código necessário para realizar esta operação
            simetrica();
            break;
        case 3 :
            //escrever o código necessário para realizar esta operação
            produto();
            break;
        case 4 :
            printf("\nSaindo do programa !\n\n");
            break;
        default :
            printf("OPcao invalida !\n");
        }
    }while(opcao != 4 ); // Teste de consistência
}
void transposta(){
    int j,w,op;
    int matriz_transp[100][100];
    printf("quantidade de linhas da matriz ");
    scanf("%d",&L);
    printf("quantidade de colunas da matriz ");
    scanf("%d",&c);
    printf("Informe os numeros da matriz\n");
    for(j=0; j<L; j++){
        for(w=0; w<c; w++){
            printf("numero da linha %d e coluna %d ",j,w);
            scanf("%d",&matriz[j][w]);
            matriz_transp[w][j] = matriz[j][w];/* faz a transposta da matriz */
        }
    }
    printf("\nA matriz informada\n");
    for(j=0;j<L;j++){
        for(w=0;w<c;w++)
            printf("% 4d",matriz[j][w]);
        printf("\n");
    }
    printf("\nA matriz transposta\n");
    for(w=0; w<c; w++){
        for(j=0; j<L; j++)
            printf("%4d",matriz_transp[w][j]);
        printf("\n");
    }
    printf("\n");
}
int simetrica(){
    srand (time(NULL));
    int ordem=0,flag=0;
    int j,i;
    char op;
    printf("\nQuer usar a matriz gerada na opcao 1 S/N\n");
    fflush(stdin);
    scanf("%c",&op);
    if(toupper(op)!='S'){
        while (ordem<=0){
            printf ("\nDigite a ordem da matriz simetrica : ");
            fflush(stdin);
            scanf ("%i", &ordem);
            if (ordem<=0)
                printf ("\n ERRO!! ORDEM DEVE SER MAIOR QUE ZERO!!");
        }
    }
    else{
        if(c != L ){
            printf("essa matriz nao eh quadrada !\n");
            return 0;
        }
        ordem = c;
        flag=1;
    }
    int mat[ordem][ordem];
    int mat_transp[ordem][ordem];
    printf ("\n\n MATRIZ GERADA:\n\n");
    for (i=0; i<ordem;i++){
        for (j=0;j<ordem;j++){
            if( ! flag ){mat[i][j] = rand()%100+1;}/* pega números de 1 até 100 */
            else {mat[i][j] = matriz[i][j];}
            mat_transp[j][i] = mat[i][j];          /* faz a transposta da matriz */
            printf ("%4i", mat[i][j]);
        }
        printf("\n");
    }
    printf ("\n\n MATRIZ TRANSPOSTA:\n\n");
    flag=0;
    for(i=0;i<ordem;i++){
        for(j=0;j<ordem;j++){
            if(mat[i][j]!= mat_transp[i][j]){  /* verifica se elementos são diferentes */
                flag=1;
            }
            printf("%4d",mat_transp[i][j]);    /* imprime a matriz transposta      */
        }
        printf("\n");
    }
    if( flag )                                 /* se tiver elementos diferentes        */
        printf("Essa Matriz Nao eh Simetrica !\n\n");
    else
        printf("Essa Matriz eh Simetrica !\n\n");
    printf("     Tecle !");
    getch();
}
void produto(){
    int j,x,w,L,c,op,i,r,matrizA[115][115],matrizB[115][115],matrizC[115][115],X,aux=0;
    printf("Informe a quantidade de linhas da matriz A : ");
    scanf("%d",&r);
    printf("Informe a quantidade de colunas da matriz A : ");
    scanf("%d",&w);
    printf("Informe a quntidade de linhas da matriz B : ");
    scanf("%d",&L);
    printf("Informe a quantidade de colunas da matriz B : ");
    scanf("%d",&c);
    if(L==c){
        for(i=0; i<r; i++){
            for(j=0; j<w; j++){
                printf("valor da %d%c Linha e da %d%c Coluna da Matriz A: ",i+1,167,j+1,167);
                scanf("%d", &matrizA[i][j]);
            }
        }
        for(i=0; i<L; i++){
            for(j=0; j<c; j++){
                printf("nvalor da %d%c Linha e da %d%c Coluna da 2%c Matriz B: ",
                       i+1, 167, j+1, 167, 167);
                scanf("%d", &matrizB[i][j]);
            }
        }
        printf("o produto da matriz\n\n");
        for(i=0; i<r; i++){
            for(j=0; j<c; j++){
                aux=0;
                for(x=0; x<w; x++){
                    aux = aux + matrizA[i][x]*matrizB[x][j];
                }
                matrizC[i][j] = aux;
                printf("%4d",matrizC[i][j]);
            }
            printf("\n");
        }
    }
    else{
        printf("\n\n mastriz nao eh quadrada , Nao ha com multiplicar as matrizes dadas ");
    }
    system("pause");
}

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!