UNIDADE 2 ALGORITMO E RESOLUÇÃO DE PROBLEMAS Noções de lógica para construção de algoritmos Construção de algoritmos sobre problemas do cotidiano
O QUE É LÓGICA? Em termos usuais falamos de lógica no nosso dia-a-dia... LÓGICA Fulano é lógico. Eu sabia que isso aconteceria. Era lógico! A lógica do seu raciocínio é estranha. É a forma de ordenar os pensamentos para solucionar um problema ou executar uma tarefa. Exemplos: João é pai de Maria Pedro é pai de João Portanto, Pedro é avô de Maria
O QUE É LÓGICA DE PROGRAMAÇÃO? É o ato de programar o computador para que ele cumpra determinada tarefa. Para isso então é necessário usar lógica, ou seja, ordenar os pensamentos e identificar os passos para a solução do problema que será realizado pela máquina.
ALGORITMOS É uma seqüência de instruções bem definidas que, executadas passo a passo, permitem a solução de um problema. Passo-a-passo Significa que cada passo é completado antes que o próximo comece. Exemplo: É impossível ver novela antes de executar por inteiro o passo anterior de ligar a TV. Bem-definido Significa que cada passo é completamente definido a partir da entrada atual e dos passos anteriores, não permitindo ambigüidade.
UM EXEMPLO GENÉRICO DE ALGORITMO É UMA RECEITA DE BOLO. ALGORITMO No algoritmo, a etapa colocar farinha e fermento não está bem definida. Que tipo de farinha? Qual Instruções a quantidade de farinha e fermento? Farinha de Trigo Ovos Açúcar Fermento leite Manteiga 1) Bater duas claras em neve, 2) Colocar duas gemas, 3) Colocar um xícara de açúcar, 4) Colocar duas colheres de manteiga, 5) Colocar uma xícara de leite de coco, 6) Colocar farinha e fermento. 7) Colocar na forma e assar em fogo médio.
PASSOS NA CONSTRUÇÃO DE ALGORITMOS: 1) Entender o problema. 2) Identificar as entradas de dados. 3) Identificar as saídas de dados. 4) Determinar o que deve ser feito para transformar as entradas em saídas. Usar a estratégia do dividir para conquistar. Observar regras e limitações. Determinar todas as ações possíveis de ser realizadas. Eliminar as ambigüidade. 5) Construir o algoritmo. 6) Testar o algoritmo. 7) Executar o algoritmo.
EXEMPLO: CALCULAR A EXPRESSÃO [(10+9)-(2*8)]. 1. Pegue o número 10 e coloque em Pos1. 2. Pegue o número 9 e coloque em Pos2. 3. Some o conteúdo de Pos1 com o conteúdo de Pos2 colocando Pos1 Pos2 Pos3 Pos4 o resultado em Pos3. 4. Pegue o número 2 e coloque em Pos4. 5. Peque o número 8 e coloque em Pos 5. Pos5 Pos6 Pos7 Pos8 6. Multiplique o conteúdo de Pos4 e Pos5 colocando o resultado em Pos6. 7. Pegue o conteúdo de Pos3 e diminua do conteúdo de Pos6 e coloque o resultado em Pos8. Resultado=3 8. Informe o conteúdo de Pos8.
POR QUÊ É TÃO IMPORTANTE APRENDER A CONSTRUIR ALGORITMOS? Porque o algoritmo é a forma de transição entre o problema do mundo real e a solução sob a forma de programa de computador em uma linguagem qualquer. Problema 1. RESOLUÇÃO DO PROBLEMA Algoritmo Programa 2. IMPLEMENTAÇÃO NA LINGUAGEM ADEQUADA
RESOLUÇÃO DO PROBLEMA Determinação do modelo de solução para o problema proposto no mundo real. IMPLEMENTAÇÃO NA LINGUAGEM ADEQUADA Transformação deste modelo (algoritmo) numa linguagem de programação.
NA MAIORIA DAS VEZES A CONSTRUÇÃO DE ALGORITMOS É UMA TAREFA COMPLEXA. Para redução da complexidade de um problema usamos o método cartesiano dividir para conquistar. Este método consiste em dividir o problema em partes menores (sub problemas) de forma que seja mais fácil a sua resolução.
EXEMPLO: Fazer suco de laranja Lavar laranja Partir laranja ao meio Espremer laranja Temperar suco Servir suco Abrir a torneira Repetir até não haver mais laranjas Expor a laranja ao jato de água
FORMAS DE REPRESENTAÇÃO DOS ALGORITMOS: 1) Linguagem natural: Especificação verbal dos passos em linguagem natural. 2) Fluxogramas: São diagramas que representam graficamente o algoritmo, mostrando a sua lógica de forma gráfica, e enfatizando os passos individuais e o fluxo da execução. Os elementos são representados por símbolos convencionais e os relacionamentos por linhas de conexão, permitindo visualizar o fluxo lógico através do tempo.
FORMAS DE REPRESENTAÇÃO DOS ALGORITMOS: 2) Fluxogramas: Símbolos: inicio / fim leitura ação decisão conector impressão
FORMAS DE REPRESENTAÇÃO DOS ALGORITMOS: 3) Pseudocódigo: Linguagem especial para expressão de algoritmos, funciona como uma linguagem simplificada de programação, utilizando expressões concisas e prédefinidas para representar as ações e os fluxos de execução.
FORMAS DE REPRESENTAÇÃO DOS ALGORITMOS: 4) Programação é a seqüência de planejamento, projeto, escrita instalação e testes de instruções desempenhadas pelo computador. É uma arte e uma ciência: Arte porque existem muitas maneiras de se realizar um trabalho de processamento de dados e de se codificar instruções. Existe espaço para uma considerável dose de criatividade. É uma ciência, porque existem algumas regras que devem ser seguidas, porque é necessário o uso de lógica e porque existem alguns métodos rigorosos de programação que asseguram a eficiência, economia e a utilidade dos programas gerados.