[Ajuda] VisualG

Arthur.km2007

New Member
Registrado
Boa tarde, prezados.

Estou começando a estudar portugol, mas estou com certa dificuldade. Poderiam me indicar materiais/apostilas sobre?

Estou fazendo um exercicio, porem, não estou sabendo como dar continuidade.

Segue o que tem que ser feito e o que eu ja fiz:

Fazer um algoritmo no VisuAlg que receba via teclado o NOME DA PESSOA, o valor do PRODUTO1, PRODUTO2 e PRODUTO3.

O programa então deve calcular o total e escolher a forma de pagamento conforme abaixo:
total <= 10 -> dinheiro
total > 10 e total <= 50 -> cartão de débito
total > 50 -> cartão de crédito

Por fim, deverá ser exibida a mensagem:

"A compra foi efetuada para o cliente {nome}, foi escolhido o método de pagamento {método} pois a compra ficou no valor de R$ {total}."

O que eu ja fiz:

Var
// Seção de Declarações das variáveis
nome: caracter
prod1: inteiro
prod2: inteiro
prod3: inteiro

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreva ("Digite o nome da pessoa: ")
leia (nome)
escreva ("Digite o valor do PRODUTO 1: ")
leia (prod1)
escreva ("Digite o valor do PRODUTO 2: ")
leia (prod2)
escreva ("Digite o valor do PRODUTO 3: ")
leia (prod3)


Depois fiz essa parte aqui, mas me perdi durante o caminho e creio ter pulado alguma etapa.

se total <= 10 entao
escreval ("Dinheiro")
senao
se (total > 10) e (total <=50) entao
escreval ("Cartão de debito")
senao
se total > 50 entao
escreval ("cartão de crédito")
fimse
fimse
fimse

Alguém poderia me dar uma luz? rs

Agradeço a ajuda de todos.
 

JEDI

Active Member
Registrado
O ideal é tu anotar o que esta sendo pedido e depois ir implementando um por um.

No enunciado pede que se digite o nome da pessoa e 3 valores. Isso foi feito com o escreva e leia.

Depois pede pra calcular o total e de acordo com o valor vai ser escolhido uma forma de pagamento.

Ai esta o problema, falta calcular o valor total, que seria a soma dos 3 valores digitados. Não podes esquecer que tens que armazenar esse valor numa variavel.

Vai ser algo tipo total = prod1 + prod2 + prod3

Depois vais usar o "se" pra saber qual a forma de pagamento.

Não esquece que o se funciona assim:
Código:
se condição 1 então
  faz alguma coisa se for verdadeiro
senão
  se condição 2 então
    faz alguma coisa se for verdadeiro
  senão
    faz alguma coisa se for falso
  fimse
fimse
Então se tu digita "se total <=10" o computador precisa saber o que é esse total, mas na tua declaração das variáveis não tem nenhum total.

Tenta arrumar e presta atenção nas mensagens de erro, pois geralmente o próprio visualg diz qual o problema.
 

Arthur.km2007

New Member
Registrado
O ideal é tu anotar o que esta sendo pedido e depois ir implementando um por um.

No enunciado pede que se digite o nome da pessoa e 3 valores. Isso foi feito com o escreva e leia.

Depois pede pra calcular o total e de acordo com o valor vai ser escolhido uma forma de pagamento.

Ai esta o problema, falta calcular o valor total, que seria a soma dos 3 valores digitados. Não podes esquecer que tens que armazenar esse valor numa variavel.

Vai ser algo tipo total = prod1 + prod2 + prod3

Depois vais usar o "se" pra saber qual a forma de pagamento.

Não esquece que o se funciona assim:
Código:
se condição 1 então
  faz alguma coisa se for verdadeiro
senão
  se condição 2 então
    faz alguma coisa se for verdadeiro
  senão
    faz alguma coisa se for falso
  fimse
fimse
Então se tu digita "se total <=10" o computador precisa saber o que é esse total, mas na tua declaração das variáveis não tem nenhum total.

Tenta arrumar e presta atenção nas mensagens de erro, pois geralmente o próprio visualg diz qual o problema.
Bom dia, Jedi.

Agradeço a sua ajuda.

Se possivel, veja se está correto dessa forma:

Código:
Var
// Seção de Declarações das variáveis
prod1: real
prod2: real
prod3: real
total: real
nome: caracter
fpagamento: caracter

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreva ("Informe o nome da pessoa: ")
leia (nome)
escreva ("Digite o valor do PRODUTO 1: R$ ")
leia (prod1)
escreva ("Digite o valor do PRODUTO 2: R$ ")
leia (prod2)
escreva ("Digite o valor do PRODUTO 3: R$ ")
leia (prod3)

total <- prod1 + prod2 + prod3

Se total <= 10 então
   fpagamento <- ("Dinheiro")
Fimse
Se (total > 10) e (total <= 50) entao
   fpagamento <- ("Cartão de Débito")
Fimse
Se total > 50 então
   fpagamento <-  ("Cartão de Cédito")
Fimse

escreval ("A compra foi efetuada para o cliente ", nome,", foi escolhido o método de pagamento " , fpagamento, ", pois a compra ficou no valor de R$", total, "reais")

Fimalgoritmo
 

JEDI

Active Member
Registrado
Bom dia, Jedi.

Agradeço a sua ajuda.

Se possivel, veja se está correto dessa forma:

Código:
Var
// Seção de Declarações das variáveis
prod1: real
prod2: real
prod3: real
total: real
nome: caracter
fpagamento: caracter

Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreva ("Informe o nome da pessoa: ")
leia (nome)
escreva ("Digite o valor do PRODUTO 1: R$ ")
leia (prod1)
escreva ("Digite o valor do PRODUTO 2: R$ ")
leia (prod2)
escreva ("Digite o valor do PRODUTO 3: R$ ")
leia (prod3)

total <- prod1 + prod2 + prod3

Se total <= 10 então
   fpagamento <- ("Dinheiro")
Fimse
Se (total > 10) e (total <= 50) entao
   fpagamento <- ("Cartão de Débito")
Fimse
Se total > 50 então
   fpagamento <-  ("Cartão de Cédito")
Fimse

escreval ("A compra foi efetuada para o cliente ", nome,", foi escolhido o método de pagamento " , fpagamento, ", pois a compra ficou no valor de R$", total, "reais")

Fimalgoritmo
Vou falar da lógica, ela melhorou muito, agora esta tudo no seu lugar, a unica mudança que faria é na parte do "se <> então", do modo que tu fez funciona, mas não é a forma correta. Usa o se ... senão, dai sim vai ficar 100%.

Olha meu post anterior, ali explica como se usar o se .. senão.

Tens 3 formas de pagamento, então tu precisa de um "se", depois um "senão se" e por fim só um "senão".
Tu pergunta se é menor ou igual a 10, se for falso tu faz um senão se e pergunta se é maior que 10 e menor igual 50, se for falso nem precisa perguntar mais nada, basta fazer um senão direto com o fpagamento <- ("Cartão de Cédito") pois essa é a unica possibilidade que sobrou.
 

Arthur.km2007

New Member
Registrado
Vou falar da lógica, ela melhorou muito, agora esta tudo no seu lugar, a unica mudança que faria é na parte do "se <> então", do modo que tu fez funciona, mas não é a forma correta. Usa o se ... senão, dai sim vai ficar 100%.

Olha meu post anterior, ali explica como se usar o se .. senão.

Tens 3 formas de pagamento, então tu precisa de um "se", depois um "senão se" e por fim só um "senão".
Tu pergunta se é menor ou igual a 10, se for falso tu faz um senão se e pergunta se é maior que 10 e menor igual 50, se for falso nem precisa perguntar mais nada, basta fazer um senão direto com o fpagamento <- ("Cartão de Cédito") pois essa é a unica possibilidade que sobrou.
Dessa forma?

Código:
Se total <= 10 então
   fpagamento <- ("Dinheiro")
Senao
     Se (total > 10) e (total <= 50) entao
        fpagamento <- ("Cartão de Débito")
     Senao
          fpagamento <-  ("Cartão de Cédito")
     Fimse
Fimse
 

JEDI

Active Member
Registrado
Dessa forma?

Código:
Se total <= 10 então
   fpagamento <- ("Dinheiro")
Senao
     Se (total > 10) e (total <= 50) entao
        fpagamento <- ("Cartão de Débito")
     Senao
          fpagamento <-  ("Cartão de Cédito")
     Fimse
Fimse
É bem isso mesmo, esta perfeito agora!!
 

Arthur.km2007

New Member
Registrado

Arthur.km2007

New Member
Registrado
Bom dia, prezados. Aproveitando este tópico ja criado, alguem saberia me dizer o que será impresso no final deste codigo? Estou tentando fazer, mas não ta saindo.

Código:
i <- FALSO
para contador de 1 ate 5 faca
para contador2 de 1 ate 5 faca
p1[contador,contador2] <- i;
i <- não(i)
fimpara
fimpara
para contador de 1 ate 5 faca
para contador2 de 1 ate 5 faca
se contador = contador2 entao
escreval(p1[contador,contador2])
fimse
fimpara
fimpara
 

JEDI

Active Member
Registrado
Bom dia, prezados. Aproveitando este tópico ja criado, alguem saberia me dizer o que será impresso no final deste codigo? Estou tentando fazer, mas não ta saindo.

Código:
i <- FALSO
para contador de 1 ate 5 faca
para contador2 de 1 ate 5 faca
p1[contador,contador2] <- i;
i <- não(i)
fimpara
fimpara
para contador de 1 ate 5 faca
para contador2 de 1 ate 5 faca
se contador = contador2 entao
escreval(p1[contador,contador2])
fimse
fimpara
fimpara
A principio não vai escrever nada pois esta faltando coisa ai.

Parece que tas querendo preencher uma matriz[5,5] com verdadeiro e falso e no final ele vai pegar os valores da diagonal e escrever na tela.

Mas não vai rodar pois ta faltando declarar variavel.

Acho que é isso!
 

Usuários que estão vendo esse Tópico (Users: 0, Guests: 1)

Topo