Menu
Coddy logo textTech

Exemplos de pseudocódigo

15 exemplos resolvidos em pseudocódigo Cambridge IGCSE e A-Level, do primeiro OUTPUT até o bubble sort. Cada um mostra a sua saída, e você pode executá-lo no editor abaixo.

Como ler estes exemplos

O pseudocódigo descreve os passos de um programa em um inglês estruturado, sem as regras rígidas de uma linguagem de programação real. Todos os exemplos abaixo usam o padrão Cambridge das provas IGCSE e A-Level: DECLARE para variáveis, ← para atribuição, OUTPUT para mostrar resultados e blocos fechados com ENDIF, NEXT ou ENDWHILE.

Cada exemplo apresenta um problema, dá o pseudocódigo, mostra a saída que ele produz e explica como funciona. Clique em Executar no editor para carregar qualquer exemplo no editor do topo da página, onde você pode percorrê-lo linha por linha e ver as variáveis mudarem. Primeira vez com essa sintaxe? O editor de pseudocódigo tem uma biblioteca clicável com todas as construções.

1. Hello, World

Mostre uma mensagem na tela.

Pseudocódigo
OUTPUT "Hello, World!"
Saída
Hello, World!

OUTPUT mostra o que vem depois dele, e o texto vai entre aspas duplas. Esta única linha já é um programa completo: pseudocódigo não precisa de função principal nem de imports.

2. Somar dois números

Guarde dois números inteiros, some os dois e mostre o total.

Pseudocódigo
DECLARE a : INTEGER
DECLARE b : INTEGER
DECLARE total : INTEGER
a ← 12
b ← 30
total ← a + b
OUTPUT "The total is ", total
Saída
The total is 42

Cada variável é declarada com um nome e um tipo antes de ser usada. A seta ← guarda um valor, então leia total ← a + b como "total recebe a mais b". Uma vírgula no OUTPUT junta o texto e o valor na mesma linha.

3. Par ou ímpar

Descubra se um número é par ou ímpar.

Pseudocódigo
DECLARE n : INTEGER
n ← 17
IF n MOD 2 = 0 THEN
    OUTPUT n, " is even"
ELSE
    OUTPUT n, " is odd"
ENDIF
Saída
17 is odd

MOD dá o resto de uma divisão. Um número par não deixa resto quando dividido por 2, então o teste é n MOD 2 = 0. O IF escolhe um de dois caminhos e o ENDIF fecha o bloco. Em pseudocódigo, um único = compara dois valores; ele nunca atribui.

4. Dar conceito a uma nota de prova

Transforme uma nota de 0 a 100 em um conceito: A para 80 ou mais, B de 60 a 79 e C abaixo de 60.

Pseudocódigo
DECLARE score : INTEGER
DECLARE grade : CHAR
score ← 74
IF score >= 80 THEN
    grade ← 'A'
ELSE
    IF score >= 60 THEN
        grade ← 'B'
    ELSE
        grade ← 'C'
    ENDIF
ENDIF
OUTPUT "Score ", score, " gets grade ", grade
Saída
Score 74 gets grade B

As verificações vão do limite mais alto para o mais baixo, então uma nota 74 falha no primeiro teste e passa no segundo. Colocar um IF dentro do ELSE de outro é como o pseudocódigo Cambridge escreve uma cadeia de else-if. Um CHAR guarda um único caractere entre aspas simples.

5. Somar os números de 1 a 10

Some todos os números inteiros de 1 a 10.

Pseudocódigo
DECLARE total : INTEGER
DECLARE i : INTEGER
total ← 0
FOR i ← 1 TO 10
    total ← total + i
NEXT i
OUTPUT "Sum of 1 to 10 is ", total
Saída
Sum of 1 to 10 is 55

Um laço FOR roda um número fixo de vezes: i assume os valores 1, 2, 3 e assim por diante até 10, e NEXT i marca o fim do corpo do laço. A soma acumulada começa em 0 e cresce a cada volta. A resposta, 55, bate com a fórmula n(n + 1) / 2.

6. Mostrar uma tabuada

Mostre as cinco primeiras linhas da tabuada do 7.

Pseudocódigo
DECLARE i : INTEGER
FOR i ← 1 TO 5
    OUTPUT "7 x ", i, " = ", 7 * i
NEXT i
Saída
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35

O contador do laço i é usado dentro do cálculo, então cada volta mostra uma linha diferente. O OUTPUT pode juntar vários textos e vários valores com vírgulas.

7. Contagem regressiva com um laço WHILE

Conte de 5 até 1 e depois mostre uma mensagem final.

Pseudocódigo
DECLARE count : INTEGER
count ← 5
WHILE count > 0 DO
    OUTPUT count
    count ← count - 1
ENDWHILE
OUTPUT "Liftoff!"
Saída
5
4
3
2
1
Liftoff!

Um laço WHILE testa a condição antes de cada volta e para assim que ela fica falsa. Aqui a condição é count > 0, e o corpo diminui count em um a cada vez. Tire a linha que diminui o valor e o laço nunca termina. Use WHILE quando você não sabe de antemão quantas voltas serão necessárias.

8. Encontrar o maior número de um vetor

Encontre o maior valor em uma lista de seis números.

Pseudocódigo
DECLARE nums : ARRAY[1:6] OF INTEGER
DECLARE i : INTEGER
DECLARE largest : INTEGER
nums[1] ← 14
nums[2] ← 3
nums[3] ← 27
nums[4] ← 9
nums[5] ← 21
nums[6] ← 6
largest ← nums[1]
FOR i ← 2 TO 6
    IF nums[i] > largest THEN
        largest ← nums[i]
    ENDIF
NEXT i
OUTPUT "The largest number is ", largest
Saída
The largest number is 27

ARRAY[1:6] declara seis posições numeradas de 1 a 6, porque os vetores no padrão Cambridge costumam começar em 1. O programa supõe que o primeiro elemento é o maior, compara cada um dos outros com ele e fica com o que for maior. Depois de uma passada pelo vetor, largest guarda a resposta.

9. Calcular uma média

Calcule a média de quatro notas de prova.

Pseudocódigo
DECLARE marks : ARRAY[1:4] OF INTEGER
DECLARE i : INTEGER
DECLARE total : INTEGER
marks[1] ← 70
marks[2] ← 85
marks[3] ← 64
marks[4] ← 91
total ← 0
FOR i ← 1 TO 4
    total ← total + marks[i]
NEXT i
OUTPUT "Average mark: ", total / 4
Saída
Average mark: 77.5

O laço soma cada elemento do vetor em total, e depois o programa divide pela quantidade de notas. O operador / dá um resultado decimal, e é por isso que a saída é 77.5. Use DIV quando quiser uma divisão inteira.

11. Bubble sort

Coloque cinco números em ordem crescente.

Pseudocódigo
DECLARE nums : ARRAY[1:5] OF INTEGER
DECLARE i : INTEGER
DECLARE j : INTEGER
DECLARE temp : INTEGER
nums[1] ← 5
nums[2] ← 1
nums[3] ← 4
nums[4] ← 2
nums[5] ← 8
FOR i ← 1 TO 4
    FOR j ← 1 TO 5 - i
        IF nums[j] > nums[j + 1] THEN
            temp ← nums[j]
            nums[j] ← nums[j + 1]
            nums[j + 1] ← temp
        ENDIF
    NEXT j
NEXT i
FOR i ← 1 TO 5
    OUTPUT nums[i]
NEXT i
Saída
1
2
4
5
8

O bubble sort compara cada par de vizinhos e troca os dois de lugar quando estão na ordem errada. Depois de cada volta do laço externo, o maior valor que restava foi parar no fim, então o laço interno pode parar um elemento antes a cada vez. A troca precisa de uma terceira variável, temp, para guardar um valor enquanto o outro é copiado.

Veja este algoritmo animado

12. Fatorial com uma função

Escreva uma função que retorne o fatorial de n (n!) e use essa função para calcular 5!.

Pseudocódigo
FUNCTION Factorial(n : INTEGER) RETURNS INTEGER
    DECLARE result : INTEGER
    DECLARE i : INTEGER
    result ← 1
    FOR i ← 2 TO n
        result ← result * i
    NEXT i
    RETURN result
ENDFUNCTION

OUTPUT "5! = ", Factorial(5)
Saída
5! = 120

Uma FUNCTION recebe parâmetros, faz o seu trabalho e devolve um valor com RETURN; o cabeçalho informa o tipo que ela retorna. As variáveis declaradas dentro dela só existem enquanto ela executa. 5! é 5 × 4 × 3 × 2 × 1, que dá 120.

13. Contar as vogais de uma palavra

Conte quantas vogais existem na palavra PSEUDOCODE.

Pseudocódigo
DECLARE word : STRING
DECLARE letter : CHAR
DECLARE vowels : INTEGER
DECLARE i : INTEGER
word ← "PSEUDOCODE"
vowels ← 0
FOR i ← 1 TO LENGTH(word)
    letter ← SUBSTRING(word, i, 1)
    IF letter = 'A' OR letter = 'E' OR letter = 'I' OR letter = 'O' OR letter = 'U' THEN
        vowels ← vowels + 1
    ENDIF
NEXT i
OUTPUT word, " has ", vowels, " vowels"
Saída
PSEUDOCODE has 5 vowels

LENGTH dá o número de caracteres de uma string, e SUBSTRING(word, i, 1) pega um caractere a partir da posição i. O laço passa por cada caractere e soma um ao contador sempre que ele é A, E, I, O ou U.

14. FizzBuzz

Mostre os números de 1 a 15, mas escreva Fizz para os múltiplos de 3, Buzz para os múltiplos de 5 e FizzBuzz para os múltiplos dos dois.

Pseudocódigo
DECLARE i : INTEGER
FOR i ← 1 TO 15
    IF i MOD 15 = 0 THEN
        OUTPUT "FizzBuzz"
    ELSE
        IF i MOD 3 = 0 THEN
            OUTPUT "Fizz"
        ELSE
            IF i MOD 5 = 0 THEN
                OUTPUT "Buzz"
            ELSE
                OUTPUT i
            ENDIF
        ENDIF
    ENDIF
NEXT i
Saída
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

A ordem das verificações importa. 15 é múltiplo de 3 e de 5, então o teste do 15 precisa vir primeiro; senão o programa escreveria Fizz e nunca chegaria ao FizzBuzz. É um aquecimento clássico de entrevista porque testa exatamente esse tipo de raciocínio.

15. Tentativas de senha com REPEAT UNTIL

Teste até três senhas, uma de cada vez, e libere o acesso se uma delas estiver correta.

Pseudocódigo
DECLARE attempts : ARRAY[1:3] OF STRING
DECLARE tries : INTEGER
DECLARE guess : STRING
attempts[1] ← "hunter1"
attempts[2] ← "letmein"
attempts[3] ← "open sesame"
tries ← 0
REPEAT
    tries ← tries + 1
    guess ← attempts[tries]
    OUTPUT "Try ", tries, ": ", guess
UNTIL guess = "open sesame" OR tries = 3
IF guess = "open sesame" THEN
    OUTPUT "Access granted"
ELSE
    OUTPUT "Locked out"
ENDIF
Saída
Try 1: hunter1
Try 2: letmein
Try 3: open sesame
Access granted

Um laço REPEAT ... UNTIL testa a condição no final, então o corpo sempre roda pelo menos uma vez. Ele para quando a senha confere ou depois da terceira tentativa. As tentativas vêm de um vetor para que o exemplo rode sem digitar nada; em uma resposta de prova, você normalmente leria cada uma com INPUT.

Perguntas frequentes sobre exemplos de pseudocódigo

Qual é um exemplo de pseudocódigo?

Um exemplo curto decide se alguém passou na prova: IF score >= 50 THEN OUTPUT "Pass" ELSE OUTPUT "Fail" ENDIF. Ele se lê quase como inglês, mas segue regras fixas, então pode ser passado para Python, Java ou qualquer outra linguagem linha por linha. Os 15 programas desta página vão de uma única linha até busca e ordenação.

Como escrever pseudocódigo?

Defina o que o programa precisa fazer e escreva os passos em ordem com um pequeno conjunto de palavras-chave: DECLARE para variáveis, ← para atribuir, IF para decisões, FOR ou WHILE para repetição e OUTPUT para resultados. Indente o corpo de cada bloco, feche o bloco com a sua palavra de fechamento e escreva uma ação por linha.

O pseudocódigo é igual em todas as provas?

Não. Cambridge (IGCSE e A-Level) usa DECLARE e a seta ←, a AQA usa ← sem declarações, a Exam Reference Language da OCR parece Python e a Edexcel escreve SET ... TO. Os exemplos daqui usam Cambridge; o editor de pseudocódigo alterna entre os quatro estilos.

Dá para executar pseudocódigo?

Sim, nesta página. Pseudocódigo não é uma linguagem de programação real, então não existe um compilador oficial, mas o editor daqui executa pseudocódigo Cambridge no navegador, mostra a saída e percorre o programa linha por linha. Clique em Executar no editor abaixo de qualquer exemplo.

Qual a diferença entre pseudocódigo e fluxograma?

Os dois descrevem um algoritmo antes de ele virar código. Um fluxograma desenha os passos como caixas e setas, o que funciona bem para processos curtos com poucas decisões. O pseudocódigo escreve os passos como texto estruturado, que dá conta de programas mais longos e vira código real de forma mais direta.

É preciso declarar variáveis em pseudocódigo?

No pseudocódigo Cambridge, sim: os critérios de correção esperam DECLARE name : TYPE antes de a variável ser usada. Outros estilos, como o da AQA, dispensam declarações. Declarar uma variável também diz ao leitor que tipo de valor ela guarda.

Ilustração das linguagens de programação do Coddy

Passe do pseudocódigo para código real com a Coddy

COMEÇAR