Вы находитесь на странице: 1из 4

/**

EXERCÍCIO RESOLVIDO SOBRE MATRIZES (PG 27 da apostila de Introdução à Lógica de Programação)

1º) CADASTRAR A QUANTIDADE DE PRODUTOS NA MATRIZ


2º) CADASTRAR O VALOR UNITÁRIO DE CADA PRODUTO NA ÚLTIMA LINHA DA MATRIZ
3ª) EXIBIR O RELATÓRIO

Para resolver o problema irei construir um menu com as opções para o usuário,
desta forma deixamos o programa mais amigável.

PSEUDOCÓDIGO (não tem como sublinhar os comandos no editor do c)

########################
inicio
variáveis
mat_armazem: matriz[1..5,1..4] decimal
i,j,opc: inteiro
total: decimal

{comandos}
repita
{menu com as opções}
escreva("### MENU PRINCIPAL ###\n")
escreva("1 - Cadastrar produto no armazém\n")
escreva("2 - Cadatrar valor unitario do produto\n")
escreva("3 - Ver relatório\n")
escreva("4 - Sair\n")
escreva("Digite o codigo da opção: ")
leia(opc)
{valida a opção}
enquanto não(opc>=1 e opc<=4)faça {enquanto opção inválida}
escreva("Opção inválida! informe novamente: ")
leia(opc)
fim-enquanto

{varifica a opção escolhida pelo usuário}


caso(opc)
{cadastro de produtos}
1:
escreva("\n\n### CADASTRAR PRODUTO NO ARMAZÉM ###\n")
escreva("Digite o código do armazém: ")
leia(i)
escreva("Digite o código do produto: ")
leia(j)
escreva("Quantidade existente: ",mat_armazem[i,j],"\n"){exibe a quntidade cadastrada até o
momento}
escreva("Informe a quantidade atual: ")
leia(mat_armazem[i,j])
escreva("Produto atualizado!!")

{cadastro de valor dos produtos}


2:
escreva("\n\n### CADASTRAR VALOR UNITÁRIO DO PRODUTO ###\n")
escreva("Código do produto: ")
leia(j)
escreva("Valor do produto é: R$",mat_armazem[5,j],"\n"){exibe o valor cadastrado até o
momento}
escreva("Informe o valor atual: ")
leia(mat_armazem[5,j])
escreva("Valor Atualizado!!")

{visualizar relatório}
3:
escreva("\n\n### RELATÓRIO ###\n\n")

{EXIBE A QUANTIDADE DE CADA PRODUTO POR ARMAZÉM - não estava na questão, coloquei porque
achei interessante}
para(i<-1 até 5)faça
escreva("\n Armazém ",i)
para(j<-1 até 4)faça
escreva("\n Produto ",j,": ",mat_armazem[i][j])
fim-para
fim-para

{
A) CALCULA E EXIBE A QUANTIDADE DE ITENS ARMAZENADO EM CADA ARMAZEM
}
escreva("\n\nQUANTIDADE DE ITENS ARMAZENADOS POR ARMAZÉM\n")
para(i<-1 até 4)faça
total<-0
para(j<-1 até 4)faça
total<-total + mat_armazem[i][j]
para
escreva("\n Armazém ",i,": ",total)
fim-para

{
B) CALCULA E EXIBE O CUSTO TOTAL DE CADA PRODUTO
}
escreva("\n\nCUSTO TOTAL POR PRODUTO\n")
para(j<-1 até 4)faça
total<-0
para(i<-1 até 4)faça
total<-total + mat_armazem[i][j]*mat_armazem[5][j]
fim-para
escreva("\n Produto ",i,": R$ ",total)
fim-para

{
C) CALCULA E EXIBE O CUSTO TOTAL DE CADA ARMAZÉM
}
escreva("\n\nCUSTO TOTAL POR ARMAZÉM\n")
para(i<-1 até 4)faça
total<-0
para(j<-1 até 4)faça
total<-total + mat_armazem[i][j]*mat_armazem[5][j]
fim-para
escreva("\n Armazem ",i,": R$ ",total)
}

{sair do sistema}
4:
escreva("\n\n##### FIM DO PROGRAMA ARAMAZÉM ######")
fim-caso
até(opc="4")

###### FIM DO ALGORITMO EM PSEUDOCÓDIGO ######

###### INÍCIO DO ALGORÍTMO EM C ######


*/

#include <stdio.h>//biblioteca para comando printf e scanf


#include <stdlib.h>//

int main()
{
float mat_armazem[5][4];//matriz para os produtos nos armazéns (linha=armazém,coluna=produto)
int i,j,opc;
float total;
//percorre todas as posições da matriz para atribuir valor 0
for(i=0;i< 5;i++){//REPETIÇÃO COM VARIÁVEL DE CONTROLE (PARA)
for(j=0;j< 4;j++){
mat_armazem[i][j]=0;
}
}

//REPETIÇÃO COM TESTE NO FINAL (REPITA)


do{
/**
* MENU COM AS OPÇÕES PARA O USUÁRIO
*/
printf("### MENU PRINCIPAL ###\n");
printf("1 - Cadastrar produto no armazém\n");
printf("2 - Cadatrar valor unitario do produto\n");
printf("3 - Ver relatório\n");
printf("4 - Sair\n");
printf("Digite o codigo da opção: ");
scanf("%i",&opc);
//VALIDA A OPÇÃO INFORMADA PELO USUÁRIO
while(!(opc>=1 && opc<=4)){
printf("Codigo inválido! Digite novamente: ");
scanf("%i",&opc);
}

//VERIFICA QUAL DAS OPÇÕES O USUÁRIO ESCOLHEU (MÚLTIPLA ESCOLHA)


switch(opc){

//CADASTRO DO PRODUTO
case 1:
printf("\n\n### CADASTRAR PRODUTO NO ARMAZÉM ###\n");
printf("Digite o código do armazém: ");
scanf("%i",&i);//armazena a linha da matriz (armazém)
printf("Digite o código do produto: ");
scanf("%i",&j);//armazena a coluna da matriz (produto)

printf("Quantidade existente: %f\n",mat_armazem[i-1][j-1]);


printf("Informe quantidade atual: ");
scanf("%f",&mat_armazem[i-1][j-1]);
printf("Produto Atualizado!!");
break;

//CADASTRO DO VALOR UNITÁRIO


case 2:
printf("\n\n### CADASTRAR VALOR UNITÁRIO DO PRODUTO ###\n");
printf("Código do produto: ");
scanf("%i",&j);
printf("Valor do produto é: R$ %.2f\n",mat_armazem[4][j-1]);
printf("Informe o valor atual: ");
scanf("%f",&mat_armazem[4][j-1]);
printf("Valor Atualizado!!");
break;

//VISUALIZAR RELATÓRIO
case 3:
printf("\n\n### RELATÓRIO ###\n\n");

//EXIBE A QUANTIDADE DE CADA PRODUTO POR ARMAZÉM


printf("QUANTIDADE DE PRODUTOS POR ARMAZÉM\n");
for(i=0;i<4;i++){
printf("\n Armazém %i",i+1);
for(j=0;j<4;j++){
printf("\n Produto %i: %f",j+1,mat_armazem[i][j]);
}
}
//CALCULA E EXIBE A QUANTIDADE DE ITENS ARMQZENADO EM CADA ARMAZEM
printf("\n\nQUANTIDADE DE ITENS ARMAZENADOS POR ARMAZÉM\n");
for(i=0;i<4;i++){
total = 0;
for(j=0;j<4;j++){
total+= mat_armazem[i][j];
}
printf("\n Armazém %i: %f",i+1,total);
}

//CALCULA E EXIBE O CUSTO TOTAL DE CADA PRODUTO


printf("\n\nCUSTO TOTAL POR PRODUTO\n");
for(j=0;j<4;j++){
total = 0;
for(i=0;i<4;i++){
total+= mat_armazem[i][j]*mat_armazem[4][j];
}
printf("\n Produto %i: R$ %.2f",j+1,total);
}

//CALCULA E EXIBE O CUSTO TOTAL DE CADA ARMAZÉM


printf("\n\nCUSTO TOTAL POR ARMAZÉM\n");
for(i=0;i<4;i++){
total = 0;
for(j=0;j<4;j++){
total+= mat_armazem[i][j]*mat_armazem[4][j];
}
printf("\n Armazem %i: R$ %.2f",i+1,total);
}

break;

//SAIR
case 4:
printf("\n\n##### FIM DO PROGRAMA ARAMAZÉM ######");
break;
}

printf("\n\n\n");
//FIM DA REPETIÇÃO COM O TESTE NO FINAL (ATÉ)
}while(opc!=4);//NO C ELE REPETE ENQUANTO (WHILE) CONDIÇÃO VERDADEIRA

Вам также может понравиться