Vous êtes sur la page 1sur 38

Lgica e Linguagem de

Programao
Professor Emannuel Diego G. de Freitas

Lgica de Programao
O desenvolvimento de um programa requer a utilizao de um raciocnio
diferenciado
No h formulas prontas onde bastam trocar variveis por valores do problema
Existem padres lgicos podem ser usados em problemas diferentes, ms no h
uma passo a passo que seja capaz de solucionar todos os problemas
possvel que no exista apenas uma maneira correta de solucionar um
determinado problema
Solucionar problemas de programao consiste em encontrar uma sequencia de
instrues do computador que o leve ao resultado esperado

Professor EmannuelDiego IFCE Campus Cedro

Lgica de Programao
comum se utilizar a termo algoritmo para indicar uma sequncia de
instrues que resolvem um dado problema
Desenvolver esse algoritmo pode no ser uma atividade trivial
normal que alguns tenham mais facilidade que outros
normal que no primeiro contato seja difcil entender
A lgica pode ser desenvolvida como qualquer outra habilidade
Requer dedicao
Requer prtica constante
Muitas vezes requer persistncia

Professor EmannuelDiego IFCE Campus Cedro

Algoritmos
Um algoritmo correto deve possuir trs propriedades mnimas:
Cada passo deve corresponder a uma instruo que possa ser realizada
A ordem dos passos deve ser precisamente determinada
O algoritmo deve ter fim

Professor EmannuelDiego IFCE Campus Cedro

Algoritmos
Exemplo de problema: trocar uma lmpada
Como construir um algoritmo que solucione esse problema?
Lembre-se: preciso conhecer quais so as instrues que podem ser realizadas
Como o as instrues so limitadas comum o uso de abstrao
Ex.: antes de pegar a lmpada necessrio caminhar at ela, ms essa instruo pode ser omitida,
pois subentende-se que no h como pegar a lmpada sem ir at o local onde ela se encontra
(abstrao depende do contexto)

Lembre-se: a ordem dos passos deve ser estratgica


Ex.: no h como inserir uma lmpada nova sem antes pegar essa lmpada

Lembre-se: preciso ter um fim bem definido


O ideal que o final traga a resposta para o problema

Professor EmannuelDiego IFCE Campus Cedro

Algoritmos
Exemplo de problema: trocar uma lmpada
Inicio
Remova a lmpada queimada
Coloque a nova lmpada

Fim

Professor EmannuelDiego IFCE Campus Cedro

Algoritmos
Voc deve estar se perguntando: Como saber se o algoritmo est detalhado o
suficiente?
A resposta simples: depende de quem vai execut-lo

Um algoritmo considerado completo se:


O objetivo for alcanado (problema solucionado)
Todas as instrues forem do entendimento do seu destinatrio
O destinatrio possuir os recursos necessrios para a execuo de cada instruo
Para trocar uma lmpada queimada preciso de uma lmpada nova
provvel que seja preciso uma escada tambm!

Professor EmannuelDiego IFCE Campus Cedro

Algoritmos
Sobre o algoritmo encontrado para o trocar uma lmpada
Possui Muita abstrao!
Pode funcionar como manual para humanos, ms um computador (rob, por
exemplo) no tem raciocnio para pensar sobre as etapas que foram abstradas,
como por exemplo pegar a lmpada nova, subir na escada, etc.

necessrio que o programador crie uma sequencia com aquilo que o computador
pode fazer, e a ordem da instruo deve ser pensada para o computador, que
burro!

Professor EmannuelDiego IFCE Campus Cedro

Algoritmos
Exemplo de problema: trocar uma lmpada
Inicio
posicione a escada debaixo da lmpada
pegue um lmpada nova semelhante a queimada
suba na escada at que a lmpada possa ser alcanada
gire a lmpada no sentido anti-horrio, at que ela se solte
retire a lmpada queimada
posicione a nova lmpada nova no soquete
gire a lmpada nova no sentido horrio at que ela se firme
desa a escada

Fim

Professor EmannuelDiego IFCE Campus Cedro

Algoritmos
Note que, mesmo incompleta, a primeira verso do algoritmo foi importante
para que se conseguisse um algoritmo completo
Pode ser interessante desenvolver algoritmos iniciando com muita abstrao
(instrues genricas) e depois desdobrar esses passos genricos em
instrues mais detalhadas
A este desdobramento, d-se o nome de refinamento sucessivo
Programadores tendem a escrever primeiro os passos gerais e, s depois, aplicar
um desdobramento dos passos at que se atinja o resultado desejado

Professor EmannuelDiego IFCE Campus Cedro

Algoritmos
Desafio para a construo de algoritmos:
No devemos definir os passos de forma muito genrica (ou abstrata), nem
tampouco detalhar demasiadamente os passos a ponto de tornar o algoritmo bvio
e grande demais

Professor EmannuelDiego IFCE Campus Cedro

Algoritmos
Exemplo de problema: Gravar um programa de TV em um DVD
Conecte o gravador DVD a TV
Sintonize o canal desejado
Insira um DVD virgem no gravador
Pressione a tecla rec

Observe que a execuo do suposto algoritmo requer a utilizao de um DVD


virgem
Isto significa que esse algoritmo necessita receber dados durante sua execuo
Estes dados constituem entradas para o algoritmo!
Ao final da execuo o algoritmo poder oferecer um resultado ou produto final,
chamado de sada do algoritmo
Um programa de TV gravado em DVD, por exemplo.
Professor EmannuelDiego IFCE Campus Cedro

Algoritmos
Quais so os passos necessrios para mostrar para uma pessoa C, a soma de
dois nmeros dados por uma pessoa A?
Inicio
Receber o primeiro nmero de A
Receber o segundo nmero de A
Somar o primeiro nmero com o segundo
Mostrar a C o resultado da soma

Fim
Quais so as entradas e as sadas do algoritmo?

Crie um algoritmo para calcula a medida de aluno do IFCE. Considere duas


notas em cada uma das duas etapas

Professor EmannuelDiego IFCE Campus Cedro

Prticas de Resoluo de Problemas


Lgicos
Lgica de Programao

Para resolver problemas necessrio


pensar...
Mais do que isto, necessrio raciocinar!
Mais do que isto, necessrio aprender a raciocinar!
Raciocinar: Buscar a verdade com auxlio da razo
Razo: chegar a concluses a partir de suposies

uma tarefa cotidiana!


O que voc pensaria se chegasse em casa e encontrasse a porta aberta e suas
coisas mexidas? Por que?
Na sua opinio, hoje vai chover ou no? Por que?
Como voc reagiria se, devido a um acidente de moto, percebesse um grave
ferimento no seu brao? Por que? (razo x emoo)

Professor EmannuelDiego IFCE Campus Cedro

Para resolver problemas tambm


preciso...
Compreender o problema
Para quem resolve problemas, a nica fonte de recursos para a so a descrio do
problema (ou enunciado)
No h como resolver um problema se voc no possui recursos para isto.
possvel responder uma pergunta sem entender o seu significado?
Interpretar, discernir, abstrair e at mesmo pesquisar, so aes importantes nessa
fase

Professor EmannuelDiego IFCE Campus Cedro

Para resolver problemas tambm


preciso...
Em seu livro, A Arte de Resolver Problemas, Polya (1978) salienta que:
Para solucionar problemas processo Estabelecer um Plano
A soluo de um problema pode comear com a seguinte pergunta: Conhece algum
problema correlato?
Caso no, pode ser possvel reformular a descrio do problema com o propsito de
encontrar um problema auxiliar adequado

Ms, obviamente, tambm preciso dar o primeiro passo!


Boa parte dos problemas podem no ser compreensveis primeira vista
Porm, dar o primeiro passo, ou solucionar o evento inicial, pode desencadear uma
nova ideia para o passo seguinte (e assim sucessivamente...)

Professor EmannuelDiego IFCE Campus Cedro

A arte de resolver problemas


Polya (1978, p. 65) afirma que:
Resolver problemas uma habilidade prtica, como nadar, esquiar ou tocar piano:
voc pode aprend-la por meio de imitao e prtica. [...] se voc quer aprender a
nadar voc tem de ir gua e se voc quer se tornar um bom resolvedor de
problemas tem que resolver problemas.

Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
Um senhor, infelizmente bastante gordo, est numa das margens de um rio
com uma raposa, uma dzia de galinhas e um saco de milho (considere 3
cargas)
O senhor precisa atravessar o rio, ms, devido ao peso, s pode levar no seu barco
uma carga de cada vez
O senhor no pode deixar em uma das margens, sozinhos, a raposa e a galinha,
nem a galinha e o milho
Qual seria a sequencia de movimentos de carga que o senhor deve fazer para
atravessar ao outro lado do rio?

Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
Como resolver?
Se existe um sequencia lgica para soluo do problema, ento podemos criar um
algoritmo
Devemos conhecer quais so as possveis instrues (lembre-se da abstrao):
Atravessar sozinho
Voltar sozinho
Atravessar com a raposa
Voltar com a raposa
Atravessar com a galinha
Voltar com a galinha
Atravessar com o milho
Voltar com o milho

Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
Como resolver?
Tendo posse da instrues, vai ser fcil solucionar o problema em questo, basta
apenas ordenar a sequencia de como eles devem ocorrer e excluir alguma, caso
no seja necessria
Existem vrias tcnicas para o soluo de problemas como este. Para o problema
em questo, vamos utilizar a tcnica da exausto
Vamos testar todas as instrues em cada passo do algoritmo e anular aquelas que causam
erro, at que s se tenha a instruo correta para aquela situao

Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
O senhor do barco, a raposa, as galinhas, o milho e o rio para atravessar
1 passo:
Atravessar sozinho erro: no faz sentido (erro de sintaxe ou de semntica?)
Atravessar com o milho erro: raposa devora as galinhas
Atravessar com a raposa erro: as galinhas comeriam o milho
Como nenhuma das instrues com voltar possui lgica, s resta Atravessar com as
galinhas

Portanto:
1 passo: Atravessar com as galinhas

Determine os prximos passos utilizando a tcnica da exausto

Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
O senhor do barco, a raposa, as galinhas, o milho e o rio para atravessar
1.

Atravessar com as galinhas

2.

Voltar sozinho

3.

Atravessar com a raposa

4.

Voltar com as galinhas

5.

Atravessar com o milho

6.

Voltar sozinho

7.

Atravessar com as galinhas

Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
Uma outra tcnica de resoluo de problemas:
Tentar resolver casos particulares da questo ou resolver a questo para dados
menores do que os dados que foram fixados

Para exemplificar, consideremos a seguinte questo:


Como obter exatamente 4 litros de gua dispondo de dois recipientes, sem
nenhuma graduao, com capacidades de 3 litros e 5 litros?
Casos particulares da questo (dados menores):
4=3+1
5=41
O que h de lgico?

Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
4 litros com recipientes de 3 e 5
Plano:
Se conseguirmos obter 1 litro d gua, tambm conseguiremos resolver a questo!
possvel conseguir 1, com recipientes de 3 e 5? (pois isso que temos como entrada)
1=3+35
Lgica: 1 o que sobra (resto) se preenchermos um espao de 5 litros com 3 litros, e depois com
mais 3 litros

Tente resolver o restante do problema!

Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
4 litros com recipientes de 3 e 5
Sejam A e B os recipientes de 3 litros e de 5 litros, respectivamente;
(X, n) o fato de o recipiente X conter n litros de gua;
No incio temos (A, 0) e (B, 0) e, aps a execuo de cada instruo, teremos:
1.

(A, 3), (B, 0)

2.

(A, 0), (B, 3)

3.

(A, 3), (B, 3)

4.

(A, 1), (B, 5)

5.

(A, 1), (B, 0)

6.

(A, 0), (B, 1)

7.

(A, 3), (B, 1)

8.

(A, 0), (B, 4)


Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
Mesmo com a concluso bem sucedida de um problema, ainda podemos
levantar questes:
H outras solues?
Caso positivo, existe alguma soluo que realize a mesma tarefa com menos
instrues?

No problema 4 litros com recipientes de 3 e 5 a soluo foi iniciada atravs


do seguinte principio lgico: 1 = 3 + 3 5
Ms tambm poderemos partir do seguinte princpio: 4 = 5 1
Plano: tirar um litro do recipiente de 5
Isto pode ser conseguido deixando 2 litros no recipiente de 3

Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
4 litros com recipientes de 3 e 5: outra soluo!
Plano: obter 2 litros no reservatrio de 3
2=53
Lgica: 2 o que sobra se preenchermos um espao de 3 litros com 5 litros

Tente resolver o restante do problema!

Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
4 litros com recipientes de 3 e 5: outra soluo!
1.

(A, 0) e (B, 0)

2.

(A, 0), (B, 5)

3.

(A, 3), (B, 2)

4.

(A, 0), (B, 2)

5.

(A, 2), (B, 0)

6.

(A, 2), (B, 5)

7.

(A, 3), (B, 4)

Obs.: A e B so os recipientes de 3 litros e de 5 litros, respectivamente

Professor EmannuelDiego IFCE Campus Cedro

Resoluo de problemas
Pratiquem com a lista de exerccios!

Professor EmannuelDiego IFCE Campus Cedro

Lgica booleana e lgicas


Lgica de Programao

Lgica booleana
A lgica booleana se refere ao sistema de lgica matemtica utilizada em
expresses algbricas onde a resposta pode ser um de dois possveis valores:
Verdadeiro ou Falso

Foi idealizada pelo matemtico ingls George Boole. A lgebra booleana


atribui aos processos lgicos o mesmo rigor de uma equao algbrica e foi o
ponta p inicial para o surgimento da lgica moderna.
Por ser um sistema com apenas dois estados possveis, a codificao numrica
no precisa de uma base maior que 2, para representar os dados processados
por expresses booleanas
Base 2 = sistema binrio = dois nmeros fundamentais (0 e 1)
0 pode representar o estado Falso
1 pode representar o estado Verdadeiro

Professor EmannuelDiego IFCE Campus Cedro

Lgica booleana
Exemplos de expresses booleanas:
Fortaleza a capital do Cear (VERDADEIRO)
Natal a capital da Paraba (FALSO)
2 + 2 = 4 (VERDADEIRO)
10 < 2 (FALSO)

Professor EmannuelDiego IFCE Campus Cedro

Lgica booleana
S pra lembrar: Expresses aritmticas possuem operadores que causam
processamento sobre valores numricos e retornam (oferecem como sada)
nmeros reais (inteiros ou quebrados)
Exemplos de operadores aritmticos: soma, subtrao, multiplicao e diviso

Expresses lgicas, por sua vez, possuem operadores que agem apenas sobre
valores da lgica booleana e, por tanto, no podem retornar outra coisa alm
de Verdadeiro ou Falso

Professor EmannuelDiego IFCE Campus Cedro

Lgica booleana
Operadores booleanos: permitem realizar a anlise expresses compostas
AND (conjuno): A resposta deste operador s ser verdadeira quando as duas
expresses associadas por ele so verdadeiras
Natal a capital da Paraba AND Fortaleza a capital do Cear (FALSO)
Recife a capital da Paraba AND Fortaleza a capital do Cear (VERDADEIRO)
10 < 2 AND 2 + 2 = 4 (FALSO)
10 > 2 AND 2 + 2 = 4 (VERDADEIRO)
(30 >= 2) AND (Fortaleza no est na Paraba) AND (crculos so redondos) = VERDADEIRO

Expresso 1

Expresso 2

Resposta

Professor EmannuelDiego IFCE Campus Cedro

Lgica booleana
Operadores booleanos: permitem realizar a anlise expresses compostas
OR (disjuno): A resposta deste operador ser verdadeira quando, pelo menos, uma das duas
expresses associadas por ele so verdadeiras
Natal a capital da Paraba OR Fortaleza a capital do Cear (VERDADEIRO)
Recife no a capital da Paraba AND Fortaleza no a capital do Cear (FALSO)
10 < 2 OR 2 + 2 = 4 (VERDADEIRO)
10 > 2 OR 2 + 2 = 4 (VERDADEIRO)
(30 <= 2) AND (Fortaleza est na Paraba) AND (crculos no so redondos) = FALSO

Expresso 1

Expresso 2

Resposta

Professor EmannuelDiego IFCE Campus Cedro

Lgica booleana
Operadores booleanos: permitem realizar a anlise expresses compostas
NOT (negao): A resposta deste operador ser verdadeira quando a expresso for falsa; da
mesma forma, sua resposta ser falsa quando a expresso for verdadeira
NOT(Natal a capital da Paraba) = verdadeiro
NOT(Natal no a capital da Paraba) = falso
NOT (Natal no a capital da Paraba AND Fortaleza capital do Cear) = falso

Expresso

Resposta

Professor EmannuelDiego IFCE Campus Cedro

Fim de papo

Professor EmannuelDiego IFCE Campus Cedro

Vous aimerez peut-être aussi