Aprendiendo Pseint

19
7/23/2019 Aprendiendo Pseint http://slidepdf.com/reader/full/aprendiendo-pseint 1/19 UNIDAD 1: Lenguaje Algorítmico y Estructuras de Control  Algoritmos  Definición formal de Algoritmo En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida). in embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un  problema en particular.  !or e"emplo, una versión modificada de la #criba de Eratóstenes$ que nunca termine de calcular números primos no de"a de ser un algoritmo. % lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utili&ando modelos matem'ticos como m'quinas de uring entre otros in embargo, estos modelos est'n su"etos a un tipo particular de datos como son números, smbolos o gr'ficas mientras que, en general, los algoritmos funcionan sobre una vasta cantidad de estructuras de datos. En general, la parte común en todas las definiciones se puede resumir en las siguientes tres propiedades siempre * cuando no consideremos algoritmos paralelos+ Tiempo secuencial. n algoritmo funciona en tiempo discreti&ado -paso a paso-, definiendo as una secuencia de estados computacionales por cada entrada v'lida (la entrada son los datos que se le suministran al algoritmo antes de comen&ar). Estado abstracto. /ada estado computacional puede ser descrito formalmente utili&ando una Estructura de primer orden * cada algoritmo es independiente de su implementación (los algoritmos son ob"etos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes ba"o isomorfismo.  Exploración acotada. 0a transición de un estado al siguiente queda completamente determinada por una descripción fi"a * finita1 es decir, entre cada estado * el siguiente solamente se puede tomar en cuenta una cantidad fi"a * limitada de t2rminos del estado actual.  En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda describir sin ambig3edad * sin hacer referencia a una computadora en particular, * adem's tiene un lmite fi"o en cuanto a la cantidad de datos que se pueden leer4escribir en un solo paso. Esta amplia definición abarca tanto a algoritmos pr'cticos como aquellos que solo funcionan en teora, por e"emplo el M2todos de 5e6ton * la eliminación 7auss 8 9ordan funcionan, al menos en principio, con números de precisión infinita1 sin embargo no es posible programar la precisión infinita en una computadora, * no por ello de"an de ser algoritmos. En particular es posible considerar una cuarta propiedad que puede ser usada para validar la esis de /urch8 uring de que toda función calculable se puede programar en una m'quina de uring (o equivalentemente, en un lengua"e de programación suficientemente general) Aritmetizabilidad. olamente operaciones innegablemente calculables est'n disponibles en el  paso inicial.  Medios de expresión de un algoritmo

Transcript of Aprendiendo Pseint

Page 1: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 1/19

UNIDAD 1: Lenguaje Algorítmico y Estructuras de Control 

Algoritmos 

Definición formal de Algoritmo

En general, no existe ningún consenso definitivo en cuanto a la definición formal de algoritmo.

Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir,

que un número finito de pasos convierten los datos de un problema (entrada) en una solución (salida).

in embargo cabe notar que algunos algoritmos no necesariamente tienen que terminar o resolver un problema en particular.

 !or e"emplo, una versión modificada de la #criba de Eratóstenes$ que nunca termine de calcularnúmeros primos no de"a de ser un algoritmo.

% lo largo de la historia varios autores han tratado de definir formalmente a los algoritmos utili&andomodelos matem'ticos como m'quinas de uring entre otros in embargo, estos modelos est'n su"etos a

un tipo particular de datos como son números, smbolos o gr'ficas mientras que, en general, los

algoritmos funcionan sobre una vasta cantidad de estructuras de datos. En general, la parte común entodas las definiciones se puede resumir en las siguientes tres propiedades siempre * cuando no

consideremos algoritmos paralelos+

Tiempo secuencial. n algoritmo funciona en tiempo discreti&ado -paso a paso-, definiendoas una secuencia de estados computacionales por cada entrada v'lida (la entrada son los

datos que se le suministran al algoritmo antes de comen&ar).

Estado abstracto. /ada estado computacional puede ser descrito formalmente utili&ando unaEstructura de primer orden * cada algoritmo es independiente de su implementación (los

algoritmos son ob"etos abstractos) de manera que en un algoritmo las estructuras de primer 

orden son invariantes ba"o isomorfismo. 

Exploración acotada. 0a transición de un estado al siguiente queda completamente

determinada por una descripción fi"a * finita1 es decir, entre cada estado * el siguiente

solamente se puede tomar en cuenta una cantidad fi"a * limitada de t2rminos del estado actual. 

En resumen, un algoritmo es cualquier cosa que funcione paso a paso, donde cada paso se pueda

describir sin ambig3edad * sin hacer referencia a una computadora en particular, * adem's tiene un

lmite fi"o en cuanto a la cantidad de datos que se pueden leer4escribir en un solo paso. Esta amplia

definición abarca tanto a algoritmos pr'cticos como aquellos que solo funcionan en teora, por e"emploel M2todos de 5e6ton * la eliminación 7auss 8 9ordan funcionan, al menos en principio, con números

de precisión infinita1 sin embargo no es posible programar la precisión infinita en una computadora, *

no por ello de"an de ser algoritmos.

En particular es posible considerar una cuarta propiedad que puede ser usada para validar la esis de

/urch8 uring de que toda función calculable se puede programar en una m'quina de uring (o

equivalentemente, en un lengua"e de programación suficientemente general)

Aritmetizabilidad. olamente operaciones innegablemente calculables est'n disponibles en el paso inicial.

 

Medios de expresión de un algoritmo

Page 2: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 2/19

0os algoritmos pueden ser expresados de muchas maneras, inclu*endo al lengua"e natural,

 pseudocódigo,diagramas de flu"o * lengua"es de programación entre otros.

0as descripciones en lengua"e natural tienden a ser ambiguas * extensas. El usar pseudocódigo *diagramas de flu"o evita muchas ambig3edades del lengua"e natural.

:ichas expresiones son formas m's estructuradas para representar algoritmos1 no obstante, se

mantienen independientes de un lengua"e de programación especfico.0a descripción de un algoritmo usualmente se hace en tres niveles+

1. Descripción de alto nivel. e establece el problema, se selecciona un modelo matem'tico * se

explica el algoritmo de manera verbal, posiblemente con ilustraciones * omitiendo detalles.

2. Descripción formal. e usa pseudocódigo para describir la secuencia de pasos que encuentran

la solución.

3. Implementación. e muestra el algoritmo expresado en un lengua"e de programación

especfico o algún ob"eto capa& de llevar a cabo instrucciones.

ambi2n es posible incluir un teorema que demuestre que el algoritmo es correcto, un an'lisis de

comple"idad o ambos.

 

;epresentación de %lgoritmos

Hay distintos métodos de representar los algoritmos como:o Texto: Se usa el lenguaje común para describir el algoritmo

o Pseudocódigo: este tipo de representación mezcla el lenguaje de programación con un idioma, ya sea español, ingles ocualuier otro, se puede de!inir como un lenguaje de especi!icación de algoritmos" #s la representación narrati$a de lospasosue debe de seguir un algoritmo" #ste método es mas compacto, mas !%cil de escribir y mas !%cil de transcribir a unlenguaje de programación ue el diagrama de !lujo"

o &iagrama de !lujo: son 'erramientas gra!icas para representar algoritmos" esta compuesto por s(mbolos, como: rect%ngulosrombos, cuadrados, etc", unidos por !lec'as, estos s(mbolos representan acciones y orden en como se realizan estas" #s decir,los diagramas de !lujo son diagramas ue emplean s(mbolos gr%!icos para representar algoritmos"

o &iagrama de )assi*Sc'neiderman: También conocido como diagrama de +'ap(n, es un método se representación dealgoritmos ue combina la descripción textual con la descripción gra!ica, es como una combinación del Pseudocódigo con eldiagrama de !lujo" Por lo general todo lo ue se puede representar en un diagrama de !lujo se puede representar en este tipode diagrama" #ste tipo de representación cuenta con un conjunto limitado de s(mbolos para representar los pasos delalgoritmo

#l diagrama )assi*S'neiderman re!leja la descomposición del problema en una !orma simple usando cajas anidadas pararepresentar cada uno de los sub*problemas" #jemplos:

o )i$el de implementación: consiste en expresar un algoritmo mediante una mauinaria, un programa de computadora oalgún objeto ue realice las acciones planteadas por el algoritmo en cuestión" #n general, la implementación es el objeti$o dediseñar un algoritmo pero no siempre-"

1 Descripción Narrada

Este algoritmo es caracteri&ado porque sigue un proceso de e"ecución común * lógico, describiendo textualmente paso a

 paso cada una de las actividades a reali&ar dentro de una actividad determinada.

E"emplo < %lgoritmo para asistir a clases+

Page 3: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 3/19

1. Levantarse

2. Bañarse

3. Vestirse

4. Desayunar 

5. Cepillarse los dientes

6. Salir de casa

7. o!ar el auto"#s

$. Lle%ar a la &S'&

=. >uscar el aula

1(. )"icarse en un asiento

Pseudocódigo

El pseudocódigo ( falso lenguaje, el prefi"o pseudosignifica falso) es una descripción de alto nivel de un

algoritmo que emplea una me&cla de lengua"e natural con algunas convenciones sint'cticas propias delengua"es de programación, como asignaciones, ciclos * condicionales, aunque no est' regido por

ningún est'ndar. Es utili&ado para describir algoritmos en libros * publicaciones cientficas, * como

 producto intermedio durante el desarrollo de un algoritmo, como los :iagramas de flu"o, aunque presentan una venta"a importante sobre estos, * es que los algoritmos descritos en pseudocódigo

requieren menos espacio para representar instrucciones comple"as.

El pseudocódigo est' pensado para facilitar a las personas el entendimiento de un algoritmo, * por lotanto puede omitir detalles irrelevantes que son necesarios en una implementación. !rogramadores

diferentes suelen utili&ar convenciones distintas, que pueden estar basadas en la sintaxis de lengua"es

de programación concretos. in embargo, el pseudocódigo, en general, es comprensible sin necesidadde conocer o utili&ar un entorno de programación especfico, * es a la ve& suficientemente estructurado

 para que su implementación se pueda hacer directamente a partir de 2l.

%s el pseudodocódigo cumple con las funciones antes mencionadas para representar algo abstracto los

 protocolos son los lengua"es para la programación. >usque fuentes m's precisas para tener ma*or

comprensión del tema.

 

&*e!plo 1

Diseñar un al%orit!o +ue lea cuatro varia"les y calcule e i!pri!a su producto, su!a y !edia

arit!-tica.

inicio

leer a, ", c, d/

producto 0 a " c d/

su!a 0 a " c d/

Page 4: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 4/19

!edia 0 a " c d/ 4

escri"ir producto, su!a, !edia/

in

 

Diagramas N-

Son una erra!ienta +ue avorece la pro%ra!acin estructurada y re#ne caracter8sticas %r9icas

propias de dia%ra!as de lu*o y lin%:8sticas propias de pseudocdi%os. Constan de una serie de ca*as conti%uas

+ue se leer9n sie!pre de arri"aa"a*o y sus estructuras l%icas son las si%uientes;

&structura Secuencial

 

Page 5: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 5/19

 

Page 6: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 6/19

 

Diagrama de flujo 

Son la representacin %r9ica de la solucin al%or8t!ica de un pro"le!a. 'ara

diseñarlos se utili<an deter!inados s8!"olos o i%uras +ue representan una accin dentro del

Page 7: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 7/19

procedi!iento. )tili<an unos s8!"olos nor!ali<ados, con los pasos del al%orit!o escritos en

el s8!"olo adecuado y los s8!"olos unidos con lecas, deno!inadas l8neas de lu*o, +ue

indican el orden en +ue los pasos de"en ser e*ecutados.

 

0a ?igura de :iagramas de ?lu"o que expresa un algoritmo para calcular la ra& cuadrada de un número0os diagramas de flu"o son descripciones gr'ficas de algoritmos1 usan smbolos conectados con flechas

 para indicar la secuencia de instrucciones * est'n regidos por @A.

0os diagramas de flu"o son usados para representar algoritmos pequeños, *a que abarcan muchoespacio * su construcción es laboriosa. !or su facilidad de lectura son usados como introducción a los

algoritmos, descripción de un lengua"e * descripción de procesos a personas a"enas a la computación.

0os algoritmos pueden ser expresados de muchas maneras, inclu*endo al lengua"e natural,

 pseudocódigo, diagramas de flu"o * lengua"es de programación entre otros. 0as descripciones en

lengua"e natural tienden a ser ambiguas * extensas.

 El usar pseudocódigo * diagramas de flu"o evita muchas ambig3edades del lengua"e natural. :ichas

expresiones son formas m's estructuradas para representar algoritmos1 no obstante, se mantienen

independientes de un lengua"e de programación especfico.

Diagramas de Flujo

Page 8: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 8/19

0os diagramas de flu"o sirven para representar algoritmos de manera gr'fica.En matem'ticas, ciencias de la computación * disciplinas relacionadas, un algoritmo (del griego *

latn, dixit algorithmus * este a su ve& del matem'tico persa %l89uarismi ) es un con"unto preescrito deinstrucciones o reglas bien definidas, ordenadas * finitas que permite reali&ar una actividad mediante

 pasos sucesivos que no generen dudas a quien deba reali&ar dicha actividad. :ados un estado inicial *

una entrada, siguiendo los pasos sucesivos se llega a un estado final * se obtiene una solución. 0osalgoritmos son el ob"eto de estudio de la algoritmia.

En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. %lgunos

e"emplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o lasinstrucciones que recibe un traba"ador por parte de su patrón. %lgunos e"emplos en matem'tica

son el algoritmo de la división para calcular el cociente de dos números, el %lgoritmo de

Euclides para obtener el M'ximo /omún :ivisor de dos enteros positivos, o el M2todo de7auss para resolver un istema 0ineal de Ecuaciones.

!ara su ela"oración se siguen ciertas reglas:

•  Se escri"e de arri"a acia a"a*o y de i<+uierda a dereca

•  Sie!pre se usan lecas verticales u ori<ontales, *a!9s curvas

•  &vitar cruce de lu*os

•  &n cada paso e=presar una accin concreta

ecuencia de #lujo normal en una solución de pro"lema

•  iene un inicio

• )na lectura o entrada de datos

Page 9: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 9/19

•  &l proceso de datos

•  )na salida de inor!acin

•  )n inal

Si!"olo%8a para diseñar lu*o%ra!as.

 

E!TA"A# DE $#A% F&$"'(%AMA#

• ;'pida comprensión de las relaciones

• %n'lisis efectivo de las diferentes secciones del programa

• !ueden usarse como modelos de traba"o en el diseño de nuevos programas o sistemas

/omunicación con el usuario

• :ocumentación adecuada de los programas

• /odificación efica& de los programas

• :epuración * pruebas ordenadas de programas

:EBE5%9% :E 0A ?09A7;%M%

Page 10: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 10/19

• :iagramas comple"os * detallados suelen ser laboriosos en su planteamiento * diseño

• %cciones a seguir tras la salida de un smbolo de decisión, pueden ser difciles de seguir si

existen diferentes caminos

•  5o existen normas fi"as para la elaboración de los diagramas de flu"o que permitan incluir todos los

detalles que el usuario desee introducir.

;epresentando el e"emplo como flu"ograma tenemos+

 

#istemas formales

0a teora de autómatas * la teora de funciones recursivas proveen modelos matem'ticos que

formali&an el concepto de algoritmo.

0os modelos m's comunes son la m'quina de uring, m'quina de registro * funciones u8recursivas.

Estos modelos son tan precisos como un lengua"e de m'quina, careciendo de expresiones coloquiales oambig3edad, sin embargo se mantienen independientes de cualquier computadora * de cualquier

implementación

Implementación

Page 11: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 11/19

Muchos algoritmos son ideados para implementarse en un programa. in embargo, los algoritmos

 pueden ser implementados en otros medios, como una red neuronal, un circuito el2ctrico o un aparato

mec'nico * el2ctrico. %lgunos algoritmos inclusive se diseñan especialmente para implementarse

usando l'pi& * papel. El algortitmo de multiplicación tradicional, elalgoritmo de Euclides, la criba deEr'stones * muchas formas de resolver la ra& cuadrada son sólo algunos e"emplos.

ariables

on elementos que toman valores especficos de un tipo de datos concreto. 0a declaración de unavariable puede reali&arse comen&ando con var. !rincipalmente, existen dos maneras de otorgar valores

iniciales a variables+

<. Mediante una sentencia de asignación.

C. Mediante un procedimiento de entrada de datos (por e"emplo+ DreadD).

E"emplo+

  ...  i:=1;

  read(n);

  while i < n do begin

  (* cuerpo del bucle *)

  i := i + 1

  end;

  ...

Estructuras secuenciales

0a estructura secuencial es aquella en la que una acción sigue a otra en secuencia. 0as operaciones se

suceden de tal modo que la salida de una es la entrada de la siguiente * as sucesivamente hasta el fin

del proceso. 0a asignación de esto consiste, en el paso de valores o resultados a una &ona de lamemoria. :icha &ona ser' reconocida con el nombre de la variable que recibe el valor. 0a asignación se

 puede clasificar de la siguiente forma+

<. #imples+ /onsiste en pasar un valor constante a una variable (a <F)

C. )ontador+ /onsiste en usarla como un verificador del número de veces que se reali&a un

 proceso (a a G <)

H. Acumulador+ /onsiste en usarla como un sumador en un proceso (a a G b)

I. De trabajo+ :onde puede recibir el resultado de una operación matem'tica que involucre

muchas variables (a c G bJC4I).

n e"emplo de estructura secuencial, /odificado en /GG, como obtener la 'rea de un tri'ngulo+

Inicio

...

  float b, h, a;

  printf("iga la ba!e");

  !canf("f", #b);

  printf("iga la altura");

  !canf("f", #h);

Page 12: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 12/19

  a = (b*h)$%;

  printf("&l 'rea del tri'ngulo e! f", a)

...

in

 

 Estructuras Repetitivas El computador est' especialmente diseñado para aplicaciones en las que una operación o un con"unto

de ellas deben repetirse muchas veces. En este sentido, definiremos bucle o la&o (loop), como un

segmento de un programa cu*as instrucciones se repiten bien un número determinado de veces omientras se cumpla una determinada condición.

 

Es imprescindible que se estable&can mecanismos para controlar esta tarea repetitiva, *a que si 2stos

no existen, el bucle puede convertirse en un proceso infinito. %s, en el bucle representado por el

organigrama de la ?igura , se observa que las instrucciones incluidas en 2l se repiten indefinidamente.

El mecanismo de control citado se establece mediante una condición que se comprueba en cada paso oiteración del bucle.

 

En la ?igura se coloca una condición tras la lectura de la variable 5 (comprobar si su valor es cero),de forma que tenemos la oportunidad de que el bucle de"e de ser infinito, *a que podr' interrumpirse

cuando la condición sea verdadera. 0os procesos que se repiten varias veces en un programa necesitan en muchas ocasiones contar el

numero de repeticiones habidas. na forma de hacerlo es utili&ar una variable llamada contador, cu*o

valor se incrementa o decrementa en una cantidad constante en cada repetición que se produ&ca. 

Page 13: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 13/19

0a ?igura siguiente presenta un diagrama de flu"o para un algoritmo en el que se desea repetir FK veces

un grupo de instrucciones, que llamaremos cuerpo del bucle, donde el contador se representa con la

variable /A5. 0a instrucción que actuali&a al contador es la asignación+

 /A5  /A5G<.

El contador puede ser positivo (incrementos de uno en uno) o negativo (decrementos de uno en uno).

 En la ?igura, el contador cuenta desde < a FK * de"a de repetirse cuando la variable /A5 toma elvalor F< * termina el bucle.

 

En la ?igura siguiente se muestra un algoritmo que efectúa la operación de multiplicación n x m,

sumando m un número n de veces. En 2l, el contador se decrementa+ comien&aa contar en n * se va

decrementando hasta llegar a cero1 en ese momento se termina el bucle * se reali&a la acción escribir. 

Page 14: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 14/19

 

Atro tipo de variable, normalmente asociada al funcionamiento de un bucle es un acumulador o

totali&ador, cu*a misión es almacenar una cantidad variable, resultante de operaciones sucesivas *repetidas. n acumulador reali&a una función parecida a la de un contador, con la diferencia de que el

incremento o decremento, de cada operación es variable en lugar de constante. 

na estructura repetitiva es aquella que marca la reiteración de una serie de acciones bas'ndose en un

 bucle. :e acuerdo con lo anterior, esta estructura debe constar de tres partes b'sicas+ 8 decisión (para finali&ar la repetición)

8 cuerpo del bucle (con"unto de instrucciones que se repiten)

8 salida del bucle (instrucción a la que se accede una ve& se decide finali&ar) 

omando el caso anterior, donde para obtener la suma de una serie de números, hemos utili&ado laestrategia siguiente+ tras leer cada número lo añadimos a una variable M% que contenga lassucesivas sumas parciales (M% se hace igual a cero al inicio).

Abservemos que el algoritmo correspondiente deber' utili&ar sucesivamente instrucciones tales como+

 leer número

si 5 L K entonces

  escribir M%

si8no

Page 15: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 15/19

  M%  M%Gnúmero

fin8si que se pueden repetir muchas veces1 2stas constitu*en el cuerpo del bucle. 

na ve& se ha decidido el cuerpo del bucle, se plantea la cuestión de cu'ntas veces se debe repetir. :e

hecho conocemos *a la necesidad de contar con una condición para detener el bucle. En el E"emplo ,se pide al usuario el número 5 de números que desea sumar, esto es, el número de iteraciones del bucle.

samos un contador de iteraciones, A%0, que se iniciali&a a 5 * a continuación se decrementa en

uno cada ve& que el bucle se repite1 para ello introducimos una acción m's al cuerpo del bucle+A%0  A%0 8<. ambi2n podramos iniciali&ar la variable A%0 en K o en <, e ir

increment'ndolo en uno, en cada iteración, hasta llegar al número deseado 5.

 E"emplo +

 Nallar la suma de 5 números, a trav2s de una estructura repetitiva

 

algoritmo sumaOnúmerosPleer número total de números a sumar en variable 5Q

A%0  5

M%  K P la suma parcial es K al inicioQ

Pcomien&o de bucleQ

mientras que A%0 R K hacer 

leer númeroM%  M%Gnúmero

A%0  A%08<

finOmientras

Pfin del bucleQescribir #la suma de los$ , 5 , #números es # , M% 

%unque la condición de finali&ación puede evaluarse en distintos lugares del algoritmo, no es

recomendable que 2sta se pueda efectuar a mitad del cuerpo del bucle, por lo que es bueno que se

 produ&ca al principio o al final del mismo. egún donde se sitúe la condición de salida, dar' lugar adistintos tipos de estructuras repetitivas que anali&aremos a continuación+ estructura desde8hasta,

estructura mientras * estructura repetir8hastaOque. 

 ESTRUCTURA DESDE-HASTA Esta estructura consiste en que la condición de salida se basa en un contador que cuenta el número de

iteraciones. !or e"emplo, el e"emplo podra hacerse de la siguiente manera+

 desde i S < hasta 5 conOincremento < hacer 

  leer número

  M%  M% G número

finOdesde 

Page 16: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 16/19

donde i es un contador que cuenta desde un valor inicial (<) hasta el valor final (5) con los incrementos

que se consideren (de uno en uno en este caso). Esta es la llamada estructura :esde (#for$), que es la

m's simple desde el punto de vista de la condición de salida, *a que viene predeterminada por elcódigo. u utilidad reside en el hecho de que, en muchas ocasiones, se conoce de antemano el número

de iteraciones. Esta estructura e"ecuta las acciones del cuerpo del bucle, un número especificado de

veces * de modo autom'tico controla el número de iteraciones. u formato en pseudocódigo es+

desde vSvi hasta vf hacer   LaccionesR  .  .

finOdesde

v+ variable ndice

vi, vf+ valores inicial * final de la variable 

0a variable ndice o de control normalmente ser' de tipo entero * es normal emplear como

identificador, las letras @,9,T como herencia de los ndices * subndices utili&ados en c'lculo cientfico.El incremento de la variable ndice es < en cada iteración si no se indica expresamente lo contrario. i

debemos expresar incrementos distintos de G< el formato de la estructura es+

 desde v S vi hasta vf inc incremento hacer 

  LaccionesR si vi R vf entonces usar 

  . en lugar de inc incremento  . la expresión dec decremento

finOdesde

 

Abviamente, si el valor inicial de la variable ndice es menor que el valor final, los incrementos debenser positivos, *a que en caso contrario la secuencia de acciones no se e"ecutara. :e igual modo si el

valor inicial es ma*or que el valor final, el incremento debe ser en este caso negativo. %s+

 desde @SCK hasta <K hacer 

LaccionesR

finOdesde 

for(vSvi1 vLSvf1 vtGSstep)

Laccion o bloque de acciones R

 (m's gen2ricamente)for(inicio1condición1actuali&ación)

Laccion o bloque de acciones R 

 ESTRUCTURA MIENTRAS  verdadera, entonces se ejecuta el cuerpo del bucle. No todos los lenguajes incluyenla estructura !ientras. &n len%ua*e C; 

Page 17: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 17/19

/uando la condición de salida del bucle se reali&a al principio del mismo, 2ste se e"ecuta mientras se

verifica una cierta condición. Es la llamada estructura repetitiva mientras (#6hile$)1 en ella el cuerpo

del bucle se repite mientras se cumple una determinada condición. u pseudocódigo es+

mientras condición hacer LaccionesR

finOmientras

/uando se e"ecuta la instrucción mientras, la primera cosa que sucede es la evaluación de la condición.i es falsa, no se e"ecuta ninguna acción * el programa prosigue en la siguiente instrucción a la

finali&ación del bucle1 si la condición es

6hile (condicion)LaccionR

 

Abs2rvese que en una estructura mientras si la primera evaluación de la condición es falsa, el cuerpodel bucle nunca se e"ecuta. !uede parecer inútil e"ecutar el cuerpo del bucle cero veces, *a que no

tendr' efecto en ningún valor o salida1 sin embargo, puede ser una acción deseada. !or e"emplo el

siguiente bucle para procesar las notas de unos examenes contando el número de alumnos presentados

de"ar' de e"ecutarse cuando el numero ledo sea negativo. i la primera nota introducida fuera negativa,

la acción deseada es, efectivamente, que no se e"ecute el bucle ninguna ve&.

 /  K

leer notamientras nota S K hacer 

Pprocesar notaQ

/  /G<

leer notafinOmientras

 

 ESTRUCTURA REPETIR-HASTA_QUE  En esta estructura la condición de salida se sitúa al final del bucle1 el bucle se e"ecuta hasta que se

verifique una cierta condición. Es la llamada estructura %epetir*+asta ,-repeat*until./0 Existen

muc+as situaciones en las 1ue se desea que un bucle se e"ecute al menos una ve&, antes de comprobar la condición de repetición. !ara ello la estructura repetir8hastaOque se e"ecuta hasta que se cumpla una

condición determinada que se comprueba al final del bucle. En pseudocódigo se escribe+ 

repetir 

  LaccionesRhastaOque LcondiciónR

 

doLaccion o bloqueR

6hile (condicion)1

(en / se #dice$ mientras se cumpla la condición, no hasta que se cumpla)

 

Page 18: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 18/19

El bucle repetir8hastaOque se repite mientras la condición sea falsa, "usto lo opuesto a la estructura

mientras. ea el siguiente algoritmo+

 inicio  contador <

  repetir 

  leer número  ontador  contadorG<

  hastaOque contador R HK  escribir #números ledos+ HK$

fin

 Este bucle se repite hasta que el valor de variable contador exceda a HK, lo que suceder' despu2s de HK

e"ecuciones del mismo. 5ótese que si en ve& de HK pusi2ramos K, el cuerpo del bucle se e"ecutar'

siempre al menos una ve&. 

E"emplo +

 /alcular el factorial de un número 5, usando la estructura repetir.

 

inicio  leer 5

  ?actorial <

  @  <

  repetir 

  ?actorial ?actorial J @

  @  @G<

  hastaOque @ R 5  escribir #el factorial del número$, 5, #es$, ?actorial

fin 

0as tres estructuras repetitivas son susceptibles de intercambio entre ellas, as por e"emplo es posible,

sustituir una estructura desde, por una mientras1 con incrementos positivos o negativos de la variablendice. En efecto, la estructura desde con incremento positivo es equivalente a la estructura mientras

marcada con la %), * la estructura desde con incremento negativo es equivalente a la

estructura mientras marcada con la >). 

%) >)v  vi v  vi

mientras v L S vf hacer mientras v R S vf hacer 

  LaccionesR LaccionesR

v  v G incremento v  v 8 decremento

in>!ientras in>!ientras 

Page 19: Aprendiendo Pseint

7/23/2019 Aprendiendo Pseint

http://slidepdf.com/reader/full/aprendiendo-pseint 19/19

&*e!plo 1(; Calcular los actoriales de n n#!eros le8dos por el teclado. El problema consiste en reali&ar una primera estructura repetitiva de n iteraciones del algoritmo de

c'lculo del factorial, que a su ve& se efectúa con una segunda estructura repetitiva.

 inicio

leer n Plectura de la cantidad de númerosQ

desde i S < hasta n hacer 

leer 5ME;A

?%/A;@%0 <

desde " S < hasta 5ME;A hacer 

?%/A;@%0  ?%/A;@%0 J"

finOdesde

escribir #el factorial del número$, 5ME;A, #es$, ?%/A;@%0

finOdesde

fn