Sie sind auf Seite 1von 32

F.I. UNAM.-C.P.I.

DISEO DE PROGRAMAS

ALGORITMOS
1.- Algoritmo es un mtodo para resolver un problema mediante una serie de pasos
definidos, precisos y finitos.
www.monografias.com

2.- Un algoritmo es una serie de operaciones detalladas y no ambiguas a ejecutar paso a


paso, y que conducen a la resolucin de un problema . . . Un algoritmo es el medio por el que
se explica cmo se puede resolver un problema, mediante aproximaciones paso a paso. Se
puede formular de muchas formas, siempre y cuando se realice de modo no ambiguo.
Metodologa de la programacin, Joyanes.

Un algoritmo en su forma ms general est constituido por tres partes: entrada, proceso y
salida.

La entrada es la informacin de partida, en ella se especifica(n) el(los) dato(s) que recibir el


proceso.
El proceso es un conjunto de eventos organizados que conforman un acontecimiento. Es el
conjunto de operaciones (matemticas, lgicas, etc.) o manipulaciones que se deben realizar
con los datos para llegar a la obtencin de resultados.
La salida es el resultado, o conjunto de resultados, obtenido(s) al aplicar el proceso a la
informacin proporcionada en la entrada.
As podemos observar que, un algoritmo describe la transformacin de la entrada en la
salida.
1

F.I. UNAM.-C.P.I.

Caractersticas fundamentales de un algoritmo


Un buen algoritmo debe poseer las siguientes caractersticas:
a) Debe ser preciso. Es decir se tiene que indicar el orden de realizacin de cada
paso sin ambigedad alguna.
b) Debe estar definido. Si se siguen sus pasos ms de una vez con las mismas
entradas, se debe obtener el mismo resultado cada vez.
c) Debe ser finito. Debe terminar en algn momento.
d) Debe ser correcto. Debe estar libre de errores o defectos.
e) Debe tener al menos una salida y est debe ser perceptible.
f) Debe ser sencillo y legible.
g) Debe ser eficiente y efectivo. Tiene que lograr el resultado que se desea de la
forma ms adecuada posible.
h) Se ha de desarrollar en el menor tiempo posible.
Lenguajes algortmicos
Un algoritmo puede ser expresado por pseudocdigo y/o diagramas de flujo.
El pseudocdigo es una tcnica para expresar en lenguaje natural la lgica de un algoritmo,
es decir, su flujo de control. Los pseudocdigos utilizan palabras claves como HACER, LEA,
ESCRIBA, SI-ENTONCES-EN CASO CONTRARIO, FIN DE SI, REPETIR HASTA, REPETIR
MIENTRAS, etc. El pseudocdigo es un modo de plantear un proceso de forma que su
traduccin a un lenguaje de programacin sea sencilla para un programador.
Los diagramas de flujo de datos (dfds) son la representacin grfica de los algoritmos. A
travs de diversos smbolos se plasman los procedimientos, la secuencia y el orden que se
indica en el algoritmo.
Ejemplo:
Pseudocdigo

Diagrama de flujo de datos


Inicio

1.- INICIO
2.- Entero: Calificacin
3.- ESCRIBA Cunto obtuviste en tu
laboratorio?
4.- LEA Calificacin
5.- SI Calificacin >=6 entonces
6.- ESCRIBA Aprobado
7.- EN CASO CONTRARIO
8.-ESCRIBA Reprobado
9.- FIN DE SI
10.- FIN

Entero:
Calificacion

Cunto obtuviste
en tu laboratorio?

Calificacion

NO

SI
Calificacion > = 6

Aprobado

Reprobado

Fin

F.I. UNAM.-C.P.I.

Construccin de algoritmos
La construccin de un algoritmo requiere de las siguientes fases:
1) Anlisis: definicin del problema, especificaciones de entrada, especificaciones de
salida. Se tiene que considerar con qu datos se cuentan, cules datos sern
solicitados, cules son las restricciones, cul debe ser la salida o salidas
esperadas.
2) Algoritmo: desarrollo de la secuencia lgica
resolucin del problema.

y detallada de los pasos para la

3) Prueba del algoritmo, conocida como prueba de escritorio: consiste en seguir los
pasos del algoritmo mediante la introduccin de datos representativos, para la
verificar si el algoritmo cumple o no con su objetivo.

Recomendaciones adicionales:
La fase de anlisis es un elemento trascendental en la elaboracin de algoritmos y
la resolucin de problemas en general, as que no olvide: definir adecuadamente el
problema. Est seguro de entender claramente cul es el objetivo que se desea alcanzar,
resuelva el problema verdadero y no uno que usted suponga o perciba errneamente. De
igual importancia es tener bien claro cules son las restricciones con las que se trabajar,
cules son los elementos con los que se cuenta, cules se solicitarn y quin se los
proporcionar. Tome en cuenta los requisitos para presentar los resultados, formatos,
tiempos, etc.
Despus de haber definido adecuadamente el problema genere posibles
soluciones, analcelas y opte por la ms viable.
Implemente. Lleve a cabo la realizacin del plan que eligi en el punto anterior.
Evale. Verifique si los resultados obtenidos cumplen con el objetivo planteado de
manera adecuada y son satisfactorios, de ser as ha terminado, en caso contrario vuelva a la
fase de anlisis.
Considere tambin que:
En la resolucin de un problema complejo, ste se divide en varios subproblemas
que a su vez pueden ser divididos en otros ms sencillos. Se procede de esta manera hasta
que los subproblemas puedan ser resueltos con mayor facilidad. No vea el problema como
una gran masa, divida y vencer.
Relacione el problema con otro semejante. Aproveche su experiencia.

F.I. UNAM.-C.P.I.

Pseudocdigo y diagramas de flujo

El pseudocdigo describe un algoritmo utilizando una mezcla de frases en lenguaje comn,


instrucciones de programacin y palabras clave que definen las estructuras bsicas. Su
objetivo es permitir que el programador se centre en los aspectos lgicos de la solucin a un
problema. Es una herramienta gil para el estudio y diseo de aplicaciones.

Un diagrama de flujo de datos puede describir de modo grfico la estructura lgica de un


algoritmo. Para lograr esto los dfds se apoyan en diversos smbolos, siendo algunos de los
ms usuales los que se presentan a continuacin:

Smbolo

Funcin

Inicio/fin

Delimita el inicio y fin de un dfd.

Proceso

Cualquier tipo de operacin que origine cambio de valor,


asignacin, operaciones aritmticas, etc.

Entrada

Cualquier tipo de de introduccin de datos. Expresa


lectura.

Salida

Para representar la impresin de un resultado. Expresa


escritura.

Subrutina

Llamada a subrutina, funcin o procedimiento. Este es


un modulo independiente del programa principal, que es
llamado desde dicho programa, realiza una tarea
determinada y regresa al terminar su tarea al programa
principal.

Decisin

Indica operaciones lgicas o de comparacin entre


datos. En funcin del resultado obtenido, determina qu
camino se debe seguir. Tiene dos salidas, respuesta si o
respuesta no. En algunas ocasiones la alternativa no se
omite.

Seleccin mltiple

Para seleccionar una opcin de varias predeterminadas.


En su interior se almacena un selector que dependiendo
del valor de una variable sigue por una de las ramas o
caminos alternativos.

Flujo

Indican el flujo de datos en el dfd.

F.I. UNAM.-C.P.I.

Smbolo

Funcin

Conector

Sirve para enlazar dos partes cualesquiera de un dfd a


traves de un conector de salida y otro en la entrada. Se
utliza en la misma pgina del dfd.

Conector

Conexin entre dos puntos del dfd situados en pginas


diferentes.

Se aaden los siguientes smbolos que, aunque nos son estndar, ayudarn a llevar a cabo
una transicin ms sencilla entre los diagramas de flujo y los programas, dada la similitud
que ofrecen con algunas instrucciones de programacin.
Smbolo

Funcin

MQ

mq
Repeticin
Mientras Que

Proceso

Fin MQ

Sirve para repetir una operacin o conjunto de


operaciones mientras que la condicin que se
establezca sea verdadera.

Para X=VI, VF, INC

mq
Repeticin
Para

Instrucciones

Sirve para repetir una operacin o conjunto de


operaciones un nmero determinado de veces. Se debe
establecer un valor inicial, un valor final y un incremento.

Fin Para

Reglas para la construccin de dfds


El proceso para la construccin de un dfd no supone un mtodo rgido, ms bien ste
depende de las habilidades y creatividad del diseador. Sin embargo, se pueden enunciar
algunas reglas de tipo general que faciliten el proceso de construccin de un dfd:
1.- Todo diagrama debe tener un principio y un final.
2.- Las lneas de conexin o de flujo deben ser siempre rectas. Se recomienda, en la
medida de las posibilidades, que sean slo verticales y horizontales (no deben
cruzarse ni estar inclinadas). Para conseguir lo anterior se debe recurrir a
conectores, numerados convenientemente. Estos conectores deben ser usados slo
en caso de ser necesario.

F.I. UNAM.-C.P.I.

3.- Las lneas que enlazan los smbolos entre s deben estar todas conectadas. Cada
lnea o flecha debe partir de un smbolo y terminar en otro.
4.- Se deben dibujar todos los smbolos de forma que pueda seguirse el proceso
visualmente de arriba hacia abajo y de izquierda a derecha.
5.- Realizar un grfico claro y equilibrado, procurando que el flujo central del diagrama
sea la parte central de la hoja de papel.
6.- Evitar la utilizacin de terminologa especfica de los lenguajes de programacin.
7.- En las operaciones lgicas recurrir preferentemente a la lgica positiva que a la
lgica negativa (es ms claro expresar si A==B que si no es A<>B).
8.- A cada bloque o smbolo se accede por arriba y/o por la izquierda y se sale por
abajo y/o por la derecha. Las entradas pueden ser varias pero la salida es nica
excepto en los casos de decisin y seleccin mltiple.

9.- Al margen de los diagramas se deben realizar las anotaciones que sean necesarias
para que stos sean comprensibles, no slo para la persona que lo elabor sino
tambin para cualquier persona ajena al mismo y sobre todo para cuando sea
necesario llevar a cabo una actualizacin o modificacin del diagrama.
10.- Siempre que sea posible, es conveniente que el diagrama no sobrepase una
pgina, en caso que esto no pueda ser as se deben numerar adecuadamente las
hojas del diagrama, y utilizar conectores de paginas que indiquen sin duda la direccin
correcta del flujo (de donde viene y haca donde se dirige).

Comprobacin de diagramas (Prueba de escritorio)

Terminado el diagrama de flujo se debe tomar un conjunto de datos significativos para


comenzar su lectura, de arriba hacia abajo y de izquierda a derecha, siguiendo paso a paso
todos los smbolos, introduciendo los datos en los momentos oportunos, observando cmo
responde el diagrama ante ellos y verificando si los resultados son correctos y coherentes.

F.I. UNAM.-C.P.I.

Definicin de estructuras de control


A continuacin se presentan las estructuras de control utilizadas en la construccin de
algoritmos, se muestra el pseudocdigo y diagrama de flujo correspondiente.
Secuencia
Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el
nmero de rengln. Es decir, las instrucciones se ejecutan de arriba hacia abajo.
Pseudocdigo

Diagrama de flujo de datos

Instruccin 1
Instruccin 2
Instruccin 3
.
.
.
Instruccin n

Instruccion 1

Instruccion 2

Instruccion 3

Decisin simple
La instruccin de decisin determina si una instruccin se ejecuta o no, segn el
cumplimiento de una condicin P. La condicin P es una variable booleana o una funcin
reducible a un valor booleano (Verdadero / Falso). Si esta condicin es cierta se ejecuta
Instrucciones1, si no es as, sta no se ejecuta. Ejemplos: Si pasas por la tiendita, me
compras un chocolate, Si hace fro, te abrigas.

Pseudocdigo

Diagrama de flujo de datos

NO

Si P entonces
Instrucciones 1
Fin de si

P
SI

Instrucciones 1

Instrucciones 2
Nota: observe que el Fin de si slo
aparece en el pseudocdigo.

Instrucciones 2

F.I. UNAM.-C.P.I.

Decisin compuesta
La instruccin de decisin compuesta realiza una instruccin o conjunto de instrucciones de
dos posibles, segn el cumplimiento de una condicin P.
Pseudocdigo

Diagrama de flujo de datos


SI

Si P entonces
Instrucciones 1
En caso contrario
Instrucciones 2
Fin de si

NO
P

Instrucciones 1

Instrucciones 2

Si la condicin P es cierta se ejecuta Instrucciones1, si no es as, entonces se ejecuta


Instrucciones2. Ejemplo: Si est cansado tome un descanso, en caso contrario, contine
trabajando.
Decisin mltiple
Tambin es comn el uso de una decisin mltiple que equivaldra a anidar varias funciones
de decisin.
Pseudocdigo

Diagrama de flujo de datos

si Condicin1 entonces
Instrucciones1
en caso contrario si Condicin2 entonces
Instrucciones2
.
.
.
en caso contrario si Condicinn entonces
Instruccionesn - 1
en caso contrario
Instruccionesn
fin si

No

Si

No
Si

No
Si

En este caso hay una serie de condiciones que tienen que ser mutuamente excluyentes, si
una de ellas se cumple las dems tienen que ser falsas necesariamente. En esta estructura
si Condicin1 es cierta, entonces se ejecuta slo Instrucciones1. En general, si Condicini es
verdadera, entonces slo se ejecuta Instruccionesi.

F.I. UNAM.-C.P.I.

Seleccin mltiple
Una construccin similar a la anterior (equivalente en algunos casos) es la que se muestra a
continuacin.
Pseudocdigo

Diagrama de flujo de datos

seleccionar Indicador
caso Valor1:
Instrucciones1
caso Valor2:
Instrucciones2
.
.
.

Sel. Indicador

caso Valorn-1:
Instruccionesn-1
OPCIONAL [en otro caso:
Instruccionesn]
Fin seleccionar Indicador

Caso V1

Caso V2

Ints. 1

Ints. 2

...

Caso Vn-1

En Otro Caso

Ints. n-1

Ints. n

Fin Sel. indic.

En este caso Indicador es una variable cuyo valor es comparado en cada caso con Valori, si
en algn caso coinciden ambos valores, entonces se ejecutarn las Instruccionesi
correspondientes. La seccin en otro caso es anloga a la seccin en caso contrario de la
decisin mltiple.
Repeticin Mientras Que
Las instrucciones iterativas abren la posibilidad de realizar una secuencia de instrucciones
ms de una vez. El bucle se repite mientras la condicin P sea cierta, si al llegar por primera
vez al bucle la condicin es falsa, el cuerpo del bucle no se ejecuta ninguna vez.
Pseudocdigo

Diagrama de flujo de datos

MQ

mq

Mientras P hacer
Instrucciones
Fin mientras

Proceso

Fin MQ

F.I. UNAM.-C.P.I.

Repeticin Para
El ciclo para se usa cuando se desea iterar sobre una instruccin, o conjunto de
instrucciones, un nmero determinado de veces.
Est conformado por una variable contadora, un valor final y un incremento. Su funcin es la
siguiente: el valor inicial se asigna a la variable contadora, sta se compara con el valor final
y si no lo excede ejecuta el conjunto de instrucciones, al ejecutar la ltima se aumenta la
variable contadora en el valor indicado por el incremento, enseguida se realiza nuevamente
la comparacin con el valor final, si an no lo excede se vuelve a ejecutar el conjunto de
instrucciones. Esta operacin se repite mientras que la variable contadora no exceda el lmite
establecido por el valor final. Si el contador excede el valor final, la ejecucin continuar a
partir de la instruccin que sigue al cierre del para.
Pseudocdigo

Diagrama de flujo de datos

Para X=VI, VF, INC

Para X=VI hasta VF incremento=INC hacer


Instrucciones
Fin Para

mq
Instrucciones

Fin Para

Nota: En los ciclos es comn usar variables que vayan contando o acumulando valores que ayuden a obtener
un resultado. Por esto es importante tener claro esto conceptos: Contador: Es una variable destinada a
contener distintos valores, que se van incrementando o decrementando cada vez que el ordenador realiza la
operacin que lo contiene. El incremento o decremento son siempre constantes. Acumulador: Es una variable
que permite guardar un valor que se incrementa o decrementa de forma no constante durante el proceso.

El anidamiento. Todas las estructuras de control pueden contener dentro de si mismas a


cualquier otra estructura de control sin problema alguno. De hecho, hay problemas cuya
solucin requiere que se lleven a cabo diferentes tipos de anidamientos de las estructuras de
control. Ejemplos de anidamientos son:

Para
Para

No

Si

MQ

Si

No

Fin Para

10

F.I. UNAM.-C.P.I.

Diseo de algoritmos
El primer punto a considerar en el diseo e implementacin de algoritmos es que existen dos
tipos de algoritmos:
No numricos: Son aquellos en los cuales su conjunto de instrucciones no involucran
procesos matemticos. Ejemplos de ellos los encontramos en las recetas de cocina, cmo
armar un carrito de juguete, cmo instalar un software en una computadora, etctera.
Numricos: Son aquellos en los cuales se utilizan procesos matemticos para la
resolucin de problemas.
Constantes, variables y expresiones
Una constante es un objeto de valor invariable. Este valor no cambia durante el proceso.
Para expresar una constante se escribe explcitamente su valor. Una variable es un objeto
cuyo valor puede ser modificado durante la realizacin del proceso.
Los diferentes nombres que pueden tomar las constantes, las variables y las funciones son
conocidos como identificadores. Los caracteres permitidos en los identificadores son las
letras de la A a la Z (en maysculas y minsculas), los dgitos del 0 al 9 y el guin bajo (_). El
identificador debe comenzar por una letra.
Ejemplos vlidos: area, factorial, serie, pi, suma_vectores( ), calificacion_20
Ejemplos no vlidos: =3.1416, $ueldo, gasto-b, video&nmina
Las expresiones son combinaciones de constantes, variables, smbolos de operacin,
parntesis y nombres de funciones especiales. Ejemplos: proporcion=(0.5*gastos)-inversion,
A=b+c, area=pi*radio^2, Funcion= 3*x^2+sen(x).
Las expresiones se clasifican en dos tipos: 1) expresiones aritmticas y 2) expresiones
booleanas. Los smbolos utilizados para estas operaciones son:
1)
Operacin
Operador
Exponenciacin
^
Multiplicacin
*
Divisin
/
Divisin entera
\
Mdulo (residuo de la
mod
divisin entera)
Suma
+
Resta
Operador
()

Jerarqua
Mayor

*, /, mod, \
+, -

Menor

Ejemplo
12^5
3.1416*2
15864/70
17\3

Resultado
248832
6.2832
226.63
5

21 mod 2

564.289+450.87
75361.15-7567.23

1015.159
67793.92

Operacin
Anida expresiones.
Multiplicacin, divisin, mdulo,
divisin entera.
Suma, resta.

11

F.I. UNAM.-C.P.I.

2)
Operacin
Igual que
Diferente a
Menor que
Mayor que
Menor o igual que
Mayor o igual que

Operador
==
<>
<
>
<=
>=

Ejemplo
Hola == Adios
3 <> 89
-101 < 2
159 >357
5 <= 4
7316 >= 7316

Resultado
Falso
Verdadero
Verdadero
Falso
Falso
Verdadero

Otros operadores que pueden ser usados en las expresiones lgicas son: Y (and), O (or), NO
(not).

12

F.I. UNAM.-C.P.I.

Ejemplo: realizar el algoritmo de la suma de dos nmeros. Presente el pseudocdigo, el


diagrama de flujo y la prueba de escritorio correspondientes.
Resultado:
A) Pesudocdigo:

Entradas: 2 nmeros reales.


Salida: el resultado de la suma.
Restricciones: ninguna.
1.- INICIO
2.- Real: Num1, Num2, Resul_Suma
3.- ESCRIBA Deme 2 nmeros para sumarlos.
4.- LEA Num1 y Num2
5.- REALIZAR Resul_Suma = Num1 + Num2
6.- ESCRIBA El resultado de la suma es, Resul_Suma
7.- FIN

B) Diagrama de flujo de datos

C) Prueba de escritorio
Para los valores: Num1=5 y Num2=8.

Inicio

INICIO
5.- Resul_Suma=5+8=13.
FIN
Real:
Num1, Num2,

Para los valores: Num1=-2 y Num2=-6.

Resul_Suma

INICIO
5.- Resul_Suma=-2+(-6)=-8.
FIN

"Deme 2 nmeros
para sumarlos"

Para los valores: Num1=9 y Num2=-5.


INICIO
5.- Resul_Suma=9+(-5)=4.
FIN

Num1, Num2

Para los valores: Num1=23 y Num2=77.


Resul_Suma =
Num1+Num2

INICIO
5.- Resul_Suma=23+77=100.
FIN

"El resultado de
la suma es",
Resul_Suma

Para los valores: Num1=21 y Num2=19.


INICIO
5.- Resul_Suma=21+19=40.
FIN

Fin

13

F.I. UNAM.-C.P.I.

Ejemplo: elaborar un algoritmo que calcule la distancia entre dos puntos dadas las
coordenadas A1(x1, y1) y A2(x2, y2).
2
2
La distancia entre dos puntos est dada por: d = (x1-x2) +(y1-y2)
Presente el pseudocdigo, el diagrama de flujo y la prueba de escritorio correspondientes.
Resultado:
A) Pseudocdigo

B) Diagrama de flujo de datos

Entradas: los puntos A1(x1, y1) y A2(x2, y2).


Salida: la distancia entre los puntos A1 y A2.
Restricciones: ninguna.

Inicio

1.- INICIO
2.- Real: X1, Y1, X2, Y2, Distancia
3.- ESCRIBA Proporcione la coordenada (X1, Y1).
4.- LEA X1
5.- LEA Y1
6.- ESCRIBA Proporcione la coordenada (X2, Y2).
7.- LEA X2
8.- LEA Y2
2
2
9.- REALIZAR Distancia = (x1-x2) +(y1-y2)
10.- ESCRIBA La distancia entre los puntos A1 y
A2 es:, Distancia
11.- FIN

Real:
X1, Y1, X2, Y2,
Distancia

"Proporcione la
coordenada
(X1, Y1)."

X1, Y1

C) Prueba de escritorio

"Proporcione la
coordenada
(X2, Y2)."

Para los valores: A1(10, 10) y A2(-20, -20).


INICIO
2
2
9.- Distancia = (10-(-20)) +(10-(-20))
Distancia = 42.42640687.
FIN

X2, Y2

Para los valores: A1(0, 0) y A2(7, 7).


Distancia =
SQRT((X1-X2)^2+
(Y1-Y2)^2))

INICIO
2
2
9.- Distancia = (0-7) +(0-7)
Distancia = 9.899494937.
FIN

"La distancia entre


los puntos A1 y A2
es:", Distancia

Para los valores: A1(5, 9) y A2(-12, -45).


INICIO
2
2
9.- Distancia = (5-(-12)) +(9-(-45))
Distancia = 56.61271942.
FIN

Fin

14

F.I. UNAM.-C.P.I.

Ejemplo: haga un algoritmo que pida el peso en toneladas, la longitud en pies y el cdigo de
un dinosaurio y d como salida su cdigo, su peso en kilogramos y su longitud en metros.
Nota: 1 tonelada=1000 kgs. y 1 pie=0.3047 mts. Presente el pseudocdigo, el diagrama de
flujo y la prueba de escritorio correspondientes. Resultado:
A) Pseudocdigo

B) Diagrama de flujo de datos

Entradas: cdigo del dinosaurio, su peso en


toneladas y longitud en pies.
Salidas: cdigo del dinosaurio, su peso en
kilogramos y longitud en metros.
Restricciones: ninguna.
1.- INICIO
2.- Entero: Cdigo_dino
3.- Real: Peso, Longitud
4.- ESCRIBA Cul es el cdigo de su dinosaurio?
5.- LEA Nombre_dino
6.- ESCRIBA Cunto pesa en toneladas su
dinosaurio?
7.- LEA Peso
8.- ESCRIBA Cunto mide en pies su dinosaurio?
9.- LEA Longitud
10.- REALIZAR Peso = Peso*1000
11.- REALIZAR Longitud = Longitud*0.3047
12.- ESCRIBA Para el dinosuario:, Cdigo_dino
13.- ESCRIBA Peso [Kg.]:, Peso
14.- ESCRIBA Longitud [mts.]:, Longitud
15.- FIN

Inicio

Entero:
Codigo_dino
Real:
Peso, longitud

"Cul es el cdigo
de su
dinosaurio?"

Codigo_dino

"Cunto pesa en
toneladas su
dinosaurio?"

Peso

C) Prueba de escritorio
"Cunto mide en
pies su
dinosaurio?"

Para los valores:


Cdigo: 678, Peso: 1 tonelada y Longitud: 45 pies.
INICIO
5.- Cdigo = 678.
10.- Peso = 1*1000= 1000 Kgs.
11.- Longitud = 45* 0.3047= 13.7115 mts.
FIN

Longitud

Peso = Peso*1000
Longitud=
Longitud*0.3047

Para los valores:


Cdigo: 007, Peso: 29 toneladas y Longitud: 61 pies.
INICIO
5.- Cdigo: 007.
10.- Peso = 29*1000= 29000 Kgs.
11.- Longitud = 61* 0.3047= 18.5867 mts.

"Para el dinosaurio",
Cdigo_dino
"Peso [Kg]:",
Peso
"Longitud [mts]:",
Longitud

FIN

Fin

15

F.I. UNAM.-C.P.I.

Ejemplo: realice un algoritmo que implemente una funcin de temperatura a travs de un


grillo. Segn una funcin cientficamente determinada como: Temperatura (oC)= n/4 + 40
donde "n" es el nmero de sonidos emitidos por el grillo en un minuto. Presente el
pseudocdigo, el diagrama de flujo y la prueba de escritorio correspondientes. Resultado:

A) Pseudocdigo

B) Diagrama de flujo de datos

Entrada: el nmero de sonidos emitidos por el grillito.


Salida: un valor de temperatura en grados Celsius.
Restricciones: se debe asegurar que el nmero de
sonidos emitidos por el grillo sea mayor o igual a 1.
Porque un grillo no puede emitir por ejemplo 1 sonido,
y esperar al menos 1 sonido nos asegura que el grillo
no ha muerto o no ha huido.
1.- INICIO
2.- Entero: Sonidos_Grillo
3.- Real: Temperatura
4.- ESCRIBA Cuntos sonidos ha emitido su grillo?.
5.- LEA Sonidos_Grillo
6.- SI Sonidos_Grillo >=1 ENTONCES
7.- REALIZAR Temperatura = Sonidos_Grillo/4+40
o
8.- ESCRIBA Temperatura( C) = , Temperatura
9.- EN CASO CONTRARIO
10.- ESCRIBA Verifique que su grillo no halla
huido y que est vivo.
11.- FIN DE SI
12.- FIN

Inicio

Entero:
Sonidos_Grillo
Real:
Temperatura

"Cuntos sonidos
ha emitido su
grillo?"

Sonidos_Grillo

No

Si
Sonidos_Grillo>=1

C) Prueba de escritorio
"Verifique su
grillo no haya
huido y est vivo"

Para el valor: Sonidos_Grillo=5.

Tempertura =
Sonidos_Grillo/4+40

INICIO
5.- Sonidos_Grillo=5.
6.- Sonidos_Grillo>=1?, S, al paso 7.

"Temperatura (oC)=",
Temperatura

7.- Temperatura = Sonidos_Grillo/4+40 = 41.25.


FIN
Para el valor: Sonidos_Grillo=-14.
Fin

INICIO
5.- Sonidos_Grillo=-14.
6.- Sonidos_Grillo>=1?, No, al paso 10.
FIN
Para el valor: Sonidos_Grillo=0.
INICIO
5.- Sonidos_Grillo=0.
6.-Sonidos_Grillo>=1?, No, al paso 10.
FIN

16

F.I. UNAM.-C.P.I.

Ejemplo:
Desarrolle un algoritmo que usando slo 3 variables, lea 2 nmeros e imprima el resultado de
realizar las operaciones fundamentales +, -, *, / y la operacin mod que devuelve el residuo
de la dividir N1/N2. Presente el pseudocdigo, el diagrama de flujo y la prueba de escritorio
correspondientes.

Resultado:

A) Pseudocdigo
Entradas: dos nmero N1 y N2.
Salidas: los resultados de las operaciones +, -, *, / y mod.
Restricciones: Slo se deben utilizar 3 variables, por lo que es necesario realizar cada una de las
operaciones e inmediatamente despus imprimir su resultado. Otra restriccin est implcita en las
operaciones / y mod ya que si el denominador es igual a cero se generan indeterminaciones, para
prever que esto no suceda se pone una condicin, si el denominador es diferente de cero se realizan
las operaciones, en caso contrario se manda un mensaje de error.
1.- INICIO
2.- Real: N1, N2, Resultado
3.- ESCRIBA Deme 2 nmeros N1 y N2 para realizar: N1+N2, N1-N2, N1*N2, N1/N2 y N1 mod N2.
4.- LEA N1, N2
5.- REALIZAR Resultado = N1+N2
6.- ESCRIBA El resultado de la suma es:, Resultado
7.- REALIZAR Resultado = N1-N2
8.- ESCRIBA El resultado de la resta es:, Resultado
9.- REALIZAR Resultado = N1*N2
10.- ESCRIBA El resultado de la multiplicacin es:, Resultado
11.- SI N2 <> 0 ENTONCES
12.- REALIZAR Resultado = N1/N2
13.- ESCRIBA El resultado de la divisin es:, Resultado
14.- REALIZAR Resultado = N1 mod N2
15.- ESCRIBA El residuo de la divisin es:, Resultado
16.- EN CASO CONTRARIO
17.- ESCRIBA ERROR, N2 debe ser diferente de cero.
18.- FIN DE SI
19.- FIN

17

F.I. UNAM.-C.P.I.

B) Diagrama de flujo de datos

Inicio

No

Si
N2 != 0

Real:
N1, N2, Resultado

Resultado=N1/N2

"ERROR, N2 debe
ser diferente de cero"

"Deme 2 nmeros N1 y N2
para realizar:
N1+N2, N1-N2, N1*N2,
N1/N2 y N1 mod N2"

"El resultado de la
divisin es:", Resultado

N1, N2

Resultado=N1modN2
Resultado=N1+N2

"El residuo de la
divisin es:",
Resultado

"El resultado de la suma


es:", Resultado

Resultado=N1-N2

Fin

C) Prueba de escritorio

"El resultado de la resta


es:", Resultado

Para los valores: N1 = 7 y N2 = 0.


INICIO
5.- Resultado =7+0 =7.
7.- Resultado =7-0 = 7.
9.- Resultado =7*0 = 0.
11.- N2 <> 0?, No, al paso 17.
FIN

Resultado=N1*N2

Para los valores: N1 = -2 y N2 = 2.


"El resultado de la
multiplicacin es:",
Resultado

INICIO
5.- Resultado =-2+2 =0.
7.- Resultado =-2-2 = -4.
9.- Resultado =-2*2 = -4.
11.- N2 <> 0?, S, al paso 12.
12.- Resultado =-2/2 = -1.
14.- Resultado =-2 mod 2 = 0.
FIN

18

F.I. UNAM.-C.P.I.

Ejemplo: desarrolle un algoritmo que calcule el total a pagar por un producto adquirido en un
pas dado. Al comprar en este pas el impuesto que se paga por el artculo comprado se da
por el criterio siguiente: Hasta $20 no causan impuesto De $21 hasta $40 tienen el
30% el resto el 40%
pero si el precio excede a los $500 se debe cobrar 50% de
impuesto. Presente el pseudocdigo, el diagrama de flujo y la prueba de escritorio
correspondientes. Resultado:
A) Pseudocdigo
Entrada: el precio de un producto.
Salida: el total a pagar por el producto, que equivale al precio base ms el impuesto correspondiente.
Restricciones: el precio del producto debe ser mayor a cero ya que no existen precios negativos, tampoco se indica
que algn producto sea regalado (precio=0).
1.- INICIO
2.- Real: Precio_Base, Pago
3.- ESCRIBA D el precio de su producto.
4.- LEA Precio_Base
5.- SI Precio_Base > 0 ENTONCES
6.- SI Precio_Base <= 20 ENTONCES
7.- Pago = Precio_Base
8.- EN CASO CONTRARIO SI Precio_Base <= 40 ENTONCES
9.- Pago = Precio_Base + ( Precio_Base*0.3)
10.- EN CASO CONTRARIO SI Precio_Base <= 500 ENTONCES
11.- Pago = Precio_Base + ( Precio_Base*0.4)
12.- EN CASO CONTRARIO
13.- Pago = Precio_Base + ( Precio_Base*0.5)
14.- FIN DE SI
15.- FIN DE SI
16.- FIN DE SI
17.- ESCRIBA Usted debe pagar: $, Pago
18.- EN CASO CONTRARIO
19.- ESCRIBA Precio no vlido, intente otra vez
20.- FIN DE SI
21.- FIN

19

F.I. UNAM.-C.P.I.

B)

Diagrama de flujo de datos

Inicio

Real:
Precio_Base, Pago

"D el precio de
su producto"

Precio_Base

NO

Si
Precio_Base>0

"Precio no vlido
intente otra vez"

SI

NO
Precio_Base<=20

SI

NO
Precio_Base<=40

Pago=Precio_Base

Pago=
Precio_Base
+
(Precio_Base*0.3)

SI

Pago=
Precio_Base
+
(Precio_Base*0.4)

"Usted debe pagar: $",


Pago

Fin

C) Prueba de escritorio
Para el valor: Precio_Base=-100.
INICIO
5.- Precio_Base > 0?, No, al paso 20
FIN

20

NO
Precio_Base<=500

Pago=
Precio_Base
+
(Precio_Base*0.5)

F.I. UNAM.-C.P.I.

Para el valor: Precio_Base=1000.


INICIO
5.- Precio_Base > 0?, S, al paso 6.
6.- Precio_Base <= 20?, No, al paso 8.
8.- Precio_Base <= 40?, No, al paso 10.
10.- Precio_Base <= 500?, No, al paso 13.
13.- Pago = Precio_Base + ( Precio_Base*0.5)=1000+(1000*0.5)=1000+500=1500.
FIN

Para el valor: Precio_Base=400.


INICIO
5.- Precio_Base > 0?, S, al paso 6.
6.- Precio_Base <= 20?, No, al paso 8.
8.- Precio_Base <= 40?, No, al paso 10.
10.- Precio_Base <= 500?, S, al paso 11.
11.- Pago = Precio_Base + ( Precio_Base*0.4)=400+(400*0.4)=400+160=560.
FIN

Para el valor: Precio_Base=30.


INICIO
5.- Precio_Base > 0?, S, al paso 6.
6.- Precio_Base <= 20?, No, al paso 8.
8.- Precio_Base <= 40?, S, al paso 9.
9.- Pago = Precio_Base + ( Precio_Base*0.3)=30+(30*0.3)=30+9=39.
FIN

Para el valor: Precio_Base=10.


INICIO
5.- Precio_Base > 0?, S, al paso 6.
6.- Precio_Base <= 20?, S, al paso 7.
7.- Pago = Precio_Base =10.
FIN

Para el valor: Precio_Base=0.


INICIO
5.- Precio_Base > 0?, No, al paso 20.
FIN

21

F.I. UNAM.-C.P.I.

Ejemplo: realice un algoritmo que dado un valor de


siguiente funcin:

x calcule el valor de

y segn la

1.- 7x - 45
y = (x) =

2.- x2 + 8x
3.- x + 20

Presente el pseudocdigo, el diagrama de flujo y la prueba de escritorio correspondientes.


Resultado:
A) Pseudocdigo
Entradas: el valor de x y la opcin de la funcin a calcular.
Salida: el valor de y.
Restricciones: las opciones de la funcin a calcular slo pueden ser 1, 2 3, cualquier otro valor es incorrecto.

1.- INICIO
2.- Entero: Op_Funcion
3.- Real: Valor_x, Valor_y
2
4.- ESCRIBA f(x): 1) 7x-45 2) x +8x 3) x+20.
5.- ESCRIBA Qu opcin desea ejecutar?
6.- LEA Op_Funcion
7.- ESCRIBA Cul es el valor de x?
8.- LEA Valor_x
9.- SELECCIONAR Op_Funcion
10.- CASO 1:
11.- HACER Valor_y = 7*Valor_x-45
12.- ESCRIBA y = ,Valor_y
13.- CASO 2:
2
14.- HACER Valor_y = Valor_x +8*Valor_x
15.- ESCRIBA y = ,Valor_y
16.- CASO 3:
17.- HACER Valor_y = Valor_x+20
18.- ESCRIBA y = ,Valor_y
19.- EN OTRO CASO:
20.- ESCRIBA Error: No es una opcin vlida!!
21.- FIN SELECCIONAR Op_Funcion
22.- FIN

22

F.I. UNAM.-C.P.I.
B) Diagrama de flujo de datos

23

F.I. UNAM.-C.P.I.

C) Prueba de escritorio

Para los valores: Op_Funcion=3 y Valor_x=86.

Para los valores: Op_Funcion=0 y Valor_x=1.


INICIO
9.- SELECCIONAR Op_Fun, EN OTRO CASO, al paso 20.
FIN

INICIO
9.- SELECCIONAR Op_Fun, CASO 3, al paso 17.
17.- Valor_y = Valor_x+20 = 86 +20 = 106.
FIN
Para los valores: Op_Funcion= 2 y Valor_x=0.

Para los valores: Op_Funcion=1 y Valor_x=-100.

INICIO
9.- SELECCIONAR Op_Fun, CASO 2, al paso 14.
2
2
14.- Valor_y = Valor_x +8*Valor_x = 0 +8*0=0.
FIN

INICIO
9.- SELECCIONAR Op_Fun, CASO 1, al paso 11.
11.- Valor_y = 7*Valor_x-45 = 7*(-100) -45 = -745.
FIN

Ejemplo: elabore un algoritmo que lea una letra y un nmero y determine si la letra
pertenece a las vocales y si el nmero pertenece a lo pares. Presente el pseudocdigo, el
diagrama de flujo y la prueba de escritorio correspondientes.
Resultado:

A) Pseudocdigo
Entradas: un nmero y una letra.
Salida: informar si la letra es vocal y si el nmero es par.
Una manera de comprobar si un nmero es par es dividiendo entre 2 y si el residuo de la divisin es 0 se puede
concluir que el nmero es par.
Restricciones: ninguna.
1.- INICIO
2.- Entero: Numero.
3.- Carcter: Letra.
4.- ESCRIBA Deme un letra y le dir si es vocal.
5.- LEA Letra
6.- ESCRIBA Deme un nmero y le dir si es par.
7.- LEA Numero
8.- SI (Numero mod 2) == 0 ENTONCES
9.- ESCRIBA El nmero dado es par.
10.- EN CASO CONTRARIO
11.- ESCRIBA El nmero dado no es par.
12.- FIN DE SI
13.- SI (Letra==a OR Letra==e OR Letra==i OR Letra==o OR Letra==u) ENTONCES
14.- ESCRIBA La letra ingresada es vocal.
15.- EN CASO CONTRARIO
16.- ESCRIBA La letra ingresada no es vocal.
17.- FIN DE SI
18.- FIN

24

F.I. UNAM.-C.P.I.

B) Diagrama de flujo de datos

C) Prueba de escritorio

Para los valores: Numero=10 y Letra=a.


INICIO
8.- (10 mod 2)==0?, 0==0?, S, al paso 9.
13.- Letra==a o Letra==e o Letra==i o

Letra==o o Letra==u?, a==a, S, al paso 14.


FIN

Para los valores: Numero=7 y Letra=u.


INICIO
8.- (7 mod 2)==0?, 1==0?, No, al paso 11.
13.- Letra==a o Letra==e o Letra==i o

Letra==o o Letra==u?, u==u, S, al paso 14.


FIN

Para los valores: Numero=86 y Letra=z.


INICIO
8.- (86 mod 2)==0?, 0==0?, S, al paso 9.
13.- Letra==a o Letra==e o Letra==i o

Letra==o o Letra==u?, No, al paso 16.


FIN

Para los valores: Numero=21 y Letra=g.


INICIO
8.- (21 mod 2)==0?, 1==0?, No, al paso 11.
13.- Letra==a o Letra==e o Letra==i o

Letra==o o Letra==u?, No, al paso 16.


FIN

Para los valores: Numero=2 y Letra=o.


INICIO
8.- (2 mod 2)==0?, 0==0?, S, al paso 9.
13.- Letra==a o Letra==e o Letra==i o

Letra==o o Letra==u?, o==o, S, al paso 14.


FIN

25

F.I. UNAM.-C.P.I.

Ejemplo: realice un algoritmo que pida 3 calificaciones obtenidas por un alumno en sus
exmenes parciales y regrese su promedio. Elabore el pseudocdigo, el diagrama de flujo y
la prueba de escritorio correspondientes. Resultado:
A) Pseudocdigo

B) Diagrama de flujo de datos

Entradas: tres calificaciones.


Salida: el promedio de las tres calificaciones.
Para resolver este problema es recomendable usar el
ciclo Para ya que se sabe exactamente cuantas
iteraciones se realizarn.
Restricciones: ninguna.
1.- INICIO
2.- Real: Calificacion, Promedio, Acumulador=0
3.- Entero: i
4.- ESCRIBA Obtengamos el promedio de sus
3 examenes parciales.
5.- PARA i=1 HASTA 3 INCREMENTO=1 HACER
6.- ESCRIBA Escriba su Calificacin.
7.- LEA calificacion
8.- HACER Acumulador=Acumulador +Calificacion
9.- FIN PARA
10.- HACER Promedio=Acumulador/3
11.- ESCRIBA Su promedio obtenido es: , Promedio
12.- FIN

C) Prueba de escritorio
Para los valores: Calificacion=8, Calificacion=6 y
Calificacion=10.
INICIO
5.- i=3?, No, i=1, al paso 6.
8.- Acumulador=Acumulador+Calificacion=0+8=8.
5.- i=3?, No, i=2, al paso 6.
8.- Acumulador=Acumulador+Calificacion=8+6=14.
5.- i=3?, S, i=3, al paso 6.
8.- Acumulador=Acumulador+Calificacion=14+10=24.
5.- i=3?, No, i=4, al paso 10.
10.- Promedio=Acumulador/3=24/3=8.
FIN
Para los valores: Calificacion=4, Calificacion=6 y
Calificacion=6.
INICIO
5.- i=3?, No, i=1, al paso 6.
8.- Acumulador=Acumulador+Calificacion=0+4=4.
5.- i=3?, No, i=2, al paso 6.
8.- Acumulador=Acumulador+Calificacion=4+6=10.
5.- i=3?, S, i=3, al paso 6.
8.- Acumulador=Acumulador+Calificacion=10+6=16.
5.- i=3?, No, i=4, al paso 10.
10.- Promedio=Acumulador/3=16/3=5.3333.
FIN

26

F.I. UNAM.-C.P.I.

Ejemplo: Barry Gonzlez preocupado por su peso (110 kgs.) y por sus constantes visitas al
"Tortn Loco", quiere saber cunto subi de peso en esta quincena. En promedio el
Sr. Gonzlez aumenta 1/2 kg. cada vez que acude a la tortera. Elabore un algoritmo que le
permita a Barry conocer su peso final. Presente el pseudocdigo, diagrama de flujo y la
prueba de escritorio correspondientes. Resultado:
A) Pseudocdigo

B) Diagrama de flujo de datos

Entrada: el nmero de veces que Barry fue a la tortera.


Salida: el peso final de Barry.
Para resolver este problema es recomendable usar el
ciclo Para ya que se sabe exactamente cuantas
iteraciones se realizarn.
Restricciones: ninguna.
1.- INICIO
2.- Real: Peso_Total=110.0, Acumulador=0.0
3.- Entero: Visitas, i
4.- ESCRIBA Sr. Barry, cuntas veces fue a la tortera
en esta quincena?.
5.- LEA Visitas
6.- PARA i=1 HASTA Visitas INCREMENTO=1 HACER
7.- HACER Acumulador = Acumulador+0.5
8.- ESCRIBA Para la visita , i, los kilos acumulados
son , Acumulador
9.- FIN PARA
10.- HACER Peso_Total=Peso_Total+Acumulador
11.- ESCRIBA Barry Gonzlez en el total de sus visitas
acumul , acumulador, kgs.
12.- ESCRIBA Y su peso final es , Peso_Total
13.- FIN

C) Prueba de escritorio
Para el valor: Visitas=3.
INICIO
6.- i=3?, No, i=1, al paso 7.
7.- Acumulador=Acumulador+0.5=0.0+0.5=0.5.
6.- i=3?, No, i=2, al paso 7.
7.- Acumulador=Acumulador+0.5=0.5+0.5=1.0.
6.- i=3?, S, i=3, al paso 7.
7.- Acumulador=Acumulador+0.5=1.0+0.5=1.5.
6.- i=3?, No, i=4, al paso 10.
10.Peso_Total=Peso_Total+Acumulador=110.0+1.5=111.5.
FIN
Para el valor: Visitas=2.
INICIO
6.- i=2?, No, i=1, al paso 7.
7.- Acumulador=Acumulador+0.5=0.0+0.5=0.5.
6.- i=2?, S, i=2, al paso 7.
7.- Acumulador=Acumulador+0.5=0.5+0.5=1.0.
6.- i=2?, No, i=3, al paso 10.
10.Peso_Total=Peso_Total+Acumulador=110.0+1.0=111.0.
FIN

27

F.I. UNAM.-C.P.I.

Ejemplo: elabore un algoritmo que presente la suma de los N trminos de la siguiente serie:
1+1/2-1/3+1/4-1/5+1/6-1/7+1/8 . . . (+/-) N
El trmino N ser determinado por el usuario. Proporcione tambin su pseudocdigo,
diagrama de flujo y prueba de escritorio. Resultado:
A) Pseudocdigo

B) Diagrama de flujo de datos

Entrada: el termino N, hasta donde se presentar la


serie.
Para resolver este problema es recomendable usar el
ciclo Para ya que se sabr exactamente cuantas
iteraciones se realizarn.
Restricciones: ninguna.
1.- INICIO
2.- Entero: Term_N, Suma=1, Bandera=1, i
3.- ESCRIBA Hasta qu trmino desea sumar?
4.- LEA Term_N
5.- PARA i=2 HASTA Term_N INCREMENTO=1 HACER
6.- SI Bandera ==1 ENTONCES
7.- HACER Suma=Suma+1/i
8.- HACER Bandera =0
9.- EN CASO CONTRARIO
10.- HACER Suma=Suma-1/i
11.- HACER Bandera ==1
12.- FIN DE SI
13.- FIN PARA
14.- ESCRIBA La suma de los N trminos es , Suma
15.- FIN

C) Prueba de escritorio
Para el valor: Term_N=5.
INICIO
5.- i=5?, No, i=2, al paso 6.
6.- Bandera=1?, S, al paso 7.
7.- Suma=Suma+1/i=1+1/2=1.5.
8.- Bandera=0.
5.- i=5?, No, i=3, al paso 6.
6.- Bandera=1?, No, al paso 10.
10.- Suma=Suma-1/i=1.5-1/3=1.167.
11.- Bandera=1.
5.- i=5?, No, i=4, al paso 6.
6.- Bandera=1?, S, al paso 7.
7.- Suma=Suma+1/i=1.167+1/4=1.417.
8.- Bandera=0.
5.- i=5?, S, i=5, al paso 6.
6.- Bandera=1?, No, al paso 10.
10.- Suma=Suma-1/i=1.417-1/5=1.217.
11.- Bandera=1.
5.- i=5?, No, i=6, al paso 15.
FIN

28

F.I. UNAM.-C.P.I.

Ejemplo: Una pareja desea saber la suma de sus gastos en su ms reciente viaje, pero
no saben exactamente cuntos fueron. Desarrolle un algoritmo que les proporcione el
total de sus gastos. D el pseudocdigo, diagrama de flujo y prueba de escritorio.
Resultado:
A) Pseudocdigo

B) Diagrama de flujo de datos

Entrada: Los N gastos realizados por la pareja.


Para resolver este problema es recomendable usar el
ciclo Mentras que ya que no se sabe exactamente
cuantas iteraciones se realizarn, es decir se desconoce
cuntos gastos hiso la pareja.
Restricciones: ninguna.
1.- INICIO
2.- Entero: Respuesta=1.
3.- Real: Suma_Gastos=0.0, Gasto.
4.- ESCRIBA D uno a uno sus gastos. Para terminar d 0.
5.- MIENTRAS Respuesta == 1 HACER
6.- ESCRIBA Cul es el monto de su gasto?.
7.- LEA Gasto
8.- HACER Suma_Gastos = Suma_Gastos +Gasto
9.- ESCRIBA Desea sumar otro gasto?, Si=1, No=0.
10.- LEA Respuesta
11.- FIN MIENTRAS
12.-ESCRIBA El total de sus gastos es : $, Suma_Gastos.
13- FIN

C) Prueba de escritorio
Para los valores: Suponga que se darn los siguientes
datos: se realizaron 6 gastos y los montos fueron 1) 1500.00,
2) 987.90, 3) 326.00, 4) 561.50, 5) 376.70 y 6) 159.90.
INICIO
5.- Respuesta=1?, S, al paso 6.
8.- Suma_Gastos = Suma_Gastos +Gasto
= 0 + 1500.00 = 1500.00
5.- Respuesta=1?, S, al paso 6.
8.- Suma_Gastos = Suma_Gastos+Gasto
= 1500.00 + 987.90 = 2487.90
5.- Respuesta=1?, S, al paso 6.
8.- Suma_Gastos = Suma_Gastos+Gasto
= 2487.90 +326.00 = 2813.90
5.- Respuesta=1?, S, al paso 6.
8.- Suma_Gastos = Suma_Gastos+Gasto
= 2813.90 + 561.50 = 3375.40
5.- Respuesta=1?, S, al paso 6.
8.- Suma_Gastos = Suma_Gastos+Gasto
= 3375.40 + 376.70 = 3752.10
5.- Respuesta=1?, S, al paso 6.
8.- Suma_Gastos = Suma_Gastos+Gasto
= 3752.10+ 159.90 = 3912.00
5.- Respuesta=1?, No al paso 12.
FIN

29

F.I. UNAM.-C.P.I.

Ejemplo: La siguiente se llama la serie de ULAM en honor del matemtico S. Ulam:


1) Comience con cualquier entero positivo:
a) Si es par, divdalo entre 2.
b) Si es impar multiplquelo por 3 y agrguele 1.

2) Obtenga enteros sucesivamente repitiendo el proceso.


3) Al final, obtendr el nmero 1, independientemente del entero inicial.

Ejemplo, cuando el entero inicial es 26, la secuencia ser: 26, 13, 40, 20, 10, 5, 16, 8, 4, 2,1.
Elabore un algoritmo que lea un entero positivo y a partir de este obtenga e imprima la sucesin de
ULAM. Presente el pseudocdigo, el diagrama de flujo y la prueba de escritorio. Resultado:
A) Pseudocdigo

Entrada: Un nmero entero positivo.


Para resolver este problema es recomendable usar el
ciclo Mentras que, ya que no se sabe cuantas iteraciones
se realizarn. Las operaciones en a) y b), se repetirn
mientras el resultado de stas sea diferente de 1.
Restricciones: el nmero en la entrada debe ser entero positivo.

1.- INICIO
2.- Entero: Termino, Residuo
3.- ESCRIBA Proporcione un nmero para calcular la serie de ULAM.
4.- LEA Termino
5.- SI Termino > 0 ENTONCES
6.- ESCRIBA Termino
7.- MIENTRAS Termino <> 1 HACER
8.- HACER Residuo = Termino mod 2
9.- SI Residuo == 0 ENTONCES
10.- Termino = Termino/2
11.- EN CASO CONTRARIO
12.- Termino = Termino*3+1
13.- FIN DE SI
14.-ESCRIBA Termino
15.- FIN MIENTRAS
16.- EN CASO CONTRARIO
17.- ESCRIBA ERROR: El nmero debe ser positivo.
18.- FIN DE SI
19.- FIN

30

F.I. UNAM.-C.P.I.

B)

Diagrama de flujo de datos

31

F.I. UNAM.-C.P.I.
C) Prueba de escritorio
Para el valor: -5.
INICIO
5.- Termino > 0?, No, al paso 17.
FIN
Para el valor: 1.
INICIO
5.- Termino > 0?, S, al paso 6.
7.- Termino <> 1?, No.
FIN
Para el valor: 40.
INICIO
5.- Termino > 0?, S, al paso 6.
7.- Termino <> 1?, S, al paso 8.
8.- Residuo = Termino mod 2 = 40 mod 2 = 0.
9.- Residuo == 0?, S, al paso 10.
10.- Termino = Termino / 2 = 40 / 2 = 20.
7.- Termino <> 1?, S, al paso 8.
8.- Residuo = Termino mod 2 = 20 mod 2 = 0.
9.- Residuo == 0?, S, al paso 10.
10.- Termino = Termino / 2 = 20 / 2 = 10.
7.- Termino <> 1?, S, al paso 8.
8.- Residuo = Termino mod 2 = 10 mod 2 = 0.
9.- Residuo == 0?, S, al paso 10.
10.- Termino = Termino / 2 = 10 / 2 = 5.
7.- Termino <> 1?, S, al paso 8.
8.- Residuo = Termino mod 2 = 5 mod 2 = 1.
9.- Residuo == 0?, No, al paso 12.
12.- Termino = Termino * 3 + 1 = 5 * 3 + 1 = 16.
7.- Termino <> 1?, S, al paso 8.
8.- Residuo = Termino mod 2 = 16 mod 2 = 0.
9.- Residuo == 0?, S, al paso 10.
10.- Termino = Termino / 2 = 16 / 2 = 8.
7.- Termino <> 1?, S, al paso 8.
8.- Residuo = Termino mod 2 = 8 mod 2 = 0.
9.- Residuo == 0?, S, al paso 10.
10.- Termino = Termino / 2 = 8 / 2 = 4.
7.- Termino <> 1?, S, al paso 8.
8.- Residuo = Termino mod 2 = 4 mod 2 = 0.
9.- Residuo == 0?, S, al paso 10.
10.- Termino = Termino / 2 = 4 / 2 = 2.
7.- Termino <> 1?, S, al paso 8.
8.- Residuo = Termino mod 2 = 2 mod 2 = 0.
9.- Residuo == 0?, S, al paso 10.
10.- Termino = Termino / 2 = 2 / 2 = 1.
7.- Termino <> 1?, No, al paso 15.
FIN

32

Das könnte Ihnen auch gefallen