118 lines
6.2 KiB
Markdown
118 lines
6.2 KiB
Markdown
## Guia de C++
|
||
|
||
Este é um guia de estudos preparado por mim, com os materiais que a minha professora de Programação de computadores disponibilizou para a minha turma. Está é uma documentação de meus estudos e foi acurada por um iniciante, sempre confira informações importantes e se certifique de estudar com outros materiais de maior confiabilidade.
|
||
|
||
### Materiais de referência
|
||
- [Introdução a C++ (Profa Regiane Kawasaki)](introdução_cpp_kawasaki.pdf)
|
||
## Básico
|
||
### Estrutura
|
||
Está é a estrutura básica de um programa qualquer em C++:
|
||
|
||
```
|
||
#include <iostream>
|
||
using namespace std;
|
||
int main ()
|
||
{
|
||
return 0;
|
||
}
|
||
|
||
```
|
||
|
||
#### Oque cada coisa significa ?
|
||
|
||
`#include <iostream>` --> Aqui se declara as bibliotecas que serão utilizadas no programa, essa demarcação é feita pelo comando `#include`no início do programa e a biblioteca, nesse caso a **iostream**, é posta entre os sinais de menor e maior : **<>**
|
||
|
||
`using namespace std;`--> O `std;`serve para dizer ao programa que tudo na biblioteca padrão de nomes reservados, a Standard= `std`, você estará utilizando. Caso você não use o `using namespace std; ` você terá que por `std::`antes de cada comando básico em C++, como cin e cout. Ou seja, com ele você pode escrever as palavras reservadas sem o prefixo `std::`
|
||
|
||
```
|
||
std::cout -> Você terá que escrever isso sempre se não usar o comando
|
||
cout-> Mas usabdo ele, você pode simplesmente usar a palavra reservada que vai funcionar perfeitamente
|
||
```
|
||
|
||
`int main ()`-> É aqui que seu programa começa a rodar de verdade, este comando identifica o início de seu programa, a seguir, você irar por todas as instruções dentro do par de chaves **{}**, para que seja tudo executado perfeitamente
|
||
|
||
`return 0;`-> Este comando serve para sinalizar para o sistema operacional de que tudo dentro do código ocorreu bem e está tudo funcional, ele é utilizado praticamente sempre na função `main() `, mas também pode aparecer em outras funções. Alguns programas simples em C++ conseguem rodar tranquilamente sem que você deixe explícito o `return 0;`, isso por que nas versões mais recentes do C++ o compilador entende automaticamente que o `return 0 `está lá e roda o programa normalmente, somente em alguns casos onde o código é particularmente complexo que isso não funciona, mas como estamos no nível básico isso não nos convém agora. A principal razão pela qual é muito aconselhável usar o `return 0;` é por que isso é considerado uma boa prática, já que isso facilita a manutenção de um terceiro no seu código.
|
||
|
||
##### Aqui vai um exemplo reunindo todos estes conceitos
|
||
|
||
```
|
||
#include <iostream>
|
||
using namespace std;
|
||
int main()
|
||
{
|
||
cout<< "Olá mundo! Programar em C++ é melzinho na chupeta hehehe";
|
||
return 0;
|
||
}
|
||
|
||
|
||
```
|
||
|
||
## Tipos de dados
|
||
|
||
Aqui vão alguns tipos de dados fundamentais em C++:
|
||
|
||
| Tipo | Bytes | Intervalo | Uso |
|
||
| ------ | ----- | -------------------- | ----------------------------- |
|
||
| char | 1 | -128 a 127 | Um caractere |
|
||
| int | 4 | -2.1 bi a 2.1 bi | Números inteiros |
|
||
| float | 4 | 1.2×10⁻³⁸ a 3.4×10³⁸ | Decimais com precisão simples |
|
||
| double | 8 | 1.2×10⁻³⁸ a 3.4×10³⁸ | Decimais com dupla precisão |
|
||
| bool | 1 | true/false | Valores lógicos |
|
||
### char
|
||
|
||
Este é utilizado para representar valores alfanuméricos unitários de forma que eles ocupem menos espaço, ocupando então apenas 1 byte na memória. Os símbolos compreendidos são os chamados **caracteres**: símbolos, letras e algarismos. todos esses caracteres são representações de números compreendidos internamente no intervalo de [-128,127]
|
||
- char letra = 'A'
|
||
- char número = '7'
|
||
- char símbolo = '!'
|
||
### string
|
||
|
||
Usado para representar textos, a diferença para o char é que ele armazena uma sequência de caracteres, e ocupa um número variado de bytes, enquanto o char só guarda 1 único caractere.
|
||
- string = " Cale-se, cale-se , cale-se se não você me deixa looouco!"
|
||
- string = "Ninguém tem paciência comigo..."
|
||
- string = "Não contavam com minha astúcia!"
|
||
### int
|
||
Este representa os números compreendidos nos conjunto dos números inteiros (ℤ). O intervalo de números aceitos em compiladores varia de versão para versão mas usualmente o intervalo é de<u> 2.147.483.648</u> até<u> 2.147.483.647</u>. Ele ocupa geralmente 2 bytes de memória.
|
||
- int = -1922
|
||
- int = 44
|
||
- int = 0
|
||
|
||
### unsigned / unsigned int
|
||
Este é usado para representar valores compreendidos no conjunto dos números naturais (ℕ). Embora haja diferença entre compiladores , usualmente o intervalo de números aceitos é de 0 até <u>2.147.483.647</u>
|
||
- unsigned = 9
|
||
- unsigned = 1344
|
||
- unsigned = 55
|
||
|
||
### short / short int
|
||
Utilizado para representar valores com menos precisão que o **int** ,dependendo do compilador ele ocupa 2 bytes de memória
|
||
|
||
### long / long int
|
||
Dependendo do compilador, ele é utilizado para representar valores com mais precisão do que o int, ele ocupa 4 bytes de memória r.
|
||
|
||
### long long / long long int
|
||
Este traz uma precisão maior ainda do que o long dependendo do compilador, ele ocupa 8 bytes de memória.
|
||
|
||
### bool
|
||
|
||
Utilizado para representar valores lógicos que também recebem o nome de valores booleanos em referência a teoria de George Boole, os dois valores possíveis são true (verdadeiro) e false (falso). Estes dados geralmente são usados para representar o resultados de uma expressão condicional.
|
||
- Pepsi > Coca-cola = true
|
||
- 7 > 8 = false
|
||
- 12 > 9 = true
|
||
|
||
### float
|
||
Usado para representar valores que estão em ponto flutuante, apresenta uma precisão simples quando utilizado, ele consome 4 bytes de memória, dependendo do compilador, o intervalo de representações está compreendido entre `1.2×10⁻³⁸` até `3.4×10³⁸`
|
||
|
||
- float = 7.123
|
||
- float = -34.90
|
||
- float = 1.228272272772
|
||
|
||
### double
|
||
Este apresenta uma dupla precisão de representação em comparação ao **float** para números flutuantes, consome 8 bytes , dependendo do compilador o intervalo compreendido está entre `1.2×10⁻³⁸` até `3.4×10³⁸`
|
||
|
||
### long double
|
||
Este representa valores em ponto flutuante com uma precisão maior ainda do que o double, consome pelo menos 10 bytes.
|
||
|
||
|
||
|
||
|
||
|
||
|