Prévia do material em texto
ALGORITMOS E PROGRAMAÇÃO CURSO DE TECnOlOgia Em análiSE E DESEnvOlvimEnTO DE SiSTEmaS - EaD Disciplina: Algoritmos e Programação — Prof. Ms. Rodrigo Plotze Meu nome é Rodrigo Plotze. Sou mestre e doutorando na área de Computação Gráfica e Processamento de Imagens pelo Instituto de Ciências Matemáticas e de Computação da USP – São Carlos. Desenvolvo pesquisas na área de Visão Computacional aplicada à Biologia e Medicina, na qual tenho diversos trabalhos publicados em periódicos nacionais e internacionais. Trabalho como docente do curso de Pós-Graduação em Desenvolvimento de Projetos em Java no Centro Universitário Claretiano, e, também, no curso de graduação em Ciência da Computação da Universidade Paulista. Além disso, atuo como tutor no curso de Graduação de Sistemas de Informação da Universidade Federal de São Carlos (UAB-UFSCar). ALGORITMOS E PROGRAMAÇÃO Guia de Disciplina Caderno de Referência de Conteúdo Prof. Ms. Rodrigo Plotze © Ação Educacional Claretiana, 2009 – Batatais (SP) Trabalho realizado pelo Centro Universitário Claretiano de Batatais (SP) Curso: Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: Algoritmos e Programação Versão 1 – jul./2009 Reitor: Prof. Dr. Pe. Sérgio Ibanor Piva vice-Reitor: Prof. Ms. Pe. Ronaldo Mazula Pró-Reitor administrativo: Pe. Luiz Claudemir Botteon Pró-Reitor de Extensão e ação Comunitária: Prof. Ms. Pe. Ronaldo Mazula Pró-Reitor acadêmico: Prof. Ms. Luís Cláudio de Almeida Coordenador geral de EaD: Prof. Artieres Estevão Romeiro Coordenadora do Curso de Tecnologia em análise e Desenvolvimento de Sistemas: Prof. Ms. Gislaine Cristina Micheloti Rosales Coordenador de material Didático mediacional: J. Alves Preparação Aletéia Patrícia de Figueiredo Aline de Fátima Guedes Camila Maria Nardi Matos Camila Marques dos Santos Elaine Aparecida de Lima Moraes Elaine Cristina de Sousa Goulart José Teixeira da Silva Lidiane Maria Magalini Luciana Mani Adami Luiz Fernando Trentin Patrícia Alves Veronez Montera Rosemeire Cristina Astolphi Buzzelli Simone Aparecida Tiziotto Simone Rodrigues de Oliveira Revisão Felipe Aleixo Isadora de Castro Penholato Maiara Andréa Alves Rodrigo Ferreira Daverni Projeto gráfico, diagramação e capa Eduardo de Oliveira Azevedo Gustavo Campana Joice Cristina Micai Lúcia Maria de Sousa Ferrão Luis Antônio Guimarães Toloi Raphael Fantacini de Oliveira Renato de Oliveira Violin Tamires Botta Murakami Todos os direitos reservados. É proibida a reprodução, a transmissão total ou parcial por qualquer forma e/ou qualquer meio (eletrônico ou mecânico, incluindo fotocópia, gravação e distribuição na web), ou o arquivamento em qualquer sistema de banco de dados sem a permissão por escrito do autor e da Ação Educacional Claretiana. Centro Universitário Claretiano Rua Dom Bosco, 466 - Bairro: Castelo Batatais SP – CEP 14.300-000 cead@claretiano.edu.br Fone: (16) 3660-1777 – Fax: (16) 3660-1780 – 0800 941 0006 www.claretiano.edu.br SUmáRiO gUia DE DiSCiPlina APRESENTAçãO1 ............................................................................................... VII DADOS GERAIS DA DISCIPLINA2 ......................................................................... VII CONSIDERAçõES GERAIS3 .................................................................................. IX BIBLIOGRAFIA BáSICA4 ...................................................................................... IX BIBLIOGRAFIA COMPLEMENTAR5 .......................................................................... IX CaDERnO DE REFERÊnCia DE COnTEÚDO APRESENTAçãO ............................................................................................. 1 inTRODUÇÃO À DiSCiPlina AULA PRESENCIAL ......................................................................................... 2 INTRODUçãO À CONSTRUçãO DE ALGORITMOUNIDADE 1 – S INTRODUçãO1 ................................................................................................... 4 INTRODUçãO À LóGICA2 .................................................................................... 4 ELABORAçãO E REPRESENTAçãO DE ALGORITMOS3 ............................................... 12 AMBIENTE PARA CONSTRUçãO DE ALGORITMOS4 .................................................. 21 CONSIDERAçõES5 ............................................................................................. 25 FUNDAMENTOS DA CONSTRUçãO DE ALGORITMOUNIDADE 2 – S INTRODUçãO1 ................................................................................................... 28 ESTRUTURA SEqUENCIAL2 .................................................................................. 28 EXPRESSõES ARITMÉTICAS3 ............................................................................... 34 EXERCíCIOS RESOLVIDOS4 ................................................................................. 43 CONSIDERAçõES5 ............................................................................................. 47 ESTRUTURAS DE CONTROLUNIDADE 3 – E INTRODUçãO1 ................................................................................................... 50 ESTRUTURA CONDICIONAL2 ................................................................................ 50 ESTRUTURA DE REPETIçãO3 ............................................................................... 61 EXERCíCIOS RESOLVIDOS4 ................................................................................. 79 CONSIDERAçõES5 ............................................................................................. 88 ESTRUTURA DE DADOUNIDADE 4 – S INTRODUçãO1 ................................................................................................... 90 ESTRUTURAS DE DADOS HOMOGêNEAS2 .............................................................. 91 ESTRUTURAS DE DADOS HETEROGêNEAS3 ........................................................... 107 EXERCíCIOS RESOLVIDOS4 ................................................................................. 114 CONSIDERAçõES 5 ............................................................................................ 123 PROGRAMAçãO MODULAUNIDADE 5 – R INTRODUçãO1 ................................................................................................... 126 PROCEDIMENTOS2 ............................................................................................ 128 FUNçõES3 ........................................................................................................ 138 RECURSIVIDADE4 .............................................................................................. 142 EXERCíCIOS RESOLVIDOS5 ................................................................................. 144 CONSIDERAçõES6 ............................................................................................. 151 G U IA D E D IS C IP L IN A ApresentAção1 Seja bem-vindo à disciplina algoritmos e Programação. Neste momento, você está prestes a iniciar o estudo do fascinante mundo da construção de algoritmos. Ao longo desta disciplina, aprenderemos a importância da construção de algoritmos no processo de desenvolvimento de software. Além disso, estudaremos os conceitos fundamentais para a programação de computadores. Inicialmente, veremos os princípios lógicos aplicados à construção de algoritmos, além das metodologias para sua elaboração e representação. Aprenderemos, ainda, os aspectos fundamentais para a programação de computadores, tais como: tipos de dados, variáveis e comandos de entrada e saída. Em seguida, começaremos nossa viagem pelas principais estruturas para a construção de algoritmos, como, por exemplo: estruturas condicionais, estruturas de repetição e estruturas de dados (homogêneas e heterogêneas). Por fim, conheceremos as técnicas para modularização de algoritmos. Bons estudos! DADos GerAis DA DisciplinA2Ementa Introdução à lógica. Conceitos básicos de programação de computadores. Estrutura sequencial. Lógica Booleana. Estruturas de decisão. Estruturas de repetição. Vetores. Matrizes. Ambientes de programação. Objetivo geral Os alunos da disciplina algoritmos e Programação dos cursos de Graduação na modalidade EAD do Claretiano, dado o Sistema Gerenciador de Aprendizagem e suas ferramentas, construirão algoritmos utilizando os principais fundamentos da programação de computadores. Além disso, terão habilidades para utilizar algoritmos na solução de problemas do cotidiano. Com esse intuito, os alunos contarão com recursos técnico-pedagógicos facilitadores de aprendizagem, como material didático mediacional, bibliotecas físicas e virtuais, ambiente virtual, acompanhamento do tutor complementado por debates no Fórum e na Lista. Ao final desta disciplina, de acordo com a proposta orientada pelo tutor, os alunos serão capazes de desenvolver algoritmos que demonstrem a abstração de problemas reais em soluções computacionais, além de elaborar um resumo, uma síntese, ou outras atividades. Para esse fim, levarão em consideração as ideias debatidas na Sala de Aula Virtual, por meio de suas ferramentas, bem como o que produziram durante o estudo. Competências, habilidades e atitudes Ao final deste estudo, os alunos dos cursos de graduação contarão com uma sólida base teórica para fundamentar criticamente a sua prática profissional. Além disso, GUIA DE DISCIPLINA CRC • • • © Algoritmos e Programação Claretiano – BatataisVIII Tecnologia em Análise e Desenvolvimento de Sistemas adquirirão as habilidades não somente para cumprir o seu papel profissional nesta área do saber, mas também para agir com ética e com responsabilidade social, contribuindo, assim, para a formação integral do ser humano. modalidade ( ) Presencial (x) A distância Duração e carga horária A carga horária da disciplina algoritmos e Programação é de 90 horas, com dedicação média de seis horas semanais. Esta disciplina tem duração de 16 semanas para o desenvolvimento do conteúdo e para a realização da avaliação final. Neste período, realizaremos atividades presenciais e atividades a distância. Observe, no quadro demonstrativo a seguir, a distribuição das unidades, assim como a respectiva carga horária de cada uma delas. Preencha a coluna “semanas” junto com seu tutor e fique atento às datas dos encontros presenciais. UniDaDES SEmanaS aTiviDaDES PRESEnCiaiS aTiviDaDES a DiSTÂnCia Introdução à disciplina – Aula Presencial 1ª 2h 1 10h 2 10h 3 25h 4 20h 5 20h Aula Intermediária 2h Avaliação 16ª 1h Subtotal 5h 85h TOTal 90h aTEnÇÃO! As informações referentes à carga horária descritas no quadro anterior são apenas previsões, pois o tutor/coordenador da disciplina é quem definirá a carga horária correta. Você terá 82 horas na modalidade EAD e oito horas na modalidade presencial. O conteúdo programático para as cinco unidades está desenvolvido no Caderno de referência de conteúdo, anexo a este Guia de disciplina, e os exercícios propostos constam do Caderno de atividades e interatividades (CAI). GUIA DE DISCIPLINA Tecnologia em Análise e Desenvolvimento de Sistemas © Algoritmos e Programação • • • CRC Batatais – Claretiano IX consiDerAções GerAis3 A disciplina algoritmos e Programação apresentará, ao longo do estudo das unidades, as principais características para a construção de algoritmos. Desse modo, você será conduzido a um universo de possibilidades e, por meio deles, terá condições de transformar problemas em soluções computacionais. Para aproveitarmos ao máximo o estudo, será necessário desenvolvermos inúmeros algoritmos, que servirão de exemplo para o estudo e compreensão do conteúdo. Neste Guia de disciplina, você obteve as informações básicas necessárias para o seu estudo, o qual se efetivará com o estudo das unidades instrucionais e das referências nelas disponibilizadas. A construção de algoritmos é fascinante! Nesse contexto, você poderá utilizar a Sala de Aula Virtual para discutir sobre outras tecnologias e novas tendências. Faça de sua atuação um instrumento de trabalho pessoal e social! Bons estudos! BiBlioGrAfiA BásicA4 ASCENCIO, A. F. G. Fundamentos da programação de computadores: algoritmos, Pascal e C/C++. São Paulo: Prentice Hall, 2002. MANZANO, J. A. N. G. Algoritmos: lógica para desenvolvimento de programação. 2. ed. São Paulo: Erica, 1996. SALVETTI, D. D.; Barbosa, L. M. Algoritmos. São Paulo: Makron Books, 1998. BiBlioGrAfiA complementAr5 AVILLANO, I. de C. Algoritmos e Pascal. São Paulo: Ciência Moderna, 2006. ABE, J. M.; SCALZITTI, A.; SILVA FILHO, J. I. da. Introdução à lógica para a ciência da computação. São Paulo: Arte & Ciência, 2001. 248 p. ASCENCIO, A. F. G. Lógica de programação com Pascal. São Paulo: Makron Books, 1999. DAGHLIAN, J. Lógica e álgebra de Boole. 4. ed. São Paulo: Atlas, 1995. FORBELLONE, A. L. V. Lógica de programação: a construção de algoritmos e estruturas de dados. São Paulo: Makron Books, 1993. GERSTING, J. L. Fundamentos matemáticos para a ciência da computação. 5. ed. Rio de Janeiro: LTC, 2004. GUIMARAES, A. M. Algoritmos e estruturas de dados. Rio de Janeiro: LTC, 1994. (Ciência de Computação). MARTINS, J. P. Introdução à programação usando o PASCAL. São Paulo: MacGraw-1994. SOUZA, M. A. F. Algoritmos e lógica de programação. São Paulo: Thomson Pioneira, 2006. WIRTH, N. Algoritmos e estruturas de dados. Rio de Janeiro: Prentice-Hall, 1986. ZIVIANI, N. Projeto de algoritmos: com implementações em Pascal e C. 4 ed. São Paulo: Pioneira, 2000. Anotações