Buscar

Introdução à Algoritmos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução a Algoritmos
Neste tópico abordaremos alguns 
conceitos básicos de algoritmos
 2
O que um computador 
faz?
 Fundamentalmente um computador: 
 Executa cálculos
 Lembra os resultados
 Que cálculos?
 Instruções primitivas
 Criação de nosso próprios métodos de 
cálculo
 3
Isso é tudo que ele faz?
 Um bilhão de cálculos por segundo
 Centenas de gigabytes de 
armazenamento
 Isto é o bastante?
 Busca na web
 Jogar xadrez
 4
Resolução de problemas 
computacionais
 O que é computação?
 O que é conhecimento?
 Conhecimento declarativo
 Fatos
 Conhecimento imperativo
 Método do tipo “como fazer” ou receitas
 5
Conhecimento 
declarativo
 “A raiz quadrada de um número x é 
um número y tal que y*y = x”
 Nós podemos usar isto para 
encontrar a raiz quadrada de uma 
instância particular de x?
 6
Conhecimento 
imperativo
 Aqui está uma “receita” para deduzir a 
raiz quadrada de um número x
 Comece com um palpite, chamado p
 Se p*p é próximo o suficiente a x, pare e 
diga que p é a resposta
 Caso contrário, gere um novo palpite, 
calculando a média de p e x/p
 Usando o novo palpite, repita o processo 
até que cheguemos próximo o suficiente
 7
Um exemplo: encontrar 
a raiz quadrada de 25
p p*p x/p (p + x/p) / 2
3 9 8.333 5.667
5.667 32.111 4.412 5.040
5.039 25.392 4.961 5.000
5.000 25.000
 8
Algoritmos são 
“receitas”
1.Coloque a mistura do creme no fogo
2.Mexa
3.Mergulhe a colher no creme
4.Retire a colher e passe o dedo em 
suas costas
5.Se o rastro ficar limpo, retire o creme 
do fogo e deixe esfriar
6.Caso contrário, repita a partir do 
passo 2
 9
Etapas de um algoritmo
 Um algoritmo é uma sequência de 
passos que transformam dados de 
entrada na saída
Entrada Processamento Saída
 10
Método para a 
construção de algoritmos
 Na elaboração de algoritmos é necessário 
utilizar um método sistemático de programação 
que permita a obtenção de algoritmos 
confiáveis, flexíveis e eficientes
 Uma proposta de metodologia para construção 
de algoritmos estabelece os seguintes passos:
 Análise do problema
 Projeto do algoritmo
 Teste do algoritmo
 Implementação
 Teste do programa
 11
Análise do problema (1/2)
 Nesta fase procuramos nos certificar da 
compreensão correta do problema, 
eliminando possíveis ambiguidades e nos 
assegurando do entendimento completo das 
especificações de entrada e saída
 Escolhemos uma amostra significativa de 
dados, definindo as especificações de entrada
 Determinamos a saída desejada 
correspondente aos dados de entrada, 
definindo as especificações de saída
 12
Análise do problema (2/2)
 A escolha da amostra de entrada 
confirma também a compreensão correta 
do enunciado do problema
 Em seguida estudamos métodos de 
resolução do problema e estabelecemos 
uma estratégia para obter a sua solução 
(processamento)
 13
Exemplo
 Problema: calcular a área de um 
retângulo dadas as medidas de sua 
base e altura.
 Entradas?
 Saída?
 Método de resolução do problema 
(processamento)?
 14
Exercício
 Identifique as entradas, 
processamento e saída no algoritmo 
abaixo:
 Ler o valor do produto
 Ler a quantidade de produtos
 Calcular o valor da compra (valor * 
quantidade)
 Escrever o valor da compra
 15
Variável
 Símbolo que denota um valor qualquer
 Noção semelhante a usada na matemática
 Possui um nome e armazena um valor
 Metáfora: caixa nomeada aonde se pode 
colocar valores
 O valor de variáveis pode mudar durante 
a execução do algoritmo
 Como?
 Por entrada: leia(n1)
 Por atribuição: n1   10←
n1 é uma 
variável
 16
Projeto do algoritmo (1/2)
 A descrição de um algoritmo pode ser feita 
através de um pseudocódigo (linguagem 
algorítmica) ou através de fluxogramas
 No fluxograma cada operação básica 
(instrução) é representada por um desenho
 No pseudocódigo cada operação básica é 
escrita em linguagem semelhante à 
linguagem natural, com algumas regras 
comuns às linguagens de programação
 17
Projeto do algoritmo (2/2)
 Os fluxogramas são preferíveis em alguns 
casos por permitir uma visualização global 
do processo de resolução e de suas partes
 A linguagem algorítmica, por sua vez, 
apresenta outras vantagens:
 é mais fácil escrever do que desenhar
 a codificação em linguagem de 
programação acaba se tornando uma 
“simples” transcrição de palavras-chaves
 18
Fluxograma x 
Pseudocódigo
AreaRetangulo() {
   real base, altura, area
   leia(base, altura)
   area   base * altura←
   escreva(area)
}
base, altura
Fim
Início
area = base * altura
area
 19
Teste do algoritmo
 Selecione alguns valores para as 
entradas e verifique se o algoritmo 
gera as saídas corretas
 Teste de mesa
base altura area
2 4.5 9.0
5 5 25
 20
Implementação
 Chamamos de implementação de um 
algoritmo à sua codificação em uma 
linguagem de programação
 A implementação de um algoritmo está 
intimamente relacionada às características da 
linguagem escolhida e dos tipos de dados nela 
definidos
 Em breve aprenderemos a linguagem C para 
implementação de nossos algoritmos
 21
Teste de programa
 Compile e depois execute seu 
programa utilizando um conjunto de 
dados de entrada e verifique se ele 
produz as saídas esperadas
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21

Outros materiais