Algoritmo

Propaganda
Introdução à Algoritmos
Professora: Fabíola Gonçalves.
AGENDA
Algoritmos
 Definição
 Por que precisamos de Algoritmos
 Características
 Formas de representação
 Descrição Narrativa
 Fluxograma
 Linguagem Algorítmica
 Um ambiente para escrever algoritmos
 Funcionamento do Computador

DEFINIÇÃO



“Um conjunto finito de regras que provê uma sequência
de operações para resolver um tipo de problema
específico” [KNUTH].
“Sequê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].
DEFINIÇÃO

Algoritmos do nosso dia-a-dia:




instruções
para
se
utilizar
um
aparelho
eletrodoméstico;
uma receita para preparo de algum prato;
guia de preenchimento da declaração do imposto de
renda;
maneira como as contas de água, luz e telefone são
calculadas mensalmente; etc.
ETAPAS PARA O DESENVOLVIMENTO

Análise


Algoritmo


Estudo do problema e definição dos dados de entrada,
processamento e dados de saída.
Solução do problema em descrita em fluxograma ou
português estruturado.
Codificação

Transformação
programação.
do
algoritmo
em
uma
linguagem
de
POR QUE É IMPORTANTE CONSTRUIR UM
ALGORITMO?

Ele representa fielmente o raciocínio envolvido
na lógica de programação.
Temos que especificar uma sequência de passos lógicos
para que o computador possa executar uma tarefa
qualquer.
 Ele não tem vontade própria!!!


Uma vez concebida uma solução algorítmica
para um problema, esta pode ser traduzido para
qualquer linguagem de programação.
POR QUE PRECISAMOS DE ALGORITMOS?

“A noção de algoritmo é básica para toda a
programação de computadores”. [KNUTH Professor da Universidade de Stanford, autor da coleção “The art
of computer programming”].

Com uma ferramenta algorítmica, podemos
conceber uma solução para um dado
problema.

Independente de linguagem e de computador!!!
ALGORITMOS
“Algoritmo não é a solução de todos os problemas, pois senão
cada problema teria um único algoritmo. Algoritmo é um
caminho para a solução de um problema, e em geral, os caminhos
que levam a uma solução são muitas.”


Algoritmos não se aprende:
- Copiando Algoritmos
- Estudando Algoritmos
Algoritmos só se aprendem:
- Construindo Algoritmos
- Testando Algoritmos
CARACTERÍSTICAS DE UM ALGORITMO

Todo algoritmo deve apresentar algumas
características básicas:
 ter fim
 não dar margem à dupla interpretação (não
ambíguo)
 capacidade de receber dado(s) de entrada do mundo
exterior
 gerar dados de saída para o mundo externo ao do
ambiente do algoritmo;
 ser efetivo
 todas as etapas especificadas no algoritmo devem ser
alcançáveis em um tempo finito.
O CONCEITO DE ALGORITMO
 Considere
que um algoritmo deve consistir
de
passos
executáveis.
Para
tanto,
considerar as instruções:
Passo 1. Construir uma lista de todos os inteiros
positivos
 Passo 2. Organizar esta lista em ordem decrescente
 Passo 3. Extrair o primeiro inteiro da lista resultante.


Esta sequência caracteriza um algoritmo?
ENTIDADES BÁSICAS

Do ponto de vista da forma como decorre o fluxo de execução
num algoritmo (qual a sequência de execução dos passos), pode
ser demonstrado que qualquer algoritmo de computador pode
ser construído utilizando apenas três tipos de entidade de
construção:
1. Sequência - Salvo outra indicação, os passos são executados em
sequencia, de cima para baixo.
2. Decisão - Uma forma de decidir entre a execução de duas instruções ou
dois conjuntos de instruções.
3. Repetição - Uma forma de repetir, várias vezes, a execução de uma
dada instrução ou conjunto de instruções.

Isto é, qualquer método de representação que permita
representar as três entidades acima descritas é suficiente para
representar qualquer tipo de algoritmo.
FORMAS DE REPRESENTAÇÃO
 Algoritmos
podem ser representados,
dentre outras maneiras, por:
Descrição Narrativa
 Fluxograma
 Linguagem Algorítmica

FORMAS DE REPRESENTAÇÃO
DESCRIÇÃO NARRATIVA
FORMAS DE REPRESENTAÇÃO
FLUXOGRAMA

FORMAS DE REPRESENTAÇÃO FLUXOGRAMA
(...CONT.)

FORMAS DE REPRESENTAÇÃO
FLUXOGRAMA (...CONT.)

FORMAS DE REPRESENTAÇÃO
LINGUAGEM ALGORÍTMICA
UM AMBIENTE PARA ESCREVER ALGORITMOS
FUNCIONAMENTO DO COMPUTADOR
 Resumidamente,
podemos afirmar que existem 4
operações básicas:

a) operações de entrada e saída:
ler dados do teclado e escrever dados na tela.
 servem
para introduzir dados na memória do nosso
computador e exibir dados que já estejam lá armazenados;


b) operações aritméticas:
 utilizadas na realização de operações matemáticas (adição,
subtração, multiplicação e divisão);
FUNCIONAMENTO DO COMPUTADOR


c) operações lógicas e relacionais:
 têm aplicabilidade em comparações, testes de condições
lógicas (2 > 6 ? X = Y ?);
movimentação
componentes:
d)

de
dados
entre
os
vários
operações aritméticas são executadas na Unidade Lógica e
Aritmética, necessitando da transferência dos dados para essa
unidade e da volta do resultado final para guardar na
memória.
O ALGORITMO É DIVIDO EM TRÊS FASES
Entradas
Processamento
Saídas
Dados
Dados
Dados
Dados
...
Operações
(Programa)
Informação
ANALOGIA COM O SER HUMANO
ESTRUTURA BÁSICA DE UM ALGORITMO
Os
algoritmos
estrutura:
terão
a
seguinte
ALGORITMO <Nome do algoritmo>
<definições>
INÍCIO
<Comandos>
FIM
EXEMPLOS DE ALGORITMOS
ALGORITMO PARA FALAR AO TELEFONE:
1.
2.
3.
4.
5.
6.
Retirar o telefone do gancho
Esperar o sinal
Colocar o cartão
Discar o número
Falar no telefone
Colocar o telefone no gancho
É como se fossemos ensinar uma
máquina a fazer alguma tarefa
específica!
ALGORITMO PARA TROCAR LÂMPADAS...
1.
2.
3.
4.
5.
Se (lâmpada estiver fora de alcance)
pegar a escada;
Pegar a lâmpada;
Se (lâmpada estiver quente)
pegar pano;
Tirar lâmpada queimada;
Colocar lâmpada boa;
CALCULAR A MÉDIA FINAL DOS
ALUNOS DO CURSO DE ENGENHARIA:

Média final = N1*0.3 + N2*0.7
Quais são os dados de entrada?
 Qual será o processamento utilizado?
 Quais serão os dados de saída?


Faça o algoritmo deste problema:
CALCULAR A MÉDIA FINAL DOS
ALUNOS DO CURSO DE ENGENHARIA:
ALGORITMO PROPOSTO:
Receba a nota da primeira avaliação
 Receba a nota da segunda avaliação
 Multiplique a 1ª avaliação por 0.3
 Multiplique a 2ª avaliação por 0.7
 Some as duas notas
 Mostre o resultado

EXEMPLO: CÁLCULO DA MÉDIA DOS
ALUNOS
 Pseudocódigo:
Algoritmo Calculo_Media
Var N1, N2, Media : real
Início
Leia (N1);
Leia (N2);
Media  (N1 + N2) / 2;
Se Media > 7 Então
Escreva ("Aprovado“);
Senão
Escreva( "Reprovado“);
Fim_se
FimAlgoritmo
TESTE DE MESA


Todo algoritmo deve ser testado
Usar dados e resultados previamente calculados,
seguir precisamente as instruções do algoritmo e
verificar se o procedimento está correto ou não
32
PROGRAMA:



Algoritmo escrito em uma linguagem de computador
(linguagem de programação - C, Pascal, COBOL,
Fortran, Java, Lua, etc.)
Interpretado e executado por um computador
Interpretação rigorosa, exata, do computador

 escrita do algoritmo na linguagem de prog. tem que
seguir regras mais rigorosas
33
PROBLEMA ILUSTRATIVO 1


Dispomos de duas vasilhas com capacidades de 9 e 4
litros respectivamente. As vasilhas não tem nenhum
tipo de marcação, de modo que não é possível ter
medidas como metade ou um terço.
Mostre uma sequência de passos, que usando as
vasilhas de 9 e 4 litros encha uma terceira vasilha
de medida desconhecida com seis litros de
água.
PROBLEMA ILUSTRATIVO 1

Uma possível solução:

Encha a vasilha de 9 litros;

Usando a vasilha de 9 litros, encha a vasilha de 4 litros;

Despeje o que sobrou na vasilha de 9 litros (5 litros) na terceira
vasilha. Observe que falta um litro para completar os seis litros;

Esvazie a vasilha de 4 litros;

Torne a encher a vasilha de 9 litros;

Usando a vasilha de 9 litros encha a vasilha de 4 litros;

Esvazie a de 4 litros;


Usando o que restou na vasilha de 9 litros (5 litros), encha
novamente a vasilha de quatro litros;
Despeje o que sobrou na vasilha de 9 litros (1 litro) na terceira
vasilha, que agora tem 6 litros.
PROBLEMA ILUSTRATIVO II



O indivíduo A é encarregado de determinar a idade dos
três filhos do indivíduo B. B conta a A que o produto das
idades das crianças é 36. Depois de levar em conta esta
informação.
A responde que precisa de mais informação, e então B
conta a A a soma das idades das crianças. Novamente, A
diz que necessita de mais informação, e assim B conta que
a criança mais velha toca piano. Depois de ouvir isto, A
responde para B a idade das três crianças.
Qual é a idade de cada uma das três crianças?
PROBLEMA ILUSTRATIVO II


À primeira vista, a ultima informação parece não ter
conexão com o problema, mas é ela que permite que A
finalmente determine a idade das crianças.
Como isso acontece? Vamos formular um plano de ataque
para depois segui-lo, embora ainda temos muitas perguntas
a fazer a cerca do problema.. Nosso plano consiste em
rastrear os passos descritos pelo enunciado do problema,
mantendo passo a passo, o registro da informação
disponível ao indivíduo A, ao longo do tempo.
PROBLEMA ILUSTRATIVO II
PROBLEMA ILUSTRATIVO II - DICAS



Assim, neste caso, enquanto não tentamos implementar
nosso plano para resolver o problema (fase 3), não foi
possível ter uma plena compreensão do mesmo (fase 1).
Se tivéssemos "teimado" em completar a fase 1 antes de
começar a resolver o problema, provavelmente nunca
teríamos achado as idades das crianças.
Tais irregularidade no processo de resolução de problemas
contribuem para a dificultar o desenvolvimento de métodos
sistemáticos para a resolução de problemas.
PROBLEMA ILUSTRATIVO III






Antes de A, B, C e D participarem de uma corrida, eles fizeram
as seguintes previsões:
A previu que B ganharia
B previu que D seria o último
C previu que A seria o terceiro
D previu que a previsão de A estaria correta
Apenas uma destas previsões deu certo (está correta), e esta
foi feita pelo vencedor da corrida. Em que ordem A, B, C e D
terminaram a corrida?
EXERCÍCIOS...
a) Assistir a um programa qualquer na TV,
considerando que o aparelho está desligado.
b) Resolver um exercício qualquer de matemática,
considerando que o enunciado está impresso e a
resolução deverá ser feita utilizando-se lápis e
papel.
c) Preparar um omelete, considerando que os ovos
estão na geladeira.
d) Trocar um pneu de um automóvel
e) Orientar um robô para percorrer um labirinto
qualquer.
EXERCÍCIOS...

Faça o algoritmo (portugol) e o fluxograma para:

Exibir o resultado da multiplicação de dois números.


Ler 3 notas e seus respectivos pesos, calcular e exibir a
média ponderada das notas.
Calcular a área e o perímetro de um círculo.
área do circulo é igual a π . r²
 Perímetro é p = 2.pi.r


Converta graus Celcius em graus Fahrenheit

Use: F = 180(C+32)/100
Download