2. LÓGICA DE PROGRAMAÇÃO: é a técnica de
encadear pensamentos para atingir determinado
objetivo; técnica necessária para o
desenvolvimento de sistemas e programas.
ALGORITMO: é uma sequencia de passos finitos
com o objetivo de solucionar o problema.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
3. “Um conjunto finito de regras que provê uma
seqüência de operações para resolver um tipo de
problema específico” - [Knuth]
“Seqüência ordenada, e não ambÍgua, de passos
que levam à solução de um dado problema” -
[Tremblay]
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
DEFINIÇÃO DE ALGORITMO
4. ♦ Diante de um problema, busca-se a solução!
♦ O algoritmo não é a solução de um problema,
pois, se assim fosse, cada problema teria um único
algoritmo;
♦ O algoritmo é um conjunto de passos (ações)
que levam à solução de um determinado problema,
ou então, é um caminho para a solução de um
problema.
♦ Os caminhos podem ser muitos!
♦ Objetivo deste estudo: possibilitar ao aluno, a
partir das soluções apresentadas, construir sua
própria lógica de programação.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
POR QUE ESTUDAR ALGORITMOS?
5. ♦ Ligação de um telefone público
Problema: falar com alguém pelo telefone.
1) retirar o telefone do gancho
2) esperar o sinal
3) colocar o cartão
4) discar o número
5) falar no telefone
6) colocar o telefone no gancho
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
EXEMPLOS DE ALGORITMOS COTIDIANOS
6. ♦ Algoritmo para levar um leão, uma cabra e um pé
de alface, de um lado para outro de um rio,
atravessando com um bote. Sabe-se que nunca o
leão pode ficar sozinho com a cabra e nem a cabra
sozinha com o alface.
1) levar a alface e o leão
2) voltar com o leão
3) deixar o leão
4) levar a cabra
5) deixar a cabra
6) voltar com o alface
7) levar o leão e o alface
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
EXEMPLOS DE ALGORITMOS COTIDIANOS
7. ♦ Algoritmo para fazer uma prova
1) ler a prova;
2) pegar a caneta;
3) enquanto ( (houver questão em branco) e
(tempo não terminou) ) faça
se (souber a questão)
resolvê-la;
senão
pular para a outra;
fim-enquanto;
4) entregar a prova.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
EXEMPLOS DE ALGORITMOS COTIDIANOS
8. Fazer um algoritmo para levar 3 missionários e 3
canibais de um lado para outro de um rio,
atravessando com um bote. Sabe-se que nunca
pode ter mais missionários do que canibais,
porque senão os missionários catequizam os
canibais. O que fazer para levar os 6 de uma
margem para a outra?
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
D E S A F I O
9. ♦ Cada linha do algoritmo (passo) é uma instrução
finita e compreensível para que a executa;
♦ INSTRUÇÃO: indica a um computador uma ação
elementar a ser executada;
♦ Ao formularmos um algoritmo, temos de ter
clareza a respeito do aspecto estático dessa
seqüência de ações escritas num pedaço de papel.
O aspecto dinâmico só se evidencia ao
executamos essa seqüência no computador e daí,
poderemos ter certeza se conseguimos ou não
resolver o problema.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
ALGORITMOS ...
10. ♦PROGRAMA DE COMPUTADOR: é um algoritmo
escrito em uma linguagem de programação
qualquer (C, Pascal, Eiffel, Java, etc.). É a tradução
da linguagem do algoritmo para a linguagem de
programação.
♦ O mais importante de um programa é a sua
lógica, raciocínio utilizado para resolver o
problema que é exatamente o algoritmo.
PROGRAMA =
ALGORITMO + LINGUAGEM DE PROGRAMAÇÃO
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
ALGORITMO – PROGRAMA DE COMPUTADOR
11. Algoritmo
1) retire uma moeda do bolso;
2) coloque a moeda sobre a mesa;
3) volte ao passo 1;
Problema: e quando não houver mais moedas no
bolso?
O algoritmo não sabe o que fazer...
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
O PROBLEMA DA AMBIGUIDADE
12. ♦ Ter um início e fim claros;
♦ Não dar margem a interpretações duplas
(ambiguidade);
♦ ter zero ou mais informações de entrada;
♦ ter uma ou mais informações de saída;
♦ ter passos claros e bem definidos.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
CARACTERÍSTICAS DE UM ALGORITMO
13. ♦ Para representar-se os algoritmos requer-se
alguma forma de linguagem;
♦ Algumas formas de representação:
♦ descrição narrativa;
♦ fluxograma;
♦ Pseudocódigo: português estruturado ou
portugol.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
REPRESENTAÇÃO DE ALGORITMOS
14. ♦ Os algoritmos são expressos diretamente em
linguagem natural (Português).
♦ Exemplo: Cálculo da média de um aluno
1) Obter as notas da primeira e da segunda prova;
2) Calcular a média aritmética entre as duas notas;
3) Se a média for maior ou igual a 6.0, o aluno foi
aprovado, senão ele foi reprovado.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
Descrição Narrativa
15. VANTAGEM
♦ O português é bastante conhecido por nós.
DESVANTAGEM
♦ Imprecisão e Extensão, isto é, escreve-se muito
para dizer pouca coisa.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
Descrição Narrativa
16. Utilização de símbolos gráficos padronizados para
representar os algoritmos.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
FLUXOGRAMA
17. Cálculo da média
de um aluno.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
FLUXOGRAMA
18. VANTAGENS
♦ Uma das ferramentas mais conhecidas;
♦ Figuras dizem mais que palavras;
♦ Padrão mundial.
DESVANTAGENS
♦ Pouca atenção aos dados, não oferecendo
recursos para descrevê-los e representá-los;
♦ Torna-se complicado a medida que o algoritmo
cresce.
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
FLUXOGRAMA
19. ♦Combina a facilidade da linguagem natural com a
precisão da linguagem de programação.
JOGO DA FORCA
1) escolher a palavra;
2) montar o diagrama do jogo;
3) enquanto ( (houver lacunas vazias) e
(corpo incompleto) ) faça
se (acertar uma letra)
escrever na lacuna correspondente;
senão
desenhar uma parte do corpo na forca;
4) fim
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
PSEUDOCÓDIGO
20. VANTAGENS
♦ Usa o português como base;
♦ Pode-se definir quais e como os dados vão
estar estruturados;
♦ Passagem quase que imediata do algoritmo
para uma linguagem de programação qualquer.
DESVANTAGENS
♦ Não padronizado
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
PSEUDOCÓDIGO
21. 1) Escreva o algoritmo na forma de descrição
narrativa para fritar um ovo.
2) Escreva os algoritmos utilizando fluxogramas:
a) Obter a soma (S) e o produto (P) de dois valores
(A; B) inseridos por teclado. Imprimir o resultado.
b) Calcular a área (A) de um retângulo. A base (B) e
a altura (H) do retângulo são inseridos por teclado.
Imprimir o resultado.
3) Escrever os pseudocódigos para:
a) Dados 2 valores por teclado mostrá-los em
ordem crecente.
b) Dado um número, responder se ele é positivo ou
negativo
UFOP - ICEB - DECOM
Prof. Marcelo Luiz Silva (Red)
EXERCÍCIOS