Buscar

Lógica de Programação - Noções de Lógica

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

29/07/2012
1
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Noções de Lógica
Lógica trata da correção do pensamento.
Poderíamos dizer também que a Lógica é a arte
de pensar corretamente e, visto que a forma mais
complexa do pensamento é o raciocínio, a Lógica
estuda ou tem em vista a correção do raciocínio.
Isso dá a entender que a nossa razão pode
funcionar desordenadamente, pode pôr as coisas
de pernas para o ar.
Por isso a Lógica ensina a colocar Ordem no
Pensamento.
49
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Noções de Lógica
Exemplo A:
Todo o mamífero é animal.
Todo cavalo é mamífero.
Portanto, todo cavalo é ___________.
Exemplo B:
Todo mamífero bebe leite.
O homem é mamífero.
Portanto, todo homem é ________e_________.
50
29/07/2012
2
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Existe Lógica no dia-a-dia?
Sempre que pensamos, o raciocínio e a lógica nos
acompanham necessariamente.
Daí 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.
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, ______________________________________.
51
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Torre de Hanói
Elabore um algoritmo que mova três discos de uma
Torre de Hanói, que consiste em três hastes (a – b
– c), uma das quais serve de suporte para três
discos de tamanhos diferentes (1 – 2 – 3 ), os
menores sobre os maiores. Pode-se mover um
disco de cada vez para qualquer haste, contanto
que nunca seja colocado um disco maior sobre o
menor. O objetivo é transferir os três discos para
outra haste.
52
1
2
3
a b c
http://www.prof2000.pt/users/pjca/jogos_ficheiros/hanoi/torre%20de%20hanoi.html
29/07/2012
3
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Três Jesuítas e Três Canibais
Três jesuítas e três canibais precisam atravessar
um rio; para tanto dispõem de um barco com
capacidade para duas pessoas. Por medidas de
segurança, não se deve permitir que em alguma
margem a quantidade de jesuítas seja inferior à
de canibais. Elabore uma sequência de passos
indicando as ações necessárias para que a
travessia seja feita de forma segura.
53
http://www.mdig.com.br/index.php?itemid=765
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Algoritmos
O conceito central da programação e da
ciência da computação é o de algoritmos.
Programar é basicamente construir
algoritmos.
Um algoritmo é a descrição de um padrão
de comportamento, expressado em termos
de um repertório bem definido e finito de
ações “primitivas”, das quais damos por
certo que elas podem ser executadas.
54
29/07/2012
4
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Algoritmos (Conceitos)
55
"Algoritmo é uma sequência de passos que visa atingir um
objetivo bem definido." (FORBELLONE, 1999)
"Algoritmo é a descrição de uma sequência de passos que deve
ser seguida para a realização de uma tarefa." (ASCENCIO, 1999)
"Algoritmo é uma sequência finita de instruções ou operações
cuja execução, em tempo finito, resolve um problema
computacional, qualquer que seja sua instância." (SALVETTI,
1999)
"Algoritmo são regras formais para a obtenção de um resultado
ou da solução de um problema, englobando fórmulas de
expressões aritméticas." (MANZANO, 1997)
"Ação é um acontecimento que, a partir de um estado inicial,
após um período de tempo finito, produz um estado final
previsível e bem definido. Portanto, um algoritmo é a descrição
de um conjunto de comandos que, obedecidos, resultam numa
sucessão finita de ações." (FARRER, 1999).
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Algoritmos
Outro conceito de Algoritmo é, formalmente,
uma seqüência finita de passos que levam a
execução de uma tarefa, ou seja, a atingir
um objetivo. Nesta pequena definição de
algoritmo deve-se notar a existência de três
idéias básicas:
Seqüência: uma ordem de execução das
instruções;
Finita: a seqüência de passos a serem
executados deve ser finita; e
Objetivo: um algoritmo é desenvolvido para se
atingir um determinado objetivo.
56
29/07/2012
5
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exemplos de Algoritmos
Exemplo de algoritmo sequencial
“traga a cesta com batatas do porão”;
“traga a panela do armário”;
“descasque as batatas”;
“devolva a cesta ao porão”;
57
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exemplos de Algoritmos
Exemplo de algoritmo com condição simples
“traga a cesta de batata do porão”;
“traga a panela do armário”;
“Se saia é clara” Então “coloque avental”;
“descasque as batatas”;
“devolva a cesta ao porão”;
58
29/07/2012
6
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exemplos de Algoritmos
Exemplo simples de algoritmo com repetição
“traga a cesta de batata do porão”;
“traga a panela do armário”;
“descasque uma batata”;
“descasque uma batata”;
P
“descasque uma batata”;
“devolva a cesta ao porão”;
59
13 Vezes
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exemplos de Algoritmos
Somar três números
1. Receber os três números.
2. Somar os três números.
3. Mostrar o resultado obtido.
Fazer um sanduíche (outro exemplo)
1. Pegar o pão.
2. Cortar o pão ao meio.
3. Pegar a maionese.
4. Passar a maionese no pão.
5. Pegar e cortar alface e tomate.
6. Colocar alface e tomate no pão
7. Pegar o hambúrguer.
8. Fritar o hambúrguer.
9. Colocar o hambúrguer no pão.
60
29/07/2012
7
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exemplos de Algoritmos
Trocar a Lâmpada
Pegar uma lâmpada nova.
Pegar uma escada.
Posicionar a escada embaixo da lâmpada queimada
Subir na escada com a lâmpada nova na mão.
Retirar a lâmpada queimada.
Colocar a lâmpada nova.
Descer da escada.
Testar o interruptor.
Guardar a escada.
Jogar a lâmpada velha no lixo.
61
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exemplos de Algoritmos
Ir para Escola
1. Acordar cedo.
2. Ir ao banheiro.
3. Abrir o armário para escolher uma roupa.
4. Se o tempo estiver quente, pegar uma camiseta e uma 
calça jeans; 
caso contrário, pegar um agasalho e uma calça jeans.
5. Vestir a roupa escolhida.
6. Tomar café.
7. Pegar uma condução.
8. Descer próximo à escola.
62
29/07/2012
8
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exemplos de Algoritmos
Sacar dinheiro do banco 24 horas
1. Ir até o banco 24 horas.
2. Colocar o cartão.
3. Digitar a senha
4. Solicitar a quantia desejada.
5. Se o saldo for maior ou igual à quantia desejada,
sacar;
caso contrário, mostrar mensagem de impossibilidade
de saque.
6. Retirar o cartão.
7. Sair do banco 24 horas
63
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
1. Compreender completamente o problema a ser resolvido,
destacando os pontos mais importantes (“verbos”) e os
objetos que o compõem.
2. Definir os dados de entrada, ou seja, quais dados serão
fornecidos e quais objetos fazem parte desse cenário-
problema.
3. Definir o processamento, ou seja, quais cálculos serão
efetuados e quais as restrições para esses cálculos. O
processamento é responsável pela transformação dos dados
de entrada em dados de saída. Além disso, deve-se verificar
quais objetos são responsáveis pelas atividades.
4. Definir os dados de saída, ou seja, quais dados serão
gerados depois do processamento.
5. Construir o algoritmo utilizando um dos tipos descritos na
próxima seção.
6. Testaro algoritmo realizando simulações.
Passos para Construção de Algoritmos
64
29/07/2012
9
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Tipos de Algoritmos
Fluxograma
Pseudocódigo ou portugol
65
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Fluxograma
O fluxograma consiste em analisar o enunciado do
problema e escrever, utilizando símbolos gráficos
pré-definidos, os passos a serem seguidos para
sua resolução.
Vantagem: o entendimento de elementos gráficos é
mais simples que o entendimento de textos.
Desvantagem: é necessário aprender a simbologia dos
fluxogramas e, além disso, o algoritmo resultante não
apresenta muitos detalhes, dificultando sua transcrição
para um programa.
66
29/07/2012
10
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Fluxograma
67
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Pseudocódigo ou Portugol
O pseudocódigo ou portugol consiste em analisar
o enunciado do problema e escrever, por meio de
regras predefinidas, os passos a serem seguidos
para sua resolução.
Vantagem: a passagem do algoritmo para qualquer
linguagem de programação é quase imediata, bastando
conhecer as palavras reservadas dessa linguagem que
serão utilizadas.
Desvantagem: é necessário aprender as regras do
pseudocódigo.
68
29/07/2012
11
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exemplo de Algoritmo
Algoritmo para multiplicar dois números
69
Narrativa
1. Receber dois números
que serão
multiplicados.
2. Multiplicar os
números.
3. Mostrar o resultado
obtido na
multiplicação.
Fluxograma Pseudocódigo
ALGORITMO
DECLARE N1, N2, M NUMERICO
ESCREVA “DIGITE DOIS NUMEROS”
LEIA N1, N2
M� N1*N2
ESCREVA “MULTIPLICAÇÃO=“, M
FIM_ALGORITMO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exemplo de Algoritmo
Algoritmo para dividir dois números
70
Narrativa
1. Receber dois números
que serão divididos.
2. Se o segundo número
for igual a zero, não
poderá ser feita a
divisão, pois não existe
divisão por zero; caso
contrário, dividir os
números e mostrar o
resultado da divisão.
Fluxograma Pseudocódigo
ALGORITMO
DECLARE NI, N2, D NUMÉRICO
ESCREVA "Digite dois números" 
LEIA NI, N2
SE N2 = 0 
ENTÃO
ESCREVA "Impossível dividir“
SENÃO 
INÍCIO
D �N1/N2
ESCREVA "Divisão = “, D
FIM
FIM_ALG0RITM0.
29/07/2012
12
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exemplo de Algoritmo
Algoritmo para calcular a média e mostrar a
situação
71
Narrativa
1. Receber as duas notas.
2. Calcular a média
aritmética.
3. Mostrar a média
aritmética.
4. Se a média aritmética
for maior ou igual a 7,
então a situação do
aluno é aprovado; caso
contrário, a situação é
reprovado.
Fluxograma Pseudocódigo
ALGORITMO
DECLARE NI, N2, M NUMÉRICO
ESCREVA "Digite as duas notas1 
LEIA NI, N2 
M �(NI + N2) /2 
ESCREVA "Média = ",M 
SE M > 7
ENTÃO ESCREVA "Aprovado" 
SENÃO ESCREVA "Reprovado" 
FIM ALGORITMO.
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exemplo de Algoritmo
Algoritmo para calcular o novo salário. Sabe-se que os funcionários
que recebem até R$500,00 terão aumento de 20%; os demais terão
aumento de 10%
72
Narrativa
1. Receber o salário atual
do funcionário.
2. Se o salário atual do
funcionário for de até
R$ 500, calcular o novo
salário com percentual
de aumento de 20%;
caso contrário, calcular
o novo salário com
percentual de aumento
de 10%.
3. Mostrar o novo salário.
Fluxograma Pseudocódigo
ALGORITMO
DECLARE SAL_ATUAL, 
NOVO_SAL NUMÉRICO
ESCREVA "Digite o salário atual 
do funcionário"
LEIA SAL_ATUAL
SE SAL_ATUAL < 500
ENTÃO NOVO_SAL �
SAL_ATUAL * 1,2 0 .
SENÃO N0V0_SAL �SAL_ATUAL 
* 1,10
ESCREVA "Novo salário = 
",N0V0_SAL
FIM_ALGORITMO.
29/07/2012
13
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Exercício
73
Em relação a algoritmos:
I. É uma sequência lógica de instruções que devem ser seguidas para
a resolução de um problema ou para execução de uma tarefa
II. Os algoritmos não podem ser utilizados na área das ciências
cognitivas devido a sua interpretação ambígua
III. Os algoritmos podem construir uma parte importante da
documentação de sistemas, pois descrevem as tarefas a serem
realizadas pelos programas
Dadas a sentenças, podemos afirmar que:
a) As afirmativas I e II são verdadeiras
b) As afirmativas II e III são falsas
c) As afirmativas I e III são falsas
d) As afirmativas I e II são falsas
e) As afirmativas I e III são verdadeiras
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Linguagem
74
Linguagem de programação é um método
padronizado para expressar instruções para um
computador. Uma linguagem permite que um
programador especifique precisamente sobre
quais dados um computador vai atuar, como estes
dados serão armazenados ou transmitidos e quais
ações devem ser tomadas sob várias
circunstâncias.
29/07/2012
14
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Conceitos Básicos
75
As etapas para o desenvolvimento de um
programa são:
Análise - Nesta etapa estuda-se o enunciado do
problema para definir os dados de entrada, o processa-
mento e os dados de saída.
Algoritmo - Ferramentas do tipo descrição narrativa,
fluxograma ou português estruturado são utilizadas para
descrever o problema com suas soluções.
Codificação - O algoritmo é transformado em códigos;
da linguagem de programação escolhida para se
trabalhar.
Portanto, um programa é a codificação de um
algoritmo em uma linguagem de programação
(ASCENCIO, 1999).
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Linguagem PASCAL
A linguagem PASCAL foi desenvolvida em 1968
por Niklaus Wirth, na Suíça, destinada
principalmente à programação científica, mas sua
grande evolução permitiu que, nos dias de hoje,
seja utilizada para qualquer fim.
Por se tratar de uma linguagem estruturada, isto é,
uma linguagem que possui regras para a escrita
de seus programas, é muito empregada nas
universidades por alunos que começam a
aprender programação.
76
29/07/2012
15
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Linguagem C/C++
A linguagem C foi o primeiro a implementá-la usando um
computador DEC PDP-11, que utilizava o sistema
operacional Unix. O marco inicial foi uma linguagem
chamada BCPL, desenvolvida por Martin Richards, que
teve forte influência em uma linguagem denominada B,
inventada por Ken Thompson. Na década de 1970, B levou
ao desenvolvimento de C.
Várias implementações de C foram criadas, gerando,
assim, muitas discrepâncias. Para resolver tal situação, o
ANSI (American National Standards Institute) .
A linguagem C++ é uma extensão da linguagem C. Os
incrementos encontrados na linguagem C++ foram feitos
para dar suporte à programação orientada a objetos. A
sintaxe dessa linguagem é basicamente a mesma da
linguagem C. 77
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Linguagem JAVA
A tecnologia JAVA é composta pela linguagem de
programação JAVA e pela plataforma de
desenvolvimento JAVA.
Essa linguagem de programação possui como
principais características: simplicidade, orientação
a objetos, portabilidade, alta performance e
segurança.
Nessa linguagem, os programas são escritos em
arquivos-texto com a extensão .java. Ao serem
compilados com o compilador javac, são gerados
os arquivos .class. Um arquivo .class é constituído
de bytecodes, código interpretado pela Máquina
Virtual Java (Java Virtual Machine). 78
29/07/2012
16
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Costa Lubanco / Joelio Piraciaba
Processo de Execução
A plataforma JAVA é composta:
Pela Máquina Virtual Java, responsável por fazer a interface entre
seu programa e o sistema operacional, transformando os
bytecodes (comuns a qualquer ambiente) em código nativo
reconhecido pelo hardware.
PelaAPI(Application Programming Interface) JAVA, composta por
um amplo conjunto de classes já implementadas e testadas que
fornecem variados recursos aos desenvolvedores.
79

Outros materiais