View
225
Download
0
Category
Preview:
Citation preview
Algoritmos IAula 2 – Lógica de Programação
Professor: Max Pereira
http://paginas.unisul.br/max.pereira
Ciência da Computação
O que é Lógica?
• O termo lógica está relacionado com o logos, razão, palavra ou discurso, que significa a ciência do raciocínio.
• A palavra está relacionada com uma maneira específica de raciocinar, de forma correta.
O que é Lógica?
• Podemos relacionar a lógica com a “correção do pensamento”.
• Determinar quais operações são válidas e quais não são.
• A lógica estuda e ensina a colocar “ordem no pensamento”.
Raciocínio
• Basicamente raciocinar consiste em “manipular” a informação disponível – aquilo que sabemos, ou supomos, ser verdadeiro – e extrair consequências disso, obtendo informação nova.
Raciocínio (Silogismo)
• Exemplos:
– Todo mamífero é um animal.
– Todo cavalo é um mamífero.
– Logo, todo cavalo é um animal.
– Todo marciano é verde.
– XPTO é marciano.
– Logo, XPTO é verde.
Argumentos
• Um dos objetivos da lógica é o estudo de técnicas de formalização, dedução é análise que permitam verificar a validade de argumentos.
Lógica na prática...
• Usamos lógica nas atividades do dia-a-dia não só na teoria, mas também na prática.– Sei que o livro está no armário.
– Sei que o armário está fechado.
– Logo, tenho que abrir o armário para pegar o livro.
– Sei que sou mais velho que José.
– Sei que José é mais velho que João.
– Logo, sou mais velho que João.
Lógica de Programação
• Pode ser definida como um conjunto de técnicas para encadear pensamentos a fim de atingir determinado objetivo.
• O objetivo da Lógica de Programação é a construção de algoritmos coerentes e válidos.
Algoritmo
• Dever ser elaborado através de ações claras e precisas, que a partir de um estado inicial, após um período de tempo finito, produzem um estado final previsível e bem definido.
• Garantir que sempre que executado, sob as mesmas condições, produza o mesmo resultado.
Algoritmo
• Soluções para problemas cotidianos podem ser escritas por sequências lógicas de atividades, ou seja, algoritmos:– Problema: Trocar uma lâmpada
1. Pegue uma escada.
2. Posicione a escada embaixo da lâmpada.
3. Pegue uma lâmpada nova.
4. Suba na escada.
5. Retire a lâmpada velha.
6. Coloque a lâmpada nova.
Algoritmo
• Escreva um algoritmo (sequência de passos) para trocar um pneu de um carro.
• Escreva um algoritmo para preparar um ovo frito.
Estrutura de decisão (seleção)
• Existem algoritmos nos quais a execução de alguns passos pode depender de decisões a serem tomadas.
• Necessidade de incluir um teste seletivo, através de uma condição que determina qual ou quais passos serão executados.
Estrutura de decisão (seleção)1. Pegar uma escada.2. Posicionar a escada embaixo da
lâmpada.3. Buscar uma lâmpada nova.4. Ligar o interruptor.5. Se a lâmpada não acender:
6. Subir na escada.7. Retirar a lâmpada
queimada.8. Colocar a lâmpada nova.
1. Ligar o interruptor.2. Se a lâmpada não acender.
3. Pegar uma escada.4. Posicionar a escada
embaixo da lâmpada.5. Buscar uma lâmpada nova.6. Subir na escada.7. Retirar a lâmpada
queimada.8. Colocar a lâmpada nova.
Estrutura de repetição
• As soluções apresentadas nos algoritmos anteriores são aparentemente adequadas, porém não prevê a possibilidade de a lâmpada nova não funcionar.
Estrutura de repetição1. Ligar o interruptor.2. Se a lâmpada não acender:
3. Pegar uma escada.4. Posicionar a escada embaixo da lâmpada.5. Buscar uma lâmpada nova.6. Subir na escada.7. Retirar a lâmpada velha.8. Colocar a lâmpada nova.9. Se a lâmpada não acender:
10. Retirar a lâmpada.11. Colocar outra lâmpada nova.12. Se a lâmpada ainda não acender
13. Retirar a lâmpada 14. Colocar outra lâmpada nova.
.
.
.
Estrutura de repetição
• Pelo algoritmo, caso a lâmpada não acenda, deve-se trocá-la novamente e repetir esse procedimento indefinidamente até que uma lâmpada funcione.
• Não sabemos quantas vezes teremos de repetir o teste até acharmos uma lâmpada que funcione.
• Em casos como esse devemos usar uma estrutura de repetição.
Estrutura de repetição
• Essas estruturas definem um fluxo de ações que se repete enquanto uma determinada situação acontece.
• Tem como objetivo garantir uma condição de parada.– Enquanto a lâmpada não acender:
• Retirar a lâmpada
• Colocar outra lâmpada nova.
Teste e condição de parada
1. Ligar o interruptor.
2. Se a lâmpada não acender:
3. Pegar uma escada.
4. Posicionar a escada embaixo da lâmpada.
5. Buscar uma lâmpada nova.
6. Subir na escada.
7. Retirar a lâmpada velha.
8. Colocar a lâmpada nova.
9. Enquanto a lâmpada não acender:
10. Retirar a lâmpada.
11. Colocar outra lâmpada nova.
Teste e condição de parada
• Assim, nesse algoritmo, enquanto a condição definida no passo 9 for verdadeira (ou seja, enquanto a lâmpada não acender), as ações definidas nos passos 10 e 11 serão repetidas.
Garantir a solução do problema...• Um programa de computador tradicional não tem
conhecimento prévio nem adquire experiências.
• Devemos determinar em detalhes todas as ações que o computador deve executar.
• Prever todos os obstáculos e a forma de transpô-los, ou seja, definir uma sequência finita de passos que garantam a solução do problema.
• Atividade realizada pelos programadores, os construtores de algoritmos.
Problemas
• Escreva um algoritmo que indique como fazer uma avaliação. O aluno não deve deixar questões em branco; assim deve continuar fazendo a avaliação enquanto existir questão em branco e o tempo da prova não estiver acabado. O aluno só deve resolver uma questão se souber resolvê-la, senão deve passar para outra.
Problemas
• Há uma caixa cheia de bolas, contendo bolas azuis e vermelhas. Além disso, há também outras duas caixas vazias. Respectivamente caixa 1, caixa 2 e caixa 3. Escreva um algoritmo para tirar todas as bolas da caixa 1, colocando as bolas azuis na caixa 2 e as bolas vermelhas na caixa 3.
Problemas• Uma determinada empresa decidiu que os
salários dos seus empregados serão aumentados, seguindo a seguinte regra: caso o salário seja menor que R$ 1.000, o aumento será de 15%; caso contrário, será de 10%. Um empregado do RH recebeu uma lista contendo os nomes e salários de todos os empregados. Escreva um algoritmo para que o empregado do RH calcule corretamente os novos salários.
Recommended