Você está na página 1de 51

Algoritmos

ALG01 - CONCEITOS
BSICOS

Algoritmos

Universidade CEUMA

LGICA
a arte de bem pensar.
Cincia das formas de pensamento estuda a
correo do raciocnio (forma mais complexa do
pensamento).
Visa a ordem da razo - Coloca ordem no
pensamento.
a cincia que estuda as leis e critrios de validade
que regem o pensamento e a demonstrao, ou
seja, cincia dos princpios formais do raciocnio.
Pode ser utilizada em diferentes situaes no dia-adia.
2

LGICA
Exemplos:
1) Todo mamfero um animal. (premissa 1)

Todo cavalo um mamfero. (premissa 2)


Portanto todo cavalo um animal. (concluso)
2) A gaveta est fechada. (premissa 1)
A caneta est dentro da gaveta. (premissa 2)

Precisamos primeiro abrir a gaveta, para depois


pegar a caneta. (concluso)
3

LGICA
Fatores que influenciam a lgica:
calma
conhecimento
vivncia
versatilidade
experincia
criatividade
ponderao
responsabilidade e etc.
4

LGICA
Aplicao na programao Lgica de Programao
Isto significa o uso correto das leis do pensamento, da
ordem da razo e de processos de raciocnio e
simbolizao formais na programao de computadores,
objetivando a racionalidade e o desenvolvimento de
tcnicas que cooperem para a produo de solues
logicamente vlidas e coerentes, que resolvam com
qualidade os problemas que se deseja programar.

O objetivo principal da Lgica de Programao a


construo de algoritmos.
5

ALGORITMOS
o conceito central da lgica de programao. Pois,
ela consiste basicamente da construo de
algoritmos.

ALGORITMOS
Esto presentes no dia-a-dia. Ex.:
Tomar banho;
Instrues para o uso de um aparelho
eletrodomstico;
Receita de preparo de algum prato;
Trocar pneu de um carro;
Sacar dinheiro de um caixa eletrnico;

Como???
7

ALGORITMOS Conceitos
Um conjunto finito de regras que prov uma seqncia de
operaes para resolver um tipo de problema especfico
[KNUTH]

Seqncia ordenada, e no ambgua, de passos que levam


soluo de um dado problema
[TREMBLAY]

Processo de clculo, ou de resoluo de um grupo de


problemas semelhantes, em que se estipulam, com
generalidade e sem restries, as regras formais para a
obteno do resultado ou da soluo do problema
[AURLIO]

Um dos princpios da computao a diviso dos sistemas


computacionais em:
Hardware parte fsica (unidades de entrada, sada e
armazenamento.
Software parte lgica (softwares bsico e utilitrios).

ALGORITMOS Importncia
necessria fazer a especificao de uma seqncia
de passos lgicos para que o computador possa
executar uma determinada tarefa;
O computador no possui vontade prpria, faz
apenas o que foi programado;
Com uma ferramenta algortmica, possvel
conceber uma soluo para um dado problema,
independente da linguagem especfica e at mesmo
do prprio computador.
9

ALGORITMOS
Caractersticas
ter fim;
no dar margem dupla interpretao (no
ambguo);
capacidade de receber dado(s) de entrada do
mundo exterior;
poder gerar informaes de sada para o mundo
externo ao do ambiente do algoritmo;

10

ser efetivo (todas as etapas


alcanveis em um tempo finito).

devem

ser

ALGORITMOS Concluses

11

- o algoritmo corresponde a uma descrio de um


padro de comportamento, expresso em termos de
um conjunto finito, ordenado e no ambguo de
aes, para resolver um problema.
- Para resolver um problema necessrio escolher
uma abstrao da realidade, ou seja interpret-la,
usando para isso a definio de um conjunto de
dados que representa essa situao real.
- A abstrao da realidade a captura do que existe
de mais relevante em uma situao real, tornando
possvel a construo de modelos que podem ser
implementados nos computadores, por meio de
uma Linguagem de Programao (LP).

ALGORITMOS Concluses
Abstrao
a beleza est nos
olhos de quem a v

O que isto???
um felino???

um mamfero???
um animal peludo???

o Frajola???
um gatinho???

12

O resultado de uma operao mental de abstrao


depende no tanto do fenmeno observado, mas do
12
interesse do observador.

ALGORITMOS Concluses
- dados a serem processados pelo computador
representam uma abstrao da parte da realidade,
ou seja, representam algumas caractersticas
selecionadas das entidades do mundo real,
necessrias para a soluo de um determinado
problema.

Um dos princpios do funcionamento do computador :

13

ALGORITMOS
Aplicao 01:
Um senhor, bastante gordo, esta numa das margens de
um rio com uma raposa, uma duzia de galinhas e um
saco de milho. O senhor pretende atravessar o rio com
suas cargas, num barco a remo que s comporta o
senhor e uma das cargas.
o senhor no pode deixar em uma das margens,
sozinhos, a raposa e a galinha, nem a galinha e o
milho.
Como resolver este problema? Como escrever um
algoritmo que oriente este senhor a realizar o seu
intento?
Escreva as instrues na sequencia em que elas
devem ser executada.
14

ALGORITMOS
Soluo:
1. Atravesse as galinhas.
2. Retorne sozinho.
3. Atravesse a raposa.
4. Retorne com as galinhas.
5. Atravesse o milho.
6. Retorne sozinho.
7. Atravesse as galinhas.
Como saber que a primeira instruo deve ser a
travessia das galinhas?

15

ALGORITMOS
Para definir qual seria a primeira instruo, existem
apenas trs possibilidades. Verifica-se o que aconteceria
ao se escolher determinada instruo:
se o homem atravessasse primeiro o milho, a
raposa devoraria as galinhas;
se o homem atravessasse primeiro a raposa, as
galinhas comeriam o milho;
se o homem atravesse primeiro as galinhas, a
raposa no comeria o milho.
Neste caso, foi utilizada a tcnica da exausto: como o
nmero de alternativas era pequeno, todas elas foram
analisadas uma a uma.
16

ALGORITMOS
Aplicao 02:
Como obter exatamente 4 litros de agua dispondo de dois
recipientes com capacidades de 3 litros e 5 litros?

17

ALGORITMOS
Soluo:
1. Encha o recipiente de 3 litros.
2. Transfira o contedo do recipiente de 3 litros para o recipiente
de 5 litros.
3. Encha o recipiente de 3 litros.
4. Com o contedo do recipiente de 3 litros, complete o recipiente
de 5 litros.
5. Esvazie o recipiente de 5 litros.
6. Transfira o contedo do recipiente de trs litros para o
recipiente de 5 litros.
7. Encha o recipiente de 3 litros.
8. Transfira o contedo do recipiente de 3 litros para o recipiente
de 5 litros.
Essa uma outra tcnica que consiste em tentar resolver casos
particulares da questo ou resolver a questo para dados menores
do que os dados que foram fixados. Como: 4 = 3 + 1 ou 4 = 5 1
H outras solues? Existe alguma soluo que realize
a mesma tarefa com uma quantidade menor de instrues?
18

ALGORITMOS Exemplo
Vamos nos colocar na situao de um cozinheiro que
para fazer certos pratos, precisa seguir uma receita.

19

Exemplo: Receita de Bolo


Providencie manteiga, ovos, 2 Kg de massa,
etc.
Misture os ingredientes
Unte a frma
Despeje a mistura na frma de bolo
Leve a frma ao forno
Espere 20 minutos
Retire a frma do forno
Deixe esfriar
Experimente

ALGORITMOS
Mas o que um cozinheiro tem a ver com
algoritmo e com programao?
A receita deve ser seguida exatamente da maneira
como se apresenta.
Voc poderia imaginar que o cozinheiro pudesse
despejar a mistura na frma antes de juntar os
ingredientes? impossvel, concorda? Logo a
seqncia das aes precisa ser respeitada para
obtermos um produto final.
20

ALGORITMOS
Ento:
Na medida em que precisamos especificar
uma seqncia de passos, necessrio
utilizar ordem,ou seja, pensar com ordem,
portanto precisamos utilizar lgica.

21

ALGORITMOS
Um algoritmo tem por objetivo representar
mais fielmente o raciocnio envolvido na
lgica de programao e, dessa forma,
permitir abstrair de uma srie de detalhes
computacionais,
que
podem
ser
acrescentados mais tarde.
Foco no que importante: a lgica da
construo de algoritmos.
22

ALGORITMOS - Princpios
So formas de resoluo de um problema,
atravs da especificao passo-a-passo de
como resolv-lo.
A noo de algoritmo bsica em
computao, mas pode ser aplicada a vrios
contextos. Como o exemplo do cozinheiro.

23

ALGORITMOS - Princpios
Contexto Administrativo
Verifique preenchimento do formulrio
Se (preenchimento correto) ento
Arquive o documento
Fornea o protocolo

Se no
Lamente
Pea que o cliente compre outro formulrio
Despea-se educadamente do cliente
24

ALGORITMOS - Princpios
Logo, percebe-se que o conceito de algoritmo
associado a rea de computao, pode ser
entendido, no seu sentido mais amplo, como
sinnimo de processo, rotina ou procedimento, e
nesse sentido, ele se insere em qualquer
contexto.
E mais, algoritmos s se aprende:
construindo algoritmos
testando algoritmos
25

Sintaxe e Semntica
A sintaxe: um conjunto de regras que define a
forma de uma linguagem, estabelecendo como so
compostas as suas estruturas bsicas (palavras).
A semntica: descreve o significado de
construes sintticas vlidas. Geralmente uma LP
descrita informalmente, utilizando-se linguagem
natural (ingls, portugus, etc).

26

Sintaxe e Semntica
A sintaxe de uma LP formada por regras lxicas e
regras sintticas:
As regras lxicas descrevem as combinaes
vlidas de caracteres que formam os tokens da LP
palavras reservadas, identificadores, operadores,
etc).
Exemplo de regras lxicas para a linguagem Pascal:

27

Sintaxe e Semntica
J as regras sintticas descrevem como os tokens
podem ser combinados para formar instrues
vlidas (comandos, expresses, subrotinas, etc).
Exemplo de regras sintticas para a linguagem
Pascal:

28

ALGORITMOS Representao
Narrativa (Textual):
Faz-se uso do portugus para descrever
algoritmos.
Exemplo: Trocar uma lmpada
Pegue uma escada
Posicione-a embaixo da lmpada
Busque uma lmpada nova
Suba na escada
Retire a lmpada velha
Coloque a lmpada nova
29

ALGORITMOS Representao
Vantagem:
Fcil utilizao e fcil entendimento por utilizar a
prpria lngua.
Desvantagem:

Falta de padronizao;

30

ALGORITMOS Representao
Fluxograma. Exemplo:

31

ALGORITMOS Representao
Fluxograma
Vantagens:
Uma das ferramentas mais conhecidas;
Figuras dizem muito mais que palavras;
Padro mundial.
Aproxima-se mais de uma linguagem de
programao.
Desvantagens:
preciso que todos os envolvidos entendam a
simbologia;
Pouca ateno aos dados, no oferecendo
recursos para descrev-los ou represent-los;
Complica-se medida que o algoritmo cresce.
32

ALGORITMOS Representao
Linguagem Algortmica
Consiste na definio de uma pseudolinguagem
de programao, cujos comandos so em
portugus, para representar algoritmos;
Exemplo

Algoritmo CALCULA_DOBRO
Incio
Leia NUM
DOBRO = 2 * NUM
Escreva DOBRO
Fim
33

ALGORITMOS Representao

34

Linguagem Algortmica: possui uma estrutura, onde


h reas delimitadas por marcadores (ou
delimitadores) que sinalizam o que pode ser
realizado.
Estrutura geral:
Algoritmo Nome do algoritmo
Declarao de constantes, tipos e variveis
(dados)
Incio
atribuies
seqncias de comandos
estruturas de controle
comandos de E/S
Fim

ALGORITMOS Representao
Linguagem Algortmica
Vantagens:
Independncia fsica da soluo (soluo lgica
apenas);
Usa o portugus como base;
Pode-se definir quais e como os dados vo estar
estruturados;
Passagem quase imediata do algoritmo para uma
linguagem de programao qualquer.
Desvantagens:
Exige a definio de uma linguagem no real para
trabalho;
No padronizado.
35

ALGORITMOS Representao:
Visual G
Algoritmo "<nome do algoritmo>"

var
< declarao de variveis>
inicio
< lista de comandos>
fimalgoritmo

36

Representao: regras importantes

37

1.O algoritmo sempre deve possuir um nome.


2. importante descrever o objetivo do algoritmo.
3.Iniciar o algoritmo com a palavra Incio.
4.Descrever a entrada de dados.
5.Para facilitar a leitura e compreenso, utilizar espaos de
tabulaes (identao) nos blocos de instrues.
6.Utilizar somente um verbo por instruo.
7.Utilizar frases (instrues) simples e curtas para facilitar o
entendimento.
8.Enumerar cada uma das instrues.
9.Inserir comentrios explicativos para as instrues,
principalmente quando estiver programando.
10.Destacar as palavras que indicam aes ou condies a serem
executadas ou seguidas, como por exempro: Ler, escrever, se,
enquanto, faa e outras.
11.Descrever a sada de dados.
12.Encerrar o algoritmo com a palavra Fim.

ALGORITMOS aplicando as
regras importantes

38

Nome: Mdia
Objetivo: Calcular a mdia de um aluno e apresentar a mensagem
aprovado ou reprovado.
Entrada de dados: Notas do 1 e 2 bimestre (Nota1 e Nota2)
Sada de dados: Exibir a mdia e resultado aprovado ou
reprovado
Incio
1. Ler a nota do primeiro bimestre (Nota1)
2. Ler a nota do segundo bimestre (Nota2)
3. Calcular a mdia Media = (Nota1 + Nota2)/2
4. Se Media >= 6,0 ento
4.1
imprimir aprovado
seno
4.2
imprimir reprovado
fim se
5. Imprimir o valor da Media
Fim

ALGORITMOS
ESTRUTURAS CHAVES DA CONSTRUO DE
ALGORITMOS
Existem 3 estruturas bsicas de controle nas
quais se baseiam os algoritmos:
Sequnciao;
Deciso;e,
Repetio.

39

ALGORITMOS Sequnciao
Os comandos do algoritmo fazem parte de uma
sequncia;
relevante a ordem na qual se encontram os
mesmos;
sero executados um de cada vez, estritamente, de
acordo com essa ordem.
Comando-1
Comando-2
Comando-3
:
Comando-n
40

ALGORITMOS Sequnciao
Todo algoritmo uma sequncia;
Tem-se uma sequnciao de n comandos na qual
os comandos sero executados na ordem em que
aparecem;
o comando de ordem i+1 s ser executado aps a
execuo do de ordem i (o 3 s ser executado aps
o 2);
A sequenciao aplicada quando a soluo do
problema pode ser decomposta em passos
individuais.
41

ALGORITMOS Deciso
Tambm conhecida
condicional;

por

seleo

ou

estrutura

H a subordinao da execuo de um ou mais


comandos veracidade de uma condio;
Se <condio> Ento
<comando-1>
Seno
<comando-2>
42

ALGORITMOS Deciso
Se a <condio> for verdadeira ser executado o
<comando-1>;
caso contrrio, teremos a execuo do <comando-2>;
A deciso deve ser sempre usada quando h a
necessidade de testar alguma condio e em funo da
mesma tomar uma atitude;

No dia-a-dia, estamos sempre tomando decises.


Exemplos:
Se tiver dinheiro suficiente, ento vou almoar em um
bom restaurante.
Caso contrrio (seno), vou comer um sanduche na
lanchonete da esquina.
43

ALGORITMOS Repetio
Tambm conhecida por looping ou lao;
Permite que tarefas individuais sejam repetidas um
nmero determinado de vezes ou tantas vezes
quantas uma condio lgica permita;

Exemplos:
a) vou atirar pedras na vidraa at quebr-la;
b) baterei cinco pnaltis;
c) enquanto tiver sade e dinheiro, vou desfrutar a
vida.
44

ALGORITMOS Repetio
No exemplo (a), vai-se repetir a ao de atirar pedras na
janela at que seja satisfeita a condio de quebrar a
janela.
No exemplo (b), haver a repetio da atitude de bater um
pnalti um nmero determinado de vezes (cinco).

No exemplo (c), a condio que me permitir continuar


desfrutando a vida ter dinheiro e sade.
A utilizao combinada dessas 3 estruturas descritas vai
permitir expressar, usando qualquer que seja a
ferramenta, a soluo para uma gama muito grande de
problemas.

45

Todas as linguagens de programao oferecem


representantes dessas estruturas.

ALGORITMOS Refinamentos
Sucessivos
Um algoritmo considerado completo se os seus
comandos forem do entendimento do seu
destinatrio;
Caso um comando no seja do entendimento do
destinatrio, ele ter que ser desdobrado em novos
comandos;
Estes novos comandos constituiro um refinamento
do comando inicial, e assim sucessivamente, at que
os comandos sejam entendidos pelo destinatrio.
46

ALGORITMOS refinamentos
sucessivos
Por exemplo, o algoritmo para calcular a mdia aritmtica de
dois nmeros pode ser escrito da seguinte forma:
Algoritmo CALCULA_MDIA
Incio
Receba os dois nmeros
Calcule a mdia dos dois nmeros
Exiba o resultado
Fim
Desdobrando o comando Calcule a mdia dos dois nmeros:
Soma os dois nmeros
Divida o resultado por 2
47

ALGORITMOS Refinamentos
Sucessivos
Aps esse refinamento, o algoritmo pode ser
considerado completo;

a menos que: o destinatrio no saiba fazer as


operaes de adio e diviso, ou no seja capaz de
entender diretamente algum comando.

Algoritmo CALCULA_MDIA
Incio
Receba os dois nmeros
Soma os dois nmeros
Divida o resultado por 2
Exiba o resultado
Fim
48

ALGORITMOS Refinamentos
Sucessivos
Um algoritmo completo, com os refinamentos
sucessivos inseridos nos seus devidos lugares permite:

ter uma viso global de como o algoritmo deve ser


executado
medida que o algoritmo passa a ser maior e mais
complexo, esta viso global torna-se menos clara;
Neste caso, um algoritmo apresentado com os
refinamentos sucessivos separados oferece uma
melhor abordagem para quem precisar entend-lo.
49

ALGORITMOS Resolvendo
Suponha que se queira resolver o seguinte problema:
a partir de dois nmeros que sero informados,
calcular a soma dos mesmos.
Se voc fosse encarregado de efetuar essa tarefa,
seria bem provvel que utilizasse os passos a seguir:
1. Identificar as variveis que afetam o problema.
Neste caso, so os nmeros;
2. Identificar as relaes, regras e validaes
sobre as variveis. Neste caso, a soma dos
nmeros;
3. Realizar o processamento necessrio;
4. Apresentar o resultado.
50

ALGORITMOS Exerccios
Cite alguns algoritmos que podemos encontrar na
vida quotidiana.
Suponha que temos um rob a nossa disposio.
Esse rob precisa ser ensinado a fazer determinadas
tarefas. Para ensin-lo, vamos fazer uso do
portugus para passar-lhe as instrues necessrias
execuo de cada atividade. Escreva os passos
necessrios para o rob:
a) encher uma bacia com gua;
b) Fazer uma ligao de um telefone fixo;
c) calcular a sua idade daqui a 20 anos;
d) calcular a mdia de um aluno com 3 notas;
e) Fazer um suco de laranja.
51