Fundamentos de C++

Tipos, expressões, entrada e saída, condições, ciclos e âmbito de variáveis.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Tipos e divisão

PerguntaResposta
Que tipo uso?int inteiro, double aproximado, char unidade de armazenamento, bool lógico
auto muda em execução?Não. Deduz em compilação e fixa o tipo
int n{3.7}; compila?Não. Chavetas recusam perda de informação. int n = 3.7; guarda 3
Tamanho de int?Depende do sistema. Mede com sizeof, consulta limites em <limits>
int a = 7, b = 2;
double x = a / b;                       // 3.0, divisão inteira primeiro
double y = static_cast<double>(a) / b;  // 3.5, conversão antes de dividir
  • Truncagem em direção a zero: -7 / 2 == -3, -7 % 2 == -1.
  • Indefinido: divisão inteira por zero, overflow com sinal.
  • double guarda aproximações. Para resultados calculados, escolhe o teste adequado ao contrato e ao erro numérico, por exemplo std::fabs(a - b) < 1e-9 com <cmath>.

Condições e ciclos

  • Intervalo: 0 <= nota && nota <= 20. 0 <= nota <= 20 compara (0 <= nota) com 20.
  • Curto-circuito: em n != 0 && soma / n > 10, a divisão só corre com n != 0.
  • switch: quando não pretendes continuar no caso seguinte, sai com break ou return. Casos agrupados e queda intencional continuam possíveis. default cobre o resto.
  • while pode correr zero vezes. do ... while corre pelo menos uma.
  • = atribui. == compara.
CicloQuando escolher
forNúmero de passos conhecido, com inicialização, condição e avanço juntos
whileRepetir enquanto uma condição se mantém, podendo ser zero vezes
do ... whileO corpo tem de correr pelo menos uma vez

Âmbito é onde o nome é visível. Duração é quando o objeto existe. O i do for morre no fim do ciclo.

Entrada e compilação

  1. Extrai uma vez e testa o sucesso na mesma expressão: if (!(cin >> nota)) trata entrada ausente ou inválida.
  2. Valida o domínio: nota < 0 || nota > 20.
  3. Só depois usa o valor.
  • >> lê até ao espaço. getline lê a linha com espaços interiores.
  • Fluxo em condição é falso com failbit ou badbit. Só eofbit não invalida leitura bem sucedida.
  • main termina com return 0 implícito. Volta a compilar depois de editar:
g++ -std=c++17 -Wall -Wextra -Wpedantic notas.cpp -o notas
./notas

Contagem com validação e invariante.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.