Construção de Algoritmos - Facom

Propaganda
GBC015:
INTRODUÇÃO À CIÊNCIA DA
COMPUTAÇÃO
Construção de Algoritmo
Especificação sequência, desvio e laço
Ilmério Reis da Silva
[email protected]
www.facom.ufu.br/~ilmerio/icc
UFU/FACOM/BCC
Def. Algoritmo
é uma sequência finita de passos que define como uma tarefa
pode ser realizada
Ou
“é um conjunto ordenado de passos executáveis, não
ambíguos, que define um processo finalizável” [1]
Como escrever um Algoritmo
Depende de quem ou o que executará o algoritmo
Exemplo de Algoritmo
O problema: trocar o pneu furado de um carro
Executor: humano
Um algoritmo:
1 SE (estepe murcho)
CHAMAR o borracheiro
2 SENÃO
2.1 AFROUXAR os parafusos da roda com o pneu furado
2.2 LEVANTAR o carro com o macaco
2.3 RETIRAR os parafusos da roda com o pneu furado
2.4 TROCAR a roda com o pneu furado pela de estepe
2.6 APERTAR ligeiramente os parafusos
2.7 BAIXAR o carro
2.8 APERTAR fortemente os parafusos
2.9 GUARDAR as ferramentas
3 FIM
Exemplo de Algoritmo para Computadores
O problema: escrever o fatorial de n
Executor: um computador (Arquitetura von Neumann)
Um Algoritmo:
1. LER n;
2. f ← 1;
3. i ← 2;
4. ENQUANTO (i <= n) {
4.1 f ← f * i;
4.2 i ← i + 1;
}
5. ESCREVER “Fatorial de “, n, “ = ”, f;
6. FIM
Algoritmo para construir um Algoritmo
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ENTENDA o problema.
ESCOLHA uma linguagem para descrever o algoritmo.
ESCREVA o algoritmo.
SE o algoritmo está correto VÁ_PARA 6.
SENÃO, encontre o erro; corrija o erro; VÁ_PARA 4.
SE o algoritmo pode ser melhorado
SE compensa gastar mais tempo com a melhoria
ESCREVA uma nova versão do algoritmo; VÁ_PARA 4.
SENÃO, VÁ_PARA 11.
SENÃO, VÁ_PARA 11.
FIM
Linguagens de Algoritmos
Várias opções, por exemplo:


Portugol
uma SL – Structured Language cuja execução é a
sequência de instruções a partir do início
Fluxograma
um grafo dirigido cuja execução é seguir as setas à
partir do início executando as instruções em
cada nodo
Exemplos de Portugol
Problema: calcular o MDC entre dois números
MDC_ALGORITMO1
MDC_ALGORIMO2
1. LEIA m, n
2. SE n > 0
2.1 x ← n
2.2 n ← m % n
2.3 m ← x
2.4 VÁ_PARA 2
3. FIM_SE
4. IMPRIMA m
5. FIM
1. LEIA m, n
2. ENQUANTO n > 0
2.1 x ← n;
2.2 n ← m % n;
2.3 m ← x;
3. FIM_ENQUANTO
4. IMPRIMA m
5. FIM
Exemplo de Fluxograma
Problema: calcular o MDC entre dois números
M=X
Exemplos de Instruções em Portugol
Entrada: LEIA
Saída:
ESCREVA
Atribuição: var ← valor var ← var var ← var op var
Onde op pode ser: +, -, *, %, /, ==, !=, <, >, <=, >=, &&, ||, ,...
Desvio: SE condição
ENTÃO comandos
SENÃO comandos
FIM_SE
Laço: ENQUANTO condição
comandos
FIM_ENQUANTO
OBS: comandos é uma sequência com zero ou mais instruções ;
Considerações Finais


Algoritmo é a alma do programa
Boas práticas de programação incluem:

Entender bem o problema

Escrever um algoritmo usando lápis e papel

Implementar somente depois de verificar se
algoritmo está correto.
Bibliografia
[1] BROOKSHEAR, J. Glenn. Ciência da computação: uma
visão abrangente, ,tradução da 11a ed [por] Eduardo K
Pivete, Porto Alegre, Bookman, 2013.
[2] FEDELI, Ricardo Daniel; POLLONI, Enrico Giulio
Franco; PERES, Fernando Eduardo. Introdução à ciência da
computação. 2. ed. São Paulo: Cengage Learning, 2010.
[3] MOKARZEL, Fábio Carneiro. Introdução à ciência da
computação. Rio de Janeiro: Elsevier, 2008.
[4] Autran Macedo, Maria Adriana, Renato Pimentel e Ilmério
Silva, http://www.facom.ufu.br
Material de Apoio



Capítulo 5 de [1]
Capítulo 2 de [3]
Exercícios no final dos capítulos acima, por exemplo:
– Escrever um Algoritmo, usando portugol e fluxograma,
para imprimir os N primeiros números da série de
Fibonacci, da seguinte forma: 1, 1, 2, 3, 5, 8, 13, …, FN
Onde FN=FN-1 + FN-2
FIM
Construção de Algoritmos
Especificação sequência, desvio e laço
Download