You are on page 1of 78

LGICA DE PROGRAMAO PARA ENGENHARIA INTRODUO LGICA DE PROGRAMAO PARTE I

Prof. Dr. Daniel Caetano 2013 - 2

Objetivos
Compreender do que composto um programa Compreender o que lgica Compreender o que so algoritmos Conhecer as formas de representar algoritmos Lista Aula 3!

Material de Estudo

Material Notas de Aula Apresentao Material Didtico

Acesso ao Material http://www.caetano.eng.br/ (Lgica de Programao - Aula 3) http://www.caetano.eng.br/ (Lgica de Programao - Aula 3) Lgica de Programao Fundamentos da Programao de Computadores, pginas 1 a 7.

A RESOLUO DE PROBLEMAS E OS ALGORITMOS

O que so Algoritmos
Toda tarefa complexa pode ser subdividida
Tarefas menores e mais simples

Exemplo: fabricar vinho para venda


Plantar a uva Colher a uva Amassar a uva Deixar fermentar Engarrafar Distribuir para a venda

O que so Algoritmos
O procedimento para realizar uma tarefa complexa chama-se algoritmo
Um algoritmo envolve:
Tarefas/Processos Decises

O que so Algoritmos
H algoritmos em nosso dia a dia:
Listas de Compras Receitas Caminhos do Google Maps...

O que so Algoritmos
Engenheiros se interessam por um tipo especial de algoritmos: Procedimentos de Clculo!
Nesse caso, o computador til!

Algoritmos x Programas
No computador, os algoritmos recebem o nome de programas

DE QUE COMPOSTO UM PROGRAMA?

Programas de Computador
Programa: algoritmo para o computador
Tarefas: Clculos Decises: Decises Lgicas

Clculos?
Somas, subtraes, multiplicaes...

Decises lgicas?
Ordem com que os clculos devem ser feitos Se e quando os clculos devem ser feitos Objetivo: resolver problema maior

O QUE UMA DECISO LGICA?

O que Lgica?
Lgica a cincia das leis do raciocnio
Encadear raciocnio: concluir a partir de premissas

Usamos lgica no dia a dia Andar de nibus


Preo da passagem: R$ 3,50, logo...
No adianta ter R$3,49 !

Aprovao no curso
Mdia 6,0 e Frequncia 75%, logo...
No adianta tirar 10,0 se tiver frequncia 50% !

Formalizando a Lgica
Analisemos algumas afirmaes:
O funcionrio falta pouco. O aluno falta muito. O cliente idoso.

O que comum nessas afirmaes?!

Formalizando a Lgica
Analisemos algumas afirmaes:
O funcionrio falta pouco. O aluno falta muito. O cliente idoso.

O que comum nessas afirmaes?!

Cada uma delas pode ser avaliada como falsa ou verdadeira

Formalizando a Lgica
Analisemos algumas afirmaes:
O funcionrio falta pouco. O aluno falta muito. O cliente idoso.

Mas... essa avaliao fcil?


Um funcionrio que falte 3 vezes por ano... Ele falta muito ou pouco?

Difcil avaliar!

Formalizando a Lgica
Afirmaes subjetivas so difceis de avaliar!
O funcionrio falta pouco.

Como tornar essa expresso objetiva? Definir um critrio claro!


O que define se o funcionrio falta pouco?

Qual o nmero faltas em um ano?


Nmero de faltas em um ano igual a zero?

Formalizando a Lgica
Ento podemos traduzir essa afirmao:
O funcionrio falta pouco.

Em algo como
O nmero de faltas zero.

Observe como a avaliao objetiva! Os matemticos chamam isso de...

proposio

Proposies
Regras podem ser descritas por proposies Como definir se algo uma proposio?

1. Uma proposio deve ser verdadeira ou falsa 2. Uma proposio no pode ser verdadeira e falsa, simultaneamente

Proposies
Regras podem ser descritas por proposies Como definir se algo uma proposio?

1. Uma proposio deve ser verdadeira ou falsa 2. Uma proposio no pode ser verdadeira e falsa, simultaneamente

O Corinthians melhor que o Palmeiras.

Proposies
A: 2 + 3 = 5
Proposio verdadeira!

B: 2+2 > 5
Proposio falsa!

Exerccio: 6 > 8 falso (1+3) < 2 falso 2 < (1.5*2) verdadeiro

Decises Lgica
Proposies podem orientar decises:
Se o funcionrio falta pouco, ter aumento

Formalmente, pode-se escrever:


Se (no de faltas = zero) NovoSalrio = Salrio x 1,2

Observe como a interpretao objetiva! (no de faltas = zero): regra da deciso


Usaremos proposies como regras de deciso

MAIS UM POUCO SOBRE PROPOSIES

Proposies
Proposies vistas: proposies simples
Existe apenas uma comparao:

no de faltas = zero
Uma comparao sempre suficiente? Aprovao no curso
Mdia 6,0 e Frequncia 75%
No adianta tirar 10,0 se tiver frequncia 50% !

Proposies Compostas
A regra completa seria:
Se (M 6,0 e F 75%) aluno aprovado

H duas regras aplicadas ao mesmo tempo:


A: M 6,0 B: F 75%

Proposio de aprovao:
C: A E B

C ser verdadeira apenas se A e B forem verdadeiras simultaneamente!

Proposies Compostas
A palavra e importante?
Se (M 6,0 e F 75%) aluno aprovado igual ou diferente a dizer... Se (M 6,0 ou F 75%) aluno aprovado ?????

DIFERENTE!

Operaes Lgicas
Proposies podem ser modificadas e compostas com os operadores lgicos
C: A E B
A proposio resultante C s ser verdadeira se A e B forem, simultaneamente, verdadeiras

C: A OU B
A proposio resultante C ser verdadeira se A ou B forem verdadeira (uma das duas basta)

C: NO A
A proposio resultante C ser verdadeira quando A for falsa (e vice-versa).

Qual o Resultado das Operaes?


Tabela Verdade
p
Falsa

Operao
OU

q
Falsa

Resultado

Qual o Resultado das Operaes?


Tabela Verdade
p
Falsa Falsa

Operao
OU OU

q
Falsa Verdadeira

Resultado
Falsa

Qual o Resultado das Operaes?


Tabela Verdade
p
Falsa Falsa Verdadeira

Operao
OU OU OU

q
Falsa Verdadeira Falsa

Resultado
Falsa Verdadeira

Qual o Resultado das Operaes?


Tabela Verdade
p
Falsa Falsa Verdadeira Verdadeira

Operao
OU OU OU OU

q
Falsa Verdadeira Falsa Verdadeira

Resultado
Falsa Verdadeira Verdadeira

Qual o Resultado das Operaes?


Tabela Verdade
p
Falsa Falsa Verdadeira Verdadeira Falsa

Operao
OU OU OU OU E

q
Falsa Verdadeira Falsa Verdadeira Falsa

Resultado
Falsa Verdadeira Verdadeira Verdadeira

Qual o Resultado das Operaes?


Tabela Verdade
p
Falsa Falsa Verdadeira Verdadeira Falsa Falsa

Operao
OU OU OU OU E E

q
Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira

Resultado
Falsa Verdadeira Verdadeira Verdadeira Falsa

Qual o Resultado das Operaes?


Tabela Verdade
p
Falsa Falsa Verdadeira Verdadeira Falsa Falsa Verdadeira

Operao
OU OU OU OU E E E

q
Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira Falsa

Resultado
Falsa Verdadeira Verdadeira Verdadeira Falsa Falsa

Qual o Resultado das Operaes?


Tabela Verdade
p
Falsa Falsa Verdadeira Verdadeira Falsa Falsa Verdadeira Verdadeira

Operao
OU OU OU OU E E E E

q
Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira

Resultado
Falsa Verdadeira Verdadeira Verdadeira Falsa Falsa Falsa

Qual o Resultado das Operaes?


Tabela Verdade
p
Falsa Falsa Verdadeira Verdadeira Falsa Falsa Verdadeira Verdadeira -

Operao
OU OU OU OU E E E E NO

q
Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira Falsa

Resultado
Falsa Verdadeira Verdadeira Verdadeira Falsa Falsa Falsa Verdadeira

Qual o Resultado das Operaes?


Tabela Verdade
p
Falsa Falsa Verdadeira Verdadeira Falsa Falsa Verdadeira Verdadeira -

Operao
OU OU OU OU E E E E NO NO

q
Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira

Resultado
Falsa Verdadeira Verdadeira Verdadeira Falsa Falsa Falsa Verdadeira Verdadeira

Qual o Resultado das Operaes?


Tabela Verdade
p
Falsa Falsa Verdadeira Verdadeira Falsa Falsa Verdadeira Verdadeira -

Operao
OU OU OU OU E E E E NO NO

q
Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira Falsa Verdadeira

Resultado
Falsa Verdadeira Verdadeira Verdadeira Falsa Falsa Falsa Verdadeira Verdadeira Falsa

Como Usar em Programao?


Tomar decises
Se (mdia 6.0 E frequencia 0.75) ento
Escreva aluno aprovado!

Se no
Escreva aluno reprovado!

Ser visto em detalhe posteriormente... Por enquanto, vamos exercitar!

Exerccio
Analisemos as proposies abaixo
7>5 3<2 2<3E3<2 2 < 3 E 2+3 < 3+4 7 > 18 OU 2*6 < 17 8 > 6 OU 7 < 12 E 5 > 9 (8 > 6 OU 7 < 12) E 5 > 9 NO (9 < 5 OU 11 < 16) NO 9 < 5 OU 11 < 16

Exerccio
Analisemos as proposies abaixo
7 > 5 verdadeiro 3 < 2 falso 2 < 3 E 3 < 2 falso 2 < 3 E 2+3 < 3+4 verdadeiro 7 > 18 OU 2*6 < 17 verdadeiro 8 > 6 OU 7 < 12 E 5 > 9 verdadeiro (8 > 6 OU 7 < 12) E 5 > 9 falso NO (9 < 5 OU 11 < 16) falso NO 9 < 5 OU 11 < 16 verdadeiro

RESOLVENDO PROBLEMAS: PROGRAMAO E ALGORITMOS

O que programar?
Como vimos, programar configurar o computador para executar um algoritmo!

Primeiro desenvolvemos um algoritmo... E depois programamos o algoritmo!

Desenvolvendo um Algoritmo
Como criar um algoritmo? Descobrir como resolvemos um problema Como fazer caf (de coador)?

Desenvolvendo um Algoritmo
Como criar um algoritmo? Descobrir como resolvemos um problema Como calcular a mdia de dois nmeros? (matemtica)

Desenvolvendo um Algoritmo
Geralmente, um algoritmo precisa:
1) Obter informaes (dados de entrada) 2) Executar uma sequncia de clculos 3) Fornecer um resultado

Qual a idade mdia dos alunos do sexo masculino da primeira carteira?

Desenvolvendo um Algoritmo
Geralmente, um algoritmo precisa:
1) Obter informaes (dados de entrada) 2) Executar uma sequncia de clculos 3) Fornecer um resultado

Qual a idade mdia dos alunos do sexo masculino da primeira carteira?

Como representar?

REPRESENTAO DE ALGORITMOS

Tipos de Representao
Linguagem Natural Fluxograma Diagrama de Chapin Portugus Estruturado (prxima aula) Linguagem de Programao (prximas aulas)

Linguagem Natural
Uso da forma narrativa Mais simples para os humanos Inadequada para os computadores Por qu? O sapo ouviu um rudo da porta H ambiguidade!
impossvel dizer o que essa frase significa!

Fluxograma
#!@!

#!@#!
#!@!

Fluxograma
Forma grfica tradicional
Incio e fim de algoritmo

Processo (trabalho do computador) Entrada de dados (leitura)


Sada de dados (impresso) Tomada de deciso Sentido do fluxo de dados

Fluxograma
Forma grfica tradicional
Incio e fim de algoritmo

Processo (trabalho do computador) Entrada de dados (leitura)


Sada de dados (impresso) Tomada de deciso Sentido do fluxo de dados

Fluxograma Multiplica 2 Nmeros


1. Receba dois nmeros 2. Multiplique os dois nmeros 3. Mostre o resultado da multiplicao
Incio

Fluxograma Multiplica 2 Nmeros


1. Receba dois nmeros 2. Multiplique os dois nmeros 3. Mostre o resultado da multiplicao
Incio N1, N2

Fluxograma Multiplica 2 Nmeros


1. Receba dois nmeros 2. Multiplique os dois nmeros 3. Mostre o resultado da multiplicao
Incio N1, N2

M = N1 * N2

Fluxograma Multiplica 2 Nmeros


1. Receba dois nmeros 2. Multiplique os dois nmeros 3. Mostre o resultado da multiplicao
Incio N1, N2

M = N1 * N2 M

Fluxograma Multiplica 2 Nmeros


1. Receba dois nmeros 2. Multiplique os dois nmeros 3. Mostre o resultado da multiplicao
Incio N1, N2

M = N1 * N2 M

Fim

Fluxograma Multiplica 2 Nmeros


1. Receba dois NUNCA vamos colocar nmeros nmeros dentro da 2. entrada Multiplique os dois de dados! nmeros 3. Mostre o resultado da multiplicao
Incio N1, N2

M = N1 * N2 M

Fim

Fluxograma Multiplica 2 Nmeros


1. Receba dois que no Os valores NUNCA vamos colocar nmeros conhecemos (e que nmeros dentro da 2. entrada Multiplique os dois representamos de dados! nmeros pelos nomes N1, 3. Mostre o resultado N2 e M), so da multiplicao
Incio N1, N2

M = N1 * N2 M

denominados variveis

Fim

Fluxograma Aluno Passou?


Incio

1. Receba a nota N 2. Se a nota N for maior ou igual a 6,0 imprima que aluno passou 3. Caso contrrio, imprima que aluno no passou

Fluxograma Aluno Passou?


Incio

1. Receba a nota N 2. Se a nota N for maior ou igual a 6,0 imprima que aluno passou 3. Caso contrrio, imprima que aluno no passou

Fluxograma Aluno Passou?


Incio

1. Receba a nota N 2. Se a nota N for maior ou igual a 6,0 imprima que aluno passou 3. Caso contrrio, imprima que aluno no passou

N6,0

VERDADEIRO

Fluxograma Aluno Passou?


Incio

1. Receba a nota N 2. Se a nota N for maior ou igual a 6,0 imprima que aluno passou 3. Caso contrrio, imprima que aluno no passou

N6,0

VERDADEIRO

Passou

Fluxograma Aluno Passou?


Incio

1. Receba a nota N 2. Se a nota N for maior ou igual a 6,0 imprima que aluno passou 3. Caso contrrio, imprima que aluno no passou

FALSO

N6,0

VERDADEIRO

Reprovou

Passou

Fluxograma Aluno Passou?


Incio

1. Receba a nota N 2. Se a nota N for maior ou igual a 6,0 imprima que aluno passou 3. Caso contrrio, imprima que aluno no passou

FALSO

N6,0

VERDADEIRO

Reprovou

Passou

Fim

Diagrama de Chapin
Forma grfica alternativa (pouco usada)

EXERCCIO

Exerccios
Faa um algoritmo que calcule a mdia de trs nmeros

Exerccios
Faa um algoritmo que calcule a mdia de trs nmeros
Incio A, B, C M = (A + B + C ) / 3

A mdia :, M

Fim

Exerccios
Faa um programa que calcule a velocidade mdia de um veculo a partir da distncia em km (D) e o tempo de percurso em horas (T). Caso a velocidade mdia supere 120km/h, o programa deve imprimir Multa.
Incio
D, T

V=D/T

V>120

F
Fim Multa

Exerccios
Faa um programa que calcule a velocidade mdia de um veculo a partir da distncia em km (D) e o tempo de percurso em horas (T). Caso a velocidade mdia supere 120km/h, o programa deve imprimir Multa.
Incio D, T

V=D/T

V>120

F
Fim Multa

Exerccios
Descreva os passos para imprimir se o aluno foi aprovado apenas considerando a AV1 e AV2 na Estcio-Radial.

V AV14,0 E AV24,0 F V F

Exerccios
Descreva os passos para imprimir se o aluno foi aprovado (apenas considerando a AV1 e AV2) na Estcio-Radial.
Incio AV1, AV2 M = (AV1 + AV2) / 2

AV14,0 E AV24,0 F

M6,0 F

Passou
Fim

Exerccios Para Pensar


Voc est na calada e vai atravessar uma rua movimentada que no possui semforo de pedestres. Descreva o procedimento que descreve suas atitudes, em linguagem natural e em fluxograma.

CONCLUSES

Resumo
Lgica fundamental para a programao Programar implementar um algoritmo H diversas formas de representar algoritmos No podemos usar representaes ambguas TAREFA: Lista Aula 3!

Representao de Algoritmos
Portugus Estruturado

PERGUNTAS?

You might also like