Vous êtes sur la page 1sur 470
PROG RAMAGAO C++ Conceitos basicos e Algoritmos Pimenta Rodrigues / Pedro Pereira Manuela Sousa FCA — EDITORA DE INFORMATICA RUA D. ESTEFANIA, 183-1.° ESQ, — 1000-154 LISBOA TEL, 21 35327 35 (S. Editorial) FAX 21 362 26 84 TEL. 21 351 14 48 (Servigo Clientes) E-mail: fca@fca.pt Visite a nossa pagina em http: // www.fca.pt site seguro (certificado pela Thawte) DISTRIBUICAO suse ~eaiien Temes, Ie LIVRARIAS: LISBOA: Avenida Praia da Vitéria, 14 — 1000-247 LISBOA — Telef, 21354 14 18 — Fax 21.35778.27 PORTO: Rua Damiio de Géis, 452 ~ 4050-226 PORTO — Telefs, 22 557 35 10 — Fax 22 55011 19 E-mail: lidel @tidel pe FC a, ‘Marea Registeda de FCA ~ Editora de Informéties, Lda, ° FUNMARIERTAL™ ssc Resists de FCA ~ Bor de norm, ta Depress BOM ©. stacs Rezistada de FCA ~ Editor de Tnformitics, La. © CD-ROM on disquete exemtuamenteinclutdota) na obra € oma oferta promecional come tal, cax0 seja detectda alguma incoreegdo ou falta de fcheios 2 FCA nia se obriga a subelitt fa) por ora) podendo a sou Livre arbirio substiuir © CD-ROM ou 8 disqvete ou ilizaroutrasolugae em ope tal como uisponibilizar es comecgées para download ne Internet. envio dos fichetes cm Talla Sou conresées por disquete ov outa tolugdo que mais se adnpte ts citcunstintax Copyright © FCA — EDITORA DE INFORMATICA LDA. - Setembro 1998 (Capa: Emilia Calgada ~ DesignXpress Pré-Impressio: Rabiscos de Luz Impressio e acabamento: Rolo & Filhos 1 8. ~ lndistrias Gréficas. E expressamemteproibido areprodugio, no todo ov em pare, da presente obra sem autoizagio da editora, de harmonia com a lei em vigor. Depésito Legal N° 254 605/07 ISBN 978-972-722-038.0 Este pictograma merece uma explicagao. O seu propdsito 6 alertar¢ lsitor para a ameaga cue reprosenta Para 0 fuluro da esorita, nomeadamente na area da edigdo éenica @ universildriz, o desenvolvimento massivo da fotocdpie. © Cédigo do Direito de Autor estabelece que é cxime punido por Iai, a fotocépla sem autorizagéo dos Propriotérios do copyright. No entanto, esta prética genaralizou-se eobretudo no ensino superior, rovocando uma queda substancial na compra do livros tecnices. Assim, num pais om que a literatura \cnica é to escasss, os autores nic senlem motivago para criar obras inécitas ¢ faz0-las publica, ficando os letores impossiblltados de ter bibliogratia em portugubs. Lemoramos porianto, que 6 expressamente proibida a reprodugao, no tode eu em parte, da presente ‘obra sem auicrizagdo da editor. PREFACIO Este livro constitui 0 primeiro de dois volumes que em seu conjunto se propdem tratar pedagogicamente os t6picos referentes ao desenvolvimento de aplicagdes em linguagem C++, usando o paradigma da Programagao Orientada por Objectos. Nao tem pressupostos de conhecimento prévio dos leitores quanto a programagao. Pode constituir-se manual de introdugao 4 programaco usando linguagem C++ em disciplinas curriculares de cursos de informatica; pode ser utilizado como texto orientador dos leitores que pretendam aprender a programar como auto- didactas; pode também ser utilizado por programadores experimentados em outras linguagens, para se familiarizarem com a linguagem C++ e com, o paradigma OOP (Object Oriented Programming). O texto tem vindo a ser testado (e optimizado) pelos autores (ao longo de cinco anos de docéncia) no Instituto Superior de Engenharia de Lisboa. Os dois volumes cobrem, no seu conjunto, os temas desenvolvidos nas trés disciplinas propedéuticas de programacao do curso de Electrénica e Comunica- gdes, nomeadamente Programagao, Algoritmos e Estruturas de Dados, ¢ Progra- macio Orientada por Objectos. Nao sendo ainda muito frequente em Portugal usar o C++ como a linguagem de imiciagio & programacio, os resultados pedagégicos obtidos com esta op¢ao revelaram-se, no entanto, bastante positivos. Tratando-se de uma linguagem complexa de dominar na sua globalidade, tem, no entanto, a virtude de proporcionar uma introdugao gradual da sua gramética - 4 medida que a formulagéo dos algoritmos o requeira. Por esse facto, a complexidade da linguagem nao acarreta substancial acréscimo 4 dificuldade intrinseca da assimilaciio dos conceitos basicos de programagao. Obviamente que nao é€ possivel aprender a programar (tal como nao se aprende a nadar ou a conduzir um automédvel) exclusivamente pela leitura dos manuais. Aprender a programar, subentende adquirir pratica, quer na leitura e interpretagio de programas e algoritmos, quer na escrita e teste de programas que obedegam a enunciados propostos. Andlise e sintese de programas devem ser tarefas entrosadas decorrentes em paralelo.