Curso de C++/Variáveis e constantes
De Wikiversidade
Índice |
[editar] Variáveis
Uma variável armazena na memória do computador um valor que pode variar conforme a necessidade. Variáveis são declaradas o tempo todo durante a atividade de programação pela constante necessidade de armazenar valores temporários. A declaração de uma variável em C++ segue a seguinte sintaxe básica:
[tipo] [nome] [opcional: [= valor inicial]];
Exemplo de declaração de algumas variáveis:
#include <iostream> using namespace std; /* Importante: em C++, a vírgula decimal equivale a um ponto! Ex: 3,14 em C++ é 3.14 */ int main() { int inteiro = 0; // variável tipo inteiro. float pontoflutuante = 3.14; // variável tipo ponto flutuante com precisão simples. double pontoflutuante2 = 3.1415; // variável tipo ponto flutuante com precisão dupla. char caracter = 'a'; // variável tipo caracter. bool logico; // variável tipo lógico. cout << inteiro << " - o número inteiro" << endl; cout << pontoflutuante << " - o número em ponto flutuante" << endl; cout << pontoflutuante2 << " - o número em ponto flutuante com dupla precisão" << endl; cout << caracter << " - o caracter" << endl; system("pause"); }
A saída na janela de console deve se parecer com:
0 - o número inteiro 3.14 - o número em ponto flutuante com precisão simples 3.1415 - o número em ponto flutuante com dupla precisão a - o caracter Press any key to continue...
[editar] Constantes
Assim como uma variável, uma constante também armazena um valor na memória do computador. Entretanto, esse valor não pode ser alterado: é constante. Para constantes é obrigatória a atribuição do valor.
Existem duas formas básicas para declarar uma constante em C++:
[editar] Usando #define
Você deverá incluir a diretiva de pré-processador #define antes de início do código:
#include <iostream> using namespace std; #define PI 3.1415
A sintaxe para isso é (nesse caso, não coloque ponto-e-vírgula no final):
#define [nome da constante] [valor]
[editar] Usando const
Usando const, a declaração não precisa estar no início do código.
const int i = 500; // uma constante inteira que armazena o número 500. const double pi = 3.1415; // uma constante real que armazena o valor aproximado de pi.
A sintaxe para const é:
const [tipo] [nome] = [valor];
[editar] Atribuição de valores
Quando você declara uma variável, você escolhe se quer ou não dar um valor inicial para ela. No caso das constantes, você é obrigado a informar este valor. No caso das constantes com #define, se você não informar o valor da constante ocorrerá erro de compilação. Também ocorrerá erro de compilação se você esquecer de atribuir um valor para uma variável antes de utilizá-la. Exemplo:
int inteiro; cout << inteiro << " - teste"; // ERRO. Não irá compilar pois não foi atribuído valor para a variável.
[editar] Alterando o valor de uma variável
Conforme o programa, será de seu interesse alterar o valor da variável. Segue um exemplo de código:
int inteiro = 0; cout << inteiro << " - primeiro valor" << endl; inteiro = 5; cout << inteiro << " - segundo valor" << endl; system("pause");
A saída no console se parecerá com:
0 - primeiro valor; 5 - segundo valor; Press any key to continue...
A sintaxe para alterar o valor de uma variável é:
[nome] = [valor];
[editar] Escopo de uma variável/constante
Existem variáveis e constantes que você pode usar em todo o programa, chamadas globais, e as que você só poderá utilizar dentro de um blogo de código - chamadas locais.
Vamos analisar o seguinte trecho de código (o programa possui uma outra função além da main):
#include <iostream> using namespace std; #define PI 3.1415 const double raizdedois = 1.4142; // as duas constantes definidas até aqui são globais. char letra = 'b'; // esta variável é global. void imprime() { cout << raizdedois << " " << letra << endl; } int main() { int j = 10; // esta variável é local. const cinco = 5; // esta constante é local. cout << letra << " " << j << " " << cinco << " " << raizdedois << endl; imprime(); // chamada da função imprime. system("pause"): }
As três primeiras constanstes são globais. Isso significa que qualquer função (dentro desse arquivo de código) pode acessar o seu valor. No exemplo, a função main e a função imprime usam essas constantes para exibir valores no console.
Já a constante cinco, declarada dentro da função main, bem como a variável j, são locais. Somente a função main pode utilizá-las. Se escrevêssemos o código abaixo, o compilador indicaria erro: nem cinco nem j estão acessíveis para imprime. São variável e constante locais de main. Em regra, variáveis/constantes locais podem ser utilizadas somente dentro do bloco definido pelas chaves ( { e } ) onde foram declaradas.
void imprime() { cout << cinco << j << endl; // ERRO. }
[editar] Palavras reservadas
Quando você definir o nome de uma variável ou constante, não poderá atribuir qualquer nome. O nome da variável deve conter apenas letras e números e não pode ser uma palavra reservada (em inglês, keyword).
Abaixo segue a lista de palavras reservadas em C++:
- asm, auto, break, case, catch, char, class, const, continue, default, delete, do, double, else, enum, extern, float, for, friend, goto, if, inline, int, long, new, operator, private, protected, public, register, return, short, signed, sizeof, static, struct, switch, template, this, throw, try, typedef, union, unsigned, virtual, void, volatile, wchar_t, while.
Não se preocupe em decorar estas palavras. Veremos a função de cada uma na linguagem. Como você saberá a função de todas, saberá que não poderá utilizá-las. As palavras reservadas também não podem ser nomes de funções, métodos, atributos, objetos e classes (ainda veremos o que é cada um).
Clique aqui para ver a descrição (em inglês) da função das palavras reservadas: C++ Reference - Keywords
[editar] C++ é case sensitive
Uma linguagem case sensitive é aquela que difere letras maiúsculas de minúsculas. Ou seja, se você der um nome para variável, constante, função, classe, objeto, método ou atributo, deverá estar atento à forma como declarou. Segue exemplo:
char um = '1'; // um caracter. char UM = '1'; // outro caracter. char Um = '1'; // outro caracter. char uM = '1'; // outro caracter. // Diferenciam-se pelo capitulação do nome, embora tenham o mesmo conteúdo.
[editar] Revisão do tópico
Este tópico exigiu um pouco mais da sua memória. Mas não se preocupe: você vai acabar por memorizar todo o conteúdo desta seção assim que tiver prática na atividade de programação.
Para passar para o próximo tópico, é importante que você tenha compreendido este muito bem. O próximo tópico falará sobre tipos de dados, que está diretamente ligado com a declaração de variáveis (lembre: quando você declara uma variável deve declarar o tipo de dados que ela conterá).
Alguns erros comuns que você deve verificar quando ocorrem erros de compilação no seu código:
- Esquecer do ponto-e-vírgula no fim das instruções;
- Usar uma variável sem ter-lhe atribuído valor inicial;
- Tentar utilizar uma variável local fora de seu escopo;
- Colocar ponto-e-vírgula após definir uma constante com #define;
- Declarar a variável com um tipo de dados e atribuir um valor diferente do tipo. Ex: int numero = 5.5;
- Não definir valor inicial para uma constante declarada com #define;
- Atribuir um valor para uma variável tipo caracter (char) sem aspas ou com aspas duplas (Ex: "a"). O correto é aspas simples (Ex: 'a');
- Utilizar vírgula em números decimais em vez de ponto.