Entradas e Variáveis

Nessa aula vamos aprender como utilizar variáveis e como fazer a leitura de dados fornecidos como entrada. Vamos começar introduzindo o conceito de variável, para isso, suponha a seguinte situação:

Digamos que você tem uma cômoda com 3 gavetas e alguns cubos mágicos, então você decide guardar 3 cubos na primeira gaveta, 2 na segunda e 5 na terceira. Depois disso você tira 1 de todas as gavetas e fala em voz alta quantos cubos restaram em cada uma.

Chame de g1 = 1º gaveta, g2 = 2º gaveta e g3 = 3º gaveta.

Se fossemos listar os seus movimentos, teríamos:

Primeiramente, todas as gavetas estão vazias:

g1 = 0

g2 = 0

g3 = 0

Então, você coloca 3 cubos na primeira gaveta, 2 na segunda e 5 na terceira

g1 = 3

g2 = 2

g3 = 5

Por último, retira-se um cubo de todas as gavetas.

g1 = g1 – 1 ( 3 – 1 = 2 )

g2 = g2 – 1 ( 2 – 1 = 1 )

g3 = g3 – 1 ( 5 – 1 = 4 )

Portanto, você abriria g1, g2 e g3 então falaria, respectivamente, 2, 1 e 4 cubos.

Agora vamos fazer a seguinte analogia, a memória do computador pode ser tratada como uma cômoda que falamos anteriormente, as variáveis podem ser as gavetas e que os valores podem ser os cubos. A partir disso, podemos definir uma variável como uma parte da memória que armazena um determinado valor.

No exemplo anterior tratamos as variáveis como gavetas, e essas ocupam uma determinada quantidade espaço na cômoda (memória do computador). E o mesmo acontece ao declarar uma variável, o compilador aloca um espaço da memória e lhe atribui o mesmo nome da variável, no exemplo as variáveis são g1, g2 e g3, contudo a quantidade de memória que será reservada e a interpretação que o compilador fará daquela variável depende do tipo de dado que ela está armazenando (inteiro, caractere, booleano, ponto flutuante, etc).

Os tipos de dados podem ser divididos em dois grupos:

  • Dados Primitivos (Fundamentais): Já estão definidos e podem ser usados diretamente pelo usuário (por meio de palavras-chave) para declarar variáveis. Ex: int, bool, char, etc…

  • Dados a serem definidos pelo usuário: Como o próprio nome já diz, são dados que não estão definidos na linguagem e o próprio usuário deverá defini-los. Ex: Definir uma classe (class) ou uma estrutura (struct) no c++.

Nessa aula vamos discutir somente os dados primitivos, que são:

  • Booleano: Guarda um único estado, esse podendo ser true (verdadeiro) ou false (falso). bool é a palavra-chave desse tipo de dado

  • Caractere: Pode armazenar um único caractere como ‘k’ ou ‘#’. Ocupa 1 byte ( 8 bits ) na memória e um alcance de -127 a 127 ou de 0 a 255

  • Inteiro: Aceita valores inteiros como 7 ou 817. A palavra-chave que o representa é int, ocupa 4 bytes ( 32 bits ) na memória do computador. E abrange os inteiros de -2147483648 até 2147483647.

  • Ponto Flutuante (Precisão Simples): É utilizado para guardar números decimais de precisão simples, ou seja, números com poucas casas decimais, esse tipo possui cerca de 7 casas decimais. Normalmente ocupam 4 bytes  e a palavra-chave para esse tipo de dado é float.

  • Ponto Flutuante (Precisão Dupla): Armazena números números de precisão dupla ou valores decimais. A palavra-chave desse tipo é double e normalmente requerem 8 bytes para serem armazenados.

  • Void: O tipo void representa uma entidade sem valor, é normalmente utilizado em funções que não retornam nada como resposta.

  • Wide Character: Semelhante ao tipo char, também é utilizado para guardar caracteres, contudo o dado WideChar possui um tamanho maior que o tipo de 1 byte. Representado por wchar_t esse tipo necessita de 2 ou 4 bytes de tamanho.

Além dos tipos primitivos, também temos os modificadores de tipos de dados, que são utilizados para alterar o tamanho que cada dado ocupa na memória, e consequentemente aumentando ou diminuindo o alcance dos mesmos. Esses dados são:

  • Signed

  • Unsigned

  • Short

  • Long

A tabela abaixo contém um resumo do tamanho e do intervalo que cada tipo primitivo possui quando combinado a um modificador:

O próximo passo é declarar uma variável, assim como no exemplo:

int a;

Ao declarar qualquer variável você deve seguir a seguir estrutura:

tipo de dado (palavra-chave) + nome da variável + ;

Depois de ter declarado sua primeira variável é muito importante ficar atento a alguns detalhes, o primeiro deles é que cada variável que você declara deve ter um nome diferente das demais, pois é através do nome que o compilador acessa essas variáveis na memória e se nomearmos duas variáveis distintas com o mesmo nome isso vai causar um conflito pois seu programa vai querer tratá-las como uma mesma variável.

Tome o exemplo das gavetas que foi citado anteriormente nessa aula e imagine que eu tivesse nomeado todas as gavetas como g, você concorda que se eu lhe pedisse para adicionar 3 cubos da gaveta g você não saberia se eu estou me referindo a primeira, segunda ou terceira gaveta? Então, o mesmo acontece com o seu compilador ao dar o mesmo nome duas ou mais variáveis, ele não saberá diferenciá-las.

O segundo detalhe é para não esquecer de especificar de que tipo de dado se trata, se é um inteiro, um double, um char, como já vimos cada tipo de dado ocupa um espaço diferente na memória e é tratado de uma maneira diferente pelo compilador. Portanto, lembre-se de sempre especificar qual dado aquela variável deve armazenar.

E para finalizar a sessão lembretes, lembre-se de colocar o ponto e vírgula (;) ao final do comando, pois é assim que o compilador identifica que o comando (de declarar uma variável) chegou ao fim.

Agora, você deve estar se perguntando como inserir um determinado valor após declarar uma variável, podemos fazer isso de duas formas, a primeira é utilizando o operador de atribuição “=”, que significa “recebe”, seguido de ponto e vírgula, como no exemplo:

int a;
a = 10;

Ou seja, ao final dessas operações o valor de a será igual a 10.

A segunda maneira é utilizando o stream de entrada cin. O cin é utilizado para ler os dados que serão fornecidos como entrada e inseri-los em sua respectiva variável. Logo, após digitamos cin deve-se utilizar o operador “>>” , o nome da variável e finalizar com “;”.

Seguindo a seguinte estrutura:

cin + >> + nome_da_variavel + ;

Para entender entender melhor observe o exemplo, vamos fazer um código que lê um único inteiro da entrada e o imprime na tela do computador esse valor seguido por uma quebra de linha.

#include <iostream>

using namespace std;

int main()
{
    int x; // declaro uma variavel inteira e a chamo de x
  
    cin >> x; // leio o valor de x
  
    cout << x << “\n”; // imprimo esse valor
  
    return 0;
}

Após compilar e executar o código (F9), deve aparecer uma aba preta parecida com está:

Agora vamos fornecer como entrada o número 15, para isso basta digita-lo. E em seguida aperte o botão “Enter” do teclado. Depois disso, seu programa deve imprimir na tela o valor 15. Como na imagem abaixo:

Essa foi a aula sobre variáveis, para aprofundar seus conhecimentos sobre programação leia a próxima aula de Estruturas Condicionais, onde aprenderemos como utilizar o condicional If – Else.

Resumo da Aula:

  • Conceito de Variáveis

  • Tipo de Dados

  • Como declarar uma variável

  • Observações: não esquecer de colocar nomes diferentes para variáveis diferentes, de especificar o tipo e do ponto e vírgula.

  • Operador de Atribuição “=”

  • Stream de entrada (lembre-se do operador “>>”)