Ir ao conteúdo

Posts recomendados

Postado

Boa tarde pessoal,

 

Estou tentando fazer um algoritmo so que ele está dando um erro que informa que o até não tem o repita atrelado.

 

Algoritmo "semnome"
// Uma empresa de vendas tem três corretores. A empresa paga ao corretor uma
//comissão calculada de acordo com o valor de suas vendas. Se o valor da venda
// de um
//corretor for maior que R$ 50.000.00 a comissão será de 12% do valor vendido. Se o
//valor da venda do corretor estiver entre R$ 30.000.00 e R$ 50.000.00 (incluindo
//extremos) a comissão será de 9.5%. Em qualquer outro caso, a comissão será de 7%.
//Escreva um algoritmo que gere um relatório contendo nome, valor da venda e
//comissão de cada um dos corretores. O relatório deve mostrar também o total de
//vendas da empresa.
Var
   sair : caracter
   total : real
   i, j : inteiro
   nome: vetor[1..100] de caracter
   vvenda: vetor[1..100] de real
   comissao: vetor[1..100] de real

Inicio


   escreval("########################################")
   escreval("###                                  ###")
   escreval("###   Cadastro de Venda Corretores   ###")
   escreval("###                                  ###")
   escreval("########################################")
   escreval("")

   sair <- "s"
   repita

      para i de 1 ate 100 faca
         para j de 1 ate 100 faca
            escreva("Digite o nome do vendedor: ")
            leia(nome[i])
            escreva("Digite o valor da venda: ")
            leia(vvenda[j])


            escreval("Deseja cadastrar outro corretor? Digite s para SIM e n para NÃO")
         ate sair <> "n"

      fimpara

   fimpara




   se ( vvenda[j] > 50000 ) então
      comissao[j] <- vvenda[j] * 0.12
   senao
      se ( vvenda[j] >= 30000 ) e ( vvenda[j] <= 50000 ) então
         comissao[j] <- vvenda[j] * 0.095
      senao
         comissao[j] <- vvenda[j] * 0.07
      fimse
   fimse

   total <- vvenda[j] + total

fimenquanto

para i de 1 ate 100 faca
   para j de 1 ate 100 faca
      escreval("O vendedor: ", nome[i], " vendeu R$ ", vvenda[j], " sua comissao foi de R$ ", comissao[j])
   fimpara
fimpara

escreval("A empresa vendeu um total de R$ ", total)

Fimalgoritmo

O que estou fazendo de errado ?

  • Curtir 1
Postado

@Fabio Aragao    você colocou o ate dentro do para ,   e ali não precisa desses dois loop para fazer os cadastros , o que você precisa é colocar uma variável como contador para informar a posição do vetor onde será inserido o nome e o valor nos respectivos vetores e também na hora de imprimir você usa o contador como limite para o loop de impressão ,   então seu código ficaria assim :

Algoritmo "comando repita"
// Uma empresa de vendas tem três corretores. A empresa paga ao corretor uma
//comissão calculada de acordo com o valor de suas vendas. Se o valor da venda
// de um
//corretor for maior que R$ 50.000.00 a comissão será de 12% do valor vendido. Se o
//valor da venda do corretor estiver entre R$ 30.000.00 e R$ 50.000.00 (incluindo
//extremos) a comissão será de 9.5%. Em qualquer outro caso, a comissão será de 7%.
//Escreva um algoritmo que gere um relatório contendo nome, valor da venda e
//comissão de cada um dos corretores. O relatório deve mostrar também o total de
//vendas da empresa.
Var
   sair          : caracter
   total         : real
   i, j,contador : inteiro
   nome          : vetor[1..100] de caracter
   vvenda        : vetor[1..100] de real
   comissao      : vetor[1..100] de real

Inicio

   escreval("########################################")
   escreval("###                                  ###")
   escreval("###   Cadastro de Venda Corretores   ###")
   escreval("###                                  ###")
   escreval("########################################")
   escreval("")

   sair <- "s"
   repita
     contador := contador + 1
     escreva("Digite o nome do vendedor: ")
     leia(nome[contador])
     escreva("Digite o valor da venda: ")
     leia(vvenda[contador])

     escreval("Deseja cadastrar outro corretor? S/N ")
     leia(sair)
   ate sair <> "s"

   para j de 1 ate contador faca
     se ( vvenda[j] > 50000 ) ENTÃO
       comissao[j] <- vvenda[j] * 0.12
     senao
       se ( vvenda[j] >= 30000 ) e ( vvenda[j] <= 50000 ) ENTÃO
         comissao[j] <- vvenda[j] * 0.095
       senao
         comissao[j] <- vvenda[j] * 0.07
       fimse
     fimse
     total <- vvenda[j] + total
   fimpara

   para j de 1 ate contador faca
      escreva("O vendedor: ",nome[j]," vendeu R$ ",vvenda[j])
      escreval(" sua comissao foi de R$ ",comissao[j])
   fimpara
   escreval("A empresa vendeu um total de R$ ", total)
Fimalgoritmo

 

  • Membro VIP
Postado

Olá.

 

Alguns pontos:

21 horas atrás, Fabio Aragao disse:
   sair <- "s"
   repita

- Não precisa inicializar a variável sair, pois está utilizando repita ("faz, depois pergunta"). Isso seria necessário se utilizado enquanto. Por sinal, conceitualmente o que deve ser inicializado é o contador, pois ela é utilizado como incrementação, ou seja, que utiliza o seu próprio valor para atualizar. obs.: O Visualg inicializa automaticamente, mas é bom para ir se acostumando para futuras outras linguagem quem não fazem isso.

- a nomenclatura "sair" não está batendo com o seu uso. Quando tem "s" ele repete?? poderia por exemplo usar "continuar".

- no código do @devair1010 a variável i não está sendo utilizada. De qualquer sorte, como "padrão" ("costume") é utilizado o i como primeira opção de auxiliar do para, ou seja, remove o j e troca pelo i.

- @Fabio Aragao, em relação ao seu código, observe que você está utilizando um vetor para cada dado, daí, a correlação entre eles está na posição... logo, teria que ser a mesma variável para elas... logo, sendo uma estrutura de repetição só. Como a quantidade de cadastros não é fixa, daí que surgiu a necessidade do contador citado por @devair1010.

 

 

Obs.: @devair1010, por favor, evite não entregue o código com as correções sugeridas, deixe que o próprio usuário o faça, pois desta forma estimula o usuário a interpretar as orientações, assim como absorverá melhor o que foi aplicado.

 

 

No aguardo.

  • Curtir 1

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

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!