Fluxogramas com Laços de repetição
Examine o fluxograma acima. O que temos de diferente? Nele vemos que, após a entrada de dados é feito um processamento e depois disso é analisada uma condição. Se houver a necessidade de entrar com mais dados, ele volta ao ponto de entrada de dados e repete o processamento.
Novamente é analisada a condição e se ainda houver a necessidade de entrar com mais dados, ele mais uma vez, repete o ponto de entrada de dados, depois novamente o processamento e assim INDEFINIDAMENTE enquanto a condição for satisfeita.
O que estamos vendo é um exemplo de laço de repetição, isto é, um conjunto de instruções que são executadas repetidamente enquanto uma dada condição for válida. Neste caso, o número de repetições é indefinido porque não sabemos quantas vezes deverá ser repetido.
Limitando o número de repetições
Examine agora o fluxograma abaixo e tente estabelecer diferenças entre o primeiro:
Repare que desta vez o número de repetições já é algo pré-estabelecido, pois especificamos o número de entrada de dados que serão necessárias. Pelo fluxograma, após o processamento teremos que estabelecer uma forma de contar o número de vezes que o laço foi repetido e, se o número de repetições for menor que o número de entradas de dados, ele retornará ao ponto para solicitar uma nova entrada.
Contadores
Contador é o nome técnico do artifício para contar o número de vezes que o laço é repetido. Ele pode ser feito através de uma variável que pode começar com o valor 0, por exemplo, e a cada iteração do laço sofre um incremento, isto é, seu valor é aumentado em uma unidade. Isso ficará mais claro adiante com um exemplo.
Fluxograma da média com laço de repetição
Digamos que eu queira refazer o fluxograma para cálculo de média de forma que ele seja válido não importa o número de notas que o aluno tenha. Eu devo utilizar um fluxograma com um laço de repetição de maneira que o número de repetições seja indefinido, como o primeiro exemplo dessa página.
Porém, como será o cálculo da média aritmética? De forma genérica, uma média aritmética é a somatória dos elementos dividida pelo número de elementos, isto é:
Média = (x1+x2+x3+ ... + xn) / n
Onde n é número de elementos que no nosso caso é o número de notas
Isso nos traz dois problemas para o fluxograma: Eu vou precisar contar o número de elementos através de um contador e também armazenar a somatória da notas cada vez que uma nota é acrescentada.
Como já dissemos, um contador é uma variável que começa geralmente com um valor e cada laço, deverá ser aumentada. Para isso podemos usar uma fórmula como:
contador = contador + 1
Essa fórmula está dizendo que o contador será o seu valor anterior aumentado em uma unidade.
Já a somatória também precisa ser uma variável que geralmente começa com o valor zero e a cada laço será aumentada com a entrada a nota. Para isso podemos usar uma fórmula como:
somatoria = somatoria + nota
Essa fórmula está dizendo que a somatória será o seu valor anterior acrescentada do valor da nota.
Então, o algoritmo seria começar com os valores iniciais da somatória e do contador, solicitar uma nota, agregar o valor da nota na somatória, incrementar o contador, testar a condição se devemos ou não acrescentar outra nota e, em caso afirmativo, voltar ao ponto de entrada de notas.
Esse laço se repetiria indefinidamente até que ao testar a condição, diga-se ao programa que ele NÃO deve acrescentar outra nota, para então processarmos o valor da média com a seguinte fórmula:
MediaFinal=somatoria/contador
Só então haveria a saída da média. Assim teremos o seguinte fluxograma:
Cabe esclarecer que essa não é a única solução possível. Alguns vão preferir inciar o contador com o valor 1 e posicionar o seu incremento após o teste da condição. Assim teríamos:
Devo dizer também que optei por não incluir uma validação das notas, nem uma saída de resultados como "aprovado" ou "reprovado" para não complicar mais. O que não impede o aluno de tentar incluí-las como exercício.
Próxima Aula Aula Anterior
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.