Variáveis são os aspectos fundamentais de qualquer linguagem de computador. Uma variável definida em C/C++ trata-se de um espaço de memória reservado para armazenar um certo tipo de dado e possui um nome para referenciar o seu conteúdo. Esta variável pode conter, a cada tempo, valores diferentes.
No Capítulo anterior foi apresentado um programa (soma.cpp) com três variáveis que armazenam valores inteiros: num1, num2 e soma, utilizadas para armazenar, respectivamente, os valores de entrada do usuário e o resultado da adição.
2.1 Declaração de Variáveis
Antes de começar a armazenar dados em uma variável, deve-se declará-la escrevendo-se seu tipo seguido por um ou mais espaços, um nome1 e um ponto-e-vírgula. Pode-se criar mais de uma variável do mesmo tipo em uma instrução escrevendo-se o tipo e então os nomes das variáveis separados por vírgulas e um ponto-e-vírgula no final, segundo a próxima Figura.
O nome de uma variável é utilizado para sua identificação e posterior uso dentro de um programa. Assim, é necessário estabelecer algumas regras de utilização das mesmas:
- O primeiro caracter do nome da variável deve ser sempre uma letra ou o caracter '_' (barra-baixo, sublinhado, etc);
- Nomes de variáveis podem conter letras, números e o caracter '_';
- Nomes de variáveis não podem ser iguais às palavras reservadas da linguagem;
- A linguagem C/C++ distingue as letras maiúsculas e minúsculas, ou seja, é case-sensitive. Por exemplo, abc, abC, aBC, aBc, ABC e abc são nomes de variáveis diferenciadas pela linguagem.
2.2 Tipos de Dados
O tipo de uma variável informa a quantidade de memória, em bytes, que a variável ocupará e a forma como um valor deverá ser armazenado e interpretado.
- Tipos de dados inteiros: são dados numéricos positivos e negativos. Não podem ser fracionários e são representados pelo tipo int. Por exemplo, idades de pessoas podem ser consideradas do tipo inteiro, como 18, 25 e 68.
- Tipos de dados reais: são dados numéricos positivos e negativos. Podem ser fracionários e são representados pelos tipos float e double. Por exemplo, saldos de contas de banco são do tipo real, como -120.45, 0.0 e 345.98; alturas de pessoas também são do tipo real, como 1.0 e 1.54. Note que em C++ utilizamos a notação americana para números, onde o separador fracionário é o "." .
- Tipos de dados caracter: relacionado a um único caracter ou a uma sequência de caracteres. É representado pelo tipo char. Exemplos de caracteres: letras, números, sinais de pontuação e caracteres especiais. Uma sequência de caracteres é chamada de string. Para diferenciar um caracter de uma string, usa-se apóstrofo para o primeiro e aspas duplas para o segundo. Exemplo: 's' é um caracter; "Ola mundo!" é uma string.
Na Tabela a seguir são apresentados alguns tipos de dados em C/C++. Pode-se considerar que os cinco primeiros tipos são os básicos da linguagem; os demais utilizam os modificadores unsigned, long e short. O modificador unsigned significa que se pode armazenar somente números positivos. O modificador short normalmente se refere a um inteiro de 2 bytes e o long mais frequentemente a um inteiro de 4 bytes, mas nenhum desses é certo. A linguagem exige apenas que um short seja mais curto ou igual a um inteiro, e que um inteiro seja mais curto ou igual a um long.
Tipo | Tamanho | Valores (aproximados) |
---|---|---|
bool | 1 byte2 | false, true |
int | 4 bytes | -2.147.483.648 a 2.147.483.647 |
char | 1 byte | 256 valores de caracteres |
float | 4 bytes | -3,4e-38 a 3,4e38 |
double | 8 bytes | -1,7e-308 a 1,7e308 |
string | mais que 255 bytes | Qualquer sequência de caracteres entre "" (aspas) |
void | 0 | Nenhum valor |
unsigned int | 2 bytes | 0 a 65.535 |
short int | 4 bytes | -2.147.483.648 a 2.147.483.647 |
unsigned short int | 2 bytes | 0 a 65.535 |
long int | 4 bytes | -2.147.483.648 a 2.147.483.647 |
unsigned long int | 4 bytes | 0 a 4.294.967.295 |
2.3 Exemplo
ENUNCIADO: "Um produto sofrerá um aumento de 10%. Faça um programa que peça ao usuário o preço de um produto, calcule e mostre qual será o valor do aumento e o valor reajustado do produto."
2.3.1 Análise e Implementação
Para resolver esse e outros problemas, deve-se ter em mente os seguintes passos:
- Quais são as entradas do programa — geralmente são pedidas ao usuário, mas também podem vir de outras fontes como um banco de dados ou um arquivo.
- Qual é o processamento: o que se deve fazer com essas entradas — verificar, calcular, modificar, etc.
- Quais são as saídas.
Neste exemplo, a entrada do programa é o preço de um produto — no enunciado do exercício: "…peça ao usuário o preço de um produto…". De que tipo ele é para se fazer a declaração? Preço é um número real, assim, utiliza-se o tipo float.
O que se deve fazer com a entrada? Calcular o aumento de 10% e o preço reajustado — no enunciado: "calcule … qual será o valor do aumento e o valor reajustado do produto". Como fazer isso? Pode-se empregar a Regra de Três:
$prod \rightarrow 100$
$aum \leftarrow 10$
$aum \times 100 = prod \times 10$
$aum = \frac{prod \times 10}{100}$
$aum = prod\times 0,10$
Assim, pode-se chegar à Equação 1 ou simplesmente à Equação 2:
(1)Note que na Equação 2 foi utilizado o ponto no lugar da vírgula em 0.10. Assim, toda vez que for utilizar número real, não use vírgula, use o ponto. Isto se deve ao sistema decimal americano adotado na linguagem C/C++ que utiliza ponto antes do valor real, ao contrário do sistema decimal brasileiro que utiliza vírgula.
Tendo-se o valor do aumento é só somá-lo com o valor do produto que se encontra o preço reajustado. Os nomes de variáveis utilizadas para armazenar esses valores, foram, respectivamente: aum, prod e prod_reaj.
Por último, é só imprimir o que o exercício pede; no enunciado: "mostre qual será o valor do aumento e o valor reajustado do produto".
Analise como esse problema foi solucionado com o seguinte código:
#include <iostream> using namespace std; int main() { float prod, aum, prod_reaj; cout << "Entre com o valor do produto: "; cin >> prod; aum = prod * 0.10; prod_reaj = prod + aum; cout << "Valor do aumento: " << aum << endl; cout << "Valor do produto reajustado: " << prod_reaj << endl; return 0; }
2.3.2 Teste de Mesa do programa
A execução do programa pode ser observada no teste de mesa na tabela seguinte. Suponha que o usuário tenha entrado com o valor 55.3 para o preço de produto.
Linha | Variáveis | Saída | ||
---|---|---|---|---|
[] | prod | aum | prod_reaj | |
6 | lixo | lixo | lixo | |
7 | lixo | lixo | lixo | Entre com o valor do produto |
8 | 55.3 | lixo | lixo | |
10 | 55.3 | 5.53 | lixo | |
11 | 55.3 | 5.53 | 60.83 | |
13 | 55.3 | 5.53 | 60.83 | Valor do aumento: 5.53 |
14 | 55.3 | 5.53 | 60.83 | Valor do produto reajustado: 60.83 |
2.4 Declaração de Constantes
A palavra-chave const é utilizada para declarar constantes no programa em linguagem C/C++. Ela assegura que a variável associada não deve ser alterada em todo o programa. A sintaxe de declaração de constantes é:
#include <iostream> using namespace std; int main() { const float pi=3.141592; float raio, area, comp; cout << "Cálculo da área de um círculo e do perímetro " << "de sua circunferência." << endl; cout << "Por favor, entre com o raio: "; cin >> raio; area = pi * raio * raio; comp = 2 * pi * raio; cout << "A área do círculo é: " << area << endl; cout << "O comprimento de sua circunferência é: " << comp << endl; return 0; }
Verifique que na linha 6 foi declarado o valor 3.141592 para a variável constante pi. Assim, pode-se utilizá-lo em várias partes da função main, como nas linhas 15 e 16. Como pi é uma variável constante, não é possível modificá-lo no decorrer da função main.
2.5 Exercícios
- Em um curso semestral de uma instituição de ensino, a média final é composta por três notas e é ponderada, ou seja, possui peso 2 para a primeira nota, peso 1 para a segunda e peso 3 para a terceira. Faça um programa que peça as notas para o usuário e calcule a média final. Faça o teste de mesa para conferir o resultado.
- Faça um programa que receba o salário bruto de um funcionário e o seu percentual de imposto. Calcule o valor do imposto e do salário líquido. Faça o teste de mesa para conferir os resultados.
- Um trabalhador recebeu seu salário e o depositou em sua conta corrente bancária. Esse trabalhador emitiu dois cheques e agora deseja saber seu saldo atual. Sabe-se que cada operação bancária de retirada paga CPMF de 0,38% e o saldo inicial da conta está zerado. Crie uma constante com o valor fixo do CPMF. Qual a vantagem de se utilizar constante? Faça um programa para resolver esse problema e faça o teste de mesa para conferir os resultados.
- O índice de massa corporal (IMC) é uma fórmula que indica se um indivíduo está acima do peso, se está obeso ou abaixo do peso ideal considerado saudável. A fórmula para calcular o IMC é dividir o peso, medido em quilos, pelo quadrado da altura, em metros. Assim, faça um programa que calcule e mostre o IMC. Faça o teste de mesa para conferir o resultado.
- Um lenhador vende um caminhão de lenha por X reais. O custo de produção é igual a 4/5 do preço da venda. Faça um programa que calcule o lucro. Crie uma constante com o valor fixo da porcentagem do custo de produção. Faça o teste de mesa para conferir o resultado.