Ir ao conteúdo
  • Cadastre-se

Portugol criar algorítmo em pseudocódigo


Posts recomendados

Olá boa noite

Alguém consegue me ajudar neste execício?

 

Atualmente temos diversas formas de vendas, aliadas aos seus respectivos sistemas. Contudo, ainda, existem algumas empresas, geralmente as de pequeno porte que ainda trabalham com vendas “fiado” para alguns clientes. Contudo, este procedimento acaba por criar diversas complicações, que podem levar o empresário a falência. Bom, não iremos analisar estes processos ok.

Diante deste fato, imagine a mercearia da família do professor João Messias. Está empresa, ainda não possui sistema de vendas, ou seja, anota todas as vendas no “caderninho”, tanto venda efetuada, quanto venda “fiado”. Este é um problema sério que o João Messias enfrenta toda vez que um cliente deseja pagar, ele deve somar todas as notinhas. João Messias, quer informatizar o sistema da mercearia, e nesta versão, não terá mais as vendas “fiado”. Contudo, necessita realizar um levantamento de vendas que foram efetuadas “fiado” para que possa ser lançado no sistema quando receber as notinhas de seus clientes. 

O módulo a ser implementado consiste em:

1 - Uma rotina de cadastro do valor de cada notinha de cada cliente, e neste cadastro deve conter além do valor de cada nota, o nome do cliente. Assuma que existe atualmente 20 clientes no caderninho. Assuma também que, cada cliente tem 10 notinhas.
2 - Uma rotina de impressão de todos os clientes com o seu valor total a pagar. E ao final mostrar um somatório total.
3 - Uma rotina que imprima na tela os valores e o somatório de um cliente em específico.
4 - Criar um menu simples com as 3 opções e uma opção para sair.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Caro usuário,

 

Seja bem-vindo ao Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

Link para o comentário
Compartilhar em outros sites

Eu acho que seria algo assim , mas estou com dúvidas

 

#include <stdio.h>
#include <stdlib.h>
#define MAX 100
#include <locale.h>

// declaração da struct pessoa
typedef struct cadastro
{
    char descricao[50];
    int quantidadeEstoque;
    int categoria;
    int lote;
} Cadastroproduto;

//prototipação das funções
void identificacao();
void cadastrarProduto(Cadastroproduto produto[MAX]);
void ListarTodosProdutos(Cadastroproduto produto[MAX]);
void ListarProdutosCategoria(int buscaCategoria, Cadastroproduto produto[MAX]);
void ListarProdutosLote(int buscaLote, Cadastroproduto produto[MAX]);
int contarRegistro(Cadastroproduto produto[MAX]);

int main()
{
    //declaração do vetor de registro do tipo produto
    Cadastroproduto produto[MAX];
    setlocale(LC_ALL, "Portuguese");
    
    int op, buscaLote, buscaCategoria;
    do{
        identificacao();
        printf("\n1 - Cadastrar produto");
        printf("\n2 - Listar todos os produtos");
        printf("\n3 - Listar produto por categoria");
        printf("\n4 - Listar produto por lote");
        printf("\n0 - Sair");
        printf("\nEscolha Opção: ");
        scanf("%d", &op);
        
        switch(op){
            case 1:
                cadastrarProduto(produto);
                break;
            case 2:
                ListarTodosProdutos(produto);
                printf("\n");
                system("pause");
                break;
            case 3:         
                printf("Informe a categoria do produto");;
                fflush(stdin);
                scanf("%d", &buscaCategoria);
                ListarProdutosCategoria(buscaCategoria, produto);
                printf("\n");
                system("pause");
                break;
            case 4: 
                printf("Informe o Lote do produto");;
                fflush(stdin);
                scanf("%d", &buscaLote);
                ListarProdutosLote(buscaLote, produto);
                printf("\n");
                system("pause");
                break;
            case 0:
                printf("\nSaindo do sistema!!!");
                break;
            default:
                printf("Valor indefinido");
                system("pause");
                break;
        }    
    }while(op!=0);
    return 0;
}

void identificacao(){
    system("cls");
    int t;
    for(t=0; t<80; t++) printf("-");
    printf("\n >>>> NOME <<<<");
    printf("\n >>>> RA: 00000000-7 <<<< ");
    printf("\n >>>> Engenharia de Software <<<< \n");
    for(t=0; t<80; t++) printf("-");
}
void cadastrarProduto(Cadastroproduto produto[MAX])
{
    identificacao();
    int i;
    FILE * arq;
 
    arq = fopen("dadosProdutos.txt", "a+");

    if(arq != NULL)
    {
        for(i = 0; i < 2; i++){
            printf("\nInforme os dados do Produto: ");
            printf("\nDescricação............: ");
            fflush(stdin);
            gets(produto.descricao);
            printf("\nQuantidade em estoque..: ");
            fflush(stdin);
            scanf("%d", &produto.quantidadeEstoque);
            printf("\nLote...................: ");
            scanf("%d", &produto.lote);
            printf("\nCategorias: \n[1] Alimentos | [2] Bebidas | [3] Limpeza");
            fflush(stdin);
            scanf("%d", &produto.categoria);
            fwrite(&produto, sizeof(Cadastroproduto), 1, arq);
        }
        fclose(arq); // aborta o programa
    }
    else
    {
        printf("\nErro ao abrir o arquivo para leitura!\n");
        exit(1); // aborta o programa
    }
}

int contarRegistro(Cadastroproduto produto[MAX])
{
    FILE * arq = fopen("dadosProdutos.txt", "r");
    if(arq != NULL)
    {
        int contador = 0;
        while(1)//irá percorrer todo o arquivo e quando não encontrar mais registros, o laço termina
        {
            Cadastroproduto p;//criando um registro temporário
        
            //leitura de registro por registro, ou seja, pega um registro
            int registro = fread(&p, sizeof(Cadastroproduto), 1, arq);
            
            //se a leitura do registro retornar 0, siginifica que a próxima posição do arquivo é zero ai saimos do laço
            if(registro < 1)
                break;
            else
                produto[contador] = p;//pega registro lido e colocar vetor de registro
            contador++;
        }
        fclose(arq); // fecha o arquivo
        return contador;//retorna a quantidade de registros que há no arquivo
    }
    else
    {
        printf("\nErro ao abrir o arquivo para leitura!\n");
        exit(1); // aborta o programa
    }
}

void ListarTodosProdutos(Cadastroproduto produto[MAX]){    
    identificacao();
    
    int quantidadeproduto = contarRegistro(produto);
    int i;
    
    printf("\n>>>> Lista de produtos <<<< %d\n", quantidadeproduto);
    
    printf("ITEM \t| DESCRIÇÃO \t\t| QUANTIDADE \t| CATEGORIA \t | LOTE");
    for(i = 0; i < quantidadeproduto; i++)
    {
        printf("\n%d \t| %s  \t \t| %d \t\t | %d \t\t | %d", i+1, produto.descricao, produto.quantidadeEstoque, produto.categoria, produto.lote);    
    }
}

void ListarProdutosCategoria(int buscaCategoria, Cadastroproduto produto[MAX]){    
    identificacao();
    
    int quantidadeproduto = contarRegistro(produto);
    int i;
    
    printf("\n>>>> Lista de Produtos por categoria <<<< \n");
    if (buscaCategoria == 1) {
        printf("Categoria pesquisada: Alimentos \n");    
    }else if (buscaCategoria == 2) {
        printf("Categoria pesquisada: Bebidas \n");    
    }else if (buscaCategoria == 3) {
        printf("Categoria pesquisada: Limpeza \n");    
    }
    
    printf("ITEM \t| DESCRIÇÃO \t\t| QUANTIDADE \t| CATEGORIA \t | LOTE");
    for(i = 0; i < quantidadeproduto; i++)
    {
        if(produto.lote == buscaCategoria){
            printf("\n%d \t| %s  \t \t| %d \t\t | %d \t\t | %d", i+1, produto.descricao, produto.quantidadeEstoque, produto.categoria, produto.lote);    
        }
    }
}
void ListarProdutosLote(int buscarLote, Cadastroproduto produto[MAX]){
    identificacao();
    
    int quantidadeproduto = contarRegistro(produto);
    int i;
    
    printf("\n>>>> Lista de Produtos por lote <<<< \n");
    printf("Lote pesquisado: %d \n", buscarLote);
    
    printf("CODIGO \t| DESCRIÇÃO \t\t| QUANTIDADE \t| CATEGORIA \t | LOTE");
    for(i = 0; i < quantidadeproduto; i++)
    {
        if(produto.lote == buscarLote){
            printf("\n%d \t| %s  \t \t| %d \t\t | %d \t\t | %d", i+1, produto.descricao, produto.quantidadeEstoque, produto.categoria, produto.lote);    
        }
    }
}

Link para o comentário
Compartilhar em outros sites

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...