![]() |
Fluxograma com laço com número de repetições indefinido |
Laços enquanto() com contadores
Na aula passada, basicamente fizemos algo parecido com o fluxograma da imagem acima, isto é, promovemos um laço que, dependendo da resposta do usuário, ao final do processamento podia ser repetido ou encerrado. Está lembrado?
Também te propus um desafio para incluir o nome do aluno antes das notas e depois dar como saída "Fulano foi Aprovado" ou "Fulano foi Reprovado". Bom agora está na hora de dar uma solução para o desafio.
Veja o programa abaixo com as alterações necessárias, só que desta vez eu vou indentar o código para ficar mais legível o fluxo de dados. Sugiro entrar no Portugol WebStudio, clicar em Novo Arquivo e copiar e colar o código abaixo na tela. Renomeie o título para Média com Laço. Já comentamos em outras aulas como se faz isso. Rode algumas vezes para testar o código.
- programa {
- funcao inicio () {
- caracter resposta
- inteiro frequencia
- cadeia nome
- real nota1,nota2,MediaFinal
- enquanto(verdadeiro){
- escreva("\nDigite a nome: ")
- leia(nome)
- escreva("Digite a nota1: ")
- leia(nota1)
- escreva("Digite a nota2: ")
- leia(nota2)
- escreva("Digite a Frequência: ")
- leia(frequencia)
- MediaFinal=(nota1+nota2)/2
- escreva("A média final: "+MediaFinal)
- se (MediaFinal>=5 e frequencia>=75){
- escreva("\n"+nome+" foi Aprovado")
- }
- senao{
- escreva("\n"+nome+" foi Reprovado")
- }
- escreva("\nDigite s para sair ou apenas ENTER para continuar: ")
- leia(resposta)
- se(resposta=='s' ou resposta=='S'){
- pare
- }
- }
- }
- }
Se você rodou algumas vezes, viu que ele agora pede o nome do aluno, pede as notas, pede a frequência, calcula a média e depois diz se o aluno foi aprovado ou reprovado. Quantos alunos você inseriu? E se o eu pedisse pra você contar quantos alunos foram inseridos e mostrar no final essa quantidade? Pra isso você precisaria de contadores.
![]() |
Laço com contador |
- programa {
- funcao inicio () {
- caracter resposta
- inteiro frequencia, contador
- contador=0
- cadeia nome
- real nota1,nota2,MediaFinal
- enquanto(verdadeiro){
- contador=contador+1
- escreva("\nDigite a nome: ")
- leia(nome)
- escreva("Digite a nota1: ")
- leia(nota1)
- escreva("Digite a nota2: ")
- leia(nota2)
- escreva("Digite a Frequência: ")
- leia(frequencia)
- MediaFinal=(nota1+nota2)/2
- escreva("A média final: "+MediaFinal)
- se (MediaFinal>=5 e frequencia>=75){
- escreva("\n"+nome+" foi Aprovado")
- }
- senao{
- escreva("\n"+nome+" foi Reprovado")
- }
- escreva("\nDigite s para sair ou apenas ENTER para continuar: ")
- leia(resposta)
- se(resposta=='s' ou resposta=='S'){
- pare
- }
- }
- escreva("\nNúmero total de alunos: "+contador)
- }
- }
Referências
MANZANO, J. A. N. G. Portugol Studio: Programação de Computadores em Português. São Paulo: Propes Vivens, 2017. 86p
NOSCHANG, LUIZ et all. Portugol Studio: Uma IDE para Iniciantes em Programação. In: XXXIV Congresso da Sociedade Brasileira de Computação - CSBC, 34º, 2014, Brasília, Anais Eletrônicos do Congresso da Sociedade Brasileira de Computação, Brasília, 2014. p. 1287 - 1296. Disponível em: <https://sol.sbc.org.br/index.php/wei/article/view/10954/10824>. Acesso em: 4 ago. 2024.
PORTUGOL WEBSTUDIO. Ajuda. Disponível em: <https://portugol.dev/> Acesso em 05 ago. 2024.
PORTUGOL WEBSTUDIO. Dúvidas e Perguntas. Disponível em: <https://portugol.dev/> Acesso em 05 ago. 2024.