O documento apresenta uma introdução aos conceitos básicos de lógica de programação, incluindo: (1) a definição de lógica para a filosofia e computação, (2) os tipos de raciocínio lógico como dedutivo e indutivo, (3) variáveis, constantes, algoritmos e fluxogramas como elementos essenciais da lógica de programação.
2. O que pretendemos:
• 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
3. Lógica
Para a filosofia: área 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.
Para a computação: organização e
planejamento das instruções,
assertivas etc. em um algoritmo,
a fim de viabilizar a
implantação de um programa.
Fonte: Houaiss
4. Lógica
• Podemos pensar a lógica como o
estudo do raciocí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
5. Lógica
A lógica procura estudar as
coisas da mente, e não as
coisas 'reais'/'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
Veja também: www.9dades.com.br/ilusao-de-otica
6. Lógica
• 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
7. Lógica
A lógica é somente mais uma
teoria do pensamento
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).
8. Lógica
Observe um exemplo da lógica dedutiva de
Aristóteles:
➔
Todo planeta é quadrado.
➔
A Terra é um planeta.
➔
Logo, a Terra é quadrada.
9. Lógica
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.
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).
10. Lógica
A nossa lógica formal dedutiva funciona
assim: a partir de uma sequência de
orações verdadeiras chegamos a uma
conclusão verdadeira
A lógica sempre utiliza uma linguagem
exata (símbolos, sinais). Isso simplifica
e facilita seu estudo.
11. Lógica
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.
12. Lógica
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.
13. Lógica
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.
14. Lógica
É 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.
15. Lógica
• 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”.
16. Lógica
“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.
17. Lógica
• 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.
18. Lógica matemática
• 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
19. Sequência lógica
• 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
20. Lógica
• 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
21. Sequência lógica
São passos executados até atingir
um objetivo ou solução de um
problema.
22. Instruções
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.
23. 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.
24. Algoritmos – dicas de
construção
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ídas
4.Extraia do problema todas as suas entradas
5. Identifique qual é o processamento
principal
25. Algoritmos – dicas de
construção
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 algoritmo
9.Reveja o algoritmo, checando as boas normas de
criação.
26. Software
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.
27. Fluxograma
• 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.
Comando Decisão Saída
Entrada
Início/Fim
28. Fluxograma
Início do algoritmo
Entrada do número
Cálculo do dobro do número
Apresentação do resultado
Fim do algoritmo
29. Constantes
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 =CONSTANTE
Pi := 3,141516
30. Variáveis
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
31. Variáveis – tipos
• 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.
32. Variáveis – tipos
• 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 Verdadeiro ou Falso.
Falso
33. Variáveis – declaração
• 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.
34. Operadores
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
35. Operadores aritméticos
• 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))
36. Operadores relacionais
Descrição Símbolo
• Igual a =
• Diferente de <>
• Maior que >
• Menor que <
• Maior ou igual a >=
• Menor ou igual a <=
38. Operações lógicas
INÍCIO
INÍCIO
Exemplo: Tomada de decisão:
Pegar aaBala
Pegar Bala
“Chupar uma bala”. Sim
Sim É de morango
Não
Não
• Pegar a bala É de morango
• A bala é de morango?
Não chupar aabala Retirar oopapel
• Se sim, não chupe a bala Não chupar bala Retirar papel
• Se não, continue o Chupar aaBala
Chupar Bala
algoritmo
Jogar papel no lixo
• Retirar o papel Jogar papel no lixo
• Chupar a bala
• Jogar o papel no lixo FIM
FIM
39. Engenharia de software
– algumas observações
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: usar sempre que possível
para ilustrar os passos ao longo do algoritmo
Erros comuns de programação: problemas que
devem ser observados para serem evitados
Desempenho: programas de rápida execução e que
ocupam pouco espaço de memória
40. Engenharia de software
– algumas observações
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: 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: Uso de técnicas de
projeto de interfaces com o usuário e facilidade
de uso
41. Estrutura 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”
42. Condicional (If ... Then ... Else ...)
Início;
Definir variáveis;
S Ler N1;
N1=N2
N1=N2 Ler N2;
?
Se N1=N2 Então
N
Escrever (N1=N2)
N
N1>N2
N1<N2 Senão {ELSE}
?
Se N1>N2 Então
S
Escrever (N1>N2)
N1>N2 Senão {ELSE}
Escrever (N2>N1);
Fim.
43. 1
Declara Constantes:
Pi=3,14; S
FreqN=60; Reat>100?
FreqAlt=70; “Reatância
Alta”
Declara Variáveis: N
Indut: Real;
Reat: Real;
S
Reat=100? “Reatância
Ler Indut Padrão”
Reat:=2*Pi*FreqN*Indut N
“Reatância Baixa”
“Reatância
Indutiva=“,reat
1
44. 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ício 1
Início 1
S Resultado:=
Definir N1,N2,Resultado:Real; S Operação:
Definir N1,N2,Resultado:Real; Letra=m? Resultado:= Operação:
Definir Letra,Tecla: Char; N1*N2 Multiplicação
Definir Letra,Tecla: Char; Letra=m? N1*N2 Multiplicação
n
n
Ler N1; Resultado:= Operação:
Ler N1; Letra=d? Resultado:= Operação:
N1/N2 Divisão
Letra=d? N1/N2 Divisão
Ler N2;
Ler N2;
Operação:
Ler Letra; Operação:
Ler Letra; Inexistente
Inexistente
S Operação:
S Resultado:= Operação:
Letra=a? Resultado:= Adiçao
Letra=a? N1+N2 Adiçao
N1+N2 Fim
Fim
n
n
S Operação:
S Resultado:= Operação:
Letra=s? Resultado:= Subtração
N1-N2 Subtração
Letra=s? N1-N2
n
n
1
1
45. Exercícios
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) <= C
e) (C+A) > B
2. 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.
46. Exercícios
3. Elabore um algoritmo que dada a idade de
um nadador classifique-o em uma das
seguintes categorias:
Infantil A = 5 a 7 anos
Infantil B = 8 a 11 anos
Juvenil A = 12 a 13 anos
Juvenil B = 14 a 17 anos
Adultos = Maiores de 18 anos
47. Exercícios
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
48. Um pouco de humor
Um pouco de humor
sempre cai bem...
sempre cai bem...
49. Talvez se tivesse casado com uma programadora oodiálogo seria melhor…
Talvez se tivesse casado com uma programadora diálogo seria melhor…