Desenvolvimento - C/C++

Série “Iniciando em C++” – Variáveis

Neste artigo da série Iniciando em C++ você aprenderá a declarar e definir variáveis e constantes, a atribuir e manipular valores às variáveis, e a remeter o valor de uma variável para a tela.

por Fabiano Maciel



Introdução

Neste artigo da série Iniciando em C++ você aprenderá a declarar e definir variáveis e constantes, a atribuir e manipular valores às variáveis, e a remeter o valor de uma variável para a tela.

O que é uma variável?

Os programas precisam de uma maneira para armazenar os dados que usam. As variáveis e constantes oferecem uma variedade de formas para se trabalhar com números e outros valores.

Do ponto de vista de um programador, uma variável é um local na memória do computador no qual você pode armazenar um valor e a partir do qual você posteriormente pode recuperá-lo.

Para entender esse conceito, você necessita de uma noção básica da maneira como a memória do computador funciona. A memória do computador pode ser entendida como uma série de cubículos, todos eles alocados lado a lado em uma longa fileira. Cada cubículo - ou localização da memória - é numerado sequencialmente. Esses números são chamados de endereços de memória.

As variáveis têm, além de endereços, nomes. Por exemplo, você pode criar uma variável chamada minhaIdade. Sua variável é um rótulo aplicado a um desses cubículos, cuja finalidade é permitir que sejam localizados facilmente, sem saber o seu real endereço de memória.

Reservando memória

Quando você define uma variável em C++, deve informar ao compilador não apenas o seu nome, mas também o tipo de informação que ela contém: inteiro, caractere, entre outros. Nós chamamos isso de tipo da variável. O tipo da variável informa ao compilador o espaço que a memória dispõe para armazenar o valor da variável.

Cada cubículo tem 1 byte. Se o tipo de variável que você quer criar tiver 2 bytes, ela precisará de 2 bytes de memória, ou dois cubículos. O tipo da variável (por exemplo, INT) informa ao compilador o espaço em memória (quantos cubículos) reservado para a variável.

Como os computadores usam bits e bytes para representar valores, e como a memória é medida em bytes, é importante que você entenda e se sinta familiarizado com esses conceitos.

Tamanho dos inteiros

Uma variável char (usada para armazenar caracteres) costuma ter 1 byte. Um short int tem 2 bytes na maioria dos computadores, um long int geralmente tem 4 bytes e um int (sem a palavra short ou long) pode ser de 2 ou 4 bytes. Se você estiver executando o Windows 95, Windows 98, NT, 2000 ou XP, pode levar em consideração que sua int tem 4 bytes desde que esteja usando um compilador moderno.

Abaixo, o código o ajudará a determinar o tamanho exato desses tipos no seu computador usando seu próprio compilador.

#include <iostream.h>
int main()
{
	cout << "O tamanho de um int e:\t\t" << sizeof(int) << "bytes.\n";
	cout << "O tamanho de um um short int e:\t" << sizeof(short) <<"bytes.\n";
	cout << "O tamanho de um long int e:\t" << sizeof(long) <<"bytes.\n";
	cout << "O tamanho de um char e:\t\t" << sizeof(char) <<"bytes.\n";
	cout << "O tamanho de um bool e:\t\t" << sizeof(bool) <<"bytes.\n";
	cout << "O tamanho de um float e:\t\t" << sizeof(float) <<"bytes.\n";
	cout << "O tamanho de um double e:\t" << sizeof(double) <<"bytes.\n";
return 0;
}

signed e unsigned

Além disso, a maioria desses tipos vem em duas variedades: signed e unsigned. A idéia aqui é que algumas vezes você precisa de números negativos e algumas vezes não. Os inteiros (short e long) sem a palavra unsigned são tidos como signed. Os inteiros signed são negativos ou positivos. Os inteiros unsigned são sempre positivos.

DICA: Use int em variáveis numéricas. Na maioria dos programas, na maioria das vezes, basta que você afirme que as variáveis numéricas são int - que são inteiros signed.

Tipos de variávies fundamentais

Diversos outros tipos de variáveis são construídos na C++. Eles podem ser divididos em variáveis de inteiro (o tipo discutido até agora), variáveis de ponto flutuante e variáveis de caractere.

Variávies de ponto flutuante e de caractere - As variáveis de ponto flutuante têm valores que podem ser expressos como frações, ou seja, que são números reais. As variáveis de caractere armazenam um byte e são usadas para armazenar 256 caracteres e símbolos dos conjuntos de caracteres ASCII e ASCII estendidos.

O conjunto de caracteres ASCII - O conjunto de caracteres padrão usado em computadores. ASCII é o acrônimo de American Standard Code for Information Interchange. Quase todos os sistemas operacionais suportam ASCII, embora muitos também sejam compatíveis com outros conjuntos de caracteres como, por exemplo, o EBCDIC.

Os tipos de variáveis usadas em programas C++, são descritos na Tabela abaixo, Essa tabela mostra o tipo de variável, o espaço que ele ocupa na memória e os tipos de valores que podem ser armazenados nessas variáveis. Os valores que podem ser armazenados são determinados pelo tamanho dos tipos de variáveis, e consequentemente pelo tipo de computador que está sendo utilizada a aplicação. Lembrando que estes são alguns dos tipos padrões do C++ ANSI.

DICA: Use apenas int . Se você estiver criando um int , não se preocupe com short versus long; use apenas int. Com um compilador moderno, isso criará um long int que será satisfatório em 99% das situações.

Definindo uma variável

Você cria, ou define, uma variável instruindo o seu tipo, seguido por um ou mais espaços, pelo nome da variável e um ponto-e-vírgula. O nome da variável pode ser virtualmente qualquer combinação de letras, mas não pode conter espaços. Bons nomes de variáveis mostram a você a finalidade delas; o uso de bons nomes facilita a compreensão do fluxo do seu programa.

Distinção entre maiúsculas e minúsculas

A C++ faz distinção entre letras maiúsculas e minúsculas. Em outras palavras, letras minúsculas e maiúsculas são consideradas diferentes. Uma variável cujo nome é idade é diferente de Idade que é diferente de IDADE.

Palavras chave

Algumas palavras são reservadas pela C++ e você não pode usá-las como nomes de variável. Essas são as palavras-chave usadas pelo compilador para controlar o seu programa. As palavras chaves incluem if, while, for e main. O manual do seu compilador deve fornecer uma lista completa, mas geralmente qualquer nome razoável para uma variável quase certamente não é uma palavra-chave.

Criando mais de uma variável de cada vez

Você pode criar mais de uma variável ao mesmo tempo em uma instrução digitando o tipo e, em seguida, os nomes de variável, separados por vírgulas. Por exemplo:

unsigned int minhaIdade, meuPeso;
// duas variáveis unsigned int
long area, largura, tamanho;
// três longs

Atribuindo valores a suas variáveis

Você atribui um valor a uma variável usando o operador de atribuição (=). Portanto, você atribuiria 5 como largura se digitasse:

unsigned short largura;
largura = 5;

Ou você poderia combinar essas etapas e inicializar largura quando defini-la por meio da seguinte instrução:

unsigned short largura = 5

Constantes

Como as variáveis, as constantes são locais de armazenamento de dados. Mas as variáveis mudam; as constantes, por outro lado, como você deve ter imaginado, não mudam.

Você deve inicializar uma constante quando ela é criada e não pode atribuir-lhe um novo valor posteriormente; depois que uma constante é inicializada, seu valor é, em uma palavra, constante.

Constantes literais

A C++ tem dois tipos de constantes: literais e simbólicas.

Uma constante literal é um valor digitado diretamente em seu programa sempre que ele se fizer necessário. Por exemplo:

int minhaIdade = 39;

minhaIdade é uma variável do tipo int; 39 é uma constante literal. Você não pode atribuir um valor a 39 e seu valor não pode ser alterado;

Constantes simbólicas

Uma constante simbólica é uma constante que é representada por um nome, assim como uma variável também é. Ao contrário de uma variável, no entanto, depois que uma constante é inicializada, seu valor não pode ser alterado.

Se o seu programa tem uma variável inteira cujo nome é estudantes e outra cujo nome é classes, você pode computar o número de estudantes que possui com base em um número conhecido de classes; se você soubesse que há 15 estudantes por classe:

estudantes = classes * 15;

Nesse exemplo, 15 é somente uma constante literal. Seu código seria mais fácil de ler, e mais fácil de manter, se você substutuísse uma constante simbólica por este valor:

estudantes = classes * estudantesPorClasses;

Se você decidisse mudar o número de estudantes em cada classe, poderia fazê-lo onde a constante estudantesPorClasses é definida sem ter que fazer uma mudança em todos os locais em que usou este valor;

Definindo constantes com #define

Para definir uma constante à forma antiga, odiável e politicamente incorreta, você digitaria a seguinte instrução:

#define estudantesPorClasses 15

Observe que, como estudantesPorClasses não pertence a um tipo específico (int ou char por exemplo), #define faz uma simples substituição de texto. Todas as vezes que o processador localizar a palavra estudantesPorClasses, ele colocará 15 no texto. Como o pré-processador é executado antes do compilador, seu compilador jamais vê a constante, ele vê o número 15;

Definindo constantes com const

Embora #define funcione a contento, existe uma maneira nova, melhor, menos gordurosa e mais saborosa, para definir constantes no C++.

const unsigned short int estudantesPorClasses = 15;

Esse exemplo também declara uma constante simbólica cujo nome é estudantesPorClasses, mas desta vez estudantesPorClasses é digitado com um unsigned short int.

Dessa forma, você digita mais texto, mas tem suas vantagens. A maior diferença é que essa constante tem um tipo, e o compilador pode garantir que ele seja usado de modo compatível com ele.

Constantes enumeradas

As constantes enumeradas criam um conjunto de constantes com uma faixa de valores. Por exemplo, você pode declarar COR como uma enumeração e pode definir que há cinco valores para COR: Vermelho, Azul, Verde, Branco e Preto.

A sintaxe de constantes enumeradas é escrever a palavra-chave enum seguida pelo nome do tipo, uma chave de abertura, cada um dos valores aceitos separados por uma vírgula e finalmente uma chave de fechamento e um ponto-e-vírgula. Veja um exemplo:

enum COR {Vermelho, Azul, Verde, Branco, Preto};

Essa instrução executa duas tarefas:

1. Torna COR o nome de uma enumeração, ou seja, um novo tipo.
2. Torna Vermelho uma constante simbólica com o valor 0, Azul com valor 1, e assim por diante.

Todas as constantes enumeradas têm um valor inteiro. Se você não especificar de outra maneira, a primeira constante terá o valor de 0 e os demais itens serão contados na ordem crescente a partir daí. No entanto, qualquer uma das constantes por ser inicializada com um determinado valor, e as que ainda não tiverem sido inicializadas serão incrementadas com base no valor que o anteceder. Desse modo, se você digitar:

enum COR {Vermelho=100, Azul, Verde=500, Branco, Preto=700}; 

então Vermelho terá o valor 100; Azul, o valor 101; Verde, o valor 500; Branco, o valor 501; e Preto, o valor 700.

Neste artigo você aprendeu a declarar e a definir variáveis e constantes e a atribuir-lhes valores. Nos próximos artigos estaremos utilizando os conhecimentos adquiridos na construção de outros módulos interessantes.

Fabiano Maciel

Fabiano Maciel - MCP, formado pela Universidade Federal de Viçosa em Ciência da Computação atualmente é Gerente de Desenvolvimento da empresa ARC do Brasil (www.arcbrasil.com.br), atuando principalmente no setor automobilístico com automação industrial. Trabalha com informática há mais de 14 anos, utilizando-se as principais linguagens de programação (C++, Visual Basic, Visual Basic.NET, Delphi) existentes no mercado, bem com as principais técnicas de modelagem e desenvolvimento de aplicativos. Co-Lider do Grupo de usuários .NET Raptors (www.dotnetraptors.com.br) escreve artigos técnicos para diveros meios de comunicação da área de informática.