Sie sind auf Seite 1von 12

Universidad Privada: San Juan Bautista

SISTEMAS INFORMATICOS

LA SENTENCIA while
El bucle while ejecuta una sentencia o bloque de sentencias mientras
se cumple una determinada condicin; es decir, la accin o acciones
se repiten mientras la condicin es verdadera. La sintaxis while es:
while (expresion)
sentencia;

while (expresion)
{
//sentencia de sentencias;
}

Si la expresin es verdad es verdad, la sentencia o grupo de


sentencias se ejecutan. Cuando la expresin es falsa el bucle while
se termina y el programa reanuda su ejecucin en la primera
sentencia despus del bucle.
int i=1;
while (i <= 100)
{
Console.WriteLine("i = " + i);
i++;
}

El bucle ejecuta la primera iteracin, ya que i tiene un valor menor


que 100. Como i++ incrementa su valor en 1 a cada iteracin, cuando
i sea igual a 101, la expresin i<=100 ser falsa y el bucle se
termina. Un ejemplo de su aplicacin es el siguiente programa:
class while1
{
static void Main(string[] Args)
{
int n = 0;
try
{
Console.WriteLine("Introduzca un numero entero mayor que 0");
n = int.Parse(Console.ReadLine());
}
catch
{ }
int i = 1;
while (i <= n)
{
Console.WriteLine("Iteracion: " + i);
i++;
}
Console.ReadLine();
}
}

Ing. Juan Moiss Donaires Ruiz

Universidad Privada: San Juan Bautista

SISTEMAS INFORMATICOS

La sentencia while es adecuada para muchas tareas. Un uso tpico de


while en programacin es asegurar entradas de usuarios vlidas. El
programa solicita al usuario si desea o no continuar con el programa
mediante mensajes adecuados y mientras el usuario no indica
expresamente una respuesta negativa, no(por ejemplo mediante la
pulsacin de la letra n o N), se sigue ejecutando el bucle.
class while2
{
static void Main(string[] Args)
{
try
{
Console.WriteLine("Desea continuar? (S/N)");
string resp = Console.ReadLine();
while (resp != "n" && resp != "N")
{
Console.WriteLine("Pulse n o N y RETURN para salir");
Console.Write("Desea Continuar? (S/N) ");
resp = Console.ReadLine();
}
}
catch
{ }
}
}

LA SENTENCIA do-while
La sentencia do-while es similar a la sentencia while, excepto que la
expresin se comprueba se comprueba despus de que el bloque de
sentencias ha sido ejecutado (mientras que la sentencia while realiza
la prueba antes de que se ejecute el bloque de sentencias). La
sintaxis de la sentencia do-while es:
do
sentencia;
while (expresion);

do
{
sentencias;
}
while (expresion);

La/s sentencia/s se ejecutan y, a continuacin, se evala la


expresin. Si la expresin se evala a un valor verdadero, las
sentencias se ejecutan de nuevo. Este proceso se repite hasta que
expresin se evala a un valor falso, en cuyo momento se sale de la

Ing. Juan Moiss Donaires Ruiz

Universidad Privada: San Juan Bautista

SISTEMAS INFORMATICOS

sentencia do-while. Dado que el test condicional se realiza al final


del bucle la sentencia o bloque de sentencias se ejecuta el menos una
vez.
class DoWhile1
{
static void Main(string[] args)
{
int i = 1;
while (i < 6)
{
Console.WriteLine("Bucle while " + i);
i++;
}
i = 1;
do
{
Console.WriteLine("Bucle do-while" + i);
i++;
}
while (i < 6);
Console.ReadLine();
}
}

Ing. Juan Moiss Donaires Ruiz

Universidad Privada: San Juan Bautista

SISTEMAS INFORMATICOS

GUIA DE LABORATORIO
CURSO
DOCENTE
CICLO
SEMANA

:
:
:
:

SISTEMAS INFORMATICOS
ING. JUAN MOISES DONAIRES RUIZ
I
14.

Problema 16

Ing. Juan Moiss Donaires Ruiz

Universidad Privada: San Juan Bautista

SISTEMAS INFORMATICOS

Enunciado: Obtener la suma de los primeros N nmeros naturales


positivos.

Anlisis: Para la solucin de este problema, se requiere que el


usuario ingrese un nmero y el sistema realice el proceso para
devolver la suma de los N primeros nmeros.
Interfaz de Usuario

Codificacin:
class Problema16
{
static void Main(string[] args)
{
//Variables
int i, n, s = 0;
//Entrada
Console.Write("Ingrese Numero: ");
n = int.Parse(Console.ReadLine());
//Proceso
i = 1;
while (i <= n)
{
s = s + i;
i = i + 1;
}
//Salida
Console.WriteLine("\n" + "La suma es: " + s);
Console.ReadLine();
}
}

Ing. Juan Moiss Donaires Ruiz

Universidad Privada: San Juan Bautista

SISTEMAS INFORMATICOS

Problema 17

Enunciado: Dado una serie de nmeros determinar el mayor.

Anlisis: Para la solucin de este problema, se requiere que el


usuario ingrese un nmero entero, luego el sistema verifica y
devuelve el digito mayor.
Interfaz de Usuario

Codificacin:
class Problema17
{
static void Main(string[] args)
{
//Variables
int d, m = 0, n;
//Entrada
Console.Write("Ingrese Numero: ");
n = int.Parse(Console.ReadLine());
//Proceso
while (n > 0)
{
d = n % 10;
if (d > m)
{
m = d;
}
n /= 10;
}
//Salida
Console.WriteLine("\n" + "El digito mayor es: " + m);
Console.ReadLine();
}
}

Ing. Juan Moiss Donaires Ruiz

Universidad Privada: San Juan Bautista

SISTEMAS INFORMATICOS

Problema 18

Enunciado: Dado un numero mayor a dos cifras devolver su inverso.

Anlisis: Para la solucin de este problema, se requiere que el


usuario ingrese un nmero entero y el sistema procesa y devuelve el
inverso del nmero.
Interfaz de Usuario

Codificacin:
class Problema18
{
static void Main(string[] args)
{
//Variables
int d, n, i= 0;
//Entrada
Console.Write("Ingrese Numero: ");
n = int.Parse(Console.ReadLine());
//Proceso
while (n > 0)
{
d = n % 10;
n = n / 10;
i = i * 10 + d;
}
//Salida
Console.WriteLine("\n" + "Su inverso es: " + i);
Console.ReadLine();
}
}

Ing. Juan Moiss Donaires Ruiz

Universidad Privada: San Juan Bautista

SISTEMAS INFORMATICOS

Problema 19

Enunciado: Determine si un nmero es capica o no, se dice que un


nmero capica es aquel nmero que al invertir sus cifras da el
mismo nmero, por ejemplo 12321 invertido es 12321 entonces es
un numero capica.

Anlisis: Para la solucin de este problema, se requiere que el


usuario ingrese un nmero y el sistema verifica y determina si es o
no capica.
Interfaz de Usuario

Codificacin:
class Problema19
{
static void Main(string[] args)
{
//Variables
int n, i= 0, d, t;
string r = "";
//Entrada
Console.Write("Ingrese Numero: ");
n = int.Parse(Console.ReadLine());
//Proceso
t = n;
while (t > 0)
{
d = t % 10;
t = t / 10;
i = i * 10 + d;

Ing. Juan Moiss Donaires Ruiz

Universidad Privada: San Juan Bautista

SISTEMAS INFORMATICOS

}
if (n == i)
r = "ES CAPICUA";
else
r = "NO ES CAPICUA";
//Salida
Console.WriteLine("\n" + "El numero es: " + r);
Console.ReadLine();
}
}

Problema 20

Enunciado: Dado un numero entero en base 10, convertir el nmero


a otra base menor que 10.

Anlisis: Para la solucin de este problema, se requiere que el


usuario ingrese un nmero entero y la base a convertir, luego el
sistema devuelve el nmero convertido a su nueva base.
Interfaz de Usuario

Codificacin:
class Program
{
static void Main(string[] args)
{
//Variables
int n, b, d, i= 0, r=0;
//Entrada
Console.Write("Numero base 10: ");
n = int.Parse(Console.ReadLine());
Console.Write("Convertir a base: ");
b = int.Parse(Console.ReadLine());
//Proceso
while (n > 0)

Ing. Juan Moiss Donaires Ruiz

Universidad Privada: San Juan Bautista

SISTEMAS INFORMATICOS

{
d = n % b;
n /= b;
i = i * 10 + d;
}
while
{
d
i
r
}

(i > 0)
= i % 10;
/= 10;
= r * 10 + d;

//Salida
Console.WriteLine("\n" + "Resultado: " + r);
Console.ReadLine();
}
}

PROBLEMAS PROPUESTOS
Los siguientes problemas le servirn para medir su aprendizaje, es
importante que los resuelva.

Propuesto 41
Obtener el factorial de un nmero, recuerde que el factorial de un
nmero es el producto de 1x2x3xxN.

Propuesto 42
Dado un rango de nmeros enteros, obtener la cantidad de nmeros
pares e impares que contiene el rango, sin considerar los mltiplos de
5.

Propuesto 43
Calcular la suma y el producto de los N primeros nmeros naturales
mltiplos de 3.

Ing. Juan Moiss Donaires Ruiz

Universidad Privada: San Juan Bautista

SISTEMAS INFORMATICOS

Propuesto 44
Dado un nmero, determinar cuntos nmeros 0 contiene.

Propuesto 45
Se requiere saber si existe un determinado digito en un nmero dado.

Propuesto 46
Dado un nmero, determinar cul es el porcentaje de nmeros pares,
impares y neutros (0).

Propuesto 47
Dado un rango de nmeros determine cuantos nmeros primos
contiene.

Propuesto 48
Dado un rango de nmeros determine cuantos nmeros capica hay.

Propuesto 49
Dado 2 nmeros obtener el MCD (mximo comn divisor), utilice el
mtodo EUCLIDES (divisiones sucesivas).

Propuesto 50
Dado 2 nmeros obtener el MCD (mximo comn divisor), utilice el
mtodo factorizacin simultnea.

Recuerde: El mximo comn divisor es el divisor mayor comn de


todos ellos.
Ing. Juan Moiss Donaires Ruiz

Universidad Privada: San Juan Bautista

Ing. Juan Moiss Donaires Ruiz

SISTEMAS INFORMATICOS