Documente Academic
Documente Profesional
Documente Cultură
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?
• 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
• 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
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
Algoritmo
Salario SalarioN
Algoritmo
Declare Salario, SalarioN NÚMERICO
Salario SalarioN
Algoritmo
Declare Salario, SalarioN NÚMERICO
Leia Salario
Salario SalarioN
Algoritmo
Declare Salario, SalarioN NÚMERICO
Leia Salario
SalarioN Salario * 1.25
Salario SalarioN
Algoritmo
Declare Salario, SalarioN NÚMERICO
Leia Salario
SalarioN Salario * 1.25
Escreva SalarioN
Salario SalarioN
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.
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.