Tema: “Estructuras de Selección en C#”.

Anuncio
Programación I, Guía 4
1
Facultad: Ingeniería
Escuela: Ingeniería en Computación
Asignatura: Programación I
Tema: “Estructuras de Selección en C#”.
Objetivos



Utilizar las instrucciones de selección “if” e “if..else” para elegir una de varias acciones alternativas.
Conocer la sintaxis de C# para las instrucciones condicionales simples, dobles y múltiples, así como también
la utilidad en la programación.
Aprender a utilizar la estructura y sintaxis del switch-case para la evaluación de condiciones múltiples.
Introducción
Por lo general, las instrucciones en una aplicación se ejecutan una después de la otra, en el orden en que se
escriben. A este proceso se le conoce como ejecución secuencial. Varias instrucciones de C# le permiten
especificar que la siguiente instrucción a ejecutar no es necesariamente la siguiente en la secuencia.
A este se le conoce como transferencia de control.
Estructuras de Selección en C#
C# cuenta con tres tipos de estructuras de selección, que de aquí en adelante denominaremos instrucciones de
selección. La instrucción if realiza (selecciona) una acción si una condición es verdadera, o ignora la acción si la
condición es falsa. La instrucción if…else realiza una acción si una condición es verdadera o realiza una acción
distinta si la condición es falsa. La instrucción switch realiza una de varias acciones distintas, dependiendo del
valor de una expresión (expresión de control).
A la instrucción if se le llama instrucción de selección simple, debido a que selecciona o ignora una acción
individual. A la instrucción if...else se le llama instrucción de selección doble, debido a que selecciona una de
dos acciones distintas (o grupos de acciones). A la instrucción switch se le llama instrucción de selección
múltiple, debido a que selecciona una de varias acciones distintas (o grupo de acciones).
Sintaxis de las Instrucciones Condicionales
Una instrucción if simple responde a la siguiente sintaxis:
if (expresión booleana)
{
Instrucción(es) de condición verdadera.
}
Advertencia:
Las llaves son opcionales si hay una sola acción. Normalmente, es aconsejable añadirlas de todas formas. Su
omisión puede ser causa de fallos inesperados.
2
Programación I, Guía 4
La instrucción if solo garantiza la ejecución de determinadas acciones basándose en una condición verdadera
(true). Se ejecutan o no se ejecutan. Para controlar tanto la condición true como la falsa (false) es necesario utilizar
la instrucción if…else. Su sintaxis en la siguiente:
if (expresión booleana)
{
Instrucción(es) de condición verdadera.
}
else
{
Instrucción(es) de condición falsa.
}
Recordar:
La condición siempre se evalúa en el if. NUNCA se evaluará una condición después de la sentencia else.
Muchas veces vamos a necesitar evaluar más de dos condiciones, por lo que nos encontramos con el siguiente
tipo de estructura, para el cual se muestra la sintaxis e interpretación:
if (condicion1)
{
Bloque de instrucciones que se ejecutan si la condición 1 es verdadera.
}
else if(condicion2)
{
Bloque de código que se ejecuta si la condición 2 es verdadera.
}
else if(condicion n)
{
Bloque de código se la siguiente condición n es verdadera.
}
else
{
Bloque de código que se ejecuta si ninguna de las condiciones previas fue verdadera.
}
Operadores Lógicos
Los operadores lógicos producen un resultado booleano (verdadero o falso) y sus operandos son también valores
lógicos. Nos permiten formular condiciones complejas a partir de condiciones simples. A continuación se muestra
una tabla con las tres compuertas lógicas básicas que nos servirán como operadores lógicos:
OPERADOR
AND
OR
C#
SINTAXIS
COMENTARIO
&&
||
Exp_Lógica && Exp_Lógica
Exp_Lógica || Exp_Lógica
NOT
!
!
Devuelve verdaderos si se cumplen ambas condiciones.
Devuelve verdaderos si se cumple al menos una de las
condiciones.
Niega la condición.
Programación I. Guía 4
3
Nota:
 La operación x && y corresponde a la operación x & y, excepto que y se evalúa solamente si x es true.
 La operación x || y corresponde a la operación x | y, excepto que y se evalúa 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



Guía 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.
Guía_4_Ejemplo_1
Desarrollar un programa que solicite al usuario un número y determine si dicha cantidad es par o impar, en caso de
que el número sea par, el programa deberá verificar si el número 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
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Threading.Tasks;
namespace Guia4_Ejemplo1
{
class Par
{
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");
}
4
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Programación I, Guía 4
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 se encuentra en el rango [10-100]");
}
}
else
{
Console.Write("\n\tEl numero ingresado es impar...");
}
Console.ReadKey();
}
}
}
Corrida del ejercicio:
Guía_4_Ejemplo_2
Desarrollar un programa en C# que lea desde teclado dos números. 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
división del primero respecto al segundo.
1
2
3
4
5
6
7
8
9
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Threading.Tasks;
namespace Guia4_Ejemplo2
{
class Program
Programación I. Guía 4
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
36
37
38
39
40
41
42
43
44
45
{
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:
5
6
Programación I, Guía 4
Instrucciones switch
Cuando hay muchas condiciones a evaluar, la instrucción if…else puede resultar demasiado compleja de manejar.
Una solución mucho más limpia en estos casos consiste en usar la instrucción switch. La instrucción switch permite
cualquier valor entero o de cadena con múltiples 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. La sintaxis es la
siguiente:
switch(expresión_de_control) ----------------- Puede ser int o string
{
case<literal-1>:
Instrucción(es)
break;
.
.
.
case<literal-n>:
Instrucción(es)
break;
default:
Instrucción(es)
}
Guía_4_Ejemplo_3
Se necesita un programa que muestre un menú con las siguientes opciones:
1. Suma.
2. Resta.
3. Multiplicación.
4. División.
5. Raíz Cuadrada.
6. Exponenciación.
7. Salir del programa.
1
2
3
4
5
6
7
8
9
10
11
12
13
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Text;
System.Threading.Tasks;
namespace Guia4_Ejemplo3
{
class Opciones
{
static void Main(string[] args)
{
int op;
Programación I. Guía 4
14
15
16
17
18
19
20
21
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
64
65
66
67
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)
{
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");
7
8
68
69
70
71
72
73
Programación I, Guía 4
break;
}
Console.ReadKey();
}
}
}
Corrida del ejercicio:
NOTA: Siempre hay que utilizar las validaciones para que las operaciones matemáticas tengan el resultado
correcto.
Programación I. Guía 4
9
Análisis de Resultados
1. Cree un programa que pida 3 números al usuario y determine cuál de ellos es el mayor.
2. Un postulante a un empleo, realiza un test de capacitación. Se obtuvo la siguiente información: 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 según el porcentaje de respuestas
correctas que ha tenido y sabiendo que:
 Nivel máximo ---------------------------------- Porcentaje >= 90.
 Nivel medio ------------------------------------ Porcentaje >= 75% y < 90%.
 Nivel regular ----------------------------------- Porcentaje >= 50% y < 75%.
 Fuera de nivel --------------------------------- Porcentaje < 50%.
3. Las raíces reales de la expresión ax2 + bx + c = 0. Desarrollar un programa para encontrar las raíces de la
ecuación cuadrática sabiendo que la fórmula a utilizar es:
−𝑏 ± √𝑏 2 − 4𝑎𝑐
𝑥=
2𝑎
Investigación Complementaria
1. Desarrollar un programa en C# que acepte las fechas escritas de modo usual y las visualice como números.
Por ejemplo, la entrada: 20, agosto, 2015 debe mostrar una salida así: 20, 08, 2015.
2. Se requiere calcular la edad de un individuo; para ello se va a tener como entrada dos fechas en el formato día
(1 a 31), mes (1 a 12) y un año (entero de cuatro dígitos), 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 año de edad), la edad se debe dar en meses y días; en caso contrario, la edad se calculará
en años.
Bibliografía

Deitel, Harvey M. y Paul J. Deitel, Cómo Programar en C#, Segunda Edición, México, 2007.
Anotaciones
Descargar