SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Prof. Fernando Augusto Salla
LÓGICA DE
PROGRAMAÇÃO E
ALGORITMOS
Introdução à Lógica
¨  Comumente associada apenas à matemática
¤  Não percebemos a sua área de atuação
¤  Relação com diversas ciências
¨  Pode ser considerada a “correção do pensamento”
¤  Preocupa-se em determinar quais operações são válidas ou não
¨  Como filosofia, procura entender o motivo de pensarmos
assim e não de outra maneira
¨  Como arte ou técnica, ensina a usar as leis do pensamento
corretamente
Introdução à Lógica
¨  Pode ser definida como:
¤  “Arte de pensar bem”
¤  “Ciência das forma do pensamento”
¨  A forma mais complexa de pensar é o raciocínio
¤  A lógica estuda a “correção do raciocínio”
¨  Tem em vista a “ordem da razão
¤  Podemos pensar de maneira desordenada
¨  A lógica ensina a pôr “ordem no pensamento”
Introdução à Lógica
¨  Exemplos
¤  Todo mamífero é um animal
¤  Todo cavalo é um mamífero
¤  Logo, todo cavalo é um animal
¤  Brasil é um país do planeta Terra
¤  Todos os brasileiros são do Brasil
¤  Portanto, todo brasileiro é terráqueo
Introdução à Lógica
¨  Argumentos compostos de duas premissas e uma
conclusão
¤  As relações podem ser válidas ou inválidas
¨  Um dos objetivos da lógica é permitir verificar a
validade dos argumentos
¨  Lógica ou ilógica nos acompanha sempre que
pensamos
Introdução à Lógica
¨  Quando falamos ou escrevemos precisamos pensar
¤  Logo, utilizamos a lógica
¨  A lógica é muito importante em nossa vida
¤  Na teoria e na prática
¤  Ao falar, pensar, escrever ou agir corretamente
¤  Precisamos “ordenar o pensamento”
¨  Exemplo:
¤  A gaveta está fechada
¤  A caneta está dentro da gaveta
¤  É preciso primeiro abrir a gaveta para pegar a caneta
Lógica de Programação
¨  Uso correto das leis do pensamento, ordem da razão e
processos de raciocínio e simbolização formais na
programação de computadores
¨  Resolver com qualidade os problemas que se deseja
solucionar
¤  Soluções logicamente coerentes e válidas
¨  O raciocínio é abstrato, algo intangível
¤  O ser humano o expressa pela fala ou escrita
¤  Baseia-se em um determinado idioma
¤  Idiomas possuem uma série de padrões (gramática)
Lógica de Programação
¨  É possível expressar o mesmo raciocínio em diversos idiomas
¤  Continuará representando o mesmo raciocínio
¤  Usará apenas outra convenção
¨  Algo similar ocorre com a lógica de programação
¤  É criada por uma mente treinada
¤  Pode ser aplicada em qualquer uma das diversas linguagens de
programação
¤  Cada linguagem possui suas diversidades
¨  Usamos os ALGORITMOS para fugir destas diferenças
¤  Representa mais fielmente o raciocínio da lógica de programação
Algoritmos
¨  Conceito central da programação e da ciência da
computação
¨  Sequência finita de passos que visam atingir um
objetivo bem definido
¨  Para especificar uma sequência de passos é necessário
utilizar ordem
¤  Pensar em ordem
¤  Utilizamos lógica
Algoritmos
¨  São comuns no nosso dia-a-dia
¨  Pode ser aplicado a qualquer situação que exija a
descrição da solução
¨  A receita de um bolo é um bom exemplo
¤  Ingredientes e a sequência de passos para o preparo
(ações)
¤  Se cumpridos fielmente teremos o bolo conforme desejado
inicialmente (objetivo bem definido)
Algoritmos
¨  Outros exemplos de algoritmos em nosso cotidiano
¤  Instruções de uso
¤  Manual de instalação
¤  Receitas de cozinha
¤  Partituras musicais
¨  Quando perguntamos o caminho de um local, temos
um algoritmos cujo seguimento nos leva ao objetivo
Algoritmos
¨  Um algoritmo precisa ter ações claras e precisas
¨  Parte de um estado inicial e após um período de tempo
finito produz um estado final
¤  Resultado previsível e bem definido
¨  Fixa um padrão de comportamento a ser seguido
¤  Tem como resultado final a solução de um problema
¤  Sempre que executado (sob as mesmas condições) deve
produzir o mesmo resultado
Algoritmos
¨  Normas para execução de ações
¤  Evento que ocorre em período de tempo finito
¤  Possui efeito bem definido e intencionado
¤  Exemplos:
n  “Caminhar até a próxima esquina”
n  “Colocar um livro em cima da mesa”
¨  Programar é, basicamente, construir algoritmos
Algoritmos
¨  Construir algoritmos eficientes exige considerar
algumas regras no momento da construção
¤  Definir ações simples e sem ambiguidade
¤  Organizar as ações em uma ordem lógica
¤  Estabelecer as ações dentro de uma sequência finita
de passos
Ação
1
Ação
2
Ação
3
Algoritmos
¨  Exemplo de algoritmo (em português) para a troca
de uma lâmpada
¤  Pegar uma escada;
¤  Posicionar a escada embaixo da lâmpada;
¤  Buscar uma lâmpada nova;
¤  Subir na escada;
¤  Retirar a lâmpada queimada;
¤  Instalar a lâmpada nova.
Algoritmos
¨  Involuntariamente definimos uma sequência de
ações
¤  Naturalmente seguido por qualquer pessoa (padrão
de comportamento)
¨  A sequenciação rege o fluxo de execução do
algoritmo
¤  Determina a primeira ação a ser executada e qual a
ação seguinte
¤  Sequência linear (de cima para baixo)
Algoritmos
¨  Exercício: Descrevam os passos necessários para a troca de um
pneu
1.  Desligar o carro
2.  Pegar a chave de roda e o macaco
3.  Pegar o estepe
4.  Erguer o carro com o macaco
5.  Retirar os 4 parafusos do pneu furado
6.  Remover o pneu furado
7.  Colocar o estepe
8.  Apertar os 4 parafusos
9.  Baixar o carro com o macaco
10.  Guardar as ferramentas
Algoritmos
¨  No algoritmo da lâmpada tínhamos um objetivo
bem definido
¤  Trocar a lâmpada
¨  E se a lâmpada não estivesse queimada?
¤  A execução das ações levaria a troca da lâmpada
¤  Independente de estar queimada ou não
¤  Essa situação não foi prevista na construção do
algoritmo
Algoritmos
¨  Podemos efetuar um teste e verificar se a lâmpada
está queimada ou não
¤  Pegar uma escada;
¤  Posicionar a escada embaixo da lâmpada;
¤  Buscar uma lâmpada nova;
¤  Acionar o interruptor;
¤  Se a lâmpada não acender, então
n  Subir na escada;
n  Retirar a lâmpada queimada;
n  Instalar a lâmpada nova.
Algoritmos
¨  Ligamos ações à condição “lâmpada não acender”
¤  Condição verdadeira = lâmpada queimada
n  Efetuamos a troca
¤  Condição falsa = lâmpada funcionando
n  Nenhuma ação de troca é executada
¨  Incluímos uma condição para indicar as ações que
serão executadas
¤  Conforme resultado da condição (verdadeiro ou falso)
Algoritmos
¨  Algoritmo correto mas pode ser melhorado
¤  A escada e a lâmpada nova são buscados mesmo sem saber se o
uso será necessário
¨  Uma solução ideal para este caso seria:
¤  Acionar o interruptor;
¤  Se a lâmpada não acender, então
n  Pegar uma escada;
n  Posicionar a escada embaixo da lâmpada;
n  Buscar uma lâmpada nova;
n  Subir na escada;
n  Retirar a lâmpada queimada;
n  Instalar a lâmpada nova.
Algoritmos
¨  Existem muitas formas de resolver um problema
¤  Cada pessoa pensa e age de maneira diferente
¤  Casa indivíduo possui uma heurística própria
¨  Para o mesmo problema de troca da lâmpada
podemos ter diversas soluções corretas
¨  Bom senso e prática indicarão a solução mais
adequada
¤  Menor esforço e maior objetividade produza o resultado
desejado
Algoritmos
¨  E se a lâmpada nova não funcionar?
¨  O objetivo especificado não será alcançado
¨  Podemos ajustar o algoritmo
¤  Trocar a lâmpada até que ela funcione corretamente
¤  Vejamos uma solução a seguir
¤  Acionar o interruptor;
¤  Se a lâmpada não acender, então
n  Pegar uma escada;
n  Posicionar a escada embaixo da lâmpada;
n  Buscar uma lâmpada nova;
n  Subir na escada;
n  Retirar a lâmpada queimada;
n  Instalar a lâmpada nova;
n  Se a lâmpada não acender, então
n  Retirar a lâmpada queimada;
n  Instalar outra lâmpada nova;
n  Se a lâmpada não acender, então
n  Retirar a lâmpada queimada;
n  Instalar outra lâmpada nova;
n  ...
Até quando?
Algoritmos
¨  Não é possível definir a quantidade de testes necessária
¨  Precisamos indicar até quando o teste será feito
¤  Neste caso, quando uma que funcione for instalada
¨  É possível alterar o fluxo sequencial de execução
¨  Ao executar “Colocar outra lâmpada nova” voltamos a
executar o teste “Se a lâmpada não acender”
¤  Ações executadas várias vezes
¤  Sem a necessidade de reescrevê-las
Algoritmos
¨  Expressamos a repetição sem repetir o texto que
representa a ação
¨  Também é preciso determinar um limite para a
operação
¤  Criar uma condição de parada
¤  No exemplo, deve parar a repetição se a lâmpada
nova acender
Algoritmos
¨  Uma solução seria:
¤  Enquanto a lâmpada não acender, faça
n  Retirar a lâmpada queimada;
n  Instalar outra lâmpada nova;
¨  A condição “lâmpada não acender” estabelece um
fluxo repetitivo
¤  Será finalizado assim que a condição for FALSA
¤  O número de repetições indefinido porém finito
Algoritmos
¨  Uma nova solução seria:
¤  Acionar o interruptor;
¤  Se a lâmpada não acender, então
n  Pegar uma escada;
n  Posicionar a escada embaixo da lâmpada;
n  Buscar uma lâmpada nova;
n  Subir na escada;
n  Retirar a lâmpada queimada;
n  Instalar a lâmpada nova;
n  Enquanto a lâmpada não acender, faça
n  Retirar a lâmpada queimada;
n  Instalar a lâmpada nova;
Algoritmos
¨  Até agora trocamos a lâmpada de apenas um
soquete
¨  O que faríamos se fosse preciso testar 10 soquetes?
¨  A solução mais óbvia seria repetir o algoritmo de
uma única lâmpada para os 10 soquetes existentes
¨  Veja exemplo a seguir
¤  Acionar o primeiro interruptor;
¤  Se a lâmpada não acender, então
n  Pegar uma escada;
n  Posicionar a escada embaixo da lâmpada;
n  Buscar uma lâmpada nova;
n  Subir na escada;
n  Retirar a lâmpada queimada;
n  Instalar a lâmpada nova;
n  Enquanto a lâmpada não acender, faça
n  Retirar a lâmpada queimada;
n  Instalar a lâmpada nova;
¤  Acionar o segundo interruptor;
¤  Se a lâmpada não acender, então
n  Pegar uma escada;
n  Posicionar a escada embaixo da lâmpada;
n  ...
¤  ...
¤  Acionar o décimo interruptor;
¤  Se a lâmpada não acender, então
n  Pegar uma escada;
n  Posicionar a escada embaixo da lâmpada;
n  ...
Algoritmos
¨  Temos um algoritmo com 10 repetições do algoritmo de
troca de um soquete
¨  O conjunto de operações a ser executada é o mesmo
¤  O que muda é o soquete
¨  Podemos alterar o fluxo sequencial da execução
¤  Executar o conjunto de ações de um único soquete
¤  Quantas vezes forem necessárias
¨  Vejamos uma possível solução
¤  Ir até o interruptor do primeiro soquete;
¤  Enquanto a quantidade de soquetes testados for menor que
dez, faça;
n  Acionar o interruptor;
n  Se a lâmpada não acender, então
n  Pegar uma escada;
n  Posicionar a escada embaixo da lâmpada;
n  Buscar uma lâmpada nova;
n  Subir na escada;
n  Retirar a lâmpada queimada;
n  Instalar a lâmpada nova;
n  Enquanto a lâmpada não acender, faça
n  Retirar a lâmpada queimada;
n  Instalar a lâmpada nova;
n  Ir até interruptor do próximo soquete;
Algoritmos
¨  Inicialmente tínhamos um pequeno conjunto de ações
¤  Deveriam ser executadas passo a passo
¤  Uma após a outra
¤  Ordem sequencial de execução (estrutura sequencial)
¨  Vimos que nem todas as ações previstas precisariam
ser executadas
¤  Um determinado conjunto de ações poderia ser evitado
¤  Conforme resultado de determinada condição
¤  Criamos uma estrutura condicional
Algoritmos
¨  Foi preciso repetir um trecho do algoritmo
¤  Repetir enquanto uma condição era verdadeira
¨  Agimos de forma semelhante quando foi preciso
trocar dez lâmpadas
¨  Criamos uma estrutura de repetição
Algoritmos
¨  Qualquer pessoa seria capaz de resolver o
problema na prática
¤  Inclusive imprevistos que viessem a surgir
¨  Programas de computador tradicionais não tem
conhecimento prévio e nem adquirem experiência
¤  Devemos determinar todas as ações a serem
executadas em detalhes
¤  Sequência finita de passos que garantam a solução do
problema
Algoritmos
¨  Até o momento representamos os algoritmos em forma
textual
¤  Usando português coloquial
¨  Formas gráficas são mais fiéis ao raciocínio original
¤  Convenções de desenhos no lugar de um grande número de
palavras
¨  Conheceremos duas formas de representar os algoritmos
graficamente
¤  Fluxograma tradicional
¤  Diagrama de Chapin
Algoritmos
¨  Cada técnica possui vantagens e desvantagens
¨  Ambas permitem um grande nível de clareza quanto ao
fluxo de execução
¨  O algoritmo em forma textual deve ser mais fácil de
compreender
¤  Nas formas gráficas é necessário conhecer suas convenções
¤  São simples mas não são naturais
¤  Estamos condicionados a nos expressar por palavras
Algoritmos
¨  Sempre é mais trabalhoso fazer um desenho do que
escrever um texto
¨  O problema aumenta quando é necessário alterar ou
corrigir o desenho
¨  Esses pontos podem desencorajar o uso de representações
gráfica
¤  E, de maneira errada, a própria construção de algoritmos
¨  Portanto, usaremos o método textual
¤  É menos claro mas é natural e fácil de usar
Algoritmos
¨  Usaremos o português para representar
textualmente os algoritmos
¨  Usaremos um conjunto de regras para restringir e
estruturar o uso nos algoritmos
¤  Facilitar a codificação dos algoritmos em uma
linguagem de programação
¤  Faremos essa codificação em C++
Exercícios de Fixação
1.  Três senhoras (Dona Branca, Dona Rosa e Dona
Violeta) passeavam pelo parque, quando Dona
Rosa disse:
¤  Não é curioso? Estamos usando vestidos de cores
branca, rosa e violeta, embora nenhuma de nós esteja
usando um vestido de cor igual ao seu próprio nome.
¤  Uma simples coincidência - respondeu a senhora com
vestido violeta.
¤  Qual a cor do vestido de cada senhora?
Exercícios de Fixação
2.  Um homem precisa atravessar um rio com um barco que
possui capacidade apenas para carregar ele mesmo e
mais uma de suas três cargas, que são: um lobo, um bode
e um maço de alfafa. O que o homem deve fazer para
conseguir atravessar o rio sem perder suas cargas?
¤  Não podem ficar sozinhos do mesmo lado
n  Lobo e bode
n  Bode e alfafa
¤  Escreva um algoritmo mostrando a resposta, ou seja, indicar
todas as ações necessárias para efetuar uma travessia segura
Exercícios de Fixação
3.  Elabore um algoritmo que mova três discos de uma Torre
de Hanói, que consiste em três hastes (a-b-c), uma das
quais serve de suporte para três discos de tamanhos
diferentes (1-2-3), os menores sobre os maiores. Pode-se
mover um disco de cada vez para qualquer haste,
contanto que nunca seja colocado um disco maior sobre um
menor. O objetivo é transferir os três discos para outra
haste.
Exercícios de Fixação
4.  Três jesuítas e três canibais precisam atravessar
um rio; para tal, dispõem de um barco com
capacidade para duas pessoas. Por medidas de
segurança não se permite que em alguma
margem a quantidade de jesuítas seja inferior à
de canibais. Qual a sequência de passos que
permitiria a travessia com segurança?
Exercícios de Fixação
5.  No torneio de atletismo, Barnabé, Gumercindo e
Teodoro participam das provas de 100 metros rasos,
salto em distância e arremesso de dardo. Cada um
deles conseguiu um primeiro lugar, um segundo e um
terceiro. Descubra o que cada um conquistou, sabendo
que:
¤  Gumercindo venceu Barnabé no salto de distância;
¤  Teodoro chegou atrás de Gumercindo no arremesso de
dardo;
¤  Barnabé não chegou em primeiro nos 100 metros rasos.
Exercícios de Fixação
6.  João tem três barris. No barril A, que está vazio,
cabem 8 litros. No barril B, 5 litros e no barril C, 3
litros ambos estão cheios. Que deve ele fazer
para deixar os barris A e B com 4 litros cada e o
C vazio?
Exercícios de Fixação
7.  Considere que uma calculadora comum, de quatro
operações, está com as teclas de divisão e
multiplicação inoperantes. Escreva algoritmos que
resolvam as expressões matemáticas a seguir usando
apenas a operação de adição e de subtração.
¤  12 x 4
¤  23 x 11
¤  10 / 2
¤  175 / 7
¤  28
Exercícios de Fixação
8.  Aprimore o exercício de troca de pneu para
considerar o seguinte conjunto de situações:
¤  Trocar o pneu traseiro esquerdo;
¤  Trocar o pneu traseiro esquerdo e, antes, verificar se o pneu
reserva está em condições de uso;
¤  Verificar se existe algum pneu furado; se houver, verificar o
pneu reserva e, então, trocar o pneu correto.
¤  Para cada algoritmo faça um refinamento do anterior,
introduzindo novas ações e alterando o fluxo de execução
de forma compatível com as situações apresentadas.

Mais conteúdo relacionado

Mais procurados

Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlex Camargo
 
Apresentação Scratch
Apresentação ScratchApresentação Scratch
Apresentação ScratchMichele Felkl
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Android - Programação para dispositivos móveis (Aula 1)
Android - Programação para dispositivos móveis (Aula 1)Android - Programação para dispositivos móveis (Aula 1)
Android - Programação para dispositivos móveis (Aula 1)Ricardo Longa
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Pacc UAB
 
Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01thomasdacosta
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmosAdilio Tavares
 
Apresentacao - Introducao Informatica.ppt
Apresentacao - Introducao Informatica.pptApresentacao - Introducao Informatica.ppt
Apresentacao - Introducao Informatica.pptJunioSantos28
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Gercélia Ramos
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareSuzana Viana Mota
 
Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)DaviMatos25
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1engenhariadecomputacao
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosWesley R. Bezerra
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Pacc UAB
 
Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10LucasMansueto
 

Mais procurados (20)

Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Algoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetiçãoAlgoritmos e Programação: Estruturas de repetição
Algoritmos e Programação: Estruturas de repetição
 
Apresentação Scratch
Apresentação ScratchApresentação Scratch
Apresentação Scratch
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Android - Programação para dispositivos móveis (Aula 1)
Android - Programação para dispositivos móveis (Aula 1)Android - Programação para dispositivos móveis (Aula 1)
Android - Programação para dispositivos móveis (Aula 1)
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
 
Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmos
 
Apresentacao - Introducao Informatica.ppt
Apresentacao - Introducao Informatica.pptApresentacao - Introducao Informatica.ppt
Apresentacao - Introducao Informatica.ppt
 
Interface Homem Computador - Aula01- Introdução a IHC
Interface Homem Computador - Aula01- Introdução a IHCInterface Homem Computador - Aula01- Introdução a IHC
Interface Homem Computador - Aula01- Introdução a IHC
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e Software
 
Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)Sistema Operacional Windows (versão 11)
Sistema Operacional Windows (versão 11)
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dados
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1
 
Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10
 

Destaque

Lista de exercício resposta
Lista de exercício   respostaLista de exercício   resposta
Lista de exercício respostaHercules Santhus
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidosCrishna Irion
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Fluxograma de atividades
Fluxograma de atividadesFluxograma de atividades
Fluxograma de atividadesVanessa Barbosa
 
Numeros quebrados e inteiros
Numeros quebrados e inteirosNumeros quebrados e inteiros
Numeros quebrados e inteirosAdonil Carvalho
 
Apostila de algoritmos e lã³gica de programaã§ã£o
Apostila de algoritmos e lã³gica de programaã§ã£oApostila de algoritmos e lã³gica de programaã§ã£o
Apostila de algoritmos e lã³gica de programaã§ã£oPedro Paulo Ak
 
Gestão da Produção
Gestão da ProduçãoGestão da Produção
Gestão da Produçãogdomingues
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresRegis Magalhães
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlgWillians Miyabara
 

Destaque (11)

Lista de exercício resposta
Lista de exercício   respostaLista de exercício   resposta
Lista de exercício resposta
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Prova 2 de lógica
Prova 2 de lógicaProva 2 de lógica
Prova 2 de lógica
 
Numeros quebrados
Numeros quebradosNumeros quebrados
Numeros quebrados
 
Fluxograma de atividades
Fluxograma de atividadesFluxograma de atividades
Fluxograma de atividades
 
Numeros quebrados e inteiros
Numeros quebrados e inteirosNumeros quebrados e inteiros
Numeros quebrados e inteiros
 
Apostila de algoritmos e lã³gica de programaã§ã£o
Apostila de algoritmos e lã³gica de programaã§ã£oApostila de algoritmos e lã³gica de programaã§ã£o
Apostila de algoritmos e lã³gica de programaã§ã£o
 
Gestão da Produção
Gestão da ProduçãoGestão da Produção
Gestão da Produção
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
 
Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 

Semelhante a Introdução à Lógica de Programação e Algoritmos (20)

Algoritmos - capítulo 1
Algoritmos - capítulo 1Algoritmos - capítulo 1
Algoritmos - capítulo 1
 
ApostilaAlgoritmo
ApostilaAlgoritmoApostilaAlgoritmo
ApostilaAlgoritmo
 
01-Lógica de Programação .pptx
01-Lógica de Programação .pptx01-Lógica de Programação .pptx
01-Lógica de Programação .pptx
 
INTRODUÇÃO A ALGORITMOS: CONCEITOS BÁSICOS DE ALGORITMOS
INTRODUÇÃO A ALGORITMOS: CONCEITOS BÁSICOS DE ALGORITMOSINTRODUÇÃO A ALGORITMOS: CONCEITOS BÁSICOS DE ALGORITMOS
INTRODUÇÃO A ALGORITMOS: CONCEITOS BÁSICOS DE ALGORITMOS
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Cap04
Cap04Cap04
Cap04
 
Cap04
Cap04Cap04
Cap04
 
Cap04
Cap04Cap04
Cap04
 
Introdução
IntroduçãoIntrodução
Introdução
 
Aula1
Aula1Aula1
Aula1
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
 
122172 1445
122172 1445122172 1445
122172 1445
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
 
Forb.cap1
Forb.cap1Forb.cap1
Forb.cap1
 
Aula 2 - Introducao a Algoritmo.pptx
Aula 2 - Introducao a Algoritmo.pptxAula 2 - Introducao a Algoritmo.pptx
Aula 2 - Introducao a Algoritmo.pptx
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Lógica da programação
Lógica da programaçãoLógica da programação
Lógica da programação
 
Lógica da programação
Lógica da programaçãoLógica da programação
Lógica da programação
 
Curso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de ProgramacaoCurso de Delphi - Lógica de Programacao
Curso de Delphi - Lógica de Programacao
 

Último

Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfFernandaMota99
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresAnaCarinaKucharski1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdf
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdfGEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdf
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdfElianeElika
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreElianeElika
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 

Último (20)

Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdf
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdf
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdfGEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdf
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdf
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestreCIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
CIÊNCIAS HUMANAS - ENSINO MÉDIO. 2024 2 bimestre
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 

Introdução à Lógica de Programação e Algoritmos

  • 1. Prof. Fernando Augusto Salla LÓGICA DE PROGRAMAÇÃO E ALGORITMOS
  • 2. Introdução à Lógica ¨  Comumente associada apenas à matemática ¤  Não percebemos a sua área de atuação ¤  Relação com diversas ciências ¨  Pode ser considerada a “correção do pensamento” ¤  Preocupa-se em determinar quais operações são válidas ou não ¨  Como filosofia, procura entender o motivo de pensarmos assim e não de outra maneira ¨  Como arte ou técnica, ensina a usar as leis do pensamento corretamente
  • 3. Introdução à Lógica ¨  Pode ser definida como: ¤  “Arte de pensar bem” ¤  “Ciência das forma do pensamento” ¨  A forma mais complexa de pensar é o raciocínio ¤  A lógica estuda a “correção do raciocínio” ¨  Tem em vista a “ordem da razão ¤  Podemos pensar de maneira desordenada ¨  A lógica ensina a pôr “ordem no pensamento”
  • 4. Introdução à Lógica ¨  Exemplos ¤  Todo mamífero é um animal ¤  Todo cavalo é um mamífero ¤  Logo, todo cavalo é um animal ¤  Brasil é um país do planeta Terra ¤  Todos os brasileiros são do Brasil ¤  Portanto, todo brasileiro é terráqueo
  • 5. Introdução à Lógica ¨  Argumentos compostos de duas premissas e uma conclusão ¤  As relações podem ser válidas ou inválidas ¨  Um dos objetivos da lógica é permitir verificar a validade dos argumentos ¨  Lógica ou ilógica nos acompanha sempre que pensamos
  • 6. Introdução à Lógica ¨  Quando falamos ou escrevemos precisamos pensar ¤  Logo, utilizamos a lógica ¨  A lógica é muito importante em nossa vida ¤  Na teoria e na prática ¤  Ao falar, pensar, escrever ou agir corretamente ¤  Precisamos “ordenar o pensamento” ¨  Exemplo: ¤  A gaveta está fechada ¤  A caneta está dentro da gaveta ¤  É preciso primeiro abrir a gaveta para pegar a caneta
  • 7. Lógica de Programação ¨  Uso correto das leis do pensamento, ordem da razão e processos de raciocínio e simbolização formais na programação de computadores ¨  Resolver com qualidade os problemas que se deseja solucionar ¤  Soluções logicamente coerentes e válidas ¨  O raciocínio é abstrato, algo intangível ¤  O ser humano o expressa pela fala ou escrita ¤  Baseia-se em um determinado idioma ¤  Idiomas possuem uma série de padrões (gramática)
  • 8. Lógica de Programação ¨  É possível expressar o mesmo raciocínio em diversos idiomas ¤  Continuará representando o mesmo raciocínio ¤  Usará apenas outra convenção ¨  Algo similar ocorre com a lógica de programação ¤  É criada por uma mente treinada ¤  Pode ser aplicada em qualquer uma das diversas linguagens de programação ¤  Cada linguagem possui suas diversidades ¨  Usamos os ALGORITMOS para fugir destas diferenças ¤  Representa mais fielmente o raciocínio da lógica de programação
  • 9. Algoritmos ¨  Conceito central da programação e da ciência da computação ¨  Sequência finita de passos que visam atingir um objetivo bem definido ¨  Para especificar uma sequência de passos é necessário utilizar ordem ¤  Pensar em ordem ¤  Utilizamos lógica
  • 10. Algoritmos ¨  São comuns no nosso dia-a-dia ¨  Pode ser aplicado a qualquer situação que exija a descrição da solução ¨  A receita de um bolo é um bom exemplo ¤  Ingredientes e a sequência de passos para o preparo (ações) ¤  Se cumpridos fielmente teremos o bolo conforme desejado inicialmente (objetivo bem definido)
  • 11. Algoritmos ¨  Outros exemplos de algoritmos em nosso cotidiano ¤  Instruções de uso ¤  Manual de instalação ¤  Receitas de cozinha ¤  Partituras musicais ¨  Quando perguntamos o caminho de um local, temos um algoritmos cujo seguimento nos leva ao objetivo
  • 12. Algoritmos ¨  Um algoritmo precisa ter ações claras e precisas ¨  Parte de um estado inicial e após um período de tempo finito produz um estado final ¤  Resultado previsível e bem definido ¨  Fixa um padrão de comportamento a ser seguido ¤  Tem como resultado final a solução de um problema ¤  Sempre que executado (sob as mesmas condições) deve produzir o mesmo resultado
  • 13. Algoritmos ¨  Normas para execução de ações ¤  Evento que ocorre em período de tempo finito ¤  Possui efeito bem definido e intencionado ¤  Exemplos: n  “Caminhar até a próxima esquina” n  “Colocar um livro em cima da mesa” ¨  Programar é, basicamente, construir algoritmos
  • 14. Algoritmos ¨  Construir algoritmos eficientes exige considerar algumas regras no momento da construção ¤  Definir ações simples e sem ambiguidade ¤  Organizar as ações em uma ordem lógica ¤  Estabelecer as ações dentro de uma sequência finita de passos Ação 1 Ação 2 Ação 3
  • 15. Algoritmos ¨  Exemplo de algoritmo (em português) para a troca de uma lâmpada ¤  Pegar uma escada; ¤  Posicionar a escada embaixo da lâmpada; ¤  Buscar uma lâmpada nova; ¤  Subir na escada; ¤  Retirar a lâmpada queimada; ¤  Instalar a lâmpada nova.
  • 16. Algoritmos ¨  Involuntariamente definimos uma sequência de ações ¤  Naturalmente seguido por qualquer pessoa (padrão de comportamento) ¨  A sequenciação rege o fluxo de execução do algoritmo ¤  Determina a primeira ação a ser executada e qual a ação seguinte ¤  Sequência linear (de cima para baixo)
  • 17. Algoritmos ¨  Exercício: Descrevam os passos necessários para a troca de um pneu 1.  Desligar o carro 2.  Pegar a chave de roda e o macaco 3.  Pegar o estepe 4.  Erguer o carro com o macaco 5.  Retirar os 4 parafusos do pneu furado 6.  Remover o pneu furado 7.  Colocar o estepe 8.  Apertar os 4 parafusos 9.  Baixar o carro com o macaco 10.  Guardar as ferramentas
  • 18. Algoritmos ¨  No algoritmo da lâmpada tínhamos um objetivo bem definido ¤  Trocar a lâmpada ¨  E se a lâmpada não estivesse queimada? ¤  A execução das ações levaria a troca da lâmpada ¤  Independente de estar queimada ou não ¤  Essa situação não foi prevista na construção do algoritmo
  • 19. Algoritmos ¨  Podemos efetuar um teste e verificar se a lâmpada está queimada ou não ¤  Pegar uma escada; ¤  Posicionar a escada embaixo da lâmpada; ¤  Buscar uma lâmpada nova; ¤  Acionar o interruptor; ¤  Se a lâmpada não acender, então n  Subir na escada; n  Retirar a lâmpada queimada; n  Instalar a lâmpada nova.
  • 20. Algoritmos ¨  Ligamos ações à condição “lâmpada não acender” ¤  Condição verdadeira = lâmpada queimada n  Efetuamos a troca ¤  Condição falsa = lâmpada funcionando n  Nenhuma ação de troca é executada ¨  Incluímos uma condição para indicar as ações que serão executadas ¤  Conforme resultado da condição (verdadeiro ou falso)
  • 21. Algoritmos ¨  Algoritmo correto mas pode ser melhorado ¤  A escada e a lâmpada nova são buscados mesmo sem saber se o uso será necessário ¨  Uma solução ideal para este caso seria: ¤  Acionar o interruptor; ¤  Se a lâmpada não acender, então n  Pegar uma escada; n  Posicionar a escada embaixo da lâmpada; n  Buscar uma lâmpada nova; n  Subir na escada; n  Retirar a lâmpada queimada; n  Instalar a lâmpada nova.
  • 22. Algoritmos ¨  Existem muitas formas de resolver um problema ¤  Cada pessoa pensa e age de maneira diferente ¤  Casa indivíduo possui uma heurística própria ¨  Para o mesmo problema de troca da lâmpada podemos ter diversas soluções corretas ¨  Bom senso e prática indicarão a solução mais adequada ¤  Menor esforço e maior objetividade produza o resultado desejado
  • 23. Algoritmos ¨  E se a lâmpada nova não funcionar? ¨  O objetivo especificado não será alcançado ¨  Podemos ajustar o algoritmo ¤  Trocar a lâmpada até que ela funcione corretamente ¤  Vejamos uma solução a seguir
  • 24. ¤  Acionar o interruptor; ¤  Se a lâmpada não acender, então n  Pegar uma escada; n  Posicionar a escada embaixo da lâmpada; n  Buscar uma lâmpada nova; n  Subir na escada; n  Retirar a lâmpada queimada; n  Instalar a lâmpada nova; n  Se a lâmpada não acender, então n  Retirar a lâmpada queimada; n  Instalar outra lâmpada nova; n  Se a lâmpada não acender, então n  Retirar a lâmpada queimada; n  Instalar outra lâmpada nova; n  ... Até quando?
  • 25. Algoritmos ¨  Não é possível definir a quantidade de testes necessária ¨  Precisamos indicar até quando o teste será feito ¤  Neste caso, quando uma que funcione for instalada ¨  É possível alterar o fluxo sequencial de execução ¨  Ao executar “Colocar outra lâmpada nova” voltamos a executar o teste “Se a lâmpada não acender” ¤  Ações executadas várias vezes ¤  Sem a necessidade de reescrevê-las
  • 26. Algoritmos ¨  Expressamos a repetição sem repetir o texto que representa a ação ¨  Também é preciso determinar um limite para a operação ¤  Criar uma condição de parada ¤  No exemplo, deve parar a repetição se a lâmpada nova acender
  • 27. Algoritmos ¨  Uma solução seria: ¤  Enquanto a lâmpada não acender, faça n  Retirar a lâmpada queimada; n  Instalar outra lâmpada nova; ¨  A condição “lâmpada não acender” estabelece um fluxo repetitivo ¤  Será finalizado assim que a condição for FALSA ¤  O número de repetições indefinido porém finito
  • 28. Algoritmos ¨  Uma nova solução seria: ¤  Acionar o interruptor; ¤  Se a lâmpada não acender, então n  Pegar uma escada; n  Posicionar a escada embaixo da lâmpada; n  Buscar uma lâmpada nova; n  Subir na escada; n  Retirar a lâmpada queimada; n  Instalar a lâmpada nova; n  Enquanto a lâmpada não acender, faça n  Retirar a lâmpada queimada; n  Instalar a lâmpada nova;
  • 29. Algoritmos ¨  Até agora trocamos a lâmpada de apenas um soquete ¨  O que faríamos se fosse preciso testar 10 soquetes? ¨  A solução mais óbvia seria repetir o algoritmo de uma única lâmpada para os 10 soquetes existentes ¨  Veja exemplo a seguir
  • 30. ¤  Acionar o primeiro interruptor; ¤  Se a lâmpada não acender, então n  Pegar uma escada; n  Posicionar a escada embaixo da lâmpada; n  Buscar uma lâmpada nova; n  Subir na escada; n  Retirar a lâmpada queimada; n  Instalar a lâmpada nova; n  Enquanto a lâmpada não acender, faça n  Retirar a lâmpada queimada; n  Instalar a lâmpada nova; ¤  Acionar o segundo interruptor; ¤  Se a lâmpada não acender, então n  Pegar uma escada; n  Posicionar a escada embaixo da lâmpada; n  ... ¤  ... ¤  Acionar o décimo interruptor; ¤  Se a lâmpada não acender, então n  Pegar uma escada; n  Posicionar a escada embaixo da lâmpada; n  ...
  • 31. Algoritmos ¨  Temos um algoritmo com 10 repetições do algoritmo de troca de um soquete ¨  O conjunto de operações a ser executada é o mesmo ¤  O que muda é o soquete ¨  Podemos alterar o fluxo sequencial da execução ¤  Executar o conjunto de ações de um único soquete ¤  Quantas vezes forem necessárias ¨  Vejamos uma possível solução
  • 32. ¤  Ir até o interruptor do primeiro soquete; ¤  Enquanto a quantidade de soquetes testados for menor que dez, faça; n  Acionar o interruptor; n  Se a lâmpada não acender, então n  Pegar uma escada; n  Posicionar a escada embaixo da lâmpada; n  Buscar uma lâmpada nova; n  Subir na escada; n  Retirar a lâmpada queimada; n  Instalar a lâmpada nova; n  Enquanto a lâmpada não acender, faça n  Retirar a lâmpada queimada; n  Instalar a lâmpada nova; n  Ir até interruptor do próximo soquete;
  • 33. Algoritmos ¨  Inicialmente tínhamos um pequeno conjunto de ações ¤  Deveriam ser executadas passo a passo ¤  Uma após a outra ¤  Ordem sequencial de execução (estrutura sequencial) ¨  Vimos que nem todas as ações previstas precisariam ser executadas ¤  Um determinado conjunto de ações poderia ser evitado ¤  Conforme resultado de determinada condição ¤  Criamos uma estrutura condicional
  • 34. Algoritmos ¨  Foi preciso repetir um trecho do algoritmo ¤  Repetir enquanto uma condição era verdadeira ¨  Agimos de forma semelhante quando foi preciso trocar dez lâmpadas ¨  Criamos uma estrutura de repetição
  • 35. Algoritmos ¨  Qualquer pessoa seria capaz de resolver o problema na prática ¤  Inclusive imprevistos que viessem a surgir ¨  Programas de computador tradicionais não tem conhecimento prévio e nem adquirem experiência ¤  Devemos determinar todas as ações a serem executadas em detalhes ¤  Sequência finita de passos que garantam a solução do problema
  • 36. Algoritmos ¨  Até o momento representamos os algoritmos em forma textual ¤  Usando português coloquial ¨  Formas gráficas são mais fiéis ao raciocínio original ¤  Convenções de desenhos no lugar de um grande número de palavras ¨  Conheceremos duas formas de representar os algoritmos graficamente ¤  Fluxograma tradicional ¤  Diagrama de Chapin
  • 37.
  • 38.
  • 39. Algoritmos ¨  Cada técnica possui vantagens e desvantagens ¨  Ambas permitem um grande nível de clareza quanto ao fluxo de execução ¨  O algoritmo em forma textual deve ser mais fácil de compreender ¤  Nas formas gráficas é necessário conhecer suas convenções ¤  São simples mas não são naturais ¤  Estamos condicionados a nos expressar por palavras
  • 40. Algoritmos ¨  Sempre é mais trabalhoso fazer um desenho do que escrever um texto ¨  O problema aumenta quando é necessário alterar ou corrigir o desenho ¨  Esses pontos podem desencorajar o uso de representações gráfica ¤  E, de maneira errada, a própria construção de algoritmos ¨  Portanto, usaremos o método textual ¤  É menos claro mas é natural e fácil de usar
  • 41. Algoritmos ¨  Usaremos o português para representar textualmente os algoritmos ¨  Usaremos um conjunto de regras para restringir e estruturar o uso nos algoritmos ¤  Facilitar a codificação dos algoritmos em uma linguagem de programação ¤  Faremos essa codificação em C++
  • 42. Exercícios de Fixação 1.  Três senhoras (Dona Branca, Dona Rosa e Dona Violeta) passeavam pelo parque, quando Dona Rosa disse: ¤  Não é curioso? Estamos usando vestidos de cores branca, rosa e violeta, embora nenhuma de nós esteja usando um vestido de cor igual ao seu próprio nome. ¤  Uma simples coincidência - respondeu a senhora com vestido violeta. ¤  Qual a cor do vestido de cada senhora?
  • 43. Exercícios de Fixação 2.  Um homem precisa atravessar um rio com um barco que possui capacidade apenas para carregar ele mesmo e mais uma de suas três cargas, que são: um lobo, um bode e um maço de alfafa. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas? ¤  Não podem ficar sozinhos do mesmo lado n  Lobo e bode n  Bode e alfafa ¤  Escreva um algoritmo mostrando a resposta, ou seja, indicar todas as ações necessárias para efetuar uma travessia segura
  • 44. Exercícios de Fixação 3.  Elabore um algoritmo que mova três discos de uma Torre de Hanói, que consiste em três hastes (a-b-c), uma das quais serve de suporte para três discos de tamanhos diferentes (1-2-3), os menores sobre os maiores. Pode-se mover um disco de cada vez para qualquer haste, contanto que nunca seja colocado um disco maior sobre um menor. O objetivo é transferir os três discos para outra haste.
  • 45. Exercícios de Fixação 4.  Três jesuítas e três canibais precisam atravessar um rio; para tal, dispõem de um barco com capacidade para duas pessoas. Por medidas de segurança não se permite que em alguma margem a quantidade de jesuítas seja inferior à de canibais. Qual a sequência de passos que permitiria a travessia com segurança?
  • 46. Exercícios de Fixação 5.  No torneio de atletismo, Barnabé, Gumercindo e Teodoro participam das provas de 100 metros rasos, salto em distância e arremesso de dardo. Cada um deles conseguiu um primeiro lugar, um segundo e um terceiro. Descubra o que cada um conquistou, sabendo que: ¤  Gumercindo venceu Barnabé no salto de distância; ¤  Teodoro chegou atrás de Gumercindo no arremesso de dardo; ¤  Barnabé não chegou em primeiro nos 100 metros rasos.
  • 47. Exercícios de Fixação 6.  João tem três barris. No barril A, que está vazio, cabem 8 litros. No barril B, 5 litros e no barril C, 3 litros ambos estão cheios. Que deve ele fazer para deixar os barris A e B com 4 litros cada e o C vazio?
  • 48. Exercícios de Fixação 7.  Considere que uma calculadora comum, de quatro operações, está com as teclas de divisão e multiplicação inoperantes. Escreva algoritmos que resolvam as expressões matemáticas a seguir usando apenas a operação de adição e de subtração. ¤  12 x 4 ¤  23 x 11 ¤  10 / 2 ¤  175 / 7 ¤  28
  • 49. Exercícios de Fixação 8.  Aprimore o exercício de troca de pneu para considerar o seguinte conjunto de situações: ¤  Trocar o pneu traseiro esquerdo; ¤  Trocar o pneu traseiro esquerdo e, antes, verificar se o pneu reserva está em condições de uso; ¤  Verificar se existe algum pneu furado; se houver, verificar o pneu reserva e, então, trocar o pneu correto. ¤  Para cada algoritmo faça um refinamento do anterior, introduzindo novas ações e alterando o fluxo de execução de forma compatível com as situações apresentadas.