Course C #. Arrays II. Video 37

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ก.พ. 2025

ความคิดเห็น • 78

  • @davidbarrera2396
    @davidbarrera2396 4 ปีที่แล้ว +39

    Excelente contenido, muchas gracias maestro. Cabe recordar también que los array pueden ser de 1 dimensión o más, por ejemplo yo podría tener un array de 2 dimensiones:
    int[,] edades = new int[4, 2];
    y asignarle un valor en la posición 0,0:
    edades[0, 0] = 25;
    En este caso se hace referencia por ejemplo a una dimensión de filas (4) y otra dimensión (2) de columnas.

    • @shema7090
      @shema7090 4 ปีที่แล้ว +1

      Muchas gracias por compartir tu conocimiento

    • @JoseMendoza-qs6lf
      @JoseMendoza-qs6lf 4 ปีที่แล้ว +2

      Grande David, eres un Dios

    • @FireCrauter
      @FireCrauter 3 ปีที่แล้ว +5

      lo sabia, pero seguro es spoiler de este curso jejej

    • @Juanda-30
      @Juanda-30 2 ปีที่แล้ว +2

      tambien existen Jaggeds array o array de arrays [][]

  • @roos_tms
    @roos_tms 2 ปีที่แล้ว +2

    Muchas gracias por tus cursos, he aprendido mas con tus videos que con muchos facilitadores.

  • @Alejandro-y7o9q
    @Alejandro-y7o9q 4 หลายเดือนก่อน

    Me gusta mucho este contenido Juan, sigue así.

  • @mnl1
    @mnl1 6 ปีที่แล้ว +9

    Genial Juan como siempre. Esta vez incluso más rápido y muy bien detallado el tema de los arrays implícitos. Qué fácil nos lo pones!! Un millón de gracias.

  • @hectormaximilianogutierrez5698
    @hectormaximilianogutierrez5698 ปีที่แล้ว

    Qué grande que es este tipo!!!

  • @manolos5242
    @manolos5242 6 ปีที่แล้ว +3

    Muchas gracias, qué fácil es aprender a tu lado.

  • @wilvejulianmartinjimenez6365
    @wilvejulianmartinjimenez6365 3 ปีที่แล้ว

    Gracias que contenido tan valioso, gracias.

  • @victor_hernandez_g
    @victor_hernandez_g 3 ปีที่แล้ว +2

    La diferencia entre el almacenamiento de objetos en el array es que en el primer caso no existe una variable de tipo "Empleados" que esté referenciando al objeto, y en el segundo caso sí existe una variable llamada "Ana" que está referenciando al objeto que contiene los valores "Ana" y "27".

  • @darkrist
    @darkrist 4 ปีที่แล้ว

    gracias !!! :D best class ever!

  • @angeldarior
    @angeldarior 3 ปีที่แล้ว

    Excelente exposicion. De las mejores que he visto. Pueden descargarse esos codigos de progrma?

    • @FireCrauter
      @FireCrauter 3 ปีที่แล้ว

      Puedes copiarlos desde el video, son un par de líneas nomas
      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using System.Threading.Tasks;
      namespace ifintento
      {
      class Program
      {
      static void Main(string[] args)
      {
      //- array implicito

      var datos = new[] { "juan", "Diaz", "españa" };
      var valores = new[] { 15, 27, 35, 74.4 }; //todo a double
      // array de objetos
      Empleados[] arrayEmpleados = new Empleados[2];
      Empleados Ana = new Empleados("Ana", 27);
      arrayEmpleados[0] = new Empleados("Sara", 37);
      arrayEmpleados[1] = Ana;
      // array de tipos o clases anonimas
      var personas = new[]
      {
      new { Nombre = "Juan", Edad = 10 },
      new { Nombre = "Maria", Edad = 40 },
      new { Nombre = "Diana", Edad = 70 }
      };
      }
      }
      class Empleados
      {
      public Empleados(String nombre, int edad)
      {
      this.nombre = nombre;
      this.edad = edad;
      }
      String nombre;
      int edad;
      }

  • @jcop___97
    @jcop___97 3 ปีที่แล้ว +4

    Muchas gracias por este vídeo.
    Pregunta técnica: ¿Cuál sería el nombre del objeto que se instanció en la misma declaración del Array?

    • @eduardrivas6964
      @eduardrivas6964 3 ปีที่แล้ว +2

      No tiene, se instancia en memoria y se accede desde arrayEmpleados según el índice.

    • @HeartShapedEnd
      @HeartShapedEnd 3 ปีที่แล้ว +2

      Cómo ya te dijeron, podría decirse que no tiene. O eso parece debido a que se instacía directamente, y es que el nombre de un objeto (Sara) es para ubicar y llamar a esa instancia. En este caso, en un array se ubica y se llama desde su posición en el array es decir: arrayEmpleado[0] es la instancia.
      Técnicamente ese sería su nombre de instancia.
      Por otro lado, en el ejemplo de Ana, se copia el objeto o instancia Ana en la instancia del arreglo arrayEmpleado [1]

  • @brayanromero1012
    @brayanromero1012 3 ปีที่แล้ว

    muy buen video

  • @pablofuller5376
    @pablofuller5376 3 ปีที่แล้ว +1

    Excelente metodología profesor, gracias por sus conocimientos. Quiero hacerle una pregunta, como hace para señalar en pantalla con flechas y rectángulos de color rojo cuando está explicando el código fuente. Agradezco de antemano su respuesta.

    • @sisisibo
      @sisisibo ปีที่แล้ว

      quizás esta respuesta llega tarde. Pero en uno de los primeros videos de este curso responde a esta pregunta :).

  • @ThePablin1
    @ThePablin1 2 ปีที่แล้ว

    Hola! Puede ser que no estén todos los vídeos del curso de C# en la lista de reproducción?

  • @uzumakimikey4364
    @uzumakimikey4364 4 ปีที่แล้ว

    Buen video

  • @cesaraugustomendozayanez9552
    @cesaraugustomendozayanez9552 2 ปีที่แล้ว +1

    jajaja dizque despues de haberme mareado con 7 maneras distintas de crear un array.. con cual nos quedamos jaja buena

  • @chuka4901
    @chuka4901 4 ปีที่แล้ว

    Excelente explicacion!

  • @damianbajofer9169
    @damianbajofer9169 4 ปีที่แล้ว +2

    Si creas un array "Object" podes meter datos de todo tipo, int, String, Persona, Coche, Boolean

  • @Jenvff
    @Jenvff 3 ปีที่แล้ว

    Nueva sub

  • @Jusilus
    @Jusilus 3 ปีที่แล้ว +1

    Me ha dado por imprimir ambos arrays:
    Console.WriteLine(empleados[0]);
    Console.WriteLine(personas[0]);
    El resultado es
    ConsoleApp17.Empleado
    { nombre = Juan, edad = 19 }
    El primero me imprime el tipo y el segundo todos los campos. Curioso (normal, no sabe el tipo xD).

  • @Valhalla_Code
    @Valhalla_Code 4 ปีที่แล้ว +1

    Muchas gracias me a servido mucho, pero tengo una duda, que diferencia hay en String y string? cuando coloca la primera letra en mayúscula c# le otorga un color diferente que cuando la escribe en minúscula, porque? y si hay algun cambio significativo en esto. Si me pudieran aclarar esto , lo agradecería mucho.

    • @Jusilus
      @Jusilus 3 ปีที่แล้ว +2

      Si no recuerdo mal, es lo mismo. Supongo que en C# lo crearían para la gente que está viciada a escribirlo de las dos formas. Si escribes una variable son string y otra con String verás que la descripción es la misma y se puede acceder a los mismos métodos.

  • @emmanuelfrias3924
    @emmanuelfrias3924 6 ปีที่แล้ว +3

    A partir del minuto 8:30, ¿Que nombre tiene el objeto de la linea 22?

    • @denisamacovei2641
      @denisamacovei2641 6 ปีที่แล้ว

      Ninguno!

    • @oliverrosario8699
      @oliverrosario8699 6 ปีที่แล้ว

      Podria decirse que su nombre es su posición. Ej: arrayEmpleados[0].nombre te daría el valor del atributo nombre del objeto. En su caso te mostraría el nombre "Sarah".

    • @ramonalejandrotijerinacarr5086
      @ramonalejandrotijerinacarr5086 5 ปีที่แล้ว +1

      No tiene un nombre como tal, el objeto en cuestión solo será generado y asignado a su posición correspondiente, nosotros les asignamos nombres para distinguir los unos de los otros más fácilmente, sin embargo para la máquina es irrelevante una distinción por nombre siempre y cuando el objeto sea asignado a una posición específica, si la posición se repite sobreescribira al objeto anterior y si la posición no se especifica te dará error de compilación o en tiempo de ejecución. Saludos.

    • @akiztoi
      @akiztoi 4 ปีที่แล้ว

      Justo acababa de hacer esta pregunta. Gracias por la pregunta y las respuestas.

  • @JB-pl8vj
    @JB-pl8vj 4 ปีที่แล้ว +1

    Debido a la encapsulación de los campos de clase en la Clase Empleados, tanto *nombre* como *edad*, están protegidos y no pueden ser accesibles desde el Main a menos que: o cambies el tipo de acceso a public (mala practica) o crees un método de acceso desde la clase Empleados que retorne esos valores:
    class Empleados
    {
    public Empleados(String nombre, int edad)
    {
    this.nombre = nombre;
    this.edad = edad;
    }
    public String getNombre()
    {
    return nombre;
    }
    public int getEdad()
    {
    return edad;
    }
    String nombre;
    int edad;
    }
    -------------
    ------------------------------------------
    Por ultimo llamar desde el Main:
    Empleados[] Carrefour = new Empleados[2];
    Carrefour[0] = new Empleados("Miguel", 25);
    Empleados Ana = new Empleados("Ana", 24);
    Carrefour[1] = Ana;

    Console.WriteLine("El primer empleadx es: " + Carrefour[0].getNombre() + "
    Edad: " + Carrefour[0].getEdad() + "
    El segundo empleadx es: " + Carrefour[1].getNombre() + "
    Edad: " + Carrefour[1].getEdad());
    ------------------------------------------------------------
    Como resultado veremos en consola:
    El primer empleadx es: Miguel
    Edad: 25
    El segundo empleadx es: Ana
    Edad: 24

  • @abrilmailen24
    @abrilmailen24 4 ปีที่แล้ว +1

    hola, un array de objetos es como usar un registro? Vengo solo con los conceptos que aprendí en la universidad en pascal, perdón si parece una pregunta media sonsa, aun no termine de ver el curso. Gracias

    • @pildorasinformaticas
      @pildorasinformaticas  4 ปีที่แล้ว +5

      No exactamente. Hace más de 20 años que no estudio Pascal pero si no recuerdo mal, en un registro se podían tener diferentes tipos almacenados. Un array en java no permite esto. Es cierto que podemos almacenar objetos, pero todos han de ser del mismo tipo (objetos de tipo Persona, Empleado, Círculos... lo que sea pero siempre del mismo tipo en el mismo array). Lo que si ocurre es que un objeto tiene diversas propiedades y estas si que pueden estar representadas por datos de diferente tipo y quizá de ahí tu confusión, más aun viniendo de Pascal. Espero que si avanzas en el curso se vaya aclarando esto. Un saludo!

    • @pildorasinformaticas
      @pildorasinformaticas  4 ปีที่แล้ว +3

      Ah! las colecciones en Java permiten almacenar diferentes tipos, ya llegarás a esto en el curso.

  • @florprocopovici3810
    @florprocopovici3810 2 ปีที่แล้ว

    Alguien más de Ilerna que lo entiende mejor por aqui?

  • @akiztoi
    @akiztoi 4 ปีที่แล้ว

    Hola, una pregunta:
    Los objetos que se crean a la vez que se posiciona dentro del array y que no es creado antes, no tiene nombre. ¿No? ¿Supone esto alguna desventaja después? Me imagino un caso en el que ese objeto "Sara", por ejemplo, queramos utilizarlo en algún otro momento. ¿Cómo lo usamos?.
    Gacias!

    • @akiztoi
      @akiztoi 4 ปีที่แล้ว

      Según he leído por ahí abajo y para quien pueda tener la misma duda (si nadie me corrige):
      El objeto no tendría un "nombre" como tal, su no nombre sería su posición dentro del array. En este caso sería "arrayEmpleados[0]".
      Entiendo, por lo tanto, que si es un objeto que voy a tener que utilizar junto con otros y quiero diferenciarlos claramente (como en el caso de que fueran empleados de una empresa con datos específicos de cada individuo), convendría crear primero un objeto con un nombre que tenga más sentido "humano" y luego introducirlo en la matriz.
      Esto es lo que yo he entendido, pero no vendría mal que alguien con más conocimientos le diera un "Ok" o corrigiera si algo no lo he entendido bien.
      saludos.

    • @Marcos-ft2rj
      @Marcos-ft2rj 4 ปีที่แล้ว

      @@akiztoi Los arreglos que almacenas clases anonimas, ciertamente carecen de nombre; he alli la razon por la que se les conoce como clases "ANONIMAS".
      Esto no debería suponer una desventaja, porque existen escenarios donde al realizar una consulta a la base de datos nos beneficiaria usarla como arreglos de clases anonimas que como objetos o arreglos por defecto.

  • @imanoldodera3096
    @imanoldodera3096 2 ปีที่แล้ว

    Sos re groso rey

  • @orking2074
    @orking2074 4 ปีที่แล้ว

    Hola! Muy buenos videos, te felicito! Tengo una duda, en el minuto 8:37 si yo quisiera imprimir por consola los valores de arrayEmpleados[0] como debería hacer? ya que si pongo Console.WriteLine(arrayEmpleados[0]); me imprime esto: Arrays2.Empleados

    • @EloyTN
      @EloyTN 4 ปีที่แล้ว +4

      Estás accediendo al objeto Empleado que se encuentra en la posición 0 pero no a las propiedades del mismo, para lograr tu cometido tienes que especificar la propiedad del valor que deseas mostrar.
      Console.WriteLine(arrayEmpleados[0].nombre);

    • @shema7090
      @shema7090 4 ปีที่แล้ว

      @@EloyTN La verdad hermano no me salio , me aparece error cuando agrego el punto

    • @shema7090
      @shema7090 4 ปีที่แล้ว

      @@EloyTN Solo me deja si en el campo de la clase en las variables agrego el modificador de acceso como public pero el constructor no hace su trabajo

    • @EloyTN
      @EloyTN 4 ปีที่แล้ว +1

      @@shema7090 el constructor está asignando valores pero no los muestra y sí, es necesario que el campo sea 'public' para que puedas imprimirlo.
      No está mostrando el valor?

    • @shema7090
      @shema7090 4 ปีที่แล้ว

      @@EloyTN Muchas gracias paaa
      Ya encontré la respuesta el los siguientes vídeos
      Enserio muchas gracias por tu tiempo
      La solución es crear un getter para obtener los datos

  • @fandelpildoras3452
    @fandelpildoras3452 6 ปีที่แล้ว +6

    Un curso de c++, por favor 🙏

  • @tproject4390
    @tproject4390 4 ปีที่แล้ว +1

    Hola. Al momento de imprimir los arrays creados con los valores de los objetos solo me imprime el mensaje "arrays.Empleado". Este es el codigo para imprimir que uso Console.WriteLine(arrayEmpleados[1]);

    • @EloyTN
      @EloyTN 4 ปีที่แล้ว +2

      Debes acceder a la propiedad del objeto Empleado: Console.WriteLine(arrayEmpleados[1].nombre);

  • @Marcos-ft2rj
    @Marcos-ft2rj 4 ปีที่แล้ว

    Podria crearse un arreglo que guarde tipos mixtos ?

  • @davorsuker5175
    @davorsuker5175 6 ปีที่แล้ว

    Muy buenas tardes, una pregunta: ¿Que editor de código estas usando en el ejemplo?.

    • @carlosdaniel-be2qv
      @carlosdaniel-be2qv 6 ปีที่แล้ว +1

      es visual studio community

    • @davorsuker5175
      @davorsuker5175 6 ปีที่แล้ว

      @@carlosdaniel-be2qv Ah perfecto, gracias por el dato... Yo pensaba que era visual studio Code.

    • @ushiookasaki
      @ushiookasaki 6 ปีที่แล้ว

      @@davorsuker5175 También puedes pero (por comodidad) usa VSC porque se puede ejecutar en un clic.

    • @bryanc343
      @bryanc343 5 ปีที่แล้ว

      Estás siguiendo el curso completo?

  • @rubenmartinezbravo6803
    @rubenmartinezbravo6803 5 ปีที่แล้ว +1

    hola @pildorasinformaticas estoy siguiendo este curso al pie de la letra, a pesar que estoy muy bien en C++, pero no importa, asi aprendo cada detalle nuevo que das.
    En este vídeo en especifico tengo una duda en los minutos finales cuando imprimiste Console.WriteLine(personas[1]);
    esta linea sola mostró todos los parámetros, algo que no entiendo como los arrays anónimos hacen esto pk por ejemplo con Console.WriteLine(arrayEmpleados[1]); por supuesto que no se ve. O sea Consolo.WriteLine accede a los campos de una arrays anónimo diferente?

  • @solarfluid
    @solarfluid 6 ปีที่แล้ว +2

    Porque en este caso no me devuelve en el CW nada? o mejor dicho me devuelve el "Arrays.Empleados", (he querido ver si una vez asignado un valor a la posicion 1, luego se puede cambiar)
    Empleados[] arrayEmpleados = new Empleados[2];
    arrayEmpleados[0] = new Empleados("Frank", 34);
    arrayEmpleados[1] = new Empleados("olga", 36);
    Console.WriteLine(arrayEmpleados[1]);
    Empleados Ana = new Empleados("Ana", 35);
    arrayEmpleados[1] = Ana;
    Console.WriteLine(arrayEmpleados[1]);

    • @0x000-1
      @0x000-1 5 ปีที่แล้ว +1

      Ya revisaste bien tu código ?, Monta todo el código haber si te puedo ayudar

    • @TomSteelers
      @TomSteelers 5 ปีที่แล้ว +1

      me pasa lo mismo

    • @ramonalejandrotijerinacarr5086
      @ramonalejandrotijerinacarr5086 5 ปีที่แล้ว +3

      Falta que accedas a las propiedades del objeto que está dentro del array, recuerdas que Empleados es solo un objeto con una serie de propiedades y como tal no se puede imprimir en consola tienes que decirle al programa exactamente qué es lo que quieres de ese Empleados, recuerda que la clase al ser instanciada se le dan unos parámetros de creación o bien se dejan sus propiedades vacías, por ejemplo: Console.WriteLine(arrayEmpleados[0].nombre + " " + arrayEmpleados[0].edad + " años.");

    • @JB-pl8vj
      @JB-pl8vj 4 ปีที่แล้ว +1

      @@ramonalejandrotijerinacarr5086 perdon, tu respuesta esta parcialmente bien, falto aclarar que debido a la encapsulación en la Clase Empleados, tanto nombre como edad, estan protegidos y no pueden ser accesibles en el Main a menos que: o cambies el tipo de acceso a public o crees un metodo de acceso desde la clase Empleados:
      class Empleados
      {
      public Empleados(String nombre, int edad)
      {
      this.nombre = nombre;
      this.edad = edad;
      }
      public String getNombre()
      {
      return nombre;
      }
      public int getEdad()
      {
      return edad;
      }
      String nombre;
      int edad;
      }
      -------------
      y por ultimo llamar desde el Main:
      Console.WriteLine("El primer empleadx es: " + Carrefour[0].getNombre() + "
      Edad: " + Carrefour[0].getEdad() + "
      El segundo empleadx es: " + Carrefour[1].getNombre() + "
      Edad: " + Carrefour[1].getEdad());
      Como resultado veremos en consola:
      El primer empleadx es: Miguel
      Edad: 25
      El segundo empleadx es: Ana
      Edad: 24

  • @alphaalfre
    @alphaalfre 3 ปีที่แล้ว

    👀

  • @linox20
    @linox20 4 ปีที่แล้ว

    el ide me recomendo dejar de usar la palabra new en cada indice y cambiar las llavees de cada indice por parentesis y me siguye fucionando me refiero al arreglo de clases anonimas

  • @WomenSportsPlay
    @WomenSportsPlay 2 ปีที่แล้ว

    Hola, chicos diseñe este tipo de ejercisio, la verdad no sé realmente porque cuando ejecutó me arroja un valor algo extraño, dice así "program + peluqueria", la verdad no comprendo porque sucede así pero bueno si saben me lo pueden comentar porfavor, gracias chicos
    using System;
    using System.Data.SqlTypes;
    class program
    {
    static void Main(String[] args)
    {
    peluqueria juanitoCalamar = new peluqueria("JuanitoCalamar", 200);
    peluqueria [] arrayPeluqueros = new peluqueria[2];
    arrayPeluqueros[0] = new peluqueria("enrique", 60);
    Console.WriteLine(arrayPeluqueros);
    arrayPeluqueros[1] = juanitoCalamar;
    }
    class peluqueria
    {
    public peluqueria(String nombre, int horastrabajadas)
    {
    this.nombre = nombre;
    this.horastrabajadas = horastrabajadas;
    }
    string nombre;
    int horastrabajadas;
    }
    }

  • @javierruizdiaz5724
    @javierruizdiaz5724 4 ปีที่แล้ว +10

    quien fue el enfermo que le dio disleke?

  • @luciocorneliosila6415
    @luciocorneliosila6415 3 ปีที่แล้ว

    Me he mareado xD

  • @derbnotty
    @derbnotty 3 ปีที่แล้ว

    Me incomoda que su teclado sea memcanico
    :v

  • @WomenSportsPlay
    @WomenSportsPlay 2 ปีที่แล้ว

    Hola tambien hize este por si alguien quiere mirarlo y mejorarlo si es capas u usarlo de base para practicar, disfruten y gracias.
    using System;
    using System.Data.SqlTypes;
    class program
    {
    static void Main(String[] args)
    {
    var amazon = new[]
    {
    new {NombreIApellido= "JuanRamirez", Edad = 32},
    new {NombreIApellido= "pepitoCalabaza", Edad = 19},
    new {NombreIApellido = "Camilo Loaiza", Edad = 35},
    new {NombreIApellido = "Daniela Romeria", Edad = 20},
    new {NombreIApellido = "Laura Hurtado", Edad = 25},
    new {NombreIApellido = "Vannesa Quezada", Edad = 30}
    };
    Console.WriteLine("elige un numero del 1 al 6");
    int preguntaSorteo = int.Parse(Console.ReadLine());
    if (preguntaSorteo == 1)
    Console.WriteLine(amazon[0]);
    if (preguntaSorteo == 2)
    Console.WriteLine(amazon[1]);
    if (preguntaSorteo == 3)
    Console.WriteLine(amazon[2]);
    if (preguntaSorteo == 4)
    Console.WriteLine(amazon[3]);
    if (preguntaSorteo == 5)
    Console.WriteLine(amazon[4]);
    if (preguntaSorteo == 6)
    Console.WriteLine(amazon[5]);
    }
    class amazon
    {

    }

    }

  • @pumpdoriloco915
    @pumpdoriloco915 4 ปีที่แล้ว +1

    Buen video