SlideShare uma empresa Scribd logo
Introdução à Lógica de
Programação
www.devtrainer.com.br
Andre R. Agostinho Lazaro F. Lima
Índice {
Lógica
O que é lógica?
A lógica no cotidiano
Princípios da lógica clássica
Tipos de lógicas
Linguagem de Programação
Um breve história
Como funciona uma Lprog
Tipos de Lprog
Programação funcional
Programação estruturada
Introdução
Variáveis e tipos de dados
Operadores
Estruturas de decisões
Estruturas de repetições
Programação orientada à objetos
Introdução
Criando e utilizando objetos
Técnicas de OO
Herança
Polimorfismo
Sobrecarga
Encapsulamento
Interfaces
Lógica de Programação
O que é lógica de programação?
Conceito de E/S e Processamento
Operadores Lógicos
Algoritmos
O que é algoritmo?
Características
Métodos para criação
Exercícios
Fluxograma
O que é um fluxograma?
Simbologia
Exemplo de diagrama
Exercícios
Desafio de lógica
Exercícios
Desafio de lógica
Exercícios
Desafio de lógica
Lógica
O que é Lógica?
Do grego “logos”. Significa ideia, argumento,
pensamento...
Lógica é uma ciência matemática fortemente
ligada a Filosofia.
Sendo o pensamento uma manifestação de
conhecimento,considerando que o conhecimento
busca a verdade através de regras
Lógica faz uso das conclusões levantadas através
de proposições.
Lógica
Proposição:
Toda proposição é uma frase mas nem toda frase é uma proposição;
Uma frase é uma proposição apenas quando admite um dos dois valores
lógicos: Falso (F)ou Verdadeiro (V).
Exemplos de não proposições
Quer uma xícara de café?
Eu não estou bem certo se esta cor me agrada
Exemplo de proposições
O número 7 é impar (V)
Curitiba é capital de Santa Catarina (F)
O que é Lógica?
Lógica
Sempre que pensamos, o raciocínio e a lógica
nos acompanham necessariamente.
Também quando falamos, pois a palavra falada é
a representação do pensamento; e, visto que a
palavra escrita é a representação da palavra
falada, também pensamos quando escrevemos,
utilizando a Lógica
Percebemos a importância da Lógica na nossa vida não
só na teoria, como também na prática, já que quando
queremos pensar, falar ou escrever corretamente
precisamos colocar em Ordem o Pensamento, isto é,
utilizar a Lógica.
A lógica no cotidiano
Lógica
Exemplos:
a) A gaveta está fechada.
A bala está na gaveta.
Preciso primeiro abrir a gaveta, para depois pegar a bala.
b) João é mais velho que José.
Marcelo é mais novo que José.
Portanto, João é mais velho que Marcelo.
A lógica no cotidiano
Lógica
O sistema lógico desenvolvido por Aristóteles foi o
Primeiro estudo formal do raciocínio.
Aristóteles definiu os seguintes princípios centrais da
lógica:
– Princípio da não-contradição
– Princípio do terceiro excluído
– Princípio de identidade
Esses princípios deram origem a Lógica Clássica ou Lógica
Aristotélica.
A Lógica Clássica é a base para todos os outros tipos de
lógica.
Princípios da lógica clássica
Lógica
O princípio da não-contradição diz
que nenhuma afirmação pode ser
verdadeira e falsa ao mesmo tempo.
Ex: Carlos é programador
Esta afirmação não pode ser verdade e
falsa ao mesmo tempo.
Princípios da lógica clássica
Lógica
Programador
Não Programador
O princípio do terceiro excluído diz
que uma proposição só pode ser
verdadeira se não for falsa e só pode
ser falsa se não for verdadeira, porque
o terceiro valor é excluído.
Ex: Carlos é programador ou não é
programador
Ou Carlos é programador ou não é.
Não existe uma terceira possibilidade.
Princípios da lógica clássica
Lógica
O princípio da identidade diz que todo objeto
é idêntico a si.
Seja, a = a e b = b, 'a' sempre será igual 'a',
mesmo se afirmarmos que a = b ainda
podemos afirmar que a = a e
b = b.
Ex: Carlos é pai de família e um grande
programador.
Apesar das atribuições, Carlos continua sendo
“Carlos”, independente de qualquer atribuição
continuará sendo unicamente ele mesmo.
Princípios da lógica clássica
Lógica
=
Lógica
Clássica (Aristotélica) Anti-Clássica
Formal Outras Fuzzy Outras
Tipos de lógica
Lógica
Lógica Clássica segue os princípios de Aristóteles:
• Princípio da não-contradição
• Princípio do terceiro excluído
• Princípio de identidade
Tipos de lógica
Lógica
A Lógica Formal, também chamada de Lógica Simbólica,
preocupa-se, basicamente, com a estrutura do raciocínio.
Na Lógica Formal os conceitos são rigorosamente definidos, e as orações são
transformadas em notações simbólicas precisas, compactas e não ambíguas.
Exemplo
p: 1 + 2 = 3
A proposição acima é verdadeira
Tipos de lógica
Lógica
Outros tipos de lógicas clássicas:
• Lógica modal: Agrega à lógica clássica o princípio das possibilidades.
Clássica: "se amanhã chover, vou viajar
Modal: "é possível que eu viaje se não chover”
• Lógica epistêmica: também chamada "lógica do conhecimento", agrega o
princípio da certeza, ou da incerteza.
"pode ser que haja vida em outros planetas”
"não se pode saber se duendes existem ou não”
Tipos de lógica
Lógica
Lógicas anti-clássicas:
São formas de lógica que derrubam pelo menos um dos três
princípios fundamentais da lógica clássica.
Tipos de lógica
Lógica
Princípio da não-contradição
Princípio do terceiro excluído
Princípio de identidade
Lógica paraconsistente: É uma forma de lógica onde não existe
o princípio da contradição. Nesse tipo de lógica, tanto as
sentenças afirmativas quanto as negativas podem ser falsas ou
verdadeiras
Um exemplo: "fulano é cego, mas vê".
Ele pode ser cego para ver algumas coisas, e não-cego para ver
outras coisas.
Tipos de lógica
Lógica
Lógica paracompleta:
Derruba o princípio do terceiro excluído, isto é, uma oração
pode não ser totalmente verdadeira, nem totalmente falsa.
Exemplo:
"fulano conhece a China".
Se ele nunca esteve lá, essa oração não é verdadeira.
Mas se mesmo nunca tendo estado lá ele estudou a história da
China por livros, essa oração também não é falsa.
Tipos de lógica
Lógica
Lógica fuzzy ou Lógica Difusa ou Lógica Nebulosa:
Trabalha com o conceito de graus de pertinência.
Clássica: "se algo é quente, não é frio"
Fuzzy: "algo é 30% quente, 25% morno e 45% frio".
Tipos de lógica
Lógica
Exercícios
Lógica
1) Dê continuidade a sequência abaixo:
1, 8, 13, 20, 25, 32, 37....
2) Qual foi o padrão identificado para esta sequência? Explique.
3) Classifique as proposições abaixo quanto ao tipo de lógica:
1- Lógica Difusa 2- Lógica Clássica 3- Lógica paraconsciente 4- Paracompleta 5- Modal
( ) “Brasil é pentacampeão mundial de futebol”
( ) “Se chover amanhã, eu irei ao parque”
( ) “Meu amigo conhece a Alemanha”
( ) ”Marcelo não tem dinheiro, mas comprou um carro”
( ) “João tem 30% de chance de vencer , 40% de perder e o restante de empatar”
4) Assinale Verdadeiro ou Falso as alternativas abaixo:
( ) A principal lei da lógica clássica é a lei da autoafirmação, que reforça a verdade sobre a
preposição
( ) Na lógica difusa é utilizado as leis da lógica clássica mais as leis da lógica anticlássica
( ) A lei do terceiro excluído diz que a terceira opção é inexistente em uma preposição, ou seja,
trabalha somente com valores boleanos
( ) Lógica esta ligada diretamente com matemática e filosofia
5) Se colhermos os valores preenchidos (V/F) acima, qual será o resultado final do seu teste
utilizando os conceitos da lógica clássica e utilizando os conceitos da lógica difusa? Explique.
Desafio
Lógica
Em um acampamento militar, o sargento ordenou ao soldado que ele fosse ao poço pegar
exatamente quatro litros de água. O sargento entregou ao soldado um balde com a
capacidade para cinco litros e outro com capacidade para três litros. O que o soldado deve
fazer para entregar ao sargento os exatos quatro litros de água exigidos?
Lógica de
Programação
Lógica especializada na área computacional com o objetivo de
desenvolver sistemas.
Lógica de programação utiliza em boa parte os princípios da
lógica clássica e alguns casos lógica anti-clássica (fuzzy).
Em desenvolvimento de sistemas computacionais a lógica de
programação é empregada a todo momento, desde um
simples programa com saida em video à complexo ERP ou
CRM.
Na lógica de programação é muito comum utilizarmos
proposições com conjunções, ou seja operadores lógicos
binários.
O que é lógica de programação?
Lógica de Programação
Em lógica de programação os conceitos de entrada e saida (Input/Ouput)
junto com o processamento são indispensáveis.
Um depende do outro para se obter um resultado.
Vejamos algumas analogias
Conceito de E/S e Processamento
Lógica de Programação
Entrada Processamento Saída
Percepção das
impressões sensoriais
Processo de pensamento
Utilizamos a nossa memória
Para executar inúmeros
processos como controlar,
comparar,combinar, deduzir....
Resultado
Conceito de E/S e Processamento
Lógica de Programação
Entrada Processamento Saída
Conceito de E/S e Processamento
Lógica de Programação
SO
Framework .NET
Compilador C#
Entrada Processamento Saída
Conceito de E/S e Processamento
Lógica de Programação
Entrada Processamento Saída
A = 5
B = 9
A > B FALSO
Conceito de E/S e Processamento
Lógica de Programação
Operadores lógicos podem ser facilmente representados por uma tabela verdade.
Tabela verdade é uma tabela matemática usada em lógica para determinar se uma ou
mais proposições são validas ou não.
Exemplo de tabela verdade:
A B A^B
V V V
V F F
F V F
F F F
Operadores Lógicos
Lógica de Programação
Os operadores lógicos mais comuns são:
• Negação
• Conjunção (E)
• Disjunção (OU)
E temos os operadores lógicos criados a partir dos citados acima:
• Condicional (Se... Então) [Implicação]
• Bicondicional (Se e somente se) [Equivalência]
• Disjunção Exclusiva (XOR)
Operadores Lógicos
Lógica de Programação
Negação
A ~A
V F
F V
Exemplo em linguagem C#:
bool a = true;
bool b = !a;
Console.WriteLine(b.ToString());
A negação da proposição a é a proposição ~a, de maneira que se a é verdade então
~a é falso, e vice-versa
Operadores Lógicos
Lógica de Programação
Conjunção (E)
A B A^B
V V V
V F F
F V F
F F F
Exemplo em linguagem C#:
bool a = true;
bool b = false;
bool c = a&&b;
Console.WriteLine(c.ToString());
Verdade = somente se os dois operandos forem verdadeiros
Operadores Lógicos
Lógica de Programação
Disjunção (OU)
A B AvB
V V V
V F V
F V V
F F F
Exemplo em linguagem C#:
bool a = true;
bool b = false;
bool c = a||b;
Console.WriteLine(c.ToString());
Falso = somente se ambos os operandos forem falsos
Operadores Lógicos
Lógica de Programação
Condicional (Se... Então) [Implicação]
A B A→B
V V V
V F F
F V V
F F V
Exemplo em linguagem C#:
bool a = true;
bool b = false;
bool c;
if (a && !b) {
c = false;
} else {
c = true;
}
Console.WriteLine(c.ToString());
Falso = Se o primeiro operando for verdade e o segundo operador for falso
Operadores Lógicos
Lógica de Programação
Bicondicional (Se e somente se) [Equivalência]
Exemplo em linguagem C#:
bool a = true;
bool b = false;
bool c;
if ((a&& b ) ||(!b&&!a)){
c = false;
} else {
c = true;
}
Console.WriteLine(c.ToString());
A B A↔B
V V V
V F F
F V F
F F V
Verdade = Ambos operandos forem falsos ou ambos verdadeiros
Operadores Lógicos
Lógica de Programação
Disjunção Exclusiva (Ou... ou XOR)
A B A∨B
V V F
V F V
F V V
F F F
Exemplo em linguagem C#:
Verdade = Apenas um dos operandos for verdadeiro
bool a = false;
bool b = true;
bool c;
if (a^b) {
c = true;
} else {
c = false;
}
Console.WriteLine(c.ToString());
Operadores Lógicos
Lógica de Programação
“Seqüência de passos que visam atingir um objetivo bem definido.”
Construir algoritmos é o objetivo fundamental de
toda a programação
Pegue 4 ovos
Pegue 2 xícaras de açúcar
Pegue 3 xícaras de farinha de trigo
1 copo de suco de laranja ( 250ml)
1 colher de sopa de fermento em pó
Para a cobertura:
1 garrafa pequena de leite de coco
1 garrafa de leite ( utilize a mesma
garrafa do leite de coco como
medida)
(...)
O que é um algoritmo?
Lógica de Programação
Um algoritmo geralmente estabelece um padrão de comportamento a ser seguido, uma
norma de execução a ser trilhada, com o objetivo de alcançar a solução de um
problema.
Exemplo de padrão de comportamento
Seqüência de números: 1, 6, 11, 16, 21, 26....
Para determinar o sétimo elemento da série, precisamos descobrir qual a sua regra de
formatação.
Se analisarmos, os números crescem de 5 em 5 constantemente, podemos definir então
que o sétimo elemento é o último elemento + 5.
Isto é o seu padrão de comportamento.
O que é um algoritmo?
Lógica de Programação
Podemos, então, descrever uma atividade bem cotidiana, como,
por exemplo, trocar uma lâmpada.
Apesar de aparentemente óbvias demais, muitas vezes fazemos
esse tipo de atividade sem percebermos seus pequenos detalhes.
Vejamos se ela fosse descrita passo a passo:
• Pegue a escada;
• Posicione-a embaixo da lâmpada;
• Busque uma lâmpada nova;
• Suba na escada;
• Retire a lâmpada velha;
• Coloque a lâmpada nova.
O que é um algoritmo?
Lógica de Programação
Todo algoritmo deve apresentar algumas características
básicas:
• Ter início e fim;
• Estar livre de ambigüidade
• Capacidade de receber dado(s) de entrada (Input)
• Poder gerar informações de saída (Output);
• Ser efetivo (todas as etapas especificadas no algoritmo
devem ser alcançáveis em um tempo finito).
Algoritmo: Características
Lógica de Programação
Interpretar a questão e procurar entender o que realmente deve ser feito. É
justamente nesta fase que podemos enxergar uma solução ao problema sem
antes ter todos os passos definidos.
Identificar entrada e saída de dados. Por exemplo, “Comprar uma lâmpada
nova” é uma entrada de dados, “Colocar a lâmpada nova no bocal” é uma
saida esperada.
Determinar o que deve ser feito (passos) para transformar as entradas
determinadas nas saídas específicas. Sabemos por exemplo que precisamos
colocar a lâmpada nova no bocal, porem o que precisa ser feito para isso?
Algoritmo: métodos para criação
Lógica de Programação
Imagine o seguinte problema: Calcular a média final dos alunos da 8ª Série.
Os alunos realizarão quatro provas: P1, P2, P3 e P4.
Onde:
Média Final = P1 + P2 + P3 + P4
4
Para montar o algoritmo proposto, faremos três perguntas:
a) Quais são os dados de entrada?
b) Qual será o processamento a ser utilizado?
c) Quais serão os dados de saída?
Algoritmo: estudo de caso
Lógica de Programação
a) Quais são os dados de entrada?
R: Os dados de entrada são P1, P2, P3 e P4
b) Qual será o processamento a ser utilizado?
R: O procedimento será somar todos os dados de entrada e dividi-los por 4
c) Quais serão os dados de saída?
R: O dado de saída será a média final
Algoritmo
Receba a nota da prova1
Receba a nota de prova2
Receba a nota de prova3
Receba a nota da prova4
Some todas as notas e divida o resultado por 4
Mostre o resultado da divisão
Algoritmo: estudo de caso
Lógica de Programação
Podemos definir um fluxograma como uma forma de representar graficamente um
algoritmo.
Fluxogramas tem o intuito de facilitar visualmente a compreensão,
além de uma organização mais ampla que a textual
Pegue 4 ovos
Pegue 2 xícaras de açúcar
Pegue 3 xícaras de farinha de trigo
1 copo de suco de laranja ( 250ml)
1 colher de sopa de fermento em pó
Para a cobertura:
1 garrafa pequena de leite de coco
1 garrafa de leite ( utilize a mesma
garrafa do leite de coco como
medida)
(...)
Passo 1
Inicio
Passo 2
Passo 3
Fim
O que é um fluxograma?
Lógica de Programação
Símbolo Descrição Função
Terminal Símbolo que indica o inicio ou o fim de um
processamento. Ex: inicio do algoritmo
Processamento Símbolo de processamento em geral.
Ex: cálculo de dois números
Entrada de dado
manual
Símbolo que indica a entrada de dados através do
teclado. Ex: digitar a nota da prova 1
Exibir Símbolo que mostra informações ou exibe resultados.
Ex: mostre o resultado do cálculo
Conectar Símbolo utilizado para conectar duas partes do digrama
de bloco.
Comparar Símbolo utilizado para comparação entre expressões.
Ex: código <= 1000 (sim/não)
Fluxograma: Simbologia
Lógica de Programação
Recebe nota p1
Inicio
Recebe nota p2
Fim
Recebe nota p3
Recebe nota p4
Calcular média
M = (p1+p2+p3+p4)/4
Exibir na tela
Fluxograma: exemplo
Lógica de Programação
Exercícios
Lógica de Programação
1) Faça um algoritmo para enviar um e-mail com anexo (via webmail) para um destinatário qualquer.
2) Usando a simbologia de fluxograma, represente graficamente o seu algoritmo acima.
3) Preencha as saídas nas tabelas verdades abaixo:
A B A^B (e)
V V
V F
F V
F F
A ~A
V
F
A B AvB(ou)
V V
V F
F V
F F
a) b)
c)
Desafio
Um homem precisa atravessar um rio com um barco que possui capacidade de carregar
apenas ele mesmo e mais uma das três cargas que são: um lobo, um bode e um maço de
alfafas. Observe as leis naturais: o lobo é carnívoro e o bode é herbívoro. O que o homem
deve fazer para conseguir atravessar o rio sem perder suas cargas.
Lógica de Programação
Linguagem de
Programação
O primeiro projeto de linguagem de programação
surgiu para um computador que não existia,
sendo idealizada por Ada Lovelace em 1842.
Ada Lovelace criou um algoritmo para o cálculo da
sequência de Bernoulli usando a máquina
analítica de Charles Babbage
Da década de 70, o departamento de
Defesa americano criou a linguagem
ADA em homenagem a esta
primeira programadora.
Uma breve história
Linguagem de programação
Assembly (anos 50)
O Assembly foi provavelmente a primeira linguagem de programação da história, surgida na década de 50,
época em que os computadores ainda usavam válvulas. A idéia do assembly é usar um comando em
substituição a cada instrução de máquina (códigos binários.)
Fortran (anos 50)
O Fortran foi uma das primeiras linguagens de alto nível da história. Enquanto o Assembly é chamado de
linguagem de baixo nível, por nele utilizarmos diretamente as instruções e endereços do processador e
memória, numa linguagem de alto nível temos várias funções prontas, o que facilita muito a programação.
Cobol (anos 50)
Esta linguagem foi desenvolvida no final da década de 50, com o objetivo de ser uma plataforma de
desenvolvimento para aplicações bancárias e financeiras em geral. Comparado com o Pascal e o Assembly,
comuns na época, o Cobol é uma linguagem bastante amigável, o que garantiu uma grande aceitação. Até
hoje esta linguagem é usada em muitos sistemas bancários, o que explica a grande procura por
programadores experientes nesta linguagem na época do bug do ano 2000.
Pascal (anos 60)
Linguagem de alto nível, criada durante a década de 60.
C (anos 70)
O C foi desenvolvido durante a década de 70, mas ainda é largamente utilizado. A grande vantagem do C é
permitir escrever tanto programas extremamente otimizados para a máquina, como seria possível apenas
em assembly, e ao mesmo tempo vir com várias funções prontas, como uma linguagem de alto nível.
Uma breve história
Linguagem de programação
C++ (anos 70-80)
O C++ mantém os recursos do C original, mas traz muitos recursos novos, como recursos orientados a
objetos.
Visual Basic (anos 80-90)
Linguagem visual
Linguagens atuais (anos 90-atual)
Vbscript, Javascript, PHP, Pearl, CGI, Java, C#....
Uma breve história
Linguagem de programação
HARDWARE
SO
Compilador
Linguagem de
Programação X
Compilador de Linguagem
de Programação X
Programa feito em
Linguagem de
Programação X
101010101010101001010
1011010101011010 0 01
10 110101 0101 10 01 10
Funcionamento de um LProg
Linguagem de programação
Programação Funcional
Programação Estruturada
Programação Orientada à Objetos
Tipos de LProg
Linguagem de programação
Caracteriza-se principalmente por permitir declarar e chamar a funções dentro de
outras funções.
Programação funcional é uma linguagem matemática. Sua linguagem não é
intuitiva para escrita, porém tem um grande poder computacional para cálculo.
Exemplo de linguagem:
Haskell
Programação funcional
Linguagem de programação
Modo clássico de linguagem onde estruturas de codigos são criadas de forma hierárquicas ou sequenciais.
Exemplos de linguagens: C, Cobol, Pascal...
Características:
- Top-dow: se descompõe em etapas ou estruturas hierárquicas.
Existem três tipos de estruturas básicas:
-Seqüenciais: cada ação segue a outra ação seqüencialmente. A saída de uma ação é a entrada de outra.
- Seletivas: nestas estruturas avaliam-se as condições e em função do resultado das mesmas realizam-se
umas ações ou outras. Utilizam-se expressões lógicas.
- Repetitivas: são seqüências de instruções que se repetem um número determinado de vezes.
Exemplo de linguagem:
C
Programação estruturada: Introdução
Linguagem de programação
Programação estruturada: Variáveis e tipos de dados
Linguagem de programação
Uma variável é um espaço reservado na memória do computador para armazenar
um tipo de dado determinado.
Variáveis devem receber nomes para poderem ser referenciadas e modificadas
quando necessário.
Um programa deve conter declarações que especificam de que tipo são as variáveis
que ele utilizará e as vezes um valor inicial.
Tipos podem ser por exemplo: inteiros, reais, lógicos, caracteres, etc. As expressões
combinam variáveis e constantes para calcular novos valores.
0A3D34B
0A1F35B
0A3ED4B
“Olá”
68
true
StackHeap
string saudacao = “Olá”;
int number = 68;
bool status = !0;
Programação estruturada: Variáveis e tipos de dados
Linguagem de programação
Exemplo de uso de variáveis (C#)
single p1 =4.0;
single p2 =5.0;
single p3 =2.0;
single p4 =6.0;
single media = (p1+p2+p3+p4)/4;
Console.Writeln(media.ToString());
0A3D34B
0A1F35B
0A3ED4B
0A1ED4B
4.0
5.0
2.0
6.0
StackHeap
0A3EC4B 4,25
Tipos mais comuns:
int
float / single
bool
char
Programação estruturada: Operadores
Linguagem de programação
Operação Símbolo
Adição +
Subtração -
Multiplicação *
Divisão /
Exponenciação **
Descrição Símbolo
Igual a =
Diferente de <>
Maior que >
Menor que <
Maior ou igual a >=
Menor ou igual a <=
E AND
OU OR
NÃO NOT
Matemáticos
Lógicos
Relacionais
Programação estruturada: Operadores
Linguagem de programação
Matemáticos
Lógicos
Relacionais
Exemplos:
3 * (1 – 2) + 4 * 2 = 5
Expressão Resultado
A = B Falso
A <> B Verdadeiro
A > B Verdadeiro
A < B Falso
A >= B Verdadeiro
A <= B Falso
Tendo duas variáveis A = 5 e B = 3. Os
resultados das expressões seriam:
Expressões Resultado
A = B AND B > C Falso
A <> B OR B < C Verdadeiro
A > B NOT Verdadeiro
A < B AND B > C Verdadeiro
A >= B OR B = C Falso
A <= B NOT Falso
Três variáveis A = 5, B = 8 e C =1
Os resultados das expressões seriam:
Programação estruturada: Estrutura de decisões
Linguagem de programação
A estrutura de decisão “SE/IF” normalmente vem acompanhada de um comando, ou
seja, se determinada condição for satisfeita pelo comando SE/IF então execute
determinado comando.
Imagine um algoritmo que determinado aluno somente estará aprovado se sua média
for maior ou igual a 5.0, veja no exemplo de algoritmo como ficaria.
SE MEDIA >= 5.0 ENTÃO ALUNO APROVADO
Exemplo de uso em C#
if(media>=5.0){
Console.write(“Aprovado”);
};
Programação estruturada: Estrutura de decisões
Linguagem de programação
Caso a condição seja “verdadeira” o comando da condição será executado, caso
contrário o comando da condição “falsa” será executado.
SE MÉDIA >= 5.0 ENTÃO
ALUNO APROVADO
SENÃO
ALUNO REPROVADO
Exemplo de uso em C#
if(media>=5.0){
Console.write(“Aprovado”);
}
else{
Console.write(“Reprovado”);
};
Programação estruturada: Estrutura de decisões
Linguagem de programação
A estrutura de decisão mais completa seria SE/SE NÃO/ SE NÃO SE
SE HORA >= 6 AND HORA < 12
BOM DIA
SE NÃO SE HORA >=12 AND HORA <= 18
BOA TARDE
SE NÃO
BOA NOITE
Exemplo de uso em C#
if(hora >= 6 && hora < 12){
Console.write(“Bom dia!”);
}
elseif(hora >= 12 && hora <= 18){
Console.write(“Boa tarde”);
};
else{
Console.write(“Boa noite”);
};
Programação estrutural: Estrutura de repetições
Linguagem de programação
Utilizamos os comandos de repetição quando desejamos que um determinado
conjunto de instruções ou comandos sejam executados um número definido ou
indefinido de vezes, ou enquanto um determinado estado de coisas prevalecer ou
até que seja alcançado.
Faça Enquanto x, processar... While...
Faça Até que x, processar... Do... While...
Processar..., Enquanto x While...
Processar..., Até que x Do... While...
Para... Até... Seguinte For...
Programação estrutural: Estrutura de repetições
Linguagem de programação
Exemplos de repetições:
int i=0;
while(i<50){
Console.write(i.ToString());
i++; //ou i=i+1
}
Enquanto i for menor que 50
Faça:
- Imprima o i na tela
- Acrescente 1 em i
- Pula para o próximo
for(i=0;i<50;i++){
Console.write(i.ToString());
}
Para i saindo de 0, até i<50,
acrescentando de 1 em 1
Faça:
- Imprima o i na tela
- Pula para o próximo
Na programação orientada à objetos temos também todo o poder da linguagem estruturada, porém, com
a possibilidade de criação e reutilização de objetos.
Paradigmas da OO
Um objeto é uma estrutura que contem características (propriedades) e ações
(métodos). Em um programa OO temos toda sua composição feita por diversos
objetos, dos mais simples aos mais complexos.
Exemplo de objeto:
Carro é verde
Carro tem 4 rodas
Carro anda
Programação OO: Introdução
Linguagem de programação
Modelando OO (Técnica modelo de domínio)
Substantivos: “Carro”
Adjetivos: “é Verde”, “tem 4 rodas”
Verbos: “Anda”
Programação OO: Criando e utilizando objetos
Linguagem de programação
Modelando OO (Técnica modelo de domínio)
Substantivos = Classe
Adjetivos = Propriedades
Verbos = Métodos (Ações)
= Objeto
Programação OO: Criando e utilizando objetos
Linguagem de programação
Codificando um objeto Carro (Exemplo em C#)
public class Car
{
private string _color;
private int _wheels;
public void Car(){
_color = “Verde”;
_wheels = 4;
}
public string getColor(){
return _color;
}
public int getWheels(){
return _wheels;
}
public void Run() {
//Implementação de um método de movimento
}
}
Construtor do objeto
(Inicia variáveis)
Propriedade que
Retorna a cor do carro
Propriedade que
Retorna a qtde de rodas
Método que executará
uma ação: Andar
Programação OO: Criando e utilizando objetos
Linguagem de programação
Utilizando um objeto Carro (Exemplo em C#)
Car carro = new Car ();
Console.WriteLn(carro.getColor.ToString());
Console.WriteLn(carro.getWheelsToString());
Programação OO: Criando e utilizando objetos
Linguagem de programação
“Verde”
4
O exemplo do objeto carro, embora simples, é um ótimo exemplo para conhecermos
um pouco de OO. Em um sistema de imóveis por exemplo, teríamos classes como:
imóvel, corretor, cliente... Todas elas com regras de negócios bem definidas e
relacionadas entre si.
Programação OO: Técnicas
Linguagem de programação
No conceito de OO buscamos sempre equiparar o desenvolvimento de uma solução com o
mundo real. No modelo anterior, a modelagem simples ainda não utilizava as poderosas
técnicas da OO como:
- Polimorfismo
- Herança
- Sobrecarga
- Interfaces
Essas técnicas fazem com que uma linguagem OO tenha diversas vantagens como:
- Abstração
- Otimização
- Reutilização
- Organização
São essas técnicas que de fato define uma linguagem como orientada a objetos
Programação OO: Herança
Linguagem de programação
VEÍCULO
AUTOMÓVEL MOTO
As classes que utilizam herança (filhas), herdam características e comportamentos da
classe pai.
Rodas
Motor
Freio
Rodas
Motor
Freio
Rodas
Motor
Freio
Programação OO: Polimorfismo
Linguagem de programação
Polimorfismo consiste em possibilitar versões diferenciadas de características ou
comportamentos para um determinado método ou propriedade.
CARRO
FERRARI GOL
Correr: 80km/h
Correr: 350km/h Correr: 180km/h
Programação OO: Sobrecarga
Linguagem de programação
Sobrecarga possibilita um método ter diferente versões de assinaturas.
Exemplo:
FERRARI
Correr(pDistancia)
Correr(pDistancia,pParada)
Correr()
Programação OO: Interfaces
Linguagem de programação
Interface ou template como é conhecido em outras linguagens, possibilita uma classe
utilizar um padrão ou contrato, para criação de seus métodos ou propriedades.
Diferente da herança onde uma classe pai tem seus métodos definidos e estes repassados
aos seus filhos, uma interface não tem implementação. É composta por assinaturas, que
deverão ser obrigatoriamente implementadas pela classe que está referenciando.
INTERFACE
TRANSPORTE
Locomocao(){}
VEÍCULO AERONAVE
Locomocao(){terrestre} Locomocao(){aerea}
Exercícios
Linguagem de programação
1) Faça a modelagem de objetos utilizando o modelo de domínio.
a) Imóvel, Quartos, Cozinha, Dormitórios, Alugar, Vender
b) Curso, Titulo, Vagas, Data, Matricular
c) Pessoa, Pessoa Física, Pessoa Jurídica, CPF, RG, Cadastrar, Atualizar
Desafio
3 missionários e 3 canibais precisam atravessar um rio. No barco, cabem apenas 2 pessoas
por travessia e o barco não retorna sozinho. Em nenhum momento pode-se ter menos
missionários que canibais nas margens. Como é possível realizar esta travessia?
Linguagem de programação
} Fim

Mais conteúdo relacionado

Mais procurados

Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
Willians Miyabara
 
Visualg
VisualgVisualg
Visualg
Pedro Silva
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
Mario Jorge Pereira
 
Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010
Joeldson Costa Damasceno
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
Elaine Cecília Gatto
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
Gabriel Faustino
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Gercélia Ramos
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
Andrei Bastos
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
Gercélia Ramos
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
Professor Samuel Ribeiro
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Pacc UAB
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programaçãoElaine Cecília Gatto
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informáticasocrahn
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
Elaine Cecília Gatto
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
Gercélia Ramos
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introdução
Mauro Pereira
 
Algoritmos
AlgoritmosAlgoritmos
Resumo básico de introdução à informática
Resumo básico de introdução à informáticaResumo básico de introdução à informática
Resumo básico de introdução à informática
Daiana de Ávila
 

Mais procurados (20)

Exercicios resolvidos visuAlg
Exercicios resolvidos visuAlgExercicios resolvidos visuAlg
Exercicios resolvidos visuAlg
 
Visualg
VisualgVisualg
Visualg
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010Informática Básica - Introdução ao Microsoft Word 2010
Informática Básica - Introdução ao Microsoft Word 2010
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1Aula 3 - Algoritmos computacionais - parte 1
Aula 3 - Algoritmos computacionais - parte 1
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
 
1ª aula introdução a informática
1ª aula introdução a informática1ª aula introdução a informática
1ª aula introdução a informática
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introdução
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Resumo básico de introdução à informática
Resumo básico de introdução à informáticaResumo básico de introdução à informática
Resumo básico de introdução à informática
 

Destaque

Identificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de softwareIdentificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de software
André Agostinho
 
Uma proposta de uma célula neural artificial paraconsistente de aprendizagem
Uma proposta de uma célula neural artificial paraconsistente de aprendizagemUma proposta de uma célula neural artificial paraconsistente de aprendizagem
Uma proposta de uma célula neural artificial paraconsistente de aprendizagem
minicz
 
Classificação não supervisionada - Kohonen
Classificação não supervisionada - KohonenClassificação não supervisionada - Kohonen
Classificação não supervisionada - Kohonen
André Andrade
 
Arduino iad
Arduino iadArduino iad
Arduino iad
Felipe Meganha
 
Introdução a plataforma arduino
Introdução a plataforma arduinoIntrodução a plataforma arduino
Introdução a plataforma arduino
Rogerio Alencar Filho
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetosFabiano Rodrigues
 
Matematica Discreta
Matematica DiscretaMatematica Discreta
Matematica Discreta
Kevin Kerik
 
Fluent NHibernate - Baby Steps
Fluent NHibernate - Baby StepsFluent NHibernate - Baby Steps
Fluent NHibernate - Baby Steps
André Agostinho
 
Avaliação Heurística de Aplicativos de Bateria para Windows Phone
Avaliação Heurística de Aplicativos de Bateria para Windows PhoneAvaliação Heurística de Aplicativos de Bateria para Windows Phone
Avaliação Heurística de Aplicativos de Bateria para Windows Phone
André Agostinho
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Alvaro Oliveira
 
Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830
André Agostinho
 
A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...
André Agostinho
 
Mapeando processos de negócios com Zackman Framework e SBVR
Mapeando processos de negócios com Zackman Framework e SBVRMapeando processos de negócios com Zackman Framework e SBVR
Mapeando processos de negócios com Zackman Framework e SBVR
André Agostinho
 
Analise e projetos orientados a objetos
Analise e projetos orientados a objetosAnalise e projetos orientados a objetos
Analise e projetos orientados a objetosSliedesharessbarbosa
 
Automação do Workload e a TI Bimodal
Automação do Workload e a TI BimodalAutomação do Workload e a TI Bimodal
Automação do Workload e a TI Bimodal
Joao Galdino Mello de Souza
 
Logica computacional
Logica computacionalLogica computacional
Logica computacional
TurokJG
 
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresCloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
Joao Galdino Mello de Souza
 
Estruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHPEstruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHP
Sedu
 
Scrum fundamentos basicos
Scrum   fundamentos basicosScrum   fundamentos basicos
Scrum fundamentos basicos
André Agostinho
 

Destaque (20)

Identificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de softwareIdentificando requisitos comuns e variantes em linhas de produtos de software
Identificando requisitos comuns e variantes em linhas de produtos de software
 
Uma proposta de uma célula neural artificial paraconsistente de aprendizagem
Uma proposta de uma célula neural artificial paraconsistente de aprendizagemUma proposta de uma célula neural artificial paraconsistente de aprendizagem
Uma proposta de uma célula neural artificial paraconsistente de aprendizagem
 
Classificação não supervisionada - Kohonen
Classificação não supervisionada - KohonenClassificação não supervisionada - Kohonen
Classificação não supervisionada - Kohonen
 
KHALEDNAZZAL_eq
KHALEDNAZZAL_eqKHALEDNAZZAL_eq
KHALEDNAZZAL_eq
 
Arduino iad
Arduino iadArduino iad
Arduino iad
 
Introdução a plataforma arduino
Introdução a plataforma arduinoIntrodução a plataforma arduino
Introdução a plataforma arduino
 
Apostila php orientado a objetos
Apostila php   orientado a objetosApostila php   orientado a objetos
Apostila php orientado a objetos
 
Matematica Discreta
Matematica DiscretaMatematica Discreta
Matematica Discreta
 
Fluent NHibernate - Baby Steps
Fluent NHibernate - Baby StepsFluent NHibernate - Baby Steps
Fluent NHibernate - Baby Steps
 
Avaliação Heurística de Aplicativos de Bateria para Windows Phone
Avaliação Heurística de Aplicativos de Bateria para Windows PhoneAvaliação Heurística de Aplicativos de Bateria para Windows Phone
Avaliação Heurística de Aplicativos de Bateria para Windows Phone
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830Proposta para especificação de histórias de usuários alinhadas a IEEE 830
Proposta para especificação de histórias de usuários alinhadas a IEEE 830
 
A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...A proposal to combine elicitation techniques to write vision document and use...
A proposal to combine elicitation techniques to write vision document and use...
 
Mapeando processos de negócios com Zackman Framework e SBVR
Mapeando processos de negócios com Zackman Framework e SBVRMapeando processos de negócios com Zackman Framework e SBVR
Mapeando processos de negócios com Zackman Framework e SBVR
 
Analise e projetos orientados a objetos
Analise e projetos orientados a objetosAnalise e projetos orientados a objetos
Analise e projetos orientados a objetos
 
Automação do Workload e a TI Bimodal
Automação do Workload e a TI BimodalAutomação do Workload e a TI Bimodal
Automação do Workload e a TI Bimodal
 
Logica computacional
Logica computacionalLogica computacional
Logica computacional
 
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastresCloud Computing - Continuidade do Negócio através da tolerância a desastres
Cloud Computing - Continuidade do Negócio através da tolerância a desastres
 
Estruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHPEstruturas de controle if/else switch PHP
Estruturas de controle if/else switch PHP
 
Scrum fundamentos basicos
Scrum   fundamentos basicosScrum   fundamentos basicos
Scrum fundamentos basicos
 

Semelhante a Introdução à Lógica de Programação

Lógica e algoritmos
Lógica e algoritmosLógica e algoritmos
Lógica e algoritmosJocelma Rios
 
Algoritmo Logica de programação básico
Algoritmo Logica de programação básicoAlgoritmo Logica de programação básico
Algoritmo Logica de programação básico
Felipe Figueiredo
 
Aula 12 - Lógica
Aula 12 - LógicaAula 12 - Lógica
Aula 12 - Lógica
Jocelma Rios
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaRegis Magalhães
 
Introdução a logica senac
Introdução a logica   senacIntrodução a logica   senac
Introdução a logica senac
Gabriel Araujo
 
2. Introdução a Logica Matematica.pdf
2. Introdução a Logica Matematica.pdf2. Introdução a Logica Matematica.pdf
2. Introdução a Logica Matematica.pdf
RubenManhia
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
Claudio Stein Junior
 
Trabalho Lógica fuzzy fabrizio-etemb
Trabalho Lógica fuzzy  fabrizio-etembTrabalho Lógica fuzzy  fabrizio-etemb
Trabalho Lógica fuzzy fabrizio-etemb
Fabrizio Lutiane Queiróz
 
Logica proposicional_aula01.pptx
Logica proposicional_aula01.pptxLogica proposicional_aula01.pptx
Logica proposicional_aula01.pptx
ritaporfrio
 
01-Lógica de Programação .pptx
01-Lógica de Programação .pptx01-Lógica de Programação .pptx
01-Lógica de Programação .pptx
FranciscoDavidSilvaS2
 
Conceito de Lógica
Conceito de LógicaConceito de Lógica
Conceito de Lógica
Fabiana Zacchi
 
Aula01(IntroduçãoaLógica).ppt
Aula01(IntroduçãoaLógica).pptAula01(IntroduçãoaLógica).ppt
Aula01(IntroduçãoaLógica).ppt
Bruno César Rosa Diniz
 
Aula de filosofia 2 ano i bimestre 2020
Aula de filosofia 2 ano   i bimestre 2020Aula de filosofia 2 ano   i bimestre 2020
Aula de filosofia 2 ano i bimestre 2020
Paulo Alexandre
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
Gabriel Demétrio
 
03 raciocinio logico-1
03 raciocinio logico-103 raciocinio logico-1
03 raciocinio logico-1
Aloisio Amaral
 

Semelhante a Introdução à Lógica de Programação (20)

Lógica e algoritmos
Lógica e algoritmosLógica e algoritmos
Lógica e algoritmos
 
Algoritmo Logica de programação básico
Algoritmo Logica de programação básicoAlgoritmo Logica de programação básico
Algoritmo Logica de programação básico
 
Aula 12 - Lógica
Aula 12 - LógicaAula 12 - Lógica
Aula 12 - Lógica
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A Logica
 
Introdução a logica senac
Introdução a logica   senacIntrodução a logica   senac
Introdução a logica senac
 
2. Introdução a Logica Matematica.pdf
2. Introdução a Logica Matematica.pdf2. Introdução a Logica Matematica.pdf
2. Introdução a Logica Matematica.pdf
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Trabalho Lógica fuzzy fabrizio-etemb
Trabalho Lógica fuzzy  fabrizio-etembTrabalho Lógica fuzzy  fabrizio-etemb
Trabalho Lógica fuzzy fabrizio-etemb
 
Logica proposicional_aula01.pptx
Logica proposicional_aula01.pptxLogica proposicional_aula01.pptx
Logica proposicional_aula01.pptx
 
01-Lógica de Programação .pptx
01-Lógica de Programação .pptx01-Lógica de Programação .pptx
01-Lógica de Programação .pptx
 
Conceito de Lógica
Conceito de LógicaConceito de Lógica
Conceito de Lógica
 
Aula01(IntroduçãoaLógica).ppt
Aula01(IntroduçãoaLógica).pptAula01(IntroduçãoaLógica).ppt
Aula01(IntroduçãoaLógica).ppt
 
Aula de filosofia 2 ano i bimestre 2020
Aula de filosofia 2 ano   i bimestre 2020Aula de filosofia 2 ano   i bimestre 2020
Aula de filosofia 2 ano i bimestre 2020
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
 
Forb.cap1
Forb.cap1Forb.cap1
Forb.cap1
 
Logica
LogicaLogica
Logica
 
Logica
LogicaLogica
Logica
 
Slide
SlideSlide
Slide
 
Raciocínio lógico
Raciocínio lógicoRaciocínio lógico
Raciocínio lógico
 
03 raciocinio logico-1
03 raciocinio logico-103 raciocinio logico-1
03 raciocinio logico-1
 

Mais de André Agostinho

How to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software EngineeringHow to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software Engineering
André Agostinho
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
André Agostinho
 
Google web stories #SnetTalks3
Google web stories #SnetTalks3Google web stories #SnetTalks3
Google web stories #SnetTalks3
André Agostinho
 
Impact mapping #SnetTalks3
Impact mapping  #SnetTalks3Impact mapping  #SnetTalks3
Impact mapping #SnetTalks3
André Agostinho
 
Asp.net Core 5 and C# 9 - #SnetTalks2
Asp.net Core 5 and C# 9 - #SnetTalks2Asp.net Core 5 and C# 9 - #SnetTalks2
Asp.net Core 5 and C# 9 - #SnetTalks2
André Agostinho
 
ARIA - Acessible Rich Internet Applications #SnetTalks2
ARIA - Acessible Rich Internet Applications #SnetTalks2ARIA - Acessible Rich Internet Applications #SnetTalks2
ARIA - Acessible Rich Internet Applications #SnetTalks2
André Agostinho
 
AMP - Accelarared Mobile Pages #SnetTalks2
AMP - Accelarared Mobile Pages #SnetTalks2AMP - Accelarared Mobile Pages #SnetTalks2
AMP - Accelarared Mobile Pages #SnetTalks2
André Agostinho
 
Lead time and cycle time. What matters? #SnetTalks1
Lead time and cycle time.  What matters? #SnetTalks1Lead time and cycle time.  What matters? #SnetTalks1
Lead time and cycle time. What matters? #SnetTalks1
André Agostinho
 
Overcoming automation fear in infrastructure as code
Overcoming automation fear in infrastructure as codeOvercoming automation fear in infrastructure as code
Overcoming automation fear in infrastructure as code
André Agostinho
 
Scaling multi cloud with infrastructure as code
Scaling multi cloud with infrastructure as codeScaling multi cloud with infrastructure as code
Scaling multi cloud with infrastructure as code
André Agostinho
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct services
André Agostinho
 
Goal-Driven Software Process
Goal-Driven Software ProcessGoal-Driven Software Process
Goal-Driven Software Process
André Agostinho
 
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...
André Agostinho
 
Second Screen
Second Screen Second Screen
Second Screen
André Agostinho
 
9 Mistakes You're Making on LinkedIn
9 Mistakes You're Making on LinkedIn9 Mistakes You're Making on LinkedIn
9 Mistakes You're Making on LinkedIn
André Agostinho
 
What Technologies Will Crowdfunding Create?
What Technologies Will Crowdfunding Create?What Technologies Will Crowdfunding Create?
What Technologies Will Crowdfunding Create?
André Agostinho
 
Novos dispositivos Kindle
Novos dispositivos Kindle Novos dispositivos Kindle
Novos dispositivos Kindle
André Agostinho
 

Mais de André Agostinho (18)

How to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software EngineeringHow to justify technical debt mitigations in Software Engineering
How to justify technical debt mitigations in Software Engineering
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
Google web stories #SnetTalks3
Google web stories #SnetTalks3Google web stories #SnetTalks3
Google web stories #SnetTalks3
 
Impact mapping #SnetTalks3
Impact mapping  #SnetTalks3Impact mapping  #SnetTalks3
Impact mapping #SnetTalks3
 
Asp.net Core 5 and C# 9 - #SnetTalks2
Asp.net Core 5 and C# 9 - #SnetTalks2Asp.net Core 5 and C# 9 - #SnetTalks2
Asp.net Core 5 and C# 9 - #SnetTalks2
 
ARIA - Acessible Rich Internet Applications #SnetTalks2
ARIA - Acessible Rich Internet Applications #SnetTalks2ARIA - Acessible Rich Internet Applications #SnetTalks2
ARIA - Acessible Rich Internet Applications #SnetTalks2
 
AMP - Accelarared Mobile Pages #SnetTalks2
AMP - Accelarared Mobile Pages #SnetTalks2AMP - Accelarared Mobile Pages #SnetTalks2
AMP - Accelarared Mobile Pages #SnetTalks2
 
Lead time and cycle time. What matters? #SnetTalks1
Lead time and cycle time.  What matters? #SnetTalks1Lead time and cycle time.  What matters? #SnetTalks1
Lead time and cycle time. What matters? #SnetTalks1
 
Overcoming automation fear in infrastructure as code
Overcoming automation fear in infrastructure as codeOvercoming automation fear in infrastructure as code
Overcoming automation fear in infrastructure as code
 
Scaling multi cloud with infrastructure as code
Scaling multi cloud with infrastructure as codeScaling multi cloud with infrastructure as code
Scaling multi cloud with infrastructure as code
 
Cloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct servicesCloud continuous integration- A distributed approach using distinct services
Cloud continuous integration- A distributed approach using distinct services
 
Goal-Driven Software Process
Goal-Driven Software ProcessGoal-Driven Software Process
Goal-Driven Software Process
 
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...
Desenvolvimento de um aplicativo móvel utilizando o Ciclo de Engenharia de Us...
 
Second Screen
Second Screen Second Screen
Second Screen
 
9 Mistakes You're Making on LinkedIn
9 Mistakes You're Making on LinkedIn9 Mistakes You're Making on LinkedIn
9 Mistakes You're Making on LinkedIn
 
Mobile malware
Mobile malwareMobile malware
Mobile malware
 
What Technologies Will Crowdfunding Create?
What Technologies Will Crowdfunding Create?What Technologies Will Crowdfunding Create?
What Technologies Will Crowdfunding Create?
 
Novos dispositivos Kindle
Novos dispositivos Kindle Novos dispositivos Kindle
Novos dispositivos Kindle
 

Introdução à Lógica de Programação

  • 1. Introdução à Lógica de Programação www.devtrainer.com.br Andre R. Agostinho Lazaro F. Lima
  • 2. Índice { Lógica O que é lógica? A lógica no cotidiano Princípios da lógica clássica Tipos de lógicas Linguagem de Programação Um breve história Como funciona uma Lprog Tipos de Lprog Programação funcional Programação estruturada Introdução Variáveis e tipos de dados Operadores Estruturas de decisões Estruturas de repetições Programação orientada à objetos Introdução Criando e utilizando objetos Técnicas de OO Herança Polimorfismo Sobrecarga Encapsulamento Interfaces Lógica de Programação O que é lógica de programação? Conceito de E/S e Processamento Operadores Lógicos Algoritmos O que é algoritmo? Características Métodos para criação Exercícios Fluxograma O que é um fluxograma? Simbologia Exemplo de diagrama Exercícios Desafio de lógica Exercícios Desafio de lógica Exercícios Desafio de lógica
  • 4. O que é Lógica? Do grego “logos”. Significa ideia, argumento, pensamento... Lógica é uma ciência matemática fortemente ligada a Filosofia. Sendo o pensamento uma manifestação de conhecimento,considerando que o conhecimento busca a verdade através de regras Lógica faz uso das conclusões levantadas através de proposições. Lógica
  • 5. Proposição: Toda proposição é uma frase mas nem toda frase é uma proposição; Uma frase é uma proposição apenas quando admite um dos dois valores lógicos: Falso (F)ou Verdadeiro (V). Exemplos de não proposições Quer uma xícara de café? Eu não estou bem certo se esta cor me agrada Exemplo de proposições O número 7 é impar (V) Curitiba é capital de Santa Catarina (F) O que é Lógica? Lógica
  • 6. Sempre que pensamos, o raciocínio e a lógica nos acompanham necessariamente. Também quando falamos, pois a palavra falada é a representação do pensamento; e, visto que a palavra escrita é a representação da palavra falada, também pensamos quando escrevemos, utilizando a Lógica Percebemos a importância da Lógica na nossa vida não só na teoria, como também na prática, já que quando queremos pensar, falar ou escrever corretamente precisamos colocar em Ordem o Pensamento, isto é, utilizar a Lógica. A lógica no cotidiano Lógica
  • 7. Exemplos: a) A gaveta está fechada. A bala está na gaveta. Preciso primeiro abrir a gaveta, para depois pegar a bala. b) João é mais velho que José. Marcelo é mais novo que José. Portanto, João é mais velho que Marcelo. A lógica no cotidiano Lógica
  • 8. O sistema lógico desenvolvido por Aristóteles foi o Primeiro estudo formal do raciocínio. Aristóteles definiu os seguintes princípios centrais da lógica: – Princípio da não-contradição – Princípio do terceiro excluído – Princípio de identidade Esses princípios deram origem a Lógica Clássica ou Lógica Aristotélica. A Lógica Clássica é a base para todos os outros tipos de lógica. Princípios da lógica clássica Lógica
  • 9. O princípio da não-contradição diz que nenhuma afirmação pode ser verdadeira e falsa ao mesmo tempo. Ex: Carlos é programador Esta afirmação não pode ser verdade e falsa ao mesmo tempo. Princípios da lógica clássica Lógica Programador Não Programador
  • 10. O princípio do terceiro excluído diz que uma proposição só pode ser verdadeira se não for falsa e só pode ser falsa se não for verdadeira, porque o terceiro valor é excluído. Ex: Carlos é programador ou não é programador Ou Carlos é programador ou não é. Não existe uma terceira possibilidade. Princípios da lógica clássica Lógica
  • 11. O princípio da identidade diz que todo objeto é idêntico a si. Seja, a = a e b = b, 'a' sempre será igual 'a', mesmo se afirmarmos que a = b ainda podemos afirmar que a = a e b = b. Ex: Carlos é pai de família e um grande programador. Apesar das atribuições, Carlos continua sendo “Carlos”, independente de qualquer atribuição continuará sendo unicamente ele mesmo. Princípios da lógica clássica Lógica =
  • 12. Lógica Clássica (Aristotélica) Anti-Clássica Formal Outras Fuzzy Outras Tipos de lógica Lógica
  • 13. Lógica Clássica segue os princípios de Aristóteles: • Princípio da não-contradição • Princípio do terceiro excluído • Princípio de identidade Tipos de lógica Lógica
  • 14. A Lógica Formal, também chamada de Lógica Simbólica, preocupa-se, basicamente, com a estrutura do raciocínio. Na Lógica Formal os conceitos são rigorosamente definidos, e as orações são transformadas em notações simbólicas precisas, compactas e não ambíguas. Exemplo p: 1 + 2 = 3 A proposição acima é verdadeira Tipos de lógica Lógica
  • 15. Outros tipos de lógicas clássicas: • Lógica modal: Agrega à lógica clássica o princípio das possibilidades. Clássica: "se amanhã chover, vou viajar Modal: "é possível que eu viaje se não chover” • Lógica epistêmica: também chamada "lógica do conhecimento", agrega o princípio da certeza, ou da incerteza. "pode ser que haja vida em outros planetas” "não se pode saber se duendes existem ou não” Tipos de lógica Lógica
  • 16. Lógicas anti-clássicas: São formas de lógica que derrubam pelo menos um dos três princípios fundamentais da lógica clássica. Tipos de lógica Lógica Princípio da não-contradição Princípio do terceiro excluído Princípio de identidade
  • 17. Lógica paraconsistente: É uma forma de lógica onde não existe o princípio da contradição. Nesse tipo de lógica, tanto as sentenças afirmativas quanto as negativas podem ser falsas ou verdadeiras Um exemplo: "fulano é cego, mas vê". Ele pode ser cego para ver algumas coisas, e não-cego para ver outras coisas. Tipos de lógica Lógica
  • 18. Lógica paracompleta: Derruba o princípio do terceiro excluído, isto é, uma oração pode não ser totalmente verdadeira, nem totalmente falsa. Exemplo: "fulano conhece a China". Se ele nunca esteve lá, essa oração não é verdadeira. Mas se mesmo nunca tendo estado lá ele estudou a história da China por livros, essa oração também não é falsa. Tipos de lógica Lógica
  • 19. Lógica fuzzy ou Lógica Difusa ou Lógica Nebulosa: Trabalha com o conceito de graus de pertinência. Clássica: "se algo é quente, não é frio" Fuzzy: "algo é 30% quente, 25% morno e 45% frio". Tipos de lógica Lógica
  • 20. Exercícios Lógica 1) Dê continuidade a sequência abaixo: 1, 8, 13, 20, 25, 32, 37.... 2) Qual foi o padrão identificado para esta sequência? Explique. 3) Classifique as proposições abaixo quanto ao tipo de lógica: 1- Lógica Difusa 2- Lógica Clássica 3- Lógica paraconsciente 4- Paracompleta 5- Modal ( ) “Brasil é pentacampeão mundial de futebol” ( ) “Se chover amanhã, eu irei ao parque” ( ) “Meu amigo conhece a Alemanha” ( ) ”Marcelo não tem dinheiro, mas comprou um carro” ( ) “João tem 30% de chance de vencer , 40% de perder e o restante de empatar” 4) Assinale Verdadeiro ou Falso as alternativas abaixo: ( ) A principal lei da lógica clássica é a lei da autoafirmação, que reforça a verdade sobre a preposição ( ) Na lógica difusa é utilizado as leis da lógica clássica mais as leis da lógica anticlássica ( ) A lei do terceiro excluído diz que a terceira opção é inexistente em uma preposição, ou seja, trabalha somente com valores boleanos ( ) Lógica esta ligada diretamente com matemática e filosofia 5) Se colhermos os valores preenchidos (V/F) acima, qual será o resultado final do seu teste utilizando os conceitos da lógica clássica e utilizando os conceitos da lógica difusa? Explique.
  • 21. Desafio Lógica Em um acampamento militar, o sargento ordenou ao soldado que ele fosse ao poço pegar exatamente quatro litros de água. O sargento entregou ao soldado um balde com a capacidade para cinco litros e outro com capacidade para três litros. O que o soldado deve fazer para entregar ao sargento os exatos quatro litros de água exigidos?
  • 23. Lógica especializada na área computacional com o objetivo de desenvolver sistemas. Lógica de programação utiliza em boa parte os princípios da lógica clássica e alguns casos lógica anti-clássica (fuzzy). Em desenvolvimento de sistemas computacionais a lógica de programação é empregada a todo momento, desde um simples programa com saida em video à complexo ERP ou CRM. Na lógica de programação é muito comum utilizarmos proposições com conjunções, ou seja operadores lógicos binários. O que é lógica de programação? Lógica de Programação
  • 24. Em lógica de programação os conceitos de entrada e saida (Input/Ouput) junto com o processamento são indispensáveis. Um depende do outro para se obter um resultado. Vejamos algumas analogias Conceito de E/S e Processamento Lógica de Programação
  • 25. Entrada Processamento Saída Percepção das impressões sensoriais Processo de pensamento Utilizamos a nossa memória Para executar inúmeros processos como controlar, comparar,combinar, deduzir.... Resultado Conceito de E/S e Processamento Lógica de Programação
  • 26. Entrada Processamento Saída Conceito de E/S e Processamento Lógica de Programação
  • 27. SO Framework .NET Compilador C# Entrada Processamento Saída Conceito de E/S e Processamento Lógica de Programação
  • 28. Entrada Processamento Saída A = 5 B = 9 A > B FALSO Conceito de E/S e Processamento Lógica de Programação
  • 29. Operadores lógicos podem ser facilmente representados por uma tabela verdade. Tabela verdade é uma tabela matemática usada em lógica para determinar se uma ou mais proposições são validas ou não. Exemplo de tabela verdade: A B A^B V V V V F F F V F F F F Operadores Lógicos Lógica de Programação
  • 30. Os operadores lógicos mais comuns são: • Negação • Conjunção (E) • Disjunção (OU) E temos os operadores lógicos criados a partir dos citados acima: • Condicional (Se... Então) [Implicação] • Bicondicional (Se e somente se) [Equivalência] • Disjunção Exclusiva (XOR) Operadores Lógicos Lógica de Programação
  • 31. Negação A ~A V F F V Exemplo em linguagem C#: bool a = true; bool b = !a; Console.WriteLine(b.ToString()); A negação da proposição a é a proposição ~a, de maneira que se a é verdade então ~a é falso, e vice-versa Operadores Lógicos Lógica de Programação
  • 32. Conjunção (E) A B A^B V V V V F F F V F F F F Exemplo em linguagem C#: bool a = true; bool b = false; bool c = a&&b; Console.WriteLine(c.ToString()); Verdade = somente se os dois operandos forem verdadeiros Operadores Lógicos Lógica de Programação
  • 33. Disjunção (OU) A B AvB V V V V F V F V V F F F Exemplo em linguagem C#: bool a = true; bool b = false; bool c = a||b; Console.WriteLine(c.ToString()); Falso = somente se ambos os operandos forem falsos Operadores Lógicos Lógica de Programação
  • 34. Condicional (Se... Então) [Implicação] A B A→B V V V V F F F V V F F V Exemplo em linguagem C#: bool a = true; bool b = false; bool c; if (a && !b) { c = false; } else { c = true; } Console.WriteLine(c.ToString()); Falso = Se o primeiro operando for verdade e o segundo operador for falso Operadores Lógicos Lógica de Programação
  • 35. Bicondicional (Se e somente se) [Equivalência] Exemplo em linguagem C#: bool a = true; bool b = false; bool c; if ((a&& b ) ||(!b&&!a)){ c = false; } else { c = true; } Console.WriteLine(c.ToString()); A B A↔B V V V V F F F V F F F V Verdade = Ambos operandos forem falsos ou ambos verdadeiros Operadores Lógicos Lógica de Programação
  • 36. Disjunção Exclusiva (Ou... ou XOR) A B A∨B V V F V F V F V V F F F Exemplo em linguagem C#: Verdade = Apenas um dos operandos for verdadeiro bool a = false; bool b = true; bool c; if (a^b) { c = true; } else { c = false; } Console.WriteLine(c.ToString()); Operadores Lógicos Lógica de Programação
  • 37. “Seqüência de passos que visam atingir um objetivo bem definido.” Construir algoritmos é o objetivo fundamental de toda a programação Pegue 4 ovos Pegue 2 xícaras de açúcar Pegue 3 xícaras de farinha de trigo 1 copo de suco de laranja ( 250ml) 1 colher de sopa de fermento em pó Para a cobertura: 1 garrafa pequena de leite de coco 1 garrafa de leite ( utilize a mesma garrafa do leite de coco como medida) (...) O que é um algoritmo? Lógica de Programação
  • 38. Um algoritmo geralmente estabelece um padrão de comportamento a ser seguido, uma norma de execução a ser trilhada, com o objetivo de alcançar a solução de um problema. Exemplo de padrão de comportamento Seqüência de números: 1, 6, 11, 16, 21, 26.... Para determinar o sétimo elemento da série, precisamos descobrir qual a sua regra de formatação. Se analisarmos, os números crescem de 5 em 5 constantemente, podemos definir então que o sétimo elemento é o último elemento + 5. Isto é o seu padrão de comportamento. O que é um algoritmo? Lógica de Programação
  • 39. Podemos, então, descrever uma atividade bem cotidiana, como, por exemplo, trocar uma lâmpada. Apesar de aparentemente óbvias demais, muitas vezes fazemos esse tipo de atividade sem percebermos seus pequenos detalhes. Vejamos se ela fosse descrita passo a passo: • Pegue a escada; • Posicione-a embaixo da lâmpada; • Busque uma lâmpada nova; • Suba na escada; • Retire a lâmpada velha; • Coloque a lâmpada nova. O que é um algoritmo? Lógica de Programação
  • 40. Todo algoritmo deve apresentar algumas características básicas: • Ter início e fim; • Estar livre de ambigüidade • Capacidade de receber dado(s) de entrada (Input) • Poder gerar informações de saída (Output); • Ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo finito). Algoritmo: Características Lógica de Programação
  • 41. Interpretar a questão e procurar entender o que realmente deve ser feito. É justamente nesta fase que podemos enxergar uma solução ao problema sem antes ter todos os passos definidos. Identificar entrada e saída de dados. Por exemplo, “Comprar uma lâmpada nova” é uma entrada de dados, “Colocar a lâmpada nova no bocal” é uma saida esperada. Determinar o que deve ser feito (passos) para transformar as entradas determinadas nas saídas específicas. Sabemos por exemplo que precisamos colocar a lâmpada nova no bocal, porem o que precisa ser feito para isso? Algoritmo: métodos para criação Lógica de Programação
  • 42. Imagine o seguinte problema: Calcular a média final dos alunos da 8ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4. Onde: Média Final = P1 + P2 + P3 + P4 4 Para montar o algoritmo proposto, faremos três perguntas: a) Quais são os dados de entrada? b) Qual será o processamento a ser utilizado? c) Quais serão os dados de saída? Algoritmo: estudo de caso Lógica de Programação
  • 43. a) Quais são os dados de entrada? R: Os dados de entrada são P1, P2, P3 e P4 b) Qual será o processamento a ser utilizado? R: O procedimento será somar todos os dados de entrada e dividi-los por 4 c) Quais serão os dados de saída? R: O dado de saída será a média final Algoritmo Receba a nota da prova1 Receba a nota de prova2 Receba a nota de prova3 Receba a nota da prova4 Some todas as notas e divida o resultado por 4 Mostre o resultado da divisão Algoritmo: estudo de caso Lógica de Programação
  • 44. Podemos definir um fluxograma como uma forma de representar graficamente um algoritmo. Fluxogramas tem o intuito de facilitar visualmente a compreensão, além de uma organização mais ampla que a textual Pegue 4 ovos Pegue 2 xícaras de açúcar Pegue 3 xícaras de farinha de trigo 1 copo de suco de laranja ( 250ml) 1 colher de sopa de fermento em pó Para a cobertura: 1 garrafa pequena de leite de coco 1 garrafa de leite ( utilize a mesma garrafa do leite de coco como medida) (...) Passo 1 Inicio Passo 2 Passo 3 Fim O que é um fluxograma? Lógica de Programação
  • 45. Símbolo Descrição Função Terminal Símbolo que indica o inicio ou o fim de um processamento. Ex: inicio do algoritmo Processamento Símbolo de processamento em geral. Ex: cálculo de dois números Entrada de dado manual Símbolo que indica a entrada de dados através do teclado. Ex: digitar a nota da prova 1 Exibir Símbolo que mostra informações ou exibe resultados. Ex: mostre o resultado do cálculo Conectar Símbolo utilizado para conectar duas partes do digrama de bloco. Comparar Símbolo utilizado para comparação entre expressões. Ex: código <= 1000 (sim/não) Fluxograma: Simbologia Lógica de Programação
  • 46. Recebe nota p1 Inicio Recebe nota p2 Fim Recebe nota p3 Recebe nota p4 Calcular média M = (p1+p2+p3+p4)/4 Exibir na tela Fluxograma: exemplo Lógica de Programação
  • 47. Exercícios Lógica de Programação 1) Faça um algoritmo para enviar um e-mail com anexo (via webmail) para um destinatário qualquer. 2) Usando a simbologia de fluxograma, represente graficamente o seu algoritmo acima. 3) Preencha as saídas nas tabelas verdades abaixo: A B A^B (e) V V V F F V F F A ~A V F A B AvB(ou) V V V F F V F F a) b) c)
  • 48. Desafio Um homem precisa atravessar um rio com um barco que possui capacidade de carregar apenas ele mesmo e mais uma das três cargas que são: um lobo, um bode e um maço de alfafas. Observe as leis naturais: o lobo é carnívoro e o bode é herbívoro. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas. Lógica de Programação
  • 50. O primeiro projeto de linguagem de programação surgiu para um computador que não existia, sendo idealizada por Ada Lovelace em 1842. Ada Lovelace criou um algoritmo para o cálculo da sequência de Bernoulli usando a máquina analítica de Charles Babbage Da década de 70, o departamento de Defesa americano criou a linguagem ADA em homenagem a esta primeira programadora. Uma breve história Linguagem de programação
  • 51. Assembly (anos 50) O Assembly foi provavelmente a primeira linguagem de programação da história, surgida na década de 50, época em que os computadores ainda usavam válvulas. A idéia do assembly é usar um comando em substituição a cada instrução de máquina (códigos binários.) Fortran (anos 50) O Fortran foi uma das primeiras linguagens de alto nível da história. Enquanto o Assembly é chamado de linguagem de baixo nível, por nele utilizarmos diretamente as instruções e endereços do processador e memória, numa linguagem de alto nível temos várias funções prontas, o que facilita muito a programação. Cobol (anos 50) Esta linguagem foi desenvolvida no final da década de 50, com o objetivo de ser uma plataforma de desenvolvimento para aplicações bancárias e financeiras em geral. Comparado com o Pascal e o Assembly, comuns na época, o Cobol é uma linguagem bastante amigável, o que garantiu uma grande aceitação. Até hoje esta linguagem é usada em muitos sistemas bancários, o que explica a grande procura por programadores experientes nesta linguagem na época do bug do ano 2000. Pascal (anos 60) Linguagem de alto nível, criada durante a década de 60. C (anos 70) O C foi desenvolvido durante a década de 70, mas ainda é largamente utilizado. A grande vantagem do C é permitir escrever tanto programas extremamente otimizados para a máquina, como seria possível apenas em assembly, e ao mesmo tempo vir com várias funções prontas, como uma linguagem de alto nível. Uma breve história Linguagem de programação
  • 52. C++ (anos 70-80) O C++ mantém os recursos do C original, mas traz muitos recursos novos, como recursos orientados a objetos. Visual Basic (anos 80-90) Linguagem visual Linguagens atuais (anos 90-atual) Vbscript, Javascript, PHP, Pearl, CGI, Java, C#.... Uma breve história Linguagem de programação
  • 53. HARDWARE SO Compilador Linguagem de Programação X Compilador de Linguagem de Programação X Programa feito em Linguagem de Programação X 101010101010101001010 1011010101011010 0 01 10 110101 0101 10 01 10 Funcionamento de um LProg Linguagem de programação
  • 54. Programação Funcional Programação Estruturada Programação Orientada à Objetos Tipos de LProg Linguagem de programação
  • 55. Caracteriza-se principalmente por permitir declarar e chamar a funções dentro de outras funções. Programação funcional é uma linguagem matemática. Sua linguagem não é intuitiva para escrita, porém tem um grande poder computacional para cálculo. Exemplo de linguagem: Haskell Programação funcional Linguagem de programação
  • 56. Modo clássico de linguagem onde estruturas de codigos são criadas de forma hierárquicas ou sequenciais. Exemplos de linguagens: C, Cobol, Pascal... Características: - Top-dow: se descompõe em etapas ou estruturas hierárquicas. Existem três tipos de estruturas básicas: -Seqüenciais: cada ação segue a outra ação seqüencialmente. A saída de uma ação é a entrada de outra. - Seletivas: nestas estruturas avaliam-se as condições e em função do resultado das mesmas realizam-se umas ações ou outras. Utilizam-se expressões lógicas. - Repetitivas: são seqüências de instruções que se repetem um número determinado de vezes. Exemplo de linguagem: C Programação estruturada: Introdução Linguagem de programação
  • 57. Programação estruturada: Variáveis e tipos de dados Linguagem de programação Uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado. Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando necessário. Um programa deve conter declarações que especificam de que tipo são as variáveis que ele utilizará e as vezes um valor inicial. Tipos podem ser por exemplo: inteiros, reais, lógicos, caracteres, etc. As expressões combinam variáveis e constantes para calcular novos valores. 0A3D34B 0A1F35B 0A3ED4B “Olá” 68 true StackHeap string saudacao = “Olá”; int number = 68; bool status = !0;
  • 58. Programação estruturada: Variáveis e tipos de dados Linguagem de programação Exemplo de uso de variáveis (C#) single p1 =4.0; single p2 =5.0; single p3 =2.0; single p4 =6.0; single media = (p1+p2+p3+p4)/4; Console.Writeln(media.ToString()); 0A3D34B 0A1F35B 0A3ED4B 0A1ED4B 4.0 5.0 2.0 6.0 StackHeap 0A3EC4B 4,25 Tipos mais comuns: int float / single bool char
  • 59. Programação estruturada: Operadores Linguagem de programação Operação Símbolo Adição + Subtração - Multiplicação * Divisão / Exponenciação ** Descrição Símbolo Igual a = Diferente de <> Maior que > Menor que < Maior ou igual a >= Menor ou igual a <= E AND OU OR NÃO NOT Matemáticos Lógicos Relacionais
  • 60. Programação estruturada: Operadores Linguagem de programação Matemáticos Lógicos Relacionais Exemplos: 3 * (1 – 2) + 4 * 2 = 5 Expressão Resultado A = B Falso A <> B Verdadeiro A > B Verdadeiro A < B Falso A >= B Verdadeiro A <= B Falso Tendo duas variáveis A = 5 e B = 3. Os resultados das expressões seriam: Expressões Resultado A = B AND B > C Falso A <> B OR B < C Verdadeiro A > B NOT Verdadeiro A < B AND B > C Verdadeiro A >= B OR B = C Falso A <= B NOT Falso Três variáveis A = 5, B = 8 e C =1 Os resultados das expressões seriam:
  • 61. Programação estruturada: Estrutura de decisões Linguagem de programação A estrutura de decisão “SE/IF” normalmente vem acompanhada de um comando, ou seja, se determinada condição for satisfeita pelo comando SE/IF então execute determinado comando. Imagine um algoritmo que determinado aluno somente estará aprovado se sua média for maior ou igual a 5.0, veja no exemplo de algoritmo como ficaria. SE MEDIA >= 5.0 ENTÃO ALUNO APROVADO Exemplo de uso em C# if(media>=5.0){ Console.write(“Aprovado”); };
  • 62. Programação estruturada: Estrutura de decisões Linguagem de programação Caso a condição seja “verdadeira” o comando da condição será executado, caso contrário o comando da condição “falsa” será executado. SE MÉDIA >= 5.0 ENTÃO ALUNO APROVADO SENÃO ALUNO REPROVADO Exemplo de uso em C# if(media>=5.0){ Console.write(“Aprovado”); } else{ Console.write(“Reprovado”); };
  • 63. Programação estruturada: Estrutura de decisões Linguagem de programação A estrutura de decisão mais completa seria SE/SE NÃO/ SE NÃO SE SE HORA >= 6 AND HORA < 12 BOM DIA SE NÃO SE HORA >=12 AND HORA <= 18 BOA TARDE SE NÃO BOA NOITE Exemplo de uso em C# if(hora >= 6 && hora < 12){ Console.write(“Bom dia!”); } elseif(hora >= 12 && hora <= 18){ Console.write(“Boa tarde”); }; else{ Console.write(“Boa noite”); };
  • 64. Programação estrutural: Estrutura de repetições Linguagem de programação Utilizamos os comandos de repetição quando desejamos que um determinado conjunto de instruções ou comandos sejam executados um número definido ou indefinido de vezes, ou enquanto um determinado estado de coisas prevalecer ou até que seja alcançado. Faça Enquanto x, processar... While... Faça Até que x, processar... Do... While... Processar..., Enquanto x While... Processar..., Até que x Do... While... Para... Até... Seguinte For...
  • 65. Programação estrutural: Estrutura de repetições Linguagem de programação Exemplos de repetições: int i=0; while(i<50){ Console.write(i.ToString()); i++; //ou i=i+1 } Enquanto i for menor que 50 Faça: - Imprima o i na tela - Acrescente 1 em i - Pula para o próximo for(i=0;i<50;i++){ Console.write(i.ToString()); } Para i saindo de 0, até i<50, acrescentando de 1 em 1 Faça: - Imprima o i na tela - Pula para o próximo
  • 66. Na programação orientada à objetos temos também todo o poder da linguagem estruturada, porém, com a possibilidade de criação e reutilização de objetos. Paradigmas da OO Um objeto é uma estrutura que contem características (propriedades) e ações (métodos). Em um programa OO temos toda sua composição feita por diversos objetos, dos mais simples aos mais complexos. Exemplo de objeto: Carro é verde Carro tem 4 rodas Carro anda Programação OO: Introdução Linguagem de programação
  • 67. Modelando OO (Técnica modelo de domínio) Substantivos: “Carro” Adjetivos: “é Verde”, “tem 4 rodas” Verbos: “Anda” Programação OO: Criando e utilizando objetos Linguagem de programação
  • 68. Modelando OO (Técnica modelo de domínio) Substantivos = Classe Adjetivos = Propriedades Verbos = Métodos (Ações) = Objeto Programação OO: Criando e utilizando objetos Linguagem de programação
  • 69. Codificando um objeto Carro (Exemplo em C#) public class Car { private string _color; private int _wheels; public void Car(){ _color = “Verde”; _wheels = 4; } public string getColor(){ return _color; } public int getWheels(){ return _wheels; } public void Run() { //Implementação de um método de movimento } } Construtor do objeto (Inicia variáveis) Propriedade que Retorna a cor do carro Propriedade que Retorna a qtde de rodas Método que executará uma ação: Andar Programação OO: Criando e utilizando objetos Linguagem de programação
  • 70. Utilizando um objeto Carro (Exemplo em C#) Car carro = new Car (); Console.WriteLn(carro.getColor.ToString()); Console.WriteLn(carro.getWheelsToString()); Programação OO: Criando e utilizando objetos Linguagem de programação “Verde” 4 O exemplo do objeto carro, embora simples, é um ótimo exemplo para conhecermos um pouco de OO. Em um sistema de imóveis por exemplo, teríamos classes como: imóvel, corretor, cliente... Todas elas com regras de negócios bem definidas e relacionadas entre si.
  • 71. Programação OO: Técnicas Linguagem de programação No conceito de OO buscamos sempre equiparar o desenvolvimento de uma solução com o mundo real. No modelo anterior, a modelagem simples ainda não utilizava as poderosas técnicas da OO como: - Polimorfismo - Herança - Sobrecarga - Interfaces Essas técnicas fazem com que uma linguagem OO tenha diversas vantagens como: - Abstração - Otimização - Reutilização - Organização São essas técnicas que de fato define uma linguagem como orientada a objetos
  • 72. Programação OO: Herança Linguagem de programação VEÍCULO AUTOMÓVEL MOTO As classes que utilizam herança (filhas), herdam características e comportamentos da classe pai. Rodas Motor Freio Rodas Motor Freio Rodas Motor Freio
  • 73. Programação OO: Polimorfismo Linguagem de programação Polimorfismo consiste em possibilitar versões diferenciadas de características ou comportamentos para um determinado método ou propriedade. CARRO FERRARI GOL Correr: 80km/h Correr: 350km/h Correr: 180km/h
  • 74. Programação OO: Sobrecarga Linguagem de programação Sobrecarga possibilita um método ter diferente versões de assinaturas. Exemplo: FERRARI Correr(pDistancia) Correr(pDistancia,pParada) Correr()
  • 75. Programação OO: Interfaces Linguagem de programação Interface ou template como é conhecido em outras linguagens, possibilita uma classe utilizar um padrão ou contrato, para criação de seus métodos ou propriedades. Diferente da herança onde uma classe pai tem seus métodos definidos e estes repassados aos seus filhos, uma interface não tem implementação. É composta por assinaturas, que deverão ser obrigatoriamente implementadas pela classe que está referenciando. INTERFACE TRANSPORTE Locomocao(){} VEÍCULO AERONAVE Locomocao(){terrestre} Locomocao(){aerea}
  • 76. Exercícios Linguagem de programação 1) Faça a modelagem de objetos utilizando o modelo de domínio. a) Imóvel, Quartos, Cozinha, Dormitórios, Alugar, Vender b) Curso, Titulo, Vagas, Data, Matricular c) Pessoa, Pessoa Física, Pessoa Jurídica, CPF, RG, Cadastrar, Atualizar
  • 77. Desafio 3 missionários e 3 canibais precisam atravessar um rio. No barco, cabem apenas 2 pessoas por travessia e o barco não retorna sozinho. Em nenhum momento pode-se ter menos missionários que canibais nas margens. Como é possível realizar esta travessia? Linguagem de programação
  • 78. } Fim