lógica e algoritmos

52
Profª Jocelma Rios Abril/2012 Lógica de programação

Upload: jocelma-rios

Post on 22-Jun-2015

1.461 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Lógica e algoritmos

Profª Jocelma RiosAbril/2012

Lógica de programação

Page 2: Lógica e algoritmos

• Introduzir aos conceitos de lógica na perspectiva da filosofia

• Relacionar a lógica e a filosofia com a computação

• Exercitar o raciocínio lógico formal

O que pretendemos:O que pretendemos:

Page 3: Lógica e algoritmos

Para a filosofia: área que trata das formas do pensamentoformas 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.

LógicaLógica

Para a computaçãoPara a computação: organização e : organização e planejamento das instruções, planejamento das instruções, assertivas etc. em um algoritmo, assertivas etc. em um algoritmo, a fim de viabilizar a a fim de viabilizar a implantação de um programa.implantação de um programa.

Fonte: Fonte: HouaissHouaiss

Page 4: Lógica e algoritmos

• Podemos pensar a lógica como o estudo do raciocínio corretoraciocínio correto

• O raciocínio é o processo de obter conclusões a partir de suposições ou fatos

• O raciocínio correto é o raciocínio onde as conclusões seguem-se necessária e inevitavelmente das suposições ou fatos

LógicaLógica

Page 5: Lógica e algoritmos

A lógica procura estudar as A lógica procura estudar as coisas da mente, e não as coisas da mente, e não as coisas 'coisas 'reaisreais'/'concretas''/'concretas'

Por exemplo, quando dizemos: arco-íris bonito, sol distante, praia suave são classificações que damos às coisas, e não as coisas em si

LógicaLógica

Veja também:Veja também: www.9dades.com.br/ilusao-de-otica

Page 6: Lógica e algoritmos

• Na filosofia, auxilia na determinação de que certo raciocínio é válido ou não, já que pode haver diferentes interpretações

• Na matemática, auxilia na demonstração de teoremas e inferência de resultados corretos que podam ser aplicados nas pesquisas

• Na computação, auxilia na determinação se dado algoritmo é correto ou não

• Na física, auxilia a obter conclusões de experimentos

LógicaLógica

Page 7: Lógica e algoritmos

Aristóteles é considerado o criador da lógica, porem o nome “lógica” veio bem depois.No início ela não tinha um nome. Para Aristóteles, a lógica seria um modo a ser usado para as pessoas poderem raciocinar com segurança (evitando errar).

LógicaLógica

A lógica é somente mais uma teoria do pensamento

Page 8: Lógica e algoritmos

Observe um exemplo da lógica dedutiva de Aristóteles:

➔ Todo planeta é quadrado.➔ A Terra é um planeta.➔ Logo, a Terra é quadrada.

LógicaLógica

Page 9: Lógica e algoritmos

Esta lógica não se preocupa com o fato de a Terra ser quadrada, mesmo que se saiba que ela

é redonda. Pouco importa, ela aceita a informação que lhe foi dada. Mas exige que o

raciocínio esteja correto. Preocupa-se com a forma: A = B, então, B = A.Preocupa-se com a forma: A = B, então, B = A. Ela não presta atenção ao conteúdo: A ou B

podem ser planetas, burros, plantas, etc. Por isso, esta lógica é formal (de forma) e

dedutiva (de dedução).

LógicaLógica

Page 10: Lógica e algoritmos

A nossa lógica formal dedutiva funciona assim: a partir de uma sequência de orações verdadeirasorações verdadeiras chegamos a uma conclusão verdadeiraconclusão verdadeiraA lógica sempre utiliza uma linguagem exata (símbolos, sinais). Isso simplifica e facilita seu estudo.

LógicaLógica

Page 11: Lógica e algoritmos

Aristóteles também elaborou a argumentação lógica indutiva.

• A baleia, o homem e o cãozinho são mamíferos.

• A baleia, o homem e o cãozinho mamam.• Logo, os mamíferos mamam.

Ou seja, de enunciados singulares chegamos a um universal.

LógicaLógica

Page 12: Lógica e algoritmos

Mais tarde, Bacon e outros aprofundaram esses ensinamentos e dividiram a lógica em três áreas:

1.Formal: a que estamos aqui tratando.2.Transcendental: estuda as condições que dão

base ao nosso conhecimento. Kant explicou que o intelecto tende a colocar todo em ordem, cada tijolinho no lugar. Aliás, cada pessoa já possui uma lógica natural ao interpretar e classificar o que ela vivencia.

3.Matemática: origina fórmulas de outras fórmulas, é puro raciocínio. São regras e mais regras inventadas, como jogos de cartas.

LógicaLógica

Page 13: Lógica e algoritmos

Hegel, no entanto, achava que a lógica referia-se ao pensamento e à realidade; disse que:

• “todo o que é racional é real, e todo o que é real é racional”.

• A lógica é uma ciência, uma arte, um jogo; todo se passa como em um tabuleiro de xadrez.Mas vejamos também um outro tipo de lógica, a que considera a verdade (o conteúdo). Ela considera o desconhecido, a dúvida, a opinião, a certeza.

LógicaLógica

Page 14: Lógica e algoritmos

É chamada de lógica material. Ela não aceita o fato se alguém diz que a Terra é quadrada. Temos alguns conceitos nesta lógica:

• “Ignorância” é a falta do conhecimento.• “Dúvida” é a indecisão entre uma afirmação e uma

negação.• “Opinião” é uma opção que envolve a dúvida.• “Certeza” é um firme apego à verdade.

A verdade pode gerar muita discussão e barulho. Afinal, como podemos saber o que é mesmo a verdade? Os “céticos”, por exemplo, acham que não podemos afirmar nada; pois tudo é incerto.

LógicaLógica

Page 15: Lógica e algoritmos

• Já quem segue o dogmatismo considera que a razão humana pode conhecer a verdade. E há muitas outras posições sobre a verdade: positivistas, idealistas e outras.

• O importante é saber que a verdade varia conforme os muitos sistemas filosóficos. Isso pode ser poético. Existem verdades e a lógica utiliza a que deseja utilizar. A lógica material defende a verdade na qual acredita de perigos como o “sofisma”.

LógicaLógica

Page 16: Lógica e algoritmos

“Sofisma” é um raciocínio errado com a aparência de verdadeiro, tem a intenção de conduzir ao erro; observe o raciocínio:

• Maria Alice é bonita.• Maria Clara é bonita.• Logo, todas as Marias são bonitas.

Você já imaginou o que seria se não existisse lógica nas coisas? Já imaginou se nada fizesse sentido? Hoje, a lógica é fundamental em nossa sociedade. Dizemos que ela está na informática, no ensino, na matemática, na medicina, etc.

LógicaLógica

Page 17: Lógica e algoritmos

• Logo, o resumo de tudo isto, é que podemos considerar como sendo válida a seguinte definição.“Ciência da argumentação, prova, reflexão

ou inferência”Ela lhe permitirá analisar um argumento ou

raciocínio e deliberar sobre sua veracidade. A lógica não é um pressuposto

para a argumentação, é claro; mas conhecendo-a, mesmo que superficialmente, torna-se mais fácil evidenciar argumentos

inválidos.

LógicaLógica

Page 18: Lógica e algoritmos

• Disciplina relacionada a lógica e a matemática, consiste no estudo matemático da lógica e na aplicação deste estudo a outras áreas da matemática

• Guarda estritas conexões com a ciência da computação

• Foi também chamada de lógica simbólica.• Inclui a lógica clássica (de Aristóteles), mas

com uma notação diferente, mais abstrata, tomada da álgebra

• Teorias associadas: Teoria dos Conjuntos, Teoria dos Modelos, Teoria da Prova e Teoria da Recursão

Lógica matemáticaLógica matemática

Page 19: Lógica e algoritmos

• Questões para raciocinar:

– Qual o número que completa a sequência: 1, 3, 6, 10, ...• 13• 15• 12• 11• 18

– Qual o número que completa a sequência: 1, 1, 2, 3, 5, ...• 5• 6• 7• 8• 9

Sequência lógicaSequência lógica

Page 20: Lógica e algoritmos

• Há três suspeitos de um crime: o cozinheiro, a governanta e o mordomo. Sabe-se que o crime foi efetivamente cometido por um ou por mais de um deles, já que podem ter agido individualmente ou não. Sabe-se, ainda que:

• se o cozinheiro é inocente, então a governanta é culpada;

• ou o mordomo é culpado ou a governanta é culpada, mas não os dois;

• o mordomo não é inocente– Logo:

• a governanta e o mordomo são os culpados• o cozinheiro e o mordomo são os culpados• somente a governanta é culpada• somente o cozinheiro é inocente• somente o mordomo é culpado

LógicaLógica

Page 21: Lógica e algoritmos

São passos executados até atingir um objetivo ou solução de um

problema.

Sequência lógicaSequência lógica

Page 22: Lógica e algoritmos

São um conjunto de regras ou normas definidas para a realização ou

emprego de algo. Em informática, é o que indica a um computador uma

ação elementar a executar.

InstruçõesInstruções

Page 23: Lógica e algoritmos

É formalmente uma sequência finita de passos que levam a execução de

uma tarefa.ou

É um conjunto de passos lógicos, bem definidos, que descreve a solução de

um problema.

AlgoritmosAlgoritmos

Page 24: Lógica e algoritmos

1. Faça uma leitura de todo o problema até o final, a fim de formar a primeira impressão. A seguir, releia o problema e faça anotações sobre os pontos principais

2.Verifique se o problema foi bem entendido, se preciso releia o problema quantas vezes for preciso para tentar entendê-lo

3.Extraia do problema todas as suas saídas4.Extraia do problema todas as suas entradas5.Identifique qual é o processamento

principal

AlgoritmosAlgoritmos – dicas de – dicas de construçãoconstrução

Page 25: Lógica e algoritmos

6. Verifique se será necessário algum valor intermediário que auxilie a transformação das entradas em saídas. Esta etapa pode parecer obscura no início, mas com certeza no desenrolar do algoritmo, estes valores aparecerão naturalmente.7.Teste cada passo do algoritmo, com todos os seus caminhos para verificar se o processamento está gerando os resultados esperados.8.Crie valores de teste para submeter ao algoritmo9.Reveja o algoritmo, checando as boas normas de criação.

AlgoritmosAlgoritmos – dicas de – dicas de construçãoconstrução

Page 26: Lógica e algoritmos

São algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic, Java, PHP,

dentre outras) e que são interpretados e executados por uma máquina, no

caso um computador.

SoftwareSoftware

Page 27: Lógica e algoritmos

• Utilização de símbolos gráficos para representar algoritmos.

• No fluxograma existem símbolos padronizados para início, entrada de dados, cálculos, saída de dados, fim etc.

FluxogramaFluxograma

Comando Decisão SaídaEntradaInício/Fim

Page 28: Lógica e algoritmos

Início do algoritmo

Entrada do número

Cálculo do dobro do número

Apresentação do resultado

Fim do algoritmo

FluxogramaFluxograma

Page 29: Lógica e algoritmos

Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como

sendo numérica, lógica e literal.

3 =CONSTANTEPi := 3,141516

ConstantesConstantes

Page 30: Lógica e algoritmos

Variável é a representação simbólica dos elementos de um certo conjunto. Cada variável corresponde a uma posição de memória, cujo conteúdo pode ser alterado ao longo do tempo durante a execução de

um programa. Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada

instante.

Variável Conteúdo NOME := "JOSE"

IDADE := 50

VariáveisVariáveis

Page 31: Lógica e algoritmos

• Numéricas: – Específicas para armazenamento de números,

que poderão ser utilizados para cálculos. Podem ser ainda classificadas como Inteiras (integer) ou Reais (real). As variáveis do tipo inteiro são para armazenamento de números inteiros e as reais são para o armazenamento de números que possuam casas decimais.

• Caracteres:– Específicas para armazenamento de conjunto

de caracteres que não contenham números (literais). Ex: nomes.

VariáveisVariáveis – tipos – tipos

Page 32: Lógica e algoritmos

• Alfanuméricas: – Específicas para dados que contenham letras

e/ou números. Pode em determinados momentos conter somente dados numéricos ou somente literais. Se usado somente para armazenamento de números, não poderá ser utilizada para operações matemáticas.

• Lógicas:– Armazenam somente dados lógicos que podem

ser VerdadeiroVerdadeiro ou FalsoFalso.

VariáveisVariáveis – tipos – tipos

Page 33: Lógica e algoritmos

• As variáveis só podem armazenar valores de um mesmo tipo, de maneira que também são classificadas como sendo numéricas, lógicas e literais.

VariáveisVariáveis – declaração – declaração

Page 34: Lógica e algoritmos

Os operadores são meios pelo quais incrementamos, decrementamos, comparamos e avaliamos dados em um algoritmo.

Temos três tipos de operadores:

– Operadores Aritméticos– Operadores Relacionais– Operadores Lógicos

OperadoresOperadores

Page 35: Lógica e algoritmos

• Adição +• Subtração -

• Multiplicação *• Divisão /

OBS: A linguagem Pascal não possui um operador para potenciação; a mesma é calculada a partir de cálculos de produto ou através de uma função exponencial (ex) e função logarítmica (LN(X)).

Sintaxe: XY := EXP(Y*LN(X))EX.  X0.5 = EXP(0.5 * LN(X))

Operadores aritméticosOperadores aritméticos

Page 36: Lógica e algoritmos

Descrição Símbolo• Igual a =• Diferente de <>• Maior que >• Menor que <• Maior ou igual a >=• Menor ou igual a <=

Operadores relacionaisOperadores relacionais

Page 37: Lógica e algoritmos

• E - AND• OU - OR• NÃO - NOT

Operadores lógicosOperadores lógicos

Page 38: Lógica e algoritmos

Chupar a BalaChupar a Bala

Pegar a BalaPegar a BalaExemplo: Tomada de decisão:

“Chupar uma bala”.• Pegar a bala• A bala é de morango?• Se sim, não chupe a bala• Se não, continue o

algoritmo• Retirar o papel• Chupar a bala• Jogar o papel no lixo

INÍCIOINÍCIO

FIMFIM

Jogar papel no lixoJogar papel no lixo

Não chupar a balaNão chupar a bala Retirar o papelRetirar o papel

É de morangoÉ de morangoSimSim NãoNão

Operações lógicasOperações lógicas

Page 39: Lógica e algoritmos

Boas Práticas de programação:Boas Práticas de programação: escrever programas claros, mais compreensíveis, mais sustentáveis e mais fáceis de testar e depurar

Uso de comentários:Uso de comentários: usar sempre que possível para ilustrar os passos ao longo do algoritmo

Erros comuns de programação:Erros comuns de programação: problemas que devem ser observados para serem evitados

Desempenho: Desempenho: programas de rápida execução e que ocupam pouco espaço de memória

Engenharia de softwareEngenharia de software– algumas observações– algumas observações

Page 40: Lógica e algoritmos

Portabilidade:Portabilidade: programas que podem ser executados em uma variedade de máquinas com pouca ou nenhuma alteração de código. A linguagem Java é o exemplo mais conhecido

Prevenção de erros: Prevenção de erros: Primeiramente, escrever programas livres de erros. Como isso não existe, usar técnicas de depuração e eliminação de erros

Aparência e Comportamento:Aparência e Comportamento: Uso de técnicas de projeto de interfaces com o usuário e facilidade de uso

Engenharia de softwareEngenharia de software– algumas observações– algumas observações

Page 41: Lógica e algoritmos

Estrutura de decisãoEstrutura de decisão

Os comandos de decisão ou desvio fazem parte das técnicas de programação que conduzem a estruturas de programas que não são totalmente sequenciais.

As principais estruturas de decisão são: “Se Então”, “Se então Senão” e “Caso Selecione”

Page 42: Lógica e algoritmos

Condicional (If ... Then ... Else ...)Condicional (If ... Then ... Else ...)

N1=N2

?N1=N2

S

N

N1>N2

N1>N2

?

S

NN1<N2

Início;Definir variáveis;Ler N1;Ler N2;Se N1=N2 Então Escrever (N1=N2)Senão {ELSE} Se N1>N2 Então Escrever (N1>N2) Senão {ELSE} Escrever (N2>N1);Fim.

Page 43: Lógica e algoritmos

Declara Constantes:Pi=3,14;FreqN=60;FreqAlt=70;

Declara Variáveis:Indut: Real;Reat: Real;

Ler Indut

Reat:=2*Pi*FreqN*Indut

“Reatância Indutiva=“,reat

1

1

Reat>100? “Reatância Alta”

S

N

Reat=100? “Reatância Padrão”

S

N

“Reatância Baixa”

11

Page 44: Lógica e algoritmos

Ler dois números e uma letra. Se a letra for a, adicionar, se for s, subtrair, se for m, multiplicar, se for d, dividir, senão, exibir “Operação inexistente”

InícioInício

Definir N1,N2,Resultado:Real;Definir Letra,Tecla: Char;

Definir N1,N2,Resultado:Real;Definir Letra,Tecla: Char;

Ler N1;Ler N1;

Ler N2;Ler N2;

Ler Letra;Ler Letra;

Letra=a?Letra=a? SS

Resultado:=N1+N2

Resultado:=N1+N2

Letra=s?Letra=s?S

SResultado:=N1-N2

Resultado:=N1-N2

nn

nn

11

Operação:Adiçao

Operação:Adiçao

Operação:Subtração

Operação:Subtração

11

Letra=m?Letra=m?S

SResultado:=N1*N2

Resultado:=N1*N2

nn

Operação:Multiplicação

Operação:Multiplicação

Letra=d?Letra=d? Resultado:=N1/N2

Resultado:=N1/N2 Operação:

Divisão

Operação:Divisão

FimFim

Operação:Inexistente

Operação:Inexistente

Page 45: Lógica e algoritmos

1. Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas.a) (A+C) > B b) B >= (A + 2) c) C = (B –A) d) (B + A) <= Ce) (C+A) > B2. Construa um algoritmo que avalie cada uma das

expressões acima, considerando que os valores de A, B e C são variáveis e são dados pelo usuário.

ExercíciosExercícios

Page 46: Lógica e algoritmos

3. Elabore um algoritmo que dada a idade de um nadador classifique-o em uma das seguintes categorias:

Infantil A = 5 a 7 anosInfantil B = 8 a 11 anosJuvenil A = 12 a 13 anosJuvenil B = 14 a 17 anosAdultos = Maiores de 18 anos

ExercíciosExercícios

Page 47: Lógica e algoritmos

3. A média parcial (MP) de uma disciplina semestral no Ifba é calculada com base na média aritmética não ponderada de 3 notas (Uni1, Uni2, Uni3). Caso o estudante alcance média parcial igual ou superior a 7,0, ele é aprovado sem precisar fazer prova final (PF). Caso ele alcance média parcial entre 3,0 e 6,9, ele precisará fazer prova final. Caso ele obtenha média inferior a 3,0, ele é reprovado. Utilizando uma pseudo linguagem (português estruturado), construa um algoritmo que leia o nome do estudante, suas notas nas 3 unidades, calcule sua média parcial e informe a situação de aprovação. Para os casos de ser necessário fazer prova final, deve também mostrar a nota mínima que ele precisa na prova final. O cálculo para a nota mínima necessária na prova final é =(7*MP)/3. (2,0)

MP < 3 reprovado→3,0 <= MP < 7,0 precisa fazer prova final→MP >= 7,0 aprovado→

ExercíciosExercícios

Page 48: Lógica e algoritmos

Um pouco de humor sempre cai bem...

Um pouco de humor sempre cai bem...

Page 49: Lógica e algoritmos

Talvez se tivesse casado com uma programadora o diálogo seria melhor…Talvez se tivesse casado com uma programadora o diálogo seria melhor…

Page 50: Lógica e algoritmos
Page 51: Lógica e algoritmos
Page 52: Lógica e algoritmos

Disponível em: http://www.eumed.net/libros/2009a/499/LOGICA%20MATEMATICA.htm

ReferênciasReferências