2 - Variáveis e Tipos de Dados

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.

declaracao_variaveis.png

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)
\begin{equation} aum = (prod*10)/100; \end{equation}
(2)
\begin{equation} aum = 0.10 * prod; \end{equation}

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 é:

declaracao_constantes.png
#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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License