C Sharp para Estudiantes
C Sharp para Estudiantes
C Sharp para Estudiantes
Facultad: Ingeniería
Escuela: Ingeniería en Computación
Asignatura: Programación I
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).
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:
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.
Material y Equipo
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 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace Guia4_Ejemplo1
8 {
9 class Par
10 {
11 static void Main(string[] args)
12 {
13 int Numero;
14 Console.Title = "VERIFICANDO NUMEROS PARES";
15 Console.Write("\nIngrese un numero:");
16 Numero = int.Parse(Console.ReadLine());
17 if (Numero < 0)
18 {
19 Console.Write("\n\tNumero Negativo...Ingrese un numero positivo");
20 }
4 Programación I, Guía 4
21 else if (Numero % 2 == 0)
22 {
23 Console.Write("\n\tEl numero (" + Numero + ") es par.");
24 if (Numero >= 10 && Numero <= 100)
25 {
26 Console.Write("\n\tEl numero (" + Numero + ") se encuentra en el rango [10-100]");
27 }
28 Else
29 {
30 Console.Write("\n\tEl numero (" + Numero + ") NO se encuentra en el rango [10-100]");
31 }
32 }
33 else
34 {
35 Console.Write("\n\tEl numero ingresado es impar...");
36 }
37 Console.ReadKey();
38 }
39 }
40 }
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 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace Guia4_Ejemplo2
8 {
9 class Program
Programación I. Guía 4 5
10 {
11 static void Main(string[] args)
12 {
13 Double x, y, z, w;
14 Console.Title = "CONDICIONALES";
15 Console.WriteLine("\tDigitar primer numero:");
16 x = Double.Parse(Console.ReadLine());
17 Console.WriteLine("\tDigitar segundo numero:");
18 y = Double.Parse(Console.ReadLine());
19 if (x > y)
20 {
21 z = x + y;
22 w = x - y;
23 Console.WriteLine("\tMOSTRANDO RESULTADOS");
24 Console.WriteLine("\tSUMA: " + z);
25 Console.WriteLine("\tRESTA: " + w);
26 }
27 else
28 {
29 z = x * y;
30 if (y == 0)
31 {
32 Console.WriteLine("\tNo se puede dividir entre CERO");
33 }
34 else
35 {
36 w = x / y;
37 Console.WriteLine("\tMOSTRANDO RESULTADOS");
38 Console.WriteLine("\tMULTIPLICACION: " + z);
39 Console.WriteLine("\tDIVISION: " + w);
40 }
41 }
42 Console.ReadKey();
43 }
44 }
45 }
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:
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 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace Guia4_Ejemplo3
8 {
9 class Opciones
10 {
11 static void Main(string[] args)
12 {
13 int op;
Programación I. Guía 4 7
14 Double x, y, z;
15 Console.WriteLine("\nDigitar el primer numero:");
16 x = Double.Parse(Console.ReadLine());
17 Console.WriteLine("\nDigitar el segundo numero:");
18 y = Double.Parse(Console.ReadLine());
19 Console.Title = "SWITCH CASE";
20 Console.WriteLine("\n\tOPERACIONES MATEMATICAS");
21 Console.WriteLine("\n\t1. SUMAR");
22 Console.WriteLine("\n\t2. RESTAR");
23 Console.WriteLine("\n\t3. MULTIPLICAR");
24 Console.WriteLine("\n\t4. DIVIDIR");
25 Console.WriteLine("\n\t5. RAIZ CUADRADA");
26 Console.WriteLine("\n\t6. POTENCIACION");
27 Console.WriteLine("\n\t7. SALIR DEL PROGRAMA");
28 Console.WriteLine("\n\n\t Digite su opcion: ");
29 op = int.Parse(Console.ReadLine());
30 switch (op)
31 {
32 case 1:
33 z = x + y;
34 Console.WriteLine("\t El resultado de la suma es: " + z);
35 break;
36 case 2:
37 z = x - y;
38 Console.WriteLine("\t El resultado de la resta es: " + z);
39 break;
40 case 3:
41 z = x * y;
42 Console.WriteLine("\t El resultado de la multiplicacion es: " + z);
43 break;
44 case 4:
45 if ( y == 0 )
46 {
47 Console.WriteLine("\t Division Invalida...");
48 }
49 else
50 {
51 z = x / y;
52 Console.WriteLine("\t El resultado de la division es: " + z);
53 }
54 break;
55 case 5:
56 z = Math.Sqrt(x);
57 Console.WriteLine("\t La raiz cuadrada del primer numero es " + z);
58 break;
59 case 6:
60 z = Math.Pow(y,2);
61 Console.WriteLine("\t El cuadrado del segundo numero es " + z);
62 break;
63 case 7:
64 Environment.Exit(0);
65 break;
66 default:
67 Console.WriteLine("\t Opcion no definida.. intente de nuevo");
8 Programación I, Guía 4
68 break;
69 }
70 Console.ReadKey();
71 }
72 }
73 }
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