# Introdução à programação/Definição de dados
## Tipos de Dados

Tipos de Dados: Define os valores que um dado pode assumir e as operações que podem ser efetuadas sobre o dado.

### Tipos de Dados Primitivos
#### Números

* Inteiros: Valores inteiros, positivos ou negativos.
Ex.: 14, -160
* Números de ponto flutuante: Valores fracionários, positivos ou negativos.
Ex.: -42.08; 50.01
Números reais são aproximados no computador na forma de números de ponto flutuante.
* Operações: As operações aplicáveis a números são:
Exemplo:
* 5 / 2 = 2 (inteiros)
* 5 mod 2 = 1 (inteiros)
* 5.0 / 2 = 2.5 (ponto flutuante)

#### Caracteres

* Representam as letras (A-Z), os dígitos numéricos (0-9) e sinais especiais.
* Aparecem entre aspas simples.
Ex.: 'José', 'Casa 8', 'C++'
* Operações:
Ex.:
Em Pascal:
Obs.: String[45] → Máximo de 45 caracteres. Se não houver nada entre colchetes, o máximo será, logicamente, 255.

#### Valores Lógicos ou Booleanas

* Um valor lógico pode estar em um dos dois estados: verdadeiro ou falso.
* Operações:
** Não: Troca o estado atual.
** Ou: Se algum for V, então V.
** E: Se algum for F, então F.
| A | B | Not(A) | Not(B) | A Or B | A And B | Not(A And B) Or A |
| F | F | V | V | F | F | V |
| F | V | V | F | V | F | V |
| V | F | F | V | V | F | V |
| V | V | F | F | V | V | V |

## Conceito de Constante

Uma constante é um valor fixo que não se modifica ao longo do tempo durante a execução do programa. Uma constante pode ser de qualquer um dos tipos primitivos de dados.
→ Declaração de Constante

## Conceito de Variável

Uma variável é o nome de uma posição de memória onde se pode guardar qualquer valor de um tipo associado.
Cada variável corresponde a uma posição de memória cujo valor pode variar ao longo do tempo durante a execução do programa, embora uma variável possa assumir diferentes valores. Ela só pode armazenar um único valor a cada instante.
O tipo de variável é seu domínio, ou seja, ele define o conjunto de valores possíveis de serem armazenados na variável, bem como o conjunto de operadores que podem agir sobre a mesma.

### Declarações de Variáveis

Na declaração de uma variável é feita a associação do nome escolhido (Identificador), com a respectiva posição de memória que o mesmo possa simbolizar. Além disso, é indicado o tipo (domínio) daquela variável.

### Formatação de Identificadores

Um identificador de constante ou variável é formado por um ou mais caracteres alfanuméricos (letras e números), sendo que o primeiro caractere deve ser obrigatoriamente uma letra ou um sublinhado. Não pode haver espaço entre os caracteres.

## Operação de Atribuição

Especifica que uma variável recebe determinado valor, o qual deve ser de um tipo compatível com o tipo da variável indicada pelo símbolo "=", e em alguma linguagens ":=".
Forma Geral:
Ex.:
Ex.: Sejam A e B variáveis do tipo INTEGER
* Obs1.: Toda variável usada do lado direito deve ter um valor antes da operação de atribuição.
* Obs2.: A atribuição é uma operação destrutiva. Qualquer valor anterior armazenado na variável será substituído.
* Obs3.: Uma variável pode aparecer dos dois lados de uma expressão.

## Tipos de Expressões

1. Aritmética:
* Operações entre valores do tipo numérico, que tem como resultado um valor numérico.
    → Operadores: +, -, *, DIV, /, MOD
2. Relacional:
* Operações de comparação entre valores do mesmo tipo, que têm como resultado um valor lógico.:
    → Operadores: == (igual), > (maior), < (menor), != (diferente), >= (maior ou igual), <= (menor ou igual).
Ex.:
3. Lógica:
* Operações lógicas entre valores lógicos, que têm como resultado um valor lógico.
    → Operações: NOT, OR, AND.
Ex.: Sejam A:=5; B:=’XYZ’; C:=TRUE