Prévia do material em texto
PAPMEM – janeiro de 2020
Prof: Paulo Cezar Pinto Carvalho
Algoritmos
Um algoritmo é uma sequência finita e bem definida de passos que, quando executados,
realizam uma tarefa específica ou resolvem um problema.
Nosso interesse principal é o de algoritmos para resolver problemas matemáticos, mas
algoritmos se aplicam a todos os ramos de atividade.
Fluxogramas
Um fluxograma é um diagrama que representa, de forma esquemática, um algoritmo. Por
exemplo, o fluxograma abaixo descreve o processo de decidir se um aluno deve ser ou não
aprovado em uma dada escola.
Os principais símbolos que aparecem em um fluxograma são:
Retângulos, que indicam passos de processamento
Losangos, que indicam pontos em que há tomadas de decisão
Retângulos arredondados, que indicam início ou final do procedimento.
Pseudo-códigos
Embora fluxogramas sejam úteis para representar algoritmos simples, para procedimentos
mais complexos é mais conveniente utilizar a descrição por pseudo-código, que é mais
compacta e mais próxima à implementação em uma linguagem de computador. O
procedimento acima poderia ser descrito do seguinte modo em pseudo-código.
Obtenha a nota final F do aluno
Se F ≥ 6:
O aluno é aprovado
Senão:
Obtenha a nota de recuperação R do aluno
Se 2R + F ≥ 18:
O aluno é aprovado
Senão:
O aluno é reprovado.
O pseudo-código pode ser implementado em Python (uma das linguagens mais utilizadas na
atualidade) do seguinte modo:
F = float(input("Nota final do aluno:"))
if F >= 6:
print("Aluno aprovado")
else:
R = float(input("Nota de recuperacao do aluno:"))
if 2*R + F >= 18:
print("Aluno aprovado")
else:
print("Aluno reprovado")
Exemplos
1. Diga qual é o resultado que será impresso no término da execução do fluxograma abaixo:
2. Adapte o fluxograma anterior de modo que seja impresso o valor de 20!.
3. Considere o pseudo-código abaixo
Dados um número N e uma lista de números (a1, a2, ..., aN)
Para i variando de 1 a N, faça:
Para j variando de i + 1 a N, faça:
Se ai > aj:
Troque ai com aj
Imprima a1, a2, …, aN
a) Diga qual será o resultado impresso quando N = 5 e a lista é (3, 7, 5, 2, 1).
b) De modo geral, o que faz o algoritmo acima?
c) Para uma lista de tamanho n, quantas vezes é executado o trecho em negrito no
algoritmo?
4. Diga o que faz o seguinte pseudo-código:
n =2
a = 1, b = 1
Imprima esses dois valores
Enquanto n < 50:
c = a+ b
a = b
b = c
imprima c
n = n + 1