Vous êtes sur la page 1sur 10

Programacin I, Gua 4

Facultad: Ingeniera
Escuela: Ingeniera en Computacin
Asignatura: Programacin I

Tema: Estructuras de Seleccin en C#.


Objetivos

Utilizar las instrucciones de seleccin if e if..else para elegir una de varias acciones alternativas.
Conocer la sintaxis de C# para las instrucciones condicionales simples, dobles y mltiples, as como tambin la
utilidad en la programacin.
Aprender a utilizar la estructura y sintaxis del switch-case para la evaluacin de condiciones mltiples.

Introduccin
Por lo general, las instrucciones en una aplicacin se ejecutan una despus de la otra, en el orden en que se escriben.
A este proceso se le conoce como ejecucin secuencial. Varias instrucciones de C# le permiten especificar que la
siguiente instruccin a ejecutar no es necesariamente la siguiente en la secuencia.
A este se le conoce como transferencia de control.
Estructuras de Seleccin en C#
C# cuenta con tres tipos de estructuras de seleccin, que de aqu en adelante denominaremos instrucciones de
seleccin. La instruccin if realiza (selecciona) una accin si una condicin es verdadera, o ignora la accin si la
condicin es falsa. La instruccin ifelse realiza una accin si una condicin es verdadera o realiza una accin distinta
si la condicin es falsa. La instruccin switch realiza una de varias acciones distintas, dependiendo del valor de una
expresin (expresin de control).
A la instruccin if se le llama instruccin de seleccin simple, debido a que selecciona o ignora una accin individual.
A la instruccin if...else se le llama instruccin de seleccin doble, debido a que selecciona una de dos acciones
distintas (o grupos de acciones). A la instruccin switch se le llama instruccin de seleccin mltiple, debido a que
selecciona una de varias acciones distintas (o grupo de acciones).
Sintaxis de las Instrucciones Condicionales
Una instruccin if simple responde a la siguiente sintaxis:
if (expresin booleana)
{
Instruccin(es) de condicin verdadera.
}

Advertencia:
Las llaves son opcionales si hay una sola accin. Normalmente, es aconsejable aadirlas de todas formas. Su omisin
puede ser causa de fallos inesperados.

Programacin I, Gua 4

La instruccin if solo garantiza la ejecucin de determinadas acciones basndose en una condicin verdadera (true).
Se ejecutan o no se ejecutan. Para controlar tanto la condicin true como la falsa (false) es necesario utilizar la
instruccin ifelse. Su sintaxis en la siguiente:
if (expresin booleana)
{
Instruccin(es) de condicin verdadera.
}
else
{
Instruccin(es) de condicin falsa.
}

Recordar:
La condicin siempre se evala en el if. NUNCA se evaluar una condicin despus de la sentencia else.
Muchas veces vamos a necesitar evaluar ms de dos condiciones, por lo que nos encontramos con el siguiente tipo
de estructura, para el cual se muestra la sintaxis e interpretacin:
if (condicion1)
{
Bloque de instrucciones que se ejecutan si la condicin 1 es verdadera.
}
else if(condicion2)
{
Bloque de cdigo que se ejecuta si la condicin 2 es verdadera.
}
else if(condicion n)
{
Bloque de cdigo se la siguiente condicin n es verdadera.
}
else
{
Bloque de cdigo que se ejecuta si ninguna de las condiciones previas fue verdadera.
}

Operadores Lgicos
Los operadores lgicos producen un resultado booleano (verdadero o falso) y sus operandos son tambin valores
lgicos. Nos permiten formular condiciones complejas a partir de condiciones simples. A continuacin se muestra una
tabla con las tres compuertas lgicas bsicas que nos servirn como operadores lgicos:
OPERADOR
AND
OR

C#

SINTAXIS

COMENTARIO

&&
||

Exp_Lgica && Exp_Lgica


Exp_Lgica || Exp_Lgica

NOT

Devuelve verdaderos si se cumplen ambas condiciones.


Devuelve verdaderos si se cumple al menos una de las
condiciones.
Niega la condicin.

Programacin I. Gua 4

Nota:
La operacin x && y corresponde a la operacin x & y, excepto que y se evala solamente si x es true.
La operacin x || y corresponde a la operacin x | y, excepto que y se evala solamente si x es false.
Caracteres ASCII utilizados:
ALT + 92 = \
ALT + 94 = ^
ALT + 33 = !

ALT + 91 = [
ALT + 123 = {

ALT + 93 = ]
ALT + 125 = }

ALT + 35 = #
ALT +124 = |

Material y Equipo

Gua de laboratorio No. 4.


Computadora con Visual Studio 2013 o superior.
Dispositivo de almacenamiento (USB).

Procedimiento
Crear una carpeta con el nombre Practica4 para guardar los ejemplos y ejercicios, en el escritorio de su computadora.
Gua4 Ejemplo1
Realizar un programa que permita saber cul es el nmero mayor entre 2 nmeros.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

static void Main(string[] args)


{
// este programa fue hecho por: Pepito Picaflor
Console.Title = " El mayor de dos numeros";
Int32 x, y;
Console.WriteLine("Digitar el primer numero del 1 al 1000");
x = Int32.Parse(Console.ReadLine());
Console.WriteLine("Digitar el segundo numero del 1 al 1000");
y = Int32.Parse(Console.ReadLine());
if (x>y)
{
Console.WriteLine("\nEl numero {0} es mayor que {1}", x, y); // v
}
else
{
Console.WriteLine("\nEl numero {0} es mayor que {1}", y, x); // f
}
Console.WriteLine("\n\n");
Console.WriteLine("\n----->Fin del programa");
Console.ReadKey();
}

Programacin I, Gua 4

Gua4 Ejemplo2
Desarrollar un programa que solicite al usuario un nmero y determine si dicha cantidad es par o impar, en caso de
que el nmero sea par, el programa deber verificar si el nmero est entre el rango [10 - 100].
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

static void Main(string[] args)


{
int Numero;
Console.Title = "VERIFICANDO NUMEROS PARES";
Console.Write("\nIngrese un numero:");
Numero = int.Parse(Console.ReadLine());
if (Numero < 0)
{
Console.Write("\n\tNumero Negativo...Ingrese un numero positivo");
}
else if (Numero % 2 == 0)
{
Console.Write("\n\tEl numero (" + Numero + ") es par.");
if (Numero >= 10 && Numero <= 100)
{
Console.Write("\n\tEl numero (" + Numero + ") se encuentra en el rango [10-100]");
}
else
{
Console.Write("\n\tEl numero (" + Numero + ") NO esta en el rango [10-00]");
}
}
else
{
Console.Write("\n\tEl numero ingresado es impar...");
}
Console.ReadKey();
}
}
}

Corrida del ejercicio:

Programacin I. Gua 4

Gua4 Ejemplo3
Desarrollar un programa en C# que lea desde teclado dos nmeros. Si el primero es mayor que el segundo se deber
mostrar la suma y la diferencia de dichas cantidades, en caso contrario se deber mostrar el producto y la divisin del
primero respecto al segundo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

static void Main(string[] args)


{
Double x, y, z, w;
Console.Title = "CONDICIONALES";
Console.WriteLine("\tDigitar primer numero:");
x = Double.Parse(Console.ReadLine());
Console.WriteLine("\tDigitar segundo numero:");
y = Double.Parse(Console.ReadLine());
if (x > y)
{
z = x + y;
w = x - y;
Console.WriteLine("\tMOSTRANDO RESULTADOS");
Console.WriteLine("\tSUMA: " + z);
Console.WriteLine("\tRESTA: " + w);
}
else
{
z = x * y;
if (y == 0)
{
Console.WriteLine("\tNo se puede dividir entre CERO");
}
else
{
w = x / y;
Console.WriteLine("\tMOSTRANDO RESULTADOS");
Console.WriteLine("\tMULTIPLICACION: " + z);
Console.WriteLine("\tDIVISION: " + w);
}
}
Console.ReadKey();
}
}
}

Corrida del ejercicio:

Programacin I, Gua 4

Gua4 Ejemplo4
Realice un programa que solicite el nombre de una persona, su edad y su sexo si el sexo es masculino que muestre
en pantalla el mensaje de El Sr. (nombre) ha sido registrado" y si el sexo es femenino que muestre el mensaje "La
Sra. (nombre) ha sido registrada".
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

static void Main(string[] args)


{
// este programa fue hecho por: Pepito Picaflor
Console.Title = " El sexo de una persona";
Int32 edad;
String nombre, sexo;
Console.WriteLine("Digitar tu nombre");
nombre = Console.ReadLine();
Console.WriteLine("Digitar tu edad");
edad = Int32.Parse(Console.ReadLine());
Console.WriteLine("Digitar tu sexo ( Hombre=M y Mujer=F )");
sexo = Console.ReadLine();
if (sexo == "M" || sexo == "m") // instruccion lgica OR
{
Console.WriteLine("\nEl Sr {0} ha sido registrado", nombre); // v
}
else
{
Console.WriteLine("\nLa Sra {0} ha sido registrada", nombre); // f
}
Console.WriteLine("\n\n");
Console.WriteLine("\n----->Fin del programa");
Console.ReadKey();
}

Instruccin Switch
Cuando hay muchas condiciones a evaluar, la instruccin ifelse puede resultar demasiado compleja de manejar.
Una solucin mucho ms limpia en estos casos consiste en usar la instruccin switch. La instruccin switch permite
cualquier valor entero o de cadena con mltiples valores. Cuando se produce una coincidencia se ejecutan todas las
instrucciones asociadas con ella. Esta estructura es muy utilizada a la hora de trabajar con men dentro de las
aplicaciones.

Programacin I. Gua 4

La sintaxis es la siguiente:
switch(expresin_de_control) ----------------- Puede ser int o string
{
case<literal-1>:
Instruccin(es)
break;
.
.
.
case<literal-n>:
Instruccin(es)
break;
default:
Instruccin(es)
}

Gua4Ejemplo5
Se necesita un programa que muestre un men con las siguientes opciones:
1. Suma.
2. Resta.
3. Multiplicacin.
4. Divisin.
5. Raz Cuadrada.
6. Exponenciacin.
7. Salir del programa.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

static void Main(string[] args)


{
int op;
Double x, y, z;
Console.WriteLine("\nDigitar el primer numero:");
x = Double.Parse(Console.ReadLine());
Console.WriteLine("\nDigitar el segundo numero:");
y = Double.Parse(Console.ReadLine());
Console.Title = "SWITCH CASE";
Console.WriteLine("\n\tOPERACIONES MATEMATICAS");
Console.WriteLine("\n\t1. SUMAR");
Console.WriteLine("\n\t2. RESTAR");
Console.WriteLine("\n\t3. MULTIPLICAR");
Console.WriteLine("\n\t4. DIVIDIR");
Console.WriteLine("\n\t5. RAIZ CUADRADA");
Console.WriteLine("\n\t6. POTENCIACION");
Console.WriteLine("\n\t7. SALIR DEL PROGRAMA");
Console.WriteLine("\n\n\t Digite su opcion: ");
op = int.Parse(Console.ReadLine());
switch (op)
{

8
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

Programacin I, Gua 4
case 1:
z = x + y;
Console.WriteLine("\t El resultado de la suma es: " + z);
break;
case 2:
z = x - y;
Console.WriteLine("\t El resultado de la resta es: " + z);
break;
case 3:
z = x * y;
Console.WriteLine("\t El resultado de la multiplicacion es: " + z);
break;
case 4:
if ( y == 0 )
{
Console.WriteLine("\t Division Invalida...");
}
else
{
z = x / y;
Console.WriteLine("\t El resultado de la division es: " + z);
}
break;
case 5:
z = Math.Sqrt(x);
Console.WriteLine("\t La raiz cuadrada del primer numero es " + z);
break;
case 6:
z = Math.Pow(y,2);
Console.WriteLine("\t El cuadrado del segundo numero es " + z);
break;
case 7:
Environment.Exit(0);
break;
default:
Console.WriteLine("\t Opcion no definida.. intente de nuevo");
break;
}
Console.ReadKey();
}
}
}

Programacin I. Gua 4

Corrida del ejercicio:

NOTA: Siempre hay que utilizar las validaciones para que las operaciones matemticas tengan el resultado correcto.

10

Programacin I, Gua 4

Anlisis de Resultados
1. Un postulante a un empleo, realiza un test de capacitacin. Se obtuvo la siguiente informacin: cantidad total de
preguntas que se realizaron y la cantidad de preguntas que contest correctamente. Se pide desarrollar un
programa que ingrese los datos por teclado e informe el nivel del mismo segn el porcentaje de respuestas
correctas que ha tenido y sabiendo que:
Nivel mximo ---------------------------------- Porcentaje >= 90.
Nivel medio ------------------------------------ Porcentaje >= 75% y < 90%.
Nivel regular ----------------------------------- Porcentaje >= 50% y < 75%.
Fuera de nivel --------------------------------- Porcentaje < 50%.
2. Las races reales de la expresin ax2 + bx + c = 0.
Desarrollar un programa para encontrar las races de la ecuacin cuadrtica sabiendo que la frmula a utilizar es:
=

2 4
2

Investigacin Complementaria
1.
2.
3.
4.

Cree un programa que pida 3 nmeros al usuario y determine cul de ellos es el mayor.
Cree un programa que pida 3 nmeros al usuario y determine cul de ellos es el menor.
Cree un programa que pida 2 nmeros al usuario y determine si el primer nmero es mltiplo del segundo.
Desarrollar un programa en C# que acepte las fechas escritas de modo usual y las visualice como nmeros.
Por ejemplo, la entrada: 20, agosto, 2015 debe mostrar una salida as: 20, 08, 2015.
5. Se requiere calcular la edad de un individuo; para ello se va a tener como entrada dos fechas en el formato da
(1 a 31), mes (1 a 12) y un ao (entero de cuatro dgitos), correspondientes a la fecha de nacimiento y la fecha
actual, respectivamente.
Escriba un programa que calcule y muestre la edad del individuo.
Si es la fecha de un beb (menos de un ao de edad), la edad se debe dar en meses y das; en caso contrario, la
edad se calcular en aos.

Bibliografa

Deitel, Harvey M. y Paul J. Deitel, Cmo Programar en C#, Segunda Edicin, Mxico, 2007.

Anotaciones

Vous aimerez peut-être aussi