Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação
Algoritmos e
Pensamento Lógico
Nossos programas em C
serão muito parecidos
com isso! Lembre-se!
Receita de bolo:
Programa de computador:
Al-Khwarizmi → Algoritmo!
Mas o que é um algoritmo?
Algoritmos
• Definição: Sequência de instruções ordenadas de
forma lógica para a solução de um determinado
problema ou realização de alguma tarefa bem
especificada.
– Precisos, não ambíguos, mecânicos, eficientes,
corretos
– Receita de bolo, manual passo a passo.
• Muitos são os algoritmos que ficaram famosos ao
longo da história. Vejamos o “Algoritmo
Euclidiano”, que Euclides desenvolveu para
calcular o máximo divisor comum (MDC):
Algoritmos
• Ele pode ser resumido em:
1. Dividir um número a por b, o resto é r;
2. Substituir a por b;
3. Substituir b por r;
4. Continuar a divisão de a por b até que um não possa
mais ser dividido. Neste caso, a é o MDC.
• Exercício:
– Calcule o MDC de 1840 e 65.
– Vamos ver um programa que faça a mesma coisa.
Algoritmos
• Podemos trazer o mesmo conceito para o campo
da computação, como um “conjunto de regras e
procedimentos lógicos perfeitamente definidos
que levam à solução de um problema em um
número finito de etapas”.
– Um conjunto de passos que especifica, de momento a
momento, precisamente como se comportar.
– Começo (entrada, ingredientes);
Meio (processamento, modo de preparo) e;
Fim (resultados, bolo).
Algoritmos
• Podemos trazer o mesmo conceito para o campo
da computação, como um “conjunto de regras e
procedimentos lógicos perfeitamente definidos
que levam à solução de um problema em um
número finito de etapas”.
– Um conjunto de passos que especifica, de momento a
momento, precisamente como se comportar.
– Começo (entrada, ingredientes);
Meio (processamento, modo de preparo) e;
Fim (resultados, bolo).
Algoritmos
• Mas o que é lógica?
– “Parte da filosofia que trata das formas do
pensamento em geral (dedução, indução,
hipótese, inferência, etc.) e das operações
intelectuais que visam à determinação do que é
verdadeiro ou não”
– Coerência, fundamento, faz sentido.
• E na computação?
– “Organização e planejamento das instruções em
um algoritmo, a fim de viabilizar a implantação de
um programa.”
Algoritmos
• Portanto, nossos algoritmos devem seguir
uma sequencia lógica!
• Por exemplo: Façamos um algoritmo que
calcule a média de um aluno, que realizou, no
semestre, duas provas e um trabalho:
Variáveis
Lista de ingredientes (entrada e saída)
Leitura de Dados:
Atribuindo valor
às variáveis
Processamento:
Cálculo da Média
Exibição de Dados:
Mostrando resultados
Algoritmos
• O que precisamos, portanto, para resolver um
problema através de um algoritmo?
1. Leitura com muita atenção do enunciado do
problema, com a finalidade de compreender
exatamente o que se deseja resolver.
– Devemos nos ater apenas às variáveis descritas no
enunciado e ao contexto sugerido: Foco.
Foca no problema!
Algoritmos
• Problema:
Você está dirigindo um ônibus que vai de Itajubá
para São José dos Campos. Na primeira parada,
11 pessoas saem do ônibus e 9 entram. Na
segunda parada, 2 pessoas saem do ônibus e 2
entram. Na parada seguinte, 12 pessoas entram e
16 pessoas saem. Na última, 5 pessoas entram no
ônibus e 3 saem. Qual a cor dos olhos do
motorista do ônibus?
Preste atenção no enunciado!
Não se deixe distrair por informação irrelevante.
Foco no problema! Quem está dirigindo o ônibus?
Se você acertou, está no caminho certo...
Algoritmos
2. Identificação dos dados de entrada do
problema.
– Informações fornecidas e/ou necessárias para se
resolver o problema.
3. Identificação dos dados de saída.
– Informações que respondem ou resolvem o
problema.
4. Determinação do que é preciso para obter os
dados de saída a partir dos dados de entrada.
5. Construção passo a passo do algoritmo
6. Teste do algoritmo em várias situações.
Algoritmos
• Exemplo:
– Um kart se desloca a velocidade constante em
uma pista de automobilismo. A pista possui 900m
de extensão e o carro completa cada volta em 30
segundos. Qual a velocidade do carro em m/s?
Algoritmos
• Exemplo:
– Um kart se desloca a velocidade constante em uma pista
de automobilismo. A pista possui 900m de extensão e o
carro completa cada volta em 30 segundos. Qual a
velocidade do carro em m/s?
– O que é importante no enunciado?
• Velocidade constante (já formulamos uma hipótese de como
resolver o problema, pois v = ∆s/ ∆t). Será que temos esses dados?
– Dados de Entrada
• Distância percorrida: 900 m
• Tempo: 30s
– Dados de Saída: Velocidade
– Como obter?
Equação da velocidade(Movimento uniforme).
Hands-On!
Para Pensar...
• Segundo as lendas, existe um problema de lógica
muito difícil, criado por Albert Einstein.
• Apenas 2% da população conseguiria resolvê-lo.
• O problema é interessante pois não se utiliza de
pegadinhas e nem precisa de grande quantidade
de conhecimento extra.
• É necessário, simplesmente, aplicar a lógica e
perseverar!
• Vamos tentar pra a próxima aula!
Para Pensar...
• Foram pintadas 5 casas com 5 cores
diferentes. Em cada casa mora uma pessoa de
um país diferente. Cada um dos proprietários
dessas casas tem um filme favorito, um animal
de estimação diferente e programa em uma
certa linguagem de programação. Essas
características são únicas para cada
proprietário. Não existe repetição.
• Considere os seguintes fatos:
Para Pensar...
• O inglês mora na casa vermelha;
• O sueco tem cães;
• O dinamarquês gosta do filme “Avatar”;
• A casa verde fica à esquerda da branca;
• O dono da casa verde gosta do filme “A Rede Social”;
• A pessoa que programa em C cria pássaros;
• O dono da casa amarela programa em Java;
• O home que mora na casa do centro gosta de “Jurassic Park”;
• O norueguês mora na primeira casa;
• O homem que programa em Python mora ao lado da pessoa que tem gatos;
• O homem que tem um cavalo mora ao lado do homem que programa em Java;
• A pessoa que programa em C# gosta do filme “Star Wars”;
• O alemão programa em C++;
• O norueguês mora ao lado da casa azul;
• O homem que programa em Python tem um vizinho que assiste “O Hobbit”.