Please enable JavaScript.
Coggle requires JavaScript to display documents.
MM2 - Introdução - Coggle Diagram
MM2 - Introdução
Macros and Symbolic Constants
Macros: Substituição textual em compilação
Tipos de macros
Constantes simbólicas
Macros com parâmetros
Características
Não respeitam escopo tradicional
Substituição antes da compilação
Não afetam strings
Uso com caracteres
<cctype>:
isalpha, isdigit, etc.
toupper, tolower
Macros vs Funções
Macros:
Mais rápidas (sem overhead)
Podem aumentar código
Funções:
Mais seguras
Melhor organização
Alternativa:
inline
Benefícios
Legibilidade
Facilidade de manutenção
Operadores para Tipos Fundamentais
Atitméticos
Binários:
+, -, *, /, %
Unários:
+, -, ++, --
Regras
Divisão inteira => resultado inteiro
Se houver float => resultado float
Prefix vs Postfix
i++ => usa depois incrementa
++i => incrementa antes
Precedência
Ordem de execução dos operadores
Atribuição
Simples:
=
Composta:
+=, -=, *=, /=, %=
Conceitos:
Atribuição é expressão
Pode ter encadeamento: i = j = 9
Side effects (evitar)
Operadores relacionais
<, <=, >, >=, ==, !=
Resultado = bool
Operadores lógicos
&&, ||, !
Short-circuit evaluation
0 => false, ≠0 => true
Input e Output com Streams
Streams
Streams padrao
cin: entrada
cout: saída
cerr, clog
Hierarquia
ios: classe base
istream (entrada)
ostream (saída)
">>" input
"<<" output
Formatação de I/O
Manipulators
oct, dec, hex
uppercase
showpos, noshowpos
fixed, scientific
showpoint
Flags de formatação: Controlam como dados são exibidos
Precisão e controle
precision()
setprecision
setw()
<iomanip>
Entrada/Saída não formatada
cin.get()
getline()
Leitura com delimitadores
Manipulação de caracteres
Leitura:
cin.get(ch)
cin >> ch
Escrita:
cout.put()
cout <<
Convertendo Tipos Aritméticos
Conversão implícita
Automática pelo compilador
Tipos menores -> maiores
Conversão em expressões
Mistura de tipos permitida
Promoção automática
Conversão em atribuição
Demotion (perda de informação)
Conversão explícita (cast)
Forçada pelo programador
Control flow
Estruturas de repetição
while
do-while
for
Estruturas condicionais
if
if-else
else if
Operador ternário
switch
Controle de fluxo
break
continue
goto