Atualizado em 25 de setembro de 2026.
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.
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.

