estructuras básicas y técnicas para representar algoritmos (1)

32
7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1) http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 1/32 La Esencia de la Lógica de Programación Omar Ivan Trejos Buriticá 45 Capítulo 4 Estructuras Básicas y Técnicas para Representar  Algoritmos Estructuras Básicas El concepto de Estructura 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 algn tipo de Estructuras que no solo le permiten tener un medio mas simplificado y a la mano para e!presar las ideas sino que además permite "restringir# un poco el hori$onte de la L%gica &lgorítmica. Es pertinente, pues, hacer un bre'e par(ntesis para e!plicar el porqu( es importante "restringir# un poco el hori$onte de la L%gica &lgorítmica. Comencemos con dos bre'es preguntas ). Con cuántos algoritmos las se*oras de la casa pueden preparar los fríjoles..+ . Cuántas personas 'e usted cerca que lle'en puesta una camisa y un pantal%n e!actamente igual al suyo..+

Upload: oscar-moskera

Post on 20-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 1/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 45

Capítulo 4

Estructuras Básicas y Técnicas para Representar  Algoritmos

Estructuras Básicas

El concepto de Estructura

Una estructura se define como un esquema que nos permite representar de manera simplificadaalguna idea y que bajo condiciones normales es constante. Ello significa que si hablamos de esteconcepto 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 algn tipo de Estructuras que no solo lepermiten tener un medio mas simplificado y a la mano para e!presar las ideas sino que ademáspermite "restringir# un poco el hori$onte de la L%gica &lgorítmica.

Es pertinente, pues, hacer un bre'e par(ntesis para e!plicar el porqu( es importante "restringir# unpoco el hori$onte de la L%gica &lgorítmica. Comencemos con dos bre'es preguntas

). Con cuántos algoritmos las se*oras de la casa pueden preparar los fríjoles..+. Cuántas personas 'e usted cerca que lle'en puesta una camisa y un pantal%n e!actamente

igual al suyo..+

Page 2: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 2/32

46 Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

La primera pregunta se resuel'e preguntándole a tres o cuatro se*oras acerca de su forma depreparar los fríjoles. -enga la seguridad de que todas 'an a tener una manera diferente o sea unalgoritmo diferente/ para prepararlos si los 'emos detalladamente pero lo que 'a a ser coincidenteen todas tambi(n es que logran el mismo objeti'o que es dejar listos los fríjoles para ser degustados. Ello nos 'a a demostrar, en primera instancia, que cada persona concibealgorítmicamente el mismo proceso de manera diferente pero que pueden llegar al mismo objeti'osin importar el camino que hayan escogido para lograrlo.

La segunda es toda'ía mas re'eladora y la 'oy a hacer en otro sentido 0abe usted porqu( ningunao casi casi ninguna persona lle'a puesta una camisa y un pantal%n e!actamente igual al suyo..+1ues sencillamente porque todas las personas están cumpliendo, en condiciones normales, con elobjeti'o de estar 'estidos mas no e!actamente de la misma forma.

Esa 'ariabilidad en cuanto a la concepci%n de un determinado algoritmo es lo que lle'% a pensar enque la parte t(cnica tambi(n podría llegar a ser igualmente 'ariable o mas bien e!ageradamente

'ariable. 2u( pasaba si una persona concebía un algoritmo computacional en unas condicionesl%gicas que prácticamente solo ella la entendiera..+ 1ues precisamente que el día que esa personafuera despedida de la empresa o se fuera o falleciera, la empresa se 'ería en un 'erdadero ygrande problema.

 & ni'el informal la 'ariabilidad de %pticas en cuanto a la concepci%n del mundo es lo que le hapermitido a (ste a'an$ar y es de allí que se ha podido e!tractar tecnologías, modas, teorías ymuchos a'ances del mundo moderno pero a ni'el t(cnico si resulta ser muy importante que lal%gica para desarrollar un algoritmo computacional sea tan clara que y tan "standard# si se puededecir 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 ra$%n fundamental por la cual se busc% "uniformar# la l%gica para desarrollar algoritmoscomputacionales y poder llegar a unas estructuras básicas sobre las cuales se pueda decir queestá fundamentada dicha L%gica.

Consideraciones &lgorítmicas sobre el pensamiento humano

1recisamente y luego de anali$ar desde muchos ángulos el pensamiento humano y teniendo encuenta los conceptos de algoritmo informal y algoritmo computacional se lleg% a la conclusi%n deque dicho pensamiento se mue'e entre tres estructuras básicas3

Cuando usted está planeando ir este fin de semana a pasear con la familia lo que en su mente se'a dibujando poco a poco es una secuencia de acciones a reali$ar y que le permitan pasar un finde semana bien bueno. Cuando usted tiene que pensar que debe ir hasta el paradero de buses atomar el transporte lo que 'a organi$ando en su mente es una secuencia de acciones que le

Page 3: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 3/32

Page 4: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 4/32

4& Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

sola alternati'a pues sencillamente no tiene alternati'a y no hay caminos para escoger. La decisi%nse da siempre que usted tenga que escoger de entre, por lo menos, dos caminos l%gicos.

Usted acostumbra todos los días a 'er el noticiero de las 356 de la noche, acostumbra a ir altrabajo a la misma hora y a esperar el bus en el mismo paradero, acostumbra saludar de la mismaforma a su esposa y acostumbra dormir en el mismo lado y en la misma posici%n. Ustedsencillamente 'i'e practicando la tercer estructura y son los

Ciclos

2ue no es mas que la estructura que nos permite repetir una o 'arias acciones una cantidad

definida de 'eces. -odos los días usted almuer$a en su casa segn lo cual usted estará en el ciclode ir a almor$ar a su casa siempre pero en pleno almuer$o el hecho de que usted lle'e muchas'eces la cuchara del plato a su boca representa que usted estará haciendo lo mismo mientras en elplato e!ista toda'ía algo mas para comer. 1uede notar que permanentemente e infortunadamente/estamos tambi(n reali$ando tareas cíclicas. Cuando nos aferramos mucho a estos Ciclos de 'idaes cuando la 'ida se nos 'uel'e tremendamente mon%tona.

1or ahora lo que importa es que usted tenga claro que todo lo que usted hace, sin importar quesea, cualquier acci%n o conjunto de acciones que usted haga siempre estarán enmarcadas enestas tres estructuras

). 0ecuencias de acciones. 8ecisi%n de acci%n5. Ciclos de acciones

-ambi(n con'iene que sepa que tomar una decisi%n depende de una determinada condici%n y querepetir un conjunto de acciones depende de que se cumpla o se deje de cumplir igualmente unacondici%n.

Estructuras Básicas expresadas Técnicamente

1recisamente y con el ánimo de facilitar unos patrones t(cnicos que permitan describir las ideasl%gicas de una manera uniforme se han desarrollado unos esquemas que nos 'an a permitir escribir las estructuras mencionadas anteriormente.

Page 5: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 5/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 4'

Las secuencias de %rdenes

1ara escribir una secuencia de ordenes o acciones todo lo que tiene que hacer es colocar unanue'a orden o una nue'a acci%n despu(s de la ltima que haya colocado. 8e esta manera seentiende la secuencialidad y la ordinalidad en la ejecuci%n de esas acciones.

9amos a desarrollar un algoritmo que nos permita asomarnos a la 'entana, pero 'amos a asumir que la 'entana a donde nos queremos asomar ya está abierta y que no estamos muy distantes dela 'entana. Entonces diríamos

 Algoritmo para asomarnos a la ventanaInicio

Ubicar la ventana por la que nos queremos asomar Levantarnos del lugar en donde estemos sentados

 Avanzar acia la ventanaLlegar asta tener la ventana muy muy cerquita

 Asomarnos por la ventana!in

-al 'e$ usted puede notar que el enunciado de este ejercicio tiene unas condiciones que pareceninoficiosas. La ra$%n de la presencia de estas condiciones es que, solo por el ejemplo, no queríaque inter'inieran otro tipo de estructuras.

En el ejemplo dado usted puede 'er que cada acci%n está antes de una y despu(s de otra e!ceptopor supuesto la primera y la ltima/. -ambi(n puede notar que para que este algoritmo nos permitaasomarnos a la 'entana todo lo que tenemos que hacer es reali$ar cada acci%n en el orden en queestán planteadas y sencillamente reali$ar una a la 'e$. Eso nos 'a a permitir lograr el objeti'opropuesto.

0i queremos reali$ar el algoritmo para colocarnos una camisa asumimos que la camisa está ennuestro ropero doblada y abrochada/ entonces

 Algoritmo para colocarnos una camisaInicio

"irigirnos a nuestro ropero Abrir el roperoTomar una camisa"esabrocarla

 Abrir la camisa#eter un brazo por una de sus mangas

#eter el otro brazo por la otra de sus mangas A$ustar la camisa al tronco Abotonarla %bot&n a bot&n'

!in

 &l igual que en el ejemplo anterior todo lo que tenemos que hacer es ejecutar cada acci%n en elorden indicado y hacerlo paso a paso y entonces podremos lograr el objeti'o de colocarnos lacamisa.

Page 6: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 6/32

5( Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

1uede usted notar que para utili$ar la estructura de secuencia que a 'eces parece ser tan ob'ia/todo lo que tenemos que hacer es ir colocando una acci%n tras otra y, por supuesto, ser muyracionales en el orden de dichas acciones porque estoy seguro que, hasta el momento, usted hapodido notar que en cuesti%n de algoritmos El orden de los factores sí altera el resultado.

Las 8ecisiones

0iempre que tenemos que tomar una decisi%n o, mas bien, siempre que tengamos que utili$ar laestructura de 8ecisiones 'amos a depender de una condici%n. La condici%n es la que nos permiteque podamos decidir cuál es el camino l%gico correcto a tomar.

9amos a desarrollar el mismo algoritmo de asomarnos a la 'entana pero esta 'e$ no le 'amos acolocar las condiciones de que estamos cerca de la 'entana y de que (sta está abierta. 1ara ello'amos a incorporar una líneas de decisi%n que nos permitan tener un algoritmo mas gen(rico y quenos permita lograr mejor el objeti'o, así 3

 Algoritmo para asomarnos a la ventanaInicio

Ubicar la ventana por la que nos queremos asomar (i estamos sentados

Levantarnos del lugar en donde estemos sentados)rientarnos acia la ventana

(ino)rientarnos acia la ventana

 Avanzar acia la ventanaLlegar asta tener la ventana muy muy cerquita(i esta cerrada

 Abrirla Asomarnos por la ventana

!in

:a puede usted notar que nuestro algoritmo ha cambiado un poco y por lo tanto ahora tiene unascondiciones que le permiten ser una secuencia de acciones mas racional. En estas condiciones elalgoritmo se con'ierte en algo mas depurado y mucho mas apro!imado a la realidad. ;ote usted'arias cosas en este algoritmo

). Las palabras 0i que aparecen son e!clusi'amente condicionales y no afirmati'as como pudierapensarse en algunos casos

. 8espu(s de cada 0i condicional 'a una condici%n que es la que permite que se haga una cosau otra. La condici%n regula las acciones que 'ienen despu(s y que dependen del 0i condicionalinicial. En la decisi%n

(i estamos sentadosLevantarnos del lugar en donde estemos sentados)rientarnos acia la ventana

(ino

Page 7: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 7/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 5)

)rientarnos acia la ventana

;otamos que estar sentados es la condici%n de la cual depende si hacemos las dos acciones

Levantarnos del lugar en donde estemos sentados)rientarnos acia la ventana

< si solo hacemos la acci%n

)rientarnos acia la ventana

5. 1uede usted notar que una decisi%n completa in'olucra

Una pregunta que e'ala una condici%n

Un conjunto de acciones a reali$ar en caso de que la condici%n sea 'erdaderaUn conjunto de acciones a reali$ar en caso de que la condici%n sea falsa

Esta ltima parte, dentro del numeral 5, es ra$%n de ser de la e!istencia de la acci%n 0ino.

4. ;o siempre que e!ista un condicional (i  debe e!istir un (ino asociado a (l. 0iempre que e!istaun (ino es porque está asociado a un (i  condicional determinado. -al es el caso de la 8ecisi%n

(i esta cerrada Abrirla

En donde si la 'entana está abierta pues no hay que hacer mas que asomarse por ella pero si estácerrada debemos primero abrirla para poder asomarnos por ella.

=etomando el segundo ejemplo, y sabiendo que contamos con una estructura para mejorar losalgoritmos, podremos adecuarlo de manera que el algoritmo para colocarnos una camisa quede dela siguiente forma

 Algoritmo para colocarnos una camisaInicio

"irigirnos a nuestro ropero  (i esta cerrado

 AbrirloTomar una camisa(i está abrocada

"esabrocarla Abrir la camisa

(i está doblada"esdoblarla

#eter un brazo por una de sus mangas#eter el otro brazo por la otra de sus mangas

 A$ustar la camisa al tronco

Page 8: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 8/32

5* Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

(i es una camisa de botones Abotonarla %bot&n a bot&n' A$ustarla al cuerpo

(inoa$ustarla de manera que quede bien puesta

!in

Claramente aquí se puede notar una utili$aci%n alta de Condicionales 0i que no tienen muchanecesidad de tener un 0ino por las ra$ones l%gicas del mismo algoritmo. Es ob'io que usted podrátener muchos "reparos# a este algoritmo porque en algn sentido alguno o algunos de los pasosaquí consignados no coinciden con su l%gica, pero tenga en cuenta que todos los algoritmosplanteados en este libro son solo una idea del autor y que si su idea es acertada, es decir logra losmismos objeti'os, así el algoritmo sea diferente estará completamente correcto.

0( que han de e!istir muchas diferencias de concepci%n sobre todo en cuanto a este tipo dealgoritmos informales pero lo importante es que usted se 'aya acostumbrando a una filosofíapropia de los algoritmos para e!presar cualquier idea.

Los Ciclos

9amos a suponer para ampliar nuestros ejemplos que usted es un super'isor de una fábrica y quecada media hora, a lo largo de todo el día, debe estar 'igilando determinada acci%n a tra'(s de una'entana. El algoritmo para cumplir su objeti'o que es el de 9igilar como super'isor de la fábrica/parte de una unidad muy sencilla y es &somarse por una 'entana. En palabras sencillas ustedtendrá que asomarse por una 'entana mientras no termine el día cada media hora y durante eltiempo que usted no est( asomado lo que tiene que hacer es seguir en su puesto de trabajo. 8eesta forma, y partiendo de lo que ya tenemos, usted podrá estructurar un algoritmo mas o menosde la siguiente manera

 Algoritmo para *igilar desde una ventanaInicio

Llegar puntual a la ora de inicio de la $ornada laboral Ubicarnos en nuestro escritorio#ientras no sea el +in del d,a

Ubicar la ventana por la que nos queremos asomar (i estamos sentados

Levantarnos del lugar en donde estemos sentados)rientarnos acia la ventana

(ino)rientarnos acia la ventana

 Avanzar acia la ventanaLlegar asta tener la ventana muy muy cerquita

(i esta cerrada Abrirla

 Asomarnos por la ventanaRegresar a nuestro escritorio#ientras no aya pasado #edia -ora

.ermanecer en nuestro escritorio!in/#ientras

!in/#ientras!in

Page 9: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 9/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 5+

9arios factores nue'os entran en este algoritmo

). La palabra >ientras establece en relaci%n con una condici%n el inicio de un conjunto deacciones que se repiten precisamente >ientras esa condici%n lo permita

. -odo >ientras por efectos de clarificaci%n del algoritmo/ debe tener un finali$ador que indiquehasta donde llega el bloque de acciones que debemos repetir.

5. La indentaci%n o lo que corrientemente se conoce como el "0angrado# del te!to es decir elhecho de que algunas acciones est(n mas adentro de la hoja que otras, representa quee!isten bloques de acciones que tienen una característica.

Las acciones contenidas entre el ?nicio y el @in indican que son las acciones queconforman el algoritmo en menci%n.

Las acciones comprendidas entre >ientras no sea @in del día y su correspondiente@inA>ientras son el conjunto o bloque que se debe repetir o iterar / precisamente mientrasla condici%n sea 9erdadera o sea >ientras no sea fin del día.

La acci%n comprendida entre >ientras no haya pasado >edia Bora y su correspondiente@inA>ientras es la acci%n que se deberá reali$ar hasta cuando se complete media hora.

4. Cada ciclo de acciones que se inicie con >ientras deberá tener un @inA>ientras asociado y asu 'e$ cada @inA>ientras deberá finali$ar uno y solo un ciclo iniciado con >ientras.

0upongamos que usted es el inspector de calidad de un almac(n de ropa y su trabajo consiste enmedirse algunas de las camisas que están en los roperos del almac(n para 'erificar su ajuste encuanto a la talla. Entonces, mientras no termine su jornada de trabajo usted lo que hará será ir deropero en ropero tomando una camisa y midi(ndosela. 8e esta forma si partimos del algoritmo decolocarnos una camisa que ya tenemos entonces este nue'o objeti'o puede cumplirse de lasiguiente forma

 Algoritmo Inspeccionar las camisas en un almacén de ropaInicio

Llegar puntuales al inicio de la $ornada laboral #ientras no sea +in de la $ornada laboral 

"irigirnos a un ropero  (i esta cerrado

 AbrirloTomar una camisa(i está abrocada

"esabrocarla Abrir la camisa

(i está doblada"esdoblarla

#eter un brazo por una de sus mangas#eter el otro brazo por la otra de sus mangas A$ustar la camisa al tronco(i es una camisa de botones

 Abotonarla %bot&n a bot&n' A$ustarla al cuerpo

(ino A$ustarla de manera que quede bien puesta

Emitir el concepto de calidad sobre la camisa!in/#ientras

Page 10: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 10/32

54 Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

!in

Las apreciaciones acerca de este algoritmo coinciden en su mayoría con las apreciaciones acercadel algoritmo anterior dentro de este mismo tema/. Es de anotar que así como, por claridad, seutili$a un @inA>ientras para indicar en donde termina el bloque de instrucciones que se debenoperar es con'eniente utili$ar un @inA0i para indicar hasta donde llega completamente unadecisi%n y, en uni%n con la indentaci%n de acciones, tener claridad en cuanto a los "bloques# deacciones que se formen dentro del algoritmo.

Estos algoritmos informales están e!presados tal como despre'enidamente cualquier persona lose!presaría y puede entonces suponer usted que la 'ariabilidad de algoritmos que cumplan losmismos objeti'os sería inmensa si no e!istieran unas t(cnicas uniformes para facilitar la e!presi%nde estas ideas, particularmente en algoritmos computacionales.

Técnicas Para Representar Algoritmos

8iagramas de @lujo

Los 8iagramas de @lujo parte de unos símbolos que nos permiten decirlo mismo que dijimos haceun momento en los algoritmos pero de una manera gráfica y, por supuesto, un poco masentendible. Los siguientes son algunos de los símbolos y el significado de ellos/ que se hanacordado utili$ar dentro de los 8iagramas de @lujo o @lujogramas son los siguientes

Un rectángulo representa un proceso que no es mas que una acci%n % unaorden a ejecutarse de manera clara y concreta. Un ejemplo típico deproceso es la asignaci%n de un 'alor a una 'ariable.

Este símbolo nos permite representar una 8ecisi%n. En su interior podemosescribir la condici%n de la cual depende la decisi%n y por sus e!tremosderecho o i$quierdo/ e inferior se pueden colocar las salidas para loscasos en que la condici%n sea @alsa o sea 9erdadera.

Este símbolo nos permite e!presar un proceso de entrada o salida,teniendo en cuenta que una entrada en un algoritmo se concibe como elproceso a tra'(s del cual se recibe informaci%n y una salida es el proceso atra'(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 ?nicio % el @in de un &lgoritmo. -odo lo que setiene que hacer es escribir la palabra ?nicio o @in y ubicarlo apropiadamentedentro del 8iagrama de @lujo.

Este símbolo permite que coloquemos en (l los parámetros de inicio de unciclo cuando se ajusta a una de las formas establecidas por las normas de

Page 11: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 11/32

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 estadefinici%n.

Este símbolo representa una entrada de datos utili$ando el teclado delcomputador. -odo lo que tenemos que escribir en su interior es el nombrede la 'ariable o las 'ariables/ en donde queremos que se almacene eldato que entra por el teclado.

Estos símbolo se conocen como conectores l%gicos. ;os permitenrepresentar la continuaci%n de un 8iagrama de @lujo cuando (ste es tanlargo que no cabe en una sola hoja.

Este símbolo permite representar una lectura de datos. =epresenta una-arjeta 1erforada pues esta t(cnica fue establecida cuando an se leían losdatos a tra'(s de tarjetas perforadas. &ctualmente este símbolo representasencillamente una lectura.

Este símbolo genera una salida de datos. =epresenta una cinta perforadaporque, al igual que el símbolo anterior, esta t(cnica fue establecidacuando an se generaba la salida de datos a tra'(s de una tarjetaperforada. En la actualidad este símbolo representa sencillamente unasalida o una escritura de datos.

Este símbolo representa una salida de datos pero escrita en la pantalla delcomputador. Es un símbolo un poco mas moderno para efectos de losdiagramas de flujo.

Las flechas son los símbolos que nos 'an a permitir representar la formade cone!i%n entre los demás símbolos determinando igualmente el @lujo deejecuci%n o reali$aci%n de acciones.

Estos símbolos en uni%n con otros símbolos que para efectos de nuestro libro tal 'e$ no hayanecesidad de citar/ fueron utili$ados por mucho tiempo para representar gráficamente una idea oun algoritmo. C%mo se utili$a entonces esta simbología..+ -omemos el caso de los dos algoritmosque construimos mientras conocíamos las estructuras básicas.

El enunciado final buscaba desarrollar una algoritmo que nos permitiera 9igilar una empresadesde una 'entana asomándonos cada media hora por ella. El &lgoritmo lo habíamos planteadocomo sigue a continuaci%n

 Algoritmo para *igilar desde una ventanaInicio

Llegar puntual a la ora de inicio de la $ornada laboral Ubicarnos en nuestro escritorio

Page 12: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 12/32

56 Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

#ientras no sea el +in del d,aUbicar la ventana por la que nos queremos asomar (i estamos sentados

Levantarnos del lugar en donde estemos sentados)rientarnos acia la ventana

(ino)rientarnos acia la ventana

 Avanzar acia la ventanaLlegar asta tener la ventana muy muy cerquita(i esta cerrada

 Abrirla Asomarnos por la ventanaRegresar a nuestro escritorio#ientras no aya pasado #edia -ora

.ermanecer en nuestro escritorio!in/#ientras

!in/#ientras!in

0i queremos lle'arlo a la simbología de 8iagramas de @lujo su equi'alente sería el siguiente3

8iagrama 8e @lujo 1ara 9igilar 8esde Una 9entana

? n i c i o

Llegar puntualornadaLaboral

Ubicarnos ennuestro

escritorio

$

Page 13: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 13/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 5%

@

  9 

@  9

,-icar la ventana ara asomarnos

Estamos

.entados///0

Levantarnos del

Lugar donde estemos

Orientarnos 1acia la

ventana

Orientarnos 1acia la

ventana

$van2ar 1acia la

ventana

Esta

cerrada0

$-rirla

$somarnos or la

ventana

$cercarse a la

ventana 1asta tenerla

egresar a nuestro

escritorio

 &

B

)

Page 14: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 14/32

5& Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

  @

 9

@

  9

Cabe destacar algunos detalles significati'os en este 8iagrama de @lujo3

). -oda decisi%n, como es ob'io, tiene dos caminos3 Un camino nos lle'a a la acci%n o lasacciones a reali$ar en el caso de que la respuesta a la pregunta sea 9erdadera y el otrocamino es el que nos dice que debemos hacer en caso de que la respuesta a la pregunta sea@alsa.

. Lo que en el algoritmo eran unos ciclos, en el diagrama se cambiaron por unas decisiones endonde uno de los caminos se de'uel'e instrucciones atrás ob'iamente/. &l reali$ar unseguimiento de este 8iagrama de @lujo usted notará que se podrá de'ol'er tantas 'eces comolo permita la condici%n de la 8ecisi%n que queda al final y que solo se 'a a salir de eses ciclocuando la condici%n sea 9erdadera o sea que el ciclo se mantiene mientras la condici%n sea@alsa lo cual concuerda con la teoría de los ciclos.

5. En la ltima decisi%n, el camino @also nos lle'a a una burbuja que tiene un nmero ) adentro.;mero que tambi(n está al principio del diagrama pero con la flecha en el otro sentido esdecir, no saliendo del diagrama sino entrando a (l/. 0e utili$a esta notaci%n solo para simplificar 

un poco el 8iagrama de @lujo.4. Con el 8iagrama de @lujo usted puede 'er un gráfico de la soluci%n y con ello hacerse una ideaclara de la secuencia de pasos que necesitaría para alcan$ar el objeti'o.

D. 0iempre que 'aya a desarrollar un 8iagrama de @lujo trate de ser muy organi$ado y muyest(tico, pues no se ol'ide que si 'amos a representar un algoritmo computacional en dondese busca que el computador logre un objeti'o por nosotros/ al momento de la transcripci%nserá muy importante el orden que usted haya tenido en la utili$aci%n de esta t(cnica.

. Cuando dise*e un ciclo, no se ol'ide 'erificar que, l%gicamente, la decisi%n por la cualreemplace el ciclo al momento de dise*ar su diagrama de flujo tenga el mismo comportamiento

Es in

deld!a///0

Permanecer en

nuestro escritorio

i n

a asó

media

1ora0

B

)

Page 15: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 15/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 5'

es decir permitan que bajo las mismas condiciones una acci%n o un conjunto de acciones serepitan una cantidad finita de 'eces.

F. 0i el algoritmo que usted tiene para lograr este mismo objeti'o es diferente, tenga presenta queel 8iagrama de @lujo tambi(n 'a a ser diferente ya que (ste es un reflejo gráfico de aquel.

G. Es muy importante que sepa que el solo hecho de cambiar la llegada de una determinadaflecha, cambia completamente el algoritmo. 1uede usted notar que la utili$aci%n de lossímbolos resulta ser una tarea muy simplificada, pero lo que si es delicado es la colocaci%n delas flechas ya que ellas son las que representan el sentido con que se 'a a "mo'er# el flujo denuestro l%gica.

 1ara clarificar an mas lo que hasta ahora hemos dicho, 'amos a dise*ar el diagrama de flujo del &lgoritmo para inspeccionar las camisas en un almac(n de ropa. 1ara ello, y tal como lo hicimos enel algoritmo anterior, partamos de la soluci%n final que dimos a este algoritmo en dondein'olucrábamos secuencias de acciones, decisiones y ciclosH

 Algoritmo para Inspeccionar las camisas en un almacén de ropaInicio

Llegar puntuales al inicio de la $ornada laboral 

#ientras no sea +in de la $ornada laboral "irigirnos a un ropero

  (i esta cerrado Abrirlo

Tomar una camisa(i está abrocada

"esabrocarla Abrir la camisa

(i está doblada"esdoblarla

#eter un brazo por una de sus mangas#eter el otro brazo por la otra de sus mangas

 A$ustar la camisa al tronco

(i es una camisa de botones Abotonarla %bot&n a bot&n' A$ustarla al cuerpo

(ino A$ustarla de manera que quede bien puesta

Emitir el concepto de calidad sobre la camisa!in/#ientras

!in

Lle'ado a la simbología de un 8iagrama de @lujo, su equi'alente sería el siguiente

? n i c i o

Llegarpuntuales alinicio de la

 jornada laboral

$

Page 16: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 16/32

6( Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

@

 9

  9

  @9

 

@9

 

8irigirnos a unropero

Estacerrado

+

 &brirlo

-omar unacamisa

Estáabrochad

a+

8esabrocharla

 &brir la camisa

Estádoblada+

8esdoblarla

>eter un bra$o poruna de sus mangas

>eter el otro bra$opor la otra manga

 &justar la camisa altronco B

$

)

Page 17: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 17/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 6)

@

 9

  9

@

9

 Estoy seguro que usted no estará de acuerdo conmigo en algunos de los pasos o acciones de estealgoritmo o del anterior/ pero no se preocupe. Cada uno de nosotros acta bajo una l%gica propiapero enmarcado dentro de unas normas que son generales a todos. 0i usted no está de acuerdocon los 8iagramas e!puestos hasta aquí será muy normal pues eso le demuestra que su algoritmopuede ser diferente al mío y diferente al de cualquier otra persona sin embargo estoy seguro quetanto su algoritmo como el mío lograrán el objeti'o en ambos casos.

Es muy importante que sepa que, si a lo largo de este libro, usted tiene una idea diferente de cadaalgoritmo eso estará dentro de lo normal lo importante por ahora es que cada uno logre su objeti'o.8iagrame su propia idea de estos dos algoritmos y 'erá, casi con toda seguridad, que su diagramaes completamente diferente a los e!puestos en este libro. ;o ol'ide que en este libro aparecensolo las soluciones de una persona. El hecho de que sus soluciones no coincidan con las mías nonecesariamente quiere decir que su soluci%n est( mal.

B

Escamisa

debotones+

 &botonarlabot%n a bot%n/

 &justarla alcuerpo

 &justarla demanera quequede bien

puesta

Emitir elconcepto de

calidad sobre lacamisa

Es finde la

 jornadalaboral+

i n

)

Page 18: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 18/32

6* Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

=ecurra siempre a la prueba de escritorio antes de dudar de sus soluciones y además 'erifique lassoluciones de este libro 'ali(ndose de la misma herramienta.

8iagramas =ectangulares Estructurados

Una de las dificultades de los 8iagramas de @lujo radica en que así como brinda la posibilidad derepresentar gráficamente el flujo de una idea o el "recorrido# de la soluci%n a un problema tambi(n

abre el espacio para que un programador desordenado ponga flechas de flujo a diestra y siniestra yfinalmente obtenga una representaci%n mas compleja que la idea misma. 1recisamente la t(cnicade 8iagramas =ectangulares Estructurados nos permite tener unas herramientas gráficas pararepresentar la soluci%n a un problema con la 'entaja de que no brinda la posibilidad de que seamosdesordenados en nuestra concepci%n. 7ráficamente se basa en representar todo el algoritmodentro del marco de un rectángulo y a diferencia de la t(cnica anterior, la 8=E se mue'ebásicamente con la utili$aci%n de tres símbolos que corresponden a cada una de las estructurasbásicas de la l%gica de programaci%n. Estas representaciones son las siguientes3

1ara representar secuencias de instrucciones todo lo quetenemos que hacer es colocar cada instrucci%n en unalínea "enmarcada#.

1ara representar una decisi%n se utili$a este símbolo endonde por el lado i$quierdo podemos colocar las accioneso ?nstrucciones que correspondería ejecutar en el caso deque la condici%n fuera 9erdadera y por el lado derechocolocaríamos las acciones o instrucciones a ejecutar cuando la condici%n fuera @alsa.

1ara representar un ciclo sencillamente en la esquinasuperior i$quierda del bloque correspondiente colocamos lacondici%n y dentro del bloque colocamos las instruccioneso acciones que se debe repetir y que a su 'e$, por supuesto, dependen de la condici%n.

1ero definiti'amente la utili$aci%n efecti'a de esta t(cnica de representaci%n se 'e con un ejemplo.9amos a estructurar en 8iagramaci%n =ectangular Estructurada los dos algoritmos de ejemplo queya representamos en la -(cnica de 8iagrama de @lujo. 1ara ello 'ol'amos a recordar el primer enunciado y su correspondiente soluci%n a ni'el &lgorítmica. 0e trataba de desarrollar un algoritmoque nos permitiera cada media hora durante la jornada de trabajo laboral 'igilar desde una'entana. El algoritmo que fue planteado como soluci%n final fue el siguiente3

 Algoritmo para *igilar desde una ventanaInicio

Llegar puntual a la ora de inicio de la $ornada laboral Ubicarnos en nuestro escritorio#ientras no sea el +in del d,a

Ubicar la ventana por la que nos queremos asomar 

 &cci%n o ?nstrucci%n )

 

Condici%n

  9 @

?nst ! 9 ?nst ! @

Condici%n8el Ciclo

Conjunto de?nstrucciones a

=epetir 

Page 19: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 19/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 6+

(i estamos sentadosLevantarnos del lugar en donde estemos sentados)rientarnos acia la ventana

(ino)rientarnos acia la ventana

 Avanzar acia la ventanaLlegar asta tener la ventana muy muy cerquita(i esta cerrada

 Abrirla Asomarnos por la ventanaRegresar a nuestro escritorio#ientras no aya pasado #edia -ora

.ermanecer en nuestro escritorio!in/#ientras

!in/#ientras!in

 &hora bien, lle'ado este algoritmo a ni'el de 8iagramaci%n =ectangular Estructurada el resultadosería el siguiente

 Algoritmo Para Vigilar Desde Una Ventana

Llegar puntual a la hora de inicio de la jornada laboral

Ubicarnos en nuestro escritorio

>ientras no sea@in de la jornada

Ubicar la 'entana por la que nos 'amos aasomar 

Estamos sentados+

  9 @

Le'antarnos delLugar en donde <rientarnos haciaEstemos la 'entana

 <rientarnos haciaLa 'entana

 &'an$ar hacia la 'entana

 &cercarse bastante a la 'entana

Está cerrada la 'entana+

  9 @  &brirla

 &somarnos por la 'entana

=egresar a nuestro escritorio

>ientras no haya pasado>edia hora

1ermanecer en nuestroescritorio

@ ? ;

Page 20: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 20/32

64 Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

Es imperante hacer algunas precisiones acerca de esta diagrama3

a. 1uede usted notar que la correspondencia entre nuestra idea y su representaci%n bajo estat(cnica/ es mucho mas e!acta que en el caso del 8iagrama de @lujo en donde tu'imos quehacer algunos peque*os cambios l%gicos para que el diagrama correspondiera a la soluci%nplanteada.

b. La t(cnica de diagramaci%n rectangular estructurada obliga a ser mucho mas ordenado y no daningn espacio para que nuestro algoritmo sea inentendible dado que las estructuras sonrelati'amente rígidas.

c. 1ara la utili$aci%n de esta t(cnica solo tenemos que conocer tres símbolos y con ellosrepresentamos todo lo que queramos dado que nuestra l%gica se basa en esas tresestructuras.

d. Enmarcar nuestra idea en un rectángulo nos brinda una concepci%n mas concreta de lasoluci%n planteada.

e. =eali$ar 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 reali$ar una a una ytal como están allí las instrucciones o acciones, las decisiones y la re'isi%n de las condicionesde los ciclos.

-omemos el segundo algoritmo y realicemos su correspondiente 8iagrama =ectangular Estructurado. El enunciado buscaba dise*ar un algoritmo para inspeccionar la calidad de lascamisas 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

InicioLlegar puntuales al inicio de la $ornada laboral 

#ientras no sea +in de la $ornada laboral "irigirnos a un ropero

  (i esta cerrado Abrirlo

Tomar una camisa(i está abrocada

"esabrocarla Abrir la camisa

(i está doblada"esdoblarla

#eter un brazo por una de sus mangas#eter el otro brazo por la otra de sus mangas

 A$ustar la camisa al tronco

(i es una camisa de botones Abotonarla %bot&n a bot&n' A$ustarla al cuerpo

(ino A$ustarla de manera que quede bien puesta

Emitir el concepto de calidad sobre la camisa!in/#ientras

!in

Page 21: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 21/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 65

Lle'ándolo a su equi'alente en 8iagramaci%n =ectangular Estructurada obtendríamos el siguiente8iagrama3

Es importante anotar que cuando e!ista una decisi%n podremos tener o no acciones oinstrucciones por alguno de sus ramales. Con ello quiero decir que es absolutamente correcto tener una decisi%n que tenga acciones en el caso de que sea 9erdadera la condici%n y no tenga nada enel caso de que sea @alsa dicha condici%n.

Algoritmo Para nspeccionar !as Camisas En Un AlmacénDe Ropa

Llegar puntuales al inicio de la jornada laboral

>ientras no sea fin8e la jornada laboral

8irigirnos a un ropero

Está cerrado+

  9 @

  &brirlo

-omar una camisa

Está abrochada+

  9 @

  8esabrocharla

  &brir la camisa

Está doblada+

  9 @

  8esdoblarla

>eter un bra$o por una de sus mangas

>eter el otro bra$o por la otra de sus mangas

 &justar la camisa al tronco

Es camisa de botones+

  9 @

 &botonarla bot%n a bot%n &justarla de maneraque quede bien

puesta &justarla al cuerpo

@ ? ;

Page 22: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 22/32

66 Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

Cabe anotar que tambi(n es correcto tener una decisi%n dentro de otra decisi%n % tener un ciclodentro de otro ciclo o tener una decisi%n de un ciclo o un ciclo dentro de una decisi%n puesto queninguna de las estructuras son e!cluyentes.

0eudoC%digos

La tercera t(cnica para representar algoritmos es la mas ob'ia y seguramente usted no le 'a aencontrar nada nue'o3 es la t(cnica de los 0eudoc%digos. 2u( es pues un 0eudoc%digo..+ 1uessencillamente es la representaci%n te!tual de un algoritmo de manera que dicho te!to seencuentre enmarcado en algunas normas t(cnicas que faciliten su posterior transcripci%n a unlenguaje de 1rogramaci%n.

1or lo dicho anteriormente es e'idente que la t(cnica de 0eudoc%digo está muy orientada hacia losalgoritmos computacionales. Cuando se habla de algunas normas estamos diciendo que e!isten

unos requisitos que, si bien pueden ser 'iolados, facilitan la posterior transcripci%n del algoritmo aun Lenguaje de programaci%n de ser cumplidos a cabalidad. ;o debemos perder el faro que todasestas t(cnicas nos deben facilitar la posterior transcripci%n de los algoritmos.

1ara escribir pues un algoritmo bajo la forma de seudoc%digo algunas de las normas son lassiguientes3

Primera "orma#$ 0iempre se le ha de colocar un nombre al algoritmo de manera que sea loprimero que se lea. Es con'eniente acostumbrarse a que dicho nombre no supere los ochocaracteres y preferiblemente que sea altamente mnem%nico o sea que su nombre haga una

referencia apro!imada a lo que contiene. 0i a un seudoc%digo lo llamamos 0eudoc%digo I esposible que mas adelante no nos sea muy claro su objeti'o pero si lo llamamos seudoc%digoLiquidar es muy factible que cada que lo 'eamos nos 'amos a acordar que su objeti'o era laliquidaci%n de un determinado 'alor. 1ero si lo llamamos 0eudoc%digo Liq0al;e es muy posibleque cada que 'eamos este nombre nos acordemos que ese seudoc%digo es el que nos permiteLiquidar el 0alario ;eto. =esulta ser muy con'eniente por todas las ra$ones que usted se imagineque el nombre de los algoritmos e!presados en seudoc%digos sea lo mas mnem%nicos posiblespues no sabemos cuando tengamos que retomarlos y es allí en donde 'amos a tener 'er la granimportancia del buen nombre de un algoritmo.

Segunda "orma#$  Luego de colocado el nombre del seudoc%digo debemos a continuaci%ndeclarar las 'ariables con las cuales 'amos a trabajar durante el programa. -odas las 'ariables que'ayan a ser utili$adas deben ser declaradas. 8eclararlas significa escribir el tipo de dato que 'an aalmacenar y el nombre que dichas 'ariables 'an a lle'ar. ;o se ol'ide que 'amos a trabajar contres tipos standard de datos como son los datos de tipo entero, datos de tipo real y datos de tipocarácter que tienen cada uno unas características y unas restricciones.

Tercera "orma#$ -odo el cuerpo del algoritmo deberá ir "encerrado# entre las palabras Inicio y !inindicando en donde comien$a y en donde termina el seudoc%digo.

Page 23: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 23/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 6%

Cuarta "orma#$ 

a. Cuando quiera que salga un título en la pantalla todo lo que tiene que hacer es utili$ar la ordenEscriba y a continuaci%n colocar entre comillas dobles lo que quiera que salga en pantalla. 1or ejemplo

Escriba "Esta es una demostraci%n#

7enerará en pantalla el título Esta es una demostraci&n

b. 0i usted quiere que lo que salga en pantalla sea el contenido de una 'ariable todo lo que tieneque hacer es utili$ar la orden Escriba y a continuaci%n y sin comillas dobles el nombre de la'ariable que quiere escribir. 1or ejemplo

; J DEscriba ;

>ostrará en pantalla el 'alor 0 

c. 0i quiere que en pantalla salga un título y a continuaci%n salga el contenido de la 'ariable todolo que tiene que hacer es colocar el título entre comillas dobles y, luego de haberlas cerrado,colocar el nombre de la 'ariable que usted quiere escribir al lado del título. 1or ejemplo

; J GEscriba " El 'alor es " ;

7enerará en pantalla El valor es 1 

d. 0i quiere mostrar en pantalla el contenido de 'arias 'ariables entonces simplemente acontinuaci%n de la orden Escriba y separadas por comas puede escribir los nombres de las'ariables que usted quiere escribir. 1or ejemplo

; J G> J 4Escriba "Los 'alores son " ;, >

Escribirá en pantalla Los valores son 1 2

%uinta "orma#$

a. Cuando usted 'aya a leer un dato para que sea almacenado en una 'ariable determinadautilice la orden Lea. 1ara no tener que escribir por ejemplo/

Lea un dato entero y guárdelo en la variable N  que también es entera

0olo tiene que escribir 

Lea N  

y el computador lo entenderá correctamente.

b. Cuando necesite leer mas de un dato para ser almacenado en diferentes 'ariables todo lo quetiene que hacer es utili$ar la orden Lea y escribir las 'ariables separadas por comas. 1or ejemplo

Page 24: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 24/32

6& Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

Lea a3 b

0uponiendo que tanto a  como b  son 'ariables de tipo entero, esta orden le indicará alcomputador que lea un dato entero y lo almacene en la 'ariable a y luego que lea otro datoentero y lo almacene en la 'ariable b.

c. ;o necesariamente cuando se lean dos o mas 'ariables utili$ando una sola orden Lea, (stasdeben ser del mismo tipo. 1or ejemplo

Lea var/e3 var/r3 var/c 

 &sumiendo que var/e es una 'ariable de tipo entero, var/r  es una 'ariable de tipo real y var/c es una 'ariable de tipo carácter, esta orden le indicará al computador que lea un 'alor entero ylo almacene en la 'ariable var/e, luego que lea un 'alor real y lo almacene en la 'ariable var/r y luego que lea un carácter y lo almacene en la 'ariable var/c .

Sexta "orma#$  Cuando necesite tomar una decisi%n deberá utili$ar la orden Si , a continuaci%nescribir la condici&n correspondiente y luego las instrucciones que se han de reali$ar en caso de

que la condici%n sea 9erdadera. En caso de que la condici%n sea @alsa y tenga instrucciones areali$arse cuando así sea entonces deberá e!istir una alternati'a Sino. &l finali$ar toda la decisi%ndeberá e!istir un indicador Fin_Si . La estructura entonces será la siguiente

0i Condici%n  #

#?nstrucciones a ejecutar si la condici%n es 9erdadera##

0ino##

?nstrucciones a ejecutar si la condici%n es @alsa##

@inA0i

Las condiciones pueden ser e!presadas utili$ando los siguientes Operadores Relacionales  queson los símbolos que nos 'an a permitir obtener una respuesta 9erdadera o @alsa3

K >ayor que

>enor que

KJ >ayor o igual a

J >enor o igual a

J ?gual a tambi(n llamado igual de comparaci%n/

Page 25: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 25/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá 6'

K 8iferente de

Es importante anotar que el signo igual J / utili$ado como operador relacional tiene una funci%ndiferente que el signo igual J / utili$ado para asignarle un 'alor a una 'ariable. En el primer casosería utili$ado para preguntar, por ejemplo, si el contenido de la 'ariable a es igual al 'alor D y en elsegundo caso estaríamos asignando a la 'ariable a el 'alor D. 0on dos usos realmente diferentes.

 &lgunos lenguajes diferencian sintácticamente el igual de comparaci%n del igual de asignaci%nprecisamente para que el compilador no tenga la opci%n de reali$ar interpretaciones ambiguas. Eneste libro será claro que la utili$aci%n del igual de asignaci%n será en instrucciones de asignaci%n yel igual de comparaci%n será utili$ado en decisiones.

-ambi(n podemos conectar e!presiones relacionales tales como ab/ a tra'(s de los OperadoresBooleanos que no son mas que unos signos que nos 'an a permitir e!presar dichas relaciones.

Cuando (ramos ni*os y nos decían, al mandarnos a la tienda, tráigame una gaseosa y un pan de 4 5663oo7 teníamos 'arias opciones.

a. 0i no traíamos ninguna de las dos cosas entonces no habíamos cumplido la orden.

b. 0i no traíamos la gaseosa pero sí traíamos el pan de M)66,oo tampoco habíamos cumplido laorden

c. 0i traíamos la gaseosa pero no traíamos el pan de M)66,oo tampoco habíamos cumplido laorden

d. 0i traíamos la gaseosa y tambi(n traíamos el pan de M)66,oo entonces allí sí habíamoscumplido la orden completamente.

1ara este ejemplo, y tal como lo hacía nuestra progenitora, asumimos que cumplir la orden es

hacer el "mandado# completo. ?gualmente 'amos a asumir la frase Bemos cumplido la orden comoun 9erdadero 9 / y la frase ;o hemos cumplido la orden como un @also @ /. 8e esta formapodríamos organi$ar la siguiente tabla de 'erdad3

Condición &Tráigame una

Gaseosa

Condición 'Tráigame un pan de

$100,ooCond1  (  Cond  Explicación

textual

@ @ @;o cumplimos

completamente laorden

@ 9 @ ;o cumplimoscompletamente laorden

9 @ @;o cumplimos

completamente laorden

9 9 9;o cumplimos

completamente laorden

Page 26: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 26/32

%( Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

1uede notar usted que solamente habremos cumplido la orden completamente si hemos cumplidocada una de las ordenes o de lo que aquí hemos llamado 8ondici&n 5 y 8ondici&n 9 . ?gualmentepuede usted notar que en el título de la tercera columna hay una  ( un poco mas grande que elresto del te!to. 1recisamente esa es el primer operador booleano que 'amos a conocer. Es eloperador ( que en la mayoría de los libros se conoce como el operador A"D y que precisamenteaquí lo 'amos a llamar A"D.

0u tabla de 'erdad es la que está e!puesta en ese ejemplo por lo cual podemos concluir quecuando utili$amos un operador A"D  solamente genera *erdadero  si ambas condiciones secumplen no ol'ide que se habla de ambas condiciones porque el operador &;8 puede "conectar#solamente dos condiciones/ y en cualquier otro caso genera !also.

Cuando nos decían Tráigame una 8oca:8ola Litro & una ;aran$a .ostob&n Litro   nos estabandando las siguiente opciones3

a. 0i no traemos ninguna de las dos gaseosas entonces no hemos cumplido la ordenb. 0i no traemos la CocaHCola Litro y traemos la ;aranja 1ostob%n Litro entonces hemos

cumplido la ordenc. 0i traemos la CocaHCola Litro y no traemos la ;aranja 1ostob%n Litro entonces hemos

cumplido la ordend. 0i traemos ambas gaseosas hemos cumplido sobradamente la orden

1odemos pues con este ra$onamiento organi$ar la siguiente tabla de 'erdad asumiendo quecumplir la orden se representará con 9erdadero y no cumplirla se representará con @also/.

Condición &Tráigame una

Coca!Cola Li"ro

Condición 'Tráigame una

Naran#a os"o%&nLi"ro

Cond1 ) Cond  ExplicaciónTextual

@ @ @;o cumplimos la

orden

@ 9 9Cumplimos la orden

9 @ 9 Cumplimos la orden

9 9 9=equete cumplimos

la orden

Page 27: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 27/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá %)

1uede notar que en la tercera columna de esta tabla hay una ) que une a la Condici%n) con laCondici%n y que es precisamente el nombre del segundo operador booleano. -(cnicamente lo'amos a llamar )R. Cuando el operador <= une dos condiciones, toda la e!presi%n es 'erdaderasi, al menos, una de las dos es 'erdadera. Es ob'io pensar que en el caso en que las doscondiciones sean 'erdadera entonces todas la e!presi%n será mas que 9erdadera.

El tercer operador booleano es el operador ")T, este operador acta sobre una sola e!presi%n y loque hace es que in'ierte el sentido de la Condici%n, es decir, cuando el operador ;<- 'a antes deuna condici%n entonces toda la e!presi%n será 'erdadera si deja de cumplirse la condici%n.

9eámoslo con un ejemplo3

 & J )60i ;<- & J ) /

En la primera línea estamos asignando el 'alor )6 a la 'ariable & y en la segunda línea estamospreguntando que si A no es igual a 593 condici%n que es 9erdadera debido a que la 'ariable & esigual a )6. Luego cuando escribimos la siguiente condici%n

0i ;<- & K N /

Es como si hubi(ramos escrito

0i & J N /

< sea, dicho te!tualmente, cuándo & no es mayor que N..+ 1ues cuando es >enor o ?gual a N.

Con estos tres operadores booleanos podemos construir una gran cantidad de decisiones ypermitir que el computador las ejecute correctamente. Cabe anotar que e'aluar una decisi%n ydeterminar si es 9erdadera o @alsa es lo que mas tiempo le toma a un computador, cuando dichadecisi%n está implementada en un Lenguaje de 1rogramaci%n.

Séptima "orma#$ 0e utili$ará como estructura de ciclo básica la siguiente

#ientras 8ondici&n -aga  777777777777777

Page 28: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 28/32

%* Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

  7777777777777777777777777777777777778uerpo del ciclo7777777777777777777777777777777

!in/#ientras

 &lgunos libros escriben #ientras que  en 'e$ de #ientras solo pero esas minucias no son deimportancia pues obedecen mas a capricho de autores que a alguna ra$%n de fondo frente a lal%gica. En el Cuerpo del Ciclo se colocan las ordenes que se 'an a repetir o iterar/ mientras lacondici%n sea 9erdadera. El @inA>ientras le indicará posteriormente hasta donde llega el bloque deinstrucciones u %rdenes y determinar a partir de donde se de'uel'e el control del algoritmo parae'aluar la condici%n. La forma de ejecuci%n de los ciclos se e!plicará apropiadamente en elcapítulo de ciclos así como las otras formas referenciales que e!isten para e!presar ciclos.

)cta*a "orma#$ Cada que usted 'aya a utili$ar un conjunto de instrucciones deberá indicar claramente en donde comien$a ese conjunto de instrucciones y en donde termina utili$andoapropiadamente las palabras Inicio y !in.

-al 'e$ usted estará esperando que escribamos los dos ejemplos iniciales en la forma de0eudoc%digo. Efecti'amente lo 'oy a hacer a continuaci%n pero espero que usted 'ea que enalgoritmos informales la utili$aci%n del seudoc%digo no es muy práctico ya que no e!iste muchadiferencia entre el algoritmo como tal y su respecti'o equi'alente en 0eudoc%digo e!cepto algunosdetalles que son mínimos comparados con las otras t(cnicas/. 9erá una gran utilidad cuandoestemos escribiendo algoritmos computacionales utili$ando esta t(cnica. 1or ahora la 'ersi%n en0eudoc%digo que le podría brindar acerca de los dos algoritmos es la siguiente3 =ecuerde que el

objeti'o era reali$ar un algoritmo que nos permitiera 9igilar por una 'entana asomándonos por ellacada media hora por lo tanto la 'ersi%n de esta algoritmo en seudoc%digo es la siguiente

 Algoritmo para *igilar desde una ventanaInicio

Llegar puntual a la ora de inicio de la $ornada laboral Ubicarnos en nuestro escritorio#ientras no sea +in del d,a

Ubicar la ventana por la que nos queremos asomar (i estamos sentados

Levantarnos del lugar en donde estemos sentados)rientarnos acia la ventana(ino

)rientarnos acia la ventana Avanzar acia la ventanaLlegar asta tener la ventana muy muy cerquita(i esta cerrada

 Abrirla Asomarnos por la ventanaRegresar a nuestro escritorio

Page 29: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 29/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá %+

#ientras no aya pasado #edia -ora.ermanecer en nuestro escritorio

!in/#ientras!in/#ientras

!in

: para el segundo algoritmo en donde el objeti'o era ?nspeccionar las camisas en un almac(n deropa emitiendo nuestro concepto acerca de su calidad, la soluci%n es la siguiente3

 Algoritmo para Inspeccionar las camisas en un almacén de ropaInicio

Llegar puntuales al inicio de la $ornada laboral #ientras no sea +in de la $ornada laboral 

"irigirnos a un ropero

  (i esta cerrado Abrirlo

Tomar una camisa(i está abrocada

"esabrocarla Abrir la camisa

(i está doblada"esdoblarla

#eter un brazo por una de sus mangas#eter el otro brazo por la otra de sus mangas

 A$ustar la camisa al tronco(i es una camisa de botones

 Abotonarla %bot&n a bot&n'

 A$ustarla al cuerpo(ino

 A$ustarla de manera que quede bien puestaEmitir el concepto de calidad sobre la camisa

!in/#ientras!in

2u( hay de diferente...+ 1ues nada, porque en este tipo de algoritmos los seudoc%digos como ledije en un párrafo anterior/ son de muy poca utilidad. ;o se ol'ide que la t(cnica de losseudoc%digos está dise*ada fundamentalmente para ser utili$ados en algoritmos computacionales.

Es por eso que en este momento tal 'e$ quede en su momento una nebulosa de dudas acerca dela utilidad de la t(cnica en sí, pero no hay nada de qu( preocuparse pues precisamente lautili$aci%n eficiente de esta t(cnica será unos de los objeti'os fundamentales de este libro para queusted a tra'(s de ella pueda e!presar cualquier algoritmo computacional y obtenga una soluci%nque luego sea fácilmente codificable en cualquier Lenguaje de 1rogramaci%n.

Page 30: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 30/32

%4 Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

Cuadro Comparati*o

"om+re de la Técnica Venta,as Des*enta,as

Diagramas de -lu,oa. 1ermite 'isuali$ar gráficaH

mente el camino que sigue lasoluci%n a un problema

b. 1or ser tan simplificado esmuy entendible

c. ;o se necesitan muchosconocimientos t(cnicos parautili$ar esta t(cnica 

a. 8ado que los flujosrepresentados con fleHchas/pueden ir de cualquier lugar a cualquier lugar da espaciopara que el diagrama lleguea ser casi inentendible

b. 8eben conocerse bien lossímbolos que se 'an autili$ar 

c. ;o todos los símbolos estánestandari$ados

d. Los ciclos deben ser  reinterpretados para poder ser diagramados en estat(cnica

e. ;o siempre es muyentendiblef. &lgunas 'eces la analogía

entre el diagrama y lacodificaci%n en el LenguaHjede 1rogramaci%n resulHta ser compleja

DiagramaciónRectangularEstructurada

a. 1ermite tener un marcoreferencial concreto ydefinido para la repreHsentaci%n de los algoritHmos

b. 0olo t iene tres esquemasque le permiten a su 'e$representar las tresestructuras básicas

c. E!ige orden en larepresentaci%n de unalgoritmo

d. Es muy entendiblee. La analogía entre la

codificaci%n y el diagramanormalmente es directa y por lo tanto muy sencilla

a. E!ige una fundamenHtaci%nt(cnica que permitarepresentar la soluci%n acualquier problema a tra'(sde las tres estructurasbásicas

b. ;o una t(cnica muypopulari$ada

SeudoCódigo a. 1ermite e!presar la soluci%nalgorítmica a un problema ennuestro propio lenguaje ycasi con nuestras propiasreglas

b. La codif icaci%n se facilita

demasiado dado que latranscripci%n es directa

c. 0i el programador esordenado, esta puede llegar a ser la t(cnica masentendible

a. E!ige mucho orden para ser utili$ada eficienteHmente

b. E!ige el mantenimiento clarode los conceptos dealgoritmos como tales

c. Las decisiones deben estar 

encasilladas dentro de losalcances de los operadoresl%gicos y operadoresbooleanos

 &n a pesar de que algunos libros y algunos profesionales de la programaci%n aceptan nica ye!clusi'amente la t(cnica de los seudoc%digos, mi concepto personal es que cada una de estast(cnicas tiene unas 'entajas y unas des'entajas que las hacen comparable con las demás. En mi

Page 31: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 31/32

La Esencia de la Lógica de Programación – Omar Ivan Trejos Buriticá %5

concepto personal considero de suprema importancia darle prioridad de uso a la t(cnica que facilitela codificaci%n ya que el computador no ejecutará los algoritmos escritos en estas t(cnicas sinoescritos en t(rminos de un Lenguaje de 1rogramaci%n y puedo garanti$ar que la t(cnica que masfacilita la transcripci%n es el 0eudoC%digo sin desconocer las 'entajas de cada una de las otrast(cnicas.

E,ercicios

Utili$ando las t(cnicas e!plicadas =E1=E0E;-&= los siguientes algoritmos3

). 8esarrollar un algoritmo que permita adquirir una re'ista.

. 8esarrollar un algoritmo que permita entrar a una casa que está con lla'e.

5. 8esarrollar un algoritmo que permita dar un beso.

4. 8esarrollar un algoritmo que permita empacar un regalo.

D. 8esarrollar un algoritmo que permita encender un 'ehículo.

. 8esarrollar un algoritmo que permita fritar un hue'o.

F. 8esarrollar un algoritmo que permita mirar por un telescopio.

G. 8esarrollar un algoritmo que permita botar la basura.

. 8esarrollar un algoritmo que permita tomar un ba*o.

)6. 8esarrollar un algoritmo que permita estudiar para un e!amen.

)). 8esarrollar un algoritmo que permita tocar determinada canci%n con un instrumento musical.

). 8esarrollar un algoritmo que permita 'iajar en a'i%n.

)5. 8esarrollar un algoritmo que permita encender un bombillo.

)4. 8esarrollar un algoritmo que permita encender una 'ela.

)D. 8esarrollar un algoritmo que permita apagar una 'ela.

). 8esarrollar un algoritmo que permita apagar un bombillo.

)F. 8esarrollar un algoritmo que permita parquear un 'ehículo.

)G. 8esarrollar un algoritmo que permita almor$ar.

). 8esarrollar un algoritmo que permita ir de la casa al trabajo.

6. 8esarrollar un algoritmo que permita colocarse una camisa.

). 8esarrollar un algoritmo que permita quitarse la camisa.

. 8esarrollar un algoritmo que permita escuchar un determinado disco.

Page 32: Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

7/24/2019 Estructuras Básicas y Técnicas Para Representar Algoritmos (1)

http://slidepdf.com/reader/full/estructuras-basicas-y-tecnicas-para-representar-algoritmos-1 32/32

%6 Ca!tulo 4 – Estructuras Básicas " T#cnicas ara reresentar $lgoritmos

5. 8esarrollar un algoritmo que permita abrir una 'entana.

4. 8esarrollar un algoritmo que permita ir a la tienda a comprar algo.

D. 8esarrollar un algoritmo que permita tomar una fotografía.

. 8esarrollar un algoritmo que permita hacer deporte.

F. 8esarrollar un algoritmo que permita cortarse el cabello.

G. 8esarrollar un algoritmo que permita hacer un a'i%n con una hoja de papel.

. 8esarrollar un algoritmo que permita manejar una bicicleta.

56. 8esarrollar un algoritmo que permita manejar una motocicleta.

5). 8esarrollar un algoritmo que permita manejar un monociclo.

5. 8esarrollar un algoritmo que permita maquillarse.

55. 8esarrollar un algoritmo que permita hacer un pastel.

54. 8esarrollar un algoritmo que permita hacer un almuer$o.

5D. 8esarrollar un algoritmo que permita adquirir un pantal%n.

5. 8esarrollar un algoritmo que permita hacer un mercado peque*o.

5F. 8esarrollar un algoritmo que permita leer el peri%dico.

5G. 8esarrollar un algoritmo que permita saludar a un amigo.

5. 8esarrollar un algoritmo que permita arrullar a un beb( hasta que se duerma.

46. 8esarrollar un algoritmo que permita hacer un gol en ftbol.

4). 8esarrollar un algoritmo que permita jugar pingHpong.

4. 8esarrollar un algoritmo que permita nadar.

45. 8esarrollar un algoritmo que permita tirarse desde un a'i%n con un paracaídas.

44. 8esarrollar un algoritmo que permita tirarse desde un a'i%n sin un paracaídas.

4D. 8esarrollar un algoritmo que permita descifrar un jeroglífico.

4. 8esarrollar un algoritmo que permita amarrase un $apato.

4F. 8esarrollar un algoritmo que permita quitarse los $apatos.

4G. 8esarrollar un algoritmo que permita silbar.

4. 8esarrollar un algoritmo que permita ele'ar una cometa.

D6. 8esarrollar un algoritmo que permita desarrollar algoritmos.