Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação...

18
Lógica de Programação Introdução

Transcript of Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação...

Page 1: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

Lógica de Programação

Introdução

Page 2: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

Introdução

Nesta aulaIntrodução à Lógica de Programação

Algoritmizando a Lógica

Conceitos e Exemplos de Algoritmos

Noções de Fluxo de Controle

ObjetivosApresentar os conceitos elementares de lógica e sua aplicações no cotidiano

Definir algoritmo

Estabelecer uma relação entre lógica e algoritmos

Page 3: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

Noções de LógicaLógica: Ciência que estuda as formas do pensamento

Sempre que pensamos a lógica nos acompanhaUm bebê sabe que precisa chorar para receber atenção

Um casal com 3 filhos notou que um vaso estava quebrado, enquanto 2 das crianças estavam na escola. Quem é o culpado?

A gaveta está fechada. A caneta está dentro da gaveta. Precisamos primeiro abrir a gaveta para depois pegar a caneta.

O pensamento (e a lógica) pode ser expresso através da palavra falada ou da palavra escrita

Um mesmo pensamento pode ser expresso em inúmeros idiomas, tanto oralmente quanto por escrito

Vamos estudar uma forma única de representação

ANDREA
Ficou ambíguo: dois filhos ou dois vasos? Que tal:Um casal com 3 filhos notou que um vaso foi quebrado enquanto 2 das crianças estavam na escola. Quem é o culpado
Page 4: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

AlgoritmoÉ o pensamento descrito como uma sequência de passos que visam atingir um objetivo

Algoritmos no dia-a-dia: Receita de bolo, orientação para se chegar em algum endereço

Qual sua importância na programação?Representar o raciocínio, independentemente de detalhes computacionais, que podem ser acrescentados mais tarde

Focalizar primeiro na resolução algorítmica do problema, possibilitando depois codificá-la em qualquer linguagem

Page 5: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

ExemplosTrocar uma lâmpada

Sequência

Algoritmo 1.1:pegar uma escada;posicionar a escada embaixo da lâmpada;buscar uma lâmpada nova;subir na escada;retirar lâmpada velha;colocar lâmpada nova.

Page 6: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

ExemplosTrocar uma lâmpada SE estiver queimada

Seleção (Decisão)

Algoritmo 1.2: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

subir na escada;retirar lâmpada queimada;colocar lâmpada nova.

Page 7: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

ExemplosTrocar uma lâmpada SE estiver queimada (v. 2)

Seleção (Decisão)

Algoritmo 1.3: Evita buscar a escada e lâmpadaacionar o interruptor;se a lâmpada não acender, então

pegar uma escada;posicionar a escada embaixo da lâmpada;buscar uma lâmpada nova;acionar o interruptor;subir na escada;retirar lâmpada queimada;colocar lâmpada nova.

Page 8: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

ExemplosTrocar uma lâmpada SE estiver queimada (v. 3)

Seleção (Decisão)

Algoritmo 1.4: Re-teste depois da trocaacionar o interruptor;se a lâmpada não acender, então

pegar uma escada;posicionar a escada embaixo da lâmpada;buscar uma lâmpada nova;acionar o interruptor;subir na escada;retirar lâmpada queimada;colocar lâmpada nova;se a lâmpada não acender, então

retirar lâmpada queimada;colocar lâmpada nova;se a lâmpada não acender, então

. . .

Page 9: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

ExemplosTrocar uma lâmpada SE estiver queimada (v. 4)

Repetição

Algoritmo 1.5: Re-teste depois da troca (por repetição)acionar o interruptor;se a lâmpada não acender, então

pegar uma escada;posicionar a escada embaixo da lâmpada;buscar uma lâmpada nova;acionar o interruptor;subir na escada;retirar lâmpada queimada;colocar lâmpada nova;enquanto a lâmpada não acender, faça

retirar lâmpada queimada;colocar lâmpada nova;

Page 10: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

ExemplosTrocar 10 lâmpadas SE estiverem queimadas

RepetiçãoAlgoritmo 1.6: Escrever 10 vezes

acionar o interruptor do primeiro soquete;se a lâmpada não acender, então

pegar uma escada;posicionar a escada embaixo da lâmpada;buscar uma lâmpada nova;acionar o interruptor;subir na escada;retirar lâmpada queimada;colocar lâmpada nova;enquanto a lâmpada não acender, faça

retirar lâmpada queimada;colocar lâmpada nova;

acionar o interruptor do segundo soquete; . . .

Page 11: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

ExemplosTrocar 10 lâmpadas SE estiverem queimadas (v. 2)

RepetiçãoAlgoritmo 1.7: Contagem de trocas

ir até o interruptor do primeiro soquete;enquanto a quantidade de soquetes testados for menor que 10, faça

acionar o interruptor;se a lâmpada não acender, então

pegar uma escada;posicionar a escada embaixo da lâmpada;buscar uma lâmpada nova;acionar o interruptor;subir na escada;retirar lâmpada queimada;colocar lâmpada nova;enquanto a lâmpada não acender, faça

retirar lâmpada queimada;colocar lâmpada nova;

ir até o interruptor do próximo soquete;

ANDREA
Usar numeral 10?
Page 12: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

Formas de Representação

Algoritmo 1.7 em Fluxograma

início

ir para o primeiro soquete

soquetesrestantes < 10

acionar o interruptor

pegar uma escada

posicionar escada

buscar lâmpada nova

acionar o interruptor

nãoacendeu?

subir na escada

retirar a lâmpada queimada

colocar lâmpada nova

acionar o interruptor

nãoacendeu?

retirar a lâmpada queimada

colocar lâmpada nova

ir ao próximo soquete

fim

F

F

F

V

V

V

Page 13: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

Formas de Representação

Algoritmo 1.7 em Chapinir para o primeiro soquete

soquetes testados < 10

acionar o interruptor

pegar uma escadacolocar a escada embaixo do soquetebuscar lâmpada novaacionar o interruptorsubir na escadaretirar lâmpada queimadacolocar lâmpada nova

lâmpada não acendeu

retirar lâmpada queimadacolocar lâmpada nova

ir para o próximo soquete

lâmpada não acendeu

Page 14: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

Formas de Representação

Gráficas (Fluxograma e Chapin)Características

Maior clareza no fluxo de execuçãoLinguagem visualRequer conhecimento de convenções gráficas

Textuais (Português Estruturado)Apresenta mais vantagens, desde que se tomem alguns cuidados:

Riqueza gramatical de nossa língua pode levar a ambiguidadesA frase “O pregador foi grampeado durante o conserto” tem 8 sentidos diferentes quando pronunciadaPara resolver, utilizaremos um conjunto restrito de regras, conhecido como Português Estruturado

Page 15: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

Exercício 01No 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 em distância;

Teodoro chegou atrás de Gumercindo no arremesso de dardo;

Barnabé não chegou em primeiro nos 100 metros rasos;

Page 16: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

Resposta 01A primeira informação garante que Barnabé não foi o primeiro e Gumercindo não foi o último no salto em distância.

Com a segunda informação sabemos que Teodoro não foi o primeiro no arremesso de dardo e Gumercindo não foi o último. Assim podemos concluir que Gumercindo foi o último nos cem metros rasos.

A terceira informação garante que Barnabé não foi o primeiro nos cem metros, como também não chegou em último (lugar ocupado por Gumercindo); logo ele foi segundo. Portanto, o primeiro ficou com Teodoro.

Sabemos da primeira informação que Barnabé não foi o primeiro no salto; também sabemos que não foi segundo, pois ocupou essa posição nos cem metros. Portanto, terá sido o terceiro, e isso o coloca como primeiro no arremesso de dardo.

No dardo, Gumercindo só pode ter sido o segundo, pois a informação número dois nos garantiu que ele não foi o último. Então sobrou para Teodoro o último lugar.

No salto em distância, sabemos que Barnabé foi o terceiro, Gumercindo o primeiro e Teodoro o segundo.

Page 17: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

Resposta 01 (cont.)Colocação final (do primeiro lugar para o terceiro):

Cem metros rasos: Teodoro, Barnabé, Gumercindo;

Arremesso de dardo: Barnabé, Gumercindo, Teodoro;

Salto em distância: Gumercindo, Teodoro, Barnabé.

Page 18: Lógica de Programação Introdução. Nesta aula Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo.

Exercício 02Tendo como exemplo os algoritmos desenvolvidos para solucionar o problema da troca de lâmpadas, elabore um algoritmo que mostre os passos necessários para trocar um pneu furado. Considere 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