+ All Categories
Home > Documents > Solucion de Las Clases

Solucion de Las Clases

Date post: 03-Jun-2018
Category:
Upload: marilin-perez
View: 234 times
Download: 0 times
Share this document with a friend

of 47

Transcript
  • 8/12/2019 Solucion de Las Clases

    1/47

    Solucion clase 1: Estructura de vector

    using System;

    using System.Collections.Generic;using System.Linq;using System.Text;

    namespace PruebaVector4{

    class PruebaVector4{

    private int[] vec;

    public void Cargar(){

    vec=new int[8];for(int f = 0; f < 8; f++){

    Console.Write("Ingrese elemento:");string linea;linea = Console.ReadLine();vec[f]=int.Parse(linea);

    }}

    public void AcumularElementos()

    {int suma=0;for(int f = 0; f < 8; f++){

    suma=suma+vec[f];}Console.WriteLine("La suma de los 8 elementos

    es:"+suma);}

    public void AcumularMayores36()

    {int suma=0;for(int f = 0; f < 8; f++){

    if (vec[f] > 36){

    suma=suma+vec[f];}

  • 8/12/2019 Solucion de Las Clases

    2/47

    }Console.WriteLine("La suma de los elementos

    mayores a 36 es:"+suma);}

    public void CantidadMayores50(){

    int cant=0;for(int f = 0; f < 8; f++){

    if (vec[f] > 50){

    cant++;}

    }Console.WriteLine("La cantidad de valores mayores

    a 50 es:"+cant);Console.ReadKey();}

    static void Main(string[] args){

    PruebaVector4 pv = new PruebaVector4();pv.Cargar();pv.AcumularElementos();pv.AcumularMayores36();pv.CantidadMayores50();

    }}

    }

    using System;using System.Collections.Generic;using System.Linq;using System.Text;

    namespace PruebaVector5{

    class PruebaVector5{

    private int[] vec1;private int[] vec2;private int[] vecSuma;

  • 8/12/2019 Solucion de Las Clases

    3/47

    public void Cargar(){

    vec1=new int[4];vec2=new int[4];

    Console.WriteLine("Carga del primer vector.");for(int f = 0;f < 4; f++){

    Console.Write("Ingrese elemento:");string linea;linea=Console.ReadLine();vec1[f]=int.Parse(linea);

    }Console.WriteLine("Carga del segundo vector.");for(int f = 0; f < 4; f++){

    Console.Write("Ingrese elemento:");string linea;linea = Console.ReadLine();vec2[f] = int.Parse(linea);

    }}

    public void SumarizarVectores(){

    vecSuma=new int[4];for(int f = 0;f < 4; f++){

    vecSuma[f]=vec1[f]+vec2[f];}Console.WriteLine("Vector resultante.");for(int f = 0; f < 4; f++){

    Console.WriteLine(vecSuma[f]);}Console.ReadKey();

    }

    static void Main(string[] args)

    {PruebaVector5 pv = new PruebaVector5();pv.Cargar();pv.SumarizarVectores();

    }}

    }

  • 8/12/2019 Solucion de Las Clases

    4/47

    using System;using System.Collections.Generic;

    using System.Linq;using System.Text;

    namespace PruebaVector6{

    class PruebaVector6{

    private int[] cursoa;private int[] cursob;private int[] vecSuma;

    public void Cargar(){cursoa=new int[5];cursob=new int[5];Console.WriteLine("Carga de notas del curso A");for(int f = 0; f < 5; f++){

    Console.Write("Ingrese nota:");string linea;linea = Console.ReadLine();cursoa[f]=int.Parse(linea);

    }Console.WriteLine("Carga del notas del curso B");for(int f = 0; f < 5; f++){

    Console.Write("Ingrese nota:");string linea;linea = Console.ReadLine();cursob[f] =int.Parse(linea);

    }}

    public void CalcularPromedios()

    {int suma1=0;int suma2=0;for(int f=0;f

  • 8/12/2019 Solucion de Las Clases

    5/47

    int promedioa=suma1/5;int promediob=suma2/5;if (promedioa>promediob){

    Console.WriteLine("El curso A tiene un

    promedio mayor.");}else{

    Console.WriteLine("El curso B tiene unpromedio mayor.");

    }Console.ReadKey();

    }

    static void Main(string[] args)

    { PruebaVector6 pv = new PruebaVector6();pv.Cargar();pv.CalcularPromedios();

    }}

    }

    using System;using System.Collections.Generic;using System.Linq;using System.Text;

    namespace PruebaVector7{

    class PruebaVector7{

    private int[] vec;

    public void Cargar(){

    vec=new int[10];for(int f = 0; f < 10; f++){

    Console.Write("Ingrese elemento:");string linea = Console.ReadLine();vec[f]=int.Parse(linea);

  • 8/12/2019 Solucion de Las Clases

    6/47

    }}

    public void VerificarOrdenado(){

    int orden=1;for(int f = 0; f < 9; f++){

    if (vec[f+1] < vec[f]){

    orden=0;}

    }if (orden==1){

    Console.WriteLine("Esta ordenado de menor a

    mayor"); }else{

    Console.WriteLine("No esta ordenado de menora mayor");

    }Console.ReadKey();

    }

    static void Main(string[] args){

    PruebaVector7 pv = new PruebaVector7();pv.Cargar();pv.VerificarOrdenado();

    }}

    }

  • 8/12/2019 Solucion de Las Clases

    7/47

    - Vector (Tamao de un vector)

    using System;using System.Collections.Generic;using System.Linq;using System.Text;

    namespace PruebaVector9{

    class PruebaVector9{

    private int[] vec;

    public void Cargar(){

    Console.Write("Cuantos elementos tiene el vector:");string linea=Console.ReadLine();int n;

    n=int.Parse(linea);vec=new int[n];for(int f = 0; f < vec.Length; f++){

    Console.Write("Ingrese elemento:");linea=Console.ReadLine();vec[f]=int.Parse(linea);

    }}

    public void AcumularElementos(){

    int suma=0;

    for(int f = 0; f < vec.Length; f++){

    suma=suma+vec[f];}Console.WriteLine("La suma de los elementos

    es:"+suma);Console.ReadKey();

    }

    static void Main(string[] args){

    PruebaVector9 pv = new PruebaVector9();

    pv.Cargar();pv.AcumularElementos();

    }}

    }

  • 8/12/2019 Solucion de Las Clases

    8/47

    -Vectores (mayor y menor elemento)using System;using System.Collections.Generic;using System.Linq;

    using System.Text;

    namespace PruebaVector12{

    class PruebaVector12{

    private int[] vec;private int menor;

    public void Cargar(){

    Console.Write("Cuantos elementos desea cargar:");string linea;linea = Console.ReadLine();int n=int.Parse(linea);vec=new int[n];for(int f=0;f < vec.Length;f++){

    Console.Write("Ingrese componente:");linea = Console.ReadLine();vec[f]=int.Parse(linea);

    }}

    public void MenorElemento(){

    menor=vec[0];for(int f=1;f < vec.Length;f++){

    if (vec[f] < menor){

    menor=vec[f];}

    }

    Console.WriteLine("El elemento menor es:"+menor);}

    public void RepiteMenor(){

    int cant=0;for(int f=0;f < vec.Length;f++){

  • 8/12/2019 Solucion de Las Clases

    9/47

    if (vec[f]==menor){

    cant++;}

    }

    if (cant > 1){

    Console.WriteLine("Se repite el menor en elvector.");

    }else{

    Console.WriteLine("No se repite el menor enel vector.");

    }Console.ReadLine();

    }

    static void Main(string[] args){

    PruebaVector12 pv = new PruebaVector12();pv.Cargar();pv.MenorElemento();pv.RepiteMenor();

    }}

    }

    -Vectores (ordenamiento)using System;using System.Collections.Generic;using System.Linq;using System.Text;

    namespace PruebaVector15{

    class PruebaVector15{private int[] vec;

    public void Cargar(){

    Console.Write("Cuantos elementos tendr elvector:");

  • 8/12/2019 Solucion de Las Clases

    10/47

    string linea;linea = Console.ReadLine();int cant;cant=int.Parse(linea);vec=new int[cant];

    for(int f=0;f < vec.Length;f++){

    Console.Write("Ingrese elemento:");linea = Console.ReadLine();vec[f]=int.Parse(linea);

    }}

    public void Ordenar(){

    for (int k = 0; k < vec.Length; k++)

    { for (int f = 0; f < vec.Length - 1 - k; f++){

    if (vec[f] > vec[f + 1]){

    int aux;aux = vec[f];vec[f] = vec[f + 1];vec[f + 1] = aux;

    }}

    }}

    public void Imprimir(){

    Console.WriteLine("Vector ordenados de menor amayor.");

    for(int f=0;f < vec.Length;f++){

    Console.WriteLine(vec[f]);}Console.ReadKey();

    }

    static void Main(string[] args){

    PruebaVector15 pv = new PruebaVector15();pv.Cargar();pv.Ordenar();

  • 8/12/2019 Solucion de Las Clases

    11/47

    pv.Imprimir();}

    }}

    -

    Vectores (ordenamiento convectores paralelos)using System;using System.Collections.Generic;using System.Linq;using System.Text;

    namespace PruebaVector17{

    class PruebaVector17{

    private string[] paises;private int[] habitantes;

    public void Cargar(){

    paises=new string[5];habitantes=new int[5];Console.WriteLine("Carga de paises y

    habitantes");for(int f=0;f < paises.Length;f++)

    {Console.Write("Ingese el nombre del pais:");paises[f]=Console.ReadLine();Console.Write("Ingrese la cantidad de

    habitantes:");string linea;linea = Console.ReadLine();habitantes[f]=int.Parse(linea);

    }}

    public void OrdenarPorNombres(){

    for (int k = 0; k < paises.Length; k++){

    for (int f = 0; f < paises.Length - 1 - k;f++)

    {

  • 8/12/2019 Solucion de Las Clases

    12/47

    if (paises[f].CompareTo(paises[f + 1]) >0)

    {string auxpais;auxpais = paises[f];

    paises[f] = paises[f + 1];paises[f + 1] = auxpais;int auxhabitante;auxhabitante = habitantes[f];habitantes[f] = habitantes[f + 1];habitantes[f + 1] = auxhabitante;

    }}

    }}

    public void OrdenarPorHabitantes(){for (int k = 0; k < paises.Length; k++){

    for (int f = 0; f < paises.Length - 1 - k;f++)

    {if (habitantes[f] < habitantes[f + 1]){

    string auxpais;auxpais = paises[f];paises[f] = paises[f + 1];paises[f + 1] = auxpais;int auxhabitante;auxhabitante = habitantes[f];habitantes[f] = habitantes[f + 1];habitantes[f + 1] = auxhabitante;

    }}

    }}

    public void Imprimir()

    {for(int f=0;f < paises.Length;f++){

    Console.WriteLine(paises[f] + " - " +habitantes[f]);

    }}

  • 8/12/2019 Solucion de Las Clases

    13/47

    static void Main(string[] args){

    PruebaVector17 pv = new PruebaVector17();pv.Cargar();pv.OrdenarPorNombres();

    Console.WriteLine("Ordenados alfabticamente");pv.Imprimir();pv.OrdenarPorHabitantes();Console.WriteLine("Ordenados por cantidad de

    habitnates");pv.Imprimir();Console.ReadKey();

    }}

    }

    -Estructura de datos tipo matrizusing System;using System.Collections.Generic;using System.Linq;using System.Text;

    namespace Matriz4

    { class Matriz4{

    private int[,] mat;

    public void Cargar(){

    mat=new int[2,5];Console.WriteLine("Carga de la matriz por

    columna:");for(int c = 0; c < 5; c++){

    for(int f = 0; f < 2; f++){

    Console.Write("Ingrese componente " + "de la fila " + f + " y la columna "+ c + " :");

    string linea;linea = Console.ReadLine();mat[f,c]=int.Parse(linea);

    }

  • 8/12/2019 Solucion de Las Clases

    14/47

    }}

    public void Imprimir(){

    for(int f = 0; f < 2; f++){

    for(int c = 0; c < 5; c++){

    Console.Write(mat[f,c]+" ");}Console.WriteLine();

    }Console.ReadKey();

    }

    static void Main(string[] args){Matriz4 ma = new Matriz4();ma.Cargar();ma.Imprimir();

    }}

    }

    -Matrices (cantidad de filas y columnas)using System;using System.Collections.Generic;using System.Linq;using System.Text;

    namespace Matriz7{

    class Matriz7{

    private int[,] mat;

    public void Cargar()

    {Console.Write("Cuantas fila tiene la matriz:");string linea;linea=Console.ReadLine();int filas=int.Parse(linea);Console.Write("Cuantas columnas tiene la

    matriz:");linea=Console.ReadLine();

  • 8/12/2019 Solucion de Las Clases

    15/47

    int columnas=int.Parse(linea);mat=new int[filas,columnas];for(int f = 0; f < mat.GetLength(0); f++){

    for(int c = 0;c < mat.GetLength(1); c++)

    {Console.Write("Ingrese componente:");linea = Console.ReadLine();mat[f,c]=int.Parse(linea);

    }}

    }

    public void Intercambiar(){

    for (int c = 0; c < mat.GetLength(0); c++)

    { int aux = mat[0,c];mat[0,c] = mat[1,c];mat[1,c] = aux;

    }}

    public void Imprimir(){

    for(int f = 0; f < mat.GetLength(0); f++){

    for(int c = 0; c < mat.GetLength(1); c++){

    Console.Write(mat[f,c]+" ");}Console.WriteLine();

    }Console.ReadKey();

    }

    static void Main(string[] args){

    Matriz7 ma = new Matriz7();

    ma.Cargar();ma.Intercambiar();ma.Imprimir();

    }}

    }

  • 8/12/2019 Solucion de Las Clases

    16/47

    using System;using System.Collections.Generic;using System.Linq;

    using System.Text;

    namespace Matriz8{

    class Matriz8{

    private int[,] mat;

    public void Cargar(){

    Console.Write("Cuantas fila tiene la matriz:");

    string linea;linea=Console.ReadLine();int filas=int.Parse(linea);Console.Write("Cuantas columnas tiene la

    matriz:");linea=Console.ReadLine();int columnas=int.Parse(linea);mat=new int[filas,columnas];for(int f = 0; f < mat.GetLength(0); f++){

    for(int c = 0; c < mat.GetLength(1); c++){

    Console.Write("Ingrese componente:");linea = Console.ReadLine();mat[f,c]=int.Parse(linea);

    }}

    }

    public void ImprimirVertices(){

    Console.WriteLine("Vrtice superior izquierdo:");Console.WriteLine(mat[0,0]);

    Console.WriteLine("Vrtice superior derecho:");Console.WriteLine(mat[0,mat.GetLength(1)-1]);

    Console.WriteLine("Vrtice inferior izquierdo:");Console.WriteLine(mat[mat.GetLength(0)-1,0]);

    Console.WriteLine("Vrtice inferior derecho:");Console.WriteLine(mat[mat.GetLength(0)-

    1,mat.GetLength(1)-1]);Console.ReadKey();

  • 8/12/2019 Solucion de Las Clases

    17/47

    }

    static void Main(string[] args){

    Matriz8 ma = new Matriz8();

    ma.Cargar();ma.ImprimirVertices();

    }}

    }

    -Matrices y vectores paralelosusing System;using System.Collections.Generic;using System.Linq;using System.Text;

    namespace Matriz10{

    class Matriz10{

    private string[] paises;private int[,] tempmen;private int[] temptri;

    public void Cargar(){

    paises=new String[4];tempmen=new int[4,3];for(int f = 0; f < paises.Length; f++){

    Console.Write("Ingrese el nombre del pas:");paises[f]=Console.ReadLine();for(int c = 0; c < tempmen.GetLength(1); c++){

    Console.Write("Ingrese temperaturamensual:");

    string linea = Console.ReadLine();

    tempmen[f,c]=int.Parse(linea);}

    }}

    public void ImprimirTempMensuales(){

    for(int f = 0; f < paises.Length; f++)

  • 8/12/2019 Solucion de Las Clases

    18/47

    {Console.Write("Pais:" + paises[f]+":");for(int c = 0; c < tempmen.GetLength(1); c++){

    Console.Write(tempmen[f,c]+" ");

    }Console.WriteLine();

    }}

    public void CalcularTemperaturaTri(){

    temptri = new int[4];for (int f = 0; f < tempmen.GetLength(0); f++){

    int suma = 0;

    for (int c = 0; c < tempmen.GetLength(1);c++){

    suma = suma + tempmen[f,c];}temptri[f] = suma / 3;

    }}

    public void ImprimirTempTrimestrales(){

    Console.WriteLine("Temperaturas trimestrales.");for(int f = 0; f < paises.Length; f++){

    Console.WriteLine(paises[f]+" "+temptri[f]);}

    }

    public void PaisMayorTemperaturaTri(){

    int may=temptri[0];string nom=paises[0];for(int f = 0; f < paises.Length; f++)

    {if (temptri[f] > may){

    may=temptri[f];nom=paises[f];

    }}

  • 8/12/2019 Solucion de Las Clases

    19/47

    Console.WriteLine("Pais con temperaturatrimestral mayor es "+ nom + " que tiene una temperatura de"+may);

    }

    static void Main(string[] args){

    Matriz10 ma = new Matriz10();ma.Cargar();ma.ImprimirTempMensuales();ma.CalcularTemperaturaTri();ma.ImprimirTempTrimestrales();ma.PaisMayorTemperaturaTri();Console.ReadKey();

    }}

    }

    -Matrices irregulares o dentadasusing System;using System.Collections.Generic;using System.Linq;using System.Text;

    namespace MatrizIrregular2{

    class MatrizIrregular2

    {private int[][] mat;

    public void Cargar(){

    mat=new int[5][];for(int f = 0; f < mat.Length; f++){

    mat[f]=new int[f+1];for(int c = 0; c < mat[f].Length; c++){

    Console.Write("Ingrese componente:");string linea = Console.ReadLine();mat[f][c]=int.Parse(linea);

    }}

    }

    public void Imprimir()

  • 8/12/2019 Solucion de Las Clases

    20/47

    {for(int f = 0; f < mat.Length; f++){

    for(int c = 0; c < mat[f].Length; c++){

    Console.Write(mat[f][c]+" ");}Console.WriteLine();

    }Console.ReadKey();

    }

    static void Main(string[] args){

    MatrizIrregular2 ma = new MatrizIrregular2();ma.Cargar();

    ma.Imprimir();}}

    }

    using System;using System.Collections.Generic;using System.Linq;using System.Text;

    namespace MatrizIrregular3{

    class MatrizIrregular3{

    private string[] nombres;private int[][] dias;

    public void Cargar(){

    nombres=new string[3];

    dias=new int[3][];for(int f = 0; f < nombres.Length; f++){

    Console.Write("Ingrese el nombre delempleado:");

    nombres[f]=Console.ReadLine();Console.Write("Cuantas das falt el

    empleado:");

  • 8/12/2019 Solucion de Las Clases

    21/47

    string linea = Console.ReadLine();int faltas=int.Parse(linea);dias[f]=new int[faltas];for(int c = 0; c < dias[f].Length; c++){

    Console.Write("Ingrese nro de da:");linea = Console.ReadLine();dias[f][c]=int.Parse(linea);

    }}

    }

    public void Inasistencias(){

    for(int f = 0; f < nombres.Length; f++){

    Console.WriteLine(nombres[f] + " falt " +dias[f].Length + " das");}

    }

    public void EmpleadoMensosFaltas(){

    int faltas=dias[0].Length;string nom=nombres[0];for(int f = 1; f < dias.Length; f++){

    if (dias[f].Length < faltas){

    faltas=dias[f].Length;nom=nombres[f];

    }}Console.WriteLine("El empleado que falt menos es

    "+nom+" con "+faltas+" faltas.");Console.ReadKey();

    }

    static void Main(string[] args)

    {MatrizIrregular3 ma = new MatrizIrregular3();ma.Cargar();ma.Inasistencias();ma.EmpleadoMensosFaltas();

    }}

    }

  • 8/12/2019 Solucion de Las Clases

    22/47

    -Estructuras dinmicas: Listas tipoPilausing System;

    using System.Collections.Generic;using System.Linq;using System.Text;

    namespace ListasTipoPila1{

    class Pila{

    class Nodo{

    public int info;

    public Nodo sig;}

    private Nodo raiz;

    public Pila(){

    raiz = null;}

    public void Insertar(int x){

    Nodo nuevo;nuevo = new Nodo();nuevo.info = x;if (raiz == null){

    nuevo.sig = null;raiz = nuevo;

    }else{

    nuevo.sig = raiz;

    raiz = nuevo;}

    }

    public int Extraer(){

    if (raiz != null){

  • 8/12/2019 Solucion de Las Clases

    23/47

    int informacion = raiz.info;raiz = raiz.sig;return informacion;

    }else

    {return int.MaxValue;

    }}

    public void Imprimir(){

    Nodo reco=raiz;Console.WriteLine("Listado de todos los elementos

    de la pila.");while (reco!=null)

    { Console.Write(reco.info+"-");reco=reco.sig;

    }Console.WriteLine();

    }

    public bool Vacia(){

    if (raiz == null){

    return true;}else{

    return false;}

    }

    public int Cantidad(){

    int cant = 0;Nodo reco = raiz;

    while (reco != null){

    cant++;reco = reco.sig;

    }return cant;

    }

  • 8/12/2019 Solucion de Las Clases

    24/47

    public int Retornar(){

    if (raiz != null){

    int informacion = raiz.info;

    return informacion;}else{

    return int.MaxValue;}

    }

    static void Main(string[] args){

    Pila pila1=new Pila();pila1.Insertar(10);pila1.Insertar(40);pila1.Insertar(3);pila1.Imprimir();Console.WriteLine("Extraemos de la

    pila:"+pila1.Extraer());pila1.Imprimir();Console.WriteLine("Retornamos primero de la

    pila:"+pila1.Retornar());pila1.Imprimir();Console.ReadKey();

    }}

    }

    -Estructuras dinmicas: Listas tipoCola -Problemas de aplicacinArchivo: Cola.cs

    using System;

    using System.Collections.Generic;using System.Linq;using System.Text;

    namespace ListaTipoCola3{

    class Cola{

  • 8/12/2019 Solucion de Las Clases

    25/47

    class Nodo{

    public int info;public Nodo sig;

    }

    private Nodo raiz, fondo;

    public Cola(){

    raiz = null;fondo = null;

    }

    public bool Vacia(){

    if (raiz == null)return true;else

    return false;}

    public void Insertar(int info){

    Nodo nuevo;nuevo = new Nodo();nuevo.info = info;nuevo.sig = null;if (Vacia()){

    raiz = nuevo;fondo = nuevo;

    }else{

    fondo.sig = nuevo;fondo = nuevo;

    }}

    public int Extraer(){

    if (!Vacia()){

    int informacion = raiz.info;if (raiz == fondo){

  • 8/12/2019 Solucion de Las Clases

    26/47

    raiz = null;fondo = null;

    }else{

    raiz = raiz.sig;}return informacion;

    }else

    return int.MaxValue;}

    public int Cantidad(){

    int cant = 0;

    Nodo reco = raiz;while (reco != null){

    cant++;reco = reco.sig;

    }return cant;

    }}

    }

    Archivo: Form1.cs

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

    namespace ListaTipoCola3{

    public partial class Form1 : Form{

    public Form1(){

    InitializeComponent();}

  • 8/12/2019 Solucion de Las Clases

    27/47

    private void button1_Click(object sender, EventArgs

    e){

    Random ale = new Random();

    int estado1 = 0, estado2 = 0, estado3 = 0;int marchan = 0;int llegada = 2 + ale.Next(0, 2);int salida1 = -1, salida2 = -1, salida3 = -1;int cantAte1 = 0, cantAte2 = 0, cantAte3 = 0;int tiempoEnCola = 0;int cantidadEnCola = 0;Cola cola1 = new Cola();Cola cola2 = new Cola();Cola cola3 = new Cola();for (int minuto = 0; minuto < 600; minuto++)

    { if (llegada == minuto){

    if (estado1 == 0){

    estado1 = 1;salida1 = minuto + 7 + ale.Next(0,

    5);}else{

    if (estado2 == 0){

    estado2 = 1;salida2 = minuto + 7 +

    ale.Next(0, 5);}else{

    if (estado3 == 0){

    estado3 = 1;salida3 = minuto + 7 +

    ale.Next(0, 5);}else{

    if (cola1.Cantidad() == 6 &&cola2.Cantidad() == 6 && cola3.Cantidad() == 6)

    {marchan++;

  • 8/12/2019 Solucion de Las Clases

    28/47

    }else{

    if (cola1.Cantidad()

  • 8/12/2019 Solucion de Las Clases

    29/47

    cantAte2++;estado2 = 0;if (!cola2.Vacia()){

    estado2 = 1;

    int m = cola2.Extraer();salida2 = minuto + 7 + ale.Next(0,

    5);tiempoEnCola = tiempoEnCola + (minuto

    - m);cantidadEnCola++;

    }}if (salida3 == minuto){

    cantAte3++;

    estado3 = 0;if (!cola3.Vacia()){

    estado3 = 1;int m = cola3.Extraer();salida3 = minuto + 7 + ale.Next(0,

    5);tiempoEnCola = tiempoEnCola + (minuto

    - m);cantidadEnCola++;

    }}

    }label1.Text="Clientes atendidos por caja: caja1="

    + cantAte1.ToString() + " caja2=" + cantAte2.ToString() + "caja3=" + cantAte3.ToString();

    label2.Text="Se marchan sin hacer compras:" +marchan.ToString();

    if (cantidadEnCola > 0){

    int tiempoPromedio = tiempoEnCola /cantidadEnCola;

    label3.Text="Tiempo promedio en cola:" +

    tiempoPromedio.ToString();}

    }}

    }

  • 8/12/2019 Solucion de Las Clases

    30/47

    -Estructuras dinmicas: Listasgenricasusing System;

    using System.Collections.Generic;using System.Linq;using System.Text;

    namespace ListaGenerica2{

    class ListaGenerica{

    class Nodo{

    public int info;

    public Nodo sig;}

    private Nodo raiz;

    public ListaGenerica(){

    raiz = null;}

    void InsertarPrimero(int x){

    Nodo nuevo = new Nodo();nuevo.info = x;nuevo.sig = raiz;raiz = nuevo;

    }

    public void InsertarUtlimo(int x){

    Nodo nuevo = new Nodo();nuevo.info = x;if (raiz == null)

    raiz = nuevo;else{

    Nodo reco = raiz;while (reco.sig != null){

    reco = reco.sig;}

  • 8/12/2019 Solucion de Las Clases

    31/47

    reco.sig = nuevo;}

    }

    public void InsertarSegundo(int x)

    {if (raiz != null){

    Nodo nuevo = new Nodo();nuevo.info = x;if (raiz.sig == null){

    //Hay un solo nodo.raiz.sig = nuevo;

    }else

    { nuevo.sig = raiz.sig;raiz.sig = nuevo;

    }}

    }

    public void InsertarAnteUltimo(int x){

    if (raiz != null){

    Nodo nuevo = new Nodo();nuevo.info = x;if (raiz.sig == null){

    //Hay un solo nodo.nuevo.sig = raiz;raiz = nuevo;

    }else{

    Nodo atras = raiz;Nodo reco = raiz.sig;

    while (reco.sig != null){

    atras = reco;reco = reco.sig;

    }nuevo.sig = atras.sig;atras.sig = nuevo;

    }

  • 8/12/2019 Solucion de Las Clases

    32/47

  • 8/12/2019 Solucion de Las Clases

    33/47

    {Nodo reco = raiz;while (reco != null){

    Console.Write (reco.info + "-");

    reco = reco.sig;}Console.WriteLine();

    }

    public void BorrarMayor(){

    if (raiz != null){

    Nodo reco = raiz;int may = raiz.info;

    while (reco != null){if (reco.info > may){

    may = reco.info;}reco = reco.sig;

    }reco = raiz;Nodo atras = raiz;while (reco != null){

    if (reco.info == may){

    if (reco == raiz){

    raiz = raiz.sig;atras = raiz;reco = raiz;

    }else{

    atras.sig = reco.sig;

    reco = reco.sig;}

    }else{

    atras = reco;reco = reco.sig;

    }

  • 8/12/2019 Solucion de Las Clases

    34/47

    }}

    }

    static void Main(string[] args){

    ListaGenerica lg=new ListaGenerica();lg.InsertarPrimero (10);lg.InsertarPrimero(45);lg.InsertarPrimero(23);lg.InsertarPrimero(89);lg.Imprimir();Console.WriteLine("Insertamos un nodo al

    final:");lg.InsertarUtlimo(160);

    lg.Imprimir();Console.WriteLine("Insertamos un nodo en lasegunda posicin:");

    lg.InsertarSegundo(13);lg.Imprimir();Console.WriteLine("Insertamos un nodo en la

    anteultima posicin:");lg.InsertarAnteUltimo(600);lg.Imprimir();Console.WriteLine("Borramos el primer nodo de la

    lista:");lg.BorrarPrimero();lg.Imprimir();Console.WriteLine("Borramos el segundo nodo de la

    lista:");lg.BorrarSegundo();lg.Imprimir();Console.WriteLine("Borramos el ultimo nodo de la

    lista:");lg.BorrarUltimo();lg.Imprimir();Console.WriteLine("Borramos el mayor de la

    lista:");

    lg.BorrarMayor();lg.Imprimir();Console.ReadKey();

    }}

    }

  • 8/12/2019 Solucion de Las Clases

    35/47

    -Estructuras dinmicas: Listasgenricas doblemente encadenadasusing System;

    using System.Collections.Generic;using System.Linq;using System.Text;

    namespace ListaGenericaDoble2{

    class ListaGenericaDoble{

    class Nodo{

    public int info;

    public Nodo ant, sig;}

    private Nodo raiz;

    public ListaGenericaDoble(){

    raiz = null;}

    void InsertarPrimero(int x){

    Nodo nuevo = new Nodo();nuevo.info = x;nuevo.sig = raiz;if (raiz != null)

    raiz.ant = nuevo;raiz = nuevo;

    }

    public void InsertarUtlimo(int x){

    Nodo nuevo = new Nodo();

    nuevo.info = x;if (raiz == null)

    raiz = nuevo;else{

    Nodo reco = raiz;while (reco.sig != null){

  • 8/12/2019 Solucion de Las Clases

    36/47

    reco = reco.sig;}reco.sig = nuevo;nuevo.ant = reco;

    }

    }

    public void InsertarSegundo(int x){

    if (raiz != null){

    Nodo nuevo = new Nodo();nuevo.info = x;if (raiz.sig == null){

    //Hay un solo nodo.

    raiz.sig = nuevo;nuevo.ant = raiz;}else{

    Nodo tercero = raiz.sig;nuevo.sig = tercero;tercero.ant = nuevo;raiz.sig = nuevo;nuevo.ant = raiz;

    }}

    }

    public void InsertarAnteUltimo(int x){

    if (raiz != null){

    Nodo nuevo = new Nodo();nuevo.info = x;if (raiz.sig == null){

    //Hay un solo nodo.

    nuevo.sig = raiz;raiz = nuevo;

    }else{

    Nodo reco = raiz;while (reco.sig != null){

  • 8/12/2019 Solucion de Las Clases

    37/47

    reco = reco.sig;}Nodo anterior = reco.ant;nuevo.sig = reco;nuevo.ant = anterior;

    anterior.sig = nuevo;reco.ant = nuevo;

    }}

    }

    public void BorrarPrimero(){

    if (raiz != null){

    raiz = raiz.sig;

    }}

    public void BorrarSegundo(){

    if (raiz != null){

    if (raiz.sig != null){

    Nodo tercero = raiz.sig;tercero = tercero.sig;raiz.sig = tercero;if (tercero != null)

    tercero.ant = raiz;}

    }}

    public void BorrarUltimo(){

    if (raiz != null){

    if (raiz.sig == null)

    {raiz = null;

    }else{

    Nodo reco = raiz;while (reco.sig != null){

  • 8/12/2019 Solucion de Las Clases

    38/47

    reco = reco.sig;}reco = reco.ant;reco.sig = null;

    }

    }

    }public void Imprimir(){

    Nodo reco = raiz;while (reco != null){

    Console.Write(reco.info + "-");reco = reco.sig;

    }

    Console.WriteLine();}

    public void BorrarMayor(){

    if (raiz != null){

    Nodo reco = raiz;int may = raiz.info;while (reco != null){

    if (reco.info > may){

    may = reco.info;}reco = reco.sig;

    }reco = raiz;while (reco != null){

    if (reco.info == may){

    if (reco == raiz)

    {raiz = raiz.sig;if (raiz != null)

    raiz.ant = null;reco = raiz;

    }else{

  • 8/12/2019 Solucion de Las Clases

    39/47

    Nodo atras = reco.ant;atras.sig = reco.sig;reco = reco.sig;if (reco != null)

    reco.ant = atras;

    }}else{

    reco = reco.sig;}

    }}

    }

    static void Main(string[] args){ListaGenericaDoble lg=new ListaGenericaDoble();lg.InsertarPrimero (10);lg.InsertarPrimero(45);lg.InsertarPrimero(23);lg.InsertarPrimero(89);lg.Imprimir();Console.WriteLine("Insertamos un nodo al

    final:");lg.InsertarUtlimo(160);lg.Imprimir();Console.WriteLine("Insertamos un nodo en la

    segunda posicin:");lg.InsertarSegundo(13);lg.Imprimir();Console.WriteLine("Insertamos un nodo en la

    anteultima posicin:");lg.InsertarAnteUltimo(600);lg.Imprimir();Console.WriteLine("Borramos el primer nodo de la

    lista:");lg.BorrarPrimero();

    lg.Imprimir();Console.WriteLine("Borramos el segundo nodo de la

    lista:");lg.BorrarSegundo();lg.Imprimir();Console.WriteLine("Borramos el ultimo nodo de la

    lista:");lg.BorrarUltimo();

  • 8/12/2019 Solucion de Las Clases

    40/47

    lg.Imprimir();Console.WriteLine("Borramos el mayor de la

    lista:");lg.BorrarMayor();lg.Imprimir();

    Console.ReadKey();}

    }}

    -Recursividad: Problemas dondeconviene aplicar la recursividadarchivo: Form1.Designer.cs

    namespace Buscaminas{

    partial class Form1{

    ////// Variable del diseador requerida.///private System.ComponentModel.IContainer components =

    null;

    ///

    /// Limpiar los recursos que se estn utilizando.////// true si los recursos administrados se deben

    eliminar; false en caso contrario, false.protected override void Dispose(bool disposing){

    if (disposing && (components != null)){

    components.Dispose();}base.Dispose(disposing);

    }

    #region Cdigo generado por el Diseador de WindowsForms

    ////// Mtodo necesario para admitir el Diseador. No se

    puede modificar

  • 8/12/2019 Solucion de Las Clases

    41/47

  • 8/12/2019 Solucion de Las Clases

    42/47

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;

    using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;

    namespace Buscaminas{

    public partial class Form1 : Form{

    private Button[,] mat;

    public Form1(){InitializeComponent();

    }

    private void Form1_Load(object sender, EventArgs e){

    int x = 10;int y = 50;mat = new Button[10, 10];for (int fil = 0; fil < mat.GetLength(0); fil++){

    for (int col = 0; col < mat.GetLength(1);col++)

    {mat[fil, col] = new Button();mat[fil, col].Text = "0";mat[fil, col].Location = new Point(x, y);mat[fil, col].Size = new Size(30, 30);mat[fil, col].Click += Presionado;Controls.Add(mat[fil, col]);x = x + 30;

    }

    y = y + 30;x = 10;

    }Reiniciar();

    }

    void Reiniciar(){

  • 8/12/2019 Solucion de Las Clases

    43/47

    Text="";for (int f = 0; f < 10; f++){

    for (int c = 0; c < 10; c++){

    mat[f,c].Text="0";mat[f,c].Enabled = true; ;mat[f,c].ForeColor=Color.LightGray;mat[f,c].BackColor=Color.LightGray;

    }}DisponerBombas();ContarBombasPerimetro();

    }

    void DisponerBombas()

    { int cantidad = 10;Random ale = new Random();do{

    int fila = ale.Next(0, 10);int columna = ale.Next(0, 10);if (mat[fila,columna].Text!="b"){

    mat[fila,columna].Text="b";cantidad--;

    }}while (cantidad != 0);

    }

    void ContarBombasPerimetro(){

    for (int f = 0; f < 10; f++){

    for (int c = 0; c < 10; c++){

    if (mat[f,c].Text=="0")

    {int cant = ContarCoordenada(f, c);mat[f,c].Text=cant.ToString();

    }}

    }}

  • 8/12/2019 Solucion de Las Clases

    44/47

    int ContarCoordenada(int fila, int columna){

    int total = 0;if (fila - 1 >= 0 && columna - 1 >= 0){

    if (mat[fila - 1,columna - 1].Text=="b")total++;

    }if (fila - 1 >= 0){

    if (mat[fila - 1,columna].Text=="b")total++;

    }if (fila - 1 >= 0 && columna + 1 < 10){

    if (mat[fila - 1,columna + 1].Text=="b")

    total++;}

    if (columna + 1 < 10){

    if (mat[fila,columna + 1].Text=="b")total++;

    }if (fila + 1 < 10 && columna + 1 < 10){

    if (mat[fila + 1,columna + 1].Text=="b")total++;

    }if (fila + 1 < 10){

    if (mat[fila + 1,columna].Text=="b")total++;

    }if (fila + 1 < 10 && columna - 1 >= 0){

    if (mat[fila + 1,columna - 1].Text=="b")total++;

    }

    if (columna - 1 >= 0){

    if (mat[fila,columna - 1].Text=="b")total++;

    }return total;

    }

  • 8/12/2019 Solucion de Las Clases

    45/47

    private void button1_Click(object sender, EventArgse)

    {Reiniciar();

    }

    private void Presionado(object sender, EventArgs e){

    for (int f = 0; f < 10; f++){

    for (int c = 0; c < 10; c++){

    if (sender == mat[f,c]){

    if (mat[f,c].Text=="b"){

    Text="Boooooooooooooomm";DesactivarJuego();}else

    if (mat[f,c].Text=="0"){

    Recorrer(f, c);}else

    if (mat[f,c].Text=="1" ||mat[f,c].Text=="2" ||mat[f,c].Text=="3" ||mat[f,c].Text=="4" ||mat[f,c].Text=="5" ||mat[f,c].Text=="6" ||mat[f,c].Text=="7" ||mat[f,c].Text=="8")

    {

    mat[f,c].BackColor=Color.Yellow;

    mat[f,c].ForeColor=Color.Black;}

    }}

    }VerificarTriunfo();

    }

    void DesactivarJuego(){

  • 8/12/2019 Solucion de Las Clases

    46/47

    for (int f = 0; f < 10; f++){

    for (int c = 0; c < 10; c++){

    mat[f,c].Enabled=false;

    }}

    }

    void VerificarTriunfo(){

    int cant = 0;for (int f = 0; f < 10; f++){

    for (int c = 0; c < 10; c++){

    Color col = mat[f,c].BackColor;if (col == Color.Yellow)cant++;

    }}if (cant == 90){

    Text="Ganooooooooo";DesactivarJuego();

    }}

    void Recorrer(int fil, int col){

    if (fil >= 0 && fil < 10 && col >= 0 && col < 10){

    if (mat[fil,col].Text=="0"){

    mat[fil,col].Text=" ";mat[fil,col].BackColor=Color.Yellow;Recorrer(fil, col + 1);Recorrer(fil, col - 1);Recorrer(fil + 1, col);

    Recorrer(fil - 1, col);Recorrer(fil - 1, col - 1);Recorrer(fil - 1, col + 1);Recorrer(fil + 1, col + 1);Recorrer(fil + 1, col - 1);

    }else

    if (mat[fil,col].Text=="1" ||

  • 8/12/2019 Solucion de Las Clases

    47/47

    mat[fil,col].Text == "2" ||mat[fil,col].Text == "3" ||mat[fil,col].Text == "4" ||mat[fil,col].Text == "5" ||mat[fil,col].Text == "6" ||

    mat[fil,col].Text == "7" ||mat[fil,col].Text == "8")

    {mat[fil,col].BackColor=Color.Yellow;mat[fil,col].ForeColor=Color.Black;

    }}

    }}

    }


Recommended