Sunteți pe pagina 1din 95

Introdução à Lógica de

programação: conceitos e
fundamentos

Rodrigo de Carvalho
Objetivo
• Entender conceitos relacionados a Lógica de
Programação.
– Algoritmo
• Variáveis e Operadores.
Por que é importante entender lógica
de programação?

• Entendendo a lógica de programação, é possível


entender a sintaxe de uma linguagem e
posteriormente fazer um programa.
Lógica
• “Maneira rigorosa de raciocinar.”

• “O encadeamento coerente de alguma coisa que obedece a


certas convenções e regras.”

• “Organização e planejamento das instruções em um


algoritmo, afim de viabilizar a implementação de um
programa.”

• “A lógica nada mais é do que a organização coerente de


passos para que um determinado objetivo seja alcançado.”
Lógica
Lógica de Programação
• A lógica de programação nada mais é do que a
organização coerente das instruções/comandos do
programa para que seu objetivo seja alcançado.
Etapas para desenvolver um programa
• Análise
– Analisar um problema e definir três componentes essenciais de um
programa: Entrada, Processamento e Saída.

• Algoritmo
– Definir uma sequência finita e ordenada de passos para atingir o
objetivo.

• Codificação
– Transformar o algoritmo em códigos de linguagem de
programação.
Análise

Entrada Saída

Processamento
Análise

Entrada Soma

Processamento
Análise

X, Y Soma

Processamento
Análise

X, Y Soma

Soma  X + Y
Algoritmo
• Passo 1: Receber os dois números.
• Passo 2: Somar os dois números.
• Passo 3: Mostrar o resultado obtido.
Análise
Entrada Saída

Processamento
Análise

X, Y Soma

Soma  X + Y
Análise

Entrada Saída

Processamento
Algoritmo
- Algoritmo é uma sequência finita de passos, que tem como
objetivo resolver um problema, qualquer que for sua instância.
(Ascencio e Campus, 2012)

- Descrição Narrativa
- Fluxograma
- Pseudocódigo
Algoritmo em descrição narrativa
Passo 1: Receber dois números que serão somados
Passo 2: Somar os números
Passo 3: Mostrar o resultado obtido na soma.
Algoritmo em fluxograma
Início

N1, N2

Soma  N1 + N2

Soma Fim
Algoritmo em pseudocódigo
ALGORITMO
DECLARE N1, N2, SOMA NÚMERICO
LEIA N1, N2
SOMA  N1 + N2
ESCREVA SOMA
FIM_ALGORITMO
N1, N2 Soma

Soma  N1 + N2

Passo 1: Receber dois números que serão somados


Passo 2: Somar os números
Passo 3: Mostrar o resultado obtido na soma.

Java, C++, C#, Pascal, PHP


Algoritmo
• Variável
– Um espaço reservado na memoria para guardar valores. Cada variável
tem seu próprio nome, isso permite que os valores guardados sejam
recuperados.
Algoritmo

• Variável
– Um espaço reservado na memoria para guardar valores. Cada variável
tem seu próprio nome, isso permite que os valores guardados sejam
recuperados.
Memória

N1

N2
Memória

N1

N2
Memória

N1 3

N2
Memória

N1 3

N2 4
Soma

Memória
7
N1 3

N2 4
Regras
• Não usar caracteres especiais para definir nome de
variável. Ex: $,%,@,# etc.
• Não ter nomes iguais.
• Cada variável deve ter seu tipo.
Tipos de dados
Soma (Numérico)

Memória
7
N1 (Numérico) 3
“MG”

N2 (Numérico) 4
FALSO

ESTADO (Literal)
ABERTO (Lógico)
Linearização de expressões

1 – Potência
2 – Multiplicação / Divisão
3 – Soma / Subtração
Linearização de expressões

(2/3 + (5-3)) + 1 (2 + 2) / 2 2+2/2


(2/3 + 2) + 1 4/2 2+1
2 3
(0,67 + 2) + 1
2,67 + 1
3,67
Operadores Aritméticos
Comandos
• Atribuição “”
– Ex: A  5
• Comparação “=“
– Ex: A = 5
• Declare X NUMÉRICO
Y LITERAL
• Entrada de dados
– Leia
• Saída de dados
– Escreva
Algoritmo em pseudocódigo
ALGORITMO
DECLARE N1, N2, SOMA NÚMERICO
LEIA N1, N2
SOMA  N1 + N2
ESCREVA SOMA
FIM_ALGORITMO
Vamos praticar
• Faça um programa que receba o salário de um empregado,
calcule e mostre o novo salário, sabendo-se que este sofreu
um aumento de 25%.
Vamos praticar
• Faça um programa que receba o salário de um empregado,
calcule e mostre o novo salário, sabendo-se que este sofreu
um aumento de 25%.

Entrada Saída

Processamento
Vamos praticar
• Faça um programa que receba o salário de um empregado,
calcule e mostre o novo salário, sabendo-se que este sofreu
um aumento de 25%.

Entrada SalarioN

Processamento
Vamos praticar
• Faça um programa que receba o salário de um empregado,
calcule e mostre o novo salário, sabendo-se que este sofreu
um aumento de 25%.

Salario SalarioN

Processamento
Vamos praticar
• Faça um programa que receba o salário de um empregado,
calcule e mostre o novo salário, sabendo-se que este sofreu
um aumento de 25%.

Salario SalarioN

SalarioN  Salario * 1.25


Salario SalarioN

SalarioN  Salario * 1.25


Salario SalarioN

SalarioN  Salario * 1.25

Algoritmo
Salario SalarioN

SalarioN  Salario * 1.25

Algoritmo
Declare Salario, SalarioN NÚMERICO
Salario SalarioN

SalarioN  Salario * 1.25

Algoritmo
Declare Salario, SalarioN NÚMERICO
Leia Salario
Salario SalarioN

SalarioN  Salario * 1.25

Algoritmo
Declare Salario, SalarioN NÚMERICO
Leia Salario
SalarioN  Salario * 1.25
Salario SalarioN

SalarioN  Salario * 1.25

Algoritmo
Declare Salario, SalarioN NÚMERICO
Leia Salario
SalarioN  Salario * 1.25
Escreva SalarioN
Salario SalarioN

SalarioN  Salario * 1.25

Algoritmo
Declare Salario, SalarioN NÚMERICO
Leia Salario
SalarioN  Salario * 1.25
Escreva SalarioN
FIM_ALGORITMO
Vamos praticar
• Faça um programa que receba o número de horas
trabalhadas e o valor do salário mínimo e calcule o
salário final respeitando a seguinte regra:
– a) a hora trabalhada vale metade do salário mínimo.
– b) o salário final é a soma do valor obtido com as horas de
trabalho mais o salário mínimo.
Vamos praticar
• Faça um programa que receba o número de horas
trabalhadas e o valor do salário mínimo e calcule o
salário final respeitando a seguinte regra:
– a) a hora trabalhada vale metade do salário mínimo.
– b) o salário final é a soma do valor obtido com as horas de
trabalho mais o salário mínimo.

Entrada Saída
Processamento
Vamos praticar
• Faça um programa que receba o número de horas
trabalhadas e o valor do salário mínimo e calcule o
salário final respeitando a seguinte regra:
– a) a hora trabalhada vale metade do salário mínimo.
– b) o salário final é a soma do valor obtido com as horas de
trabalho mais o salário mínimo.

Entrada SalarioF
Processamento
Vamos praticar
• Faça um programa que receba o número de horas
trabalhadas e o valor do salário mínimo e calcule o
salário final respeitando a seguinte regra:
– a) a hora trabalhada vale metade do salário mínimo.
– b) o salário final é a soma do valor obtido com as horas de
trabalho mais o salário mínimo.

HT, SalarioM SalarioF


Processamento
Vamos praticar
• Faça um programa que receba o número de horas
trabalhadas e o valor do salário mínimo e calcule o
salário final respeitando a seguinte regra:
– a) a hora trabalhada vale metade do salário mínimo.
– b) o salário final é a soma do valor obtido com as horas de
trabalho mais o salário mínimo.

HT, SalarioM SalarioF


SalarioF  HT*SalarioM*0.5 +
SalarioM
HT, SalarioM SalarioF
SalarioF  HT*SalarioM*0.5 +
SalarioM
HT, SalarioM SalarioF
SalarioF  HT*SalarioM*0.5 +
SalarioM

Algoritmo
HT, SalarioM SalarioF
SalarioF  HT*SalarioM*0.5 +
SalarioM

Algoritmo
Declare HT, SalarioM, SalarioF Númerico
HT, SalarioM SalarioF
SalarioF  HT*SalarioM*0.5 +
SalarioM

Algoritmo
Declare HT, SalarioM, SalarioF Númerico
Leia HT, SalarioM
HT, SalarioM SalarioF
SalarioF  HT*SalarioM*0.5 +
SalarioM

Algoritmo
Declare HT, SalarioM, SalarioF Númerico
Leia HT, SalarioM
SalarioF  HT*SalarioM*0.5 + SalarioM
HT, SalarioM SalarioF
SalarioF  HT*SalarioM*0.5 +
SalarioM

Algoritmo
Declare HT, SalarioM, SalarioF Númerico
Leia HT, SalarioM
SalarioF  HT*SalarioM*0.5 + SalarioM
Escreva SalarioF
HT, SalarioM SalarioF
SalarioF  HT*SalarioM*0.5 +
SalarioM

Algoritmo
Declare HT, SalarioM, SalarioF Númerico
Leia HT, SalarioM
SalarioF  HT*SalarioM*0.5 + SalarioM
Escreva SalarioF
Fim_Algoritmo
Vamos praticar!
Coloque na forma computacional as expressões abaixo.
(𝐴+𝐵)
a) R =
(𝐶+𝐷)
𝐴𝐵
𝐶
b) R = 𝐴
(𝐶+𝐷 −𝐵)

c) R = 𝑏 2 − 4𝑎𝑐
(𝐴+𝐵)
R=
(𝐶+𝐷)
R = (A + B) / (C + D)
𝐴𝐵
𝐶
R=𝐴
(𝐶+𝐷 −𝐵)

R = A*B/C
𝐴𝐵
𝐶
R=𝐴
(𝐶+𝐷 −𝐵)

R = A*B/C
R = (A*B/C) / (C+D-B)
𝐴𝐵
𝐶
R=𝐴
(𝐶+𝐷 −𝐵)

R = A*B/C
R = (A*B/C) / (C+D-B)
R = A*((A*B/C) / (C+D-B))
Operadores Relacionais
Operadores Relacionais
• 5 >= 6 (Falso)
• 6 >= 6 (Verdadeiro)
• 5 = 5 (Verdadeiro)
• 4 <> 3 (Verdadeiro)
Operadores Lógicos
Não (!)
• !(3<5)
• !(5 = 5)
• !(6 < 6)
E (^)
• Para a expressão ser verdadeira todos os termos/proposições
precisam ser verdadeiros.
– (3 > 5) ^ (4 < 2)
– (2 > 0) ^ (0 < 2)
– ((3 > 5) ^ (2 < 0)) ^ (5=3))
Ou (v)
• Para a expressão ser verdadeira pelo menos um
termo/proposição precisa ser verdadeiro.
– (3 > 5) v (4 < 2)
– (2 > 0) v (0 < 2)
– ((3 > 5) v (2 < 0)) v (5 > 3))
e/ou
• Rodrigo e Pedro foram ao cinema.
• Paulo é dentista e Júlio é jogador de futebol.
• Irei à praia ou irei ao cinema.
Vamos praticar!
Determine o resultado final, sendo a = 5:
a) !((!(a > 5) ^ (a < 3)) v (5 > a))
b) (a*2 < a + 2)
c) !(a < 2) ^ !(!(a > 3))
a=5
!((!(a > 5) ^ (a < 3)) v (5 > a))
a=5
!((!(a > 5) ^ (a < 3)) v (5 > a))
a=5
!((!(a > 5) ^ (a < 3)) v (5 > a))
!((!(FALSO) ^ (FALSO)) v (5 > a))
a=5
!((!(a > 5) ^ (a < 3)) v (5 > a))
!((!(FALSO) ^ (FALSO)) v (5 > a))
!((VERDADEIRO ^ FALSO) v (5 > a))
a=5
!((!(a > 5) ^ (a < 3)) v (5 > a))
!((!(FALSO) ^ (FALSO)) v (5 > a))
!((VERDADEIRO ^ FALSO) v (5 > a))
!(FALSO v (5 > a))
a=5
!((!(a > 5) ^ (a < 3)) v (5 > a))
!((!(FALSO) ^ (FALSO)) v (5 > a))
!((VERDADEIRO ^ FALSO) v (5 > a))
!(FALSO v (5 > a))
!(FALSO v (5 > a))
a=5
!((!(a > 5) ^ (a < 3)) v (5 > a))
!((!(FALSO) ^ (FALSO)) v (5 > a))
!((VERDADEIRO ^ FALSO) v (5 > a))
!(FALSO v (5 > a))
!(FALSO v (5 > a))
!(FALSO v FALSO)
a=5
!((!(a > 5) ^ (a < 3)) v (5 > a))
!((!(FALSO) ^ (FALSO)) v (5 > a))
!((VERDADEIRO ^ FALSO) v (5 > a))
!(FALSO v (5 > a))
!(FALSO v (5 > a))
!(FALSO v FALSO)
!(FALSO)
a=5
!((!(a > 5) ^ (a < 3)) v (5 > a))
!((!(FALSO) ^ (FALSO)) v (5 > a))
!((VERDADEIRO ^ FALSO) v (5 > a))
!(FALSO v (5 > a))
!(FALSO v (5 > a))
!(FALSO v FALSO)
!(FALSO)
VERDADEIRO
a=5
(a*2 < a + 2)
a=5
(a*2 < a + 2)
(a*2 < a + 2)
a=5
(a*2 < a + 2)
(a*2 < a + 2)
(10 < a + 2)
a=5
(a*2 < a + 2)
(a*2 < a + 2)
(10 < a + 2)
(10 < a + 2)
a=5
(a*2 < a + 2)
(a*2 < a + 2)
(10 < a + 2)
(10 < a + 2)
(10 < 7)
a=5
(a*2 < a + 2)
(a*2 < a + 2)
(10 < a + 2)
(10 < a + 2)
(10 < 7)
FALSO
a=5
!(a < 2) ^ !(!(a > 3))
a=5
!(a < 2) ^ !(!(a > 3))
!(a < 2) ^ !(!(a > 3))
a=5
!(a < 2) ^ !(!(a > 3))
!(a < 2) ^ !(!(a > 3))
!(Falso) ^ !(!(a > 3))
a=5
!(a < 2) ^ !(!(a > 3))
!(a < 2) ^ !(!(a > 3))
!(Falso) ^ !(!(a > 3))
VERDADEIRO ^ !(!(a > 3))
a=5
!(a < 2) ^ !(!(a > 3))
!(a < 2) ^ !(!(a > 3))
!(Falso) ^ !(!(a > 3))
VERDADEIRO ^ !(!(a > 3))
VERDADEIRO ^ !(!(VERDADEIRO))
a=5
!(a < 2) ^ !(!(a > 3))
!(a < 2) ^ !(!(a > 3))
!(Falso) ^ !(!(a > 3))
VERDADEIRO ^ !(!(a > 3))
VERDADEIRO ^ !(!(VERDADEIRO))
VERDADEIRO ^ !(FALSO)
a=5
!(a < 2) ^ !(!(a > 3))
!(a < 2) ^ !(!(a > 3))
!(Falso) ^ !(!(a > 3))
VERDADEIRO ^ !(!(a > 3))
VERDADEIRO ^ !(!(VERDADEIRO))
VERDADEIRO ^ !(FALSO)
VERDADEIRO ^ VERDADEIRO
a=5
!(a < 2) ^ !(!(a > 3))
!(a < 2) ^ !(!(a > 3))
!(Falso) ^ !(!(a > 3))
VERDADEIRO ^ !(!(a > 3))
VERDADEIRO ^ !(!(VERDADEIRO))
VERDADEIRO ^ !(FALSO)
VERDADEIRO ^ VERDADEIRO
VERDADEIRO
Material complementar
• Ascencio. A. F. G; Campos, E. A. V. Fundamentos da
Programação de Computadores: Algoritmos, Pascal,
C, C++ e Java. 3 ed, Pearson, 2012.

• Forbellone, A. L. V. ; Eberspächer, H. F. Lógica de


programação a construção de algoritmos e estrutura
de dados. 3ed, Pearson, 2005.

S-ar putea să vă placă și