# Enum
Em C++, enumeração (enum) é um recurso que permite definir um novo tipo de dado que consiste em um conjunto de constantes nomeadas. Essas constantes têm um valor inteiro associado por padrão, começando de 0 e aumentando em uma unidade para cada constante seguinte. No entanto, você pode atribuir valores específicos às constantes manualmente, se necessário.
**Sintaxe:**
```cpp
enum NomeDaEnumeracao {
CONSTANTE1,
CONSTANTE2,
CONSTANTE3 = valor,
// ...
};
```
**Exemplo**:
```cpp
#include <iostream>
// Declaração da enumeração
enum DiasDaSemana {
SEGUNDA,
TERCA,
QUARTA,
QUINTA,
SEXTA,
SABADO,
DOMINGO
};
int main() {
// Acessando e utilizando a enumeração
DiasDaSemana dia = TERCA;
if (dia == QUARTA) {
std::cout << "Hoje é quarta-feira!" << std::endl;
} else {
std::cout << "Hoje não é quarta-feira." << std::endl;
}
switch (dia) {
case SEGUNDA:
std::cout << "Segunda-feira" << std::endl;
break;
case TERCA:
std::cout << "Terça-feira" << std::endl;
break;
case QUARTA:
std::cout << "Quarta-feira" << std::endl;
break;
case QUINTA:
std::cout << "Quinta-feira" << std::endl;
break;
case SEXTA:
std::cout << "Sexta-feira" << std::endl;
break;
case SABADO:
std::cout << "Sábado" << std::endl;
break;
case DOMINGO:
std::cout << "Domingo" << std::endl;
break;
default:
std::cout << "Dia inválido" << std::endl;
break;
}
return 0;
}
```
# Ponteiros
Ponteiros são um conceito fundamental em linguagens de programação, incluindo C++. Eles permitem que você armazene e manipule endereços de memória, permitindo acesso direto aos dados que estão armazenados nesses endereços. Basicamente, **ponteiro são variáveis que armazenam o endereço de memória de outras variáveis.**
## Porque usar ponteiros
## Sintaxe
```cpp
#include <iostream>
int main() {
int numero = 42; // Variável inteira
int* ponteiro; // Ponteiro para um inteiro
// Inicializando o ponteiro com o endereço da variável 'numero'
ponteiro = №
// Imprimindo o valor e o endereço da variável 'numero'
std::cout << "Valor de numero: " << numero << std::endl;
std::cout << "Endereço de numero: " << &numero << std::endl;
// Imprimindo o valor e o endereço armazenado no ponteiro
std::cout << "Valor apontado pelo ponteiro: " << *ponteiro << std::endl;
std::cout << "Endereço armazenado no ponteiro: " << ponteiro << std::endl;
return 0;
}
```
# Vetores
# Tipos de paradigmas (Imperativo, declarativo...)
Os paradigmas da programação são abordagens ou estilos diferentes para projetar e desenvolver programas de computador. Cada paradigma define como o código é estruturado, como os dados são organizados e como os problemas são resolvidos.
## Imperativo
Também é chamado de paradigma procedural. Nesse tipo de construção, as instruções devem ser passadas ao computador na sequência em que devem ser executadas
Esse tipo de programação é recomendada em projetos nos quais não se espera que haja mudanças significativas ao longo do tempo (programa estático) ou quando não existirem muitos elementos compartilhados.
### Orientado a objetos
## Declarativo
### Lógico
### Funcional
{%hackmd @themes/dracula %}