CIC 107 Programação de Computadores I David Menotti – [email protected] Professor Adjunto – DECOM UFOP 2009/2 Aviso Importante!!! © David Menotti CIC107 – Programação de Computadores Aviso Importante!!! © David Menotti CIC107 – Programação de Computadores Ementa do Curso © David Menotti CIC107 – Programação de Computadores Objetivos, Metodologia, etc. © David Menotti CIC107 – Programação de Computadores Bibliografia © David Menotti CIC107 – Programação de Computadores Avaliação CEPE: Conselho de Ensino, Pesquisa e Extensão da Universidade Federal de Ouro Preto © David Menotti CIC107 – Programação de Computadores Por que estudar computação ? Computação estuda os fluxos de informação em sistemas naturais... © David Menotti ...e como representar e tratar fluxos de informação em sistemas artificiais – Programação de Computadores Fonte:CIC107 http://www.dpi.inpe.br/gilberto/palestras.html Conexões e Fluxos são universais Interações entre proteínas de levedura (Barabasi e Boneabau, SciAm, 2003) © David Menotti Interações entre cientistas do Vale do Silício (Fleming e Marx, Calif Mngt Rew, 2006) – Programação de Computadores Fonte:CIC107 http://www.dpi.inpe.br/gilberto/palestras.html Tem computação em… Fonte: http://guiadoestudante.abril.com.br OUTRAS ENGENHARIAS, MEDICINA, etc. © David Menotti CIC107 – Programação de Computadores Por que estudar Programação ? Todos nós programamos. Ao programar desenvolvemos algoritmos Ao programar utilizamos lógica © David Menotti CIC107 – Programação de Computadores Por que estudar Programação ? Algoritmo Sequência de passos finitos com o objetivo de solucionar um problema. Problema Solução Importante: Algoritmo não é a solução de um problema. É uma alternativa de solução de um problema. © David Menotti CIC107 – Programação de Computadores Por que estudar Programação ? Todos nós, no dia-a-dia, nos deparamos com vários problemas… Estamos a todo instante concebendo algoritmos… Estamos a todo instante programando… DUVIDAM ??? 1- Retirar o telefone do gancho 2- Esperar o sinal 3- Discar o número 4- Falar ao telefone 5- Colocar o telefone no gancho © David Menotti algoritmo CIC107 – Programação de Computadores Por que estudar Programação ? Futuros Engenheiros Vocês programam ? Vocês irão desenvolver algoritmos em suas carreiras? SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM Problemas podem ser complexos, portanto algoritmos podem ser complexos © David Menotti CIC107 – Programação de Computadores PRECISAMOS TREINAR O RACIOCÍNIO LÓGICO, ENCADEAMENTO DE PASSOS, ETC. Exemplos Algoritmo para trocar lâmpada Se (lâmpada estiver for a do alcance) pegar a escada; Pegar lâmpada; Se (lâmpada estiver quente) pegar pano; Tirar lâmpada queimada; Colocar lâmpada nova; Um outro algoritmo?? © David Menotti CIC107 – Programação de Computadores Exemplos Algoritmo para fazer uma prova Ler a prova; Pegar caneta; Enquanto ((houver questão em branco) e (houver tempo)) faça Se (souber a questão) Resolva-a; Senão Pule para a próxima; Entregar a prova; Um outro algoritmo?? © David Menotti CIC107 – Programação de Computadores Exemplos Algoritmo para levar um leão, uma cabra e um pedaço de grama de um lado para outro do rio, usando um bote para tal tarefa. Sabe-se que nunca um leão pode ficar sozinho com uma cabra e nem a cabra sozinha com a grama. 1- Levar a grama e o leão; 2- Voltar com o leão; 3- Deixar o leão; 4- Levar a cabra; 5- Deixar a cabra; 6- Voltar com a grama; 7- Levar o leão e a grama; Um outro algoritmo?? © David Menotti CIC107 – Programação de Computadores Exercício Fazer um algoritmo para levar 3 missionários e 3 canibais de um lado para o outro do rio, usando um bote para tal tarefa. Sabe-se que nunca pode ter mais missionários do que canibais porque senão os missionários catequizam os canibais. O que fazer para levar os 6 de uma margem a outra?? © David Menotti CIC107 – Programação de Computadores Exercício Algoritmo para trocar 1 pneu Algoritmo para trocar n pneus (n>1) © David Menotti CIC107 – Programação de Computadores Próximas aulas Programa de computador: nada mais é do que um algoritmo escrito numa linguagem de computador… Lembram que temos que representar e tratar fluxos de informação em sistemas artificiais Estrutura de um computador Informações manipuladas por um computador Evolução da comunicação HumanoComputador © David Menotti CIC107 – Programação de Computadores