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; // declaro uma variável do tipo inteiro chamada a | |
a = 10; // a recebe o número 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 variável + ;
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 variável 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 “>>”)