Algoritmos I Aula 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ção 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. 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.