Aula 04 – Resolução de problemas
utilizando lógica (parte 2)
Jarbas Vidal · Fundamentos de Programação
Curso · Análise e Desenvolvimento de Sistemas
Conteúdo
● Introdução aos conceitos
○ Lógica
○ Sequência lógica
○ Instruções
○ Algoritmos
○ Programas
● Resolução de problemas lógicos
Introdução
● A lógica de programação é necessária para pessoas que
desejam trabalhar com desenvolvimento de sistemas e
programas, ela permite definir a sequência lógica para o
desenvolvimento
“Lógica de programação é a técnica de encadear
pensamentos para atingir determinado objetivo”
Introdução
● Estes pensamentos, podem ser descritos como uma
sequência de instruções, que devem ser seguidas para se
cumprir uma determinada tarefa
“Sequência Lógica são passos executados até atingir um
objetivo ou solução de um problema”
Lógica de programação
Entrada
Processamento
Saída
Lógica de programação
• Vamos continuar escrevendo algoritmos descritivos
• Algoritmos
o Trocar uma Lâmpada
o Escrever ”Oi Turma” 5 vezes
o Calcular da média do IFCE
o Transformar de graus Celsius para Fahrenheit (F = 1,8*C + 32)
Lógica de programação
• Vamos escrever o algoritmo para o problema abaixo
Você quer cozinhar um ovo em 2 minutos. Entretanto você só possui 2
relógios de areia, um de 5 minutos e outro de 3 minutos.
Como você poderia colocar o ovo para cozinhar e tirá-lo dentro de 2
minutos exatos?
Lógica de programação
ALGORITMO
INICIO
Você viraria os dois relógios de areia ao mesmo
tempo.
Quando o de 3 minutos acabasse você colocaria o
ovo
Quando o de 5 minutos acabasse você retiraria o
ovo
FIM
Lógica de programação
• Vamos continuar escrevendo algoritmos descritivos
Uma Torre de Hanói é formada por três discos sobrepostos
transpassados por uma haste. Tendo mais duas hastes e podendo
mover um disco por vez, mas nunca deixando um disco maior sobre um
disco menor, como podemos passar os discos para uma outra haste?
OBS:
Vermelha = menor (1)
Amarela = médio (2)
Azul = maior (3)
Lógica de programação
Informações:
3 discos
3 hastes
Ações:
movimentar um disco de cada vez de forma que
fiquem ordenado
Resultado:
discos transferidos e ordenados para outra haste
Lógica de programação
• Uma Torre de Hanói é formada por três discos sobrepostos
transpassados por uma haste. Tendo mais duas hastes e podendo
mover um disco por vez, mas nunca deixando um disco maior sobre um
disco menor, como podemos passar os discos para uma outra haste ?
Algoritmo:
início
mover o disco 1 para a haste b
mover o disco 2 para a haste c
mover o disco 1 para a haste c
mover o disco 3 para a haste b
mover o disco 1 para a haste a
mover o disco 2 para a haste b
mover o disco 1 para a haste b
fim
Lógica de programação
• Três jesuítas e três canibais precisam atravessar um rio. Ambos
podem conduzir o barco.
• No entanto dispõem apenas de um barco com capacidade para
duas pessoas.
• Por medida de segurança não se permite que em alguma das
margens do rio a quantidade de jesuítas seja inferior à quantidade
de canibais.
• Qual a sequência de viagens necessárias para a travessia do rio
com segurança para os jesuítas?
Lógica de programação
Informações:
3 jesuítas
3 canibais
1 barco com capacidade para 2 pessoas
Ações:
atravessar o rio com segurança
Resultado:
3 jesuítas e 3 canibais na outra margem do rio
Lógica de programação
ALGORITMO
INÍCIO
atravessar um jesuíta e um canibal
voltar um canibal
atravessar dois canibais
voltar um canibal
atravessar um jesuíta e um canibal
voltar um canibal
atravessar dois canibais
voltar um canibal
atravessar um jesuíta e um canibal
FIM
Lógica de programação
• Você tem em suas mãos 12 moedas aparentemente
idênticas, mas sabe que uma delas, falsificada,
tem massa ligeiramente diferente das demais e é mais
leve!
• Usando apenas uma balança de dois pratos, você
conseguiria descobrir em 3 medições, qual a moeda
diferente?
Lógica de programação
Informações:
12 moedas
1 falsa
Ações:
pesagem de moedas
Resultado:
moeda falsa
Lógica de programação
ALGORITMO:
INÍCIO
1.a pesagem: Dividiria as 12 moedas em 2 montes ( 6 moedas cada monte),
o monte com a moeda falsa iria pesar menos
2.a pesagem: Dividiria novamente este monte de 6 moedas em 2 montes de
3 moedas, pesaria novamente e o monte com a moeda falsa novamente pesaria
menos
3.a pesagem: pesaria 2 moedas das 3 restantes. Se ambas tivessem o
mesmo peso na balança, a moeda falsa já seria identificável. Ela estaria na balança e
apresentaria a diferença ou ela estaria fora da balança, caso houvesse um equilibro
na pesagem das 2 moedas que estavam na balança.
FIM
Lógica de programação
• Dois amigos bêbados compraram 8 litros de vinho. Eles
estavam caminhando, e na metade do caminho,
decidem separar-se, repartindo antes o vinho
igualmente.
• Para realizar as medidas há um barril de 8 litros (onde
está o vinho), uma vasilha de 5 e outra de 3 litros.
Como eles podem fazer para repartir igualmente o
vinho?
Lógica de programação
ALGORITMO:
INÍCIO
Enchemos a vasilha de 3 litros.
Passamos os 3 litros para a vasilha de 5 litros.
Enchemos outra vez a vasilha de 3 litros.
Enchemos a vasilha de 5 litros com a outra, sendo que sobrará 1 na de 3.
Esvaziamos a de 5 no barril.
Enchemos o litro da vasilha pequena na de 5.
Enchemos a de 3 e esvaziamos na de 5, que como já tinha 1, terá 1+3 = 4.
No barril sobra 4 litros para o outro amigo.
FIM
Lógica de programação
• Um senhor de 80kg e suas 2 filhas cada uma com
40kg precisam atravessar uma ilha com um barco. Só
que há um problema, o barco só suporta 80kg.
• Como farão para atravessar?
Lógica de programação
Informações:
2 filhas (40 kg cada)
1 pai (80 kg)
1 barco que suporta 80 kg
moeda falsa tem massa diferente das originais
Ações:
atravessas pessoas
Resultado:
pai e filhas no outro lado do rio
Lógica de programação
ALGORITMO:
INÍCIO
1 - As 2 filhas vão para a ilha;
2 - Uma delas volta;
3 - Somente o pai vai a ilha, e
4 - A outra filha que ficou na ilha volta, e
5 - As 2 filhas voltam para a ilha.
FIM
Lógica de programação
• Identifique a entrada, processamento e saída no algoritmo
abaixo:
• Algoritmo para cálculo do valor total da compra de peças
1. Receba código da peça.
2. Receba valor da peça.
3. Receba a quantidade de peças.
4. Calcule o valor total da peça (Quantidade * Valor da peça).
5. Mostre o código da peça e seu valor total.