Ir ao conteúdo
  • Cadastre-se

C Trabalho da faculdade. Algoritmo em Linguagem C


Ana Raquel
Ir à solução Resolvido por Ansi C,

Posts recomendados

Boa noite! Sou iniciante no curso de Engenharia de Software e não sou muito boa em algoritmo, precisa de ajuda para fazer está atividade. Um exemplo parecido para que eu consiga fazer o meu algoritmo.

 

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.

  • Curtir 1
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

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Solução

Relativamente fácil!

 

Eu não escrevi, só de cabeça já tenho uma solução simples para problema do professor João Messias.

Precisei de uma matriz [20][10] respectivamente com 20 clientes x 10 notas por cliente, essa matriz é de uma estrutura para organizar os dados das notas.

Cliente: Nota Valor [10],
Cliente: Nome Cliente.

 

Quesito 1:

Bastante aninhar as instruções de loop, preferencialmente FOR, percorrer a matriz linha x coluna para ler os dois dados do cadastro, simplesmente linear.

 

Quesito 2:
Escrevo um algoritmo\função que realize esse processo por cliente, cujo parâmetro é um vetor [10] com retorno da soma dos elementos do vetor. Agora é suficiente aninha a chamada dessa função a um loop de 0 à 9 para calcular o total de todos os clientes

 

Quesito 3:
Uso o a função do quesito 2.

 

Quesito 4:
Coloco tudo em um vetor de funções ou switch-case, aninho o menu em  um vetor de cstrings e chamo dentro da main.

 

 

 

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Algoritmo "Cadastro"

          tipo
              CadProduto = registro
                         nomeCliente: vetor [1..20] de caractere
                         valorNota: vetor [1..10] de real
                         valorTotal: real

fim_registro

procedimento mostrarMenu()

inicio
escreva (" 1 - cadastro registro ")
escreva (" 2 - Mostrar o somatório do Cliente ")
escreva (" 3 - Mostrar o valor a pagar do Cliente ")
escreva (" 4 - Mostrar o valor total dos Clientes ")

fim_procedimento

procedimento notasCadastrar ()

inicio
se (qtdNota < 10) entao
   escreva ("Digite o Nome do Cliente: ")
   leia (notas [qtdNota + 1].nomeCliente)
   escreva ("Digite o valor da Nota: ")
   leia (notas [qtdNota + 1].valorNota)
   escreva ("Digite o valor total a pagar: ")
   leia (notas [qtdNota + 1].valorTotal)
   escreva (" Notas Cadastrado com Sucesso! ")

senao
   escreva (" Limite máximo atigindo: 20 notas! ")

   fim_se

   opt <- 0

   fim_procedimento

   funcao notasBuscar (cod: inteiro) : inteiro

   var
   i, achou: inteiro

   inicio
   i <- 1
   achou <- 0

   enquanto (i <= qtdNota) faça
      se (notas .nomeCliente == cod) entao
         escreva (" nota: ", cod)
         escreva (" valor da nota: ", notas.valorNota)
         escreva (" valor total a pagar: ", notas.valorTotal)

         retorne i

         fim_se

         i <- i = 1

         fim_enquanto

         escreva (" nota não encontrada... ")

         retorne -1

         fim_funcao

         procedimento notasValorPagar ()

         var
         i, j, k: inteiro
         aux: CadProduto

         inicio
         para i de 1 ate qtdNota passo 1 faca
            para j de i + 1 ate qtdNota passo 1 faca
               k <- 1
               enquanto ((notas.valorNota[k] = notas[j].valorNota[k] e (k <= 50)) faça
                  k <- k + 1
                  fim_enquanto
                  se ((notas.valorNota[k] > notas[j].valorNota[k]) e (k <= 50)) entao
                     aux <- notas
                     notas <- notas
                     notas[j] <- aux
                     fim_se
                     fim_para
                     fim_para
                     fim_procedimento

                     procedimento notasMostrar ()

                     var
                     i: inteiro

                     inicio
                     para i de 1 ate qtdNotas passo 1 faca
                        escreva (" notas: ", notas.nomeCliente)
                        escreva (" valor da nota: ", notas.valorNota)
                        escreva (" valor total a pagar: ", notas.valorTotal)

                        fim_para
                        fim_procedimento

                        var
                        notas: vetor[1..10] de CadProduto
                        opt, qtdNotas, i: inteiro

                        inicio
                        qtdNotas <- 0

                        repita
                           mostrarMenu ()
                           leia (opt)
                        caso (opt)
                           seja 1 faca
                           para i de 1 ate 20 passo 1 faca
                              notasCadastrar ()
                              fim_para
                              seja 2 faca
                              notasBuscar ()
                              seja 3 faca
                              notasValorPagar ()
                              seja 4 faca
                              notasMostrar ()
                              fim_caso
                              ate_que (opt = 6)
fim

  • Triste 1
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...