Escolar Documentos
Profissional Documentos
Cultura Documentos
Pseudocdigo
Variables
Palabras reservadas
Constantes
Operadores
Funciones
Estructura secuencial
Variables especiales
Estructura repetitiva
14
Captulo 2 Pseudocdigo
Guillermo Imery
Palabras reservadas
15
Variables
Son letras, palabras, o secuencia de palabras con nmeros que se
utilizan para identificar los datos, respuestas o cualquier operacin.
Estas no son sensibles a las maysculas, es decir que una variable se
puede escribir en mayscula o minscula y siempre ser la misma,
as la variable SUMA ser la misma que la variable Suma o suma.
Generalmente el nombre de las variables tiene relacin con lo que
stas almacenan. Si se va almacenar el resultado de un producto
puedo llamar a la variable Prod, si almacenar el volumen de una
esfera, la puedo llamar Vesf, etc.
Palabras reservadas
Las palabras reservadas son palabras en espaol que tienen una
funcin especfica a la hora de estar escribiendo una aplicacin en
pseudocdigo. A continuacin se muestran las primeras palabras
reservadas:
Palabra
inicio
leer
escribir
Descripcin
Ejemplo
fin
fin.
leer A
escribir Suma
Guillermo Imery
16
Captulo 2 Pseudocdigo
Constantes
Valores aritmticos de uso cotidiano en expresiones de ingeniera.
Constante
pi
Descripcin
constante matemtica
Valor
3.14159
Operadores
Los operadores son generalmente smbolos o caracteres que tienen
una funcin especfica en el peseudocdigo. Hay diferentes tipos
de operadores: de asignacin, agrupacin, aritmticos, etc.
Operadores de asignacin
Existe un slo operador de este tipo, y es el que asigna el resultado
de una expresin algebraica -ubicada a la derecha del operador- a
una variable -que est a la izquierda del operador-.
Operador
Descripcin
Ejemplo
A B + 3
Guillermo Imery
Operadores aritmticos
17
Operadores de agrupacin
En lgebra hemos aprendido a utilizar tres signos de agrupacin:
parntesis, corchete y llave. Si necesitamos agrupar trminos o
expresiones en pseudocdigo, el nico operador de agrupacin
permitido son los parntesis.
Operador
()
Descripcin
Agrupacin de trminos
Ejemplo
(a +b)
Operadores aritmticos
Para indicar la realizacin de operaciones aritmticas se tienen los
siguientes operadores.
Operador
Descripcin
Ejemplo
suma
A +B
diferencia
A -B
producto
A *B
divisin real
A/B
div
A div B
mod
A mod B
Ejemplo,
Si A=7, B=3 y C=37, calcular:
a) A + B
b) b - c
c) A * b
d) A/B
e) raiz (a)
f) A div B g) a div c h) A mod B
i) C mod B
Guillermo Imery
18
Captulo 2 Pseudocdigo
a) A + B = 7 + 3 = 10
b) b - c = 3 - 37 = -34
c) A * b = 7 * 3 = 21
d) A/B = 7/3 = 2.3333
e) raiz (a) = raiz (7) = 2.64575
f) A div B = 7 div 3 = 2
g) a div c = 7 div 37 = 0
h) A mod B = 7 mod 3 = 1
i) C mod B = 37 mod 3 = 1
Operadores de relacin
Son los smbolos que se utilizan en las expresiones matemticas
para establecer la igualdad o desigualdad (inecuaciones) entre sus
variables. El resultado de expresiones con estos operadores es
booleano: verdadero o falso.
Operador
Descripcin
Ejemplo
>
mayor que
A >B
<
menor que
A <B
igual que
A =B
>=
A >= B
<=
A <= B
<>
diferente que
A <> B
Ejemplo
Si A tiene valor de 3.4 y B valor de -5, determinar el valor de las
siguientes expresiones:
a) A > B
b) B >= a
c) -2A < B
a) A > B
3.4 > -5
Guillermo Imery
el resultado es verdadero
Operadores lgicos
b) B >= a
c) -2A < B
-5 >= 3.4
-2 (3.4) < -5
19
el resultado es falso
el resultado es verdadero
Operadores lgicos
Los operadores lgicos producen resultados booleanos y sus
operandos tambin son valores lgicos: verdadero o falso.
Las expresiones conectadas con operadores lgicos se evalan de
izquierda a derecha, hasta obtener un resultado booleano. Hay tres
operadores de este tipo, estos son:
Operador
Descripcin
y lgico. conjuncin
o lgico. disyuncin
no
negacin lgica
Para evaluar las expresiones lgicas, se tienen que utilizar las tablas
de la verdad a travs de las cuales se obtiene el valor de una
proposicin formada por dos componentes lgicos A y B.
La conjuncin es un operador que
opera sobre dos valores de verdad (A
y B), tpicamente los valores de verdad
de dos proposiciones, devolviendo el
valor de verdad verdadero cuando
ambas proposiciones son verdaderas,
y falso en cualquier otro caso
Guillermo Imery
Captulo 2 Pseudocdigo
20
Otros operadores
Hay operadores que se utilizan para mejorar la comprensin de las
lneas escritas, escribiendo para ello comentarios antes o despus
de las instrucciones. Este operador no se procesa y no tienen efecto
alguno en los clculos o respuestas de las aplicaciones. Se escriben
slo para informar lo que se va a leer, calcular o responder en las las
lneas siguientes a ellos.
Para escribir un mensaje de texto, ste debe inscribirse entre
comillas simples.
Operador
Descripcin
//
' '
Guillermo Imery
Ejemplo
// lectura de datos
' este es un mensaje de texto''
Funciones
21
Funciones
Estas son palabras que estn relacionadas con una operacin o
funcin matemtica, trigonomtrica, etc. Las ms utilizadas se
muestran a continuacin.
Funcin
Descripcin
raiz (x)
raz cuadrada de x
abs (x)
valor absoluto de x
ln (x)
exp (x)
logaritmo natural de x
constante de Euler (e=2.71828) elevada a la x
trunc (x)
parte entera de x
redon (x)
sen (x)
seno de x
cos (x)
coseno de x
tan (x)
tangente de x
asen (x)
arco seno de x
acos (x)
arco coseno de x
atan (x)
arco tancente de x
Estructura Secuencial
Una pregunta que puede surgir al escribir un pseudocdigo es cmo
saber el orden de ejecucin de las lneas, ya que en un algoritmo el
orden viene dado por la numeracin de las lneas, en los diagramas
de flujo el orden de ejecucin viene dado por las lneas de conexin
entre las diferentes figuras del diagrama. En el pseudocdigo ni se
enumeran las lneas ni se utilizan flechas para indicar el siguiente
Guillermo Imery
22
Captulo 2 Pseudocdigo
Estructura secuencial
23
Ejemplo 2
Codifique una aplicacin en pseudocdigo que lea tres nmeros: A,
B y C. Y que calcule lo siguiente:
1) Suma de los nmeros
2) Cuadrado del primero menos cubo del tercero
Nota: Utilice comentarios
Solucin
// inicio de la aplicacin
inicio
// lectura de los datos
leer A
leer B
leer C
// inicio de todos los clculos
suma a + b + c
d a*a - c*c*c
// Las respuestas
escribir suma
escribir d
fin. //el fin del programa
Los comentarios no afectan la lectura, el clculo o las respuestas slo
sirve para documentar internamente su programa.
Guillermo Imery
24
Captulo 2 Pseudocdigo
Ejemplo 3
Codifique una aplicacin en pseudocdigo que lea tres nmeros:
A, B y C. Y que calcule lo siguiente:
1) Suma de los nmeros
2) Cuadrado del primero menos cubo del tercero
Nota: Utilice comentarios y documente la salida
Solucin
// inicio de la aplicacin
inicio
// lectura de los datos
leer A
leer B
leer C
// inicio de todos los clculos
suma a + b + c
d a*a - c*c*c
// Las respuestas
escribir La suma de los nmeros es = , suma
escribir Cuadrado de A menos cubo de C = , d
fin. //el fin del programa
Ejemplo 4
Codifique una aplicacin en pseudocdigo que lea el radio de una
esfera y el radio y altura de un cilindro. Y que calcule lo siguiente:
Guillermo Imery
Estructura secuencial
25
26
Captulo 2 Pseudocdigo
si condicin lgica
entonces
inicio
instrucciones
fin
finsi
Guillermo Imery
27
28
Captulo 2 Pseudocdigo
Guillermo Imery
141
Captulo 8
Ciclos
Ya hemos utilizado no solo esta palabra sino una estructura asociada que nos permite representar
un conjunto de instrucciones que debe repetirse una cantidad determinada de veces, normalmente,
dependiente de una condicin. Los ciclos nos van a permitir iterar todo un proceso tantas veces
como nosotros ( el usuario) lo determinemos.
Concepto General
Un ciclo puede definirse como una estructura que nos permite repetir o iterar un conjunto de
instrucciones y que tiene las siguientes caractersticas:
a.
b.
c.
d.
142
Captulo 8 - Ciclos
Vamos a desarrollar un ejemplo sin ciclos para notar la gran utilidad de estructurar nuestros
algoritmos con ciclos.
Ejemplo
Mostrar los nmeros del 1 al 100 de 1 en 1.
Programa Vers_Inef_1
Inicio
Escriba 1
Escriba 2
Escriba 3
Escriba 4
Escriba 5
Escriba 6
Escriba 7
Escriba 8
Escriba 9
Escriba 10
Escriba 11
Escriba 12
Escriba 13
Escriba 14
Escriba 15
Escriba 16
Escriba 17
.
.
.
.
.
Escriba 98
Escriba 99
Escriba 100
Fin
Como puede ver en esta versin no se han utilizado variables y los puntos suspensivos
representan toda esa cantidad de instrucciones que hacen falta pues en total seran 100
instrucciones Escriba. Es evidente que se logra el objetivo planteado pero que tal que en vez de ir
el enunciado hasta 100 fuera hasta 1000 o fuera hasta 10000. Nuestro algoritmo se convertira no
solo en una cantidad ineficiente de instrucciones sino que adems por cada vez que existiera una
modificacin prcticamente tendra que existir un algoritmo diferente pues tendramos que
adicionarle mas y mas lneas de rdenes. Veamos a continuacin otra forma ineficiente de
solucionar este mismo problema sin utilizar ciclos.
Programa Vers_Inef_2
Variables
Entero :
N
Inicio
N=1
Escriba N
Si N < = 100
N=N+1
Escriba N
Si N < = 100
N=N+1
Escriba N
Si N < = 100
N=N+1
Escriba N
Si N < = 100
N=N+1
Escriba N
Si N < = 100
N=N+1
Escriba N
Si N < = 100
N=N+1
Escriba N
Si N < = 100
N=N+1
Escriba N
Si N < = 100
N=N+1
Escriba N
Si N < = 100
N=N+1
Escriba N
Si N < = 100
N=N+1
Escriba N
.
.
.
.
Si N < = 100
N=N+1
Escriba N
Si N < = 100
N=N+1
Escriba N
Fin
143
144
Captulo 8 - Ciclos
Si N < = 100
N=N+1
Escriba N
Para poder lograr el objetivo con lo cual esta segunda versin ineficiente resultara ser mucho mas
larga que la anterior y, dada la gran cantidad de decisiones que debe tomar el computador, sera a
su vez mas ineficiente. Lo que si podemos hacer es tomar el esquema repetitivo de esta ltima
versin y escribirlo dentro de un ciclo que controle que se repita dicho esquema hasta cuando se
hayan escrito todos los nmeros enteros de 1 a 100 de 1 en 1,
Cmo lo haremos...? Pues muy sencillo. Simplemente note que tenemos que decirle al
computador que inicie una variable en 1 y que mientras el contenido de esta variable sea menor o
igual que 100 que escriba su contenido y que lo incremente en 1. De esta manera el contenido de
la variable ir de 1 en 1 desde 1 hasta 100 escribiendo cada vez que cambie de nmero es decir
cumpliendo el objetivo planteado. Note usted que acabo de decirle el algoritmo informal ahora todo
lo que tenemos que hacer es llevarlo a un algoritmo tcnico para que posteriormente sea fcil
codificarlo en un Lenguaje de Programacin. De manera que la siguiente es la versin tcnica
eficiente de la solucin al enunciado planteado
Programa Nums_1_100
Variables
Entero :N
Inicio
N=1
Mientras N < = 100
Escriba N
N=N+1
Fin_mientras
Fin
Evidentemente el algoritmo as presentado es mucho mas claro. No se puede negar que tanto sta
solucin como las dems soluciones, a pesar de ser ineficientes, tambin cumplen con el objetivo
planteado. Acerca de esta versin podemos hacer algunas reflexiones
a.
b.
c.
d.
e.
f.
145
del mismo ciclo ser Mostrar todos los enteros comprendidos entre dos nmeros asumiendo
que el primer nmero es el menor y el segundo es el mayor.
Con estas reflexiones podemos justificar plenamente la utilizacin de ciclos dentro de un algoritmo
y, en lo posible, buscar hacer un uso muy eficiente de esta estructura.
Tipos de Ciclos
Solo para facilitar la escritura de algunos algoritmos y con el nimo de que desde el balcn de la
lgica de programacin se puedan tener mas herramientas que faciliten la estructuracin de los
ciclos, la mayora de los lenguajes de programacin tienen tres formas de presentacin de los
ciclos, ellas son:
a.
b.
c.
Ciclo Mientras
Ciclo Para
Ciclo Haga Hasta
Precisamente vamos a revisar la estructura de construccin de cada uno de los ciclos tal como son
concebidos por la mayora de lenguajes de programacin y posteriormente los utilizaremos para
representar el mismo algoritmo con cada una de las estructuras.
Mientras Condicin
.
.
Cuerpo del Ciclo
.
.
Fin_Mientras
146
Captulo 8 - Ciclos
En este ciclo su forma de ejecucin es la siguiente : Var representa una variable que va a tomar
valores iniciando en tope_inicial y terminando en tope_final avanzando con un Paso de Valor. En
los casos en los que no se especifica el valor del paso la mayora de los lenguajes de
programacin asume el incremente de 1. El Cuerpo del Ciclo se ejecutar una vez por cada valor
que tome la variable Var. Veamos con un ejemplo cul sera la aplicacin de este ciclo.
Ejemplo
Escribir los nmeros impares comprendidos entre 1 y 20.
Es evidente que este ejemplo lo podemos desarrollar usando el ciclo mientras pero para efectos
didcticos lo vamos a desarrollar usando el ciclo Para.
Programa Ejem_Ciclo_Para
Variables
Entero :Num
Inicio
Para Num = 1 hasta 20 Paso 2
Escriba Num
Fin_Para
Fin
Puede usted notar que este algoritmo es muy breve gracias a la presencia del ciclo Para en su
contexto ya que si se hubiera estructurado utilizando el ciclo Mientras, una versin de solucin
hubiera podido ser la siguiente
147
Programa Ejem_Ciclo_Mientras
Variables
Entero :Num
Inicio
Num = 1
Mientras Num < = 20
Escriba Num
Num = Num + 2
Fin_Mientras
Fin
Ambas versiones logran el mismo objetivo lo cual significa que ambas versiones son correctas. Es
importante anotar que dentro de lo normal cada ciclo siempre va a tener una variable que es la que
almacena el valor de inicio del ciclo, es la que va a estar presente en la evaluacin de la condicin
y es la que se incrementa para que en algn momento la condicin sea Falsa. Es evidente que
esta variable es muy importante por ello ste tipo de variables de ha caracterizado con el nombre
de Indice del Ciclo. Podramos decir que el ndice del ciclo es la variable que permite la ejecucin
del cuerpo del ciclo. Un ciclo puede llegar a tener varios ndices al tiempo.
Como los ndices no son mas que variables entonces varios ciclos pueden tener el mismo ndice
siempre que se utilice ste en un ciclo solo hasta cuando haya terminado la ejecucin del ciclo
anterior.
Haga
.
.
.
Cuerpo del Ciclo
.
.
.
Hasta Condicin
En este ciclo el Cuerpo del mismo se va a ejecutar hasta cuando se cumpla una condicin esto
quiere decir que el conjunto de instrucciones que conforman el cuerpo del ciclo se va a repetir
mientras la evaluacin de la condicin sea Falsa. Es un ciclo muy parecido al Ciclo Mientras con la
diferencia de que en ste la instrucciones se repiten Mientras la condicin sea Falsa y no
verdadera como sera en el Ciclo Mientras.
148
Captulo 8 - Ciclos
Haga
.
.
.
Cuerpo del Ciclo
.
.
.
Mientras Condicin
Podra decirse que esta es una inversin de la estructura del ciclo mientras. En este ciclo el cuerpo
del mismo se repite mientras la condicin sea Verdadera y su nica diferencia con el ciclo Mientras
es que en el Ciclo Haga Mientras primero se ejecuta el cuerpo del ciclo y luego se evala la
condicin en cambio en el ciclo Mientras primero se evala la condicin y luego se ejecuta el
cuerpo del ciclo.
En caso de que el nmero original sea negativo tambin funciona esta lgica. No se olvide que
siempre que vaya desarrollar un algoritmo primero debe clarificar el objetivo para que sepa hacia
donde va y hasta donde debe llegar.
149
Programa Ejemplo_1
Variables
Entero : Numero, Cuenta_Digitos
Inicio
Escriba Digite un nmero entero
Lea Numero
// Declara Variables
// Solicita un dato entero
// Lee un entero y lo almacena
// en la variable Numero
Cuenta_Digitos = 0
Fin
Note usted que al lado derecho del algoritmo tcnico est prcticamente escrito el algoritmo
informal para mayor claridad al momento que usted le desarrolle una prueba de escritorio.
Igualmente la doble barra inclinada ( // ) representa el inicio de un comentario. Los comentarios son
textos explicativos de las rdenes o de bloque de rdenes de los algoritmos. No tienen incidencia
en su ejecucin. Todos los lenguajes tienen un equivalente para escribir comentarios. En nuestro
caso vamos a utilizar la doble barra inclinada que es utilizada en Lenguaje C.
Programa Ejemplo_1
Variables
Entero : Numero, Cuenta_Digitos
Inicio
Escriba Digite un nmero
// Declaracin de Variables
// Ttulo de Aviso
150
Captulo 8 - Ciclos
Lea Numero
Cuenta_Digitos = 0
// Inicializa Cuenta_Digitos en 0
Haga
// Inicia el ciclo
// Divida entre 10
// y cuente
Numero = Numero / 10
Cuenta_Digitos = Cuenta_Digitos + 1
Hasta que Numero = 0
Fin
Cabe anotar que la estructuracin de un algoritmo utilizando un Ciclo Haga Hasta implica razonar
muy bien la condicin del ciclo ya que como puede verse es diferente a la condicin utilizada en el
ciclo mientras.
Ciclo Mientras
Ciclo Haga Hasta
Normalmente si realizamos dos soluciones para un mismo algoritmo pero en una de ellas
utilizamos un Ciclo Mientras y en otro utilizamos un Ciclo Haga Hasta, podramos decir que las
condiciones deben ser contrarias (a nivel lgico).
Programa Ejemplo_1
Variables
Entero : Numero, Cuenta_Digitos
Inicio
Escriba Digite un nmero
Lea Numero
// Ttulo de Aviso
// Lea un entero y gurdelo en Numero
Cuenta_Digitos = 0
// Inicializa Cuenta_Digitos en 0
Haga
// Inicia el ciclo
// Divida entre 10
// y cuente
Numero = Numero / 10
Cuenta_Digitos = Cuenta_Digitos + 1
Fin
// Declaracin de Variables
151
Esta versin es muy aproximada a la anterior pero la condicin esta vez es diferente. Tenga en
cuenta que utilizar cualquier estructura de ciclos requiere razonar muy bien la condicin que se ha
de usar para que, a nivel lgico, el algoritmo entregue los resultados esperados.
todos
los
enteros
En este ejemplo vamos a generar todos los nmeros enteros comprendidos entre dos nmeros
ledos. Ntese que el algoritmo en ningn momento nos indica cul es el mayor y cul es el menor,
lo cual significa que tenemos que averiguarlo antes de generar los nmeros porque lo que el
algoritmo s dice es que deben escribirse ascendentemente (ya que reza mostrar los enteros
comprendidos entre el menor y el mayor). Verifique si el objetivo es completamente claro para
usted y de esta forma ahora s puede revisar las soluciones aqu planteadas a este ejemplo.
Conceptualmente, primero vamos a detectar cul de los dos nmeros es el menor y cul es el
mayor. Luego haremos una variable Auxiliar igual al nmero menor y a medida que la vayamos
incrementando en 1 vamos a ir escribiendo su contenido hasta cuando esta variable alcance el
valor del nmero mayor.
Programa Ejemplo_2
Variables
Entero : Numero1, Numero2, Auxiliar
Inicio
Escriba Digite un Entero
Lea Numero1
// Declaracin de Variables
// Solicita el primero nmero
// Lo lee y lo almacena en Numero1
Auxiliar = Numero1
Fin_Si
Si Numero2 > Numero1
Auxiliar = Numero2
Mientras Auxiliar < = Numero1
Escriba Auxiliar
Auxiliar = Auxiliar + 1
Fin_Mientras
//
//
//
//
//
152
Captulo 8 - Ciclos
Fin_Si
Si Numero1 = Numero2
// Si los dos nmeros son iguales
Escriba Los nmeros son iguales
// Avise que son iguales
Fin
Programa Ejemplo_2
Variables
Entero : Num1, Num2, Aux
Inicio
Escriba Digite un Entero
Lea Num1
Escriba Digite otro Entero
Lea Num2
// Declaracin de variables
// Solicita el primero nmero
// Lo lee y lo almacena en Num1
// Solicita el segundo nmero
// Lo lee y lo almacena en Num2
// Si Num1 es el menor
// Inicie Aux con el valor de Num1
// Si Num2 es el menor
// Inicie Aux con el valor de Num2
Si Num1 = Num2
Escriba Los nmeros son iguales
Fin
Programa Ejemplo_2
Variables
Entero : Num1, Num2, Aux
Inicio
Escriba Digite un Entero
Lea Num1
// Si Num1 es el menor
// Inicie Aux con el valor de Num1
// Si Num2 es el menor
// Inicie Aux con el valor de Num2
153
154
Captulo 8 - Ciclos
Si Num1 = Num2
Escriba Los nmeros son iguales
Fin
3. Leer dos nmeros enteros y determinar cual de los dos tiene mas
dgitos
Para la solucin de este problema podemos remitirnos al algoritmo que nos permita saber cuntos
dgitos tena un nmero ya que en el fondo ste es casi lo mismo. Fundamentalmente el objetivo de
este es contar los dgitos que tiene un nmero, luego contar los dgitos que tiene otro nmero y
comparar ambos resultados para decir cul de los dos tiene mas dgitos.
Programa Ejemplo_3
Variables
Entero :
Num1,
Num2,
Aux1,
Aux2,
ContDig1,
ContDig2
//
//
//
//
//
//
Inicio
Escriba Digite un entero
Lea Num1
Aux1 = Num1
ContDig1 = 0
Aux2 = Num2
ContDig2 = 0
ContDig2 = ContDig2 + 1
Fin_Mientras
155
// y cuente
Fin
Como puede ver nos hemos basado en el algoritmo que determinaba cuntos dgitos tena un
nmero para desarrollar este algoritmo.
Num1,
Num2,
Aux1,
Aux2,
ContDig1,
ContDig2
//
//
//
//
//
//
Inicio
Escriba Digite un entero
Lea Num1
Aux1 = Num1
156
Captulo 8 - Ciclos
ContDig1 = 0
// Inicialice ContDig1 en 0
Haga
Aux1 = Aux1 / 10
ContDig1 = ContDig1 +1
Hasta que Aux1 = 0
Aux2 = Num2
ContDig2 = 0
Haga
Aux2 = Aux2 / 10
ContDig2 = ContDig2 +1
Hasta que Aux2 = 0
Fin
Num1,
Num2,
Aux1,
Aux2,
ContDig1,
ContDig2
//
//
//
//
//
//
Inicio
Escriba Digite un entero
Lea Num1
Aux1 = Num1
ContDig1 = 0
Haga
Aux1 = Aux1 / 10
ContDig1 = ContDig1 +1
Mientras Aux1 < > 0
// y cuente
// Mientras Aux1 sea diferente de cero
Aux2 = Num2
ContDig2 = 0
157
Haga
Aux2 = Aux2 / 10
ContDig2 = ContDig2 +1
Mientras Aux2 < > 0
Fin
De nuevo y al igual que en todos los ejercicios vamos a clarificar el objetivo. Necesitamos leer
nmeros enteros y a medida que vamos leyendo estos nmeros los vamos contando y los vamos
acumulando en sendas variables. Cuando digiten el nmero 0 eso significar que en ese momento
debemos obtener el resultado entero de dividir el resultado de haber acumulado todos los nmeros
entre el resultado de haberlos contado es decir lo que vamos a dividir es la sumatoria de nmeros
entre la cantidad de nmeros y ese resultado es lo que debemos mostrar en pantalla porque es el
dato que nos estn solicitando.
Promedio
158
Captulo 8 - Ciclos
Inicio
Acum = 0
Cont = 0
Lea Num
Fin_Mientras
// Calcule el promedio
Fin
Hemos utilizado la primera orden Lea Num para recibir el primer nmero y con esto poder entrar al
ciclo.
Programa Ejemplo_4
Variables
Entero :Num,
Acum,
Cont
Real :
Promedio
Inicio
Acum = 0
Cont = 0
159
Haga
Acum = Acum + Num
Cont = Cont + 1
Lea Num
Hasta que Num = 0
// Calcule el promedio
Fin
Promedio
Inicio
Acum = 0
Cont = 0
Haga
Acum = Acum + Num
Cont = Cont + 1
Lea Num
Mientras Num < > 0
Fin
// Calcule el promedio
160
Captulo 8 - Ciclos
Primero que nada vamos a ver Qu es factorial de un nmero. Se define como Factorial de un
nmero N cualquiera, el resultado de multiplicar sucesivamente todos los enteros comprendidos
entre 1 y ese nmero N. No se aplica esta definicin cuando dicho nmero N es negativo y en caso
de que ese nmero N sea 0 se asume que el factorial de 0 es 1. De esta forma el factorial de 6 es
el resultado de multiplicar 1 * 2 * 3 * 4 * 5 * 6 lo cual nos da como resultado 720, igualmente el
factorial de 3 es igual a multiplicar 1 * 2 * 3 que es igual a 6, el factorial de 0 es 1 y el factorial de 8
no est definido o mejor no est incluido en la definicin.
Ya con esta definicin lo que tendremos que hacer es implementarla a nivel de un algoritmo. Para
ello primero que nada vamos a leer dicho nmero N y validando de que dicho nmero sea positivo,
utilizando otra variable a manera de contador, vamos a generar la secuencia de nmeros enteros
comprendida entre 1 y N solo que a medida que la vayamos generando vamos a ir multiplicando
los nmeros generados, resultado que ser almacenado en una variable Facto que ser la que al
final se mostrar en pantalla para cumplir con el objetivo del enunciado.
Cont,
Facto
Inicio
Escriba Digite un nmero entero
Lea N
Si N < 0
// Si el nmero es negativo entonces avisa
Escriba El factorial no est definido para nmeros negativos
Facto = 1
Cont = 1
Mientras Cont < = N
Facto = Facto * Cont
Cont = Cont + 1
Fin_Mientras
// Inicializa el factorial en 1
// Inicializa el contador en 1
// Mientras el contador sea menor que el
// nmero ledo
// Multiplique Facto por cada uno de los valores
// que tome Cont
// Incremente el valor de Cont
// Escriba el resultado
161
Cont,
Facto
Inicio
Escriba Digite un nmero entero
Lea N
Si N < 0
// Si el nmero es negativo entonces avisa
Escriba El factorial no est definido para nmeros negativos
Facto = 1
// Inicializa el factorial en 1
Fin
Cont,
Facto
Inicio
Escriba Digite un nmero entero
Lea N
Si N < 0
162
Captulo 8 - Ciclos
// Inicializa el factorial en 1
// Inicializa el contador en 1
Haga
Facto = Facto * Cont
Cont = Cont + 1
Hasta que Cont > N
// Escriba el resultado
Fin
Cont,
Facto
Inicio
Escriba Digite un nmero entero
Lea N
Si N < 0
// Si el nmero es negativo entonces avisa
Escriba El factorial no est definido para nmeros negativos
Facto = 1
Cont = 1
// Inicializa el factorial en 1
// Inicializa el contador en 1
Haga
Facto = Facto * Cont
Cont = Cont + 1
Mientras Cont < = N
// Escriba el resultado