Olá, estudante! Na lição anterior, exploramos em profundidade o conceito de algoritmos, compreendendo como eles funcionam e analisando seus principais tipos: descrição narrativa, fluxograma e pseudocódigo. Descobrimos como esses métodos são essenciais para planejar e resolver problemas de maneira estruturada e eficiente.
Nesta lição, damos mais um passo nesta jornada do conhecimento. Vamos nos aprofundar no conceito de variáveis, um dos elementos fundamentais para a programação e o desenvolvimento de softwares, visto que desempenham um papel essencial na personalização e na automação de tarefas dentro de algoritmos.
Prepare-se para mergulhar nesse universo fascinante e começar a dar mais vida aos seus algoritmos!
Escrever algoritmos, independentemente do tipo, exige que pensemos em cenários flexíveis do ponto de vista de interação com o usuário. Isso significa que, muitas vezes, precisamos receber e tratar valores que representam atributos de entidades do mundo real. Em outras palavras, os algoritmos precisam tratar dados que podem variar em cada situação, dependendo da sua aplicação.
Imagine, agora, um cenário em que toda essa variação precisasse ser tratada manualmente no código. Seria necessário prever cada possível valor ou condição, o que tornaria o algoritmo extremamente complexo, trabalhoso e, em muitos casos, inviável. É justamente para lidar com essa flexibilidade que existe o conceito de variáveis!
As variáveis são elementos fundamentais que permitem armazenar, modificar e reutilizar dados de maneira dinâmica em um algoritmo, ajudando-nos a transformar problemas rígidos e engessados em soluções adaptáveis e práticas. Assim, vamos explorar como as variáveis podem simplificar o desenvolvimento de algoritmos?
Imagine que você foi incluído em uma equipe de desenvolvedores. Essa equipe tem o hábito de validar os algoritmos dos seus códigos, utilizando a variação do Portugol, o VisuAlg – que estudamos na aula anterior. Nesse contexto, você precisa criar um algoritmo capaz de receber inputs do usuário e guardar em algum lugar da memória do computador.
Pense que seu programa solicita ao usuário informações, como nome, telefone, idade e escolaridade. Como você acha que um algoritmo pode lidar com esses dados fornecidos pelo usuário? Tire alguns segundos para pensar em uma solução para essa situação.
A resposta para esse desafio está no conceito de variáveis, visto que elas permitem armazenar esses atributos de forma organizada em pequenos espaços reservados na memória do computador, facilitando o processamento e a manipulação dessas informações ao longo da execução do programa.
Esse cenário demonstra claramente como e porque utilizamos variáveis no desenvolvimento de sistemas. Elas são fundamentais para lidar com dados dinâmicos e garantir que programas possam interagir de maneira flexível e funcional com os usuários. Sem variáveis, seria praticamente impossível criar algoritmos capazes de atender às diversas demandas do mundo real!
Segundo Souza (2014), no contexto dos algoritmos, utilizamos as variáveis para representar valores desconhecidos ou mesmo conhecidos, mas que não sabemos quando serão necessários. Esses valores são fundamentais para resolver um problema e poderão ser alterados conforme a situação. Assim, dizemos que as variáveis armazenam valores (dados) temporariamente.
Quando um algoritmo é transcrito para uma linguagem de programação específica, as variáveis também têm a função de armazenar temporariamente dados que serão utilizados durante o processamento para a resolução do problema em questão. Vale destacar que um dado é classificado como variável quando pode ser alterado em algum momento, ou seja, durante a execução do algoritmo em que é utilizado, o valor do dado sofre alteração ou o dado é dependente da execução em certo instante ou circunstância.
No nosso cotidiano, exemplos de variáveis são fáceis de identificar: a cotação do dólar, o peso de uma pessoa e o índice de inflação. Esses dados estão em constante mudança e ilustram bem como as variáveis são fundamentais tanto em algoritmos quanto na vida prática (Souza, 2014).
É fundamental entender que as variáveis são armazenadas temporariamente na memória RAM. Para facilitar a compreensão, podemos fazer uma analogia com um armário cheio de gavetas. Imagine um grande armário em que cada gaveta é utilizada para guardar objetos variados. Esses objetos podem ser trocados ou movidos sempre que necessário. Nessa analogia, o armário representa a memória RAM, enquanto as gavetas correspondem às variáveis.
As variáveis são definidas ao nomearmos cada gaveta e especificarmos o tipo de material ou objeto que pode ser armazenado nela. Esse processo garante organização e controle sobre os dados que o algoritmo manipula. A seguir, observe um exemplo prático de definição de variável:
(IDENTIFICADOR_DA_VARIAVEL) ( : ) (TIPO_DA_VARIAVEL)
Em que:
O IDENTIFICADOR_DA_VARIAVEL é o nome que atribuímos à variável com o intuito de identificá-la.
O caractere dois-pontos “: ” é utilizado como separador de atribuição, ou seja, separa o identificador do tipo da variável.
O TIPO_DA_VARIAVEL define qual é o tipo de dados que serão armazenados, podendo ser inteiro, real, caractere, ou lógico.
Se ficou interessado nos tipos de variáveis, recomendo a leitura do artigo disponível no Github.
Souza (2014) recomenda, ainda, evitar o uso de mais de uma variável com o mesmo identificador. Isso porque, nesse caso, o computador não saberia a qual variável se referir, podendo causar erros ou resultados inesperados durante a execução do programa. Podemos imaginar isso como um cenário em que duas gavetas de um armário possuem a mesma etiqueta. Nesse caso, não saberíamos qual delas abrir para encontrar o objeto desejado.
Para ilustrar, seguem alguns exemplos de definição de variáveis com diferentes tipos de dados:
N: inteiro;
idade, maximo, minimo: inteiro;
opcao: caractere;
nome, endereco, data: caractere;
media: real; e
resposta: lógico.
Esses exemplos mostram como as variáveis podem ser organizadas e nomeadas de forma clara, respeitando as boas práticas de programação. Cada identificador único e seu respectivo tipo garantem que o algoritmo funcione corretamente e de maneira eficiente.
Vamos aplicar os conceitos aprendidos até aqui? Trazendo para o mundo real o exemplo apresentado no case, vamos presumir que seu algoritmo precisa solicitar ao usuário que informe seu nome, telefone, idade e escolaridade. Para tanto, utilize o VisuAlg – link disponível aqui.
Vamos à prática!
algoritmo "Cadastro de Aluno"
var
nome: caractere
idade: inteiro
aceita: logico
nota: real
inicio
// Solicita os dados ao usuário
escreval("Digite seu nome: ")
leia(nome)
escreval("Digite sua idade: ")
leia(idade)
escreval("Aceita os termos de uso? (Digite VERDADEIRO ou FALSO): ")
leia(aceita)
escreval("Digite sua nota: ")
leia(nota)
// Exibe mensagem final com os dados
escreval("Seja bem vindo ", nome, ".")
escreval("Como se sente tendo ", idade, " anos?")
escreval("Sua matrícula está ativa? ", aceita, ".")
escreval("Sua nota foi ", nota, " e você foi admitido no curso.")
fimalgoritmo
Vamos entender o que faz o código anterior?
Declaração e definição do algoritmo:
algoritmo "Cadastro de Aluno"
Define o início do programa, com o nome Cadastro de Aluno.
Declaração de variáveis:
var
Inicia o bloco de declaração de variáveis, em que são definidos os espaços de memória que o programa usará.
nome: caractere
Declara a variável nome, do tipo caractere, para armazenar textos (como o nome do aluno).
idade: inteiro
Declara a variável idade, do tipo inteiro, para armazenar a idade do aluno como um número.
aceita: logico
Declara a variável aceita, do tipo lógico, para armazenar valores booleanos (VERDADEIRO ou FALSO), indicando se o aluno aceita os termos.
nota: real
Declara a variável nota, do tipo real, para armazenar a nota do aluno como um número decimal.
Bloco principal do programa:
inicio
Indica o início do bloco principal em que os comandos serão executados.
Solicitação de dados ao usuário:
escreval("Digite seu nome: ")
Exibe a mensagem “Digite seu nome: ” no console, pedindo que o usuário informe seu nome.
leia(nome)
Lê a entrada do usuário e armazena o valor digitado na variável nome.
escreval("Digite sua idade: ")
Exibe a mensagem "Digite sua idade: " no console, solicitando a idade do usuário.
leia(idade)
Lê a entrada do usuário e armazena o valor digitado na variável idade.
escreval("Aceita os termos de uso? (Digite VERDADEIRO ou FALSO): ")
Exibe a mensagem "Aceita os termos de uso? (Digite VERDADEIRO ou FALSO): " no console, solicitando uma resposta lógica.
leia(aceita)
Lê a entrada do usuário (VERDADEIRO ou FALSO) e armazena na variável aceita.
escreval("Digite sua nota: ")
Exibe a mensagem "Digite sua nota: " no console, pedindo ao usuário que informe a nota.
leia(nota)
Lê a entrada do usuário (um número decimal) e armazena na variável nota.
Exibição das informações do usuário:
escreval("Seja bem vindo ", nome, ".")
Exibe no console uma saudação personalizada com o nome do usuário, por exemplo: "Seja bem-vindo João."
escreval("Como se sente tendo ", idade, " anos?")
Exibe no console uma mensagem perguntando como o usuário se sente com sua idade, por exemplo: "Como se sente tendo 20 anos?"
escreval("Sua matrícula está ativa? ", aceita, ".")
Exibe no console o status da aceitação dos termos, por exemplo: "Sua matrícula está ativa? VERDADEIRO."
escreval("Sua nota foi ", nota, " e você foi admitido no curso.")
Exibe no console a nota do usuário e uma mensagem afirmando que ele foi admitido no curso, por exemplo: "Sua nota foi 9.5 e você foi admitido no curso."
Encerramento do programa:
fimalgoritmo
Indica o fim do algoritmo, encerrando a execução.
Agora que você já conhece a estrutura de um algoritmo e foi devidamente apresentado ao conceito de variáveis, observe, na Figura 1, um exemplo da estrutura de um algoritmo do tipo pseudocódigo aplicado ao Visualg:
Conseguimos chegar ao final da lição com um código em VISUALG, mostrando a utilização de variáveis. Com isso, você já tem uma bagagem sobre um dos conceitos mais importantes em programação. Um recurso que agregará na qualidade das soluções que você desenvolverá no decorrer da sua jornada, uma vez que compreender e aplicar variáveis em seu código, lhe tornará mais organizado, claro, flexível e lhe permitirá reaproveitar os dados de maneira otimizada.
Parabéns por avançar mais uma etapa! Continue praticando e explorando esses conceitos, pois eles são o alicerce para sua futura atuação!
SOUZA, S. G. (org.). Lógica de programação algorítmica. São Paulo, SP: Pearson, 2014. E-book.