Algoritmos Aula 03: Fluxograma e problemas de lógica de programação, Variáveis, Operadores e Tipos de Dados

fluxograma vazio


Fluxogramas em problemas de lógica de programação

    Digamos que eu necessito criar um programa que permita fornecer duas notas de provas e calcular a média final de um aluno com base nessas duas notas .  Como seria o fluxograma para representar as instruções necessárias para esse programa?

     Com o que temos de conteúdo até aqui podemos facilmente entender que necessitamos entrar com as duas notas de provas para que seja calculada a média, mas como essas notas são armazenadas? Como é escrito tecnicamente o cálculo da média? Para abordamos isso devemos aprofundar em alguns conceitos que serão usados na confecção dos fluxogramas e algoritmos em pseudocódigo.

Variáveis

   Em programação, as variáveis são entidades que servem para armazenar provisoriamente uma informação em memória. No nosso problema as notas de prova e a média final seriam exemplos de variáveis. 

    Para utilizá-las em muitas linguagens elas precisam ser declaradas no início de um programa, através de uma instrução que especifique o tipo de dados que ela conterá e o seu nome de identificação.

    A maioria das linguagens de programação determinam regras para a nomenclatura de variáveis, mas para facilitar a compreensão do estudante iniciante, iremos generalizar  que:

  • Nomes de variáveis devem iniciar com letras;
  • Não devem conter símbolos ou espaços em branco
  • Também não devem conter acentos ou cedilhas (ç)
  • Devem ser nomes objetivos que indiquem a natureza da sua informação
  • Podem conter números, letras maiúsculas e underline (_).

    Cabe esclarecer que existem detalhes e convenções que estamos omitindo, mas retornaremos ao assunto em momento mais oportuno. 

    Sendo assim, no nosso problema de cálculo de média, poderíamos utilizar como nomes de variáveis Nota1, Nota2 e MediaFinal. No entanto também poderíamos utilizar N1, N2 e MF, que também seriam nomes válidos, pois respeitam as regras passadas.

    Profissionais de desenvolvimento costumam ser econômicos e utilizam nomes de variáveis curtos, mas como a finalidade desse blog é facilitar o entendimento, utilizaremos os nomes mais óbvios possíveis. Como as notas das provas são entradas de informação, precisam ser representadas com paralelogramos.

Tipos de dados

    Outra questão a ser vista é o tipo do dado a ser armazenado pela variável, isto é, se informação será numérica, alfanumérica ou lógica. Para o Pseudocódigo uma variável numérica poderá ser do tipo inteiro ou real quando aceita números decimais. 

  Se a informação for textual poderá ser do tipo caracter para armazenar uma letra ou cadeia se armazenar uma sequência de caracteres. Se o dado for do tipo Booleano será chamado de logico e poderá armazenar verdadeiro ou falso.

    Ai surge uma dúvida: Como diferenciar o conteúdo booleano verdadeiro da cadeia de caracteres com a palavra verdadeiro? Simples, para o pseudocódigo a informações do tipo cadeia deverão ser especificadas entre aspas. Assim verdadeiro sem aspas é o dado booleano e "verdadeiro" entre aspas é o dado do tipo cadeia.

    Um detalhe importante é que ao especificar o valor de uma variável do tipo caracter, devemos utilizar o 'apóstrofe' no lugar das "aspas". 

    Com relação aos números reais, ao invés de vírgulas a maioria das linguagens especifica os decimais através de pontos, por exemplo, escrevemos 7.5 no lugar de 7,5 ou 2.0 no lugar de 2,0. Usamos o zero a esquerda do ponto para diferenciar o 2.0 do tipo real do 2 do tipo inteiro.

Operadores

    Para executar cálculos e processamento matemático, a maioria das linguagens de programação e o pseudocódigo utilizam os operadores já conhecidos das operações aritméticas e comparativas da matemática, porém temos algumas pequenas adaptações e introdução de operadores novos. Assim para o Pseudocódigo em Portugol utilizaremos nesse momento a seguinte tabela de operadores:

Tabela de Operadores Básicos do Portugol
Em tempo: O operador diferente é representado por !=

    Sendo assim, para o cálculo do nosso problema podemos dizer que a variável para média tem a seguinte atribuição: MediaFinal = (Nota1+Nota2)/2 

    Como se trata de um processamento matemático, essa instrução é passada no fluxograma com a figura do retângulo. No entanto, o resultado do cálculo de média é uma saída de informação que precisa ser mostrada, por isso o uso da figura de saída de dados ou documento. Assim teremos no final o seguinte fluxograma:

Fluxograma para Cálculo da Média de duas notas
Fluxograma para Cálculo da Média de duas notas

Melhorando o programa

    Imagine que agora você queira mostrar como saída a cadeia "aprovado" se a Média for maior ou igual a 5 e "reprovado" se a média for menor que 5. Como ficaria o fluxograma? 

    Nesse caso bastaria colocar uma figura de decisão onde seria analisada uma condição: Se a média final for maior ou igual a 5, segue o fluxo para a saída "aprovado". Caso contrário, segue o fluxo para a saída "reprovado".  Assim temos o seguinte fluxograma:

Fluxograma melhorado para o cálculo da média
Fluxograma melhorado para o cálculo da média

Validação de dados

    Nesse problema do cálculo da média não especificamos qual seria o intervalo válido de uma nota de prova porque o senso comum diz que uma nota é válida se está no intervalo entre 0 e 10, mas o que aconteceria no fluxograma se o usuário entrasse com uma nota de prova igual a 20? Ou ainda, se o usuário digitasse a palavra "Dez" como nota? Provavelmente teríamos um erro.

    Para evitar esse tipo de situação as entradas de dados devem ser validadas para que o dado possa ser processado ou ter uma estratégia para o chamado tratamento de erros que veremos em linguagens de programação. 

Operadores Lógicos

    No nosso problema de média, para uma nota ser válida precisa satisfazer duas condições: Ser maior ou igual a 0 e menor ou igual a 10. Nessa frase utilizamos a conjunção "e" para amarrar as duas condições. Em pseudocódigo, quando duas condições precisam ser válidas utilizamos o operador lógico e, sem aspas. Também temos o operador lógico ou e o operador lógico nao.

Inserindo a validação no fluxograma

    Uma forma de aprimorar o fluxograma seria validar a nota 1, testando se está dentro do intervalo válido e só então pedir a nota 2 que também deveria ser validada. Assim poderíamos ter o seguinte fluxograma:

Fluxograma para cálculo de média com validação da nota
Fluxograma para cálculo de média com validação da nota

    Cabe esclarecer que esse fluxograma só contempla a validação do intervalo da nota e não valida se os dados são numéricos ou em cadeia, coisa que veremos durante os cursos de programação. 

    Repare também que o processo de entrada de notas e validação tornou o fluxograma repetitivo aumentando o tamanho do desenho. Com esse raciocínio o fluxograma ficaria cada vez maior conforme aumentasse o número de notas. 

    Felizmente existem outras estratégias que permitem tornar o processo mais eficiente, mas prefiro explicar isso na próxima aula para não estender o texto. 


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.