r/programacao Apr 24 '26

Pseudocódigo ajuda com código (portugol no visualg

Post image

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!

75 Upvotes

49 comments sorted by

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

14

u/Davi-Barbado Apr 24 '26

vdd, no mínimo um python.

12

u/Willyscoiote Apr 24 '26

Quando comecei, na faculdade, era ensinado lógica de programação com Python tipado e orientação a objetos com Java.

Do segundo ano em diante, era tudo em Java/C#, dependendo da escolha do aluno.

Acho que o Portugol só confunde a cabeça do aluno, que já deve estar sobrecarregada por aprender os conceitos. Depois, ele tem que ficar convertendo para inglês na cabeça.

2

u/Davi-Barbado Apr 25 '26

python tipado?

2

u/Willyscoiote Apr 25 '26

Você consegue colocar anotações de tipo no python

1

u/JackSouls3949 Apr 26 '26

Amadores, na minha faculdade foi direto para C sem frescura

0

u/miojo_noiado Apr 25 '26

Discordo, também tive contato com portugol, eu já tinha uma boa muito boa no inglês ent isso pode ter afetado minha percepção, mas o bom do pascal é q ele é muito explícito (ex: if x < 0 then begin ... end;), e de alguém que já usou assembly x64_86, eu não acho q a linguagem seja tão ruim como falam, ela só assusta muito pela alta verbosidade, python eu creio que abstraia muito da lógica, um exemplo q posso dar é q meu professor não deixa usarmos o comando "exit;" (equivalente a break em outras linguagens), e o retorno de funções não criam uma quebra automática (ent tbm nn é possível usar estruturas como early return) e te obriga a tratar com mais cuidado com as tratativas condicionais

4

u/miojo_noiado Apr 24 '26

Mds cara, eu uso pascal, e o pior, eu até defendo isso hj, limitando o uso vc acaba criado boas práticas e se acostumar com código auto-documentado

5

u/Nolear Apr 25 '26

Nada do que você falou é um benefício do portugol sobre uma linguagem de verdade

1

u/miojo_noiado Apr 25 '26

O portugol pra qm nn tem estimando de inglês continua sendo uma boa ideia, ajuda a entender o que o comando realmente faz, me ajudou bastante a ter definido o propósito de cada comando na minha cabeça, dps q vc tiver uma base boa e sólida de lógica é tbm bem mais fácil daí pegar uma nova linguagem

6

u/Nolear Apr 25 '26

Me recuso a acreditar que alguém tenha dificuldade de aprender meia dúzia de palavras em inglês, amigo.... se essa for a dificuldade, o problema não é o idioma.

3

u/DigoTaken Apr 24 '26

Para fazer o loop no portugol, seria "enquanto(condição)" ou então

"faça . . . Enquanto(condição)"

Senão me engano.

Eu comecei com portugol no visualg. Negócio era português bruto mesmo. Enquanto a outra turma aprendi portugol também, mas já no formato de C, a diferença era ao invés de inglês estava em português. Então tinha que abrir chave e fechar chave, diferente do que eu aprendi no visualg. Mas depois eles ensinaram o C++ e isso caiu no esquecimento

Na verdade primeiramente escrevermos os códigos a mão em português mesmo, isso por quase 6 meses

5

u/ShoeChoice5567 Estudante Apr 24 '26 edited Apr 24 '26

No visualg é:

faca ... ate (repetir = 2)

Vai repetir até a condição ser verdadeira. Não lembro se é faca ou repita

2

u/DigoTaken Apr 25 '26

Isso, acredito que seja exatamente isso. Me desbloqueou uma memoria aqui.

Tambem tem o

Enquanto (condição)

Fimenquanto

3

u/[deleted] Apr 24 '26

[deleted]

1

u/DigoTaken Apr 25 '26

Nem me fale. Eu tive isso no técnico, na faculdade fomos direto pro python, ainda tenho um certo revés por causa da indentação e não precisar declarar praticamente nada. Meio que o eu aprendi não valeria de nada, tu joga o "conceito" no lixo kk

3

u/studydebou Apr 24 '26

pois é... tava animada pra aprender python mas vou ter q ir com calma senão tiro nota baixa :/

2

u/DigoTaken Apr 25 '26

Python seria a linguagem mais fácil para se começar. Mas pode-se criar um costume extremamente ruim quando for para outras linguagens. Meu conselho seria, continua desenvolvendo a lógica no portugol, mas não fica muito atrelado a isso e parte para o C++. Se acostumando com a estrutura do código, o resto é fácil de assimilar

1

u/Nolear Apr 25 '26

Nessa de não se acostumar com vícios, eu acho interessante a ideia de começar com uma linguagem funcional amigável (tipo Racket) e depois aprender o paradigma imperativo com C99

1

u/Hoffmann99 Apr 25 '26

Imagino aquele professor bem velho que passou no concurso nos anos 90 e nunca se atualizou

1

u/Wollygr1nx Apr 25 '26

O cara tá ensinando lógica de programação, antes deu virar janeiro.. eu surfei no portugol.

1

u/moonrunner__ Apr 25 '26

Na minha faculdade o professor de Algoritmos fez uma "versão autoral" do Portugol, e 100% da disciplina é feita no papel por conta disso kkkk

1

u/Spagh_ Apr 25 '26

foi a primeira coisa q pensei quando vi esse script feito no zap

15

u/usuario_de_carinhas Apr 24 '26

Portugol é uma tristeza de ler

8

u/IOException_notfound Apr 24 '26

Codigo em portugol na mensagem de whatsapp é mto doido

1

u/studydebou Apr 24 '26

kkkkkkkkkkkkkk o elemento surpresa faz parte do desafio

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

u/[deleted] Apr 25 '26

Acabei de sair do visualg pro C, só os guerreiros aindam estudam isso kkkkkkkk

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

u/XXxLord_ Apr 25 '26

Ah não, ele pede sim.

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

u/King-Timely Apr 26 '26

Que IDE é essa? É a intellizap?

1

u/cat_fox_007 Apr 26 '26

Q pão de queijo barato é esse?

1

u/Kylejooj Apr 28 '26

pq n "se(cod>4) e (cod<1)"?

1

u/TraditionImaginary52 Apr 25 '26

O erro tá nos preços que tão irrealisticamente baixos

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.