Curso Java Intermedio #34 | Analizador sintáctico (Listas tipo pila en Java)

  Рет қаралды 59,981

La Geekipedia De Ernesto

La Geekipedia De Ernesto

Күн бұрын

Пікірлер: 149
@LaGeekipediaDeErnesto
@LaGeekipediaDeErnesto 6 жыл бұрын
¿Te gustaría que este contenido siga siendo gratuito?, puedes apoyar al canal de las siguientes maneras: 1. Donaciones: www.paypal.me/LaGeekipedia 2. Desactivando Adblock y Adblock Plus en KZbin. 3. Compartiendo los vídeos del canal en foros y redes sociales. Cualquier opción es de gran ayuda. ¡Muchas gracias!
@felipec.2308
@felipec.2308 4 жыл бұрын
Para mi usted es el mejor canal de programación que hay y quiero que lo sepa, ante todo. Quisiera darle una idea, yo lo sigo desde que vi su explicación del método burbuja con punteros, como iba cambiando los punteros uno a uno y haciendo el paso a paso de la explicación y volvía entendible algo tan abstracto como el cambio de lugar de las posiciones etc. Explica con muchísima calma, y para personas como yo que les cuesta mucho entender los movimientos imaginarios de la lógica de programación eso es de mucha ayuda. Usted es el único canal que explica de tal manera un método burbuja, o por lo menos dentro de los que yo he buscado -que son muchos-. Y, además, yo que estoy cursando una ingeniería le puedo decir con seguridad que muchos de los programadores que nos dan clases no tienen ni la mitad de la paciencia que tiene usted y lo felicito por eso. La idea que quería darle consiste en que yo noto en estos videos (un poco más avanzados que el método burbuja) imagino que por cuestión de tiempo usted no puede explicar cada detalle de lo que hace con representaciones graficas de cada método, de cada ciclo, de cada condición etc. Es lógico que el video se alargaría demasiado, pero depronto sería muy provechoso para su audiencia -incluyéndome- que hiciera videos aparte, explicando con la misma metodología que hizo en el método burbuja, gráficamente, paso a paso y demas, los códigos que elabora en videos como este. ¡Un saludo y muchas gracias por tanto!
@jaimemanuel9369
@jaimemanuel9369 Жыл бұрын
Recién encontre tu canal Ernesto, y debo decir "EXCELENTE" y muy didáctico tu forma de enseñar y agradecido con los ejemplos tan practicos. Toma un poco de tiempo a veces pero aquí juega la imaginación y los conceptos vistos en clases anteriores, se tiene que juntar todo para entender. Muchas gracias por tu paciencia y enseñanza.
@brianquesada2494
@brianquesada2494 4 жыл бұрын
Ernesto sos genial explicando mucho mejor que cualquier profe que haya tenido en toda mi vida, aun así pienso que en estos vídeos no dedicaste el suficiente tiempo en explicar todo a como acostumbras dejándolo todo tan claro que seria raro tener dudas acá fue todo distinto osea vídeo 33 y 34 ya que diste por hecho que explicaste o los que ven los vídeos ya tenían conocimientos teóricos por lo menos de cosas que no mencionaste en los vídeos anteriores, igual muchas gracias por hacer estos cursos.
@orlando6804
@orlando6804 Жыл бұрын
Excelente trabajo el que haces Ernesto, gracias a ti estoy aprendiendo más de lo que aprendí en la universidad. En lo particular estos últimos videos se me han dificultado, pero agradezco tu esfuerzo y compromiso
@Rockoonesong
@Rockoonesong Жыл бұрын
Funcionamiento del programa: 1. Se agrega un carácter a la pila si cumple con "(" , "[" o "{". 2. En caso contrario, se verifica si los caracteres son ")", "]", o "}" (los cierres). 3. Si se trata de uno de esos caracteres, se elimina el último carácter ingresado en la pila. 4. Si el carácter eliminado NO ES igual a "(" (por ejemplo, al verificar ")"), se finaliza el proceso y se retorna false. 5. Al finalizar el bucle, se retorna el valor de pila.PilaVacia (un valor booleano). Lógica del programa: El programa utiliza una pila para rastrear la apertura de paréntesis, corchetes y llaves. Si se encuentra un cierre, se busca su correspondiente apertura. Si no coincide, se detiene y retorna false. Al final, se verifica si la pila está vacía. Si PilaVacia() devuelve true, no hay errores de sintaxis; si es false, indica que hay paréntesis o corchetes abiertos que no se han cerrado. Espero que les sirva para entender mejor :)
@Carlos-d7u7d
@Carlos-d7u7d 3 ай бұрын
Gracias compañero lo entedere mejor asi :)
@fernandogomezmartirena856
@fernandogomezmartirena856 2 жыл бұрын
Gran curso Ernesto! Considero que hacés un bien inimaginable a la comunidad brindando gratis tu conocimiento y pasión. La forma de enseñar y explicar cada tema es admirable. También entiendo que haya gente que se esté trabando y le cueste seguir el paso a esta altura porque lo que se está viendo no es sencillo. Estructuras de datos es bastante complejo y requiere tiempo para entenderlo y más tiempo para que fluya a la hora de programar. Quería decirte, con todo respeto que el método "extraer" es muy mejorable. A mi en la universidad me enseñaron que es buena práctica de programador dejar un solo return a pesar de que muchas personas hacen lo que vos hiciste. También creo que, en ese mismo método, podrías haber simplificado el código creando la variable "información" del tipo Char fuera de la estructura condicional, nomás empezar el método. De esa forma usar esa variable tanto en el if como en el else y fuera del condicional el return de la misma (en el if se guardaríaa info y en el else podría guardarse un espacio en blanco ""). Muchas gracias y saludos.
@ricardocolladodev
@ricardocolladodev 4 жыл бұрын
En un principio pense que estariamos hablando de expresiones regulares (he estudiado ese tema ya por ahi) Pero me parecio fantastico el usar nodos para esto! *.* Fue hermoso. Veo muchos comentarios negativos, la verdad es que si fue un poco rapido, pero igual, quien haya estado practicando los videos anteriores y haya analizado los temas por su cuenta, les parecio como a mi, muy bien explicado, CLARO, hay que tomar el ejercicio y sentarse a leerlo, no solo es copiar el codigo, cuando termine, me sente a leerlo como prueba de escritorio y me di cuenta porque hacias cada cosa. El tema de Nodos adjacentes los vi al hacer una practica de una pagina que uso para (valga la redundancia) practicar, "edabit" muy buena, la recomiendo para ir avanzando. Excelente explicacion, El video en verdad sirve mas para aumentar la logica, practicando lo que hiciste!
@JoseLuis-cu4bc
@JoseLuis-cu4bc 2 жыл бұрын
Estas listas y nodos me han dado duro! Bueno, toca ver el video varias veces. Gracias Ernesto!
@cesarmateoveraandrade9394
@cesarmateoveraandrade9394 3 жыл бұрын
llevo 3 días sin dormir xd analizando esto son como las 8 casi de la tarde en mi pais que no despego del ordenador, y bueno ya lo entendi xdxd me tomo más tiempo de lo que esperaba pero igual gracias ernesto, tu explicaste bien solo no copie bien algunas cosas xd y al final si logre entender aunque fue un poco dificil pero al final con esfuerzo y mucho cafe lo logre ojala todos logren entenderloo xd pdt a los que sientan q no entiendan y esten leyendo los coments intentando buscar ayuda xd como yo hace unos dias namas les digo que aunque todo parezca dificl siempre hay una luz al final del tunel y cada esfuerzo tiene su recompenza y mucha suerte
@d-landjs
@d-landjs 3 жыл бұрын
Excelente contenido!!! Lástima que ya no expliques tan a detallado como antes :'c solo queda darle vuelta hasta entender bien xD
@ricardoivanmaldonadogamez2512
@ricardoivanmaldonadogamez2512 Жыл бұрын
no explica solo dice que hacer se le olvido que esta ensenando a personas que están en curva de aprendizaje, no somos experimentados en el tema para comprenderlo de golpe, es un detalle que podria hacer sus videos de mejor calidad, aun asi sirven solo que tienes que pausar practicamente cada paso que dice
@luisramirez1314
@luisramirez1314 Жыл бұрын
yo me pase 3 días con el video anterior 😂
@NeicerVera729
@NeicerVera729 7 ай бұрын
@@luisramirez1314 yo estuve 2 dias hasta que entendi el tema de pilas, segui con este video y estuve 3 dias , ahora ya entiendo mucho mejor
@AtomWR1
@AtomWR1 3 жыл бұрын
Ernesto Saludos de Colombia 2021! No lo voy a negar me costo mucho pero logre entenderlo Gracias por esas acciones tan bonitas como lo es compartir conocimiento hermano 💯
@ivanblanco6140
@ivanblanco6140 Жыл бұрын
Todo Entendido Profe gracias voy por el siguiente.. 👍💪
@gggggerman2008
@gggggerman2008 4 жыл бұрын
muy a las patadas sinceramente la explicación, tan bien que ibas
@cristianherrera6905
@cristianherrera6905 3 жыл бұрын
La primera vez que vi esto de los nodos pensé que era muy jodi**, pero después de reverme 4 veces el video, parando cada vez que hacia un método para pensarlo, al final mas o menos ya lo entiendo. Los que penséis que es muy difícil no os desaniméis eeeh, tomáoslo con calma y en un día o dos ya lo pillareis!! :-)
@alexmartin536
@alexmartin536 5 жыл бұрын
Ahora si que no entendi nada
@cristianmateoflorezgarcia8862
@cristianmateoflorezgarcia8862 3 жыл бұрын
hahahahahahahahah
@brunopadillagutierrez3812
@brunopadillagutierrez3812 8 ай бұрын
X2 xd
@katitaa19
@katitaa19 4 ай бұрын
Lo que entendimos hoy, mañana lo vamos a entender.
@tvBioskoop_show
@tvBioskoop_show 5 жыл бұрын
te agradezco mucho. porque se que contigo voy a aprender mucho.
@mat24mese
@mat24mese 4 жыл бұрын
Esto de Pilas y nodos lo enseñan para mejorar su logica como programador , yo lo vi en la u pero a nivel de papel nunca en programación, es un poco complejo pero ya cuando cuando te das cuenta que es solamente guardar información y que apunte al siguiente nodo para que haya un orden se hara mas sencillo..... pero ahora me doy cuenta que si ha tenido una funcion util todo eso de pilas y nodos
@whitshh149
@whitshh149 3 жыл бұрын
Me sacaste totalmente las ganas de terminar el curso. Es increible pero cierto. Venias explicando todo bien y se ve que te aburriste o algo, "Nodo" "char" "Ya lo vimos en la clase pasada" nunca explicaste que son o como funcioann. Solo escribes tu codigo y y dices "Mira que bien quedo". Estos 2 videos son los ultimos que vere. Mucho aprendi hasta aca, agradecido por eso, pero este salto de velocidad al escribir, explicar etc mataste todas las ganas que tenia de seguir tu curso. Salu2.
@carloszambrano8548
@carloszambrano8548 5 жыл бұрын
Ahora si estas explicando a millón jajaja... bueno fino aquí vamos repitiendo el vídeo pero activo.. :D
@carlosysucodigoconcafe2908
@carlosysucodigoconcafe2908 Ай бұрын
LIKE !!! A los que bajaron la velocidad de Preproducción :D, Saludos Ernesto eres un crack
@lucioberardobj16
@lucioberardobj16 5 жыл бұрын
Todo iba bien hasta que empezamos con estas listas y nodos, no me quedo muy claro, pero excelente instructor.
@jyscalv7008
@jyscalv7008 4 жыл бұрын
Que es lo que no entiendes?
@stevenjm8444
@stevenjm8444 3 жыл бұрын
yo tambien no entendi a la primera, pero me descarge el proyecto que dejo ernesto y estuve analizando cada una de las lineas de codigo, y a la final termine por comprender como funcinan esas estructuras
@samuelgutierrez5704
@samuelgutierrez5704 3 жыл бұрын
@@jyscalv7008 no me quedo clara la lógica de como administrar la lista tipo pila:(, ósea decía cosas, pero no daba a entender la lógica.
@manueloropeza5408
@manueloropeza5408 2 жыл бұрын
@@samuelgutierrez5704 x2
@xshadowsystem
@xshadowsystem 2 жыл бұрын
ando igual... no entiendo porque hace lo que hace y si lo que me imagino yo que debe hacerse tambien es una opcion valida
@leonardoenriquesanchezrosa6917
@leonardoenriquesanchezrosa6917 3 жыл бұрын
Excelente curso. Muchas gracias Ernesto!!!
@YoURoCkDrY
@YoURoCkDrY 4 жыл бұрын
Hola, Soy un fiel seguidor de este curso y quiero solicitar apoyo ya sea de Ernesto o de cualquier colega que pudiera apoyarme, la cuestión es que por necesidades laborales debo usar IntelliJ y la GUI que tiene para crear Formularios no se parece en nada la de NetBeans, el código al crear el form es diferente y bueno, descargue la practica esperando que si copiaba el código de "Interfaz" y a poder lograr que se ejecutara sin problema, el punto es que en efecto lo ejecuta exitosamente pero no muestra el formulario y me indica una serie de Warnings! con las excepciones que contiene el try/catch del codigo de Ernesto. Si pudieran orientarme a saber como puedo trabajar con Intellij IDEA se los agradecería mucho ya que de lo contrario solo podría seguir el curso instalando NetBeans. Que tengan un excelente día.
@MARQUITOSGUALACBA
@MARQUITOSGUALACBA 6 жыл бұрын
Ya me hice bola
@Carlos-d7u7d
@Carlos-d7u7d 3 ай бұрын
Gracias, complicado el tema pero muy buen video !
@TheErickS
@TheErickS 6 жыл бұрын
Explicas muy bien bro! Estoy empezando a ver tus vídeo para ir aprendiendo a programar ya que pienso estudiar programación y tus videos son geniales! Gracias!
@javiermendoza9579
@javiermendoza9579 4 жыл бұрын
Saludos Ernesto, tengo problemas nuevamente, para entender la lógica del metodo ValidarExpresion(). Se supone y entiendo yo que la pila se conforma con todos los carácteres de apertura así: " { ( { [", ya que el programa no reconoce los números ni los signos (no hay nada programado para eso), y el va preguntando si encuentra el carácter de cierre el extrae el último elemento de la pila y lo compara si corresponde al mismo par {}, []. () el manda a true, si es true el JOptionPane manda que está escrito correctamente de lo contrario no. Lo que no entiendo es la primera y última llave, se supone que cadena.charAt(20) es igual a "}" y si el compara con el último elemento de la pila es "[", debería arrojar error automáticamente desde el comienzo cuando se da click en el botón Validar Expresión. Por favor ayúdame a entender, soy un estudiante de programación que quiere aprender y salir adelante con este oficio de programador, muchas gracias.
@javiermendoza9579
@javiermendoza9579 4 жыл бұрын
Yo del futuro (27 minutos después🤭): Creo saber porqué, no entendía bien la lógica de extraer(), ésta función retorna el último valor de carácter de apertura y con el apuntador siguiente siempre mandaba a la llave de inicio "{" que es el primer elemento de la pila, dejando esa llave siempre como último valor ingresado cada vez que se extraía el último nodo. Al llegar el último carácter de la cadena que es la llave de cierre "}" se finalizaba el programa dejando UltimoValorIngresado.siguiente => null ya que se ha extraído el último elemento y se llegaba al ultimo i = 20, del ciclo for.
@alanrodriguez5616
@alanrodriguez5616 4 жыл бұрын
@@javiermendoza9579 pero el ultimo valor ingresado sigue siendo "[" no?
@RamonJPerez86
@RamonJPerez86 2 жыл бұрын
Excelente ejercicio
@alexanderaguero
@alexanderaguero 6 жыл бұрын
Con lo enseñado en Pila y Nodo puedo hacer mi lenguaje de programacion??
@fernandotorres_137
@fernandotorres_137 Жыл бұрын
Podrías hacer un mini proyecto de analizador sintáctico con más detalles? :(
@andresavila1812
@andresavila1812 6 жыл бұрын
explicas muy bien
@LaGeekipediaDeErnesto
@LaGeekipediaDeErnesto 6 жыл бұрын
¡Muchas gracias!, saludos.
@DavidG085
@DavidG085 6 жыл бұрын
El último video y este me parece que explicas muy rápido y no quedan la cosas del todo claras, al menos sobre este tema.
@LaGeekipediaDeErnesto
@LaGeekipediaDeErnesto 6 жыл бұрын
¡Hola!, lamento bastante esta situación, no obstante te invito a consultar alguna de las siguientes alternativas: 1. Si deseas una asesoria personal, puedes solicitarla a través de inbox en la pagina de Facebook del canal: facebook.com/LaGeekipediaDeErnesto/ 2. Puedes consultar la documentanción de Java, donde se explica a detalle para que y como se utiliza cada herramienta que Java pone a nuestra disposición: docs.oracle.com/javase/7/docs/api/ Saludos.
@juanst3057
@juanst3057 5 жыл бұрын
Cierto explico todo rápido, nada que ver con los demás videos... pero bueno
@kevinandreschicasanchez81
@kevinandreschicasanchez81 4 жыл бұрын
@@LaGeekipediaDeErnesto Como pongo o lo lista una información de una persona
@gggggerman2008
@gggggerman2008 4 жыл бұрын
totalmente de acuerdo, parece como mas de mala gana la explicacion
@Zero-yt1og
@Zero-yt1og 4 жыл бұрын
@@gggggerman2008 No lo creo, solamente ya estamos tocando temas mas complejos, por eso advirtio que tengamos los fundamentos claros para no confundirnos tanto. En mi opinión fue excelente, pero yo ya había visto estructura de datos en otro canal. Si no lo entiendes busca bro, no te quedes solo con lo que Ernesto te enseña, hasta el estaría de acuerdo con ello. Muchas suerte bro, se que vas a poder :D
@agustinsa9829
@agustinsa9829 4 жыл бұрын
Operaciones de Matrices = Meh, pasa... se puede... LISTAS Y NODOS = Uff... duele
@juanstromsdorfergamarra9708
@juanstromsdorfergamarra9708 4 жыл бұрын
Hola Ernesto. Vengo siguiendo tu curso y avanzando diariamente varias sesiones. Primero que nada reiterarte mis felicitaciones y agradecimiento por tan excelente trabajo y forma de enseñar. Quería salir de una duda, porque recién he podido empezar a descargar el código de las sesiones. A partir de las sesión 38 (Gráficas) veo en la descarga del código dos archivos: uno de tipo java.class y el otro de tipo java Frame. Ambos con método main. ¿Significa esto que son dos formas alternativas de generar la solución? ¿Hay una alternativa que trabaje con el archivo tipo class y dentro de él haga ejecutarse el JFRame? El método main, no siempre va al final del código. De qué depende? Gracias y saludos.
@fernandolondono8752
@fernandolondono8752 3 жыл бұрын
Me funciono correctamente pero quedan muchas cosas x recordar
@nadiefuego
@nadiefuego 6 жыл бұрын
Saludos. Ahora a practicar.
@carlosdeoliveira985
@carlosdeoliveira985 4 жыл бұрын
que funcion cumple return character.MAX_VALUE; ????
@sebasmusic888
@sebasmusic888 6 жыл бұрын
Muchas gracias Ernesto, a por los 100 k de subs!!! :D
@LaGeekipediaDeErnesto
@LaGeekipediaDeErnesto 6 жыл бұрын
Al contrario, gracias a ti por continuar atento al contenido del canal y por el apoyo brindado. En verdad ¡Muchas gracias!, y si, estamos próximos a llegar a los 100K. Saludos.
@martineza2193
@martineza2193 6 жыл бұрын
Hola amigo, podrías hacer un video o algo donde hables de java (este del curso) y java web? Ya que ahora debo aprender java web, estoy estudiándolo, y estoy algo confundido. Estoy viendo Spring MVC y hasta ahora no le veo mucha relación con todo lo del código de java XD (hasta ahora solo los controladores). Gracias.
@diegovargasriquelme8280
@diegovargasriquelme8280 6 жыл бұрын
hola, profesor ernesto, muy bien video pero tengo una duda, cuando uno crea un Objeto de tipo "Nodo" ¿es un objeto que hace referencia a la clase "Nodo"? ó ¿es una clase ya integrada en el jdk?, por lo que veo esa referencia a la clase,pero no estoy del todo seguro. jajaj un Saludo profe es el mejor !
@alonsodelgadillo6159
@alonsodelgadillo6159 6 жыл бұрын
Es una clase ya integrada en el JDk
@conkers182
@conkers182 6 жыл бұрын
Cuando escribe " Nodo siguiente ; " lo que está haciendo es creando un apuntador en la clase Nodo , es decir si la clase se hubiera llamado Nodoccc hubiese escrito " Nodoccc siguiente; "
@nicotoobebello6386
@nicotoobebello6386 5 жыл бұрын
No es una clase ya integrada en el JDK, es un tema que todavía no se dio. Este tema se llama "programación recursiva" en donde una clase o método se llama a si misma. El Nodo "siguiente" es como dice conkers182 un apuntador que apunta al siguiente nodo. El tema de este video se llama "listas enlazadas" por si te cuesta entender puedes ver videos de otros canales que lo explican a fondo.
@katsu7188
@katsu7188 6 жыл бұрын
Entendí perfectamente :D Muchas gracias Ernesto
@facundoguereta9248
@facundoguereta9248 6 жыл бұрын
El mas grande!
@ConradoValencia-g4q
@ConradoValencia-g4q 14 күн бұрын
yo si entendí hasta que fuí a correr el programa y no me dio porque en el source aparece una cantidad de codigo que el profe ernesto no explico, me expkican por favor?
@YoURoCkDrY
@YoURoCkDrY 4 жыл бұрын
Insisto una vez mas con el post citado anteriormente. Agradeceria mucho su apoyo.
@danielll7289
@danielll7289 4 жыл бұрын
Si no saben hacer las comillas simples: Alt (mantener) + 39 o copien y peguen......... ' '
@MARQUITOSGUALACBA
@MARQUITOSGUALACBA 6 жыл бұрын
es necesario el else del minuto 9: 10? porque retorna cualquier valor char, en este caso MAXValue,
@quijote9117
@quijote9117 3 жыл бұрын
Faltó añadir explicación de qué es lo que pasa o cómo funciona el sistema, pero una vez que uno lo hace, puede analizarlo por su cuenta y entender el porqué funciona, les recomiendo simplemente seguir el flujo de su código cuando lo terminen y prueben.
@GianmarcoContreras
@GianmarcoContreras 4 жыл бұрын
cada vez se va poniendo mas dificil
@rodrigoivan2661
@rodrigoivan2661 6 жыл бұрын
maestro!!!
@hectorelpro123
@hectorelpro123 5 жыл бұрын
Porfin Entendi todo. a patadas pero lo entendi xd
@YoURoCkDrY
@YoURoCkDrY 4 жыл бұрын
Haz un tuto para explicarnos en slowmotion, jajajaja
@shi2866
@shi2866 3 жыл бұрын
Lo entendí prácticamente todo pero no entiendo porque al hacer el if para botar el mensaje de "está escrito correctamente" solo pone "if(ValidarExpresion())" y por alguna razón el programa le detecta como si hubiera puesto "si el método retrona true"
@Rockoonesong
@Rockoonesong Жыл бұрын
Porque el método es un valor booleano, si el metodo es "True" entonces el programa entiende que no hay ningun error de sintaxis, en caso contrario, entiende que si lo hubo. (Medio tarde te respondieron tu duda XD pero weno)
2 жыл бұрын
Lo transcribí solo por compromiso, porque la verdad quede perdido, gracias por la explicación.
@ROBERTINful
@ROBERTINful 5 жыл бұрын
En la creación de la clase Pila, en el método insertar, porque el UltimoValorIngresado tiene que tiene que tener información para poder efectuar una inserción? Y si se va a meter información por primera vez que no se supone que es nodo va a estar vacío, entonces no se puede insertar información porque estaría vacío, si alguien puede explicarme y resolver mi ignorancia se los agradecería mucho porque no entiendo
@linox20
@linox20 4 жыл бұрын
alguien secuestro al vedadero ernesto :(
@luisgera22
@luisgera22 4 жыл бұрын
lo que pasa es que para acabar este ejercicio es dificil si se agarra explicando además de que hay cosas muy complejas que creo yo ahora vale la pena solo memorizar, y poco a poco ir viendo cómo se hace comparando con otros ejercicios, el problema es que esperamos que cada video avance con algo nuevo pero en este caso estamos viendo todo lo visto siendo trabajado, cómo interactua y se vuelve mucho más complejo , no es lo mismo ir viendo un carro cómo funciona cada parte que armar un coche pues y no da tiempo
@gggggerman2008
@gggggerman2008 4 жыл бұрын
@@luisgera22 por eso es mejor hacer por ejemplo una lista tipo pila entre varios videos para que se pueda entender bien, de paso en el camino va explicando muy a la ligera metodos nuevos que no sabiamos como ese de retun character, o el de charAt(), entre otros , de paso parece rapido y furioso explicando
@andrestutoriales7812
@andrestutoriales7812 4 жыл бұрын
No entendí mucho pero por si acaso existe una libreria llamada java.util.stack que es nativa de java y funciona muy bien, creo que lo único que entendí fue la parte de valídar la expresión que es la mas importante de lo demas eso de nodo y pila no me queda nada claro
@sergiodanielportillocaball2047
@sergiodanielportillocaball2047 3 жыл бұрын
en el minuto 8:41, por que si al poner el char informacion = UltimoValorIngresado.informacion; antes del if, no funciona de la misma manera, a mi parecer no deberia haber ninguna diferencia en declarar antes o dentro del if funcionar igual pero al agregar un } mas a la expresion matematica, da error? public char extraer(){ char informacion = UltimoValorIngresado.informacion; if (UltimoValorIngresado != null) { UltimoValorIngresado = UltimoValorIngresado.siguiente; return informacion; } else { return Character.MAX_VALUE; } }
@sergiodanielportillocaball2047
@sergiodanielportillocaball2047 3 жыл бұрын
ahhh ya entendi, el problema esta que cuando la pila se vacia, osea UltimoValorIngresado == null, al llamar a la funcion extraer, intenta cargar al caracter informacion la informacion del UltimoValorIngresado pero como este tiene valor null por que esta vacio, carga el caracter con informacion null y como esto no es un caracter hace que el programa salte el error NullPointerException. En sintesis para poder declarar una variable tipo char, la informacion que se le carga no debe ser null, y para que no sea null, la pila no debe estar vacia. por lo que si o si debe estar dentro del if(UltimoValorIngresado != null).
@MARQUITOSGUALACBA
@MARQUITOSGUALACBA 6 жыл бұрын
Que funcion cumple el return pila.PilaVacia(); del final del programa?
@nicotoobebello6386
@nicotoobebello6386 5 жыл бұрын
Es lo mismo que usar "return true" Si entramos en el método PilaVacia() la condición dice que si "UltimoValorAgregado == null" nos devuelve true. Lo que se cumple siempre ya que en las condicionales de arriba de "return pila.PilaVacia()" se coloca un solo valor a la pila y luego se usa SIEMPRE el método "pila.Extraer()". Esto hace que la pila siempre agregue un valor y luego lo quite. Por lo que siempre la pila estará vacía y por eso el método pila.PilaVacia() nos devuelve "true" y por eso es lo mismo poner return true en vez de return pila.PilaVacia().
@AngelGonzalez-yo5gy
@AngelGonzalez-yo5gy 6 жыл бұрын
Que bien, Data Structure
@GianmarcoContreras
@GianmarcoContreras 4 жыл бұрын
Disculpa amigo Ernesto, pero creo que tu expresión solo esta validado para hacer eses cambio en las llaves, a tu ejercicio le falta validar lo demas. Aca les dejo el mio, me tarde como 3 horas, pero al final lo hize. Psdt: No valida las llaves externas, lo demas si. package clases; public class Nodo { char dato; Nodo siguiente; public Nodo(char dato) { this.dato = dato; siguiente = null; } } package clases; public class ListaTipoPila { Nodo UltimoValorIngresado; public ListaTipoPila() { UltimoValorIngresado = null; } public void Insertar(char dato) { Nodo NuevoNodo = new Nodo(dato); NuevoNodo.dato = dato; NuevoNodo.siguiente = UltimoValorIngresado; UltimoValorIngresado = NuevoNodo; } public char Eliminar() { if (UltimoValorIngresado != null) { char dato = UltimoValorIngresado.dato; UltimoValorIngresado = UltimoValorIngresado.siguiente; return dato; } else { return Character.MAX_VALUE; } } } package clases; import javax.swing.JOptionPane; public class InterfazPrincipal extends javax.swing.JFrame { public InterfazPrincipal() { initComponents(); setLocationRelativeTo(null); txtExpresión.setText("3*(7-6)-{3*7}-[6-3]"); } //Si ValidarExpresión devuelve un true, expresión correcta if (ValidarExpresión()) { JOptionPane.showMessageDialog(null, "La expresión es correcta"); } else { JOptionPane.showMessageDialog(null, "ERROR, La expresión es incorrecta"); } public boolean ValidarExpresión() { ListaTipoPila pila = new ListaTipoPila(); float emparejamientos = 0, inserciónes = 0; String cadena = txtExpresión.getText(); //Insertamos en la lista los caracteres a validar de la expresión for (int i = 0; i < cadena.length(); i++) { if (cadena.charAt(i) == '(' || cadena.charAt(i) == '[' || cadena.charAt(i) == '{' || cadena.charAt(i) == ')' || cadena.charAt(i) == ']' || cadena.charAt(i) == '}') { pila.Insertar(cadena.charAt(i)); inserciónes++; } } /*Cada vez que hay un signo de cierre, lo eliminamos y también el siguiente, y si es el signo de apertura que le corresponde, aumentamos un emparejamiento*/ for (int i = cadena.length() - 1; i >= 0; i--) { if (cadena.charAt(i) == ')') { pila.Eliminar(); if (pila.Eliminar() == '(') { emparejamientos++; } } else if (cadena.charAt(i) == ']') { pila.Eliminar(); if (pila.Eliminar() == '[') { emparejamientos++; } } else if (cadena.charAt(i) == '}') { pila.Eliminar(); if (pila.Eliminar() == '{') { emparejamientos++; } } } return inserciónes / 2 == emparejamientos; //Si inserciones es el doble de emparejamientos, devuelve un true } }
@nahuelito21
@nahuelito21 4 жыл бұрын
eso si que la parte de programación a lo ultimo en la clase interfaz no entendí un joraca
@josuedeleon9565
@josuedeleon9565 4 жыл бұрын
tendras algun tutorial de analizador lexico?
@Piczzi
@Piczzi 5 жыл бұрын
Lo que es el video 33 y éste, no profundizas en explicaciones que tienen un mayor grado de dificultad (a diferencia de cosas más sencillas de vídeos anteriores). Siendo sincero no entendí la mayoría de la explicación que nos diste. Ojalá que sólo sea cosa de estos dos vídeos y los demás sean más entendibles. De cualquier forma muchas gracias Ernesto por compartirnos tu conocimiento. Saludos.
@ericksasonet
@ericksasonet 4 жыл бұрын
igual yo andaba medio perdido y por eso consulte otras fuentes, otros videos sobre pilas y colas, luego de entender muy bien recien me vine a ver nuevamente los videos y ahora si entiendo todo.
@ROBERTINful
@ROBERTINful 5 жыл бұрын
con que fin se pone el ultimo método de saber si la pila esta bacía en la clase de la interfaz gráfica, espero y resuelvan mi ignorancia gracias
@enmanuelcastillozambrano2866
@enmanuelcastillozambrano2866 5 жыл бұрын
Creería que es para validar si el rectángulo de texto tiene o no texto para validar. En caso de que no tenga, arrojaría un mensaje tipo "inserte datos" o "Debe escribir datos para validar". PSDT: Estoy viendo el vídeo y aún no lo he terminado, voy en la mitad. Estaba mirando comentarios a ver si encontraba información de otras dudas que me surgieron. Saludos!
@enmanuelcastillozambrano2866
@enmanuelcastillozambrano2866 5 жыл бұрын
Díganme que no soy el único que ajusta EXACTAMENTE el JFrame al tamaño que pone Ernesto sin importar los números. xd
@gomezmarco
@gomezmarco 5 жыл бұрын
déjeme decirle mi estimado que si es el único jajajajaj
@ronpb3943
@ronpb3943 4 жыл бұрын
ah bueno la gente echándole la culpa a ernesto porque no entendieron, en vez de eso deberían de esforzarse y practicar mas , sin rendirse, hasta a llegar a dominarlo
@srmanzana7733
@srmanzana7733 6 жыл бұрын
Buen video Ernesto pero yo y creo que tambien hablo por la gente que nos gustaria que nos enseñes a crear juegos para android o para pc :)
@yisuslopez6240
@yisuslopez6240 3 жыл бұрын
A alguien mas se le hizo densa esta clase?
@nandodo203
@nandodo203 3 жыл бұрын
Me había confundido en un operador de comparación, gracias al debug pude averiguar cual había sido el error xd
@lautycabrera8437
@lautycabrera8437 2 жыл бұрын
this.setLocationRelativeTo(null); txt_expresion.setText("{3*(7-6)-{3*7}-[6-3]}"); mi programa no anda revise el codigo de arriba a abajo, es como si no me tomara esas lineas de codigo. lo compare con el del profe, borro esas lineas del codigo del profe y bien hace lo mismo que el mio. vuelvo a pegar esas lineas de codigo en el codigo del profe anda perfecto. las pego en mi codigo y sigue sin andar. mi error seria: No reacciona al SetLocationRelativeTo y tampoco al setText no veo el error.
@danielll7289
@danielll7289 4 жыл бұрын
velocidad de video 0.75
@alanrodriguez5616
@alanrodriguez5616 4 жыл бұрын
Alguien seria tan amable de explicarme por favor como funciona el método ValidarExpresion( ) , ya que no entiendo como sabe el programa al validar la ultima "}" ya que el ultimo valor ingresado seria "[". Muchas gracias.
@nandodo203
@nandodo203 3 жыл бұрын
Funciona guardando las caracteres "(, ), [, ],{, }" dentro de una pila, por ejemplo, si tengo la expresión
@nandodo203
@nandodo203 3 жыл бұрын
si tienes alguna duda de como se comporta el código siempre puedes usar el debugger; es muy útil cuando no sabes que es lo que está pasando, búscate algún tut por youtube de como usarlo en netbeans
@martinsandoval3
@martinsandoval3 6 жыл бұрын
Adoptame Ernesto!!! 🙂
@LaGeekipediaDeErnesto
@LaGeekipediaDeErnesto 6 жыл бұрын
Claro! 🙂
@enmanuelcastillozambrano2866
@enmanuelcastillozambrano2866 5 жыл бұрын
#Martin Sandoval x2 xd
@visionhumana6574
@visionhumana6574 4 жыл бұрын
@@enmanuelcastillozambrano2866 jajja
@ROBERTINful
@ROBERTINful 5 жыл бұрын
porque si comento la caja de texto para que entre en blanco desde el principio no funciona correctamente el método de validación, porque me marca que la validación esta correcta aunque la caja este vacía
@LaGeekipediaDeErnesto
@LaGeekipediaDeErnesto 5 жыл бұрын
¡Hola!, es importante mencionar que los cursos son completamente gratuitos y de acceso publico desde KZbin. Lamentablemente me es imposible brindar asesorías de manera personal debido a la alta demanda de solicitudes que recibo a diario, por tal motivo he colocado un filtro para otorgar asesorías a aquellos que realmente la necesitan. Si deseas una asesoría personal, o bien alguna clase privada, puedes contratar uno de los distintos paquetes que pongo a tu disposición solicitando información a través del correo electrónico: epmgrams@gmail.com, o bien, vía inbox en Facbook: facebook.com/LaGeekipediaDeErnesto, donde con gusto te haré llegar los costos y beneficios de cada uno de estos paquetes. Saludos
@ROBERTINful
@ROBERTINful 5 жыл бұрын
@@LaGeekipediaDeErnesto Antes que nada te agradezco por responderme, ya solucione que mis dudas anteriores pero en un futuro tomare uno de tus paquetes, quiero aprender java de manera profesional para dedicarme a trabajar de frilannce mas adelante.
@operacionesecelectronica9765
@operacionesecelectronica9765 4 жыл бұрын
por que crea un valor tipo NODO? , SE PUEDE HACER ESO? IGUA EN EL VIDEO ANTERIOR
@wilmercuevas6491
@wilmercuevas6491 4 жыл бұрын
como estas amigo, te explico por si aun no entendiste: Recuerdas cuando creamos un objeto de alguna clase? (lo que se llama crear una instancia) se hace de esta manera: MiClase objeto = new MiClase(); la parte a la izquierda de el signo igual es donde creamos el espacio de memoria donde se va a alojar ese objeto, como cuando creamos un entero : "int entero". Recuerdas que con los enteros podiamos declararlos y luego en otro momento darles un valor? Podiamos hacer: int entero = 34; (le damos el valor en la misma declaracion). o esto: int entero; entero = 454; (le damos el valor despues en otra parte de nuestro programa). Bueno, al igual que con los tipos de datos primitivos podemos hacer lo mismo, en este caso declaramos el objeto de nuestra clase Nodo (la que nosotros hicimos) y no le asignamos ningun valor. En el curso vimos instancias como por ejemplo: Nodo objeto = new Nodo(); pero en este caso no queremos hacer eso, ya que después es que vamos a ir dandole los valores a nuestro objeto, recuerda que vamos a estar constantemente creando nuevos nodos y luego eliminandolos, por lo tanto le damos los valores despues. Es decir, en la clase nodo tenemos el valor informacion y luego tenemos el espacio de tipo nodo que hace referencia al nodo siguiente, pero para cada nodo, el nodo que le sigue va a ser otro, va a ser distinto, entonces eso lo vamos a ir cambiando en nuestra clase lista en el metodo agregar nodo, y en el metodo eliminar nodo, fijate que ahi le damos y cambiamos los valores de el valor siguiente de la clase nodo. Espero haber ayudado.
@wilmercuevas6491
@wilmercuevas6491 4 жыл бұрын
Lo mismo pasa con el UltimoValorIngresado, que es de tipo nodo. Como el ultimo valor va a estar variando constantemente no lo podemos inicializar, eso lo vamos cambiando en nuestro programa, le damos el valor después. Es decir, en vez de hacer esto: Nodo UltimoValorIngresado = new Nodo(); estamos haciendo esto: Nodo UltimoValorIngresado; (aca creamos el espacio de memoria); Nodo MiNodo = new Nodo(); (aca creamos el nodo nuevo ) UltimoValorIngresado = MiNodo; (aca metemos nuestro objeto MiNodo dentro del espacio de memoria que habiamos declarado) y lo podemos actualizar despues también y no hay problema: UltimoValorIngresado = OtroNodoQueAcaboDeCrear; Para mas entendimiento recuerda cuando creabamos los objetos de tipo JButton, JLabel, JTextField, recuerda que estamos realmente creando instancias de la clase original de estos objetos. Es decir que existe una clase original llamada JButton y cuando nosotros hacemos nuestras interfaces hacemos instancias o copias de esa clase original, eso son los objetos. primero declarabamos todo: private JButton = boton1, boton2; y luego le dabamos los valores y empezabamos a darle sus propiedades haciendo uso de los metodos que estan dentro de la clase original; boton1 = new JButton(); boton1.setBounds(20,30,150,30); Ok ahora si, creo que ya con la explicacion cualquiera que lo lea lo va a entender, de todos modos recomiendo que investiguen el funcionamiento de los objetos por su cuenta.
@ronpb3943
@ronpb3943 4 жыл бұрын
en resumida no es "tipo nodo " solo es el nombre de la clase man
@ronpb3943
@ronpb3943 4 жыл бұрын
@@wilmercuevas6491 buena explicacion bro
@marceloperezcolman9409
@marceloperezcolman9409 3 жыл бұрын
@@wilmercuevas6491 Muy buena tu explicación, después de verlo a mi también me costo entender el porqué hasta que me di cuenta de que lo que estaba haciendo Ernesto era "declarar" el objeto en la clase Nodo y luego le daba "valor" en la clase Pila en el método InsertarNodo(). Muchas gracias!!!
@frandysedilberbaezamaro6924
@frandysedilberbaezamaro6924 4 жыл бұрын
todo venia excelente, pero con estos ejemplos de listas resulto muy complicado, tal vez fuese servido comenzar con unos mas sencillos y gradualmente aumentar la complejidad de los mismos. pero de todos modo gracias.
@jefri1993
@jefri1993 5 жыл бұрын
Hola Ernesto, como saber uno al momento de poner if(ValidarExpresion()) { JOptionPane(null, "La expresion esta escrita correctamente"); como saber que ahi nos devolvera una true si no especifica, y como se escribiria en el caso que digame if(ValidarExpresion()) nos devuelva un false ?? Gracias !!!!
@gomezmarco
@gomezmarco 5 жыл бұрын
Eso ya está prediseñado por Java, por llamarlo de alguna manera, siempre que se ponga un método booleano sólo, es por que esperas un valor "true", si quieres lo contrario debes poner entre los paréntesis del IF lo siguiente if( !ValidarExpresion() ) ...En síntesis si buscas un "false" debes poner adelante del método un "!"
@Jose-ov3vv
@Jose-ov3vv 6 жыл бұрын
Me gustaría que enseñases a crear plugins de Minecraft :)
@antudippolito1183
@antudippolito1183 3 жыл бұрын
no den dislike gatos
@sergiorechi2534
@sergiorechi2534 5 жыл бұрын
Las listas tipo pila se me están atragantando. Espero que no sean de gran utilidad, porque pese a ver los videos varias veces no consigo pillarlo.
@ericksasonet
@ericksasonet 4 жыл бұрын
Antes de ver estos videos de pilas y colas te aconsejo ver el video de Tutoriales de Programacion Explicada, la parte de pilas y colas, luego te vuelves a ver los videos del profesor Ernesto y entenderas todo facilmente.
@ronpb3943
@ronpb3943 4 жыл бұрын
@@ericksasonet oh que buen canal gracias por recomendarlo
@valentinpoggio5389
@valentinpoggio5389 4 жыл бұрын
Este curso es muy bueno, pero la verdad que este tema y POO están super mal explicados. POO yo por suerte lo entendí gracias a Programación ATS (Q.E.P.D.) que lo explica mucho mejor. Concretamente en este video, El funcionamiento del método VERIFICAR no se explica, y es la clave del programa. En fin, una lástima, ya buscaré otras vías para entender este tema en profundidad
@anasepulvedadesanchez4235
@anasepulvedadesanchez4235 3 жыл бұрын
para los que leparece rapido...en cuanto tiempo creen que los clientes esperan sus programa...jajaja no todo el mundo puede ser programador..definitivamente
@rominagiselleviola3517
@rominagiselleviola3517 3 жыл бұрын
Ernesto muchas gracias por todos tus videos, me costo mucho entender todo el tema de Pila, porque explicas muy rapido y no das ejemplos. Saludos.
@pablobernal3329
@pablobernal3329 4 жыл бұрын
Me estas fallando Ernesto :c
@joseestebanmedinaparedes7785
@joseestebanmedinaparedes7785 5 жыл бұрын
Nunca hiciste un video de apuntadores.
@hugohernandez135
@hugohernandez135 3 жыл бұрын
senti que esta explicacion estuvo muy rapido y a las patadas...no explicas por que la funcionalidad de ValidarExpresion va antes de la ultima llave ni por que los if van sin else o por que se coloca el return depilaVacia en la tercera llave. De verdad que no entendi nada nada baje el codigo para irlo destripando por mi cuenta pero termine peor. Este video si estuvo muy mal pero se agradece
@luismayorga2886
@luismayorga2886 5 жыл бұрын
Ya vali... :(
@erickkerber1334
@erickkerber1334 4 жыл бұрын
a mi me marca que la expresion esta mal escrita
@GianmarcoContreras
@GianmarcoContreras 4 жыл бұрын
solo esta validado para esa forma
@abraham3336
@abraham3336 6 жыл бұрын
Despues enseña a programar un juego
@434emm
@434emm 4 жыл бұрын
joder, odio esas pilas
@danielcampos4062
@danielcampos4062 4 жыл бұрын
Malditas Pilas, no entiendo nada
@brandpcalderon5343
@brandpcalderon5343 3 жыл бұрын
Hablas mucho, si se supone que es un curso de Java Intermedio no deberías estar explicando métodos básicos como charAt() o como hacer una pila casera con nodos, sobre todo "Usaremos una estructura condicional, es decir un if else" ¡Que redundante eres!
@GianmarcoContreras
@GianmarcoContreras 4 жыл бұрын
que funcion cumple return character.MAX_VALUE; ????
@nandodo203
@nandodo203 3 жыл бұрын
creo que en realidad puede haber culquier cosa, con tal que no sea '(' ')' '[' ']' '{' '}'; tiene que retornar algo sí o sí, y como en el método ValidarExpresion solo verifica con esos caracteres entonces no hay problema
Curso Java Intermedio #35 | Listas tipo cola en Java (Estructura de datos)
24:10
La Geekipedia De Ernesto
Рет қаралды 86 М.
amazing#devil #lilith #funny #shorts
00:15
Devil Lilith
Рет қаралды 18 МЛН
Perfect Pitch Challenge? Easy! 🎤😎| Free Fire Official
00:13
Garena Free Fire Global
Рет қаралды 56 МЛН
бабл ти гель для душа // Eva mash
01:00
EVA mash
Рет қаралды 7 МЛН
Resolviendo prueba técnica para Java Junior☕
53:55
MitoCode
Рет қаралды 33 М.
Curso Java Intermedio #39 | Gráficas en java - Gráfica circular o por sectores
22:50
Bloques de inicialización en Java
31:21
Raul Cosio
Рет қаралды 164
Curso Java Intermedio #43 | Altas y Consultas a una base de datos
31:54
La Geekipedia De Ernesto
Рет қаралды 107 М.
Curso Java Intermedio #44 | Bajas y Modificaciones a una base de datos
17:31
La Geekipedia De Ernesto
Рет қаралды 45 М.
Curso Java Intermedio #33 | Listas tipo pila en Java (Estructura de datos)
31:08
La Geekipedia De Ernesto
Рет қаралды 120 М.
Árboles Binarios Explicación e Implementación en Java
23:00
grijalvaromero
Рет қаралды 43 М.
Analizador Léxico Sintáctico con Java
13:11
Edd Atzin
Рет қаралды 4,5 М.
Curso Java Intermedio #47 | Conexión a Base de Datos remota MySQL
16:49
La Geekipedia De Ernesto
Рет қаралды 43 М.
Curso Java Intermedio #36 | Recursividad en Java
9:22
La Geekipedia De Ernesto
Рет қаралды 98 М.
amazing#devil #lilith #funny #shorts
00:15
Devil Lilith
Рет қаралды 18 МЛН