0% encontró este documento útil (0 votos)
4 vistas33 páginas

Algoritmos en C#: Estructuras Condicionales

El documento presenta varios ejemplos de estructuras condicionales anidadas en C#, incluyendo if/else y if/else if, para resolver problemas de selección múltiple según diferentes condiciones.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas33 páginas

Algoritmos en C#: Estructuras Condicionales

El documento presenta varios ejemplos de estructuras condicionales anidadas en C#, incluyendo if/else y if/else if, para resolver problemas de selección múltiple según diferentes condiciones.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

INGENIERÍA DE SISTEMAS COMPUTACIONALES

FUNDAMENTOS DE
ALGORITMOS
SEMANA 2
2
Ing. Sly Stalim SÁNCHEZ SAAVEDRA
LOGRO DE LA SESIÓN
Al termino de la sesión los estudiantes estarán en la condición de:

❖ Determinar, establecer el tipo de condición múltiple apropiada en


diversos escenarios según el caso propuesto, programando en C# .

❖ Solucionar problemas de selección múltiple que responda a


diferentes respuestas para cada condición establecida.
Temario

❖Estructuras condicionales anidadas

❖Estructura de selección múltiple

❖Taller de casos
ESTRUCTURA
CONDICIONAL ANIDADA
Estructura condicionales anidadas

Permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de
instrucciones especificas.

if (condicion1)
{
//acciones a realizar si
//condición1 es verdadera
}
else
{
if (condicion2)
{
//acciones a realizar si
//condición2 es verdadera
}
else
{
if (condicion3)
{
//acciones a realizar si
//condición3 es verdadera
}
}
}
Ejemplo 1

Desarrollar un programa en C#, donde se solicíte al usuario ingresar un carácter, luego mostrará un
mensaje al usuario si el carácter ingresado es una vocal.

A a, E e, I i, O o, U u
Ejemplo 1

using System; else if (c == 'o' || c == 'O')


{
namespace Ejemplo1 mensaje = ", es una vocal";
{ }
class Program else if (c == 'u' || c == 'U')
{ {
static void Main(string[] args) mensaje = ", es una vocal";
{ }
char c;
string linea, mensaje = "No es vocal"; [Link]("\nResultado: {0} {1}", c, mensaje);
[Link]();
[Link]("Ingresar caracter: "); }
linea = [Link](); }
c = [Link](linea); }

if (c == 'a' || c == 'A')
{
mensaje = ", es una vocal";
}
else if (c == 'e' || c == 'E')
{
mensaje = ", es una vocal";
}
else if (c == 'i' || c == 'I')
{
mensaje = ", es una vocal";
}
Ejemplo 2

Se desea realizar un programa en C# que solicite el monto de la pensión


mensual de la universidad que permita realizar descuentos en las
pensiones a los alumnos que obtengan los siguientes promedios:

• Si un alumno tiene un promedio mayor o igual a 19 se le hará un 20%


de descuento en la universidad.

• Si tiene un promedio mayor o igual a 18 pero menor que 19 el


descuento será del 10%.

• Si tiene un promedio mayor o igual a 17 pero menor que 18 el


descuento será del 5%.

• Si promedia con menos 17 no tendrá descuento.


Ejemplo 2

using System; if (prom >= 18 && prom < 19)


{
namespace Ejemplo2 desc = 0.1;
{ }
class Program else
{ {
static void Main(string[] args) if (prom >= 17 && prom < 18)
{ {
double prom = 0, desc = 0, pens, total = 0; desc = 0.05;
string linea; }
else
[Link]("Ingresar pension mensual: "); {
linea = [Link](); desc = 0.0;
pens = [Link](linea); }
}
[Link]("Ingresar promedio anual: "); }
linea = [Link]();
prom = [Link](linea); total = pens - pens * desc;
[Link]("\n El total Pensión es: {0}", total);
if (prom >= 19) [Link]();
{ }
desc = 0.2; }
} }
else
{
Ejemplo 3

Debido a los excelentes resultado, el restaurante decide


ampliar sus ofertas de acuerdo a la siguiente escala de
consumo, ver tabla.

Determinar el monto del descuento, el sub total, el importe del


impuesto (18%) y el importe a pagar.

Consumo (S/) Descuento (%)


Hasta 100 10
Mayor de 100 y hasta 200 20
Mayor a 200 30
Ejemplo 3

using System; if (c > 100 && c <= 200)


{

{ Ejemplo 3
namespace Ejemplo3
}
md = c * D2;

class Program else


{ {
static void Main(string[] args) md = c * D3;
{ }
}
const double D1 = 0.1;
const double D2 = 0.2; m_igv = (c - md) * IGV;
const double D3 = 0.3; total = c - md + m_igv;
const double IGV = 0.18; sub_tot = total - m_igv;
string linea;
double c, md, m_igv, total, sub_tot; [Link]("Monto descuento (S/)\t: -{0}", md);
[Link]("----------------------------");
[Link]("Ingresar consumo (S/): "); [Link]("Sub total: (S/)\t: {0}", sub_tot);
linea = [Link](); [Link]("Impuesto IGV (S/)\t: {0}", m_igv);
c = [Link](linea); [Link]("----------------------------");
[Link]("Importe pago (S/)\t: {0}", total);
if (c <= 100) [Link](true);
{ }
md = c * D1; }
} }
else
{
Ejemplo 4

Un negocio tiene dos tipos de cliente, Cliente general (G) o


Cliente afiliado (A), recibe dos formas de pago al Contado (C)
o en Plazos (P).

Nos piden crear un programa que al ingresar el monto de la


compra se obtenga el Monto del descuento o el Monto del
Recargo y el Total a Pagar según la siguiente tabla.
Ejemplo 4

using System;
[Link]("Forma de pago (C/P): ");
namespace Ejemplo4 linea = [Link]();
{ Ejemplo 4
class Program
fp = [Link](linea);

{ //Proceso
static void Main(string[] args) if (tc == 'g' || tc == 'G')
{ {
//Constantes if (fp == 'C' || fp == 'c')
const double DESC_G = 0.15; {
const double DESC_A = 0.20; md = mc * DESC_G;
const double REC_G = 0.10; tp = mc - md;
const double REC_A = 0.05; r = "DESCUENTO 15%";
}
//Variables else
double mc, md, tp; {
char tc, fp; md = mc * REC_G;
string linea, r; tp = mc + md;
r = "RECARGO 10%";
//Entrada }
[Link]("Monto de compra (S/): "); }
linea = [Link]();
mc = [Link](linea);

[Link]("Tipo de cliente (G/A): ");


linea = [Link]();
tc = [Link](linea);
Ejemplo 4

else
{

Ejemplo 4
if (fp == 'C' || fp == 'c')
{
md = mc * DESC_A;
tp = mc - md;
r = "DESCUENTO 20%";
}
else
{
md = mc * REC_A;
tp = mc + md;
r = "RECARGO 5%";
}
}

//Salida
[Link]();
[Link](r);
[Link]("Total a pagar: {0}", tp);
[Link]();
}
}
}
Ejemplo 5

Diseñe un algoritmo que pida el ingreso el resultado de 3 dados en base a la


cantidad de seis obtenido y que califique el puntaje obtenido en el
lanzamiento, de acuerdo a lo siguiente:
Tres seis: Oro
Dos seis: Plata
Un seis: Bronce
Ningún seis: Perdió
Ejemplo 5

using System; else


{
namespace Ejemplo5
{ Ejemplo 5
class Program
if ((d1 == 6 && d2 == 6) || (d1 == 6 && d3 == 6)
|| (d2 == 6 && d3 == 6))
{ {
static void Main(string[] args) mensaje = "M. de Plata";
{ }
int d1, d2, d3; else
string mensaje; {
if (d1 == 6 || d2 == 6 || d3 == 6)
[Link]("Ingresar dado 1 (1-6): "); {
d1 = [Link]([Link]()); mensaje = "M. de Bronce";
}
[Link]("Ingresar dado 2 (1-6): "); else
d2 = [Link]([Link]()); {
mensaje = "No gano medallas";
[Link]("Ingresar dado 3 (1-6): "); }
d3 = [Link]([Link]()); }
}
[Link]();
if (d1 == 6 && d2 == 6 && d3 == 6) [Link]("Usted gano: {0} ", mensaje);
{ [Link]();
mensaje = "M. de Oro"; }
} }
}
ESTRUCTURA DE
SELECCIÓN MULTIPLE
Estructura de Selección Múltiple

Es una estructura de comparación múltiple para toma de decisión especializada que permite evaluar una variable con
distintos posibles resultados. Por cada valor posible, existe un caso. Si el contenido de la variable coincide con alguno de
los valores establecidos en los casos, se ejecutan las instrucciones que hay especificadas en éste.
Estructura de Selección Múltiple

string condicion = "";


switch (condicion)
{
case "A": { break; }
case "b":
case "B":
{ break; }
case "c": { break; }
case "d": { break; }
case "e":
case "E": { break; }
default: { break; }
La Expresión es una variable, que debe ser del tipo entera o

} carácter.
Comparación IF ELSE / SWITCH

IF ELSE SWITCH
Las condiciones pueden ser de diferentes tipos de Las condiciones sólo puede ser entero o carácter
datos

Las instrucciones de cada condición terminan cuando Las instrucciones de cada condición termina con la
el bloque termina {} palabra reservada: break

El escenario se remite a comparar cualquier condición El escenario se remite a comparar números enteros o
lógica. caracteres.

La interpretación al lenguaje humano está basado en: La interpretación al lenguaje humano está basado :
“Si esta condición es verdadero ejecutar las “En caso la variable es equivalente al valor X, ejecutar
instrucciones” las instrucciones y salir de bloque.
“Sino, Si la siguiente condición es verdadera, ejecutar
las instrucciones”…
Ejemplo 6

Al ingresar el numero de un mes, devolver la estación del año de


acuerdo a la siguiente tabla.

Mes Estación
1, 2, 3 Verano
4, 5, 6 Otoño
7, 8, 9 Invierno
10, 11, 12 Primavera
Ejemplo 6

using System; est = "* OTOÑO";


break;
namespace Ejemplo6
{ case 7:
class Program case 8:
{ case 9:
static void Main(string[] args) est = "* INVIERNO";
{ break;
int mes;
string est, linea; case 10:
case 11:
[Link]("Ingrese el N°. Mes: "); case 12:
linea = [Link](); est = "* PRIMAVERA";
mes = [Link](linea); break;

switch (mes) default:


{ est = "* ES UN MES NO VALIDo";
break;
case 1: }
case 2:
case 3: [Link]();
est = "* VERANO"; [Link](est);
break; [Link]();
}
case 4: }
case 5: }
case 6:
Ejemplo 7

Una empresa de carga realiza el transporte de frutas, el precio


por la carga está en función al tipo de fruta a transportar y la
distancia en kilómetros que debe recorrer.
Sólo se realiza la carga de un solo tipo de fruta. Calcular el pago
que debe realizarse por esa carga.

Los precios que se muestran en la tabla es por cada caja de frutas


Ejemplo 7

using System; switch ([Link](t_f))


{
namespace Ejemplo7
{ case 'N':
class Program if (d < 30)
{ {
static void Main(string[] args) p = 2;
{ }
char t_f; else
double d, c, p, t_p; {
string linea; p = 4;
}
[Link]("Tipo de fruta (N / M / F): ");
linea = [Link](); break;
t_f = [Link](linea); case 'F':
if (d < 30)
[Link]("Ingresar distancia (KM): "); {
linea = [Link](); p = 6;
d = [Link](linea); }
else
[Link]("Ingresar cantidad(K): "); {
linea = [Link](); p = 9;
c = [Link](linea); }
break;
Ejemplo 7

break;

case 'M':
if (d < 30)
{
p = 3;
}
else
{
p = 5;
}
break;
default:
p = 0;
break;

t_p = c * p;

[Link]("Total a pagar es: {0}", t_p);


[Link]();
}
}
}
Ejemplo 8

Una clínica tiene establecida una tarifa de atención única; por


campaña ofrece descuentos que se aplican sobre esa tarifa
única y que dependen del género de la persona y la
especialidad donde requiere atención.
Se requiere saber el monto a cancelar del paciente.

Precios de las especialidades


Ejemplo 8

using System; switch ([Link](t_g))


{
namespace Ejemplo8
{ case 'F':
class Program
{ if ([Link](t_e) == 'C')
static void Main(string[] args) {
{ tarifa = tarifa - 0.15 * tarifa;
}
char t_g, t_e; else if ([Link](t_e) == 'O')
double tarifa; {
string linea; tarifa = tarifa - 0.10 * tarifa;
}
[Link]("Ingresar sexo (M / F): "); else if ([Link](t_e) == 'D')
linea = [Link](); {
t_g = [Link](linea); tarifa = tarifa - 0.05 * tarifa;
}
[Link]("Especialidad (C / O / D): ");
linea = [Link](); break;
t_e = [Link](linea);

[Link]("Ingresar tarifa (S/): ");


linea = [Link]();
tarifa = [Link](linea);
Ejemplo 8

case 'M':

if ([Link](t_e) == 'C')
{
tarifa = tarifa - 0.10 * tarifa;
}
else if ([Link](t_e) == 'O')
{
tarifa = tarifa - 0.07 * tarifa;
}
else if ([Link](t_e) == 'D')
{
tarifa = tarifa - 0.12 * tarifa;
}

break;
}
[Link]();
[Link]("La tarifa es (S/): {0}", tarifa);
[Link]();
}
}
}
TALLER DE CASOS
Bibliografía

• Ferguson, J., Patterson, B. and Beres, J., 2003. La Biblia De C#. 1st ed. Madrid: Grupo Anaya S.A.

• Bell, D., 2020. C# Para Estudiantes. 1st ed. México: PEARSON EDUCACIÓN,.

• Cosio, L. and Arrioja, N., 2010. C#. 1st ed. Buenos Aires: Manual Users.

• Ruiz García, J., 2020. Libro C# Yellow Book. [online] Jesús Ruiz García – Blog. Available at:
<[Link]

• Tutoriales Ya. 2020. C# Ya. [online] Available at: <[Link]


¿Preguntas o comentarios?

También podría gustarte