Buscar

Slides de Aula - Parte II

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 6 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 6 páginas

Continue navegando


Prévia do material em texto

30/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 
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 
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 
http://www.prof2000.pt/users/pjca/jogos_ficheiros/hanoi/torre de hanoi.html
http://www.prof2000.pt/users/pjca/jogos_ficheiros/hanoi/torre de hanoi.html
http://www.mdig.com.br/index.php?itemid=765
http://www.mdig.com.br/index.php?itemid=765
http://www.mdig.com.br/index.php?itemid=765
http://www.mdig.com.br/index.php?itemid=765
http://www.mdig.com.br/index.php?itemid=765
30/07/2012 
2 
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 
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 
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”; 
… 
“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 
30/07/2012 
3 
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 
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ÓGICADE 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. Testar o algoritmo realizando simulações. 
Passos para Construção de Algoritmos 
64 
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 
30/07/2012 
4 
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 
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. 
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. 
30/07/2012 
5 
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. 
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 
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++ foramfeitos 
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 
30/07/2012 
6 
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. 
Pela API(Application Programming Interface) JAVA, composta por 
um amplo conjunto de classes já implementadas e testadas que 
fornecem variados recursos aos desenvolvedores. 
 
79