Metodología de La Programación Cairó002

9
Metodología de la programación Algoritmos, diagramas de flujo y programas

description

Metodología de La Programación Cairó002

Transcript of Metodología de La Programación Cairó002

  • Metodologade la

    programacinAlgoritmos, diagramas de flujo y programas

  • OS. /v,

    Metodologade la

    programacinAlgoritmos, diagramas de flujo y programas

    3a. edicin

    Dr. Osvaldo Cairo BattistuttProfesor - Investigador del

    Instituto Tecnolgico Autnomo de Mxico (ITAM)Director del laboratorio KAMET

    Miembro del Sistema Nacional de Investigadores (SNI), Nivel 1

    AAAlfaomega

  • 2005 Osvaldo Cairo Battistutti

    Segunda edicin: Mxico, julio 2003Tercera edicin; Mxico, septiembre 2005

    Primera reimpresin: Mxico, abril 2006Segunda reimpresin: Mxico, agosto 2006

    2005 ALFAOMEGA GRUPO EDITOR, S.A. de C.V.Pitgoras 1139, Col. Del Valle, 03100 Mxico, D.F.

    Miembro de la Cmara Nacional de la Industria Editorial MexicanaRegistro No. 2317

    Internet: http://www.alfaomega.com.mxE-mail: [email protected]

    ISBN970-15-1100-X

    Derechos reservadosEsta obra es propiedad intelectual de su autor y los derechos de publicacinen lengua espaola han sido legalrnente transferidos al editor. Prohibida sureproduccin parcial o total por cualquier medio sin permiso por escrito delpropietario de los derechos del copyright.

    NOTA IMPORTANTELa informacin contenida en esta obra tiene un fin exclusivamente didcticoy, por lo tanto, no est previsto su aprovechamiento a nivel profesional o indus-trial. Las indicaciones tcnicas y programas incluidos, han sido elaboradoscon gran cuidado por el autor y reproducidos bajo estrictas normas decontrol. ALFAOMEGA GRUPO EDITOR, S.A. de C.V. no ser jurdicamenteresponsable por: errores u omisiones; daos y perjuicios que se pudieran atribuiral uso de la informacin comprendida en este libro, ni por la utilizacinindebida que pudiera drsele.

    Impreso en Mxico - Printed in Mxico

  • A mi hijo Facundo

  • Colaboraron en la edicin de esta obra:

    Supervisin de edicinMartha Elena Figueroa Gutirrez

    DiagramacinJess Garca lvarezProduccin:Guillermo Gonzlez Dorantes

  • Prefacio a la tercera edicin

    fea est dirigida a todos aquellos estudiantes que estn iniciando sus estu- carreras de computacin, y que por tal razn necesitan resolver proble-

    cvva solucin se plantea algortmicamente. La literatura sobre temascenos en computacin es en general escasa. Esta fue la razn y la motiva-

    liji il para desarrollar la tercera edicin del libro Metodologa de a Pro-mx :r Esta edicin rene lo mejor de las ediciones anteriormentefc*~ con la misma editorial, e incluye nuevos problemas, mejores solucio-

    wedosos componentes que permiten una mejor comprensin y aplica-oe los conceptos estudiados. El lenguaje que se utiliza para mostrar la

    de los problemas es pseudo-cdigo de alto nivel. Esta caracterstica esMrtante porque facilita al alumno concentrarse en las estructuras de da-

    r-arrimos asociados a ellas sin la necesidad de relacionarlas a un lenguajeCarnacin en particular. Una vez que el alumno domina los conceptos,

    rescribir estos programas muy fcilmente en un lenguaje de programacin,mcoor ejemplo C.

    - "v-,- bsicamente se descomponen en dos tipos, aqueKos que re-de una bsqueda y los que necesitan de un algoritmo para su solucin.

    Mhyencia artificial se encarga de los problemas del primer tipo. Hay mto-pe permiten resolver de manera eficiente, por ejemplo, puzzles y juegos. En

    ** ~ro nos enfocaremos en los problemas del segundo tipo, aquellos que re-de una solucin algortmica. Este tipo se caracteriza por requerir para su

    or santo de un anlisis sistemtico y profundo, como de un razonamientoido y flexible. Indudablemente surgen algunos cuestionamientos al res-

    - snseai n a n a l i z a r un problema?feriemos ensear a razonar flexiblemente?temos ensear a pensar?

    Biespuestas innegablemente no son fciles de obtener. Sin embargo, elo y la bsqueda constante del saber siempre valen la pena. Encontrar ca-tes una tarea estimulante. Ensear al alumno a ser flexible, a observar un

    desde ngulos diferentes, a ver distintas alternativas, a sentir la belleza

  • V I I I Prefacio a la tercera edicinde una solucin es una tarea de maestros con pasin. Ensear a aprender. Ense-ar a ver. Ensear a saber.

    Respecto a la estructura de la obra, cabe sealar que sta se divide en seis ca-ptulos. En los cinco primeros se exponen las estructuras algortmicas de controlselectivas y repetitivas y las estructuras de datos, arreglos y registros. En el ltimocaptulo se presenta un conjunto de problemas a resolver, agrupados segn los te-mas tratados en los captulos previos. El nivel de complejidad de cada uno deellos aumenta en forma gradual. Los temas se exponen con amplitud y claridad.El aprendizaje se reafirma con una gran cantidad de ejercicios diseados expresa-mente como elementos de ayuda para el anlisis, el razonamiento, la prctica y elentendimiento de los conceptos. Se muestran tambin numerosas tablas en losprimeros captulos con seguimientos de los algoritmos para exponer cmo fun-cionan stos y de qu manera afectan las estructuras de datos y de control que seestudian.

    Muchos contribuyeron en forma diferente al desarrollo de este proyecto.Quiero agradecer especialmente al ITAM, a su gente, al Dr. Arturo Fernndez P-rez, rector de esta gran institucin, al Dr. Marcelo Meja Olvera, Director de la Di-visin Acadmica de Ingenieras y al M.I. Rafael Gamboa Mrales, Jefe delDepartamento Acadmico de Computacin, por impulsar siempre proyectos deeste tipo. Asimismo quiero agradecer a Lisandro Lazzaroni, Director de Staff enSanta Fe, Argentina, por su creatividad en el diseo de la portada.

    Osvaldo CairoMxico, D. F.

  • Contenido

    a la tercera edicin vii

    Mgoritmos, diagramas de flujo y programas 1IVoblemasy algoritmos 1Diagramas de flujo 4

    1.2.1 Reglas para la construccin de diagramas de flujo 4Conceptos fundamentales 813.1 Tipos de datos 8

    3.2 Identificadores, constantes y variables 9Operaciones aritmticas 12

    4 Expresiones lgicas 15i 5 Bloque de asignacin 22

    Construccin de diagramas de flujo 24IVogramas 31

    rtfcmas resueltos 37

    Cflrvcniras algortmicas selectivas 53hroduccin 53La estructura selectiva simple si entonces 54La estructura selectiva doble si entonces/sino 57La estructura selectiva mltiple si mltiple 62Estructuras selectivas en cascada (anidadas) 70

    riUemas resueltos 77

    Estructuras algortmicas repetitivas 107Introduccin 107La estructura repetitiva repetir (FOR) 107La estructura repetitiva mientras (WHILE) 115

    Monas resueltos 121

    bncturas de datos: arreglos 175fcaroduccin 175Arreglos unidimensionales 181

  • Contenido

    4.2.1 Definicin de arreglos 1824.2.2 Operaciones con arreglos 184

    4.3 Arreglos multidimensionales 2094.3.1 Arreglos bidimensionales 2104.3.2 Arreglos de ms de dos dimensiones 222

    Problemas resueltos 229

    5 Estructuras de datos: registros 3435.1 Registros 343

    5.1.1 Definicin de registros 3445.1.2 Acceso a los campos de un registro 3465.1.3 Diferencias con arreglos 3475.1.4 Combinaciones entre arreglos y registros 347

    Problemas resueltos 354

    6 Problemas suplementarios 401Arreglos unidimensionales 441Arreglos bidimensionales 446Arreglos de ms de dos dimensiones 453Arreglos paralelos 454

    ndice .. ...463