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
Sobre tipos de dados estruturados avançados: Defina árvore AVL
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
Sobre tipos de dados estruturados avançados: Defina uma árvore vermelho-preta
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
Sobre tipos de dados estruturados avançados: Defina árvore heap
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
Defina uma variável
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
Qual é a função de uma função?
otimizar o código e melhorar a legibilidade dos programas.
30
Defina o conceito de "bloco de comandos"
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
Cite dois exemplos de estruturas de controle
Condicionais - If/else Loops - for/while
32
Explique a função IF, usada para controle de fluxo
. Ela executa um conjunto de instruções apenas se uma condição especificada é verdadeira Se (condição) Então comando1 Senão comando2
33
Explique a função SWITCH, usada para controle de fluxo
É 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
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
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
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
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
Explique estruturas de desvio
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
Operadores e expressões (esse é só pra olhar e lembrar)
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
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
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
Explique como funciona a técnica de programação de recursividade
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
Defina o conceito de complexidade de algoritmos
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
Defina a complexidade de algoritmos de tempo
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
Defina a complexidade de algoritmos de espaço
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
Complexidade Big O de algoritmos, explique
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
Explique as 4 notações Big 'O' (O representa a ordem do algoritmo) O(1), O(n), O(n²) e O(log n)
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.