

























Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
CONCEPTOS BASICOS DE LOS FUNDAMENTOS DE PROGRAMACION
Tipo: Resúmenes
1 / 33
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 45
Una estructura se define como un esquema que nos permite representar de manera simplificada alguna idea y que bajo condiciones normales es constante. Ello significa que si hablamos de este concepto en esta parte del Libro significará que de alguna manera el pensamiento del ser humano, en lo que se refiere a los algoritmos, está enmarcado en algún tipo de Estructuras que no solo le permiten tener un medio mas simplificado y a la mano para expresar las ideas sino que además permite “restringir” un poco el horizonte de la Lógica Algorítmica.
Es pertinente, pues, hacer un breve paréntesis para explicar el porqué es importante “restringir” un poco el horizonte de la Lógica Algorítmica. Comencemos con dos breves preguntas
46 Capítulo 4 – Estructuras Básicas y Técnicas para representar Algoritmos
La primera pregunta se resuelve preguntándole a tres o cuatro señoras acerca de su forma de preparar los fríjoles. Tenga la seguridad de que todas van a tener una manera diferente (o sea un algoritmo diferente) para prepararlos si los vemos detalladamente pero lo que va a ser coincidente en todas también es que logran el mismo objetivo que es dejar listos los fríjoles para ser degustados. Ello nos va a demostrar, en primera instancia, que cada persona concibe algorítmicamente el mismo proceso de manera diferente pero que pueden llegar al mismo objetivo sin importar el camino que hayan escogido para lograrlo.
La segunda es todavía mas reveladora y la voy a hacer en otro sentido Sabe usted porqué ninguna o casi casi ninguna persona lleva puesta una camisa y un pantalón exactamente igual al suyo..? Pues sencillamente porque todas las personas están cumpliendo, en condiciones normales, con el objetivo de estar vestidos mas no exactamente de la misma forma.
Esa variabilidad en cuanto a la concepción de un determinado algoritmo es lo que llevó a pensar en que la parte técnica también podría llegar a ser igualmente variable o mas bien exageradamente variable. Qué pasaba si una persona concebía un algoritmo computacional en unas condiciones lógicas que prácticamente solo ella la entendiera..? Pues precisamente que el día que esa persona fuera despedida de la empresa o se fuera o falleciera, la empresa se vería en un verdadero y grande problema.
A nivel informal la variabilidad de ópticas en cuanto a la concepción del mundo es lo que le ha permitido a éste avanzar y es de allí que se ha podido extractar tecnologías, modas, teorías y muchos avances del mundo moderno pero a nivel técnico si resulta ser muy importante que la lógica para desarrollar un algoritmo computacional sea tan clara que y tan “standard” (si se puede decir así) que un programa desarrollado por una persona sea fácilmente entendible por cualquier otra, dado que haciendo uso de la lógica propia de cada uno podemos llegar a encontrarnos con programas tan confusos que solo llegarían a ser entendibles por su creador.
Esa es la razón fundamental por la cual se buscó “uniformar” la lógica para desarrollar algoritmos computacionales y poder llegar a unas estructuras básicas sobre las cuales se pueda decir que está fundamentada dicha Lógica.
Precisamente y luego de analizar desde muchos ángulos el pensamiento humano y teniendo en cuenta los conceptos de algoritmo informal y algoritmo computacional se llegó a la conclusión de que dicho pensamiento se mueve entre tres estructuras básicas:
Cuando usted está planeando ir este fin de semana a pasear con la familia lo que en su mente se va dibujando poco a poco es una secuencia de acciones a realizar y que le permitan pasar un fin de semana bien bueno. Cuando usted tiene que pensar que debe ir hasta el paradero de buses a tomar el transporte lo que va organizando en su mente es una secuencia de acciones que le
48 Capítulo 4 – Estructuras Básicas y Técnicas para representar Algoritmos
sola alternativa pues sencillamente no tiene alternativa y no hay caminos para escoger. La decisión se da siempre que usted tenga que escoger de entre, por lo menos, dos caminos lógicos.
Usted acostumbra todos los días a ver el noticiero de las 9:30 de la noche, acostumbra a ir al trabajo a la misma hora y a esperar el bus en el mismo paradero, acostumbra saludar de la misma forma a su esposa y acostumbra dormir en el mismo lado y en la misma posición. Usted sencillamente vive practicando la tercer estructura y son los
Ciclos
Que no es mas que la estructura que nos permite repetir una o varias acciones una cantidad definida de veces. Todos los días usted almuerza en su casa según lo cual usted estará en el ciclo de ir a almorzar a su casa siempre pero en pleno almuerzo el hecho de que usted lleve muchas veces la cuchara del plato a su boca representa que usted estará haciendo lo mismo mientras en el plato exista todavía algo mas para comer. Puede notar que permanentemente (e infortunadamente) estamos también realizando tareas cíclicas. Cuando nos aferramos mucho a estos Ciclos de vida es cuando la vida se nos vuelve tremendamente monótona.
Por ahora lo que importa es que usted tenga claro que todo lo que usted hace, sin importar que sea, cualquier acción o conjunto de acciones que usted haga siempre estarán enmarcadas en estas tres estructuras
También conviene que sepa que tomar una decisión depende de una determinada condición y que repetir un conjunto de acciones depende de que se cumpla o se deje de cumplir igualmente una condición.
Precisamente y con el ánimo de facilitar unos patrones técnicos que permitan describir las ideas lógicas de una manera uniforme se han desarrollado unos esquemas que nos van a permitir escribir las estructuras mencionadas anteriormente.
La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 49
Para escribir una secuencia de ordenes o acciones todo lo que tiene que hacer es colocar una nueva orden o una nueva acción después de la última que haya colocado. De esta manera se entiende la secuencialidad y la ordinalidad en la ejecución de esas acciones.
Vamos a desarrollar un algoritmo que nos permita asomarnos a la ventana, pero vamos a asumir que la ventana a donde nos queremos asomar ya está abierta y que no estamos muy distantes de la ventana. Entonces diríamos
Algoritmo para asomarnos a la ventana Inicio Ubicar la ventana por la que nos queremos asomar Levantarnos del lugar en donde estemos sentados Avanzar hacia la ventana Llegar hasta tener la ventana muy muy cerquita Asomarnos por la ventana Fin
Tal vez usted puede notar que el enunciado de este ejercicio tiene unas condiciones que parecen inoficiosas. La razón de la presencia de estas condiciones es que, solo por el ejemplo, no quería que intervinieran otro tipo de estructuras.
En el ejemplo dado usted puede ver que cada acción está antes de una y después de otra (excepto por supuesto la primera y la última). También puede notar que para que este algoritmo nos permita asomarnos a la ventana todo lo que tenemos que hacer es realizar cada acción en el orden en que están planteadas y sencillamente realizar una a la vez. Eso nos va a permitir lograr el objetivo propuesto.
Si queremos realizar el algoritmo para colocarnos una camisa (asumimos que la camisa está en nuestro ropero doblada y abrochada) entonces
Algoritmo para colocarnos una camisa Inicio Dirigirnos a nuestro ropero Abrir el ropero Tomar una camisa Desabrocharla Abrir la camisa Meter un brazo por una de sus mangas Meter el otro brazo por la otra de sus mangas Ajustar la camisa al tronco Abotonarla (botón a botón) Fin
Al igual que en el ejemplo anterior todo lo que tenemos que hacer es ejecutar cada acción en el orden indicado y hacerlo paso a paso y entonces podremos lograr el objetivo de colocarnos la camisa.
La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 51
Orientarnos hacia la ventana
Notamos que estar sentados es la condición de la cual depende si hacemos las dos acciones
Levantarnos del lugar en donde estemos sentados Orientarnos hacia la ventana
O si solo hacemos la acción
Orientarnos hacia la ventana
Una pregunta que evalúa una condición Un conjunto de acciones a realizar en caso de que la condición sea verdadera Un conjunto de acciones a realizar en caso de que la condición sea falsa
Esta última parte, dentro del numeral 3, es razón de ser de la existencia de la acción Sino.
Si esta cerrada Abrirla
En donde si la ventana está abierta pues no hay que hacer mas que asomarse por ella pero si está cerrada debemos primero abrirla para poder asomarnos por ella.
Retomando el segundo ejemplo, y sabiendo que contamos con una estructura para mejorar los algoritmos, podremos adecuarlo de manera que el algoritmo para colocarnos una camisa quede de la siguiente forma
Algoritmo para colocarnos una camisa Inicio Dirigirnos a nuestro ropero Si esta cerrado Abrirlo Tomar una camisa Si está abrochada Desabrocharla Abrir la camisa Si está doblada Desdoblarla Meter un brazo por una de sus mangas Meter el otro brazo por la otra de sus mangas Ajustar la camisa al tronco
52 Capítulo 4 – Estructuras Básicas y Técnicas para representar Algoritmos
Si es una camisa de botones Abotonarla (botón a botón) Ajustarla al cuerpo Sino ajustarla de manera que quede bien puesta Fin
Claramente aquí se puede notar una utilización alta de Condicionales Si que no tienen mucha necesidad de tener un Sino por las razones lógicas del mismo algoritmo. Es obvio que usted podrá tener muchos “reparos” a este algoritmo porque en algún sentido alguno o algunos de los pasos aquí consignados no coinciden con su lógica, pero tenga en cuenta que todos los algoritmos planteados en este libro son solo una idea del autor y que si su idea es acertada, es decir logra los mismos objetivos, así el algoritmo sea diferente estará completamente correcto.
Sé que han de existir muchas diferencias de concepción sobre todo en cuanto a este tipo de algoritmos informales pero lo importante es que usted se vaya acostumbrando a una filosofía propia de los algoritmos para expresar cualquier idea.
Vamos a suponer para ampliar nuestros ejemplos que usted es un supervisor de una fábrica y que cada media hora, a lo largo de todo el día, debe estar vigilando determinada acción a través de una ventana. El algoritmo para cumplir su objetivo que es el de Vigilar (como supervisor de la fábrica) parte de una unidad muy sencilla y es Asomarse por una ventana. En palabras sencillas usted tendrá que asomarse por una ventana mientras no termine el día cada media hora y durante el tiempo que usted no esté asomado lo que tiene que hacer es seguir en su puesto de trabajo. De esta forma, y partiendo de lo que ya tenemos, usted podrá estructurar un algoritmo mas o menos de la siguiente manera
Algoritmo para Vigilar desde una ventana Inicio Llegar puntual a la hora de inicio de la jornada laboral Ubicarnos en nuestro escritorio Mientras no sea el fin del día Ubicar la ventana por la que nos queremos asomar Si estamos sentados Levantarnos del lugar en donde estemos sentados Orientarnos hacia la ventana Sino Orientarnos hacia la ventana Avanzar hacia la ventana Llegar hasta tener la ventana muy muy cerquita Si esta cerrada Abrirla Asomarnos por la ventana Regresar a nuestro escritorio Mientras no haya pasado Media Hora Permanecer en nuestro escritorio Fin_Mientras Fin_Mientras Fin
54 Capítulo 4 – Estructuras Básicas y Técnicas para representar Algoritmos
Fin
Las apreciaciones acerca de este algoritmo coinciden en su mayoría con las apreciaciones acerca del algoritmo anterior (dentro de este mismo tema). Es de anotar que así como, por claridad, se utiliza un Fin_Mientras para indicar en donde termina el bloque de instrucciones que se deben operar es conveniente utilizar un Fin_Si para indicar hasta donde llega completamente una decisión y, en unión con la indentación de acciones, tener claridad en cuanto a los “bloques” de acciones que se formen dentro del algoritmo.
Estos algoritmos informales están expresados tal como desprevenidamente cualquier persona los expresaría y puede entonces suponer usted que la variabilidad de algoritmos que cumplan los mismos objetivos sería inmensa si no existieran unas técnicas uniformes para facilitar la expresión de estas ideas, particularmente en algoritmos computacionales.
Los Diagramas de Flujo parte de unos símbolos que nos permiten decirlo mismo que dijimos hace un momento en los algoritmos pero de una manera gráfica y, por supuesto, un poco mas entendible. Los siguientes son algunos de los símbolos (y el significado de ellos) que se han acordado utilizar dentro de los Diagramas de Flujo o Flujogramas son los siguientes
Un rectángulo representa un proceso que no es mas que una acción ó una orden a ejecutarse de manera clara y concreta. Un ejemplo típico de proceso es la asignación de un valor a una variable.
Este símbolo nos permite representar una Decisión. En su interior podemos escribir la condición de la cual depende la decisión y por sus extremos derecho (o izquierdo) e inferior se pueden colocar las salidas para los casos en que la condición sea Falsa o sea Verdadera.
Este símbolo nos permite expresar un proceso de entrada o salida, teniendo en cuenta que una entrada en un algoritmo se concibe como el proceso a través del cual se recibe información y una salida es el proceso a través del cual se entrega información.
Este símbolo permite representar la escritura de un resultado o lo que técnicamente se conoce como una salida.
Este símbolo representa el Inicio ó el Fin de un Algoritmo. Todo lo que se tiene que hacer es escribir la palabra Inicio o Fin y ubicarlo apropiadamente dentro del Diagrama de Flujo.
Este símbolo permite que coloquemos en él los parámetros de inicio de un ciclo cuando se ajusta a una de las formas establecidas por las normas de
La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 55
programación. En el capítulo de Ciclos desglosaremos un poco mas esta definición.
Este símbolo representa una entrada de datos utilizando el teclado del computador. Todo lo que tenemos que escribir en su interior es el nombre de la variable (o las variables) en donde queremos que se almacene el dato que entra por el teclado.
Estos símbolo se conocen como conectores lógicos. Nos permiten representar la continuación de un Diagrama de Flujo cuando éste es tan largo que no cabe en una sola hoja.
Este símbolo permite representar una lectura de datos. Representa una Tarjeta Perforada pues esta técnica fue establecida cuando aún se leían los datos a través de tarjetas perforadas. Actualmente este símbolo representa sencillamente una lectura.
Este símbolo genera una salida de datos. Representa una cinta perforada porque, al igual que el símbolo anterior, esta técnica fue establecida cuando aún se generaba la salida de datos a través de una tarjeta perforada. En la actualidad este símbolo representa sencillamente una salida o una escritura de datos.
Este símbolo representa una salida de datos pero escrita en la pantalla del computador. Es un símbolo un poco mas moderno para efectos de los diagramas de flujo.
Las flechas son los símbolos que nos van a permitir representar la forma de conexión entre los demás símbolos determinando igualmente el Flujo de ejecución o realización de acciones.
Estos símbolos (en unión con otros símbolos que para efectos de nuestro libro tal vez no haya necesidad de citar) fueron utilizados por mucho tiempo para representar gráficamente una idea o un algoritmo. Cómo se utiliza entonces esta simbología..? Tomemos el caso de los dos algoritmos que construimos mientras conocíamos las estructuras básicas.
El enunciado final buscaba desarrollar una algoritmo que nos permitiera Vigilar una empresa desde una ventana asomándonos cada media hora por ella. El Algoritmo lo habíamos planteado como sigue a continuación
Algoritmo para Vigilar desde una ventana Inicio Llegar puntual a la hora de inicio de la jornada laboral Ubicarnos en nuestro escritorio
La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 57
Ubicar la ventana para asomarnos
Estamos Sentados...?
Levantarnos del Lugar donde estemos
Orientarnos hacia la ventana
Orientarnos hacia la ventana
Avanzar hacia la ventana
Esta cerrada?
Abrirla
Asomarnos por la ventana
Acercarse a la ventana hasta tenerla cerquita
Regresar a nuestro escritorio
58 Capítulo 4 – Estructuras Básicas y Técnicas para representar Algoritmos
Cabe destacar algunos detalles significativos en este Diagrama de Flujo:
Es Fin del día...?
Permanecer en nuestro escrit orio
F i n
Ya pasó media hora?
60 Capítulo 4 – Estructuras Básicas y Técnicas para representar Algoritmos
Dirigirnos a un ropero
Esta cerrado?
Abrirlo
Tomar una camisa
Está abrochada?
Desabrocharla
Abrir la camisa
Está doblada?
Desdoblarla
Meter un brazo por una de sus mangas
Meter el otro brazo por la otra manga
Ajustar la camisa al tronco B
La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 61
Estoy seguro que usted no estará de acuerdo conmigo en algunos de los pasos o acciones de este algoritmo (o del anterior) pero no se preocupe. Cada uno de nosotros actúa bajo una lógica propia pero enmarcado dentro de unas normas que son generales a todos. Si usted no está de acuerdo con los Diagramas expuestos hasta aquí será muy normal pues eso le demuestra que su algoritmo puede ser diferente al mío y diferente al de cualquier otra persona sin embargo estoy seguro que tanto su algoritmo como el mío lograrán el objetivo en ambos casos.
Es muy importante que sepa que, si a lo largo de este libro, usted tiene una idea diferente de cada algoritmo eso estará dentro de lo normal lo importante por ahora es que cada uno logre su objetivo. Diagrame su propia idea de estos dos algoritmos y verá, casi con toda seguridad, que su diagrama es completamente diferente a los expuestos en este libro. No olvide que en este libro aparecen solo las soluciones de una persona. El hecho de que sus soluciones no coincidan con las mías no necesariamente quiere decir que su solución esté mal.
Es camisa de botones?
Abotonarla (botón a botón)
Ajustarla al cuerpo
Ajustarla de manera que quede bien puesta
Emitir el concepto de calidad sobre la camisa
Es fin de la jornada laboral?
F i n
La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 63
Ubicar la ventana por la que nos queremos asomar Si estamos sentados Levantarnos del lugar en donde estemos sentados Orientarnos hacia la ventana Sino Orientarnos hacia la ventana Avanzar hacia la ventana Llegar hasta tener la ventana muy muy cerquita Si esta cerrada Abrirla Asomarnos por la ventana Regresar a nuestro escritorio Mientras no haya pasado Media Hora Permanecer en nuestro escritorio Fin_Mientras Fin_Mientras Fin
Ahora bien, llevado este algoritmo a nivel de Diagramación Rectangular Estructurada el resultado sería el siguiente
Algoritmo Para Vigilar Desde Una Ventana
Llegar puntual a la hora de inicio de la jornada laboral
Ubicarnos en nuestro escritorio
Mientras no sea Fin de la jornada Ubicar la ventana por la que nos vamos a asomar
Estamos sentados?
V F
Levantarnos del Lugar en donde Orientarnos hacia Estemos la ventana
Orientarnos hacia La ventana
Avanzar hacia la ventana
Acercarse bastante a la ventana
Está cerrada la ventana?
V F Abrirla
Asomarnos por la ventana
Regresar a nuestro escritorio
Mientras no haya pasado Media hora (^) Permanecer en nuestro escritorio
F I N
64 Capítulo 4 – Estructuras Básicas y Técnicas para representar Algoritmos
Es imperante hacer algunas precisiones acerca de esta diagrama:
a. Puede usted notar que la correspondencia entre nuestra idea y su representación (bajo esta técnica) es mucho mas exacta que en el caso del Diagrama de Flujo en donde tuvimos que hacer algunos pequeños cambios lógicos para que el diagrama correspondiera a la solución planteada. b. La técnica de diagramación rectangular estructurada obliga a ser mucho mas ordenado y no da ningún espacio para que nuestro algoritmo sea inentendible dado que las estructuras son relativamente rígidas. c. Para la utilización de esta técnica solo tenemos que conocer tres símbolos y con ellos representamos todo lo que queramos dado que nuestra lógica se basa en es as tres estructuras. d. Enmarcar nuestra idea en un rectángulo nos brinda una concepción mas concreta de la solución planteada. e. Realizar una prueba de escritorio con un diagrama basado en esta técnica se reduce a seguir la secuencia de instrucciones y (al igual que con los diagramas de flujo) a realizar una a una y tal como están allí las instrucciones o acciones, las decisiones y la revisión de las condiciones de los ciclos.
Tomemos el segundo algoritmo y realicemos su correspondiente Diagrama Rectangular Estructurado. El enunciado buscaba diseñar un algoritmo para inspeccionar la calidad de las camisas en un almacén de ropa. La solución algorítmica que se planteó fue la siguiente
Algoritmo para Inspeccionar las camisas en un almacén de ropa
Inicio Llegar puntuales al inicio de la jornada laboral Mientras no sea fin de la jornada laboral Dirigirnos a un ropero Si esta cerrado Abrirlo Tomar una camisa Si está abrochada Desabrocharla Abrir la camisa Si está doblada Desdoblarla Meter un brazo por una de sus mangas Meter el otro brazo por la otra de sus mangas Ajustar la camisa al tronco Si es una camisa de botones Abotonarla (botón a botón) Ajustarla al cuerpo Sino Ajustarla de manera que quede bien puesta Emitir el concepto de calidad sobre la camisa Fin_Mientras Fin