Algoritmo - Sistemas de Informação

Propaganda
Algoritmos
CONCEITOS BÁSICOS
LÓGICA
 É a arte de bem pensar.
 Ciência das formas de pensamento – estuda a
correção do raciocínio (forma mais complexa do
pensamento).
 Visa a ordem da razão - Coloca ordem no
pensamento.
 É a ciência que estuda as leis e critérios de validade
que regem o pensamento e a demonstração, ou
seja, ciência dos princípios formais do raciocínio.
2
LÓGICA
 Exemplos:
–Todo mamífero é um animal.
Todo cavalo é um mamífero.
Portanto todo cavalo é um animal.
–A gaveta está fechada
A caneta está dentro da gaveta.
Precisamos primeiro abrir a gaveta para depois pegar a
caneta.
3
LÓGICA
 Fatores que influenciam a lógica:
– calma
– conhecimento
– vivência
– versatilidade
– experiência
– criatividade
– ponderação
– responsabilidade e etc.
4
LÓGICA
 Seu
uso na programação – Lógica de Programação :
Significa o uso correto das leis do pensamento, da ordem
da razão e de processos de raciocínio e simbolização
formais na programação de computadores, objetivando a
racionalidade e o desenvolvimento de técnicas que
cooperem para a produção de soluções logicamente
válidas e coerentes, que resolvam com qualidade os
problemas que se deseja programar.
O objetivo principal da Lógica de Programação é a
construção de algoritmos.
5
ALGORITMOS
É
o
conceito
central
da
lógica
de
programação que basicamente consiste na
construção de algoritmos.
6
ALGORITMOS
• Presentes em nosso dia-a-dia. Ex.:
– Tomar banho;
– Instruções para o uso de um aparelho
eletrodoméstico;
– Receita de preparo de algum prato;
– Trocar pneu de um carro;
– Sacar dinheiro de um caixa eletrônico;
7
ALGORITMOS – Conceitos
• “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]
• “Processo de cálculo, ou de resolução de um grupo de
problemas semelhantes, em que se estipulam, com
generalidade e sem restrições, as regras formais para a
obtenção do resultado ou da solução do problema”
[AURÉLIO]
8
ALGORITMOS – Importância
– É necessária a especificação de uma seqüência de
passos lógicos para que o computador possa
executar uma determinada tarefa;
– O computador não possui vontade própria, faz
apenas o que mandamos;
– Com uma ferramenta algorítmica, podemos conceber
uma solução para um dado problema, independendo
de uma linguagem específica e até mesmo do próprio
computador.
9
ALGORITMOS –
Características
– ter fim;
– não dar margem à dupla interpretação (não
ambíguo);
– capacidade de receber dado(s) de entrada do mundo
exterior;
– poder gerar informações de saída para o mundo
externo ao do ambiente do algoritmo;
– ser efetivo (todas as etapas do algoritmo devem ser
alcançáveis em um tempo finito).
10
ALGORITMOS – Exemplo
– Vamos nos colocar na situação de um cozinheiro
que para fazer certos pratos, precisa seguir uma
receita.
• EXEMPLO: Receita de Bolo:
–
–
–
–
–
–
–
–
–
Providencie manteiga, ovos, 2 Kg de massa, etc.
Misture os ingredientes
Unte a fôrma
Despeje a mistura na fôrma de bolo
Leve a fôrma ao forno
Espere 20 minutos
Retire a fôrma do forno
Deixe esfriar
Experimente
11
ALGORITMOS
– Mas o que um cozinheiro tem a ver com
algoritmo e com programação?
A receita deve ser seguida exatamente da maneira
como se apresenta.
Você poderia imaginar que o cozinheiro pudesse
despejar a mistura na fôrma antes de juntar os
ingredientes? É impossível, concorda? Logo a
seqüência das ações precisa ser respeitada para
obtermos um produto final.
12
ALGORITMOS
Então:
 Na medida em que precisamos especificar
uma seqüência de passos, é necessário
utilizar ordem,ou seja, “pensar com ordem”,
portanto precisamos utilizar lógica.
13
ALGORITMOS
 Um algoritmo tem por objetivo representar
mais fielmente o raciocínio envolvido na
lógica de programação e , dessa forma,
permite-nos abstrair de uma série de detalhes
computacionais, que podem ser
acrescentados mais tarde. Foco no que é
importante: a lógica da construção de
algoritmos.
14
ALGORITMOS - Princípios
– São formas de resolução de um problema,
através da especificação passo-a-passo de
como resolvê-lo.
– A noção de algoritmo é básica em
computação, mas pode ser aplicada a vários
contextos. Como ao do cozinheiro.
15
ALGORITMOS - Princípios
– Contexto Administrativo
Verifique preenchimento do formulário
Se (preenchimento correto) então
Arquive o documento
Forneça o protocolo
Se não
Lamente
Mande o cliente comprar outro formulário
Despeça-se educadamente do cliente
16
ALGORITMOS - Princípios
– Logo, percebe-se que o conceito de algoritmo
associado ‘a área de computação, pode ser
entendido, no seu sentido mais amplo, como sinônimo
de processo, rotina ou procedimento, e nesse sentido,
ele se insere em qualquer contexto.
– E mais, algoritmos só se aprende:
• construindo algoritmos
• testando algoritmos
17
ALGORITMOS – representação
– Descrição Narrativa:
• Faz-se uso do português para descrever algoritmos.
• EXEMPLO: Troca de lâmpada:
Pegue uma escada
Posicione-a embaixo da lâmpada
Busque uma lâmpada nova
Suba na escada
Retire a lâmpada velha
Coloque a lâmpada nova
18
ALGORITMOS – representação
– Fluxograma:
• Utilização de símbolos gráficos para representar
algoritmos.
• No fluxograma existem símbolos padronizados para
início, entrada de dados, cálculos, saída de dados,
fim, etc.
19
ALGORITMOS – representação
– Fluxograma - Exemplo:
20
ALGORITMOS – representação
– Fluxograma:
• Vantagens:
– Uma das ferramentas mais conhecidas;
– Figuras dizem muito mais que palavras;
– Padrão mundial.
• Desvantagens:
– Faz com que a solução do problema já esteja amarrada a
dispositivos físicos;
– Pouca atenção aos dados, não oferecendo recursos para
descrevê-los ou representá-los;
– Complica-se à medida que o algoritmo cresce.
21
ALGORITMOS – representação
– Linguagem Algorítmica:
• Consiste na definição de uma pseudolinguagem de
programação, cujos comandos são em português, para
representar algoritmos;
• EXEMPLO:
Algoritmo CALCULA_DOBRO
Início
Leia NUM
DOBRO 2 * NUM
Escreva DOBRO
Fim
22
ALGORITMOS – representação
– Linguagem Algorítmica:
• Estrutura geral:
Algoritmo Nome do algoritmo
Declaração de constantes, tipos e variáveis
Início
atribuições
seqüências de comandos
estruturas de controle
comandos de E/S
Fim
23
ALGORITMOS – representação:
Visual G
Algoritmo "<nome do algoritmo>"
var
< declaração de variáveis>
inicio
< lista de comandos>
fimalgoritmo
24
ALGORITMOS – representação
– Linguagem Algorítmica:
• Vantagens:
– Independência física da solução (solução lógica apenas);
– Usa o português como base;
– Pode-se definir quais e como os dados vão estar
estruturados;
– Passagem quase imediata do algoritmo para uma
linguagem de programação qualquer.
• Desvantagens:
– Exige a definição de uma linguagem não real para trabalho;
– Não padronizado.
25
ALGORITMOS –
representação:regras importantes
1.O algoritmo sempre deve possuir um nome.
2.É importante descrever o objetivo do algoritmo.
3.Iniciar o algoritmo com a palavra Início.
4.Descrever a entrada de dados.
5.Para facilitar a leitura e compreensão, utilizar espaços de
tabulações (identação) nos blocos de instruções.
6.Utilizar somente um verbo por instrução.
7.Utilizar frases (instruções) simples e curtas para facilitar o
entendimento.
8.Enumerar cada uma das instruções.
9.Inserir comentários explicativos para as instruções,
principalmente quando estiver programando.
10.Destacar as palavras que indicam ações ou condições a
serem executadas ou seguidas, como por exempro:Ler,
escrever, se, enquento, faça e outras.
11.Descrever a saída de dados.
12.Encerrar o algoritmo com a palavra Fim.
26
ALGORITMOS –
representação:regras importantes
Nome: Média
Objetivo: Calcular a média de um aluno e apresentar a
mensagem “aprovado” ou “reprovado”.
Entrada de dados: Notas do 1º e 2º bimestre (Nota1 e Nota2)
Saída de dados: Exibir a média e resultado “aprovado” ou
“reprovado”
Início
1.Ler a nota do primeiro bimestre (Nota1)
2. Ler a nota do segundo bimestre (Nota2)
3. Calcular a média Media = (Nota1 + Nota2)/2
4.Se Media >= 6,0 então
4.1
imprimir “aprovado”
senão
4.2
imprimir “reprovado”
fim se
27
5. Imprimir o valor da Media
Fim
ALGORITMOS – Resolvendo
– Suponha que queiramos resolver o seguinte
problema:
• a partir de dois números que serão informados,
calcular a adição dos mesmos.
– Se você fosse encarregado de efetuar essa tarefa,
seria bem provável que utilizasse os passos a seguir:
• saber quais são os números;
• calcular a soma dos números;
• responder à questão com o valor do resultado.
28
ALGORITMOS
– ESTRUTURAS CHAVES DA CONSTRUÇÃO
DE ALGORITMOS
• Existem 3 estruturas básicas de controle nas quais
se baseiam os algoritmos:
– Sequenciação;
– Decisão;
– e Repetição.
29
ALGORITMOS – Sequenciação
– Os comandos do algoritmo fazem parte de uma
seqüência;
– é relevante a ordem na qual se encontram os mesmos;
– serão executados um de cada vez, estritamente, de
acordo com essa ordem.
Comando-1
Comando-2
Comando-3
:
Comando-n
30
ALGORITMOS – Sequenciação
– Tem-se uma sequenciação de n comandos na qual
os comandos serão executados na ordem em que
aparecem;
– o comando de ordem i+1 só será executado após a
execução do de ordem i (o 3o só será executado
após o 2o);
– Todo algoritmo é uma seqüência;
– A sequenciação é aplicada quando a solução do
problema pode ser decomposta em passos
individuais.
31
ALGORITMOS – Decisão
– Também conhecida por seleção ou estrutura
condicional;
– Há a subordinação da execução de um ou
mais comandos à veracidade de uma
condição;
Se <condição> Então
<comando-1>
Senão
<comando-2>
32
ALGORITMOS – Decisão
– Se a <condição> for verdadeira será executado o <comando-1>;
– caso contrário, teremos a execução do <comando-2>;
– A decisão deve ser sempre usada quando há a necessidade de
testar alguma condição e em função da mesma tomar uma
atitude;
– Em nosso dia-a-dia, estamos sempre tomando decisões,
vejamos um exemplo:
• Se tiver dinheiro suficiente, então vou almoçar em um bom
restaurante.
• Caso contrário (senão), vou comer um sanduíche na
lanchonete da esquina.
33
ALGORITMOS – Repetição
– Também conhecida por “looping” ou laço;
– Permite que tarefas individuais sejam repetidas um
número determinado de vezes ou tantas vezes
quantas uma condição lógica permita;
– Exemplos:
a) vou atirar pedras na vidraça até quebrá-la;
b) baterei cinco pênaltis;
c) enquanto tiver saúde e dinheiro, vou desfrutar a
vida.
34
ALGORITMOS – Repetição
– No exemplo (a), vai-se repetir a ação de atirar pedras na janela
até que seja satisfeita a condição de quebrar a janela.
– No exemplo (b), haverá a repetição da atitude de bater um
pênalti um número determinado de vezes (cinco).
– No exemplo (c), a condição que me permitirá continuar
desfrutando a vida é ter dinheiro e saúde.
– A utilização combinada dessas 3 estruturas descritas vai permitir
expressar, usando qualquer que seja a ferramenta, a solução
para uma gama muito grande de problemas.
– Todas as linguagens de programação oferecem representantes
dessas estruturas.
35
ALGORITMOS – refinamentos
sucessivos
– Um algoritmo é considerado completo se os seus
comandos forem do entendimento do seu
destinatário;
– Caso um comando não seja do entendimento do
destinatário, ele terá que ser desdobrado em novos
comandos;
– Estes novos comandos constituirão um refinamento
do comando inicial, e assim sucessivamente, até que
os comandos sejam entendidos pelo destinatário.
36
ALGORITMOS – refinamentos
sucessivos
– Por exemplo, o algoritmo para calcular a média aritmética
de dois números pode ser escrito da seguinte forma:
Algoritmo CALCULA_MÉDIA
Início
Receba os dois números
Calcule a média dos dois números
Exiba o resultado
Fim
– Podemos desdobrar o comando “Calcule a média dos dois
números” em:
Soma os dois números
Divida o resultado por 2
37
ALGORITMOS – refinamentos
sucessivos
– Após esse refinamento, o algoritmo pode ser
considerado completo;
– a menos que o destinatário não saiba fazer as
operações de adição e divisão, ou não seja capaz de
entender diretamente algum comando.
Algoritmo CALCULA_MÉDIA
Início
Receba os dois números
Soma os dois números
Divida o resultado por 2
Exiba o resultado
Fim
38
ALGORITMOS – refinamentos
sucessivos
– Um algoritmo completo, com os refinamentos sucessivos
inseridos nos seus devidos lugares permite:
• ter uma visão global de como o algoritmo deve ser
executado
– À medida que o algoritmo passa a ser maior e mais
complexo, esta visão global torna-se menos clara;
– Neste caso, um algoritmo apresentado com os
refinamentos sucessivos separados oferece uma melhor
abordagem para quem precisar entendê-lo.
39
ALGORITMOS – Exercícios
– Cite alguns algoritmos que podemos encontrar na vida
quotidiana.
– Suponha que temos um robô a nossa disposição. Esse
robô precisa ser ensinado a fazer determinadas tarefas.
Para ensiná-lo, vamos fazer uso do português para
passar-lhe as instruções necessárias à execução de cada
atividade. Escreva os passos necessários para o robô:
a) encher uma bacia com água;
b) Fazer uma ligação de um telefone fixo;
c) calcular a sua idade daqui a 20 anos;
d) calcular a média de um aluno com 3 notas;
e) Fazer um suco de laranja.
40
Download