ESTUDOS/PROGRAMÇÃO/Guia de C++.md

120 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 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.