Pular para o conteúdo
Concursos

Lógica de programação: algoritmos, estruturas de controle, vetores, funções, estruturas de dados e ordenação

Compartilhar no WhatsApp

Os temas de lógica de programação mais cobrados em concursos de TI: algoritmos e suas representações, tipos de dados e operadores, estruturas de decisão e de repetição, vetores e matrizes, funções e recursividade, pilhas e filas, busca, ordenação e orientação a objetos.

Informática Equipe SOS Concursos Publicado em 26 de setembro de 2026 6 minutos de leitura

A lógica de programação é a base das provas de tecnologia da informação, cobrada em concursos para analistas e técnicos de TI de tribunais, bancos, secretarias, agências e estatais. As questões costumam apresentar algoritmos em pseudocódigo ou em uma linguagem de programação e pedir o resultado da execução, além de cobrar conceitos de estruturas de dados, ordenação e orientação a objetos. Este guia resume os pontos mais cobrados. O guia de banco de dados complementa a formação básica em TI.

O que é um algoritmo

Um algoritmo é uma sequência finita, ordenada e bem definida de passos para resolver um problema. Ele pode ser representado por descrição narrativa, em linguagem natural; por fluxograma, com símbolos gráficos, como o losango para decisão e o retângulo para processamento; ou por pseudocódigo, uma linguagem estruturada próxima das linguagens de programação, muito usada nas provas.

Variáveis, tipos e operadores

Uma variável é um espaço na memória, identificado por um nome, que armazena um valor que pode mudar durante a execução; uma constante tem valor fixo. Os tipos primitivos mais comuns são inteiro, real, caractere ou texto e lógico, com os valores verdadeiro e falso. Os operadores se dividem em:

  • Aritméticos: soma, subtração, multiplicação, divisão, divisão inteira e resto da divisão, este muito cobrado para verificar se um número é par.
  • Relacionais: igual, diferente, maior, menor, maior ou igual e menor ou igual, que resultam em verdadeiro ou falso.
  • Lógicos: E, OU e NÃO, que seguem as regras da tabela-verdade.

Estruturas de controle: decisão e repetição

  • Sequencial: os comandos são executados um após o outro.
  • Condicional: o comando "se, então, senão" executa blocos diferentes conforme uma condição; o comando "escolha", ou caso, seleciona entre várias opções.
  • Repetição com teste no início, o "enquanto": repete o bloco enquanto a condição for verdadeira, e pode não executá-lo nenhuma vez.
  • Repetição com teste no fim, o "repita até": executa o bloco pelo menos uma vez e repete até que a condição se torne verdadeira.
  • Repetição com variável de controle, o "para": repete o bloco um número definido de vezes.
Faça o teste de mesa: nas questões que pedem o resultado de um algoritmo, monte uma tabela com as variáveis e anote o valor de cada uma a cada passo. Esse teste de mesa evita erros de cabeça, principalmente em laços com várias variáveis. Atenção às condições de parada e à ordem de atualização das variáveis.

Vetores, matrizes e registros

O vetor é uma estrutura homogênea unidimensional, que armazena vários valores do mesmo tipo, acessados por um índice; a matriz é uma estrutura homogênea com duas ou mais dimensões, acessada por linha e coluna; e o registro é uma estrutura heterogênea, que agrupa campos de tipos diferentes, como nome, idade e salário de uma pessoa. Em muitas linguagens, os índices dos vetores começam em zero, detalhe que as bancas costumam explorar.

Funções, procedimentos e recursividade

A modularização divide o programa em partes menores. A função retorna um valor; o procedimento executa ações sem retornar valor. Na passagem de parâmetros por valor, a função recebe uma cópia, e as alterações não afetam a variável original; na passagem por referência, a função acessa a própria variável, e as alterações a afetam. A recursividade ocorre quando uma função chama a si mesma, e exige uma condição de parada, como no cálculo do fatorial.

Estruturas de dados mais cobradas

  • Pilha: segue a regra LIFO, em que o último a entrar é o primeiro a sair, com as operações de empilhar e desempilhar.
  • Fila: segue a regra FIFO, em que o primeiro a entrar é o primeiro a sair.
  • Lista encadeada: elementos ligados por ponteiros, que facilitam inserções e remoções.
  • Árvore: estrutura hierárquica, com raiz e nós filhos; na árvore binária de busca, os valores menores ficam à esquerda e os maiores à direita.

Busca, ordenação e complexidade

A busca sequencial percorre os elementos um a um e funciona em qualquer vetor. A busca binária exige vetor ordenado e descarta metade dos elementos a cada comparação, sendo muito mais rápida. Entre os algoritmos de ordenação, os mais cobrados são o da bolha, o de seleção e o de inserção, mais simples e lentos, e o merge sort e o quick sort, mais eficientes. A eficiência é expressa pela notação O grande: a busca sequencial é O(n), a binária é O(log n), o método da bolha é O(n²) e o merge sort é O(n log n).

Orientação a objetos e seus pilares

Na programação orientada a objetos, a classe é o modelo, e o objeto é a instância criada a partir dela, com atributos e métodos. Os pilares mais cobrados são o encapsulamento, que esconde os detalhes internos e expõe apenas o necessário; a herança, que permite a uma classe reaproveitar características de outra; o polimorfismo, que permite que um mesmo método tenha comportamentos diferentes conforme o objeto; e a abstração, que representa apenas as características essenciais. O desenvolvimento de sistemas está no guia de engenharia de software.

Um exemplo de teste de mesa

Considere o algoritmo: soma ← 0; para i de 1 até 4 faça: se i mod 2 = 0 então soma ← soma + i; fim; escreva soma. No teste de mesa, com i igual a 1, o resto da divisão por 2 é 1, e a soma continua 0; com i igual a 2, o resto é 0, e a soma passa a 2; com i igual a 3, nada muda; e com i igual a 4, a soma passa a 6. O algoritmo escreve 6, que é a soma dos números pares de 1 a 4. Esse tipo de questão é muito comum nas provas.

Linguagens compiladas e interpretadas

Nas linguagens compiladas, como C, o código-fonte é traduzido de uma só vez para código de máquina, gerando um executável, o que costuma resultar em maior desempenho. Nas interpretadas, como Python e JavaScript, o código é executado linha a linha por um interpretador. O Java é um caso intermediário: o código é compilado para bytecode, executado pela máquina virtual Java. As provas de TI costumam trazer trechos de Python ou Java para interpretação.

Como estudar

Pratique com muitos algoritmos, fazendo o teste de mesa à mão, porque a maior parte das questões pede o resultado da execução. Depois, estude as estruturas de dados, a busca e a ordenação, com a notação O grande, e os pilares da orientação a objetos. Se o edital indicar uma linguagem específica, treine a leitura de código nela.

Com o tempo, você passa a reconhecer os padrões mais comuns, como acumuladores, contadores e trocas de valores entre variáveis, o que acelera a resolução das questões na prova.

Exemplos de como cai

Afirmação: "Na estrutura repita até, o bloco pode não ser executado nenhuma vez." Errado. Como o teste é no fim, o bloco é executado pelo menos uma vez.

Afirmação: "A busca binária exige que os dados estejam ordenados." Certo. Sem ordenação, ela não funciona.

Afirmação: "A pilha segue a regra FIFO." Errado. A pilha segue a regra LIFO; a fila é que segue a FIFO.

Resumo para revisar antes da prova

Algoritmo como sequência finita de passos, em narrativa, fluxograma ou pseudocódigo; variáveis, constantes e tipos primitivos; operadores aritméticos, relacionais e lógicos; estruturas sequencial, condicional e de repetição, com enquanto, repita e para; teste de mesa; vetores e matrizes homogêneos e registros heterogêneos; funções, procedimentos, passagem por valor e por referência e recursividade; pilha LIFO, fila FIFO, listas e árvores; busca binária em vetor ordenado; notação O grande; e classe, objeto, encapsulamento, herança, polimorfismo e abstração.

Perguntas frequentes

Qual a diferença entre as estruturas enquanto e repita?

Na estrutura enquanto, a condição é testada no início, e o bloco pode não ser executado nenhuma vez. Na estrutura repita até, a condição é testada no fim, e o bloco é executado pelo menos uma vez.

Qual a diferença entre pilha e fila?

A pilha segue a regra LIFO, em que o último elemento a entrar é o primeiro a sair, como uma pilha de pratos. A fila segue a regra FIFO, em que o primeiro a entrar é o primeiro a sair, como uma fila de banco.

Quando é possível usar a busca binária?

A busca binária exige que o vetor esteja ordenado. Ela compara o elemento procurado com o do meio e descarta metade dos elementos a cada passo, o que a torna muito mais rápida que a busca sequencial em grandes volumes.

Leia também em Informática

Todos os artigos de Informática