Conceitos básicos Flashcards

1
Q

O que é uma função? (não é decoreba)

A

As funções são um bloco de código ou comandos constituindo um conjunto específico de instruções repetíveis, que recebem uma ou mais entradas e produzem alguma saída.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Premissas do clean code
(entendimento)

A

Esse é um dos princípios do “Clean Code”.

Nomes Significativos
Funções Pequenas
Comentários Informativos
Evitar Comentários Óbvios
Padrão de Indentação
Evitar Códigos Repetidos
Limitar o Escopo das Variáveis

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Como são separados os blocos de código em Python?

A

Por indentação

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

O que é Polimorfismo dinâmico? (entendimento)

A

São subclasses que fornecem diferentes implementações de algum método da superclasse, implementam em classes diferentes. (herança)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que é Polimorfismo estático?
(entendimento)

A

Polimorfismo Estático ou Sobrecarga Ocorre onde o mesmo método é implementado várias vezes na mesma classe

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Como definir a lógica de programação?

A

lógica de programação é todo conjunto de regras e conceitos que precisamos aplicar para criar códigos que serão interpretados e executados por um computador

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

O que é um algoritmo?

A

Um algoritmo é
uma sequência de passos ou instruções destinadas a realizar uma tarefa específica

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Sobre tipos de dados simples:
Me dê três exemplos

A

Eles incluem tipos como inteiros, reais, caracteres, booleanos, strings e float.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Sobre tipos de dados simples:
Defina o tipo inteiro

A

O tipo Inteiro representa números sem partes fracionárias. São utilizados para contar, indexar
e em operações matemáticas. Por exemplo, idade = 30 indica que a variável idade armazena um
valor inteiro de 30

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Sobre tipos de dados simples:
Defina o tipo real(float)

A

O tipo Real (Float) refere-se a números que podem conter frações, conhecidos como números
de ponto flutuante. São utilizados para cálculos que exigem precisão. Por exemplo, salario =
4500.50 indica que a variável salario armazena um número real.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Sobre tipos de dados simples:
Defina o tipo caractere

A

O tipo Caractere representa um único símbolo, como uma letra, número ou sinal de pontuação.
É comumente usado para construir textos ou controlar aspectos de exibição. Por exemplo, inicial
= ‘A’

mostra que a variável inicial armazena o caractere ‘A’.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Sobre tipos de dados simples:
Defina o tipo booleano

A

O tipo Booleano é usado para representar valores de verdade, como verdadeiro ou falso. Eles
são fundamentais em estruturas de controle e tomada de decisão. Por exemplo, ativo =
verdadeiro indica que a variável ativo tem um valor booleano verdadeiro.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Sobre tipos de dados simples:
Defina o tipo string

A

O tipo String é utilizado para representar sequências de caracteres, permitindo armazenar e
manipular textos. Por exemplo, nome = “Maria” indica que a variável nome armazena uma string
“Maria”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Sobre tipos de dados estruturados:
Defina um array

A

O Array é uma estrutura de dados que armazena uma coleção de elementos do mesmo tipo.
Os elementos de um array são acessados por índices. Por exemplo,
numeros[5] = [1, 2, 3, 4,5] define um array numeros com cinco elementos, cada um armazenando um número inteiro.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Sobre tipos de dados estruturados:
Defina um struct(registro)

A

Um Struct ou Registro, permite agrupar variáveis de tipos diferentes sob um mesmo nome.
Isso facilita a manipulação de dados complexos, como um registro de aluno que inclui nome, idade e
notas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Sobre tipos de dados estruturados:
Defina uma lista

A

Uma Lista é uma coleção de elementos que podem ser de qualquer tipo, incluindo outras listas.
Ao contrário de arrays, o tamanho de uma lista pode variar durante a execução do programa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Sobre tipos de dados estruturados:
Defina uma lista encadeada

A

Uma Lista Encadeada é uma sequência de elementos, onde cada um deles contém dados e
um ponteiro para o próximo elemento da sequência. Isso permite inserções e exclusões eficientes em
qualquer posição da lista

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Sobre tipos de dados estruturados:
Defina uma pilha(stack)

A

Uma Pilha, ou Stack, é uma coleção linear que segue a regra LIFO (Last In, First Out). Em uma
pilha, o último elemento adicionado é o primeiro a ser removido

19
Q

Sobre tipos de dados estruturados:
Defina uma fila(queue)

A

Uma Fila, ou Queue, é uma coleção que segue a regra FIFO (First In, First Out). Em uma fila,
o primeiro elemento adicionado é o primeiro a ser removido.

20
Q

Sobre tipos de dados estruturados:
Defina uma árvore

A

Uma Árvore é uma estrutura de dados hierárquica com um elemento raiz, do qual partem
ramos que levam a outros elementos, chamados de nós ou folhas. Árvores são utilizadas em muitas
estruturas de dados complexas e algoritmos.

21
Q

Sobre tipos de dados estruturados:
Defina uma árvore binária

A

Uma Árvore Binária é uma estrutura de dados em que cada nó tem no máximo dois filhos,
conhecidos como filho esquerdo e filho direito. É utilizada para implementar árvores de busca binária,
árvores AVL, árvores vermelho-preto e outras estruturas de dados complexas, permitindo operações
eficientes de busca, inserção e remoção

22
Q

Sobre tipos de dados estruturados:
Defina grafo

A

Um Grafo é um conjunto de nós (ou vértices) conectados por arestas. Grafos são usados para
representar relações entre objetos, como redes sociais ou mapas de cidades

23
Q

Sobre tipos de dados estruturados:
Defina tabela hash

A

Uma Tabela Hash é uma estrutura que mapeia chaves para valores. É uma maneira eficiente
de implementar dicionários, onde cada chave é única e mapeia para um valor específico.

24
Q

Sobre tipos de dados estruturados avançados:
Defina B-Tree

A

Uma B-Tree é uma estrutura de dados de árvore balanceada que mantém os dados
classificados e permite pesquisas, inserções e remoções em tempo logarítmico. As B-Trees são frequentemente usadas em sistemas de bancos de dados e sistemas de arquivos devido à sua
eficiência em operações de leitura e escrita em discos.

25
Q

Sobre tipos de dados estruturados avançados:
Defina árvore AVL

A

Uma Árvore AVL, ou Árvore Binária de Busca Balanceada, é um tipo de árvore binária onde a
diferença de altura entre as subárvores de qualquer nó não é mais do que um. Isso garante que a
árvore esteja sempre balanceada, otimizando operações de busca, inserção e remoção.

26
Q

Sobre tipos de dados estruturados avançados:
Defina uma árvore vermelho-preta

A

Uma Árvore Vermelho-Preto é uma árvore binária de busca autoequilibrante. Cada nó da
árvore tem uma cor extra, vermelha ou preta, usada para garantir que a árvore permaneça
aproximadamente balanceada durante as inserções e remoções.

27
Q

Sobre tipos de dados estruturados avançados:
Defina árvore heap

A

Um Heap é uma árvore binária especializada onde o elemento de maior (ou menor) valor está
sempre na raiz. Heaps são comumente usados em algoritmos de ordenação e para implementar filas
de prioridade.

28
Q

Defina uma variável

A

Variáveis são espaços na memória utilizados para armazenar dados que podem ser alterados
durante a execução de um programa. Constantes são semelhantes às variáveis, mas seus valores são fixos e não mudam

PYTHON(constante em caixa alta) =
Variável
minha_variavel = 10
Constante (por convenção)
MINHA_CONSTANTE = 20

JAVASCRIPT(let para variaveis e const para constantes)
// Variável
let minhaVariavel = 10;
// Constante
const MINHA_CONSTANTE = 20;

JAVA(usa final na constante)
// Variável
int minhaVariavel = 10;
// Constante
final int MINHA_CONSTANTE = 20;

29
Q

Qual é a função de uma função?

A

otimizar o código e melhorar a legibilidade dos
programas.

30
Q

Defina o conceito de “bloco de comandos”

A

O bloco de comandos agrupa uma série de instruções ou comandos que são executados em
conjunto, permitindo organizar o código de forma clara e lógica.
Um bloco de comandos é delimitado por chaves, parênteses ou palavras-chave específicas,
dependendo da linguagem de programação. Dentro de um bloco, os comandos são executados
sequencialmente. Blocos podem conter outros blocos, criando uma estrutura hierárquica.

Ex
Início
comando1
comando2
comando3
fim

31
Q

Cite dois exemplos de estruturas de controle

A

Condicionais - If/else
Loops - for/while

32
Q

Explique a função IF, usada para controle de fluxo

A

. Ela executa um conjunto
de instruções apenas se uma condição especificada é verdadeira

Se (condição) Então
comando1
Senão
comando2

33
Q

Explique a função SWITCH, usada para controle de fluxo

A

É usada para selecionar um dos muitos blocos de código a serem executados. É uma forma mais legível e eficiente de escrever uma sequência de if e else if statements.

Escolha (variável)
Caso valor1:
comando1
Caso valor2:
comando2
Padrão:
comandoPadrão
FimEscolha

34
Q

As estruturas de repetição permitem executar um bloco de código várias vezes, com base em
uma condição. Explique o loop FOR

A

O loop For é usado quando se sabe antecipadamente quantas vezes o loop deve ser
executado. A condição para a repetição é geralmente um contador que aumenta ou diminui a cada
iteração

Para i de 1 até 10 Faça
comando
FimPara

35
Q

As estruturas de repetição permitem executar um bloco de código várias vezes, com base em
uma condição. Explique o loop WHILE

A

O loop While é usado quando o número de iterações não é conhecido antecipadamente. O
bloco de código é executado repetidamente enquanto a condição especificada permanece verdadeira.

Enquanto (condição) Faça
comando
FimEnquanto

O comando é repetido até que a condição se torne falsa.

36
Q

Explique estruturas de desvio

A

As estruturas de desvio são usadas para transferir o controle do programa para outro ponto no código.
A instrução Goto desvia o fluxo do programa para um marcador especificado. Embora permita um controle de fluxo direto, é geralmente desaconselhada devido à sua tendência de tornar o código menos legível e mais difícil de manter. Quando alcançado, o programa salta para o marcador especificado e continua a execução a
partir daí.

VáPara marcador

marcador:
comando

37
Q

Operadores e expressões (esse é só pra olhar e lembrar)

A

Operadores Aritméticos
soma = a + b
subtração = a - b
multiplicação = a * b
divisão = a / b
módulo = a % b

operadores lógicos
e = a AND b
ou = a OR b
não = NOT a

Operadores de Comparação
igual = a == b
diferente = a != b
maior = a > b
menor = a < b
maiorOuIgual = a >= b
menorOuIgual = a <= b

expressões, exemplo de expressão
resultado = (a + b) * c

38
Q

A passagem de parâmetros é um conceito fundamental em lógica de programação. Ela se
refere ao processo de fornecer valores a funções ou procedimentos para que possam operar com esses
dados. Existem duas formas principais de passagem de parâmetros: por valor e por referência. Diferencie as duas

A

Na passagem por valor, uma cópia do valor real é passada para a função ou procedimento.
Qualquer alteração feita no parâmetro dentro da função não afeta a variável original fora dela

Na passagem por referência, ao invés de passar uma cópia do valor, é passada uma
referência para a variável original. Qualquer alteração no parâmetro afeta diretamente a variável
original

39
Q

Explique como funciona a técnica de programação de recursividade

A

A recursividade é uma técnica de programação em que uma função chama a si mesma para
resolver um problema. Ela é especialmente útil em situações onde um problema pode ser dividido em
subproblemas menores e mais simples de mesma natureza.
Uma função recursiva deve ter duas características principais: um caso base, que define
quando a função deve parar de chamar a si mesma, e um caso recursivo, onde a função se chama
com um argumento que se aproxima do caso base.

Exemplo: Cálculo de recursividade

def fatorial(n):
if n == 0:
return 1
else:
return n * fatorial(n-1)

print(fatorial(5))

40
Q

Defina o conceito de complexidade de algoritmos

A

A complexidade de algoritmos é um ramo da ciência da computação que se dedica a analisar
a eficiência dos algoritmos, principalmente em termos de tempo de execução e uso de memória.
Existem dois tipos principais de complexidade: Complexidade de Tempo e Complexidade de Espaço.

41
Q

Defina a complexidade de algoritmos de tempo

A

Refere-se ao tempo de execução de um algoritmo, geralmente expresso como uma função do
tamanho da entrada. Por exemplo, um algoritmo com uma complexidade de tempo linear, denotado
como O(n), significa que o tempo de execução aumenta linearmente com o tamanho da entrada

Exemplo 1: Algoritmos de ordenação, como o Bubble Sort, geralmente têm complexidade O(n²),
o que significa que o tempo de execução aumenta quadraticamente com o tamanho da entrada.
Exemplo 2: Uma busca binária em uma lista ordenada tem complexidade de tempo O(log n),
pois a cada passo, a metade da lista é eliminada da busca.

42
Q

Defina a complexidade de algoritmos de espaço

A

Indica a quantidade de memória necessária para a execução de um algoritmo. Assim como a
complexidade de tempo, ela também é expressa em termos do tamanho da entrada. Um algoritmo com
uma complexidade de espaço constante, O(1), usará a mesma quantidade de memória,
independentemente do tamanho da entrada.

Exemplo 1: Algoritmos de ordenação, como o Bubble Sort, geralmente têm complexidade O(n²),
o que significa que o tempo de execução aumenta quadraticamente com o tamanho da entrada.
Exemplo 2: Uma busca binária em uma lista ordenada tem complexidade de tempo O(log n),
pois a cada passo, a metade da lista é eliminada da busca.

43
Q

Complexidade Big O de algoritmos, explique

A

A Complexidade Big O é uma notação matemática usada para descrever a eficiência de um algoritmo em termos do tempo de execução ou do espaço necessário, em relação ao tamanho da
entrada. Esta notação fornece uma medida do pior caso possível, ajudando a entender o comportamento do algoritmo em grandes entradas.

44
Q

Explique as 4 notações Big ‘O’ (O representa a ordem do algoritmo)
O(1), O(n), O(n²) e O(log n)

A

Na notação Big O, o ‘O’ representa a ordem do algoritmo. Esta notação ignora constantes e
termos de menor ordem, concentrando-se na parte do algoritmo que mais cresce em função do
tamanho da entrada. Alguns exemplos comuns incluem:
* O(1) - Tempo constante: O tempo de execução não depende do tamanho da entrada.
* O(n) - Tempo linear: O tempo de execução aumenta linearmente com o tamanho da entrada.
* O(n²) - Tempo quadrático: O tempo de execução aumenta quadraticamente com o aumento da
entrada.
* O(log n) - Tempo logarítmico: O tempo de execução cresce logaritmicamente com o aumento
da entrada.
Exemplo 1: Uma busca linear em uma lista não ordenada tem complexidade O(n), pois em
média metade da lista precisa ser percorrida para encontrar um elemento.
Exemplo 2: O algoritmo de ordenação Bubble Sort tem complexidade O(n²), pois cada
elemento da lista precisa ser comparado com todos os outros.