Construção de Algoritmos Lógica Algoritmos Prof. Rodrigo Rocha [email protected] http://www.bolinhabolinha.com Onde Estamos Ementa • Introdução: noção de algoritmo, dado, variável, comandos e programa. • Formas de representação de algoritmo: gráfica e pseudolinguagem. • Tipos de dados: Escalares. • Construções básicas: atribuição , leitura e escrita. • Análise de um problema e princípios de solução solução. • Desenvolvimento de algoritmos: técnica topdown. • Estruturas de controle: seleção e iteração. • Vetores, cadeia de caracteres e registros. 1 Conceitos Lógica • que estuda os métodos e princípios que permitem fazer distinção entre raciocínios válidos e não válidos, determinando o processo que leva ao conhecimento verdadeiro (wikipédia) • “a arte de pensar bem” (Forbellone) • Ferramenta para resolução de problemas Silogismo • todo mamífero é um animal • todo cavalo é um animal • portanto, todo cavalo é um mamífero Conceitos Lógica de programação • Uso correto das leis de pensamento e de processos de raciocínio e simbolização formais na programação de computadores • objetivando a solução lógica – válida e coerente Algoritmo • Seqüência de passos que visam a atingir um objetivo bem definido • abstrai detalhes computacionais • foca na resolução, depois pode ser implementado em qualquer linguagem de programação 2 Exemplos 1.1 Troca de lâmpada • • • • • • pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar lâmpada velha; colocar lâmpada nova. 1.2 Trocar a lâmpada com decisão • pegar uma escada; • • • • • • • posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; acionar o interruptor; se a lâmpada não acender, então subir na escada; retirar lâmpada queimada; colocar lâmpada nova. Exemplos Troca de lâmpada com repetição • • • • • • • • • • • • acionar o interruptor; se a lâmpada não acender, então pegar uma escada; d posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; acionar o interruptor; subir na escada; retirar lâmpada queimada; colocar lâmpada nova; enquanto a lâmpada não acender, faça retirar lâmpada queimada; colocar lâmpada nova; 3 Representação gráfica início ir para o primeiro soquete posicionar escada não acendeu? soquetes restantes < 10 F V acionar o interruptor retirar a lâmpada queimada subir na escada colocar lâmpada nova V acionar o interruptor não acendeu? F buscar lâmpada nova F retirar a lâmpada queimada ir ao próximo soquete colocar lâmpada nova V pegar uma escada acionar o interruptor fim Exercícios (PRODESP) Um agente de viagens atende três amigas. Uma delas é loura, outra é morena e a outra é ruiva. O agente sabe que uma delas se chama Bete, outra se chama Elza e a outra se chama Sara. Sabe, ainda, que cada uma delas fará uma viagem a um país diferente da Europa: uma delas irá à Alemanha, outra irá à França ç e a outra irá à Espanha. p Ao agente g de viagens, g ,q que q queria identificar o nome e o destino de cada uma, elas deram as seguintes informações: A loura: "Não vou à França nem à Espanha". A morena: "Meu nome não é Elza nem Sara". A ruiva: "Nem eu nem Elza vamos à França". O agente de viagens concluiu, então, acertadamente, que: (A) A loura é Sara e vai à Espanha. (B) A ruiva é Sara e vai à França. (C) A ruiva é Bete e vai à Espanha. (D) A morena é Bete e vai à Espanha. (E) A loura é Elza e vai à Alemanha. (PLT pág. 12 – Ex. de Fixação) 1.1, 1.2, 1.3 e 1.4 (PLT pág. 13 – Ex. propostos) • 2, 3 e 5 4 Bibliografia Livro texto (Programa do Livro texto - PLT) • FORBELLONE, A. Lógica de Programação. São Paulo: Pearson, 2005“ • MANZANO, J.A.N.G.. Algoritmos : lógica para desenvolvimento de programação de computadores. 1ª ed. São Paulo: Erica,2002. • ASCÊNCIO, A.F.G .; CAMPOS, E.D.. Fundamentos da Programação de Computadores. 1ª ed. São Paulo: Prentice Hall Brasil, 2002. Complementar • CORMEN, Thomas H. Algoritmos: teoria e prática. 1.ed. Rio de Janeiro: CAMPUS, 2002. • MANZANO, J. A. N. G. Algoritmos: lógica para desenvolvimento de programação. 1.ed. São Paulo: Erica, 1996. • ASTÊNCIO, A .F.G.; CAMPOS, E.D.. Fundamentos da Programação de Computadores. 1.ed. São Paulo: PRENTICE HALL BRASIL, 2002. 5