Logo Studenta

Guia-Laboratorio1-2020

¡Este material tiene más páginas!

Vista previa del material en texto

Ciclo I-2020 
 
Universidad de El Salvador 
Facultad de Ingeniería y Arquitectura 
Escuela de Ingeniería de Sistemas Informáticos 
Introducción a la Informática 
 
 
 
Guía No.1 De LABORATORIO 
Metodología para resolver problemas con estructuras 
selectivas y repetitivas 
Programación C# - Algoritmos con estructuras selectivas y 
repetitivas. 
 
Introducción 
Esta guía consta de tres partes. En la primera parte se desarrolla dos ejercicios completos en los 
cuales se aplica estructuras selectivas; la segunda parte trata sobre la teoría y ejemplos de las 
estructuras repetitivas y la tercera parte trata sobre tres ejercicios propuestos (selectivas y 
repetitivas), los cuales el estudiante desarrollará como actividad evaluada de laboratorio y 
serán entregados en el aula virtual en la fecha correspondiente que se especifica en este 
documento. 
 
Objetivo General: 
● Adquirir el conocimiento y la habilidad para desarrollar soluciones haciendo uso de la 
metodología para resolver problemas, impartida en la asignatura; empleando las 
estructuras de control secuenciales, selectivas simples, dobles, anidadas o múltiples, así 
como las estructuras repetitivas mientras, hacer mientras, hacer hasta incremento, 
según sea necesario, todo esto auxiliándose de la herramienta para desarrollo de 
aplicaciones IDE Visual Studio 2015 para codificar la solución a los ejercicios evaluados 
que se le solicitan. 
 
Objetivos Específicos: 
● Conocer, comprender y aplicar las estructuras selectivas simples, dobles, anidadas y 
múltiples en el diseño de algoritmos, así como las estructuras repetitivas. 
● identificar cuándo utilizar las estructuras selectivas simples, dobles, anidadas y múltiples 
en un algoritmo, así como las estructuras repetitivas. 
● Adquirir el conocimiento y la habilidad para implementar soluciones con estructuras 
selectivas anidadas, así como las estructuras repetitivas usando el Lenguaje C#. 
 
Equipo, Materiales y Herramientas: 
● Computadora Personal con Windows. 
● Conexión a Internet para entregar la actividad. 
● Visual Studio 2015 Community Edition. 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
2 
 
Metodología. El estudiante DEBE desarrollar los ejercicios planteados en la Parte III. Además, 
recuerde que, en su tutoría previa en días previos a la entrega de esta actividad, usted como 
estudiante podrá consultarle a su tutor alguna duda que tenga con respecto a ella. 
 
PARTE I. APLICACIÓN DE LA METODOLOGÍA PARA RESOLVER PROBLEMAS EJERCICIOS DE 
EJEMPLO (ESTRUCTURAS SELECTIVAS). 
Para poder comenzar con los ejercicios de ejemplo veremos un poco de teoría sobre las 
condiciones simples, dobles y su uso de manera anidada. 
 
 
SINTÁXIS EN C# DE LA ESTRUCTURA DE SELECCIÓN SIMPLE 
 
La estructura de selección simple evalúa una condición, si esta es verdadera ejecuta una o 
varias instrucciones, si es falsa continua la ejecución normal del programa. 
 
La escritura de la estructura de selección simple, es muy fácil, involucra como novedad, la 
palabra reservada if y los separadores u operadores de agrupación ( ) y { }. 
 
If en español significa si, y nos indica que inicia la estructura y a continuación se escribe la 
expresión lógica o condición dentro de paréntesis; Si tiene más de una instrucción a realizar 
se debe de escribir dentro de llaves. 
 
Sintaxis Utilizarla cuando Ejemplo Comentarios 
if (condición) línea; La acción está 
formada por una 
sola instrucción 
if(x!=7) a=4; La acción a realizar es muy 
sencilla, una sola instrucción, 
por lo que la podemos escribir 
en una sola línea. 
if ( condición ) 
 línea; 
La acción está 
formada por una 
sola instrucción, 
por lo cual no 
son necesarias 
las llaves. 
if (x!=7 ) 
 a=4; 
Es igual que en el caso anterior, 
pero se escribe en dos líneas 
para mantener un mejor orden, 
además se deja una sangría o 
tabulación en la instrucción es 
decir la segunda línea, también 
debe notar que la primera línea 
no debe llevar punto y coma. 
if ( condición ) 
 { 
 línea 1; 
 línea 2; 
 . . . 
 línea N; 
 } 
La acción si la 
condición resulta 
verdadera está 
formada por varias 
instrucciones, por 
lo cual se utilizan 
las llaves 
if ( x>8 ) 
 { 
 a=2*x; 
 b=a+x; 
 } 
Cuando las acciones a realizar 
dentro de la condición son dos o 
más se debe utilizar llaves para 
poner entre ellas las líneas de 
código, cada línea de instrucción 
debe tener punto y coma al 
final, esto se conoce como 
bloque de código. Y es la forma 
que más se recomienda para 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
3 
 
trabajar con estructuras 
condicionales, debido a que el 
código queda más ordenado y 
organizado. 
 
 
Es importante recordar también que: 
 
 La condición puede ser simple o compuesta, y se escribe dentro de paréntesis. 
 
Ejemplos: 
 
Esta es una condición simple. 
if (Nota>=6) 
 
Las siguientes instrucciones tiene un ejemplo de condición compuesta y significa 
Nota>=0 y Nota<=10 ósea se evalúan dos condiciones las cuales están unidas por un 
operador lógico Y. 
 
if (Nota>=0 && Nota <=10) 
 
La siguiente instrucción significa que se evalúa que se cumpla como verdadera la 
primera condición o la segunda ya que están unidas con un operador lógico O. 
if ((x!=7) || (y ==7)) 
 
 Si la condición es verdadera se ejecutan la o las líneas que están después de la 
sentencia if, y se continúa con la sentencia después de la estructura if. 
 En el caso de la condición simple, si la condición es falsa la ejecución del programa 
sigue después de la estructura if. 
 Si solo hay una sentencia dentro del if las llaves no son necesarias. 
 
 
Gráficamente la estructura de selección simple se puede representar así: 
 
 
 
 
 
 
Condición 
Falso Verdadero 
Instrucciones 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
4 
 
 
 
 
SINTÁXIS EN C# DE LA ESTRUCTURA DE SELECCIÓN DOBLE 
 
La estructura condicional también se puede trabajar de manera doble, es decir, que cuando la 
condición evaluada resulta verdadera realizamos una serie de acciones al igual que la estructura 
condicional simple, la diferencia es que si la condición es falsa se ejecuta otro bloque de 
acciones a realizar. 
 
Sintaxis Utilizarla cuando Ejemplo Comentarios 
if ( condición ) 
 { 
 línea 1; 
 línea 2; 
 . . . 
 línea N; 
 } 
else 
 { 
 línea 1; 
 línea 2; 
 . . . 
 línea N; 
 } 
 
La acción si la 
condición resulta 
verdadera está 
formada por varias 
instrucciones, por lo 
cual se utilizan las 
llaves, luego existe 
otro bloque de 
instrucciones que se 
ejecutan si la 
condición resulta 
falsa. 
if ( x>8 ) 
 { 
 a=2*x; 
 b=a+x; 
 } 
Else 
 { 
 a=x+10; 
 } 
 
Otro ejemplo 
if ( Nota>=6) 
{ 
Estado="Aprobado"; 
} 
Else 
{ 
Estado="Reprobado"; 
} 
Podemos observar 
que en una 
condición doble se 
ejecuta un bloque 
de instrucciones u 
otro, dependiendo 
de si la condición 
evaluada resulta 
verdadera o falsa. 
 
También las estructuras selectivas se pueden utilizar de manera anidada, lo cual significa que 
dentro del bloque de instrucciones que se ejecutan si la condición resulta verdadera o falsa, 
puede ir incluida otra estructura selectiva, y así sucesivamente dependiendo de las necesidades 
del ejercicio, esto se da cuando tenemos más de una condición independiente que evaluar. 
 
Gráficamente la estructura de selección doble se puede representar así: 
 
 
 
 
 
 
CondiciónFalso Verdadero 
Instrucciones Instrucciones 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
5 
 
ANIDAMIENTO 
 
Anidar estructuras selectivas implica utilizarlas una dentro de otra, ya sea en el bloque de 
instrucciones verdadero o en el bloque de instrucciones falso, su objetivo es evaluar otra 
condición diferente a la evaluada en la estructura selectiva más externa. 
 
Por ejemplo: 
 
 
 
 
 
 
 
 
 
 
A continuación, veremos una serie de ejemplos de uso de estructuras selectivas de manera 
anidada. 
 
Ejemplo 1: 
En un almacén se realiza un descuento de 20% a los clientes cuya compra sea mayor o igual a 
los $1000.00 dólares. ¿Cuál será la cantidad de dinero que pagará una persona por su compra? 
 
 
 
DESARROLLO DE LA SOLUCION 
 
A. Planteamiento general del problema (Método de la caja negra). 
 
 
 
 
 
 
 
Calcular Descuento 
Encontrar el monto a pagar 
ENTRADAS 
 
ValorCompra 
PorcentajeDescuento 
 
SALIDAS 
 
TotalAPagar 
PROCESO 
Condición
1 
Falso Verdadero 
Instrucciones 
Condición
2 
Instrucciones Instrucciones 
Falso Verdadero 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
6 
 
B. Análisis del problema. 
 
1. Definición de variables de entrada. 
 
Definición de variables de entrada. 
Nombre Tipo Descripción 
ValorCompra Real Contiene el monto de la compra. 
 
Definición de constantes. 
Nombre Tipo Descripción 
PorcentajeDescuento Real Porcentaje de descuento a aplicar y su valor será 0.20 es 
decir y será 20%. 
 
 
2. Definición de variables de salida. 
 
Definición de variables de salida. 
Nombre Tipo Descripción 
TotalAPagar Real Almacena la cantidad total de dinero a pagar por el cliente. 
 
 
3. Restricciones. 
Debido a que es necesario que se realice una compra para hace el cálculo el valor de 
compra ingresado debe satisfacer esta condición. 
 
ValorCompra>0 
 
Solamente se les aplicará descuento a los clientes cuya compra sea mayor o igual a 
1000.00, por lo tanto, ValorCompra>=1000.00 para la estructura condicional. 
 
4. Proceso. 
Vamos a recordar que, en esta parte, solo escribimos los procesos matemáticos 
(cálculos o asignaciones) y los procesos lógicos (comparaciones o condiciones), que se 
realizarán para resolver el problema, y si se escriben en orden nos facilita aún más el 
diseño de solución. 
 
Por lo tanto, las formulas a utilizar son: 
 
Descuento = ValorCompra * PorcentajeDescuento; 
TotalAPagar = ValorCompra – Descuento; 
 
En donde Descuento es la cantidad a descontar y PorcentajeDescuento es el porcentaje 
(20%) a descontar, este valor será expresado así 0.20 y será un valor constante. 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
7 
 
Los cálculos anteriores se deberán realizar siempre y cuando la compra (ValorCompra) 
sea mayor o igual a 1000.00, de lo contrario el pago (TotalAPagar) será igual al valor de 
la compra (ValorCompra), es decir que hay que establecer Descuento=0 por lo que no se 
le descuenta nada al cliente, resumiendo, lo que tenemos que evaluar es si le hacemos o 
no descuento al cliente. 
 
También hay que considerar que el dato ingresado por el cliente (ValorCompra) sea 
mayor a cero mediante una condición, y si dicha condición se cumple entonces se realiza 
todo el proceso, en caso contrario solo se muestra un mensaje que diga que el valor de 
la compra ingresado es incorrecto. 
 
Ordenando un poco las ideas planteadas anteriormente: 
 
¿Es ValorCompra>0? 
 SI: 
 PorcentajeDescuento=0.20 
 Descuento = 0 
 ¿Es ValorCompra>=1000.00? 
 SI: 
 Descuento = ValorCompra * PorcentajeDescuento 
TotalAPagar = ValorCompra – Descuento 
 No: 
 TotalAPagar=ValorCompra 
Escribir “Total a pagar” + TotalAPagar + “dólares” 
 No: 
Imprimir “El valor de la compra ingresado es incorrecto” 
 
 
5. Definición de variables de proceso. 
 
Nombre Tipo Descripción 
Descuento Real Contiene el monto de la compra. 
 
 
C. Diseño de la solución. 
Algoritmo narrado. 
 
Proceso: Descuento_Compras 
{El programa aplicará el 20% de descuento a los clientes cuya compra supere los $1000.00} 
{TotalAPagar, ValorCompra, PorcentajeDescuento y Descuento son variables de tipo real} 
 
1. Escribir “Digite el valor de la compra” 
2. Leer ValorCompra 
3. Si ValorCompra > 0 entonces 
a. Hacer PorcentajeDescuento= 0.2 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
8 
 
b. Hacer Descuento=0 
c. Si ValorCompra >= 1000.00 entonces 
i. Descuento=PorcentajeDescuento * ValorCompra 
ii. Hacer TotalAPagar=ValorCompra - Descuento 
d. Sino 
i. Hacer TotalAPagar=ValorCompra 
e. {Fin del condicional del paso c} 
f. Escribir “Total a pagar” + TotalAPagar + “dólares” 
4. Sino 
a. Escribir “El valor de la compra ingresado es incorrecto” 
5 {Fin del condicional del paso 3} 
 
 
Sintaxis en C# 
using System; 
 
namespace Descuento_Compras 
{ 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 float ValorCompra, TotalAPagar, Descuento, PorcentajeDescuento; 
 Console.WriteLine("Digite el valor de la compra"); 
 //la lectura por consola es de tipo String 
 ValorCompra = float.Parse(Console.ReadLine()); 
 if (ValorCompra>0) 
 { 
 Descuento = 0; 
 PorcentajeDescuento = 0.2f; 
 if (ValorCompra>=1000.00) 
 { 
 Descuento = PorcentajeDescuento * ValorCompra; 
 TotalAPagar = ValorCompra - Descuento; 
 } 
 else 
 { 
 TotalAPagar = ValorCompra; 
 } 
 Console.WriteLine("\n\nTotal a pagar \t " + TotalAPagar + " dólares"); 
 } 
 else 
 { 
 Console.WriteLine("\n\nEl valor de la compra ingresado es incorrecto"); 
 } 
 Console.WriteLine("\n\nPresione una tecla para continuar..."); 
 Console.Read(); 
 } 
 } 
} 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
9 
 
 
Ejemplo 2: Dados dos números enteros, se desea saber cuál de los dos es el mayor. 
 
A. Planteamiento general del problema (Método de la caja negra). 
 
 
 
 
 
 
 
 
B. Análisis del problema. 
 
1. Definición de variables de entrada. 
 
Definición de variables de entrada. 
Nombre Tipo Descripción 
Num1 Entero Primer número para comparar. 
Num2 Entero Segundo numero para comparar. 
 
 
2. Definición de variables de salida. 
 
Definición de variables de salida. 
Nombre Tipo Descripción 
Mayor Entero Almacena el valor del número que resulta mayor. 
 
 
3. Restricciones. 
Solo se aplicará la solución a números enteros, positivos, negativos y cero. 
 
 
4. Proceso. 
Vamos a recordar que, en esta parte, solo escribimos los procesos matemáticos 
(cálculos o asignaciones) y los procesos lógicos (comparaciones o condiciones), que se 
realizarán para resolver el problema, y si se escriben en orden nos facilita aún más el 
diseño de solución. 
 
Debemos tener en cuenta que primero hay que evaluarsi los dos números son iguales, 
en caso de ser cierto no se realiza ninguna otra acción solo imprimir que son iguales, por 
lo tanto, debemos definir y evaluar primero esta condición. 
 
Evaluar ambos números para 
determinar si son iguales o 
cual de los dos es el mayor. 
ENTRADAS 
 
Num1 
Num2 
SALIDAS 
 
Mayor 
PROCESO 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
10 
 
Por lo tanto, las condiciones de comparación a utilizar son: 
 
Num1==Num2 
Num1>Num2 
 
Si en la primera estructura selectiva la condición resulta verdadera entonces se le dice al 
usuario que los dos números son iguales, en cambio sí resulta falsa, se evalúa otra 
segunda condición dentro del bloque de instrucciones else de la primera estructura 
condicional, para averiguar cuál de los dos números es el mayor. 
 
Y las formulas a utilizar son: 
 
Mayor = Num1; 
 
Los cálculos anteriores se deberán realizar siempre y cuando Num1 sea mayor a Num2, 
de lo contrario, si la condición resulta falsa eso quiere decir que el mayor es Num2, por 
lo cual la formula a aplicar será. 
 
Mayor = Num2; 
 
 
Ordenando un poco las ideas planteadas anteriormente: 
 
¿Es Num1 igual a Num2? 
 SI: 
 Escribir “Ambos números son iguales” 
 No: 
¿Es Num1>Num2? 
 SI: 
 Mayor = Num1 
 No: 
 Mayor = Num2 
Escribir “El número mayor es ” + Mayor 
 
 
5. Definición de variables de proceso. 
No Hay 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
11 
 
C. Diseño de la solución. 
Algoritmo narrado. 
 
Proceso: ComparacionNumeros 
{El programa realizará una comparación de dos números para saber si son iguales o cual es 
el mayor} 
{Num1, Num2, Mayor son variables de tipo entero} 
 
1. Escribir “Digite el primer número” 
2. Leer Num1 
3. Escribir “Digite el segundo número” 
4. Leer Num2 
5. Si (Num1==Num2) entonces 
a. Escribir “Ambos números son iguales” 
6. Sino 
g. Si (Num1 > Num2) entonces 
i. Hacer Mayor=Num1 
h. Sino 
i. Hacer Mayor=Num2 
i. {Fin del condicional del paso a} 
j. Escribir “El número mayor es ” + Mayor 
7. {Fin del condicional del paso 5} 
 
 
Sintaxis en C# 
using System; 
 
namespace ComparacionNumeros 
{ 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 int Num1, Num2, Mayor; 
 Console.WriteLine("Digite el primer número"); 
 Num1 = int.Parse(Console.ReadLine()); 
 Console.WriteLine("Digite el segundo número"); 
 Num2 = int.Parse(Console.ReadLine()); 
 if (Num1==Num2) 
 Console.WriteLine("Ambos números son iguales"); 
 else 
 { 
 if (Num1 > Num2) 
 { 
 Mayor = Num1; 
 } 
 else 
 { 
 Mayor = Num2; 
 } 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
12 
 
 Console.WriteLine("\n\nEl número mayor es {0}", Mayor); 
 } 
 Console.WriteLine("\n\nPresione una tecla para continuar..."); 
 Console.ReadKey(); 
 } 
 } 
} 
 
PARTE II. APLICACIÓN DE LA METODOLOGÍA PARA RESOLVER PROBLEMAS EJERCICIOS DE 
EJEMPLO (ESTRUCTURAS REPETITIVAS). 
1. GENERALIDADES - ESTRUCTURAS REPETITIVAS 
 
Para repetir varias veces un proceso determinado haremos uso de los ciclos repetitivos, a los 
cuales se les conoce también con el nombre de Estructuras Repetitivas, Estructuras Iterativas, 
Lazos, Bucles, Loops, o simplemente ciclos al conjunto de bloques y flechas que nos permite, 
representar en un flujograma que, una acción (o varias) se puede realizar una o varias veces (en 
algunos casos especiales ninguna vez) de acuerdo a una condición. Al igual que las estructuras 
secuenciales y las selectivas, estas estructuras tienen únicamente una flecha de entrada y una 
sola flecha de salida dentro de un flujograma. 
 
2. TERMINOLOGÍA BÁSICA 
 
Para trabajar con estructuras repetitivas se hace necesario conocer ciertos conceptos, previo al 
estudio de cada estructura, ya que nos servirán para comprender mejor el funcionamiento de 
cada una de ellas. 
Estructuras de Control Repetitivas: En un programa son aquellas estructuras en las que una 
sentencia o grupo de sentencias se pueden repetir una o varias veces (en algunos casos 
especiales ninguna vez) Mientras o Hasta que una condición especifica se cumpla. 
 
Las estructuras repetitivas las clasificamos en fundamental y derivadas como se describe a 
continuación: 
 
a) Estructura Fundamental 
Entrada Condicionada o estructura “Mientras”, se repite mientras la condición se cumpla 
como verdadera. 
 
b) Estructuras Derivadas 
Ciclo controlado por contador o estructura “Desde Hasta”, se repite desde un valor inicial 
hasta un valor final, también se conoce como ciclo For. 
 
Entrada asegurada o estructura “Hasta Que”, se repite al menos una vez antes que se 
evalúa la condición y se repite mientras la condición se cumpla como verdadera. 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
13 
 
Para representar gráficamente una estructura repetitiva, haremos uso de los siguientes 
símbolos o bloques. 
 
 
 
 
 
 
Es el mismo rombo que se utiliza para las 
estructuras selectivas, pero en estructuras 
repetitivas, las flechas internas nunca se 
reúnen de nuevo. Con este símbolo se 
visualiza y comprende fácilmente el 
funcionamiento de las estructuras 
repetitivas 
Este es el símbolo especial para 
representar las tres estructuras 
repetitivas, por lo tanto es necesario 
aclarar a cuál de ellas representamos, 
escribiendo dentro del bloque el nombre 
de la estructura 
 
Cuerpo del Ciclo: Está formado por la acción o conjunto de acciones que se repite en un bucle y 
puede estar formado por una o más estructuras lógicas de control: 
 Secuenciales (entrada de datos, asignación/proceso, salida de datos) 
 Selectivas (simple, doble, anidada, múltiple) 
 Repetitivas (entrada condicionada, entrada asegurada, controlada por contador) 
 Combinación de las anteriores. 
 
Iteración: A la ejecución del cuerpo del ciclo se le conoce como iteración; dicho de otra forma, 
una iteración es cada una de las ejecuciones, es decir, cada una de las veces que se repite el 
cuerpo del ciclo. Si el cuerpo del ciclo o acción a repetir, se realiza 5 veces, se dice que se 
ejecutan 5 iteraciones. 
 
Representación general de las estructuras iterativas 
 
 
 
Variable de control del ciclo: Es una variable que permite controlar las veces que se ejecuta un 
ciclo. La variable de control puede ser: bandera, centinela o contador. Cabe aclarar que un ciclo 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
14 
 
podría estar controlado por más de una variable. A continuación, se define cada una de las 
variables de control: 
 
Bandera: Es una variable de entrada y una variable de control de ciclo (con una sola función: 
continuar o detener un ciclo), y solamente puede almacenar uno de dos valores, normalmente 
cero (0) o uno (1), debemos recordar que cero es el valor numérico para falso y uno seconsidera el valor numérico para cierto. 
 
Se puede hacer uso de números o letras; pero en todo caso solo existirán dos valores posibles. 
En el caso de usar letras se escoge dos letras una de ellas indica cierto y la otra falso, por 
ejemplo 's' y 'n', una es sí (cierto) y la otra es no (falso). Se usa con el ciclo mientras o con el 
ciclo hasta que. 
 
Centinela: Es una variable de entrada y una variable de control de ciclo (con doble función la 
primera recibir los datos a procesar y la segunda función de: continuar o detener un ciclo). La 
variable centinela se escoge de entre las variables de entrada de la solución (variables tipo 
entero, tipo real o tipo alfanumérico de un carácter) 
 
La variable centinela al igual que la variable de control bandera se usará cuando la cantidad de 
veces que debe repetirse el ciclo es desconocida. Se usa con el ciclo mientras o con el ciclo 
hasta que. 
 
Contador: Es una variable que controla el número de veces que se repite un ciclo y/o el número 
de ocurrencias de un evento, situación o valor determinado (tiene una doble función controlar 
el ciclo repetitivo y contar; pero puede ser usada únicamente para contar). Para definir 
correctamente una variable contador, se debe de indicar lo siguiente: 
 
Valor inicial: representa el número a partir del cual se empieza a contar. 
Valor final: representa el número hasta el que se va a contar. 
Valor de cambio: Indica de cuanto en cuanto se realiza la cuenta (siempre es el mismo valor, es 
decir, es constante)(por ejemplo de uno en uno). 
 
La forma más común de contar es de uno en uno, sobre todo si lo que se desea es saber 
cuántas veces se repite una acción determinada, pero no es la única forma de contar, se puede 
hacer también contar de dos en dos ó de cinco en cinco ó de 100 en 100, es más también 
podemos contar con fracciones de 0.5 en 0.5 o de 0.01 en 0.01. Estas formas de contar se 
conocen como progresivas, y el valor de cambio de la variable que controla estas cuentas 
siempre es positivo y se le llama incremento, el valor inicial siempre debe de ser menor que el 
valor final para que la acción se pueda ejecutar. 
 
Existen también conteos regresivos, en estas formas de contar el valor de cambio es negativo y 
el valor inicial es siempre mayor que el valor final de la variable contador; así podemos contar 
desde 5 hasta 1 por ejemplo, el valor de cambio es -1. Es importante recordar que 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
15 
 
independientemente del valor de cambio (positivo o negativo) de un contador, éste siempre es 
constante. Como ejemplo podemos mencionar que, para leer un grupo de 5 edades, se puede 
definir una variable contador numEd. Dicha variable numEd, tendrá un valor inicial de 1, un 
valor final de 5 y un valor de cambio 1. 
 
La variable contador se usará cuando la cantidad de veces que debe repetirse el ciclo es 
conocida o se puede preguntar las veces que debe repetirse, en cuyo caso la cantidad de 
repeticiones es una variable de entrada más a considerar. La variable contador se puede usar 
con ciclos mientras, hacer hasta que y hacer desde hasta. 
 
Acumulador: Es una variable que “almacena” el resultado final de sumar todos los distintos 
valores que toma una variable, para definirla, también es necesario indicar: 
 
Valor inicial: Representa el valor original o inicial del acumulador, por lo general cero. 
Valor final: El último valor que toma el acumulador, desconocido por lo general. 
Valor de cambio: Representa cada valor de la variable que se va sumando o acumulando (en 
cada iteración ese valor puede cambiar). 
 
Por ejemplo, para calcular el monto total a desembolsar para pagar la planilla de 20 empleados, 
tendríamos que sumar todos los salarios de los empleados. Podemos hacer uso de una variable 
suma; para la cual definimos un valor inicial de 0.0 y un valor de cambio que es el valor de la 
variable salario (contiene el salario del enésimo trabajador); el valor final es lo que 
pretendemos encontrar, no está definido de antemano. 
 
El acumulador no lo utilizaremos para controlar ciclos, pero es aplicable su uso en cualquier 
tipo de ciclos, con cualquier variable de control de ciclo o para recopilar la suma de diferentes 
valores calculados en cada iteración de los ciclos y obtener un resultado final o valor final 
acumulado para poder utilizarlo posteriormente cuando el ciclo haya terminado. 
 
3. ESTRUCTURA DE ENTRADA CONDICIONADA - ESTRUCTURA MIENTRAS (WHILE) 
 
A la Estructura MIENTRAS (While) también se le llama estructura de entrada condicionada, 
debemos mencionar que ésta es la primera estructura usada para repetir porciones de un 
algoritmo a conveniencia, por lo tanto, se le distingue como Estructura Fundamental; de esta 
estructura, se diseñaron otras 3 estructuras, que se conocen como Derivadas. (Hacer desde 
hasta, hacer hasta que, y una última conocida como para cada elemento) 
 
Funcionamiento de la Estructura Mientras 
 
Esta estructura, nos permite realizar el cuerpo del ciclo las veces que sea necesario, siempre y 
cuando (o Mientras) se cumpla la condición. Al entrar a la estructura se evalúa la condición, si el 
resultado es falso, el cuerpo del ciclo no se ejecuta, si al contrario la condición resulta cierta, se 
realiza el cuerpo del ciclo. Una vez finalizada la ejecución del cuerpo del ciclo se regresa a 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
16 
 
evaluar la condición de nuevo. De tal forma que el cuerpo del ciclo puede ser que se ejecute: 
ninguna vez, una vez o varias veces, dependiendo del resultado de la condición, por esta razón, 
a estos ciclos se les denomina ciclo con entrada condicionada, se entra al cuerpo del ciclo si la 
condición se cumple. 
 
Dentro del cuerpo del ciclo debe existir alguna estructura que modifique el resultado lógico (de 
verdadero a falso) de la condición; si esto no sucediera, la estructura repetitiva se quedaría 
ejecutando el cuerpo del ciclo indefinidamente, ya que para salir de la estructura la condición 
debe dar como resultado falso, en este caso el ciclo se denomina bucle infinito (ciclo o lazo 
infinito) o sin fin (situación que DEBE evitarse). 
 
Representación Gráfica – Diseño de la Solución Para representar gráficamente una estructura 
MIENTRAS, vamos a utilizar el símbolo especial que se mostró en la figura anterior, aunque 
también se puede utilizar el rombo, como se muestra en la figura de la siguiente página: 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
17 
 
La estructura algorítmica mientras es la estructura adecuada para utilizar en un ciclo cuando no 
se sabe el número de veces que éste se ha de repetir. Dicho número depende de las 
proposiciones dentro del ciclo. Ejemplos en la vida cotidiana encontramos muchos. Por 
ejemplo, supongamos que tenemos que obtener el total de una serie de gastos, pero no 
sabemos exactamente cuántos son; o cuando tenemos que sacar el promedio de calificaciones 
de un examen, pero no sabemos precisamente cuántos alumnos lo aplicaron. Tenemos que 
sumar las calificaciones e ir contando el número de alumnos, esto con el fin de poder obtener 
posteriormente el promedio. El ciclo se repite mientras tengamos calificaciones de alumnos. 
 
Representación en Pseudo-Código – Diseño de la Solución 
 
Para expresar una estructura MIENTRAS en pseudo-código vamos a utilizar la siguiente 
simbología. Debe tenerse muy claro que el uso de ciclos implicala posible realización de 
acciones previas y acciones posteriores al ciclo, según corresponda al diseño de la solución. 
 
…… 
//Acciones Previas 
Hacer cont = Proposición Inicial 
Mientras cont es verdadero repetir 
{ 
 Repetir el Cuerpo del Ciclo 
 Hacer cont = Modificación de cont 
 } // Fin del ciclo 
 //Acciones Posteriores 
… 
n=0 
Mientras (n!= 5) repetir 
{ 
 Escribir "Adivine el número:" 
 Leer n 
} //Fin del Ciclo 
Escribir "Felicidades Adivinó!!!" 
 
Reglas de Funcionamiento 
 
Las siguientes normas o reglas deben de cumplirse, cuando utilicemos una estructura 
MIENTRAS: 
 
1. La condición (expresión lógica) es lo primero que se evalúa al llegar a la estructura; 
cuando el resultado es “Verdadero”, se ejecuta el cuerpo del ciclo (y se regresa a evaluar 
la condición), cuando el resultado es “Falso” se sigue la flecha de salida de la estructura. 
2. Cuando la condición se evalúa a “Falso”, al entrar a la estructura por primera vez, el 
cuerpo del bucle no se ejecutará nunca. En este caso se dice que el bucle se ha 
ejecutado cero veces. 
3. Mientras la condición dé como resultado “Verdadera” el cuerpo del ciclo se va a 
continuar ejecutando. 
4. La única forma de salir del ciclo MIENTRAS, es obteniendo un resultado de falso en la 
expresión lógica. 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
18 
 
Codificación de la Estructura Mientras en C# 
La estructura iterativa de entrada condicionada necesita solamente la palabra reservada while, 
que justamente en español significa mientras, los paréntesis ( ) para encerrar la condición y las { 
} para delimitar el cuerpo del ciclo: 
 
Sintaxis Ejemplo 
. . . 
//Acciones previas 
cont = Proposición Inicial // cont=Vi; 
while(condición) // cont<=Vf; 
{ 
//Cuerpo del Ciclo 
//Acción1 
//AcciónN 
//cont = Modificación de cont cont++ 
} 
//Acciones Posteriores . . . 
 
 
 
 
 
 
//Acciones previas 
x = 100; 
while ( x <= 500) 
{ 
 Console.Write("\n {0}", x); 
 x = x + 50; 
} 
//Acciones Posteriores . . . 
 
// En este ejemplo el valor inicial de X es 100 y 
va incrementando de 50 en 50. 
 
 
//Otro Ejemplo 
x = 1; 
while ( x <= 10) 
{ 
 Console.Write("\n {0}", x); 
 x = x + 1; 
} 
//Acciones Posteriores . . . 
 
// En este ejemplo el valor inicial de X es 1 y va 
incrementando de 1 en 1. 
 
4. VALIDACIÓN DE DATOS CON CICLO MIENTRAS 
 
Hasta el momento lo que hemos hecho con las restricciones de los datos de entrada es verificar 
si se cumplen, utilizando una estructura selectiva: si se cumplen realizamos el proceso; pero si 
no lo hacen, terminamos el algoritmo sin hacer nada o imprimimos un mensaje de "Error en los 
datos", y por lo tanto no se lleva a cabo el objetivo de la solución. El concepto de validación de 
datos consiste en obtener valores correctos, con el fin de llevar a cabo el objetivo de la 
solución; es decir, obtener datos que cumplan la o las restricciones, esto lo logramos con una 
estructura MIENTRAS. 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
19 
 
Por ejemplo, supongamos que tenemos un dato de entrada (que se llama puntos) cuya 
restricción es que debe ser mayor que 5 pero menor o igual a 20, para validar este dato osea 
cerciorarnos que el dato es correcto y que el algoritmo funciona lo podemos hacer así: 
 
Expresión de estructura Selectiva o Restricción: puntos >=5 && puntos <= 20 
 
Validar este dato, significa que Mientras la restricción no se cumpla, el dato es incorrecto y 
debemos volver a leer el dato; por el funcionamiento de la estructura MIENTRAS (ejecuta la 
acción cuando la condición es cierta), es necesario escribir lo contrario de la restricción o 
simplemente negar la expresión de la restricción, y esto nos servirá para volver a leer otra vez 
leer puntos, y evaluar la condición nuevamente: 
 
 Condición del ciclo Mientras: puntos < 5 || puntos > 20 
 Puede también escribirse: !(puntos >= 5 && puntos <= 20) 
 
 
Observe que la flecha regresa, siempre a evaluar la 
condición, NO ANTES NI DESPUÉS. 
 
En esta parte de algoritmo no hará más que pedir datos si 
no se cumple la restricción. 
 
Note también que en la condición se ha escrito lo 
contrario de la restricción, para que la estructura 
MIENTRAS funcione correctamente. 
 
Muy importante: debemos distinguir entre la Restricción 
y la Condición de validación ó expresión lógica de 
validación así: 
 Restricción: es la condición que deben cumplir la 
o las variables de entrada para que la solución funcione 
correctamente, es decir, la restricción indica que valores 
son correctos para la o las variables de entrada. 
 Condición de validación ó expresión lógica de validación: 
o En el caso del ciclo mientras: es la condición o expresión lógica que se debe de 
cumplir para seguir ejecutando el bucle de lectura de la o las variables de 
entrada en busca de un valor o valores correctos. En otras palabras, es lo 
contrario de la Restricción, como podemos observar en el ejemplo anterior. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
20 
 
o En el caso del ciclo hasta que: es la condición o expresión lógica que se debe de 
cumplir para dejar de ejecutar el bucle de lectura de la o las variables de entrada 
en busca de un valor o valores correctos. En otras palabras, es la Restricción. 
 
 
Ejemplo de Estructura MIENTRAS 
Enunciado: Diseñe una solución que Imprima los n primeros números enteros positivos. 
 
 
 
 
 
 
Análisis del Problema. 
 
1. Definición de variables de Entrada. 
Nombre Tipo Descripción 
cantNum Entero Almacena la cantidad de números a imprimir 
 
2. Definición de variables de Salida. 
Nombre Tipo Descripción 
num Entero Representa cada uno de los números a imprimir 
 
Constantes: No son necesarias. 
 
3. Restricciones. 
cantNum >0 
 
4. Proceso. 
Lo que se hará es leer la cantidad de números que se va a imprimir y verificar que cumpla la 
restricción; luego iniciar con num=1; imprimirlo y aumentarle 1, mientras num sea menor o 
igual que cantNum. 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
21 
 
Leer cantNum 
¿cantNum >0? 
Si: Inicialmente num=1 
Mientras num <= cantNum 
Imprimir num 
num= num + 1 
NO: Imprimir “Error en datos” 
 
5. Definición de variables de Proceso. 
 No se ha utilizado. 
 
Diseño de la solución. 
 
Pseudocodigo 
 
NOMBRE PROCESO: ImprimirNEnterosPositivos 
{El programa, imprime los n primeros números enteros positivos} 
{num y cantNum son variables de tipo entero, y deben ser positivo, num representa cada uno 
de los números a imprimir, cantNum almacena la cantidad de números a imprimir} 
 
1. num = 1 
2. Escribir “Cuantos números quiere imprimir (positivo)?” 
2. Leer cantNum. 
3. Si cantNum > 0 Entonces 
3.1. Escribir “Números enteros positivos. “, cantNum 
3.2. Mientras num <= cantNum repetir 
Escribir num 
num = num + 1; 
3.3. {Fin del ciclo paso 3.2} 
4. Sino 
 4.1 Escribir “Error en datos” 
5. {fin del condicional del paso 3} 
6. Escribir “Para continuar presione cualquier tecla …” 
7. Pausar pantalla hasta que se presione una tecla 
 
 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURAINTRODUCCIÓN A LA INFORMÁTICA 
 
22 
 
 
Codificación. 
 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
23 
 
5. ESTRUCTURA CONTROLADA POR UN CONTADOR – ESTRUCTURA DESDE_HASTA (FOR) 
 
Esta estructura se conoce como Desde - Hasta o ciclo FOR, se utiliza cuando se conoce por 
anticipado el número exacto de veces que se va a ejecutar una determinada operación, acción 
o tarea. Al igual que el ciclo MIENTRAS, la realización del cuerpo del ciclo depende de una 
condición, que siempre está relacionada con el valor final del contador. 
 
Funcionamiento de la Estructura Desde - Hasta 
Esta estructura, permite realizar el cuerpo del ciclo las veces que sea necesario (cantidad 
conocida de veces), siempre y cuando se cumpla la condición. Al entrar a la estructura se evalúa 
la condición, si el resultado es falso, el cuerpo del ciclo no se ejecuta, si al contrario la condición 
resulta cierta, se realiza el cuerpo del ciclo. 
Al ejecutarse el ciclo por primera vez, el valor inicial se le asigna a una variable de control (o 
contador), se verifica si el valor de la variable de control es menor o igual (o mayor, en el caso 
de decremento) que el valor final, y a continuación se ejecuta el proceso del interior del ciclo; 
cuando se termina el cuerpo del ciclo se cambia el valor de la variable contador (según su valor 
de cambio); si la variable de control, es mayor (o menor en caso de cuentas regresivas) que el 
valor final, entonces se sale del bucle y continua con la siguiente estructura del algoritmo. 
 
Representación Gráfica – Diseño de la Solución 
Para la representación gráfica de esta estructura se utiliza solamente el símbolo de repetición, 
como se muestra adyacentemente, en donde: 
 
Cont : Variable de control (Contador) 
Vi : Valor inicial del contador (desde cuanto contamos) 
Vf : Valor final del contador (hasta cuanto contamos) 
Vc : Valor de cambio del contador (incremento o 
decremento) 
En otras palabras la estructura desde-hasta funciona como 
una estructura mientras (cuando su variable de control es 
un contador), asignando el valor inicial al contador y 
repitiendo el cuerpo del ciclo mientras éste se encuentre 
entre el rango de valores permitidos por el valor final del 
contador, dentro del cuerpo del ciclo se le cambia el valor al contador con el incremento o 
decremento del valor de cambio, sin necesidad de dibujar un bloque que lo indique, ya que la 
estructura automáticamente lo realiza. 
 
Representación en Pseudo-Código – Diseño de la Solución 
Para expresar una estructura Desde - Hasta en pseudo-código vamos a utilizar la siguiente 
simbología. Debe tenerse muy claro que el uso de ciclos implica la posible realización de 
acciones previas y acciones posteriores al ciclo, según corresponda al diseño de la solución. 
 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
24 
 
//Acciones Previas 
Hacer cont = Proposición Inicial 
Repetir con cont desde Vi hasta Vf 
{Repetir el Cuerpo del Ciclo} 
Hacer cont = Modificación de cont 
(Vc) 
{Fin del Ciclo} 
//Acciones Posteriores 
Ejemplo 
 
//Acciones Previas 
Hacer cont = 1 
Repetir con cont desde 1 hasta 5 
{Repetir el Cuerpo del Ciclo} 
Hacer cont = cont + 1 
{Fin del Ciclo} 
//Acciones Posteriores 
 
Otra forma de narrar el pseudocódigo. 
//Acciones Previas 
Hacer i = Proposición Inicial 
Repetir i desde Vi hasta Vf con incremento 1 
{Repetir el Cuerpo del Ciclo} 
//Cuando el ciclo llega acá hace 
//automáticamente el incremento de i 
{Fin del Ciclo} 
//Acciones Posteriores 
Ejemplo 
 
//Acciones Previas 
Hacer i = 1 
Repetir i desde 1 hasta 5 con incremento 1 
{Repetir el Cuerpo del Ciclo} 
//Cuando el ciclo llega acá hace 
//automáticamente el incremento de i 
{Fin del Ciclo} 
//Acciones Posteriores 
 
Nota: tome en cuenta que en un ciclo for no es necesario escribir la línea i=i+1 ya que el 
incremento lo hace automáticamente al terminar la iteración. 
 
Reglas de Funcionamiento 
Las siguientes normas o reglas deben de cumplirse, cuando utilicemos una estructura Desde - 
Hasta 
1. La variable de control, valor inicial y valor final deben ser todas del mismo tipo: entera 
(int). 
2. Los valores iniciales y finales pueden ser tanto expresiones, constantes o variables. 
3. La última ejecución del bucle normalmente ocurre cuando la variable de control es igual 
al valor final. 
4. El valor de cambio puede ser positivo (incremento) o negativo (decremento). 
5. Cuando no se especifica el valor de cambio, el incremento de la variable de control es 1. 
6. La variable de control o contador solo se le debe cambiar su valor, después de realizado 
el cuerpo del ciclo y por el valor de cambio indicado, nunca por una asignación extra. 
En esta estructura el valor de cambio siempre es un valor entero (al igual que el valor inicial y el 
final y; por lo tanto, la variable contador debe ser también tipo entero). No podemos tener un 
valor de cambio de 0.5. Entonces, si nuestra variable contador debe ser de tipo real, se debe de 
diseñar la solución con una estructura mientras y no con una desde – hasta. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
25 
 
 
Codificación de la Estructura Desde_Hasta en C# 
 
La estructura iterativa Desde - Hasta necesita solamente la palabra reservada for ( ; ; ), que en 
español significa Desde - Hasta, los paréntesis ( ) para encerrar la condición, los ; para separar 
los argumentos y las { } para delimitar el cuerpo del ciclo. Cada instrucción for define el 
inicializador, la condición, y secciones de iterador (incremento). Estas secciones determinan 
normalmente cuántas veces recorre el bucle. 
 
. . . 
//Acciones previas 
for (Inicializar; condición; iterador) //for 
(cont=Vi; cont<=Vf; cont++) 
{ 
//Cuerpo del Ciclo 
//Acción1 
//AcciónN 
} 
//Acciones posteriores 
. . . 
Otra forma de representarlo 
. . . 
for (Expresion1; Expresion2; Expresion3) 
{ 
Cuerpo del ciclo; 
} 
En donde: 
 Expresion1: Es la expresión que asigna el valor inicial a la variable contador. 
 Expresion2: Es una expresión lógica (condición) que verifica que el valor actual del 
contador se encuentre entre los permitidos (vi –vf). 
 Expresion3: Es una expresión de asignación que cambia el valor del contador es decir el 
incremento. 
 
6. ESTRUCTURA DE ENTRADA ASEGURADA – ESTRUCTURA HASTA_QUE (DO WHILE) 
 
Esta estructura se conoce como Hasta_Que o ciclo do-while, se utiliza cuando desconocemos el 
número exacto de veces que se va a ejecutar el ciclo. Al igual que el ciclo MIENTRAS, la 
realización del cuerpo del ciclo depende de una condición, con la única diferencia que esta 
estructura ejecuta (al menos una vez) el cuerpo del ciclo antes de que evalúe la condición. 
 
Funcionamiento de la Estructura Hasta_Que 
 
En esta estructura el cuerpo del ciclo se ejecuta la primera vez el cuerpo del ciclo, sin tomar en 
cuenta la condición, de aquí su nombre: ENTRADA ASEGURADA; al finalizar el cuerpo del ciclo, 
se evalúa la condición, si el resultado es cierto se continúa repitiendo el cuerpo del ciclo, caso 
contrario continúa con la estructura del algoritmo o flujograma. 
Esta estructura, permite repetir el cuerpo del ciclo (proceso, acciones o tareas) al menos una 
vez, es decir que el número de iteraciones puede ser 1, o más veces. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURAINTRODUCCIÓN A LA INFORMÁTICA 
 
26 
 
Antes de ejecutar por primera vez el cuerpo del ciclo se asigna el valor inicial de la variable de 
control, una vez completado el cuerpo del ciclo se verifica si el valor de la variable de control se 
cumple y al terminar la estructura, cambia la variable de control y regresa a evaluar la condición 
de nuevo, si el resultado es falso, el cuerpo del ciclo no se ejecuta más y continua con la 
estructura del algoritmo. Dentro del cuerpo del ciclo debe existir alguna estructura que 
modifique el resultado lógico (de verdadero a falso) de la condición. 
 
Representación Gráfica – Diseño de la Solución 
 
Para la representación gráfica de esta estructura se utiliza solamente el 
símbolo de repetición, como se muestra adyacentemente, en donde: 
En otras palabras, la estructura Hasta_Que funciona como una 
estructura mientras con la única diferencia que primero realiza el cuerpo 
de ciclo y luego evalúa la condición. 
 
Representación en Pseudo-Código – Diseño de la Solución 
Para expresar una estructura Hasta - Que en pseudo-código vamos a 
utilizar la siguiente simbología. Debe tenerse muy claro que el uso de 
ciclos implica la posible realización de acciones previas y acciones 
posteriores al ciclo, según corresponda al diseño de la solución. 
 
… 
//Acciones Previas 
Hacer cont = Proposición Inicial 
Repetir 
{Repetir el Cuerpo del Ciclo} 
Hacer cont = Modificación de cont 
(Vc) 
Hasta que ( condición ) 
{Fin del Ciclo} 
//Acciones Posteriores 
… 
 
Ejemplo 
… 
//Acciones Previas 
Hacer cont = 1 
Repetir 
{Repetir el Cuerpo del Ciclo} 
hacer cont = cont + 1 
Hasta que ( cont < 5 ) 
{Fin del Ciclo} 
//Acciones Posteriores 
… 
 
 
Reglas de Funcionamiento 
Las siguientes normas o reglas deben de cumplirse, cuando utilicemos una estructura 
HASTA_QUE: 
1. La estructura se asigna el valor inicial de la variable de control. 
2. Se ejecuta el cuerpo del ciclo una vez, la primera 
3. Dentro del cuerpo del ciclo debe existir alguna expresión que posibilite la 
modificación del resultado lógico (de verdadero a falso) de la condición. 
4. La estructura termina con una expresión lógica. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
27 
 
5. Se evalúa la condición: resultado falso se repite una vez más el cuerpo del ciclo y se 
evalúa de nuevo la condición. 
 
Codificación de la Estructura Hasta_Que en C# 
La estructura iterativa de entrada asegurada necesita solamente la palabra reservada do while, 
que justamente en español significa Hasta que, los paréntesis ( ) para encerrar la condición y las 
{ } para delimitar el cuerpo del ciclo. 
 
La instrucción do ejecuta una instrucción o un bloque de instrucciones repetidamente hasta 
que una determinada expresión se evalúa como false. El cuerpo del bucle se debe incluir entre 
llaves, {}, a menos que esté compuesto por una sola instrucción. En ese caso, las llaves son 
opcionales. 
 
Sintaxis 
. . . 
//Acciones previas 
cont = Proposición Inicial // cont=Vi; 
do 
{ 
//Cuerpo del Ciclo 
//Acción1 
//AcciónN 
//cont = Modificación de cont cont++ 
} while(condición) // cont<=Vf; 
//Acciones 
Ejemplo 
. . . 
//Acciones previas 
x = 1; 
do 
{ 
Console.Write("\n {0}", x); 
x = x + 1; 
} while ( x <=10); 
//Acciones Posteriores 
 
//este ciclo de ejemplo se ejecutará 10 
veces. 
 
En C# la estructura do-while puede salir del bucle utilizando la instrucción break en cualquier 
punto del bloque. Puede pasar directamente a la instrucción de evaluación de expresión while 
utilizando la instrucción continue. Si la expresión while se evalúa como true, la ejecución 
continúa en la primera instrucción tras el bucle. Si la expresión se evalúa como false, la 
ejecución continúa en la primera instrucción detrás del bucle do-while. En nuestro caso y con 
fines académicos no aplicaremos estas últimas técnicas para salir de la estructura sino como se 
indicó al principio de esta unidad se utilizarán llaves para delimitar el fin de la estructura. 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
28 
 
 
Ejemplo de Estructura HASTA_QUE 
Aplicando proceso solucionador de problemas con modularidad, estructuras selectivas y 
repetitivas. 
Un profesor calificó 25 exámenes de sus alumnos y requiere calcular la nota promedio de todos 
ellos, la nota más alta y cuántos aprobaron y reprobaron el examen. Además, deberá imprimir 
el nombre y la nota de cada estudiante. 
 
A. Planteamiento general del problema (Método de la caja negra). 
 
Entrada 
 
Salida 
 
 
 
 
 Nombre de cada 
estudiante 
 Calificación de cada 
estudiante 
 Número de alumnos (25) 
 
 
  Nota promedio 
 Nota Mayor 
 Número de aprobados 
 Número de reprobados 
 
B. Análisis del problema. 
1. Definición de variables de entrada. 
Nombre Tipo Descripción 
nota Real Representa la nota de cada estudiante. 
nombre Alfabético Representa el nombre de cada estudiante 
 
2. Definición de variables de salida. 
Nombre Tipo Descripción 
promedio Real Representa la nota promedio del grupo de alumnos 
mayor Real Representa la nota mayor de todos los exámenes 
apr Entero Representa el número de aprobados. 
rep Entero Representa el número de reprobados. 
 
Constantes: No se utilizan 
 
3. Restricciones. 
 Nota >= 0 && nota <= 10 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
29 
 
 
4. Proceso. 
apr = 0 ; rep = 0 ; mayor = 0 ; 
i = 1 ; 
suma = 0 ; 
Repetir 
Leer nombre 
Leer nota 
Mientras (nota < 0 || nota > 10) 
Leer nota 
Fin: Mientras 
suma = suma + nota 
¿ nota >= 6 ? 
 Si: apr = apr +1 
 No: rep = rep + 1 
¿ nota > mayor? 
 Si: mayor = nota 
i = i + 1 
Hasta Que (i <= 25) 
promedio = suma / 25 
 
 
5. Definición de Variables de Proceso. 
Nombre Tipo Descripción 
suma Real Representa la suma de las 25 notas de los alumnos. 
i Entero Representa el contador de los alumnos. 
 
C. Diseño de la solución 
Pseudocodigo 
 
Método: Main Acceso: Público Estático: Si 
{Un profesor calificó 25 exámenes de sus alumnos y requiere calcular la nota promedio de 
todos ellos, la nota más alta y cuántos aprobaron y reprobaron el examen. Además, se deberá 
imprimir el nombre y la nota de cada estudiante} 
{apr, rep son variables de tipo entero, deben ser positivos y representan el numero aprobados y 
reprobados respectivamente, nombre es del tipo alfanuméricos y representa el nombre del 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
30 
 
estudiante, nota del tipo real, suma es del tipo real es variable de proceso y representa la suma 
de las 25 notas, i es un entero que representa un contador y es variable de proceso} 
 
1. Hacer mayor = 0, rep = 0, apr = 0, suma = 0, i =1 
2. Repetir 
Escribir “Digite el nombre del alumno: ” 
Leer nombre 
Hacer nota = ValidarNota() 
Hacer suma = suma + nota 
Escribir nombre, nota 
2.1 Si nota >= 6 entonces 
Hacer apr = apr + 1 
Sino 
Hacer rep = rep + 1 
2.2 {Fin del ciclo paso 2.1} 
2.3 Si nota > mayor entonces 
Hacer mayor = nota 
2.4 {Fin del ciclo paso 2.3} 
Hacer i++ 
Hasta i <= 25 
3 {Fin del ciclo paso 2} 
4 Imprimir(suma, mayor, apr, rep) 
 
Método: ValidarNota Acceso: Público Estático: Si 
{Realiza la validación de nota, se encuentre entre el rango 0 y 10 de cada alumno} 
{nota es variablede tipo real} 
1. Escribir “Introduzca la nota: ” 
2. Leer nota 
3. Mientras nota < 0 || nota > 10 Repetir 
Escribir “La nota debe estar entre 0 y 10…” 
Leer nota 
4. {Fin del ciclo del paso 3} 
5. Retornar nota 
 
 
Método: Imprimir Acceso: Público Estático: Si 
{recibe los valores de suma, mayor, apr, rep los cuales utiliza para realiza el cálculo del 
promedio y además imprime los demás valores} 
{promedio, mayor son variables de tipo real, deben ser positivos, apr, rep son variables de tipo 
entero, deben ser positivos y representan el numero aprobados y reprobados respectivamente} 
 
1. Recibir suma, mayor, apr, rep 
2. promedio = suma /25. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
31 
 
3. Escribir “La nota promedio del grupo es ”, promedio 
4. Escribir “Nota mayor del grupo es ”, mayor 
5. Escribir “Numero de aprobados ”, apr 
6. Escribir “Numero de reprobados ”, rep 
 
Codificación. 
 
using System; 
namespace calculaAprobadosReprobados 
{ 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 // Entrada 
 string nombre; 
 float nota; 
 // Salida 
 int apr = 0, rep = 0; 
 float mayor = 0; 
 // Proceso 
 int i = 1; 
 float suma = 0; 
 
 do // inicia el ciclo DO WHILE entrada asegurada 
 { 
 Console.Write("Digite el nombre del alumno: "); 
 nombre = Console.ReadLine(); 
 //realiza llamado al metodo y retorna nota 
 nota = ValidarNota(); 
 suma += nota; 
 Console.WriteLine(" {0} {1:0.00}", nombre, nota); 
 // Cuenta aprobados y reprobados 
 if (nota >= 6) 
 apr++; 
 else 
 rep++; 
 // Almacena la nota mayor 
 if (nota > mayor) 
 mayor = nota; 
 i++; 
 } while (i <= 25); 
 //llamado a metodo para realizar prom e imprimir 
 Imprimir(suma, mayor, apr, rep); 
 Console.Write("Para Continuar presione cualquier tecla ...."); 
 Console.ReadKey(); 
 } // Main 
 
 private static float ValidarNota() 
 { 
 float nota; 
 Console.Write("Introduzca la nota: "); 
 nota = float.Parse(Console.ReadLine()); 
 //Validacion de datos 
 while (nota < 0 || nota > 10) 
 { 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
32 
 
 Console.WriteLine("La nota debe estar entre 0 y 10..."); 
 nota = float.Parse(Console.ReadLine()); 
 } 
 return nota; 
 } 
 
 private static void Imprimir(float suma, float mayor, int apr, int rep) 
 { 
 float promedio = 0; 
 promedio = suma / 25; 
 Console.WriteLine("La Nota Promedio del grupo es: {0:0.00} ", promedio); 
 Console.WriteLine("Nota mayor del grupo: {0:0.00} ", mayor); 
 Console.WriteLine("Numero de Aprobados: {0:} ", apr); 
 Console.WriteLine("Numero de Reprobados: {0:} ", rep); 
 } 
 } 
} 
 
 
7. CICLOS ANIDADOS 
 
El cuerpo de un ciclo puede contener cualquier tipo de sentencias: secuenciales, selectivas y 
repetitivas. Cuando un ciclo está contenido en el cuerpo de otro ciclo, se denominan ciclos 
anidados. Se pueden anidar cualquier tipo de estructura estudiada anteriormente, ya sea con 
un mismo tipo de estructuras o con una combinación de varias de ellas. 
Por ejemplo, los ciclos Hacer mientras y desde hasta pueden estar anidados, entre sí, o bien 
ciclos Hacer mientras con hasta que o viceversa. 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
33 
 
NOTA: Las variables tipo arreglo se verán en una unidad posterior pero a manera de ejemplo 
para aprendizaje de la estructura repetitiva foreach para recorrer arreglos se presenta el 
siguiente ejemplo. 
 
Ejemplo 1 de uso de foreach 
var NombresClientes = new List<string>() { "Alex", "Angel", "Nicolle" }; 
foreach (string name in NombresClientes) 
{ 
 Console.WriteLine(name); 
} 
 
Ejemplo 2 de uso de foreach 
// Creando un arreglo con 3 cadenas de texto 
string[] ObjetosComunes = {"Celular", "Televisor", "Mesa"}; 
// utilizando foreach para recorrer el arreglo e ir imprimiendo en pantalla el valor. 
foreach (string value in ObjetosComunes) 
{ 
Console.WriteLine(value); 
} 
 
Nota: Cuando se recorre un arreglo con foreach no necesariamente solo se puede imprimir en 
pantalla, sino que también el programador puede realizar otras acciones con dichos datos a 
medida va recorriendo el arreglo con foreach. 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
34 
 
 
PARTE III: PRODUCTO A ELABORAR POR EL ESTUDIANTE: 
 
Resuelva los siguientes ejercicios de estructuras selectivas 
Ejercicio 1: 
En una Tienda se tienen 2 departamentos, en los cuales se tienen promociones de descuento 
en la mercadería, según el cliente que compra: Hombre o Mujer, de acuerdo a la siguiente 
tabla: 
Departamento Sexo Descuento (%) 
1. Ropa 
1. Femenino 20 
2. Masculino 25 
2. Calzado 
1. Femenino 35 
2. Masculino 30 
 
Diseñe una solución que dado el monto de la compra en un departamento pueda otorgarle el 
descuento respectivo, indicándole cuánto debe pagar y el descuento aplicado. Además, se debe 
validar la entrada de datos solamente con estructuras selectivas para que únicamente se 
ingresen datos correctos en caso contrario presentar un mensaje de error. Solo se puede 
comprar de un departamento por transacción. 
 
Se pide: 
 Planteamiento general del problema (Método de la caja negra). 
 Análisis del problema. 
 Definición de variables de entrada. 
 Definición de variables de salida. 
 Restricciones. 
 Proceso. 
 Definición de variables de proceso. 
 Diseño de la solución. 
o Algoritmo narrado. 
o Sintaxis en C# 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
35 
 
Ejercicio 2: 
Una tienda de venta en línea de camisetas tiene como política hacer descuentos de acuerdo a la 
cantidad de camisetas que el cliente solicite, validar que el cliente debe compre como mínimo 
una camisa, cada camiseta tiene el precio de $12.00 y hace los siguientes descuentos: 
Camisetas Descuento 
Menos de 3 $0.00 
De 3 a 6 $5.00 
De 7 a 12 $10.50 
De 13 a 24 $15.00 
Más de 25 $25.00 
 
Se solicite que imprima lo siguiente: 
La cantidad de camisetas compradas. 
El monto de lo vendido según el descuento aplicado. 
 
 
Se pide: 
 Planteamiento general del problema (Método de la caja negra). 
 Análisis del problema. 
 Definición de variables de entrada. 
 Definición de variables de salida. 
 Restricciones. 
 Proceso. 
 Definición de variables de proceso. 
 Diseño de la solución. 
o Algoritmo narrado. 
o Sintaxis en C# 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURAINTRODUCCIÓN A LA INFORMÁTICA 
 
36 
 
Resuelva los siguientes ejercicios haciendo uso de estructuras repetitivas y selectivas. 
Ejercicio 3: 
Una empresa dedicada a las ventas necesita le elaboren un programa que como entrada de 
datos tenga el nombre del vendedor y su sueldo, (valide que el sueldo del vendedor debe ser 
mayor que cero); no se sabe la cantidad de vendedores que se procesaran, utilice la 
herramienta de estructuras repetitivas que crea más conveniente. Para cada vendedor deberá 
de calcular un bono de acuerdo a las ventas realizadas en el mes (valide que las ventas deben 
ser mayor o igual a cero) según lo establecido en la siguiente tabla. 
Ventas Bono 
Menor o Igual a $500.00 $0.0 
Mayor a $500.00 y Menor o Igual a $700.00 5% sobre el sueldo del vendedor 
Mayor a $700.00 y Menor o igual a $900.00 7% sobre el sueldo del vendedor 
Mayor a $900.00 y Menor o igual a $1,100.00 9% sobre el sueldo del vendedor 
Mayor a $1,100.00 y Menor o igual a $1,300.00 11% sobre el sueldo del vendedor 
Mayor a $1,300.00 15% sobe el sueldo del vendedor 
 
Debe Imprimir lo siguiente: 
1. Para cada vendedor imprimir su nombre, sueldo, sus ventas y su respectivo bono 
otorgado en base a la tabla anterior 
2. La cantidad de Vendedores en cada rango y la sumatoria de las ventas por rango. 
3. El promedio de las ventas. 
4. El nombre del vendedor y su venta máxima. 
 
Se pide: 
 Planteamiento general del problema (Método de la caja negra). 
 Análisis del problema. 
 Definición de variables de entrada. 
 Definición de variables de salida. 
 Restricciones. 
 Proceso. 
 Definición de variables de proceso. 
 Diseño de la solución. 
o Algoritmo narrado. 
o Sintaxis en C# 
 
 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
37 
 
 
INDICACIONES DE ENTREGA 
 
Los estudiantes entregarán un archivo comprimido conteniendo los proyectos en C# de los tres 
ejercicios solicitados en carpetas separadas y con el nombre Ejercicio1, Ejercicio2 y Ejercicio3. 
Además, entregarán un documento con el desarrollo de las fases del proceso solucionador de 
problemas, para cada ejercicio. 
 
Resumiendo, el archivo comprimido se deberá llamar CARNET_LAB1.ZIP, el reporte tendrá el 
nombre CARNET_ReporteLAB1.pdf, en donde reemplazará la palabra CARNET por su número 
de carnet., y las carpetas serán nombradas Ejercicio1, Ejercicio2 y Ejercicio3 respetivamente. 
 
 
1. Documento: Deberá de contemplar lo siguiente: 
 Carátula 
 Índice. 
 Introducción 
 Objetivo general 
 Objetivos específicos 
 Desarrollo de los ejercicios (para cada uno de los ejercicios) 
o Enunciado. 
o Planteamiento general del problema (Método de la caja negra). 
o Análisis del problema. 
o Definición de variables de entrada. 
o Definición de variables de salida. 
o Restricciones. 
o Proceso. 
o Definición de variables de proceso. 
o Diseño de la solución. 
 Algoritmo narrado. 
 Sintaxis en C# 
 Conclusiones. 
 Recomendaciones. 
 Bibliografía. 
 
Carátula. 
En esta parte se presenta la información personal (nombre, carnet, asignatura) e información 
de la Universidad. 
 
a. Imagen de minerva es decir el logo de la UES, centrada en la parte superior. 
b. Datos de la Universidad, Facultad, Carrera, Cátedra. 
c. Titulo o tema. 
d. Nombre de estudiante, seguido del carnet. 
e. Asignatura. 
 UNIVERSIDAD DE EL SALVADOR EN LÍNEA 
 FACULTAD DE INGENIERÍA Y ARQUITECTURA 
 INTRODUCCIÓN A LA INFORMÁTICA 
 
38 
 
f. Sede. 
g. Grupo en aula virtual. 
h. Tutor (a). 
i. Ciclo y año. 
j. Lugar y fecha. 
 
El nombre del documento será CARNET_ReporteLAB1.pdf 
 
FECHA ASIGNACION: 23 de marzo de 2020. 
FECHA ENTREGA: 19 de abril de 2020 11:55 pm. 
 
MEDIO: Enlace en aula virtual llamado Laboratorio 1 Evaluado: Metodología para resolver 
problemas con estructuras selectivas y repetitivas, ubicado en la pestaña evaluaciones.

Continuar navegando

Contenido elegido para ti

131 pag.
62 pag.
Unidad N 2 - Denii Amaya

User badge image

Desafío COL y ARG Veintitrés

72 pag.
RESUMEN_ALGORITMO_2022 - Denii Amaya

User badge image

Desafío COL y ARG Veintitrés