llevo meses buscando un buen tutorial de C# y este tutorial no esque sea un buen tutorial, esque es el mejor tutorial que e visto, hablas de todo con detalle y explicaciones fascinantes y haces que desde los que no saben nada hasta los que saben cosas aprendan cosas nuevas y lo entiendan, tienes un conocimiento muy amplio y este tutorial es increible, buen trabajo profe y que espero que te vaya tan bien por la vida como te a ido con los conocimientos. Un saludo
Lo entendí! lo entendiiiiii!!! jaja me llevó ver el vídeo 5 veces pero al final se hizo la luz....Muchas gracias profe! venia viendo los vídeos hasta el 32 sin problemas pero este si que me costó, Mil gracias de nuevo, estoy maravillado con este lenguaje!
Hola colegas, x3. Me tomó 3 repeticiones del vídeo para poder entender. En mi caso, tomar nota en OneNote me ayuda bastante. Aguante PILDORASINFORMATICAS.
Aver si yo lo entendido bien... con el objeto origen llamas el metodo distanciaHasta y le pones como parametro el objeto destino. y de ahi sacas el calculo usando el metodo distanciaHasta. correcto?
Lo tuve que ver unas 6 veces sin exagerar, pero realmente este Señor es un gran profesor, he visto otros cursos de POO y quedo en la luna puesto que no hay didáctica, pueden saber programar pero no pueden enseñar, muchas gracias Juan!!
No es necesario, lo importante es que entiendas que al pasar un objeto como parámetro lo que hace es dotar a ese objeto con las propiedades y métodos de la clase. En el ejemplo el objeto otroPunto = destino y los valores de destino son (128, 80) lo que hace es pasarle esos valores a la variable otroPunto, eso es todo. Cabe resaltar que otroPunto recibe los métodos del objeto punto, ¿cuál? en este caso el método DistanciaHasta que lo que hace es calcular la distancia que hay entre el origen y el destino (x,y) (0-128) y (0-80), s é que no soy muy buena explicando, pero eso fue lo que entendí, seguiré avanzando con el curso porque aún es confuso eso del pase de objetos como parámetros. Suerte :D
Tuve que retroceder el video, pero ahora de 10!! hay que practicar ejercicios para que quede. Lo bueno de esto que siempre se ve que todo sale de un lugar nada aparece de la nada. Exelente Juan!
Hola como siempre excelentes tutoriales Juan, hasta el momento 100% comprendidas las clases, descargue la ultima version de Visual Studio 2022 (por formateo del computador), y me asombro de esta version es que el Intellisense como que ahora es mas Inteligente ;) , en el metodo DistanciaHasta, al comenzar a escribir la clase Math despues de la igualdad, de forma automatica me sugirio las formulas planteadas en el video. Muchas Gracias, saludos desde Venezuela
✌Sigue siendo el mejor curso en 2023. Sin duda la clase más compleja de entender hasta ahora. 👌Yo hice algunos cambios a los nombres de los métodos y a los métodos para que me fuera más fácil de entender. Los dejo por aquí por si les sirve. Los nombres están en inglés para practicar. 👉"Replaceable" significa reemplazable en inglés. Use el nombre replaceablePoint para el objeto/instancia que en el método que calcula la distancia entre los puntos. Porque justamente eso es lo que pasa con ese objeto, es reemplazado con el objeto que se inserte como parámetro en la función de cálculo de distancia. static void Main(string[] args) { ExecuteTask(); } static void ExecuteTask() { Point originPoint = new Point(); Point destinyPoint = new Point(120, 50);
Console.WriteLine("The distance is: " + originPoint.CalculateDistance(destinyPoint)); } class Point { public Point() { this.x = 0; this.y = 0; }
He visto el video y me ha parecido excelente, solo una observación en el cálulo de la diferencia de distancias. En el minuto 19:35 se habla de que this.x hace referencia al origen (el cual es 0) y this.y (0 tambien) y se le resta el valor de otroPunto.x y otroPunto.y, arrojando valores negativos (Ej 0 - 2 = -2). En este caso no hay ningun problema porque al elevarlo a la segunda potencia éste se hace positivo.
Exacto, gracias a que en la fórmula del teorema de Pitágoras se elevan al cuadrado los catetos del triángulo rectángulo para hallar la distancia entre puntos en nuestro programa (hipotenusa) se salva el problema de manejar distancias aunque éstas puedan ser valores negativos cuando se le pasan al método DistanciaHasta(). Como las mates no son mi fuerte y ya no recordaba demasiado las clases de trigonometría también me planteé ese problema, pero rápidamente llegué a la misma conclusión que has posteado. Quizás es lo que más me chocó en un principio de la lección.☺️
Tercero en llegar a esa conclusión por lo menos en este comentario entendí después mucho intentos la programación pero tenia esa espinita del negativo jajaja
Un dia antes de ver este video vi en matematicas sobre la distancia entre dos puntos en un plano cartesiano y gracias a eso me fue facil entenderlo. Y si, en geogebra me dio el mismo resultado que el programa. Buen Video!!
Que tal profesor, tal y como dice en el vídeo (20:20) si requerí de una digestión lenta, inclusive ir plasmando con figuras y flechas entre objetos, clases, métodos y los constructores en Word a manera didáctica-visual. Después de haber dado vuelta al vídeo 3 veces y una vez al vídeo 31 de constructores, he logrado dominarle. Gran aporte..... Un saludo desde México!!!
Me costo entender que la distancia entre los 2 puntos es igual a la hipotenusa, pero cuando hice el click se me voló el cerebro jajaja Muchas gracias, muy bueno el curso!
Muy bien explicado 10+ como siempre. Y para los que siguen sin poder enternder pueden añadir las siguientes lineas en el metodo después de xDif Console.WriteLine("Punto this " + this.x + " punto destino " + otroPunto.x + " Diferencia " + xDif); y despues de yDif Console.WriteLine("Punto this " + this.y + " punto destino " + otroPunto.y + " Diferencia " + yDif); también pueden intentar hacer la llamada destino.DistanciaHasta(destino)
Algo que me ayudó a entender fue que this.x = 0 ya que hace referencia al constructor por defecto y otroPunto = 128 ya que hace referencia al constructor con parámetros, en este caso otroPunto está haciendo referencia a destino y this.x estaría haciendo referencia a origen
Muchas gracias es un exepcional curso, ahora los codigos de C# no me parecen jeroglificos, estuve bucando como loco el video 34, sin embargo, por los comentarios me doy cuenta que aún no lo has sacado, muchas gracias de nuevo y quedo muy atento a tu proxima entrega.
buen video, para entenderle mejor el primer objeto lo hice con una persona y el segundo con una casa para asi saber la distancia entre la persona y la casa
Excelentes curso he aprendido mucho con tus cursos. Espero se pasen por mi canal y miren un curso que estoy impartiendo de PSeint para esas personas que aun se les dificulta programar o quieren aprender de cero ese es un buen curso que va desde cero avanzado. Nuevamente muchas gracias pildorasinformaticas por compartir tus conocimientos.
jajaja si también lo entendí a la 5ta repetición, tube que cambiar origen y destino por punto1 y punto2, para asimilarlo con lo videos pasados de coche y círculo, jajajaj :(
Muchas Gracias, muy buena explicacion! a veces me pregunto si la programacion es para cualquiera que la quiere aprender, he mirado tus videos hasta la mitadad de este curso! pero tuve que regresar, porque algunos conceptos no me han quedado tan claros, al mismo tiempo me alegro al saber a traves de los comentarios que hay muchas gente como yo, que tiene que mirarlos una y otra vez! espero aprender con tu curso, que esta muy bueno! saludos
No me termina de quedar claro por qué hay que llamar a DistanciaHasta usando primero origen. y luego destino, cuando dentro del propio método ya se calcula todo eso, ¿Alguien que esté siguiendo el curso ahora y si lo entienda me puede dar una mano? Por el resto, la verdad es increíble lo comprensivo que sos a la hora de dar una buena base, durante un par de semanas me puse a hacer ejercicios en una app para celular y me aburría de lo fácil que era gracias a lo buena de la base de este curso, ¡Muchas gracias!
No está llamando a DistanciaHasta con el objeto destino,. Sino que primero llama con origen al método DistanciaHasta y ese método como parámetro recibe un objeto tipo punto. Cuando creo el método te fijas que puso que recibiera como parametro "Punto OtroPunto " ? Entonces cuando llamo al método este le pidió un objeto tipo punto y ahí puso Punto destino como parametro y como este ya tenía los valores 128,80 pudo hacer los calculos
También con respecto a esta parte del codigo: public double DistanciaHasta(Punto otroPunto), a mi entender se utiliza el objeto "(Punto otroPunto)" como parámetro ya que se le esta pasando los valores de destino, entonces como son dos valores los cuales son x y y, y no 1, en ese caso se utiliza Punto porque este si permite almacenar 2 valores y no Int ya que no caben.
Excelente curso! Una pregunta, cómo es posible acceder a "x", "y" del "otroPunto" siendo campos privados? No debería usarse un método get/set? O es acaso porque dentro de la clase es posible pero fuera de esta no?
Si las propiedades de la clase base están encapsuladas, se crea otro método donde permitas el ingreso de nuevos valores y sean reemplazadas. Fácilmente se puede usar un get y set, depende de cada uno. ojo que el Set no te devuelve ni te asigna valor, sino te estable valores para que sea llamando por el objeto en el Main.
Yo entiendo lo que explica en esta clase, pero quizas para otros hubiese sido mas sencillo de entender si el metodo se hace con dos puntos como argumentos, y no a traves del constructor por defecto mas un punto como argumento, no se si me hago entender. Saludos, muy buenos sus videos y maneras de explicar los conceptos
Para calcular la distancia entre dos puntos se puede utilizar la fórmula de la distancia euclidiana, que es la siguiente: sqrt((x2 - x1)^2 + (y2 - y1)^2) Donde x1 e y1 son las coordenadas del primer punto y x2 e y2 son las coordenadas del segundo punto. Aquí tienes un ejemplo de cómo podrías implementar el método para calcular la distancia entre dos puntos en C#: public class Punto { public double X { get; set; } public double Y { get; set; } public Punto(double x, double y) { X = x; Y = y; } public double CalcularDistancia(Punto otroPunto) { double distanciaX = Math.Pow(otroPunto.X - X, 2); double distanciaY = Math.Pow(otroPunto.Y - Y, 2); return Math.Sqrt(distanciaX + distanciaY); } } Para usar este método, simplemente debes crear un objeto de tipo Punto y luego llamar al método CalcularDistancia pasando como parámetro otro objeto de tipo Punto. Por ejemplo: Punto punto1 = new Punto(1, 2); Punto punto2 = new Punto(4, 5); double distancia = punto1.CalcularDistancia(punto2);
Hola, excelente los videos. Recién comienzo con C# y me cuesta la abstracción. Considero que cuando comprenda bien la POO todo será más fácil. Se puede descargar el código para analizarlo y probar cambios así me voy sacando dudas directamente del Visual Studio? Gracias.
Una pregunta, que se me esta escapando algo y seguro me sabeis responder. Si otroPunto es un objeto que tiene los campos de clase (x "e" y) private, deberiamos acceder a ella a traves de un método Get pero aqui lo hacemos directamente. Supongo que es porque los objetos creados pertenecen todos a la misma clase. ¿Es esto así?
Hola, alguien podria ayudarme a entender por que "Origen" es el objeto al que se refiere la intrucción this. Es en el minuto 19:08. no entiendo muy bien esa relación. Saludos desde Medellin, Colombia ¡Gracias!
7:50 - El método DistanciaHasta que recibe un parámetro de tipo , corresponde a tipo de parámetro , o ???.... y por qué???... si alguien me ayuda, por favor...
Luego de rever el video por enésima vez, al fin lo he entendido... Para el que le paso lo mismo que a mí, aca lo explico: El parámetro que recibe el método corresponde las variables y , que se colocaron al final de la clase ... entonces, tengo entendido yo, que reciben un parámetro de tipo que corresponde a las variables e ... La verdad, es bastante complejo...
Hola! Como es que el metodo DistanciaHasta pudo acceder a los atributos x, y de otroPunto si estos son private y pertenecen a otro objeto? Saludos y gracias por el curso!!!
Un poco tarde, pero bueno. Las variables "x" y "y" son privadas con la palabra "private" para que no puedan acceder a el desde otro lugar que no sea esa clase. Sin embargo, al momento de utilizar esas variables en un método public que reciba dos parámetros que luego reemplazarán los valores de "x" "y". Para ello desde el método sea crean dos variables para modificar los valores de x y y porque no se puede desde afuera
Muchas gracias! Hay algo que no termino de entender, es el tema de que destino.x no puede verse porque es private. Me explico: double distancia = origen.DistanciaHasta(destino); Esa línea de código se traduciría a algo asi (al ejecutar el metodo): xDif = origen.x - destino.x ; yDif = origen.x - destino.y; Eso lo entiendo, pero lo que no entiendo es como es posible que ese método (que es de origen) lea destino.x, cuando el campo x de destino es PRIVATE. Si yo intento hacer un Console.Write(destino.x) no me deja debido a que el campo x es private, no debiese pasar lo mismo al ejecutar ese metodo?
@@juandev5348 Si, algo asi suponía pero no logro encontrar una respuesta clara en internet 🤔 Edit: Efectivamente buscando un poco más, los métodos y propiedades private pueden verse entre instancias de una misma clase, debido a que los modificadores de acceso (private por ejemplo) funcionan en base a clases, no en base a objetos. "... access control works on per-class basis, not on per-object basis." (de stackoverflow) Saludos
Excelente los videos, pero tengo una duda entiendo el ejemplo pero porque en la función DistanciaHasta podemos acceder a los datos privados del objeto "otroPunto" no deberiamos hacerlo mediante un metodo getter? Saludos
"origen" puede acceder a los datos de "destino" porque ambos vienen de la misma Clase, entonces sus Campos son los mismos, solo que iniciados diferentemente, "origen" utiliza un Constructor y "Destino" utiliza otro Constructor, y a demas el Metodo DistanciaHasta, se encuentra dentro de la Clase Punto, al igual que las Variables "x" e "y". Y todo lo que esta dentro de una Clase es Percibido por todos los demas elementos que estan dentro de esa misma clase, el private solo hace que los Campos sean Inpercibibles por entes fuera de esa Clase
Para lo que no entienda la ultima parte del video sobre esa linia, le dejo la explicaicon double distancia=origen.DistaciaHasta(destino); /*DISTACIA es igual a ORIGEN,llama en la **clase punto** y dentro de la case a el **metodo distaciaHasta**. * el **metodo distaciaHasta** pide un parametro de tipo objetos llamado OTROPUNTO, que en este caso es DESTINO. * quedando a si,**xDif = origin** y **otropunto x = Destino **. * devolviendo en **DistaciaPunto** la operacion realisada. * y gurdandola en DISTACIA que luego se muestra por consola. */ 😄
Quiere decir que el parámetro / variable de tipo objeto ahora tiene las propiedades y métodos de ese objeto/clase. En este caso de los objetos tipo punto ¿Cuáles son las propiedades del objeto tipo punto? en el ejemplo, son los valores que recibe (128,80) y el método (lo que puede o es capaz de hacer un objeto), en este caso es el método DistanciaHasta ¿Qué hace ese método? pues calcular la distancia que hay entre 2 puntos. Al ser la variable otroPunto una variable de tipo objeto, esta recibe las propiedades y métodos que mencioné anteriormente, espero haberte ayudado :D PD: vi el vídeo 4 veces hasta que lo entendí xD
Cuando hiciste Punto otroPunto estabas instanciando? es que esa parte no la entendi perfectamente? estabas creando un objeto de la clase Punto dentro de su misma clase no?
Una cosita que olvidé de mencionarte, Juan: Podrías tal vez utilizar en el curso en lugar de utilizar Console.WriteLine() Console.Write() Es mejor o más intuitivo quizás a la hora de pedir al usuario un dato, debido a que el cursor aparece a continuación del mensaje de solicitud del dato. Con Console.WriteLune() aparece el mensaje y el cursor aparece por debajo... No queda mal. Sólo es una sugerencia. Nico
Considero que es irrelevante dicha mención cuando el verdadero asunto está en llamar al objeto con su método y trayendo como parámetro otro objeto para sacar la distancia de la coordenada.
Hola buenas, Me gustaría que me respondieran. por favor! Que tan importante es la clase Math ? Me servirá para hacer programas complejos? Porque en verdad no le entendí muy bien 😕
Hola Juan, te quería preguntar por que motivo dado la cantidad de videos subidos que tenes en tu canal, casi no hablas de punteros. Te lo pregunto porque en la Universidad me están dando muchas vuevlas con c++, con los punteros. Si me pudieses decir por que haces esto, te agradecería, dado que sabes mucho y debe haber un motivo del por que. Saludos desde Buenos Aires, Arg.
gracias la respuesta Dios te bendiga por tu ayuda me a ayudado mucho en aprenser programacion lo unico que hay tantas forma de programar pero nececito la metologia mas facil y en capas
Hola amigo se me surge una pregunta: ¿ que diferencia hay entre Double con mayuscula y double sin mayusculas o en que casos se hace uso el uno o el otro?
Double en mayúsculas es un objeto y double un tipo primitivo. A estos objetos (Double, Int, Long, etc.) se les suele llamar wrappers porque envuelven el tipo primitivo en un objeto. Entonces, ¿cuál es la ventaja de hacer esto? Dotas al tipo primitivo de una series de métodos que pueden serte muy útiles. Por ejemplo: pasar un int a string.
Hola Juan, lo primero de todo felicitarte por el pedazo de canal que tienes. He aprendido java gracias a ti y ahora estoy con C#. En cuanto al ejercicio propuesto, en el método DistanciaHasta, no sería más sencillo pasarle parámetros del segundo cosntructor solo? Es decir , en realizarTarea el double distancia = origen.DistanciaHasta(destino), se podría quedar en double distancia = destino.DistanciaHasta(destino). Así en Distancia hasta los cálculos no serían tan confusos de entradas. Se quedaría int xDif = this.x. No haría falta restarle otroPunto.x. Porque me está costando ver qué quieres sacar de ese cálculo y no le encuentro el sentido práctico pudiéndolo simplificar de la otra manera. Gracias y seguiré aprendiendo a programar más lenguajes desde tu canal seguro.
Gracias por el comentario Mario, me alegro de que te guste mi canal. En ocasiones intentando buscar el ejemplo más claro lo que hago sin querer es complicarlo más, el alumno se ofusca, me tiran tomates y me voy. Pero en este caso concreto, el que no termina de entender tu pregunta soy yo. El método DistanciaHasta tiene que mirar la distancia existente entre dos puntos diferentes. Por ese motivo trabaja con "origen" (punto 1) y "destino (punto 2). En el caso de escribir la instrucción que tú mencionas: double distancia = destino.DistanciaHasta(destino), el resultado sería siempre 0 ya que estás mirando la distancia que hay entre "destino" (punto 2) y "destino" (nuevamente punto 2), o sea, estás evaluando a un punto consigo mismo. Después de 1200 vídeos que tengo en el canal puede que ya haya enloquecido y no caiga en lo que quieres decir, pero en principio yo el método lo veo bien. La prueba definitiva sería programar lo que tú dices y ver el resultado. Debería de ser siempre 0. Un saludo!
@@pildorasinformaticas Mira, te enseño como yo lo he hecho y me va según te lo expliqué. Lo modifiqué un poco, ya que los dos puntos los llamé catetos, pero el código que daría así: DistanciaHasta yo lo tengo de esta manera: public double CalcularHipotenusa(Triangulo tri) { int cateto1 = this.cat1;//Aquí no le resto nada, porque le paso directamente el valor del tri1 int cateto2 = this.cat2;//Lo mismo double hipotenusa; hipotenusa = Math.Sqrt(Math.Pow(cateto1, 2) + Math.Pow(cateto2, 2)); return hipotenusa; } RealizarTarea de esta otra forma: static void Calculo() { Console.WriteLine("Primer cateto:"); int cateto1 = int.Parse(Console.ReadLine()); Console.WriteLine("Segundo cateto:"); int cateto2 = int.Parse(Console.ReadLine()); Triangulo tri1 = new Triangulo(cateto1, cateto2); double hipotenusa = tri1.CalcularHipotenusa(tri1); Console.WriteLine($"La hipotenusa que sacamaos del cateto {cateto1} y el cateto {cateto2} es: {hipotenusa}"); } Lo que busqué fue intentar saltarme el paso del objeto con el constructor vacío, para hacerlo solo con un objeto Triangulo en mi caso. En double hipotenusa = tri1.CalcularHipotenusa(tri1); en vez de llamarle desde el otro con constructor por defecto, le meto directamente los valores que le he dado. Seguramente haya hecho algo a lo burro o me funciona por suerte, pero vi que era más sencillo así. Gracias por leernos y encima contestarnos!
@@mario8627 Aunque ha pasado tiempo yo estoy viendo esto ahora. Estoy de acuerdo contigo. No son necesarios puntos de origen en este caso por que empieza en 0. Por tanto cómo lo que queremos saber es la longitud de cada cateto y al ser el origen 0 pues x es 128 e y es 80 directamente sin restas. En el caso de ser el punto de origen distinto a 0 sí seria útil el código del video. Quizás esa era la idea. Lo cierto es que sabiendo las longitudes de los catetos ya se puede llamar a la operación matemática. Al menos eso entiendo. Un saludo.
Profesor he intentado analizar el video varias veces pero sigo sin entender......he querido crear un metodo en el main para poder visualizar los valores que dan xdif ydif y distancia puntos y a la hora de ejecutar el programa realiza el calculo de la distancia pero cuando me muestra os valores de x dif , ydif , distanciapuntos me da todo valor = 0.........entiendo las asignaciones de valores desde los objetos origen (metodo hasta) destino y la distancia me da igual que usted , pero no entiendo porque al visualizar los valores pariculares de las otras variables me dan 0........gracias desde ya
Hola, no consigo entender el objetivo de este video, en el buen sentido, sáqueme de esta duda por favor, yo saque como conclusiones que se puede ocupar a un objeto en la llamada de un método y que el this en ese caso se refiere al campo de clase del objeto que hizo la llamada como también se pueden ocupar atributos del objeto que es parametro en la llamada, entonces me surge la duda de la utilidad de ocupar a un objeto en la llamada, es para relacionar 2 objetos o mas? o estoy demasiado enredado aparecer, de todas formas excelentes videos, solo este me ha causado problemas jaja, gracias por compartir su conocimiento amigo.
@@JoseMendoza-qs6lf Amigo sé bastante matemáticas, por lo mismo no me refería al método matemático, me refería a la utilización de un objeto dentro de la llamada, cosa que ya la entendí por cierto. De todos modos, gracias por responder.
Lo que no entiendo es que me parece que si hacemos ... int xDif=this.x-otroPunto.x; Int yDif=this.y-otroPunto.y; XDif y yDif no saldran con valores negativos?....Si alguien me lo puede aclarar se lo agradeceria
Es correcto para el caso del ejercicio 'xDif' e 'yDif' serán negativos, lo cual no implica error alguno ya que al elevarlo al cuadrado el resultado será positivo.
En la escuela tambien, el edificio de 1° Año era el triple de grande que el de 2° Año y el de 3° Año igual era el triple de grande que el de 2° Año xDDD, y luego en el edificio de 3° Año no se usaban todos lo salones por escases de demanda xDDD
Cual es la diferencia entre llamar la variable distancia con este signo "$" y sin el signo osea cual es la diferencia entre estos dos? 1 .Console.WriteLine($"La distancia entre dos puntos es de: {distancia}"); 2. Console.WriteLine("La distancia entre dos puntos es de: " + distancia);
La forma numero 1 es exclusiva del lengaje c#, la otra es comun con otros lenguajes de programacion. El resultado obtenido es el mismo, la que elijas usar es cuestión de comodidad.
llevo meses buscando un buen tutorial de C# y este tutorial no esque sea un buen tutorial, esque es el mejor tutorial que e visto, hablas de todo con detalle y explicaciones fascinantes y haces que desde los que no saben nada hasta los que saben cosas aprendan cosas nuevas y lo entiendan, tienes un conocimiento muy amplio y este tutorial es increible, buen trabajo profe y que espero que te vaya tan bien por la vida como te a ido con los conocimientos. Un saludo
Que tal amigo? Como vas llevando el curso?
UAAAAA!!!🤯 Casi me estalla la cabeza. Pero lo he entendido
Un gran maestro.👏
Lo entendí! lo entendiiiiii!!! jaja me llevó ver el vídeo 5 veces pero al final se hizo la luz....Muchas gracias profe! venia viendo los vídeos hasta el 32 sin problemas pero este si que me costó, Mil gracias de nuevo, estoy maravillado con este lenguaje!
Me he sentido identificado con tu comentario, ya lo ví la primera vez, y creo que voy a la segunda, porque quedé un poco perdido 😕
@@dgca77 me pasó lo mismo. Me tomo como 1:30 verlo analizarlo, etc. Es medio complejo algunas cosas pero le encontré el sentido más o menos jajaj
Hola colegas, x3. Me tomó 3 repeticiones del vídeo para poder entender. En mi caso, tomar nota en OneNote me ayuda bastante. Aguante PILDORASINFORMATICAS.
Aver si yo lo entendido bien... con el objeto origen llamas el metodo distanciaHasta y le pones como parametro el objeto destino. y de ahi sacas el calculo usando el metodo distanciaHasta. correcto?
Lo que no captó es porqué le puso al método distanciaHasta un parámetro un objeto de la clase punto...
Lo tuve que ver unas 6 veces sin exagerar, pero realmente este Señor es un gran profesor, he visto otros cursos de POO y quedo en la luna puesto que no hay didáctica, pueden saber programar pero no pueden enseñar, muchas gracias Juan!!
esta complejillo este tema lo bueno es que el detalle de explicar detenidamente cada cosa lo hace mas digerible ....
Esto me supera. Voy a tener que empezar el curso otra vez.
No es necesario, lo importante es que entiendas que al pasar un objeto como parámetro lo que hace es dotar a ese objeto con las propiedades y métodos de la clase. En el ejemplo el objeto otroPunto = destino y los valores de destino son (128, 80) lo que hace es pasarle esos valores a la variable otroPunto, eso es todo. Cabe resaltar que otroPunto recibe los métodos del objeto punto, ¿cuál? en este caso el método DistanciaHasta que lo que hace es calcular la distancia que hay entre el origen y el destino (x,y) (0-128) y (0-80), s é que no soy muy buena explicando, pero eso fue lo que entendí, seguiré avanzando con el curso porque aún es confuso eso del pase de objetos como parámetros. Suerte :D
una sola vez vi el video... explicas como un crack... saludos desde argentina..
Vaya que me dejó loco todo esto, pero una vez que pausas el vídeo y lo analizas con calma todo tiene sentido. EXCELENTE COMO SIEMPRE.
Tuve que retroceder el video, pero ahora de 10!! hay que practicar ejercicios para que quede.
Lo bueno de esto que siempre se ve que todo sale de un lugar nada aparece de la nada.
Exelente Juan!
A la primera vez no entendí nada, pero lo ví por segunda vez y entendí todo :D que gran curso, amo tu manera de explicar
Muy bueno Juan! Nivel de explicación 10!
Te felicito!!! Profes como vos hacen falta por mis pagos. Un lujo aprender así 👏👏👏👏👏
Hola como siempre excelentes tutoriales Juan, hasta el momento 100% comprendidas las clases, descargue la ultima version de Visual Studio 2022 (por formateo del computador), y me asombro de esta version es que el Intellisense como que ahora es mas Inteligente ;) , en el metodo DistanciaHasta, al comenzar a escribir la clase Math despues de la igualdad, de forma automatica me sugirio las formulas planteadas en el video. Muchas Gracias, saludos desde Venezuela
Mejor curso del mundo! Gracias!
El mejor canal de programación lejos.
Pedazo de clase.
Muchas gracias, profesor.
maravilloso esto parece las mil maravillas , gracias juan por tal calidad. saludos desde perú
Gracias Juan, somo siempre excelente profe. Y espero tu libro con muchas ansias.
Madre mia, tendre que ver esto unas diez veces! jajajaja
Se me hizo algo difícil entenderlo a la segunda pero me puse a analizar el código y lo entendí, gracias crack
este curso es lo máximo.
Excelente muy buen video, aun llevando 7 años programando sigo aprendiendo bastante en C#
✌Sigue siendo el mejor curso en 2023. Sin duda la clase más compleja de entender hasta ahora.
👌Yo hice algunos cambios a los nombres de los métodos y a los métodos para que me fuera más fácil de entender. Los dejo por aquí por si les sirve. Los nombres están en inglés para practicar.
👉"Replaceable" significa reemplazable en inglés. Use el nombre replaceablePoint para el objeto/instancia que en el método que calcula la distancia entre los puntos. Porque justamente eso es lo que pasa con ese objeto, es reemplazado con el objeto que se inserte como parámetro en la función de cálculo de distancia.
static void Main(string[] args)
{
ExecuteTask();
}
static void ExecuteTask()
{
Point originPoint = new Point();
Point destinyPoint = new Point(120, 50);
Console.WriteLine("The distance is: " + originPoint.CalculateDistance(destinyPoint));
}
class Point
{
public Point()
{
this.x = 0;
this.y = 0;
}
public Point(double x, double y)
{
this.x = x;
this.y = y;
}
public double CalculateDistance(Point replaceablePoint)
{
double xDif = this.x - replaceablePoint.x;
double yDif = this.y - replaceablePoint.y;
double pythagoras = Math.Sqrt(Math.Pow(xDif, 2) + Math.Pow(yDif, 2));
return pythagoras;
}
private double x;
private double y;
}
}
Y en 2024?
Lo que me ha costado pillarlo! y menos mal que lo explicas bien...
Gracias como siempre Juan!! Quedamos impacientes a la espera del próximo vídeo.
Es la segunda vez que veo este video y ya lo comprendí mucho mejor, aunque aún no me ha quedado claro del todo, voy por la tercera :D
Yo ya lo ví 4 veces y se va medio aclarando la situación, pero creo que veré una vez más, suerte!!
ufff pense que no iba a entender pero me concentre bien y lo pude hacer en un cuaderno con prueba de escritorio
Me costo un poco entenderlo, pero lo logre y sigo afirmando que eres un crack!
He visto el video y me ha parecido excelente, solo una observación en el cálulo de la diferencia de distancias. En el minuto 19:35 se habla de que this.x hace referencia al origen (el cual es 0) y this.y (0 tambien) y se le resta el valor de otroPunto.x y otroPunto.y, arrojando valores negativos (Ej 0 - 2 = -2). En este caso no hay ningun problema porque al elevarlo a la segunda potencia éste se hace positivo.
Exacto, gracias a que en la fórmula del teorema de Pitágoras se elevan al cuadrado los catetos del triángulo rectángulo para hallar la distancia entre puntos en nuestro programa (hipotenusa) se salva el problema de manejar distancias aunque éstas puedan ser valores negativos cuando se le pasan al método DistanciaHasta(). Como las mates no son mi fuerte y ya no recordaba demasiado las clases de trigonometría también me planteé ese problema, pero rápidamente llegué a la misma conclusión que has posteado. Quizás es lo que más me chocó en un principio de la lección.☺️
Tercero en llegar a esa conclusión por lo menos en este comentario entendí después mucho intentos la programación pero tenia esa espinita del negativo jajaja
Un dia antes de ver este video vi en matematicas sobre la distancia entre dos puntos en un plano cartesiano y gracias a eso me fue facil entenderlo. Y si, en geogebra me dio el mismo resultado que el programa. Buen Video!!
Maestro de maestros! aún no comencé este curso pero veo este video y es una maravilla.
Que tal profesor, tal y como dice en el vídeo (20:20) si requerí de una digestión lenta, inclusive ir plasmando con figuras y flechas entre objetos, clases, métodos y los constructores en Word a manera didáctica-visual. Después de haber dado vuelta al vídeo 3 veces y una vez al vídeo 31 de constructores, he logrado dominarle. Gran aporte..... Un saludo desde México!!!
Me costo entender que la distancia entre los 2 puntos es igual a la hipotenusa, pero cuando hice el click se me voló el cerebro jajaja
Muchas gracias, muy bueno el curso!
Excelente video, en principio, algo complicado de entender. Me ayudó mucho el uso del depurador de Visual Studio. Muchas gracias Juan.
Después de hacer el mismo programa, pero pidiendo 2 puntos diferentes, al fin pude entenderlo :'')
excelente juann pausando y rebobinando se entiende, saludos desde argentina!!
Muy bien explicado 10+ como siempre. Y para los que siguen sin poder enternder pueden añadir las siguientes lineas
en el metodo después de xDif
Console.WriteLine("Punto this " + this.x + " punto destino " + otroPunto.x + " Diferencia " + xDif);
y despues de yDif
Console.WriteLine("Punto this " + this.y + " punto destino " + otroPunto.y + " Diferencia " + yDif);
también pueden intentar hacer la llamada destino.DistanciaHasta(destino)
Algo que me ayudó a entender fue que this.x = 0 ya que hace referencia al constructor por defecto y otroPunto = 128 ya que hace referencia al constructor con parámetros, en este caso otroPunto está haciendo referencia a destino y this.x estaría haciendo referencia a origen
Gracias de nuevo por compartir tanto conocimiento y conceptos. Ahora debo esperar a que suba un nuevo video
Muchas gracias es un exepcional curso, ahora los codigos de C# no me parecen jeroglificos, estuve bucando como loco el video 34, sin embargo, por los comentarios me doy cuenta que aún no lo has sacado, muchas gracias de nuevo y quedo muy atento a tu proxima entrega.
Gracias por el comentario. Espero poder continuar en breve. Un saludo!
Me costo un poco, pero viendo detenidamente entendi todo! Gracias Juan!
Muy bueno como siempre Juan. Claro como el agua !!! Estoy refrescando muchos conceptos contigo. Gracias
Gracias me llevo tiempo entenderlo pero ya realize los trabajos
buen video, para entenderle mejor el primer objeto lo hice con una persona y el segundo con una casa para asi saber la distancia entre la persona y la casa
Muchas gracias, así da gusto aprender. Gracias por tu tiempo
Excelentes curso he aprendido mucho con tus cursos. Espero se pasen por mi canal y miren un curso que estoy impartiendo de PSeint para esas personas que aun se les dificulta programar o quieren aprender de cero ese es un buen curso que va desde cero avanzado. Nuevamente muchas gracias pildorasinformaticas por compartir tus conocimientos.
Lo entendí, Master. Gracias! 🙏🏼👏🏼
me cortocircuite!! pero al final lo entendí. me ayudo saber que el otro punto es el objeto de constructor con parámetros😀.
jajaja si también lo entendí a la 5ta repetición, tube que cambiar origen y destino por punto1 y punto2, para asimilarlo con lo videos pasados de coche y círculo, jajajaj :(
Explicación perfecta. Nada que agregar.
gracias profe genio.
Muchas Gracias, muy buena explicacion! a veces me pregunto si la programacion es para cualquiera que la quiere aprender, he mirado tus videos hasta la mitadad de este curso! pero tuve que regresar, porque algunos conceptos no me han quedado tan claros, al mismo tiempo me alegro al saber a traves de los comentarios que hay muchas gente como yo, que tiene que mirarlos una y otra vez! espero aprender con tu curso, que esta muy bueno! saludos
Se viene interesante el próximo vídeo.
No me termina de quedar claro por qué hay que llamar a DistanciaHasta usando primero origen. y luego destino, cuando dentro del propio método ya se calcula todo eso, ¿Alguien que esté siguiendo el curso ahora y si lo entienda me puede dar una mano?
Por el resto, la verdad es increíble lo comprensivo que sos a la hora de dar una buena base, durante un par de semanas me puse a hacer ejercicios en una app para celular y me aburría de lo fácil que era gracias a lo buena de la base de este curso, ¡Muchas gracias!
No está llamando a DistanciaHasta con el objeto destino,. Sino que primero llama con origen al método DistanciaHasta y ese método como parámetro recibe un objeto tipo punto. Cuando creo el método te fijas que puso que recibiera como parametro "Punto OtroPunto " ?
Entonces cuando llamo al método este le pidió un objeto tipo punto y ahí puso Punto destino como parametro y como este ya tenía los valores 128,80 pudo hacer los calculos
Estaba esperando este video
También con respecto a esta parte del codigo: public double DistanciaHasta(Punto otroPunto), a mi entender se utiliza el objeto "(Punto otroPunto)" como parámetro ya que se le esta pasando los valores de destino, entonces como son dos valores los cuales son x y y, y no 1, en ese caso se utiliza Punto porque este si permite almacenar 2 valores y no Int ya que no caben.
Excelente curso! Una pregunta, cómo es posible acceder a "x", "y" del "otroPunto" siendo campos privados? No debería usarse un método get/set?
O es acaso porque dentro de la clase es posible pero fuera de esta no?
A los que tengan la misma pregunta, es posible hacerlo siempre que sea dentro de la clase, siendo fuera de ella debemos llamar a los métodos
Si las propiedades de la clase base están encapsuladas, se crea otro método donde permitas el ingreso de nuevos valores y sean reemplazadas. Fácilmente se puede usar un get y set, depende de cada uno. ojo que el Set no te devuelve ni te asigna valor, sino te estable valores para que sea llamando por el objeto en el Main.
Excelente profe, gracias
Yo entiendo lo que explica en esta clase, pero quizas para otros hubiese sido mas sencillo de entender si el metodo se hace con dos puntos como argumentos, y no a traves del constructor por defecto mas un punto como argumento, no se si me hago entender. Saludos, muy buenos sus videos y maneras de explicar los conceptos
Gracias
Para calcular la distancia entre dos puntos se puede utilizar la fórmula de la distancia euclidiana, que es la siguiente:
sqrt((x2 - x1)^2 + (y2 - y1)^2)
Donde x1 e y1 son las coordenadas del primer punto y x2 e y2 son las coordenadas del segundo punto.
Aquí tienes un ejemplo de cómo podrías implementar el método para calcular la distancia entre dos puntos en C#:
public class Punto
{
public double X { get; set; }
public double Y { get; set; }
public Punto(double x, double y)
{
X = x;
Y = y;
}
public double CalcularDistancia(Punto otroPunto)
{
double distanciaX = Math.Pow(otroPunto.X - X, 2);
double distanciaY = Math.Pow(otroPunto.Y - Y, 2);
return Math.Sqrt(distanciaX + distanciaY);
}
}
Para usar este método, simplemente debes crear un objeto de tipo Punto y luego llamar al método CalcularDistancia pasando como parámetro otro objeto de tipo Punto. Por ejemplo:
Punto punto1 = new Punto(1, 2);
Punto punto2 = new Punto(4, 5);
double distancia = punto1.CalcularDistancia(punto2);
Hola, excelente los videos. Recién comienzo con C# y me cuesta la abstracción. Considero que cuando comprenda bien la POO todo será más fácil. Se puede descargar el código para analizarlo y probar cambios así me voy sacando dudas directamente del Visual Studio? Gracias.
Un grande.
Buen video
Una pregunta, que se me esta escapando algo y seguro me sabeis responder. Si otroPunto es un objeto que tiene los campos de clase (x "e" y) private, deberiamos acceder a ella a traves de un método Get pero aqui lo hacemos directamente. Supongo que es porque los objetos creados pertenecen todos a la misma clase. ¿Es esto así?
Hola, alguien podria ayudarme a entender por que "Origen" es el objeto al que se refiere la intrucción this. Es en el minuto 19:08. no entiendo muy bien esa relación. Saludos desde Medellin, Colombia ¡Gracias!
7:50 - El método DistanciaHasta que recibe un parámetro de tipo , corresponde a tipo de parámetro , o ???.... y por qué???...
si alguien me ayuda, por favor...
Luego de rever el video por enésima vez, al fin lo he entendido...
Para el que le paso lo mismo que a mí, aca lo explico:
El parámetro que recibe el método corresponde las variables y , que se colocaron al final de la clase ... entonces, tengo entendido yo, que reciben un parámetro de tipo que corresponde a las variables e ... La verdad, es bastante complejo...
En realidad en C# no hay tipos de datos primitivos (08:46) todos son objetos incluyendo los tipos de datos int y double.
Hola! Como es que el metodo DistanciaHasta pudo acceder a los atributos x, y de otroPunto si estos son private y pertenecen a otro objeto?
Saludos y gracias por el curso!!!
Un poco tarde, pero bueno. Las variables "x" y "y" son privadas con la palabra "private" para que no puedan acceder a el desde otro lugar que no sea esa clase. Sin embargo, al momento de utilizar esas variables en un método public que reciba dos parámetros que luego reemplazarán los valores de "x" "y". Para ello desde el método sea crean dos variables para modificar los valores de x y y porque no se puede desde afuera
Muchas gracias!
Hay algo que no termino de entender, es el tema de que destino.x no puede verse porque es private.
Me explico:
double distancia = origen.DistanciaHasta(destino);
Esa línea de código se traduciría a algo asi (al ejecutar el metodo):
xDif = origen.x - destino.x ;
yDif = origen.x - destino.y;
Eso lo entiendo, pero lo que no entiendo es como es posible que ese método (que es de origen) lea destino.x, cuando el campo x de destino es PRIVATE.
Si yo intento hacer un Console.Write(destino.x) no me deja debido a que el campo x es private, no debiese pasar lo mismo al ejecutar ese metodo?
tambien tengo esa duda , tal vez sea por que se esta utilizando un objeto que referencia a la misma clase :p
@@juandev5348 Si, algo asi suponía pero no logro encontrar una respuesta clara en internet 🤔
Edit: Efectivamente buscando un poco más, los métodos y propiedades private pueden verse entre instancias de una misma clase, debido a que los modificadores de acceso (private por ejemplo) funcionan en base a clases, no en base a objetos.
"... access control works on per-class basis, not on per-object basis." (de stackoverflow)
Saludos
@@wachemowe Gracias por la info
Excelente los videos, pero tengo una duda entiendo el ejemplo pero porque en la función DistanciaHasta podemos acceder a los datos privados del objeto "otroPunto" no deberiamos hacerlo mediante un metodo getter? Saludos
"origen" puede acceder a los datos de "destino" porque ambos vienen de la misma Clase, entonces sus Campos son los mismos, solo que iniciados diferentemente, "origen" utiliza un Constructor y "Destino" utiliza otro Constructor, y a demas el Metodo DistanciaHasta, se encuentra dentro de la Clase Punto, al igual que las Variables "x" e "y". Y todo lo que esta dentro de una Clase es Percibido por todos los demas elementos que estan dentro de esa misma clase, el private solo hace que los Campos sean Inpercibibles por entes fuera de esa Clase
bueno ya entendi pero ojala no se me olvide.
Para lo que no entienda la ultima parte del video sobre esa linia, le dejo la explicaicon
double distancia=origen.DistaciaHasta(destino);
/*DISTACIA es igual a ORIGEN,llama en la **clase punto** y dentro de la case a el **metodo distaciaHasta**.
* el **metodo distaciaHasta** pide un parametro de tipo objetos llamado OTROPUNTO, que en este caso es DESTINO.
* quedando a si,**xDif = origin** y **otropunto x = Destino **.
* devolviendo en **DistaciaPunto** la operacion realisada.
* y gurdandola en DISTACIA que luego se muestra por consola.
*/
😄
Lo único que digerí fue el Teorema de Pitágoras XD
Jajajajaja ya somos 2 o 3 o más creo yo 🤣🤣
podriamos utilisar argumentos opcionales
verdad ?
08:30 Métodos con parámetros de tipo objeto. Alguien me puede explicar eso? 😅
Quiere decir que el parámetro / variable de tipo objeto ahora tiene las propiedades y métodos de ese objeto/clase. En este caso de los objetos tipo punto ¿Cuáles son las propiedades del objeto tipo punto? en el ejemplo, son los valores que recibe (128,80) y el método (lo que puede o es capaz de hacer un objeto), en este caso es el método DistanciaHasta ¿Qué hace ese método? pues calcular la distancia que hay entre 2 puntos. Al ser la variable otroPunto una variable de tipo objeto, esta recibe las propiedades y métodos que mencioné anteriormente, espero haberte ayudado :D PD: vi el vídeo 4 veces hasta que lo entendí xD
Primer comentario... grande profe
Saludos
Cuando hiciste Punto otroPunto estabas instanciando? es que esa parte no la entendi perfectamente? estabas creando un objeto de la clase Punto dentro de su misma clase no?
profe lo lei detenidamente y entendi mas o menos si, pero es normal que se me complique esto siendo principiante?
Sí
Una cosita que olvidé de mencionarte, Juan: Podrías tal vez utilizar en el curso en lugar de utilizar Console.WriteLine() Console.Write()
Es mejor o más intuitivo quizás a la hora de pedir al usuario un dato, debido a que el cursor aparece a continuación del mensaje de solicitud del dato. Con Console.WriteLune() aparece el mensaje y el cursor aparece por debajo... No queda mal. Sólo es una sugerencia. Nico
La verdad es que no es muy importante esto bro,pero gracias por dar consejos al maestro,seguro que esta perdido sin este dato.
Considero que es irrelevante dicha mención cuando el verdadero asunto está en llamar al objeto con su método y trayendo como parámetro otro objeto para sacar la distancia de la coordenada.
Hola profe una pregunta, en que lenguaje programas mas ?
No sabría decirte. Quizás Java. Un saludo!
Cuantas clases aprox. tendra este curso?
yo tenia entendido que para calcular la distancia entre dos puntos se puede utilizar: Math.Abs(punto1) - Math.Abs(punto2)
No es necesario en este caso
Hola buenas, Me gustaría que me respondieran. por favor!
Que tan importante es la clase Math ? Me servirá para hacer programas complejos? Porque en verdad no le entendí muy bien 😕
La clase Math es necesaria para realizar cualquier cálculo matemático que necesites hacer en un programa. ¡Saludos!
Hola Juan, te quería preguntar por que motivo dado la cantidad de videos subidos que tenes en tu canal, casi no hablas de punteros. Te lo pregunto porque en la Universidad me están dando muchas vuevlas con c++, con los punteros. Si me pudieses decir por que haces esto, te agradecería, dado que sabes mucho y debe haber un motivo del por que. Saludos desde Buenos Aires, Arg.
Muy bueno, tienes en mente construir un sistema web en programacion objeto ??? seria bueno
Tengo varios planes en mente para este curso y lo que tú mencionas está entre ellos. Espero ir abordando todo con el tiempo. Un saludo!
gracias la respuesta Dios te bendiga por tu ayuda me a ayudado mucho en aprenser programacion lo unico que hay tantas forma de programar pero nececito la metologia mas facil y en capas
Al principio no le entendía; lo analice y quedé mas clar9
// (el 2 es elevado/exponente.)
//
// distancia2 = x2 + y2
// distancia2 = 1282 + 802
// distancia2 = 16384 + 6400
// distancia2 = 22784
// distancia = √(22784)
// distancia ≅ 150.94
Hola amigo se me surge una pregunta: ¿ que diferencia hay entre Double con mayuscula y double sin mayusculas o en que casos se hace uso el uno o el otro?
Double en mayúsculas es un objeto y double un tipo primitivo. A estos objetos (Double, Int, Long, etc.) se les suele llamar wrappers porque envuelven el tipo primitivo en un objeto. Entonces, ¿cuál es la ventaja de hacer esto? Dotas al tipo primitivo de una series de métodos que pueden serte muy útiles. Por ejemplo: pasar un int a string.
public static double CalcularDistancia(Punto P1, Punto P2) {
double square = 2;
return Math.Sqrt(Math.Pow(P1.getX() - P2.getX(), square) + Math.Pow(P1.getY() - P2.getY(), square));
}
que chulo
Hola Juan, lo primero de todo felicitarte por el pedazo de canal que tienes. He aprendido java gracias a ti y ahora estoy con C#.
En cuanto al ejercicio propuesto, en el método DistanciaHasta, no sería más sencillo pasarle parámetros del segundo cosntructor solo? Es decir , en realizarTarea el double distancia = origen.DistanciaHasta(destino), se podría quedar en double distancia = destino.DistanciaHasta(destino). Así en Distancia hasta los cálculos no serían tan confusos de entradas. Se quedaría int xDif = this.x. No haría falta restarle otroPunto.x. Porque me está costando ver qué quieres sacar de ese cálculo y no le encuentro el sentido práctico pudiéndolo simplificar de la otra manera. Gracias y seguiré aprendiendo a programar más lenguajes desde tu canal seguro.
Gracias por el comentario Mario, me alegro de que te guste mi canal. En ocasiones intentando buscar el ejemplo más claro lo que hago sin querer es complicarlo más, el alumno se ofusca, me tiran tomates y me voy. Pero en este caso concreto, el que no termina de entender tu pregunta soy yo. El método DistanciaHasta tiene que mirar la distancia existente entre dos puntos diferentes. Por ese motivo trabaja con "origen" (punto 1) y "destino (punto 2). En el caso de escribir la instrucción que tú mencionas: double distancia = destino.DistanciaHasta(destino), el resultado sería siempre 0 ya que estás mirando la distancia que hay entre "destino" (punto 2) y "destino" (nuevamente punto 2), o sea, estás evaluando a un punto consigo mismo. Después de 1200 vídeos que tengo en el canal puede que ya haya enloquecido y no caiga en lo que quieres decir, pero en principio yo el método lo veo bien. La prueba definitiva sería programar lo que tú dices y ver el resultado. Debería de ser siempre 0. Un saludo!
@@pildorasinformaticas Mira, te enseño como yo lo he hecho y me va según te lo expliqué. Lo modifiqué un poco, ya que los dos puntos los llamé catetos, pero el código que daría así:
DistanciaHasta yo lo tengo de esta manera:
public double CalcularHipotenusa(Triangulo tri)
{
int cateto1 = this.cat1;//Aquí no le resto nada, porque le paso directamente el valor del tri1
int cateto2 = this.cat2;//Lo mismo
double hipotenusa;
hipotenusa = Math.Sqrt(Math.Pow(cateto1, 2) + Math.Pow(cateto2, 2));
return hipotenusa;
}
RealizarTarea de esta otra forma:
static void Calculo()
{
Console.WriteLine("Primer cateto:");
int cateto1 = int.Parse(Console.ReadLine());
Console.WriteLine("Segundo cateto:");
int cateto2 = int.Parse(Console.ReadLine());
Triangulo tri1 = new Triangulo(cateto1, cateto2);
double hipotenusa = tri1.CalcularHipotenusa(tri1);
Console.WriteLine($"La hipotenusa que sacamaos del cateto {cateto1} y el cateto {cateto2} es: {hipotenusa}");
}
Lo que busqué fue intentar saltarme el paso del objeto con el constructor vacío, para hacerlo solo con un objeto Triangulo en mi caso.
En double hipotenusa = tri1.CalcularHipotenusa(tri1); en vez de llamarle desde el otro con constructor por defecto, le meto directamente los valores que le he dado.
Seguramente haya hecho algo a lo burro o me funciona por suerte, pero vi que era más sencillo así.
Gracias por leernos y encima contestarnos!
@@mario8627 Aunque ha pasado tiempo yo estoy viendo esto ahora. Estoy de acuerdo contigo. No son necesarios puntos de origen en este caso por que empieza en 0. Por tanto cómo lo que queremos saber es la longitud de cada cateto y al ser el origen 0 pues x es 128 e y es 80 directamente sin restas. En el caso de ser el punto de origen distinto a 0 sí seria útil el código del video. Quizás esa era la idea. Lo cierto es que sabiendo las longitudes de los catetos ya se puede llamar a la operación matemática. Al menos eso entiendo. Un saludo.
Profesor he intentado analizar el video varias veces pero sigo sin entender......he querido crear un metodo en el main para poder visualizar los valores que dan xdif ydif y distancia puntos y a la hora de ejecutar el programa realiza el calculo de la distancia pero cuando me muestra os valores de x dif , ydif , distanciapuntos me da todo valor = 0.........entiendo las asignaciones de valores desde los objetos origen (metodo hasta) destino y la distancia me da igual que usted , pero no entiendo porque al visualizar los valores pariculares de las otras variables me dan 0........gracias desde ya
agradeceria me pudiese recomendar algun video para entender mejor este tipo de ejercicios con asignaciones....gracias
#33
Yo llevo 3 visualizaciones a este video y no me entero :D
Hola, no consigo entender el objetivo de este video, en el buen sentido, sáqueme de esta duda por favor, yo saque como conclusiones que se puede ocupar a un objeto en la llamada de un método y que el this en ese caso se refiere al campo de clase del objeto que hizo la llamada como también se pueden ocupar atributos del objeto que es parametro en la llamada, entonces me surge la duda de la utilidad de ocupar a un objeto en la llamada, es para relacionar 2 objetos o mas? o estoy demasiado enredado aparecer, de todas formas excelentes videos, solo este me ha causado problemas jaja, gracias por compartir su conocimiento amigo.
solo es utilizar las matematicas y ya xD
si has estudiado matematicas obviamente entenderas mejor xD
@@JoseMendoza-qs6lf Amigo sé bastante matemáticas, por lo mismo no me refería al método matemático, me refería a la utilización de un objeto dentro de la llamada, cosa que ya la entendí por cierto. De todos modos, gracias por responder.
@@lucaspereira7480 solo tienes que utilizar "math" deacuerdo a tus codigos :)
Nomaa esa respuesta xDD
Tengo una Pregunta de Programacion...
Respuesta: Si estudiaste Matematicas ya la entiendes
xDDDD
Lo que no entiendo es que me parece que si hacemos ... int xDif=this.x-otroPunto.x;
Int yDif=this.y-otroPunto.y;
XDif y yDif no saldran con valores negativos?....Si alguien me lo puede aclarar se lo agradeceria
Es correcto para el caso del ejercicio 'xDif' e 'yDif' serán negativos, lo cual no implica error alguno ya que al elevarlo al cuadrado el resultado será positivo.
@@EloyTN Si...Es verdad...Muchas gracias...
Resulta interesante ver como va decayendo la cantidad de gente que sigue el curso a medida que subes nuevos videos
En la escuela tambien, el edificio de 1° Año era el triple de grande que el de 2° Año y el de 3° Año igual era el triple de grande que el de 2° Año xDDD, y luego en el edificio de 3° Año no se usaban todos lo salones por escases de demanda xDDD
Cual es la diferencia entre llamar la variable distancia con este signo "$" y sin el signo osea cual es la diferencia entre estos dos?
1 .Console.WriteLine($"La distancia entre dos puntos es de: {distancia}");
2. Console.WriteLine("La distancia entre dos puntos es de: " + distancia);
La forma numero 1 es exclusiva del lengaje c#, la otra es comun con otros lenguajes de programacion. El resultado obtenido es el mismo, la que elijas usar es cuestión de comodidad.
quien eres man donde vives, porque sabes tantos temas ...