00 - Conceitos básicos Flashcards
O que é recursividade?
É uma técnica em que uma função chama a si mesma.
Qual é a composição da recursividade?
Toda recursividade é composta por um caso base e por chamadas recursivas.
O caso base é uma solução trivial para sair do loop infinito. É uma condição de parada para resolver o problema.
Quais as vantagens e desvantagens da recursividade?
Vantagem: torna a escrita do código menor e mais simples.
Desvantagem: quando o loop é muito grande, é consumida muita memória RAM.
Quais são os tipos de recursividade?
Direta: a função chama a si mesma.
Indireta: a função chama outra função que chama a 1º.
O que é uma rotina?
Rotina: conjunto de instruções (algoritmo)
O que é uma sub-rotina?
Sub-rotina: pedaço menor do algoritmo que será utilizado repetidamente em diferentes locais do sistema e que resolve um problema mais específico. No Paradigma Orientado a Objetos, é chamada de método.
Elas podem vir por meio de uma função (RETORNA VALOR) ou de um procedimento (NÃO RETORNA VALOR).
Quais são as vantagens de uma sub-rotina?
1) Redução de código duplicado;
2) Possibilidade de reutilizar o mesmo código sem grandes mudanças em outros programas;
3) Decomposição de problemas grandes em pequenas partes;
4) Melhorar interpretação visual.
O que é uma co-rotina?
É um trecho de código que trabalha conjuntamente com o código chamador até que a tarefa termine.
Quais são as formas existentes de passagem de parâmetro?
Por valor: cópia das duas variáveis
Por referência: referência para as duas variáveis originais e, não, cópias. As alterações refletem no módulo principal.
Quais são os tipos de tipagem das variáveis?
Fortemente tipada: toda variável tem um tipo
Fracamente tipada: não tem tipo (pode ser alterada posteriormente e há conversão entre tipos)
numero = ‘2’ (string)
numero2 = 2 (number)
numero == numero2 TRUE
numero === numero2 FALSE
Estaticamente tipada: o tipo tem que ser definido em tempo de COMPILAÇÃO
Dinamicamente tipada: o tipo é definido em tempo de EXECUÇÃO.