UNIVERSIDAD NACIONAL DE E CAJAMARCA
SOLUCIÓN DE LA PRIMERA PRÁCTICA CALIFICADA DE COMPUTACIÓN Y ALGORITMOS II Desarrollar un programa en C#, para cada uno de los siguientes 3 problemas propuestos:
Problema n°1: En una empresa comercial, existen 3 categorías de artículos (A, B, C) y 4 categorías de clientes (excelentes, buenos, regulares y malos) y tienen implementada la siguiente política de descuentos (en %).
Tipo cliente\ Tipo articulo
A
B
C
E: Excelente
40
30
20
B: Bueno
30
20
10
R: regular
20
10
0
0
0
0
M: Malo
Además se sabe que los clientes de tipo E y B pueden pagar en e n efectivo, con cheque o al crédito, los de tipo R solo pueden hacerlo en e n efectivo o con cheque, mientras que los de tipo M sólo pueden hacer compras en efectivo. Lea el tipo de cliente, el tipo de artículo que desea adquirir e indique el descuento y las alternativas de pago que le son permitidas.
UNIVERSIDAD NACIONAL DE E CAJAMARCA
SOLUCIÓN:
Codificación en C# using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace EJERCICIO_N_1 { class Program { static void Main(string[] args) { char cliente; char articulo; double tipopago; System.Console.WriteLine( "ingrese tipo de cliente:"); cliente = Convert.ToChar(Console.ReadLine()); System.Console.WriteLine( "ingrese tipo de articulo:"); articulo = Convert.ToChar(Console.ReadLine()); switch (cliente) { case 'E': Console.WriteLine("el tipo de cliente es exelente" ); { switch (articulo) { case 'A': Console.WriteLine("Tiene un Descuento del: 40%"); Console.WriteLine("el tipo de pago es en: efectivo, cheque o credito"); break; case 'B': Console.WriteLine("Tiene un Descuento del: 30%"); Console.WriteLine("el tipo de pago es en: efectivo, cheque o credito"); break; case 'C': Console.WriteLine("Tiene un Descuento del: 20%"); Console.WriteLine("el tipo de pago es en: efectivo, cheque o credito"); break; }
UNIVERSIDAD NACIONAL DE E CAJAMARCA
} break; case 'B': Console.WriteLine("el tipo de cliente es bueno" ); { switch (articulo) { case 'A': Console.WriteLine("Tiene un Descuento Console.WriteLine("el tipo de pago es cheque o credito"); break; case 'B': Console.WriteLine("Tiene un Descuento Console.WriteLine("el tipo de pago es cheque o credito"); break; case 'C': Console.WriteLine("Tiene un Descuento Console.WriteLine("el tipo de pago es cheque o credito"); break;
del: 30%"); en: efectivo,
del: 20%"); en: efectivo,
del: 10%"); en: efectivo,
} } break; case 'R': Console.WriteLine("el tipo de cliente es regular" ); { switch (articulo) { case 'A': Console.WriteLine("Tiene un Descuento del: 20%"); Console.WriteLine("el tipo de pago es en: efectivo o cheque"); break; case 'B': Console.WriteLine("Tiene un Descuento del: 10%"); Console.WriteLine("el tipo de pago es en: efectivo o cheque"); break; case 'C': Console.WriteLine("Tiene un Descuento del: 0%"); Console.WriteLine("el tipo de pago es en: efectivo o cheque"); break; } } break; case 'M': Console.WriteLine("el tipo de cliente es malo" ); { switch (articulo)
UNIVERSIDAD NACIONAL DE E CAJAMARCA
{ case 'A': Console.WriteLine("Tiene un Descuento Console.WriteLine("el tipo de pago es break; case 'B': Console.WriteLine("Tiene un Descuento Console.WriteLine("el tipo de pago es break; case 'C': Console.WriteLine("Tiene un Descuento Console.WriteLine("el tipo de pago es break; } } break; } Console.Read(); } } }
del: 0%"); en efectivo" );
del: 0%"); en efectivo" );
del: 0%"); en efectivo" );
UNIVERSIDAD NACIONAL DE E CAJAMARCA
Problema n°2: Encuentre la nota promedio del aula, el porcentaje de aprobados y desaprobados de un aula de n alumnos. Se ingresarán la cantidad de alumnos y la nota de cada alumno. (Además se ingresará el género del alumno: M. Masculino, F. Femenino, para luego determinar el porcentaje de hombres y mujeres) SOLUCIÓN:
Codificación en C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EJERCICIO_N_2 { class Program { static void Main(string[] args) { int i, nota, suma_nota = 0, suma_apro = 0, suma_des = 0; Char sexo; Double suma_hombres = 0, suma_mujeres = 0, n; Console.Write("Ingrese cantidad de alumnos:" ); n = Convert.ToDouble(Console.ReadLine()); for (i = 1; i <= n; i++) { Console.Write("Ingrese nota del alumno:" ); nota = Convert.ToInt32(Console.ReadLine()); suma_nota = suma_nota + nota; if (nota > 0 && nota <= 10) { suma_des = suma_des + 1; } else if (nota > 10 && nota <= 20) { suma_apro = suma_apro + 1; }
UNIVERSIDAD NACIONAL DE E CAJAMARCA
Console.Write("Ingrese sexo del estudiante:" ); sexo = Convert.ToChar(Console.ReadLine()); switch (sexo) { case 'H': suma_hombres = suma_hombres + 1; break; default: suma_mujeres = suma_mujeres + 1; break; }
100) + 100) + 100) + 100) +
} }
} Console.Write("La Console.Write("La "%"); Console.Write("La "%"); Console.Write("La "%"); Console.Write("La "%"); Console.Read(); }
nota promedio del aula es: " + (suma_nota / n)); porcentaje de aprobados es: " + ((suma_apro / n) * porcentaje de desaprobados es:
" + ((suma_des / n) *
porcentaje de hombres es:
" + ((suma_hombres / n) *
porcentaje de mujeres es:
" + ((suma_mujeres / n) *
UNIVERSIDAD NACIONAL DE E CAJAMARCA
Problema n°3: En un cajero se muestra un menú de opciones D: Depósito, R: Retiro, S: Saldo y X: Salir. Efectuar dichas operaciones, a partir de un monto inicial ingresado, hasta que se seleccione salir. SOLUCIÓN:
Codificación en C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace EJERCICIO_N_3 { class Program { static void Main(string[] args) { int i; Char opcion; Double monto_inicial , dep=0, saldo=0, retiro=0, monto_final=0; do { Console.Write("Ingrese opcion:"); opcion = Convert.ToChar(Console.ReadLine()); Console.Write("Ingrese monto inicial:"); monto_inicial = Convert.ToInt32(Console.ReadLine());
switch (opcion) { case 'D': Console.Write("Ingrese deposito:"); dep = Convert.ToDouble(Console.ReadLine()); monto_final = monto_inicial + dep; Console.WriteLine("El monto final es: " + monto_final); break; case 'R': Console.Write("Ingrese retiro:"); retiro = Convert.ToDouble(Console.ReadLine()); monto_final = monto_inicial-retiro; Console.WriteLine("El monto final es: " + monto_final); break; case 'S':
UNIVERSIDAD NACIONAL DE E CAJAMARCA
Console.Write(" ingrese saldo:"); saldo = Convert.ToDouble(Console.ReadLine()); monto_final = monto_inicial + saldo; Console.WriteLine("El monto final es: " + monto_final); break; case 'X': monto_inicial = 0; break; } } while (monto_inicial != 0); Console.Write("presione tecla para salir "); Console.Read(); } } }
Problema n°4: En que consiste un arreglo, mencione y explique los tipos que existen; además, Escriba el código (dentro de la función Main) para pedir y mostrar los datos de un arreglo unidimensional de longitud 8.
UNIVERSIDAD NACIONAL DE E CAJAMARCA
SOLUCIÓN:
Definición: Un arreglo es un conjunto de variables que son del mismo tipo de datos. A cada parte de un arreglo se le denomina “elemento”. Los cuales se hacen referencia con el mismo nombre y se almacenan en posiciones consecutivas .
Tipos de arreglos:
A rr eg los uni dimens ionales: Un arreglo unidimensional es un tipo de datos estructurado que está formado por una colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. Los datos que se guarden en los arreglos todos deben ser del mismo tipo A rr eg los multidimens ionales: Es un tipo de dato estructurado, que está compuesto por dimensiones. Para hacer referencia a cada componente del arreglo es necesario utilizar n índices, uno para cada dimensión. Los arreglos de más de una dimensión se llaman arreglos multidimensionales. A rr eg lo con múltiple s ubíndices : Es la representación de tablas de valores, consistiendo de información arreglada en renglones y columnas. Para identificar un elemento particular de la tabla, deberemos de especificar dos subíndices; el primero identifica el renglón del elemento y el segundo identifica la columna del elemento.
Arreglo unidimensional de longitud 8. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication15 { class Program { static void Main(string[] args) { int[] numero = new int[8]; numero[0] = 23; numero[1] = 22; numero[2] = 10;
UNIVERSIDAD NACIONAL DE E CAJAMARCA
numero[3] numero[4] numero[5] numero[6] numero[7]
= = = = =
14; 15; 12; 11; 27;
System.Console.WriteLine("numero System.Console.WriteLine("numero System.Console.WriteLine("numero System.Console.WriteLine("numero System.Console.WriteLine("numero System.Console.WriteLine("numero System.Console.WriteLine("numero System.Console.WriteLine("numero
Console.Read(); } } }
en en en en en en en en
la la la la la la la la
posicion posicion posicion posicion posicion posicion posicion posicion
0: 1: 2: 3: 4: 5: 6: 7:
" + " + " + " + " + " + " + " +
numero[0]); numero[1]); numero[2]); numero[3]); numero[4]); numero[5]); numero[6]); numero[7]);