Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Fabio Aragao

VisualG Problemas com a logica

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×