Logica de Programación
Logica de Programación
Logica de Programación
OMAR IVAN TREJOS BURITICA Ingeniero de Sistemas con una amplia experiencia docente, diseador y desarrollador de software comercial e investigador de los conceptos esenciales de la lgica de programacin. Ha dedicado gran parte de su vida profesional a buscar y difundir una metodologa que facilite el diseo e implementacin de programas de una manera sencilla, entendible y amena. Alternando su profesin con su gran pasin, la msica, ha tratado de establecer una analoga entre la enseanza musical y la enseanza de la lgica de programacin como un modelo que permita transmitir razonamientos lgicos desde la ptica acadmica que, precisamente, aplica en el diseo metodolgico de este libro con el cual pretende que usted como principiante de la programacin aprenda que definitivamente programar es muy muy fcil. En la actualidad es Profesor de Planta de la Universidad Tecnolgica de Pereira.
Trejos Buritic, Omar Ivan La Esencia de la Lgica de Programacin Bsico / Omar Ivan Trejos Buritic. Obra de Editorial Papiro en formato de 21 x 28 cm. Pereira : Papiro, 1999 325 p.
ISBN: 958-33-1125-1
Omar Ivan Trejos Buritic Apdo. Areo 2485 Pereira (Risaralda) e-mail : [email protected]
Prohibida la Reproduccin Parcial o Total de este Libro Todos los Derechos Reservados conforma a la ley:
Agradecimientos
An a pesar de saber que mi memoria me presentar como un ser injusto pues tal vez, involuntariamente, se me escapen algunas personas a quienes debiera nombrar, quiero agradecer a todos todos mis alumnos quienes a lo largo de muchos aos, con sus inquietudes y sus dudas, me han enseado mas de lo que yo pude haberles enseado. Fueron sus permanentes inquietudes las que poco a poco inspiraron este libro.
Tambin quiero presentar mis agradecimientos a mi maestra Leyi quien me brind muchos momentos agradables en mi niez. A mis profesores Alirio Molina, Alfonso Lpez Asprilla y Agripina de Pandales quienes perfilaron mi espritu pedaggico. A los profesores Gustavo Snchez, Hernando Freyre, Otto Gutierrez, Gustavo Quezada, Gabriel Caviedes, Julio Silva Colmenares y Sergio Moscoso quienes me entregaron herramientas para entender que el mundo no hay que dejarlo ser simplemente sino que hay que analizarlo y tratar de hacer un aporte en ese devenir dialctico de la especie humana que justifique nuestra propia existencia. Igualmente quiero agradecer a mi amigo Mauricio Gutierrez, tantas charlas no podan quedar en vano.
Igualmente quiero agradecer a mi esposa quien pacientemente ha esperado durante muchos das y con gran expectativa la finalizacin de este libro y a mis padres por los nimos que me infundieron para terminarlo.
Indice
Introduccin
Captulo 1
La Lgica
11 13
Captulo 2
17 17 18 20 20 21 21 22 22 23 23 23
Objetivo Algoritmo La Prueba Algoritmos Informales Algoritmos Computacionales Transcripcin Digitacin Compilacin Ejecucin o Puesta en Marcha Verificacin de Resultados Ejercicios sobre Algoritmos Informales
Captulo 3
27 27 28 28 28 30 35 40
Variable Tipo Entero Tipo Real Tipo Carcter Asignaciones Operadores Ejercicios
Captulo 4
45 46 47 47 48 48 49 50 52 54 54 62 66
Consideraciones Algortmicas sobre el Pensamiento Humano Secuencia Decisin Ciclos Estructuras Bsicas expresadas tcnicamente La Secuencia de Ordenes Las Decisiones Los Ciclos Tcnicas para Representar Algoritmos Diagramas de Flujo Diagramas Rectangulares Estructurados SeudoCdigos
74 75
Captulo 5
La Tecnologa
77 78 79 79 80 81 82 82 82 83 84 84 85 85
Lenguajes de Bajo Nivel Lenguajes de Alto Nivel Lenguajes Interpretados Lenguajes Compilados Errores en un Programa Errores Humanos Errores de Concepcin Errores Lgicos Errores de Procedimiento Errores Detectados Por un Computador Errores de Sintaxis Errores de Precaucin Desarrollo Histrico de la Programacin
Captulo 6
89 89 90 90 90 90 90 91 91 91 91 103 115
Concepcin del Problema Clarificacin del Objetivo Algoritmo Prueba de Escritorio Tcnicas de Representacin Diagrama de flujo Diagramacin Rectangular Estructurada Seudocdigo Transcripcin o Codificacin Primer Enunciado Segundo Enunciado Tercer Enunciado
Captulo 7
Decisiones
Estructura Si-Entonces-Sino Decisiones en Cascada Decisiones en Secuencia Decisiones Anidadas Estructura Casos Estructura Casos Simple Estructura Casos Anidadas Ejercicios
Captulo 8
Ciclos
Ciclo Haga Hasta Ciclo Haga Mientras Ejemplos usando todas las Estructuras de Ciclos Ejemplo No.1 Ejemplo No.2 Ejemplo No.3 Ejemplo No.4 Ejemplo No.5 Ejemplo No.6 Ciclos Anidados Ejemplo No. 1 Ejemplo No. 2 Ejemplo No. 3 Ejercicios
147 148 148 148 151 154 157 160 163 163 167 175 182 190
Captulo 9
Arreglos
195 195 197 200 201 201 202 206 219 230 240 251
Concepto General Indices Caractersticas Vectores Caractersticas Ejemplo sin Vectores Ejemplo con Vectores No.1 Ejemplo con Vectores No.2 Ejemplo con Vectores No.3 Ejemplo con Vectores No. 4 Ejercicios
Captulo 10
Matrices
Definicin Caractersticas Ejemplo con Matrices No. 1 Ejemplo con Matrices No. 2 Ejemplo con Matrices No. 3 Ejercicios
Captulo 11
Funciones
307 307 311 312 317 317 324 332 335 348
Concepto General Problemas Reales de la Programacin Macro Algoritmo Variables Globales y Variables Locales Ejemplo No.1 Ejemplo No.2 Ejemplo No.3 Mens Ejercicios
Captulo 12
353
Acerca de la Lgica Acerca de las Variables y los Operadores Acerca de las Estructuras Bsicas Acerca de las Tcnicas de Representacin de Algoritmos Acerca de la Tecnologa Acerca de las Decisiones Acerca de los Ciclos Acerca de los Vectores Acerca de las Matrices Acerca de las Funciones
353 357 358 360 361 363 363 364 364 365
Introduccin
Durante muchos aos he dedicado gran parte de mi tiempo no solo a la enseanza de la Lgica de Programacin sino al anlisis de la enseanza de dicha Lgica debido precisamente a que me he encontrado con que muchas personas confunden la Programacin con la Lgica de Programacin, la primera involucra el conocimiento de tcnicas e instrucciones de un determinado lenguaje a travs de los cuales se nos hace sencillo lograr que el computador obtenga unos resultados mucho mas rpido que nosotros. La segunda involucra, de una manera tcnica y organizada, los conceptos que nos permiten disear en trminos generales la solucin a problemas que pueden llegar a ser implementados a travs de un computador.
El estudio de la Lgica de Programacin no exige ningn conocimiento previo de computadores ni de tecnologa en general, tampoco exige la presencia de algn lenguaje de programacin especfico aunque no puedo negarle que ste podra permitirle, solo despus que usted maneje bien los conceptos de lgica de programacin, implementar y ver convertida en realidad las soluciones lgicas a sus objetivos.
Fueron muchos los alumnos que con el tiempo me fueron solicitando que les enseara cules eran los conceptos realmente bsicos para aprender a programar, o sea aquellos conceptos con los cuales es suficiente para enfrentarse a cualquier lenguaje de programacin o, mejor an, enfrentarse a lograr cualquier objetivo a travs de un computador. Poco a poco fui buscando soluciones a las preguntas que mis alumnos me planteaban y vea que en sus dudas siempre estaba presente la bsqueda de conceptos esenciales que los liberara de las ataduras que tienen los lenguajes de programacin cuando stos son lo primero que se conoce en computadores.
Luego de muchos aos de estudio de estos factores pude condensar en este libro los que considero que son los conceptos fundamentales para aprender realmente a programar o sea lo que he llamado La Esencia de la Lgica de Programacin, pues busco que usted conozca estos elementos conceptuales y, luego de dominarlos, se enfrente sin ningn problema no solo a cualquier objetivo que pueda ser alcanzable a travs de computadores sino adems a cualquier lenguaje de Programacin.
Puedo garantizarle que si usted lee este libro hoja por hoja y desarrolla los ejercicios aqu planteados, al llegar al final del mismo podr (y se lo garantizo) entender que programar no es mas que buscar soluciones muy lgicas utilizando unos conceptos muy sencillos. Espero pues que este libro cumpla el objetivo planteado pues pensando en usted fue como se concibi. No se vaya a afanar por leerlo de una sola vez, tmese su tiempo para razonar y asimilar los conceptos que aqu se plantean. Este libro en ninguna de sus partes le mostrar conceptos complejos debido precisamente a que la lgica de programacin es la unin de muchos (pero muchos) conceptos sencillos para el diseo de soluciones muy (pero muy) lgicas.
El Autor