Está en la página 1de 28

Desarrollo de pseudocódigo utilizando

PSeInt

José Roberto Colón Villalta


INDICE

Introducción ................................................................................................................... i
1. Iniciar PseInt ......................................................................................................... 1
2. ¿Qué es el pseudocódigo? ................................................................................... 4
3. Partes del análisis ................................................................................................. 5
4. Tipos de problemas .............................................................................................. 5
4.1 Problemas secuenciales .................................................................................... 6
4.2 Desarrollo de pseudocódigo para problemas secuenciales ........................... 7
4.3 Problemas condicionales ................................................................................. 10
4.4 Desarrollo de solución para problemas condicionales ................................. 12
4.5 Problemas con bucles ...................................................................................... 14
4.6 Desarrollo de soluciones para problemas con bucles ...................................... 15
5. Bibliografía .......................................................................................................... 23
Introducción

Después de iniciar el proceso de aprendizaje del desarrollo de diagramas de flujo


utilizando PSeInt como paso introductorio al mundo de la programación, resulta
conveniente y necesario mejorar las técnicas de análisis y acercarnos más a las
instrucciones de los lenguajes de programación de cuarta generación; sin embargo,
en lugar de dar un salto desde los diagramas de flujo hasta la programación, primero
debemos hacer una parada preliminar en la temática del pseudocódigo, y
comprender las instrucciones que se utilizan y practicar la lógica, el orden y la
congruencia que nos dejó el estudio de diagramas de flujo.

La práctica y el desarrollo de pseudocódigo permitirán generar y paulatinamente


ampliar las competencias en la escritura de código, pero siendo un tanto permisivo,
al contrario de las instrucciones y la sintaxis en algunos lenguajes de programación,
como por ejemplo Java.

Por lo anteriormente expuesto, es que he decidido redactar lo que a mi parecer,


puede considerarse como un documento preliminar a la escritura de código en un
lenguaje de programación, pero también, posterior a un primer acercamiento que
debe hacerse a través del estudio de diagramas de flujo; es importante tener en
cuenta, que nunca debe perderse de vista que la programación requiere además de
la práctica, primordialmente de un pensamiento ordenado y lógico.

i
1. Iniciar PseInt

En la Web oficial del programa PSeInt lo definen de la siguiente forma: “PSeInt es


una herramienta para asistir a un estudiante en sus primeros pasos en programación.
Mediante un simple e intuitivo pseudolenguaje en español (complementado con un
editor de diagramas de flujo), le permite centrar su atención en los conceptos
fundamentales de la algoritmia computacional, minimizando las dificultades propias
de un lenguaje y proporcionando un entorno de trabajo con numerosas ayudas y
recursos didácticos”1

El programa instalador puede descargarse desde: http://pseint.sourceforge.net/

La familiarización con el entorno de desarrollo de PSeInt puede descubrirla en:


http://pseint.sourceforge.net/slide/pseint.html

Después de instalado el programa PSeInt puede acceder a su entorno siguiendo los


siguientes pasos:

a) En la sección de programas de su computadora o en el escritorio busque el


icono del programa PSeInt, ejecútelo:

Figura #1: Ícono de la aplicación PSeInt.

b) Para solicitar un nuevo archivo lo haremos a través de la opción Nuevo en el


menú Archivo.

1
¿Qué es PSeInt? (19-06-2014). Recuperado de: http://pseint.sourceforge.net/

1
Figura #2: Crear nuevo archivo en PSeInt.

c) Se carga la ventana o entorno dónde escribiremos el pseudocódigo:

Figura #3: Ventana para el desarrollo de pseudocódigo

d) En el extremo derecho de la ventana de desarrollo de pseudocódigo tenemos


la barra de herramientas que contiene todos las posibles instrucciones
(comandos) que podemos utilizar en nuestros pseudocódigos:

2
Figura #4: Comandos (instrucciones) para el desarrollo de pseudocódigo.

Para utilizar cualquiera de los comandos (instrucciones) de PSeInt, bastará


con hacer un clic y automáticamente la instrucción se incorpora al
pseudocódigo, se muestra ayuda emergente y la sintaxis de la instrucción en
la parte central inferior de la ventana, o bastará con escribirlas.

Figura #5: Incorporación de instrucciones en el pseudocódigo.

3
e) Si se quiere borrar algún texto o instrucción, insertar o eliminar alguna línea
bastará con utilizar las teclas básicas: Suprimir, , Intro, etc., como si tratase
de un editor de texto tradicional.

f) Para ejecutar el pseudocódigo desarrollado, bastará con hacer clic en el botón


de color verde de la barra de herramientas de PSeInt (Ejecutar…).

g) Con las nociones básicas de como cargar el programa y acceder a la edición


de pseudocódigo estamos listos para comenzar a trabajar.

2. ¿Qué es el pseudocódigo?

El pseudocódigo, es el conjunto de comandos (instrucciones), dónde cada uno de


ellos tiene una sintaxis particular y que al utilizarse de forma ordenada y lógica se da
solución a problemas que requieren lógica computacional.

Después de hacer un primer acercamiento a la lógica computacional a través del


desarrollo de diagramas de flujo, sugiero que el siguiente paso sea el desarrollo de
pseudocódigo, todo ello, previo a la escritura de código de programación. La idea
anterior, la expongo debido a mi experiencia personal, en la cual he percibido que
resulta más fácil para un aprendiz de programación comenzar con desarrollo de
diagramas de flujo, es decir comprender bloques (figuras) y su interacción, para
pasar luego a escribir código semi-formal (pseudocódigo) y finalizar en la escritura de
código de programación en un lenguaje de cuarta generación.

4
3. Partes del análisis

Para solucionar problema que requieran lógica computacional, será necesario


identificar tres componentes básicos: entrada(s), proceso(s) y salida(s) y es a través
de la interacción de éstos que se logra dar con la solución. La descripción de cada
uno de ellos se presenta a continuación:

Entrada: son los datos que nos aporta el planteamiento del problema o la
información que puedo obtener del usuario.

Proceso: son los cambios o procedimientos que se aplican a las variables de


entrada y otras variables complementarias para convertirlas en salidas a través del
uso de instrucciones (comandos).

Salida: son los valores que muestran las variables después de ser modificadas o
después de ser sometidas a procedimientos a través del uso de instrucciones
(comandos).

4. Tipos de problemas

Los problemas más sencillo de resolver utilizando pseudocódigo son los


secuenciales, en este tipo de problemas bastará con colocar de forma ordenada y
lógica una instrucción tras otra y el problema se resolverá, sin embargo existen
problemas más complejos que requieren de más instrucciones (comandos) para
resolverse, por ejemplo evaluar decisiones, repetir o combinar ambos.

5
4.1 Problemas secuenciales

Los comandos o instrucciones más frecuentes para resolver los problemas


secuenciales son: Escribir, Leer y Asignar. Es necesario además comenzar a
utilizar el concepto de variable, el cual resulta indispensable para desarrollar
cualquier diagrama de flujo.

Una variable, es un espacio de memoria que se utiliza para resguardar un dato que
deberá ser procesado o que sufrirá cambios debido a operaciones o cálculos,
adicionalmente una variable debe tener un nombre que la identifique de forma única.
Existen normas para nombrar correctamente una variable, para el presente texto
aplicaremos las más básicas:

a) Nunca se utilizan espacios en blanco, símbolos especiales como (ñ,$,!,¿,?,


etc.)
b) Nunca el nombre de una variable comienza con mayúscula.
c) Cuando el nombre de la variable está formado por más de una palabra, la
primera palabra se escribe con minúsculas, la primera letra de las siguientes
palabras se escribe con mayúscula. Por ejemplo: precioUnitario,
cantidadBoletos, promedioEstudiante.

Para la resolución de problemas secuenciales, utilizaremos además de variables, las


tres instrucciones o comandos básicos: Escribir, Leer, Asignar.

6
Instrucción/Comando Significado
Se utiliza para mostrar
mensajes de diferentes tipos y
propósitos: resultados, cálculos,
información general, etc.

Se utiliza para ingresar o


asignar un valor a una variable.

Se utiliza para asignar un valor


o calculo a una variable.
Usualmente denota una
transformación en el valor de la
variable. El cálculo ubicado a la
derecha de la expresión se
realiza y posteriormente se
asigna a la variable
especificada a la izquierda.
Cuadro #1: Comandos o instrucciones más comunes para problemas secuenciales

4.2 Desarrollo de pseudocódigo para problemas secuenciales

Ejercicio #1: Realizar la suma de dos números.

Planteamiento del problema: Solicitar al usuario dos números y luego calcular el


resultado de la sumatoria.

Entrada: primerNumero, segundoNumero

Proceso: realizar el cálculo a través de un cuadro ‘Asignar’

Salida: mostrar el resultado de la suma

7
Solución:

Figura #6: Solución al ejercicio #1, a través de pseudocódigo.

Explicación: se ha utilizado una instrucción Escribir antes de cada bloque Leer,


esto con el propósito de mostrar mensajes que orienten al usuario sobre que debe
escribir en cada entrada. Posteriormente, la asignación del cálculo aritmético
primerNumero+segundoNumero a la variable resultado se hace escribiendo:

resultado<-primerNumero+segundoNumero

Se debe recordar que en las expresiones, primero se realiza el cálculo ubicado a la


izquierda y luego el resultado se asigna a la variable de la izquierda.

Finalmente, se muestra el resultado a través de un comando o instrucción Escribir,


observe que dicha salida está formada por cinco partes: cada trozo de mensaje de
texto está encerrado entre comillas dobles “”, posteriormente una coma (,) que se
utiliza para unir un mensaje a otro o para unir un mensaje a una variable, y el resto
de elementos de la salida son variables:

Escribir primerNumero,' + ',segundoNumero,' = ',resultado

El propósito es obtener una salida más detallada y entendible para el usuario.

8
Ejercicio #2: Calcule el área de un círculo.

Planteamiento del problema: Debido a que el área de un circulo se calcula a través


de la formula Pi * radio2 y conocemos que pi es una constante, solo nos falta solicitar
al usuario el valor del radio.

Entrada: radio

Proceso: realizar el cálculo del área del círculo.

Salida: mostrar el valor del área del círculo

Solución:

Figura #7: Solución al ejercicio #2, a través de diagrama de flujo

Explicación: se han utilizado las instrucciones Escribir antes del bloque Leer el
área del círculo, esto con el propósito de mostrar un mensaje que oriente al usuario
sobre que debe escribir en la entrada. Posteriormente, se realiza la asignación del
cálculo 3.1416*radio^2 a la variable área.

Finalmente, se muestra el resultado a través de una instrucción Escribir, observe


que dicha salida está formada por cinco partes, cada una de ellas separadas por
comas (,) esto con el propósito de obtener una salida muy detallada. Las partes
encerradas entre comillas dobles son mensajes de texto y el resto de elementos son
valores contenidos en las variables.

9
4.3 Problemas condicionales

Las instrucciones o comandos que utilizamos para resolver un problema condicional


son: Escribir, Leer, Asignar, Si-Entonces.

Las tres instrucciones básicas están representadas en el Cuadro #1, el nuevo


comando a utilizar para resolver problemas condicionales será Si-Entonces y puede
describirse así:

Comando/Instrucción Uso
Se utiliza para evaluar una
condición, y dependiendo del
resultado de la evaluación de la
condición, se tomará un curso
de acción si resulta cierto u otro
curso de acción si resulta falso.

Cuadro #2: Comando o instrucción Si-Entonces

Complementario al uso de instrucciones condicionales, es necesario comprender


algunos operadores básicos que se utilizan para construir las condiciones que se
evalúan en dichas instrucciones (operadores relacionales).

Desde el punto de vista de una operación del tipo Si-Entonces, el significado que
tendrán las operaciones relacionales, se describe a continuación:

Operando #1 Operador Operando #2 Significado


a = b Evalúa si a es igual (idéntico) a b.

a != b Evalúa si a es diferente de b.

a > b Evalúa si a es mayor que b.

a >= b Evalúa si a es mayor o igual que b.

a < b Evalúa si a es menor que b.

a <= b Evalúa si a es menor o igual que b.

Cuadro #3: Operaciones relacionales

10
Al realizar operaciones relacionales se genera un único resultado, el cual puede ser
únicamente: verdadero o falso.

Adicionalmente a los operadores relacionales y para expandir la posibilidad de


evaluar más de una condición al mismo tiempo, es necesario comprender los
operadores lógicos, por el momento solo se abordaran dos: el operador Y, y el
operador O. Los operadores lógicos operan o evalúan valores del tipo verdadero o
falso, y por ende el resultado que genera es únicamente: verdadero o falso.

El resultado de evaluar dos operaciones utilizando el operador lógico Y se describe a


continuación:

Operación #1 Operador Operación #2 Resultado


verdadero Y verdadero verdadero
verdadero Y falso falso
falso Y verdadero falso

Falso Y falso falso


Cuadro #4: Operaciones lógicas con Y

Como nota personal siempre me gusta recalcar que el operador Y tiende a generar
resultados excluyentes, debido a que la mayoría de sus resultados son falso, y solo genera
verdadero cuando ambas operaciones son verdaderas.

El resultado de evaluar dos operaciones utilizando el operador lógico O se describe a


continuación:

Operación #1 Operador Operación #2 Resultado


verdadero O verdadero verdadero
verdadero O falso verdadero
falso O verdadero verdadero

Falso O falso falso


Cuadro #5: Operaciones lógicas con O

Como nota personal siempre me gusta recalcar que el operador O tiende a ser incluyente
en los resultados que genera, debido a que la mayoría de sus resultados son verdadero, y
solo genera falso cuando ambas operaciones son falsas.

11
4.4 Desarrollo de solución para problemas condicionales

Comenzaré está sección dando un giro completo a lo que he venido haciendo con los
pseudocódigos, que tal si reviso el Ejercicio #2 que dice de la siguiente forma:
“Calcule el área de un círculo”, y me planteo la siguiente pregunta: ¿Qué pasa si el
usuario escribe un valor negativo en la entrada denominada radio?

Resulta que se calcularía el valor del área del circulo adecuadamente, ya que el área
del circulo viene dado por 3.1416*radio^2, y el valor del radio negativo se
transformaría en positivo al ser elevado al cuadrado.

Lo anterior resulta ser una coincidencia, y lamentablemente en el mundo de la


programación y la lógica computacional no basta con la suerte y la coincidencia, en
su lugar debemos abordar una nueva, importante y necesaria temática que se
complementará con el uso de las instrucciones condicionales y el uso de bucles de
forma progresiva, la temática es: validaciones.

Una validación es una operación que permite verificar que el valor de una variable es
el adecuado en términos de rangos posibles de valores y en concordancia con las
operaciones o transformaciones que experimentará; por ejemplo, si deseamos
procesar calificaciones de estudiantes, el rango posible de valores que puede tomar
una variable denominada calificacion1 está entre 0.0 y 10.0, nunca valores negativos
y nunca valores que sobrepase el diez punto cero (10.0).

Ejercicio #3: averiguar si un estudiante aprobó o reprobó ingresando su promedio y


sabiendo que se aprueba con promedio de seis o más, recuerde validar el valor del
promedio.

Planteamiento del problema: mostrar un mensaje de: “Aprobó” si el promedio del


estudiante está entre 6.0 y 10.0, si el promedio es menor que 6.0 pero mayor o igual
a cero mostrar “Reprobó”, y en caso contrario mostrar un mensaje que exprese el
error en la entrada.

12
Entrada: promedio

Proceso: se deberá Leer el promedio del estudiante y evaluar a través de


instrucciones Si-Entonces, si aprobó, reprobó o si hay algún error en la entrada.

Salida: mostrar “Reprobó” si el promedio está en el rango de 0.0 a menos de 6.0, o


mostrar “Aprobó” si el promedio está en el rango de 6.0 a 10.0, en otro caso mostrar
“Error en el promedio ingresado”.

Solución:

Figura #8: Solución al ejercicio #3, a través de pseudocódigo.

Explicación: En la línea 2 del pseudocódigo se utiliza la instrucción Escribir el texto


que acompaña es bastante extenso y su propósito es mostrar un mensaje
suficientemente claro y que aporte pista al usuario del dato que debe digitar o
ingresar (“Ingrese el promedio del estudiante (entre 0.0 y 10.0)”). A continuación se
utiliza la instrucción Leer para capturar el dato que el usuario ingrese y guardarlo en
la variable promedio.
A continuación hay un bloque de decisiones Si-Entonces, la primera condicional se
utiliza para determinar si el valor ingresado de promedio es válido:
Si promedio<0.0 O promedio>10.0 Entonces
Si resulta verdadera la evaluación significa que el promedio ingresado es un valor
negativo o que es mayor a diez, observe que se han utilizado operadores
relacionales para comparar la variable promedio con un valor numérico; además, se

13
ha utilizado un operador lógico O para evaluar que si sucede una u otra de las partes
de la condición: promedio menor que cero o promedio mayor que diez, en cualquier
caso se considerará un valor incorrecto para la variable promedio.
Si resulta falsa la primera condición, significa entonces que el promedio si está
dentro del rango adecuado de valores (0.0 a 10.0), por tanto, solo resta evaluar con
una segunda condicional si el promedio es mayor o igual a seis punto (6.0) en cuyo
caso se muestra el mensaje “Aprobó”, y en caso contrario, con un promedio menor
a seis punto cero se muestra el mensaje “Reprobó”.

Sugerencia: las instrucciones Escribir de la condición deben ser más específicos,


cambie el bloque Salir que muestra “Aprobó” por “Aprobó con promedio ”,
promedio

Luego cambie el bloque Salir que muestra “Reprobó” por “Reprobó con
promedio”, promedio

Como podrá comprobar los mensajes son más completos y resultan más útiles para
el usuario.

4.5 Problemas con bucles

Al trabajar con bucles se debe tener claro que habrá repetición de procesos u
operaciones, en muchas ocasiones esos procesos incluyen la utilización de bloques
condicionales, asignación de valores, uso de contadores y acumuladores, y demás
instrucciones previamente utilizadas.

Las instrucciones o comandos que hacen referencia al uso de bucles son: Para,
Mientras, y Repetir; cada una de ellas tiene fortalezas para ser utilizadas en casos
en particular, y en otros casos resulta casi indistinto cuál de ellas se utilice, siempre y
cuando se haga de forma ordenada y lógica.

14
Bloque/Instrucción Uso
Se utiliza para mostrar
mensajes de diferentes tipos y
propósitos: resultados, cálculos,
información general, etc.

Se utiliza para ingresar o


asignar un valor a una variable.

Se utiliza para asignar un valor


o calculo a una variable.
Usualmente denota una
transformación en el valor de la
variable. El cálculo ubicado a la
derecha se realiza y se asigna a
la variable especificada a la
izquierda.
Cuadro #6: Bloques o instrucciones utilizadas para bucles

4.6 Desarrollo de soluciones para problemas con bucles

Retomando el tema de las validaciones, un primer acercamiento se realizó en la


solución del ejercicio #3; sin embargo, este método de validación no es el mejor, ya
que simplemente registra si ha ocurrido un error en el dato ingresado, pero no
permite repetir y corregir la entrada, simplemente termina la ejecución del
pseudocódigo.

En mi experiencia particular he podido comprobar que los bucles Mientras y Repetir


son los más adecuados para la tarea de la validación de entradas, y si tuviera que
decidirme solo por uno, le apostaría más al bucle Repetir, ya que resulta más eficaz
que el bucle Mientras, debido a que requiere menos instrucciones.

15
Ejercicio #4: Desarrolle un pseudocódigo que funcione para cualquier grupo de
clase que tenga entre 1 y 50 estudiantes, por cada uno de ellos se preguntaran dos
calificaciones, todas ellas con igual ponderación (50% c/u), inmediatamente se le
mostrará un mensaje especificando su promedio y un mensaje adicional
especificando si aprobó (promedio de seis o más), reprobó (promedio menor a cinco)
o si puede realizar un examen complementario (si el promedio es cinco o más y
menor a seis). Finalmente, se desea saber cuántos alumnos aprobaron, cuantos
reprobaron y cuantos necesitan examen complementario.

Recuerde que las calificaciones deben estar en el rango de 0.0 a 10.0 únicamente,
cualquier otro valor es considerado una entrada incorrecta y deberá repetirse.

Planteamiento del problema: Uso de bucles para validar entradas y para “pasar”
uno a uno a los estudiantes del salón de clase, solicitar sus calificaciones y
validarlas, calcular su promedio y evaluar si aprobó, reprobó o realizará examen
complementario.

Entradas: cantidad de estudiantes; para cada estudiante del salón: calificacion1,


calificacion2

Proceso: se deberá utilizar un bucle para validar la cantidad de estudiantes en el


aula, luego inicializar los contadores de alumnos aprobados, reprobados y
complementarios, todos ellos con valor inicial cero. Dentro del bucle que representa
el salón de clase y dónde cada iteración representa un estudiante, se ingresaran dos
calificaciones para cada uno de ellos, pero deberán estar validadas. Posterior a tener
dos calificaciones para el estudiante, se calculará su promedio, se mostrará a través
de una instrucción Escribir, se evaluará si aprobó, reprobó o realizará examen
complementario, en virtud de ello se mostrará un mensaje personalizado y se
contabilizará la ocurrencia en el contador adecuado. Finalmente al salir del bucle que
representa el grupo de clase se mostraran los totales de los contadores.

Salidas: mostrar el promedio de cada estudiante en cada iteración del bucle; y al


salir del bucle, la cantidad de estudiantes aprobados, reprobados, y que realizarán
examen complementario.

16
Solución:

Figura #9: Solución al ejercicio #4 utilizando bucles Repetir.

Explicación: Se comienza validando la cantidad de estudiantes del aula utilizando


un bucle Repetir, si es un valor incorrecto (menos de 1 o mayor que 50) se repite la
entrada, esto ocurrirá las veces que sea necesario hasta ingresar una cantidad de
estudiantes dentro del rango permitido.
Se inicializan los contadores aprobados, reprobados y complementarios, todos
ellos con valor cero; posteriormente, se utiliza un bucle Para que utilice una variable
de nombre estudiante que inicia desde el valor 1 e irá hasta el 50 con un avance de
uno en uno, simulando un estudiante a la vez.
Se inicia un bucle Repetir dentro del cual se ingresan dos calificaciones para cada
estudiante, se calcula el promedio, se evalúa a través de instrucciones Si-Entonces
si aprobó, reprobó o puede realizar examen complementario, al mismo tiempo que
evalúa también se aumenta el contador correspondiente a cada caso de aprobación,
reprobación o examen complementario.

17
Ejercicio #5: Desarrolle la validación de la cantidad de estudiantes del grupo de
clase del ejercicio #4, utilizando el bucle Mientras en lugar del bucle Repetir.

Planteamiento del problema, Entradas, Proceso y Salidas: igual al ejercicio #4

Solución:

Figura #10: Validación del ejercicio #4 utilizando el bucle Mientras.

Explicación: Se ha cambiado el bucle Repetir para validar la cantidad de


estudiantes del aula por un bucle Mientras. Observe que el bucle Mientras utiliza
una instrucción Escribir y Leer antes de la condición del bucle, y luego en el interior
del bucle utiliza nuevamente las mismas instrucciones Escribir y Leer que estaban
fuera, ¿por qué?....la razón es sencilla, si resulta que la primera vez que se solicita al
usuario que ingrese la cantidad de estudiantes del aula y éste lo hace bien, este valor
se evalúa en la condición del bucle Mientras, entonces resulta un valor válido y ni
siquiera entra al bucle; sin embargo, si el usuario ingresa una valor incorrecto, resulta
necesario que dentro del bucle se genere nuevamente la misma pregunta para que
se pueda repetir la entrada y así sucesivamente hasta ingresar un valor correcto.

18
Ejercicio #6: Desarrolle el pseudocódigo para un juego que consiste en adivinar un
número secreto con un máximo de tres oportunidades, el número secreto deberá
estar forzosamente en el rango de 0 a 100.

Planteamiento del problema: un primer usuario ingresara un número secreto, el


cual deberá estar en el rango de cero a cien, posteriormente un segundo usuario
tratara de adivinar el número secreto teniendo como máximo tres intentos.

Entrada: número secreto (secreto), y en cada nuevo intento la variable: numero.

Proceso: se deberá validar que el número secreto sea un valor válido entre cero y
cien, repetir un máximo de tres veces el intento por adivinar el número secreto.

Salida: mostrar “Adivinó” en caso de adivinarlo, o mostrar “No adivinó” si utiliza


los tres intentos y no lo logra.

Solución:

Figura #11: Solución al ejercicio #6 utilizando el bucle Para.

Explicación: Se comienza validando el valor del número secreto utilizando para ello
un bucle Repetir.
Posteriormente, se utiliza un bucle Para que controle los intentos de adivinar el
número secreto. Es importante mencionar que el bucle Para no es el más idóneo
para este caso, ya que el contabilizará tres intentos de adivinar el número secreto,
pero es posible que el usuario lo adivine en el primero, segundo o tercer intento y

19
además este bucle solo lleva el control de los intentos y no de la coincidencia del
número ingresado por el usuario comparado con el número secreto.
Dentro del bucle Para se ha colocado una instrucción Si-Entonces que evalúa si el
usuario adivina el número secreto, en cuyo caso, se “transforma” o se “fuerza” a la
variable intento a tomar el valor 3 y así salirse del bucle.
Estando afuera del bucle que controla los intentos de adivinar, se repite la instrucción
Si-Entonces que evalúa si el usuario adivino el número secreto, esto se debe a que
el usuario puede llegar a ese punto por dos razones muy diferentes: a) adivinó y salió
del bucle o b) no adivinó y salió del bucle porque ya no hay intentos disponibles. Por
tanto es necesario repetir la evaluación para determinar si adivinó o no el número
secreto.
Como podrá observar, el uso del bucle Para resulto posible, pero también resulta
obvio que no fue la mejor elección para crear un pseudocódigo ordenado y lógico.

Ejercicio #7: Desarrolle el ejercicio #6 utilizando únicamente bucles Mientras y


Repetir.

Solución:

Figura #12: Solución al ejercicio #7 utilizando bucles Repetir.

Explicación: Se comienza validando el valor del número secreto utilizando para ello
un bucle Repetir.

20
Se inicializa el contador intento con valor 1, posteriormente, se utiliza un bucle
Repetir para repetir el proceso de intentar adivinar el número secreto y
contabilizando los intentos; de este bucle puede salirse de dos formas: a) si se
acaban los intentos o b) si se adivina el número secreto.
Fuera del bucle que controla los intentos de adivinar, existe una instrucción Si-
Entonces que evalúa si el usuario adivino el número secreto o no, esto se debe a
que se puede llegar a ese punto por dos razones muy diferentes, ya expuestas en el
párrafo anterior.
Como podrá observar, el uso del bucle Repetir resulto mejor para resolver el
presente problema que con el bucle Para. En muchas ocasiones será la experiencia
la que ayudará a determinar cuál bucle es el mejor para cada situación.

Ejercicio #8: En la taquilla de un estadio se ponen a disposición del público 1000


boletos para un espectáculo, cada cliente solo puede comprar como máximo 5
boletos, cada uno de ellos cuesta $10.00. Para cada cliente se mostrará el total a
pagar por los boletos y sería conveniente ir mostrando también cuantos boletos
disponibles quedan en la taquilla antes que cada cliente haga su respectiva compra.
Al terminar de vender todos los boletos muestre cuantos clientes se atendieron.

Planteamiento del problema: Se utilizará un acumulador para gestionar los boletos


disponibles, y se utilizaran bucles para repetir el proceso de venta de boletos a los
clientes y validar la cantidad de boletos que se venden a cada cliente. Será necesario
también contabilizar la cantidad de clientes atendidos.

Entrada: boletosDisponibles, el precio de cada boleto: $10.00.

Proceso: se deberá utilizar un acumulador que en este caso en lugar de


incrementarse deberá decrementarse conforme cada cliente haga su respectiva
compra de los boletos, adicionalmente su utilizará un contador para los clientes que
realizan compra de boletos, y bucles para repetir el proceso de venta para cada
cliente y para validar que la cantidad que compran este en el rango de entre uno y

21
cinco boletos por persona (y también considerar que pueden no existir suficientes
boletos en taquilla).

Salida: para cada cliente mostrar el total a pagar, y al terminar de vender todos los
boletos mostrar a cuantos clientes se atendió.

Solución:

Figura #13: Solución al ejercicio #8 utilizando el bucle Mientras.

Explicación: Se inicializa el acumulador boletosDisponibles con valor 1000 y el


contador clientes con valor cero. Posteriormente, se utiliza un bucle Mientras para
repetir el proceso de venta de boletos para cada cliente, teniendo en cuenta que la
condición que permitirá continuar vendiendo es si existen boletos disponibles aun
(Mientras boletosDisponibles>0).
Dentro del bucle Mientras se incrementa el contador clientes en 1 con cada nueva
iteración del bucle, adicionalmente se utiliza un bucle Repetir para validar que la
compra de boletos por parte del cliente sea válida, es decir que compre entre 1 y 5
boletos y también se verifica si hay suficientes boletos en taquilla (boletos>=1 Y
boletos<=5 Y boletos<=boletosDisponibles). Después de realizar la venta al cliente
se muestra un mensaje con el total a pagar por el cliente y se realiza el
correspondiente descuento al acumulador boletosDisponibles.
Finalmente, al completar la venta de boletos (boletosDisponibles igual a cero) se
muestra la cantidad de clientes atendidos en la taquilla.

22
5. Bibliografía

1. http://pseint.sourceforge.net/
2. https://lihuen.info.unlp.edu.ar/index.php?title=Programando_con_Pseint
3. http://www.monografias.com/trabajos-pdf5/tutorial-pseint/tutorial-pseint.shtml
4. http://www.udb.edu.sv/udb/archivo/guia/informatica-tecnologico/introduccion-a-
la-programacion/2013/i/guia-1.pdf
5. http://es.scribd.com/doc/7222014/Ejercicios-Resueltos-Con-Pseint

23
¿Conoces nuestro catálogo de libros con letra grande?

Están editados con una letra superior a la habitual para


que todos podamos leer sin forzar ni cansar la vista.

Consulta AQUI todo el catálogo completo.

Puedes escribirnos a pedidos@edicionesletragrande.com

Powered by TCPDF (www.tcpdf.org)

También podría gustarte