Internet & World Wide Web Como Programar, 5ta Edición - DeitelInternet & world wide web como...

1

Click here to load reader

Transcript of Internet & World Wide Web Como Programar, 5ta Edición - DeitelInternet & world wide web como...

1. A C C ESO A LOS C A PTU LO S A D ICIO N A LES D EL LIB R O Para acceder a los captulos 19 a 29 y apndices E y F (todos en ingls) mencionados en el texto, visite el sitio Web del libro: www.pearsonenespaol.com /deitel Utilice una moneda para descubrir el cdigo de acceso. (No use objetos filosos |>orque podra daarlo). r 1 l_ J IMPORTANTE Este cdigo de acceso tiene vigencia de 2 dias! Asegrese que el cdigo no aparezca daado ya que slo puede usarse una vez y no ser reemplazado en ningn caso. www.detodoprogramacion.com 2. Internet & World Wide Web CMO PROGRAMAR www.detodoprogramacion.com 3. www.detodoprogramacion.com 4. Internet & World Wide Web CMO PROGRAMAR Quinta edicin Paul Deitel D eitel & Associates, Inc. Harvey Deitel D eitel & Associates, Inc. Abbey Deitel D eitel & Associates, Inc. T r a d u c c i n Alfonso Vidal Romero Elizondo Ingeniero en Sistemas Electrnicos ITESM , CampusMonterrey R e v b i n t c n ic a Sergio Fuenlabrada Velizque/ Edna Martha M iranda Chvcz Jos Luis Lpez Goytia Judith Sonck Ixdczm a Mario Alberto Sesma M artnez sk ar Armando Gmez Coronel Academia de Computacin Unidad Profesional Interdisciplinaria de Ingeniera y Ciencias Socialesy Administrativas (UPI1CSA) Instituto Politcnico Nacional, Mxico Sandra Luz Gmez Coronel Academia de Electrnica Unidad Profesional Interdisciplinaria de Ingeniera y TecnologasAvalizadas (UPITEA) Instituto Politcnico Nacional, Mxico PEARSON www.detodoprogramacion.com 5. D atos d e catalo g aci n bibliogrfica DEITEL, PAUL; DEITEL, HARVEY Y DEITEL, ABBEY Cmo programar Internet & World Wide Web Quinta edicin PEARSON EDUCACIN. Mxico. 2014 ISBN: 978-607-32-2290-7 rea: Computacin Formato: 20 x 25.5 cm Pginas: 720 Authorizcd translation from thc English languogc cdition cntitlcd INTERNET AND WORLD WIDE WEB HOW TO PROCiRAM, 5th cdition by (HARVEY & PAUL) DEITEL & ASSOCIATES; HARVEY DEITEL; ABBF.Y DEITEL, publishcd by Pcarson Education, Inc., publishing as Prenticc Hall, Copyright C 2012. Alt rights rcscrvcd. ISBN 9780132151009 Traduccin autorizada de la edicin en idioma ingles titulada IN IERNET AND WORLD WIDE WEB HOW TO PROGRAM, 5* edicin por (HARVEY & PAUL) DEITEL & ASSOCIATES; HARVEY DEITEL; ABBEY DEITEL, publicada por Pcarson Education, Inc., publicada como Prentioe Hall, Copyright O 2012. Todos los derechos reservados. Esta edicin en espaol es la nica autorizada. QUINTA EDICIN, 2014 Edicin en espaol Direccin General: Direccin Educacin Superior: Editor Sponsor: Editor de Desarrollo: Supervisor de Produccin: Gerencia Editorial Educacin Superior Latinoamrica: Philip de la Vega Mario Conueras Luis M. Cruz Castillo c-mail: [email protected] Bcmardino Gutirrez Hernndez Gustavo Rivas Romero Marisa de Anta D.R. 2014 por Pcarson Educacin de Mxico, S.A. de C.V. Atlaoomulco 500-5o. piso Col. Industrial Atoto, C.P. 53519 Nnucalpan de Jurez, Estado de Mxioo Cmara Nacional de la Industria Editorial Mexicana. Reg. nm. 1031. Reservados todos los derechos. Ni la totalidad ni parte de esta publicacin pueden reproducirse, registrarse o transmitirse, por un sistema de recuperacin de informacin, en ninguna forma ni por ningn medio, sea electrnico, mecnico, foloquimico, magntico o clectroptico, por fotocopia, grabacin o cualquier otro, sin permiso previo por escrito del editor. El prstamo, alquiler o cualquier otra forma de cesin de uso de este ejemplar requerir tambin la autorizacin del editor o de sus representantes. ISBN VERSIN IMPRESA: 978-607-32-2290-7 ISBN VERSIN E-BOOK: 978-607-32-2291-4 ISBN F.-CHAPTF.R: 978-607-32-2292-1 Impreso en Mxico. Printed in Mxico. 1 2 3 4 5 6 7 8 9 0 - 16 15 14 13 PEARSON www.pearsonenespanol.com www.detodoprogramacion.com 6. En memoria de TauC(.Baran, diseador de Ca red de comunicaciones distribuidas y de [a conmutacin de paquetes, que Cesobreviven y forman Cabase de Cosprotocolos utidzados en Internet en Ca actuaddad. Paul, Harveyy Abbey Dettel www.detodoprogramacion.com 7. Marcas registradas deitrl, d insecto con los dos pulgares hacia artiba y dive into son marcas registradas de Oeitel & Associates, Inc. Apache es marca rcgisrmda de The Apache Software R>undation. Apple, iPhonc, iPad, OS y Safari son marcas registradas de Apple. Inc. CSS, DOM , XHTM L y XML son marcas registradas del Consorcio World Wide Web. Firefbx es marca registrada de Mozilla Foundation. Googlc es marca registrada de Google. Inc JavaScript, Java y todas las marcas basadas en Java son marcas comerciales o registradas de Oracle en Estados Unidos y otros pases. Microsoft, Internet Explorer, Sihrerlight y el logotipo de Windows son marcas comerciales o registradas de Microsoft Corporation en Estados Unidos y/o en otros pases. Opera es marca registrada de Opera Software. www.detodoprogramacion.com 8. Prefacio xix Antes de empezar xxxi 1 Introduccin a las computadoras e Internet I 1.1 Introduccin 2 1.2 Internet en la industria y la investigacin 3 1.3 H TM L5, CSS3, JavaScript, Canvas y jQ uery 6 1.4 Demostraciones 9 1.5 Evolucin de Internet y de la World W ide Web 10 1.6 Fundamentos de la Web 12 1.7 Arquitectura de aplicaciones multinive! 16 1.8 Comparacin entre las secuencias de comandos del lado del cliente y del lado del servidor 17 1.9 Consorcio World W ide Web (W 3C) 18 1.10 Web 2.0: a socializar 18 1.11 Jerarqua de datos 23 1.12 Sistemas operativos 25 1.12.1 Sistemas operativos de escritorio y de Notcbook 25 1.12.2 Sistemas operativos mviles 26 1.13 Tipos de lenguajes de programacin 27 1.14 Tecnologa de objetos 29 1.15 Mantenerse actualizado con las tecnologas de la informacin 31 2 Introduccin a HTML5: parte I 37 2.1 Introduccin 38 2.2 Edicin de H TM L5 38 2.3 El primer ejemplo de H TM L5 38 2.4 Servicio de validacin de H TM L5 del W 3C 41 2.5 Encabezados 41 www.detodoprogramacion.com 9. 2.6 Vinculacin 42 2.7 Imgenes 45 2.7.1 Atributo a l t 47 2.7.2 Elementos vacos 47 2.7.3 Uso de imgenes comohipcrvnculos 47 2.8 Caracteres especiales y reglas horizontales 49 2.9 Listas 51 2.10 Tablas 54 2.11 Formularios 58 2.12 Vinculacin interna 65 2.13 Elementos meta 67 2.14 Recursos Web 69 3 Introduccin a HTML5: parte 2 76 3.1 Introduccin 77 3.2 Nuevos tipos 1nput de formularios de H TM L5 77 3.2.1 in p u t tipo c o lo r 80 3.2.2 In p u ttip o date 82 3.2.3 input tipo datetim e 82 3.2.4 input tipo d atetlm e-lo cal 82 3-2.5 input tipo email 83 3.2.6 input tipo month 84 3.2.7 in p u t tiponumber 84 3.2.8 input tipo range 85 3-2.9 input tipo search 85 3.2.10 input tipo te l 86 3-2.11 Input tipo time 86 3.2.12 input tipo u rl 87 3.2.13 Input tipo week 87 3.3 Elementos in p u t y d a ta lis t y el atributoautocom plete 87 3-3.1 Atributo autoconplete delelemento input 87 3.3.2 Elemento d a ta lis t 90 v i i i Contenido www.detodoprogramacion.com 10. ix 90 96 96 96 96 96 96 96 97 98 98 105 106 106 108 111 114 116 118 120 122 123 127 130 132 136 Elementos de estructura de pgina 3.4.1 Elemento header 3.4.2 FJemcnto nav 3.4.3 Elemento fig u re y elemento fig eap tio n 3.4.4 Elemento a r tic le 3.4.5 Elemento summary y elemento d e ta lls 3.4.6 Elemento sectio n 3.4.7 Elemento asld e 3.4.8 Elemento m eter 3.4.9 Elemento fo o te r 3.4.10 Semntica a nivel de texto: elemento mark y elemento wbr Introduccin a las hojas de estilo en cascada (Cascading Style Sheets, CSS): parte I Introduccin Estilos en lnea Hojas de estilo incrustadas Estilos conflicruados Vinculacin de hojas de estilo externas Posicionamiento de los elementos: posicionamicnto absoluto, z-Index Posicionamiento de los elementos: posicionamiento relativo, span Fondos Dimensiones de los elementos Modelo de cajas y flujo del texto Tipos y consultas de medios Mens desplcgables (Opcional) Hojas de estilo de usuarios Recursos Web www.detodoprogramacion.com 11. X Contenido 5 Introduccin a las hojas de estilo en cascada (Cascading Style Sheets, CSS): parte 2 142 5.1 Introduccin 143 5.2 Sombras de texto 143 5-3 Esquinas redondeadas 144 5.4 Color 145 5.5 Sombras de cajas 146 5.6 Gradientes lineales: introduccin a los prefijos de proveedor 148 5.7 Gradientes radiales 151 5.8 (Opcional: WebKit solamente) Trazo de texto 153 5.9 Mltiples imgenes de fondo 153 5.10 (Opcional: WebKit solamente) Reflejos 155 5.11 Bordes de imgenes 156 5.12 Animacin: selectores 159 5.13 Transiciones y transformaciones 162 5.13.1 Las propiedades tra n s ltlo n y transform 162 5.13.2 Inclinacin 164 5.13.3 Transiciones entre imgenes 165 5.14 Descarga de fuentes Web y la regla font-face 166 5.15 Mdulo de diseo de caja flexible y selectores : nth-chi Id 168 5.16 Diseo multicolum na 171 5.17 Consultas de medios 173 5.18 Recursos Web 177 6 JavaScript: introduccin a las secuencias de comandos 185 6.1 Introduccin 186 6.2 Su primera secuencia de comandos: mostrar una lnea de texto con JavaScript en una pgina Web 186 6.3 Cmo modificar su primera secuencia de comandos 189 www.detodoprogramacion.com 12. Contenido x i 6.4 Cmo obtener la entrada del usuario mediante dilogosprompt 192 6.4.1 Pgina de bienvenida dinmica 192 6.4.2 Suma de enteros 196 6.5 Conceptos de la memoria 199 6.6 Aritmtica 200 6.7 Toma de decisiones: operadores de igualdad y relacinales 202 6.8 Recursos Web 207 7 JavaScript: instrucciones de control I 214 7.1 Inirod uccin 215 7.2 Algoritmos 215 7.3 Pscudocdigo 215 7.4 Instrucciones de control 215 7.5 Instruccin de seleccin 1f 218 7.6 Instruccin de seleccin i f . . .e ls e 219 7.7 Instruccin de repeticin whi le 223 7.8 Formulacin de algoritmos: repeticin controlada por contador 225 7.9 Formulacin de algoritmos: repeticin controlada por centinela 228 7.10 Formulacin de algoritmos: instrucciones de control anidadas 234 7.11 Operadores de asignacin 238 7.12 Operadores de incremento y decrcmento 239 7.13 Recursos W eb 242 8 JavaScript: instrucciones de control II 2 5 1 8.1 Introduccin 252 8.2 Fundamentos de la repeticin controlada por contador 252 8.3 Instruccin de repeticin fo r 253 8.4 Ejemplos sobre el uso de b instruccin fo r 256 8.5 Instruccin de seleccin mltiple svritch 261 8.6 Instruccin de repeticin d o .. .w hlle 264 8.7 Instrucciones break y continu 266 www.detodoprogramacion.com 13. x Contenido 8.8 Operadores lgicos 268 8.9 Recursos Web 271 9 JavaScript: funciones 278 9.1 Introduccin 279 9.2 Mdulos de programas en JavaScript 279 9.3 Definiciones de (unciones 280 9.3-1 La (uncin cuadrado definida por el programador 281 9.3.2 La (uncin mximo definida por el programador 283 9.4 Notas sobre las (unciones definidas por el programador 285 9.5 Generacin de nmeros aleatorios 286 9.5.1 Escalar y desplazar nmeros aleatorios 286 9-5.2 Visualizar imgenes aleatorias 287 9.5.3 Tirar el dado repetidas veces y mostrar las estadsticas 291 9.6 Ejemplo: Juego de probabilidad; introduccin a los elementos audio y video de H TM L5 296 9.7 Reglas de alcance 306 9.8 Funciones globales de JavaScript 308 9.9 Recursividad 309 9.10 Comparacin entre recursividad e iteracin 313 10 JavaScript: arreglos 324 10.1 Introduccin 325 10.2 Arreglos 325 10.3 Declaracin y asignacin de arreglos 327 10.4 Ejemplos del uso de arreglos 327 10.4.1 Creacin, iniciaiizacin y aumento del tamao de arreglos 327 10.4.2 Iniciaiizacin de arreglos con listas inidalizadoras 331 10.4.3 Suma de los elementos de un arreglo con fo r y fo r. .. in 332 10.4.4 Uso de los elementos de un arreglo como contadores 334 10.5 Generador de imgenes al azar mediante el uso de arreglos 337 www.detodoprogramacion.com 14. Contenido xi 10.6 Referencias y parmetros de referencia 339 10.7 Paso de arreglos a funciones 340 10.8 Ordenamiento de arreglos mediante el mtodoso rt de Array 343 10.9 Bsqueda en arreglos con el mtodo 1ndexOf de Array 344 10.10 Arreglos multidimensionales 347 I I JavaScript: objetos 360 11.1 Introduccin 361 11.2 Objeto Math 361 11.3 Objeto S trin g 363 11.3.1 Fundamentos de caracteres y cadenas 363 11.3.2 Mtodos del objeto S trln g 363 11.3.3 Mtodos de procesamiento de caracteres 365 11.3.4 Mtodos de bsqueda 366 11.3.5 Divisin de cadenas y obtencin de subeadenas 369 11.4 Objeto Date 371 11.5 Objetos Bool ean y Number 376 11.6 Objeto document 377 11.7 Bsquedas favoritas en Tw itter almacenamiento Web de H TM L5 378 11.8 Uso de JSON para representar objetos 385 12 Modelo de objetos de documento (DOM): objetos y colecciones 395 12.1 Introduccin 396 12.2 Modelado de un documento: nodos y rboles del D O M 396 12.3 Recorrido y modificacin de un rbol de D O M 399 12.4 Colecciones del D O M 409 12.5 Estilos dinmicos 411 12.6 Usa de un temporizador y de estilos dinmicos para crearefectos animados 413 www.detodoprogramacion.com 15. 423 423 425 429 433 436 438 440 440 44 445 445 446 448 450 452 454 456 457 459 461 463 467 468 468 470 472 Contenido Modelo de objetos de JavaScript: un anlisis ms detallado introduccin Repaso del evento load El evento mousemove y el objeto event Sustituciones con mouseover y mouseout Procesamiento de formularios con focus y bl ur Ms procesamiento de formularios con subm it y re set Burbujeo de eventos Ms eventos Recurso Web HTML5: introduccin a canvas Introduccin Sistema de coordenadas de canvas Rectngulos Uso de rutas para dibujar lincas Dibujo de arcos y crculos Sombras C unas cuadrticas C un as de Bezier Gradientes lineales Gradientes radiales Imgenes Manipulacin de imgenes: procesamiento de los pxeles individuales de un canvas Patrones Transformaciones 14.14.1 Mtodos scale y tr a n s a te : dibujo de elipses 14.14.2 Mtodo r o ta te : creacin de una animacin 14.14.3 M todo tra n sfo m : dibujo de rectngulos sesgados www.detodoprogramacion.com 16. XV 474 476 477 479 482 484 484 486 487 487 488 489 492 493 494 496 496 498 499 51 I 512 512 515 521 523 526 534 534 537 Contenido Tocto Ajuste del tamao del elemento canvas para llenar la ventana del navegador Transparencia alfa Composicin Juego del can 14.19.1 Documento de HTM L5 14.19.2 Variables de instancia y constantes 14.19.3 Funcin co n fig u rar Juego 14.19.4 Funciones InlciarT em porizador y detenerTem porlzador 14.19.5 Funcin reinicarE lem entos 14.19.6 Funcin nuevoJuego 14.19.7 Funcin a c tu alIzarP o sicio n es: animacin manual cuadro por cuadro y deteccin de colisiones simple 14.19.8 Funcin dispararBalaDeCanion 14.19.9 Funcin a l InearCanion 14.19.10 Funcin d ib u ja r 14.19.11 Funcin mostrarOlalogoJuegoTerinlnado Mtodos save y resto re Una nota sobre SVG Una nota sobre canvas 3D XM L Introduccin Fundamentos de XML Estructuracin de datos Espacios de nombres de XML Definiciones de tipo de documento (D TD ) Documentos de esquemas XML del W 3C Vocabularios de XML 15.7.1 M athM L 15.7.2 Otros lenguajes de marcado www.detodoprogramacion.com 17. x v i Contenido 15.8 Lenguaje de hojas de estilos cxtcnsiblc y transformaciones XSL 538 15.9 Modelo de objetos de documento (D O M ) 547 15.10 Recursos Web 565 16 Aplicaciones enriquecidas de Internet habilitadas para Ajax con XM L y JSON 571 16.1 Introduccin 572 16.1.1 Comparacin entre aplicaciones Webtradicionales y aplicaciones Ajax 573 16.1.2 Aplicaciones Web tradicionales 573 16.1.3 Aplicaciones Web Ajax 574 16.2 Aplicaciones enriquecidas de Internet (RIA) con Ajax 574 16.3 Historia de Ajax 577 16.4 Ejemplo crudo de Ajax mediante el uso del objeto XMLHttpRequest 577 16.4.1 Solicitudes asincronas 578 16.4.2 Manejo de excepciones 581 16.4.3 Funciones de rcrrollamada (callbadc) 582 16.4.4 Evento, propiedades y mtodos del objetoXMLHttpRequest 582 16.5 Uso de XML y el D O M 583 16.6 Creacin de una aplicacin real compatible con Ajax 587 16.6.1 Uso de JSON 587 16.6.2 Funcionalidad enriquecida 588 16.6.3 Interaccin con un servicio Web en el servidor 597 16.6.4 Anlisis de datos de JSON 597 16.6.5 Crear elementos de H TM L5 y establecer manejadoras de eventos al instante 598 16.6.6 Implementacin de escritura adelantada 598 16.6.7 Implementacin de un formulario con validacin asincrona 599 I 7 Servidores Web (Apache y US) 605 17-1 Introduccin 606 17.2 Transacciones de H T T P 606 17.3 Arquitectura de aplicacin multinivel 610 17.4 Comparacin entre secuencia de comandos del lado cliente y del lado servidor 611 www.detodoprogramacion.com 18. xvii 611 611 612 612 613 613 614 614 614 614 615 617 618 618 620 623 624 624 626 628 629 631 631 632 633 634 634 635 637 642 644 Acceso a servidores Web Instalacin de Apache, MySQL y PHP 17.6.1 Instalacin de XAMPP 17.6.2 Ejecucin de XAMPP 17.6.3 Pruebe su configuracin 17.6.4 Ejecucin de los ejemplos mediante el servidor H T T P Apache Microsoft IIS Express y WcbMatrix 17.7.1 Instalacin y ejecucin de IIS Express 17.7.2 Instalacin y ejecucin de WebMatrix 17.7.3 Ejecucin de los ejemplos del lado cliente usando US Express 17.7.4 Ejecucin de los ejemplos de PH P usando IISExpress Base de datos: SQL, MySQL, LINQ y Java DB Introduccin Bases de datos relacinales Generalidades acerca de las bases de datos relacinales: h base de datos Books SQL 18.4.1 Consulta SELECT bsica 18.4.2 La clusula WHERE 18.4.3 La clusula ORDER BY 18.4.4 Cmo fusionar datos de varias rabias: INNER J0IN 18.4.5 La instruccin INSERT 18.4.6 La instruccin UPDATE 18.4.7 La instruccin DELETE MySQL 18.5.1 Instrucciones para configurar una cuenta de usuario de MySQL 18.5.2 Creacin de bases de datos en MySQL (Opcional) Consultas integradas en lenguajes (LINQ) de Microsoft 18.6.1 Consultar un arreglo de valores i n t mediante LIN Q 18.6.2 Consultar un arreglo de objetos Employee mediante LIN Q 18.6.3 Consultar una coleccin genrica mediante L IN Q (Opcional) LIN Q para SQL www.detodoprogramacion.com 19. x v iii Contenido 18.8 (Opcional) Consultar una base de datos con LIN Q 645 18.8.1 Creacin de clases de L IN Q para SQL 645 18.8.2 Vinculaciones de datos entre controles y las clases de LIN Q para SQ L 648 18.9 (Opcional) Vinculacin dinmica de resultados de consultas de L IN Q para SQ L 652 18.9.1 Creacin de b GUI DisplayQueryResult 652 18.9.2 Codificacin de la aplicacin D isplay Query R esult 654 18.10 Java DB/Apache Derby 656 A Caracteres especiales de HTML Al B Colores de HTML Bl C Tabla de precedencia de operadores de JavaScript Cl D Conjunto de caracteres ASCII DI ndice 11 Los captulos 19 a 29 y apndices E y F se encuentran en su idiom a original (ingls) en el sitio web del libro. 1 9 P H F 20 Web App Development with ASP.NET in C# 2 I Web App Development with ASP.NET in C#: A Deeper Look 22 Web Services in C# 23 Web App Development with ASP.NETin Visual Basic 24 Web App Development with ASP.NET in VB: A Deeper Look 25 Web Services in Visual Basic 26 JavaServer* Faces Web Apps: Part I 27 JavaServer'Faces Web Apps: Part 2 28 JavaServer in Java 29 HTML5 WebSockets and Web Workers Apndices E y F www.detodoprogramacion.com 20. La ciencia, la tecnologay las diversasformas de arte, todas unen a la humanidad en un solo sistema nterconectado. -Zhores Alcksandrovich Medvcdc Bienvenido a la programacin en Internet y Web. Este libro presenta tecnologas de computacin de vanguardia para estudiantes, profesores y desarroliadores de software. El mundo de la computacin en especial, el de la programacin en Internet y Web cambia de manera constante. Esta nueva edicin se enfoca en H TM L5 y las tecnologas relacionadas en su ecosistema. Analizare mos con detalle las nuevas y emocionantes caractersticas de HTM L5, CSS3. la ms reciente edicin de JavaS cript (ECMAScripr 5) y el elemento canvas de HTM L5. Nos enfocamos en tecnologas clave populares que le ayudarn a crear aplicaciones basadas en Web e Internet para nteractuar con otras aplicaciones y bases de datos, las cuales forman la base de los tipos de aplicaciones en red de nivel empresarial que son populares en la industria actual. Este libro es apropiado para cursos de programacin del lado del diente y del lado del servidor, tanto a nivel introductorio como intermedio. Tambin es adecuado para profesionales que deseen actualizar sus aptitudes tcnicas con las tecnologas ms recientes de programacin en Internet y Web. La base del libro es el reconocido mtodo de cdigo activo de Dcitel: los conceptos se presentan en el contexto de docum entos H TM L5 funcionales completos, hojas de estilo CSS3, secuencias de com andos de JavaScript, documentos de XML. programas y archivos de bases de datos, en vez de hacerlo a travs de frag mentos separados de cdigo. Cada ejemplo de cdigo completo viene acompaado de ejemplos de ejecuciones reales. El cdigo fuente est disponible, en ingls, en la pgina del autor (wvw.deitel .com /books/i w3htp5/) y en el sitio Web de este libro. Si surge alguna duda o pregunta a medida que lea el libro, enve un correo electrnico a d e ite lfld e ite l. com; le responderemos oportunamente. Para obtener actualizaciones sobre este libro, visite *Avw.deitel .com/ books/iw 3htp5/, nase a nuestras com unidades en Facebook (w w w .facebook.com /deitelfan) y Twitter (@ deitel), o suscrbaseal boletn electrnico Dciut* Suzz Online (www.d e ite l .co m /n ew sletter/su b scrib e. html). Caractersticas nuevas y actualizadas He aqu las actualizaciones que realizamos en esta nueva edicin: Nuevo capitulo 1. El nuevo captulo 1 atrae el inters de los estudiantes con hechos y cifras interesantes, para emocionarlos en cuanto al hecho de estudiar el desarrollo de aplicaciones de Internet y Web. El captulo incluye una tabla de una parte de la investigacin hecha posible por las computadoras e Inter net, las tendencias de tecnologa y discusiones sobre el hardware actuales, una tabla de publicaciones de www.detodoprogramacion.com 21. X X Prefacio negocios y de tecnologa, y sitios Web que le ayudarn a m antenerse actualizado con las noticias y tendencias ms recientes sobre tecnologa, adems de ejercicios actualizados. Nuevas caractersticas de H TM L5. El captulo 3 introduce las caractersticas ms recientes de HTM L5, incluyendo los nuevos tipos de entradas de formularios de H TM L5 y los elementos de estructura de pgina (figura 1). luis nuevas caractersticas de HTM1.5 no se imp/ementan de manera universal en todos los tuivegadores Web. Esto est cambiando a medida que los proveedores de navegadores liberan nuevas versiones. Hablaremos sobre muchas caractersticas adicionales de H TM L5 en el resto del libro. Nuevas caractersticas de HTML5 Tiposde entradasdeformulario color email search week date nooth tel elemento Input Elementosde estructuradepgina header a rtlc le meter nav sumnary footer datetlne nunber tlM elemento datallst datetlne-local range url atributo autoconplete figure flgcaptlon sectlon aslde semntica a nivel de texto (marcado de saltos de lnea potenciales) Figura I | Nuevos tipos de entradas de formulario y elementos de estructura de pgina de HTML5. Nuevas caractersticas de CSS3. El captulo 5 introduce las caractersticas ms recientes de CSS3 (figura 2). Las nuevas caractersticas de CSS3 no se implementan de numera universal en todos los navega dores Web. Esto est cambiando a medida que los proveedores de navegadores liberan nuevas versiones. Nuevas caractersticas de CSS3 sombras de texto sombras de cuadros mltiples imgenes de fondo transiciones M dulo de diseo de cuadro flexible consultas de medios esquinas redondeadas gradientes lineales bordes de imgenes transformaciones selectores :n th - c h ild Caractersticas que no son estndar text-stroke reflexin color gradientes radiales animaciones regla fo nt-face diseos de varias colum nas Figura 2 | Nuevas caractersticas de CSS3 www.detodoprogramacion.com 22. Caractersticas nuevas y actualizadas x x i Tratamiento actualizado de JavaScript. Reforzamos la cobertura de JavaScript en los caprulos 6 al 16. JavaScript se ha convertido en el lenguaje de secuencias de comandos del lado del cliente estndar por excelencia para aplicaciones basadas en Web, debido a su naturaleza altamente portable. Nuestro enfoque, que es apropiado para principiantes, sirve para dos fines: introduce las secuencias de comandos del lado del cliente (captulos 6 al 16) para que las pginas Web sean ms dinmicas e interactivas, y proporciona la base de programacin para las secuencias de comandos del lado del servidor en PH P que se presentan en el capitulo 19. JavaScript es similar a las caractersticas fundamentales de los lenguajes C, C++, C # y Java. Una vez que aprenda JavaScript le ser ms fcil aprender estos otros lenguajes de programacin populares. Nuevo canvas de H TM IS. El captulo 14 sustituye los captulos de Flash y Silverlight de la edicin ante rior con el nuevo elemento canvas de H TM L5 para grficos en 2D (figura 3). canvas est integrado al navegador, con lo que se elimina la necesidad de complementos como Flash y Silverlight y nos ayuda a mejorar el rendimiento y la conveniencia, adems de reducir costos. Al final del captulo usar canvas para crear un juego de can animado con efectos de audio, como el que creamos en Flash en ediciones anteriores de este libro. Caractersticas de canvas de HTML5 rectngulos som bras lincas curvas cuadrticas gradientes lineales gradientes radiales imgenes patrones transparencia alfa composicin Figura 3 | Caractersticas de canvas de HTML5. arcos y crculos curvas de Bczicr m anipulacin de imgenes Transformaciones Ejercicios de m ultim edia nuevos y actualizados. El captulo 14 incluye varios ejercidos multimedia nuevos y actualizados (figura 4). Ejercicios de multimedia nuevos y actualizados Mejoras al juego d d can Animacin Signo de marquesina dcsplazablc Audio dinm ico y caleidos copio grfico Bandido de un solo brazo Juego de billar Crucigrama Imgenes giratorias Transicin aleatoria entre imgenes M arquesina de imgenes desplazable G enerador de rompecabezas automtico Carrera de caballos Diseador de fuegos artificiales Acertijo del 15 Colorear fotografas c imgenes en blanco y negro R doj digital Audio de fondo R doj anlogo G enerador de laberintos y cam inante Tejo Planificador de pisos Probador de tiem po de reaccin Robot aspiradora Probador de la vista Figura 4 | Ejercicios multimedia nuevos y actualizados. www.detodoprogramacion.com 23. x x Prefacio Cdigo evaluado en siete navegadores. Para la edicin anterior probam os el cdigo en dos nave gadores de escritorio: Internet Explorer y Firefox. Ahora probamos todo el cdigo en las versiones ms actuales de siete navegadores populares: cinc para el escritorio (C hrom c, In tern et E xplorer, Firefox, O pera y Safari) y dos para dispositivos m viles (iP hone/iP ad y A ndroid). H TM L5 y CSS3 estn en evolucin, por lo que no se han aprobado an los estndaresfinales. Los proveedores de navegadores estn im plcm entando caractersticas de m anera selectiva, que tienen una buena proba bilidad de estandarizarse. Algunos proveedores tienen mayores niveles de cum plim iento que otros con respecto a las caractersticas. Con cada nueva versin de los navegadores, la tendencia ha sido aum entar de m anera considerable el grado de funcionalidad im plem cntado. El sitio de prueba de H TM L5 (htm l5test.com ) mide qu tan bien soporta cada navegador los estndares y especifica ciones pendientes. Puede ver los resultados de las pruebas y las caractersticas soportadas por cada navegador. Tambin puede revisar sitios com o h ttp ://c a n iu s e .c o m /, en donde obtendr una lista de las caractersticas cubiertas por cada navegador. No todos los documentos en este libro se desplegarn correctamente en todos los navegadores. En vez de elegir slo capacidades que existan de m anera u n i versal, dem ostram os las caractersticas nuevas y em ocionantes en el navegador que maneje m ejor esas funcionalidades. A medida que lea este libro, ejecute cada ejemplo en varios navegadores Web para que pueda verlo c intcractuar con l de la m anera que se plane originalm ente. Y recuerde que todo est cam biando con rapidez, as que tal vez un navegador que no soportaba cierta caractersti ca al m om ento de escribir este libro podra soportarla al m om ento en que usted lo lea. Cdigo H TM L5, C SS3 y JavaScript validado. Todo el cdigo H TM L5, CSS3 y JavaScript en el libro se valid m ediante el uso de v a l1 d a to r.w 3 .o rg /p a ra H TM L5, j1 g saw .w 3 .o rg /css-v al1 - d a to r para CSS3 y ja v a s c rlp tl 1nt.com para JavaScript. No todas las secuencias de comandos se vali dan en su totalidad, pero la mayora lo hacen. Aunque todo el cdigo funciona correctam ente, tal vez reciba advertencias (o posibles errores) al validar cdigo con algunas de las nuevas caractersticas. Aplicaciones para sm artphones y tablets. Es probable que est familiarizado con la explosin de aplicaciones disponibles para las plataformas iP hone/iPad y A ndroid. H ay casi un milln de apli caciones entre las dos. Anteriormente, para escribir aplicaciones en estas plataformas se requera un conocim iento detallado de cada una y, en el caso de Phone/iPad, el proceso era controlado de manera estricta por Apple; Android es ms abierto. Con las tcnicas que aprender en este libro, podr escri bir aplicaciones portables entre una gran variedad de plataformas de escritorio y mviles, incluyendo Phone/iPad y Android. Induso podr vender esas aplicaciones bajo sus propios trminos (o a travs de dertas tiendas de aplicaciones tambin). Esta posibilidad es emocionante! Es una de las verdaderas vir tudes de desarrollar con H TM L5, CSS3 y JavaScript en general, y con el elem ento canvas de H TM L5 en particular. Ejecutar una aplicacin H TM L5 en su smartphonc o tablct es tan simple como abrirla en su navegador Web compatible. Tal vez an se encuentre con algunos problemas deportabilidad. Nuevas capacidades de almacenam iento Web de H TM L5, En el captulo 11 usaremos las nuevas herramientas de almacenamiento Web de H TM L 5 para crear una aplicacin Web que almacene en la computadora las bsquedas favoritas de un usuario de Twitter, para facilitar el acceso en lo sucesivo. El almacenamiento Web reemplaza a la tecnologa controvcrsial de Las cookies, adems de ofrecer mucho ms espacio de almacenamiento. El captulo 11 tambin incluye una breve introduccin a JSO N , un medio para crear objetos de JavaScript; por lo general se utilizan para transferir datos sobre Internet entre programas del lado del cliente y del lado del servidor. www.detodoprogramacion.com 24. Caractersticas nuevas y actualizadas x x l Juego de dados mejorado con elementos de a u d io y video de H TM L5. El juego de los dados (Craps) en el captulo 9 incluye ahora un elemento de audio de H TM L5, que reproduce un sonido cada vez que el usuario tira los dados. Tambin incluimos un vnculo a una pgina con un elemento de video de HTM L5 incrustado, que reproduce un video para explicar las regias del juego. Caso de estudio de jQ uery y Ajax. En b edicin anterior de este libro se incluy una aplicacin de calendario en b que se utilizaban las bibliotecas D ojo (que eran populares en ese momento) para crear b interfaz de usuario, comunicarse con el servidor en forma asincrona, manejar eventos y manipular el D O M . Desde entonces, jQ uery se convirti en b biblioteca m is popubr de JavaScript. En esta edicin actualizamos b aplicacin de calendario (captulo 16) mediante el uso de jQ uery y b colocamos en lnea oomo un caso de estudio de jQuery y Ajax. Nuevas herram ientas W ebsocketsy Web Workers de H TM L5. Agregamos un tratamiento en lnea de dos nuevas tecnologas: WebSockets, que proporciona un modelo simple de red y Web Workers, que nos permite usar mulrihilos en una pgina Web. Aplicaciones Web habilitadas para Ajax. Actualizamos el captulo sobre b creacin de aplicaciones Web habilitadas para Ajax, con aplicaciones que demuestran las actuabzaciones parciales de pginas y las capacidades de escritura adelantada (type-ahead); cada una de estas herramientas son capacidades dave de las Aplicaciones enriquecidas de Internet (Rich Internet Applications). H TM L DOM y XM L DOM . Mejoramos nuestra forma de tratar los temas de manipulacin de D O M , eventos de JavaScript y m anipubcin de XML D O M con JavaScript. LIN Q . Desde la ltim a edicin del libro. M icrosoft introdujo L1NQ (Consultas integradas en len guajes) para sustituir a SQ L en el acceso a bases de datos. El captulo 18 ofrece una introduccin a los fundam entos de L IN Q y una introduccin a L IN Q para SQL (la tecnologa que sustituye a SQL). Los captulos 19 a 29 y apndices E y F se encuentran en ingls en la pgina web del libro (www.pearsonenespao I.com/deitcl). Cobertura actualizada de PHP. El captulo 19 se actualiz a b versin ms reciente de PHP. Si empieza este libro como principiante y estudia el lenguaje JavaScript en los captulos 6 al 13, tendr la experiencia de programacin necesaria para comprender b programacin del lado del servidor en PHP. [Nuestra forma de exponer la programacin del lado del servidor en ASRNET exige un conocimiento de C # o Visual Basic; para JSF se requiere conocimientos de Java]. ASRNET, A jax en A SP .N E Ty servicios Web. Esta secuencia actualizada de tres captulos se ofrece ahora para cada uno de los dos lenguajes cbve de desarrollo de aplicaciones de Microsoft: C# y Visual Basic Estos captulos estn disponibles en el sirio Web del libro. JavaServer Faces (JSF), A jax enJS F y servicios Web. Esta secuencia actualizada de tres captulos, dis ponibles en lnea, se concentra en b creacin de aplicaciones JSF habilitadas para Ajax. Servicios Web. Ahora contamos con captulos sobre cmo crear servicios Web basados en SOAPj ser vicios Web basados en REST con ASPNET en Visual Basic, ASRNET en C # y JSF en Java. Aplicaciones cliente/servidor. Tenemos varios casos de estudio del bdo del cliente que perm iten a los estudiantes interactuar con servicios Web impiementados previamente, los cuales estn alojados en t e s t . d e i t e l . com. www.detodoprogramacion.com 25. x x iv Prefacio Casos de estudio nuevosy actualizados. El libro incluye casos de estudio muy completos, en los que se utilizan varias tecnologas: Visor de portadas de Deitel (JavaScript/DOM), Librera de direcciones (Ajax), Juego del can (Canvas de HTM L5), Lista de correo (PHP/M ySQL), Libro de visitantes y Base de datos de libros protegida por contrasea (ASP.NET), Libreta de direcciones (JavaServer Faces) y Biackjack (servicios Web JAX-WS). Nuevas herram ientas pedaggicas Ejercicios "H acerla diferenci'en el capitulo 1. Lo alentamos a usar las computadoras e Internet para investigar y resolver problemas sociales importantes. Estos ejercicios estn diseados para aumentar la conciencia y el anlisis en torno a los problemas importantes a los que se enfrenta el mundo. Esperamos que usted los aborde con sus propios valores, polticas y creencias. D un vistazo a los diversos recursos Hacer la diferencia que proporcionamos, incluyendo nuestro nuevo Centro de recursos para hacer la diferencia en www.deitel .cow/MakingADifference. en donde obtendr ideas adicionales que ral vez. desee investigar ms a fondo. Nmeros de pgina de los trm inos clave en los resmenes de los captulos. En los trm inos clave que aparecen en los resmenes de los captulos 1 a 18, incluimos el nmero de pgina en donde se define el trmino. Grfico de dependencias El grfico de la figura 5 muestra la organizacin modular del libro y las dependencias entre los captulos para ayudar a los profesores a planear su programa de estudios. Cmo programar en Internety World Wide 5/e es un libro apropiado para una variedad de cursos de programacin de nivel introductorio e intermedio, en especial de programacin del lado del cliente y del lado del servidor. Los captulos 1 al 18 estn en el libro impreso; los captulos 19 a 29 y algunos apndices se encuentran en ingls en el sitio web de este libro. Le recomendamos estudiar todas las dependencias de un captulo antes de estudiarlo, aunque tambin es posible usar otro orden. Algunas de las dependencias se aplican slo a secciones de los captulos, por lo que aconsejamos a los profesores que exploren el material antes de disear un curso de estudio. El libro est dise ado para cursos que ensean programacin Web slo del lado del cliente, cursos que ensean programacin Web slo del lado del servidor y cursos que ensean una combinacin de lo anterior. Los lectores interesados en estudiar las tecnologas del lado del servidor deben saber cmo crear pginas Web mediante H T M L 5 y CSS3, adems de la programacin basada en objetos en JavaScript. Los captulos 15 y 16 pueden ensearse como parte de una unidad del lado del cliente, al principio de una unidad del lado del servidor, o pueden dividirse entre ambas unidades. Apndice en lnea de accesibilidad de HTML5 De conformidad con la Iniciativa de accesibilidad de W 3C, sus pginas y aplicaciones Web deben ser accesibles de modo que las personas con discapacidades puedan percibir, comprender, navegar c intcractuar en Web, y que puedan tambin contribuir con la Web. 1En un apndice en lnea, enumeramos las cuestiones de acce sibilidad que debe tener en cuenta al disear pginas Web y aplicaciones basadas en Web. Tambin proporcio namos recursos que muestran cmo usar HTM L5, CSS3, JavaScript y diversas tcnicas de diseo para crear pginas y aplicaciones Web accesibles. Segn sea apropiado, enlazamos la informacin en este apndice de vuelta con los captulos y secciones apropiadas, para que pueda ver cmo es posible mejorar las aplicaciones para aumentar el nivel de accesibilidad en Web. 1. http://tw*w.w 3 .o rg /W A I/in tr o / a c c e s s ib il1t y .php. www.detodoprogramacion.com 26. Apndice en linea de accesibilidad de HTML5 x x v Introduccin ducon a las computadoras e Internet Introduccin a HTML5 y CSS3 *-2 htroduccin a HTM15: Parte I 1 3 Introduccin a HTML5: Parte 2 I 4 Introduccin a las hojas de estilo en aseada (Cascading Styfe Sheets. CSS): Parte l f 5 Introduccin a las hojas de estilo en cascada (Cascading Styfe Sheets. CSS): Parte 2 V ' Fundamentos de programacin en JavaScript 6 JavaScript: introduccin a las secuencias de comandos f 7JavaScript: instrucciones de control I 8 JavaScript: instrucciones de control II T 9 JavaScript: fundones T 10JavaScript: arreglos i I JavaScnpt: objetos T -12 Modelo de objetos de docimento (DOM ): objetos y colecciones 13 Manejo de objetos de JavaScnpt: un anlisis ms detallado 14 HTM15: Irtroduccin a canvas Fundamentos de Ajax l X M l Introduccin al desarrollo del lado del servidor 17 Servidores Web (Apache e IIS) 18 Base de datos: SQL. MySQl. LINQ y Java Dfl I9PH P Server-Side Development w ithA SP.N ET and C#2 20 Web App Development -* with ASP.NTT in C I 21 Web App Development with ASP.NET in C#: A Deeper look I 22 Web Seunces in C Server-Side Development with ASP.N ET and VB3 23 Web App Development with ASP.NET in Visual Basic *- 24 Web App Development with ASP.NET in V B: A Deeper Look i 25 Web Services in Visual Basic Server-Side Development with JavaServer Faces and Java4 26 JavaServer Faces Web Apps: Part i - - 27 JavaServer Faces Web Apps: Part 2 1 28 Web Services in Java WebSockets and W eb Workers 29 HTML5 WebSockets *id Web Workers y N lAplicaconesennquecidasde Internet habilitadas para Ajax con XML y JSON 1. E3capitulo 19 (en el sitio W eb) asume slo que usted est lamilianzado con los Andamentos de programacin que se presentan en los captulos 6 al 13. 2. Los captulos de C# requieren conocimiento de C ly d e las bibliotecas de clases de Microsoft .NET. 3. Los captulos de Visual Basic requeren conocimiento de Visual Basic y de las bibliotecas de dasesde Microsoft .NET. 4 Los captulos de Java requeren conocimiento de Java y de las bibliotecas de clases de Java. Figura 5 | Grfico de dependencias de captulos de Cmo programar en Internet y World Wide Web. quinta edicin. www.detodoprogramacion.com 27. x x v i Prefacio Apndice de geolocalizacin en HTML5 en lnea La API de geolocalizacin de H TM L5 le permite crear aplicaciones Web que recopilen informacin sobre la ubicacin (por ejemplo, las coordenadas de latirud y longitud) mediante el uso de tecnologas como GPS, direcciones IP, conexiones Wi-F o conexiones a torres celulares. Esta tecnologa es soportada por los siete nave gadores de escritorio y mviles que utilizamos para probar el cdigo de todo el libro. La especificacin de la API de geolocalizacin lista varios casos de uso,* incluyendo: buscar puntos de inters en el rea del usuario anotacin de contenido con informacin sobre b ubicacin mostrar b posicin del usuario en un mapa proveer navegacin por rutas alertar al usuario cuando haya puntos de inters cercanos proveer informacin local actualizada etiquetar ubicaciones en actualizaciones de estado en sitios de redes sociales Por ejemplo, podra crear una aplicacin Web mvil basada en la ubicacin que utilice b informacin de ubica cin del GPS de un smartphone para rastrear la ruta de un corredor en un mapa, calcular la distancia recorrida y b velocidad promedio. De manera similar, podra crear una aplicacin que devuelva una lista de negocios cercanos. En este apndice en lnea, crearemos una aplicacin mvil basada en b ubicacin. Mtodos de enseanza Cmoprogramar en Internety World Wide Web, quinta edicin contiene cientos de ejemplos funcionales comple tos en toda una variedad de marcado, estilos, secuencias de comandos y lenguajes de programacin. Hacemos nfasis en la claridad y nos concentramos en b creacin de software bien diseado. Sombreo de sintaxis. Para mejorar b legibilidad, sombreamos b sintaxis del cdigo as como b mayora de los entornos de desarrollo integrados y los editores de cdigo colorean b sintaxis del cdigo. Nuestras convenciones de sombreo de sintaxis son: lo s com entarlos aparecen a si la s p alab ras clave aparecen a si la s constantes y los valores lite r a le s aparecen asi el resto del cdigo aparece en negro Resaltado de cdigo. Colocamos rectngulos grises alrededor de los segmentos de cdigo cbve. Uso deJuentes para dar nfasis. Colocamos los trminos cbve y b referencia a b pgina del ndice para cada ocurrencia de definicin en texto en negrita para facilitar su localizacin. Enfatizamos los componentes en pantalla en la fuente Helvtica en negrita (por ejemplo, el men Archivo) y el texto del programa en b fuente Lucida (por ejemplo. 1nt conteo 5). Acceso Web.Todos los ejemplos de cdigo fuente se pueden descargar de: www.deitel.com/books/1w3htpS vww.pearsonenespaftol.com/deitel Objetivos. Las citas de apertura van seguidas de una lista de objetivos del captulo. 2. http://wwv.w3.org/TR/geolocation-API/#usecases_sect1on. www.detodoprogramacion.com 28. Mtodos de enseanza x x v ii Ilustraciones/figuras. Incluimos una gran cantidad de tablas, dibujos lineales, documentos, secuencias de comandos, programas y salidas de programa. Tips de programacin. Incluimos tips de programacin para ayudarle a enfocarse en los aspectos importantes del desarrollo de software. Estos tips y prcticas representan lo mejor que hemos podido recabar a lo largo de siete dcadas combinadas de experiencia en la programacin y la enseanza. Buenas prcticas de programacin Las Buenas prcticas de programacin llaman aatencin hacia tcnicas que le ayudarnaproducir progra mas msclaros, comprensiblesyfciles de mantener. , A Errores comunes de programacin j r Alponer atencin en estos Errores com unes de programacin sereduce aprobabilidad de que ustedpueda cometerlos. Tips para prevenir errores Estostips contienen sugerenciaspara exponerlos erroresy eliminarlos de susprogramas;muchosdeellos descri ben aspectosdeprogramacin queevitan queoserroresentren siquiera a losprogamas Tips de rendimiento Estostips resaltan asoportunidadesparahacerque susprogamas seejecuten ms rpido, opara minimizar la cantidadde memoria que ocupan. T T Tips de portabilidad LosTips de portabilidad leayudan a escribircdigo quepueda ejecutarse en una variedaddeplataformas. tara? Observaciones de ingeniera de software luis Observaciones de ingeniera de software resaltan losasuntos de arquitecturay diserio, lo cualafecta la construccin de lossistemas desoftware, especialmente losdegan escala. Vietas de resumen. Presentamos un resumen detallado del captulo, estilo lista con vietas, seccin por sec cin, para una revisin rpida de los puntos clave. Para facilitar la referencia, incluimos el nmero de pgina de cada ocurrencia de definicin de los trminos clave en el texto. Ejercicios de autoevaluacin y respuestas. Se incluyen ejercicios extensos de autoevaluacin y sus respuestas para que los lectores practiquen por su cuenta. Ejercicios. Los ejercicios de los captulos incluyen: recordatorio simple de Li terminologa y los conceptos importantes cul es el error en este cdigo? escritura de instrucciones individuales escritura de funciones y secuencias de comandos completas proyectos importantes ndice. Incluimos un ndice extenso. Las ocurrencias de definicin de los trminos clave se resaltan con un nmero de pgina en negrita. www.detodoprogramacion.com 29. x x v i Prefacio Recursos para el profesor Los siguientes suplementos estn disponibles en ingls slo para profesores a travs del Centro de recursos de Pearson .pearsonenespaol. ccxn/deitel): D iapositivas de PowerPoint*que contienen todo el cdigo y las figuras del texto, adems de elementos en vietas que sintetizan los puntos clave. M anualde soluciones con soluciones para la gran mayora de los ejercicios de final de captulo. Revise el Ccnrro de recursos para el profesor si desea determinar cules ejercicios tienen soluciones. H acceso est lim itado estrictam ente a profesores universitarios q u e im partan clases con base en el libro. I-os profesores slo pueden obtener acceso a travs de sus representantes de Pearson. Si no es un miembro docente registrado, pngase en contacto con su representante de Pearson o visite twwv.pearsonh1ghered.com / e d u c a to r/re p lo c a to r/. No se proveen soluciones para los ejercicios de proyectos . Revise nuestro Centro de recursos de pro yectos de programacin en donde encontrar muchos ejercicios adicionales y posibles proyectos (www. d e ite l. com/ProgrammingProjects/). Reconocimientos Agradecemos a Barbara Deitel las extensas horas que dedic a este proyecto. Somos afortunados al haber traba jado con el equipo de editores tan profesionales de Pearson. Apreciamos la orientacin, inteligencia y energa de Michael Hirsch, editor en jefe de Ciencias computacionales. Carole Snyder reclut a los revisores del libro y se hizo cargo del proceso de rev isin. Bob Engelhardt se hizo cargo de la produccin del libro. Revisores Queremos agradecer los esfuerzos de nuestros revisores de la cuarta y quinta edicin. Revisaron a conciencia el texto y los programas, proporcionando innumerables sugerencias para mejorar la presentacin: Tim othy Boronczyk (consultor), Roland Bouman (M ySQL AB), Chris Bowen (Microsoft), Peter Brandano (Kool- C onnect Technologies, Inc.), M att C hotin (Adobe), Chris C ornutt (PHPDcvcloper.org), Phil Costa (Ado be), Umachirra Damodaran (Sun Microsystems), Vadiraj Deshpandc (Sun Microsystems), Justin Ercnkrantz (The Apache Software Foundation), Christopher Finke (Netscape), Jesse James G arrett (Adaptive Path), Mike Harsh (M icrosoft), Chris Heilmann (Mozilla), Kevin Henrikson (Zim bra.com ), Tim Heuer (Microsoft), Molly E. Holrzschlag (W 3C ), Ralph Hoopcr (Univcrsity o f Alabama, Tuscaloosa), C hris H orton (University o f Alabama), John Hrvatin (Microsoft), Johnvey Hwang (Splunk, Inc.), Joe Kromcr (New' Pcrspective y el G rupo de usuarios de Adobe Flash de Pittsburgh), Jennifer Kyrnin (Gua de diseo Web en About.com), Eric Lawrence (Microsoft). Pete LePagc (Microsoft), Dr. Roy Levow (Florida Atlantic University), Billy B. L. Lim (Illinois State University), Shobana Mahadevan (Sun Microsystems), Patrick M incault (Programador de Flash independiente), Anand Narayanaswamy (M icrosoft), John Pcterson (Insync y V.I.O., Inc.), Jennifer Powers (University o f Albany), Ignacio Ricci (Ignacioricci.com), Jake Rutter (onerutter.com ), Robin Schu- machcr (MySQL AB), Jos Antonio Gonzlez Seco (Parlamento de Andaluca), Dr. Georgc Scmeczko (Royal & SunAlliance Insurance Caada), Steven Shaffer (Penn State University), Michael Smith (W 3C), Karen Te- gtmeyer (Model Technologies, Inc.), Paul Vencill (M ITRE), Raymond Wcn (Microsoft), Eric M. Wendelin (Auto-crol Technology Corporacin), Raymond F. W isman (Indiana University), Keith Wood (Hyro, Ltd.) y Daniel Zappala (Brigham Young University). www.detodoprogramacion.com 30. Acerca de los autores x x ix A medida que lea el libro, sinceramente apreciaremos sus comentarios, crticas, correcciones y sugerencias para mejorarlo. Dirija su correspondencia a: d e ite lS d e ite l. com Le responderemos oportunamente. Esperamos que disfrute rrabajando con Cmoprogramar en Internety World Wide Web, quinta edicin. Paul Harveyy Abbey Deitel Acerca de los autores feul J. D eitel, C E O y Director Tcnico de Deitel &t Associates, Inc., es egresado del MIT, en donde estudi Tecnologa de la Informacin. A travs de Deitel & Associates, Inc., ha impartido cientos de cursos sobre Java, C++, C, C#, Visual Basic y programacin en Internet a dientes de la industria, incluyendo: Cisco, IBM, Siemens, Sun Microsystems, Dell, Lucent Technologies, Fidclity, NASA en el Centro Espacial Kennedy, el N a tional Severe Storm Laboratory, W hite Sands Missile Range. Rogue Wave Software, Boeing, SunGard Higher Education, Stratus, Cambridge Technology Partners, O ne Wave, Hyperion Software, Adra Systems. Entergy. CahlcDara Systems, Norte! Networks, Puma, iRobot, Invensys y muchos ms. l y su coautor, el Dr. Harvey M. Deitel, son autores de los libros de programacin ms vendidos en d mundo. Dr. H arvey M. D eitel, Presidente y Consejero de Estrategia de Deitel & Associates, Inc., tiene 50 aos de experiencia en el campo de la computacin. El Dr. Deitel obtuvo una licenciatura y una maestra por el M IT y un doctorado por La Universidad de Boston. Tiene muchos aos de experiencia como profesor universitario, La cual induye un puesto vitalicio y el haber sido presidente del departamento de Ciencias de la computacin en el Boston College antes de fundar, con su hijo Paul J. Deitel, Deitel & Associates, Inc. l y Paul son coautores de varias docenas de libros y paquetes de video LiveLcssons, y piensan escribir muchos ms. Los textos de los Deitel se han ganado el reconocimiento internacional y han sido traducidos al japons, alemn, ruso, chino, espaol, coreano, francs, polaco, italiano, portugus, griego, urd y turco. El Dr. Deitel ha impartido cientos de seminarios profesionales de programacin para grandes empresas, instituciones acadmicas, organizaciones gubernamentales y diversos sectores del ejrcito. Abbey D eitel. presidenta de Deitel & Associates, Inc., es graduada de b Carnegie Mellon Universitys Tepper School o f Management, de donde recibi una licenciatura en Administracin industrial. Abbey ha es tado administrando bs operaciones comerciales de Deitel & Associates, Inc. durante 14 aos. H a contribuido en numerosas publicaciones de Deitel 8 Associates, adems de ser coaurora de iPhonefor Programmers: An App-Driven Approach y Androidfor Programmers: An App-Driven Approach. Capacitacin corporativa de Deitel & Associates, Inc. Deitel & Associates, Inc., es una empresa reconocida a nivel mundial, dedicada al entrenamiento corporativo y b creacin de contenido. La empresa proporciona cursos impartidos por profesores en bs iastalaciones de sus clientes en todo el mundo, sobre b mayora de los lenguajes y plataformas de programacin, como Java, C++, Visual C ++*, C, Visual C #", Visual Basic*, XML*. Python*, tecnologa de objetos, programacin en Internet y Web, desarrollo de aplicaciones para Android c Phone*, y una lista cada vez mayor de cursos adicionales de programacin y desarrollo de software. Los fundadores de Deitel & Associates, Inc. son Paul J. Deitel y el Dr. Harvey M. Deitel. Sus clientes incluyen muchas de bs empresas ms grandes del mundo, agencias gubernamen tales, sectores del ejrcito e instituciones acadmicas. A lo brgo de su sociedad editorial de 36 aos con Prcnticc www.detodoprogramacion.com 31. x x x Prefacio Hall/Pearson, Dcitcl & Associates, Inc. ha publicado libros de texto de vanguardia sobre programacin, libros profesionales y cursos de video Livel^essons. Puede contactarse con Dcitcl & Associates, Inc. y con los aurores por medio de correo electrnico: d eftelO d eitel.con Para conocer ms acerca de la empresa, sus publicaciones y su currculum mundial de la Serie de Capaci tacin Corporativa Dive Into*, visite: www.deitel.co*/tra1n1ng/ Suscrbase al boletn de correo electrnico DeiteT Ruzz Online en: w w w .de1tel.com /new sletter/subscribe.htnil Y nase a las comunidades de los autores en Facebook (****. f acebook.com/Deitel Fan) y Twitter (