Aprendiendo Pseint
-
Upload
juanjoseclarosuriona -
Category
Documents
-
view
292 -
download
1
Transcript of 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
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+
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/
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
7/23/2019 Aprendiendo Pseint
http://slidepdf.com/reader/full/aprendiendo-pseint 5/19
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
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
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
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%
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
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);
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.
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.
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
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
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;
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)
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
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