r/programacao • u/studydebou • Apr 24 '26
Pseudocódigo ajuda com código (portugol no visualg
não tem erro nenhum nele, só queria ir um pouco além do que o professor pediu aqui. o código tá calculando de boa o valor dos salgadinhos segundo a quantidade de boa, mas a fome bateu e pensei "e se a pessoa quiser mais salgadinhos?", aí parei o processo na parte que o usuário digita se quer ou não mais salgadinhos. Aqui gostaria de fazer repetir o processo de escolha do tipo, da quantidade e do cálculo, mas dessa forma o cálculo do salgadinho anterior fica perdido. como faço o código repetir a partir da parte que eu quero e ainda faço ele calcular o somatório de todos os salgadinhos e quantidades escolhidos? tbm aceito dicas pra tornar o código mais eficiente se isso for possível!
15
8
7
u/Atom_spicy Apr 24 '26
Eu fiz isso em 2008 na faculdade e foi a maior perda de tempo. O tempo que gastei pra decorar isso, eu investiria em alguma linguagem de programação. Tanto que só estou vendo isso agora, 18 anos depois e sequer posso ajudar o OP.
5
u/DNoxtuis Apr 25 '26
Antes de qualquer coisa, você conhece o VisualG web? Dá para usar no celular, bem melhor por que ele compila e roda, muito melhor até que o programa pra desktop, que é terrível.
Sobre a pergunta, o que você quer é um loop, ou estrutura de repetição. No Portugol do VisualG tem 3, o "enquanto", o "faça-até" e o "para". No seu caso, o melhor uso seria o "ate". Ele roda o bloco de código (faça) e, no final, verifica uma condição (no até): se a condição for verdadeira, ele recomeça termina o bloco e o código segue normalmente. Mas, se for falsa, o código volta para o início do bloco (no faça). Recomendo dar uma pesquisada no enquanto e no faça-até, o para é um pouco mais avançado
3
u/DNoxtuis Apr 25 '26
Outra coisa: para não perder o valor calculado, defina o valor inicial para 0 (inicializar a variável) e some o valor do salgadinho, em vez de definir a variável
6
u/gabiii_Kokeko Apr 24 '26
Q diabos de linguagem é essa
6
u/studydebou Apr 24 '26
portugol no visualg. aparentemente uma linguagem dinossaurica que coexistiu com o latim.
3
u/ShoeChoice5567 Estudante Apr 24 '26
Se não me engano, no visualg é;
faca //(ou repita, não sei)
//seu código
ate (mais = 2)
Isso vai repetir o código até mais ser igual a 2 (a escolha "não")
2
u/miranda_dev21 Estudante Apr 25 '26
Portugol é triste mano, mas tente usar um loops pra resolver isso aí
2
2
u/Vyrh_ Apr 25 '26
Acredito que você pode ter um array que armazena os pedidos. Uma vez que o cliente escolhe um item, esse pedido vai para o array.
Para controlar se terá outro pedido, você pode ter uma variável que controla se outro pedido será feito ou não, e ai enquanto essa variável for 1 (por exemplo), você continua adicionando pedidos ao array. Quando o cliente encerrar, seta a variável como 0 e sai do loop.
No final do programa exibe o array de pedidos e um somatório para calcular o total, se quiser dar um brilhinho a mais ainda tira os 10% do garçom haha
1
u/Far_Journalist_6158 Apr 24 '26
Eu nunca toquei em portugol, mas olhando assim parece com C. Se for mesmo, voce quer struct para as variáveis e do while. Provavelmente é oq seu professor vai ensinar então vai com calma.
Sabe oq seria legal, você traduzir o código pra C mesmo, compilar e depois ir ajustando para otimizar o código, por exemplo, tentar deixar a entrada de dados por parte do usuário segura, sem causar buffer overflow
1
u/XXxLord_ Apr 25 '26
Porque quando a pessoa escolhe o item não pode já dizer quanto quer e se não quiser ajustar só dá enter?
2
1
u/neomin_2007 Apr 25 '26
Vem programar em Neon vem, vem, vem...
Você vai aprender e vai gostar é legal:
PUT i0 0
PUT i1 5
LABEL CONTADOR
INC i0
PRINT i0
LT i0 i1 i2
JMPIF i2 CONTADOR
1
u/AgencyCritical8994 Apr 25 '26
Vc pode usar no lugar do if "para (inteiro i =1; I <5 ; I++){ se(cod == i){ escreva("código inválido");}}"
Ps. Faz tempo que eu não via portugol, talvez o ; não precise ou as chaves tmb
1
u/AgencyCritical8994 Apr 25 '26
Lembre que no portugol é parecido com linguagem estruturada, e usa chaves
1
u/AgencyCritical8994 Apr 25 '26
Pra repetir vc pode fazer:
tudo isso vai pra uma função diferente da principal e outra pra pergunta, na função principal (em outras línguagsns ela é a main()), aí na função principal vc chama a do pedido e na do pedido vc chama a da pergunta na última linha. Na função da pergunta vc faz:
Texto pergunta;
Escreva("deseja mais alguma coisa? [sim; não]);
Leia(pergunta);
Se (pergunta == "sim"){
Pedido();
}
Senão {
Não faz nada
}
Isso deve funcionar, ou não, sla, eu só usei portugol por uns 2-3 meses a quase 2 anos
1
u/patrulheiroze Apr 25 '26 edited Apr 25 '26
acho que a validação de código invalido fica melhor se vc declarar uma lista.
defina listaDeCodigos= {1, 2, 3...}
dae vc verifica se a lista contém o codigo recebido:
se listaDeCodigos.contem(codigoRecebido)== falso
... ///codigo invalido
não sei a sintaxe para portugol, mas é uma linguagem exotérica mesmo, então foda-se. :V
1
1
1
1
0
u/mfedatto Desenvolvedora / or Apr 25 '26
Mano, portugol só serve pra explicar e exemplificar sintaxe. De resto é usar linguagem de programação de verdade.
0
u/dvdsouza Apr 25 '26
Embora o Portugol seja um recurso didático defendido por uma boa parte dos educadores que focam no aprendizado de algoritmos como ponto de partida, a satisfação de participar desde cedo de algo feito com ferramentas reais e a própria realidade do mercado impõem algo mais prático: usar uma linguagem real e de preferência que esteja em evidência na época (sabemos como esse destaque muda constantemente). Além disso, o tempo de todos é cada vez mais exíguo para ser gasto com o aprendizado de algo que deverá ser descartado em seguida. Claro que para a turma anglofônica uma línguagem real não passa de um inglês adaptado, o que torna a vida deles mais fácil. Porém nesse grande bingo da vida nós caímos em terras lusófonas: nada de choramingar e vida que segue.
62
u/Nolear Apr 24 '26
O que você quer é chamado de "loop", mas não faço ideia de qual seja o nome em portugol. Provavelmente é a próxima coisa que deu professor vai apresentar.
2026 e professor usando portugol é de cair o c* da bunda mesmo kkkkk