Ejercicios para estimular la lógica de programación con Javascript

Поділитися
Вставка
  • Опубліковано 30 вер 2024
  • Este Tip de Tutoriales a tu Alcance es un fragmento del curso completo: "Aprende JavaScript desde cero y crea Aplicaciones Web con NodeJS, Angular y MongoDB".
    Si desea el material de apoyo de este curso, conocer mucho más acerca de JavaScript, Typescript, Angular, Nodejs y mongoDB y obtener un certificado de conocimiento ingresa aquí:
    ► tutorialesatua... (Descubre descuentos hasta del 95%)
    Cuando comienzas en este mundo de la programación te das cuenta que debes tener la destreza de interpretar y resolver problemas a través de algoritmos.
    Si estás comenzando en este mundo de la programación o ya lo estás haciendo desde un tiempo atrás, te recomiendo estos ejercicios para que estimules la capacidad de resolver problemas de lógica a través de algoritmos realizados con JavaScript Orientado a Objetos.
    🎓 Catálogo completo de Cursos Online de Tutoriales a tu Alcance: tutorialesatua...
    ► SÍGUENOS AQUÍ ◀
    📰 Blog: tutorialesatua...
    📑 Facebook: / tutorialesatualcance
    📷 Instagram: / tutorialesatualcance
    👨‍💼 LinkedIn: / juanfernandourrego
    #tutorialesatualcance #javascript #desarrolloweb

КОМЕНТАРІ • 85

  • @Angel-VTek
    @Angel-VTek 4 роки тому +35

    Yo desde niño estaba interesado en la electrónica y el funcionamiento de todo su sistema(veía todas las pistas como una ciudad bien ordenada xD) . Ahora estudio Ciencias de la computación, pero también tengo grandes habilidades para el arte de pintura/dibujo, incluso uso matemáticas trigonométricas para los tipos de diseño y medidas que uso en éstos. Así que creo pude desarrollar un tanto de ambos lados, aunque aún estoy en constante práctica de más desarrollo de la lógica de algoritmos, pero es algo que se va adaptando a tu cerebro.
    Es por decir, usando el ejemplo de los dibujos, cuando era niño no era tan bueno, hasta que seguí practicando y fue donde me dí cuenta que no es el "talento" o que seas un genio, sino el empeño que le pones y ser autodidáctico en todo lo que haces, crear y destruir, no temer a fallar.
    Hasta hace tiempo no entendía un simple "for" en la programación, y ahora es parte de un simple código en mi cerebro.
    Lo que quiero dar a entender es que no se den por vencidos, sigan practicando, el cerebro es una goma y a la vez esponja, pues se expande y al mismo tiempo absorbe

  • @videorecords3931
    @videorecords3931 6 років тому +39

    Mi cabeza va reventar :v 😂

  • @eliudjhaleel
    @eliudjhaleel 6 років тому +205

    soy programador y diseñador, no se me ha comprometido la creatividad, ni la lógica de programación.
    programo, ilustro, dibujo, animo, gracias a Dios, yo pienso que es solo tener disciplina en las 2 áreas y veréis como poco a poco vas ampliando tu mente. Yo comencé como programador y luego con el tiempo fui aprendiendo otras disciplinas. Un saludo

    • @marcosvargas1504
      @marcosvargas1504 6 років тому +13

      Eres divergente

    • @leonisocamponieves8941
      @leonisocamponieves8941 6 років тому +1

      Ya somos dos con el mismo perfil.

    • @Ubermensch-nw3iv
      @Ubermensch-nw3iv 6 років тому

      Gracias a Dios

    • @abdonsanchez469
      @abdonsanchez469 5 років тому +3

      cuanto tiempo te llevo aprender a programar para luego aprender diseño. soy nuevo en esto y mas allá de que todos tenemos distintos tiempos de aprendizaje quería saber cual fue el tuyo :)

    • @gibrancordoba100
      @gibrancordoba100 5 років тому +1

      Yo comencé al revés... Diseñador - desarrollador web (y pensando en aprender flutter para las apps multiplataforma) ... Aunque el mismo mercado te lo acaba pidiendo si es que eres un freelancer... Te abre muchas más puertas...

  • @emersonmadrid
    @emersonmadrid 4 роки тому +15

    Me complico el primer ejercicio. Parecía fue fácil en papel.

  • @noahkrossa7928
    @noahkrossa7928 4 роки тому +30

    el cerebro funciona como un órgano completo, las funcionalidades lógicas, creativas, emocionales...etc se desempeñan en todo el cerebro independientemente del hemisferio. en la actualidad eso está más que demostrado

  • @arredi-alpha7308
    @arredi-alpha7308 6 років тому +29

    mas tutoriales así por favor.

  • @Mrcoder-qh1kp
    @Mrcoder-qh1kp 6 років тому +35

    El ejercicio de los caballos en python:
    class caballos:
    nombre = ""
    viejo = 0
    lento = 0
    claro = 0
    def __init__(self,nombre,viejo,lento,claro):
    self.nombre = nombre
    self.viejo = viejo
    self.lento = lento
    self.claro = claro
    cab = [caballos("MAC",2,1,1),caballos("SMITH",1,1,2),caballos("JACK",1,2,1),caballos("WILLY",1,1,1)]
    for i in range(len(cab)):
    if(cab[i].viejo==2):
    viejo = i
    elif(cab[i].lento==2):
    lento = i
    elif(cab[i].claro==2):
    claro = i
    else:
    nada = i
    print("-El caballo más viejo = ",cab[viejo].nombre)
    print("-El caballos más lento = ",cab[lento].nombre)
    print("-El caballo más claro = ",cab[claro].nombre)
    print("-El caballo no relevante = ",cab[nada].nombre)

    • @0x7ddf1
      @0x7ddf1 4 роки тому +9

      No entendi😀👍

  • @jymbo2052
    @jymbo2052 5 років тому +3

    Buenas, esta es mi propuesta de solución al problema de los caballos.
    Me basé en la solución que se ve en el video, pero que cambie algunas cosas para que fuera un poco más eficiente y creo que es más sencilla.
    En vez de asignar los 12 valores aleatorios para luego preguntar si esa combinación es la correcta.
    Yo solo asigno 2 valores aleatorios en cada do while, lo cual reduce mucho, las combinaciones posibles.
    Cada uno de los 9 do while representa cada una de las condiciones del problema.
    En el primer caso, cuando estoy seguro que el caballo de Mac es más oscuro que el Smith, continuo a la siguiente condición.
    Deje una variable "cant" para que puedan observar la cantidad de veces que se realizan las validaciones.
    Cada do while pregunta de 1 a 5 -10 (mas o menos) veces antes de conseguir la combinacion correcta.
    Esto reduce mucho la eficiencia, ya que con el que se explica en el video, la cantidad de validaciones para cada combinación
    puede llegar a las 6000 veces.
    En en el interior de algunos do while estan comentadas una de las variables, ya que esas variables ya fueron calculadas en do whiles anteriores,
    las deje ahi, para que se pudiera seguir la logica del código más facilmente.
    La condición de cada do while tiene un truquito, XD, hay que negar la exprecion (usando "!" ) para que los resultados sean correctos.
    Espero que este codigo ayude a alguien. Y que alguíen se anime a proponer soluciones más eficientes.
    Un saludo y gracias al creador del canal, por proponer este tipo de problemas para que todos podamos practicar.
    var caballos =[
    Mac ={edad:0, vel:0, color:0, nombre:'Mac'},
    Smith={edad:0, vel:0, color:0, nombre:'Mac'},
    Jack ={edad:0, vel:0, color:0, nombre:'Mac'},
    Willy={edad:0, vel:0, color:0, nombre:'Mac'},
    ]
    cant =0;
    do {
    cant++;
    Mac.color = Math.ceil(Math.random()*2)
    Smith.color = Math.ceil(Math.random()*2)
    } while (!(Mac.color > Smith.color));
    do {
    cant++;
    Mac.vel = Math.ceil(Math.random()*2)
    Jack.vel = Math.ceil(Math.random()*2)
    } while (!(Mac.vel > Jack.vel ));
    do {
    cant++;
    Mac.edad = Math.ceil(Math.random()*2)
    Jack.edad = Math.ceil(Math.random()*2)
    } while (!( Mac.edad > Jack.edad));
    do {
    cant++;
    Willy.vel = Math.ceil(Math.random()*2)
    /*Jack.vel = Math.ceil(Math.random()*2)*/
    } while (!(Willy.vel > Jack.vel ));
    do {
    cant++;
    /* Mac.edad = Math.ceil(Math.random()*2),*/
    Willy.edad = Math.ceil(Math.random()*2)
    } while (!( Mac.edad > Willy.edad));
    do {
    cant++;
    /* Mac.edad = Math.ceil(Math.random()*2),*/
    Smith.edad = Math.ceil(Math.random()*2)
    } while (!( Mac.edad > Smith.edad));
    do {
    cant++;
    Willy.color = Math.ceil(Math.random()*2)
    /*Smith.color = Math.ceil(Math.random()*2)*/
    } while (!( Willy.color > Smith.color));
    do {
    cant++;
    Smith.vel = Math.ceil(Math.random()*2)
    /*Jack.vel = Math.ceil(Math.random()*2)*/
    } while (!( Smith.vel > Jack.vel));
    do {
    cant++;
    Jack.color = Math.ceil(Math.random()*2)
    /* Smith.color = Math.ceil(Math.random()*2)*/
    } while (!( Jack.color > Smith.color));
    console.log("cantidad de validaciones totales: ", cant);
    console.log("caballo de Mac", Mac);
    console.log("caballo de Smith", Smith);
    console.log("caballo de Jack", Jack);
    console.log("caballo de Willy", Willy);
    ---------------------------------------------------------------------------------------------------------------
    Esto es solo para ver la respuesta más detallada en consola XD.
    var elmasclaro = caballos.filter(function(it){
    return it.color < 2;
    });
    var elmasviejo = caballos.filter(function(it){
    return it.edad > 1;
    });
    var elmaslento = caballos.filter(function(it){
    return it.vel < 2;
    });
    console.log("El caballo mas claro es el de: " + JSON.stringify(elmasclaro[0].nombre))
    console.log("El caballo mas viejo es el de: " + JSON.stringify(elmasviejo[0].nombre))
    console.log("El caballo mas lento es el de: " + JSON.stringify(elmaslento[0].nombre))

  • @bryanenid1228
    @bryanenid1228 7 років тому +37

    Genial tutorial, estoy aprendiendo JS y se algunas cosas basicas, pero al momento de hacer mi code, no se que utilizar para hacer lo que estoy pensado. de alguna forma entendi el tutorial pero aun me falta practica. Me fue de mucha ayuda, gracias.

    • @franco.delcas
      @franco.delcas 7 років тому +8

      Lo que necesites para convertir lo que piensas en código te lo brindará JavaScript con sus propiedades, métodos, eventos, condicionales, funciones, etc. La idea que quieres plasmar en código hazla bajo los términos de primeros principios, encuentra lo más básico de tu idea y conviértelo en código, desde ahí ve escalando junto con investigación, te aconsejaría investigar en MDN (Mozilla Developer Network) y las preguntas publicadas en Stack Overflow.

    • @rtcwkillz
      @rtcwkillz 6 років тому +3

      La practica hara que memorices eso es como la arimetica entre mas las uses. Menos se te olvidara. Te recomiendo que hagas ejercicios como estos y vayas aumentando la dificultad o empieces crear un app o sitio web pero debe ser continuo no te quedes sin hacer programacion

    • @FullCoins
      @FullCoins 6 років тому

      Qué programa se usa para escribir código?

    • @josemanuelvalle1426
      @josemanuelvalle1426 5 років тому +1

      @@FullCoins Sublime Text 3 es uno de los más utilizados. www.sublimetext.com/3

    • @sespindola7
      @sespindola7 4 роки тому

      @@rtcwkillz que opinan del lenguaje de programacion de apple que lanzo en 2019, es bueno para principiantes? cuales serian sus desventajas.
      (swift)

  • @AdrianGarcia-dj1vu
    @AdrianGarcia-dj1vu 5 років тому +31

    Lo primero, solo he visto el primer problema. El cual creo que tiene mal formulada la pregunta, o no das una respuesta clara. Dice que C llega inmediatamente despues que B, la cual cosa no quiere decir que B llega primero. Por tanto tu orden de BCDA no tiene por que ser correcto. Tambien podria ser ADBC y seguiría siendo una respuesta valida.

    • @sebastianestrada1311
      @sebastianestrada1311 4 роки тому +2

      Yo concuerdo con usted, debio aclarar cual llegaba primero, porque luego eso deja la posiblidad de que sea primero A o B, porque si ponemos ADBC, en ese caso también C llego inmediatamente detrás de B y D sigue de forma indirecta en medio de A y C. Yo pienso que debe ser mas específico por que en la programación real se deben tener datos específicos y precisos.

    • @mariocalcetin7602
      @mariocalcetin7602 4 роки тому +1

      yo habia obtenido el mismo resultado al primer intento pero luego relei el problema y el hecho de que c llegara inmediatamente detras de B me ilumino el pepino.

  • @pepejose43
    @pepejose43 6 років тому +2

    amigo pero creo yo que hay un conflicto en la solucion, porque dices que d esta entre a y c y como sabes si a estaba en 2do luar o c esta en 2do lugar e ahi la incognita ,saludos.

  • @escorialjuanmiguel
    @escorialjuanmiguel 7 років тому +5

    para optimizar un poco el codigo, en vez de hacer combinaciones aleatorias, yo realizaría permutaciones sin repetición (es decir si son 4 elementos sin repetición serian 24 combinaciones) así se evitan realizar la misma combinacion dos veces. si son 4 elementos no pasa nada pero si son 100 cambia la cosa.

    • @masta90
      @masta90 6 років тому +7

      Juan Miguel Escorial Podrias poner tu codigo? Gracias

  • @HardLynxstyle
    @HardLynxstyle 6 років тому +5

    No sé que hago mirando esto si solo se PHP :v

  • @MyMay96
    @MyMay96 5 років тому +2

    en el primer ejercicio la respuesta también pudo haber sido ADBC, no?

  • @G16Luis
    @G16Luis 5 років тому +3

    aceptaelreto y solveet son paginas en español para practicar la logica como en el tutorial.

    • @vcatalina
      @vcatalina 4 роки тому

      No me aparecen en YT :/

  • @CarlosACastilloMadrigal
    @CarlosACastilloMadrigal 6 років тому +2

    En el primer ejercicio. Si D llegó en medio de A y C entonces llegó igual que B y no de tercero. ¿Pueden explicar el razonamiento?

    • @CarlosACastilloMadrigal
      @CarlosACastilloMadrigal 6 років тому +1

      Eso suponiendo que A llegó de primero

    • @elsemur8256
      @elsemur8256 6 років тому +4

      Si partes en que C está justo después de B, y D está entre A y C, es decir en medio solo hay un sitio posible: si por ahora tienes B-C, que son dos posiciones seguras, para que D vaya entre C y A tendrá que ir B-C-D-A, no hay otra manera de colocarlo. B en ningún momento está entre nada, solo sabemos que C llegó despues que B. La posición de A es por pura eliminación. Si lo haces al revés B te saldría por eliminación. Podemos partir en que D está entre C y A no? bien pues pongamos C-D-A, dónde estaría la B si sabemos que está antes que la C, porqué C llegó inmediatamente después? pues solo puede estar delante, otra vez quedaría B-C-D-A, de cualquiera de las formas el resultado es el mismo.

  • @melchiah6603
    @melchiah6603 6 років тому +1

    Creo que esa teoría del reparto d e las tareas del cerebro de los emeisferios según la actividad, ya fue descartada, ya que hay personas que por alguna razón, carecen de uno de los emeisferios que el resto de su cerebro toma el control del restante. Sin embargo concuerdo con usted, sólo es práctica.

  • @borja6936
    @borja6936 4 роки тому

    el video muy guya para entender distintas funcionalidades de JS pero, de dodne se saca el orden en el primer ejercicio? e mi entender porira ser badc o bcda no? : Gracias

  • @goth14wx47
    @goth14wx47 6 років тому +2

    hola, muy buen video, aprendi bastante con esos algoritmos ya que los que me enseñaron para poder empezar a programar, se necesitaba de una entrada casi siempre, tienes mas de estos algoritmos? , muchas gracias.

  • @Lashistoriasdelilith
    @Lashistoriasdelilith 4 роки тому +1

    Ay x Dios q difícil

  • @technologywlm8206
    @technologywlm8206 4 роки тому +1

    Donde se consigue mas ejercicios de programacion???

  • @jaZZmataZZ96
    @jaZZmataZZ96 6 років тому +1

    El ultimo ejercicio no se si ed muy fácil o muy difícil xD

  • @juniorgomezcoca8230
    @juniorgomezcoca8230 4 роки тому

    En el primero me sale ADBC ,CUANDO DICE C INMEDIATAMENTE TRAS DE B ,SIEMPRE VA SER BC ?

  • @djnasfy911
    @djnasfy911 6 років тому +2

    que programa usas para hacer lo que hacces xd en el min 3:02 porfas

  • @xXAbidorXx
    @xXAbidorXx 5 років тому +1

    Cuando actualizo el navegador, algunos atletas llegan igual, 2 atletas en el mismo puesto 😂

    • @einmarcos
      @einmarcos 5 років тому

      Eso es por el Random, es al azar y puede que se repitan los resultados. Por eso Alfonzo Granados por ahí arriba dijo que la logica no es efectiva. Pero en fin, es útil para empezar a entender y aplicar estas cosas.

    • @freddygonzalez9778
      @freddygonzalez9778 4 роки тому

      Revisa que tengas todo bien. Quizás cuando haces la condición para saber si resultado es verdadero recuerda colocar los paréntesis porque esta es una función.
      if (a.resultado()){
      }

  • @jorgetejeda99
    @jorgetejeda99 6 років тому +5

    Resolviendo el ejercicio 3, si no lo has resuelto no continues leyendo lol.... Mil gracias me has ensenado analizar mejor los datos
    /*
    Tenemos cuatro perros: un galgo, un dogo, un alamo y un podenco.
    Este ultimo come mas que el galgo; el alamo come mas que el galgo y
    menos que el dogo, pero este come mas que el podenco. Cual de los
    cuatro perros come menos?
    Resultado:
    galgo 1
    dogo 4
    alamo 3
    podenco 2
    */
    var d = {
    galgo: 0,
    dogo: 0,
    alamo: 0,
    podenco: 0,
    resultado: function () {
    if (
    d.podenco > d.galgo &&
    d.alamo > d.galgo &&
    d.alamo < d.dogo &&
    d.dogo > d.podenco &&
    d.alamo > d.podenco
    )
    {
    return true;
    }
    return false;
    },
    intervalo: setInterval(function () {
    d.galgo = Math.ceil(Math.random() * 4);
    d.podenco = Math.ceil(Math.random() * 4);
    d.alamo = Math.ceil(Math.random() * 4);
    d.dogo = Math.ceil(Math.random() * 4);
    if (d.resultado()) {
    console.log('dogo come: ' + d.dogo);
    console.log('alamo come: ' + d.alamo);
    console.log('podenco come: ' + d.podenco);
    console.log('galgo come: ' + d.galgo);
    clearInterval(d.intervalo);
    }
    }, 1)
    }

  • @The_Ch0sen_0ne
    @The_Ch0sen_0ne 4 роки тому

    Hasta que edad puedes aprender a programar?..

  • @developer1328
    @developer1328 6 років тому +1

    muy bueno, se agradece, a practicar se ha dicho :D

  • @chicosun
    @chicosun 5 років тому +7

    ¿Por qué no utilizas 'this'?

  • @cristianojeda602
    @cristianojeda602 7 років тому +1

    muy bueno. gracias

  • @witko7239
    @witko7239 5 років тому

    Interesante tu manera de plantear tus metodos y buscar las variables para una solucion Nice Video Man.

  • @karenmossetto
    @karenmossetto 7 років тому +1

    Muy bueno

  • @marifloresjimenes7374
    @marifloresjimenes7374 6 років тому

    Buen video amigo te mereses el like y mi suscripcion....

  • @CristianCSanta
    @CristianCSanta 6 років тому +1

    Gracias hermano...

  • @kevinromanarroyolerma8402
    @kevinromanarroyolerma8402 6 років тому

    mas videos asi por favor n.n

  • @juanjuanca2789
    @juanjuanca2789 6 років тому

    muy interesante gracias ,sigan adelante .

  • @anaevsgallegoosorio7983
    @anaevsgallegoosorio7983 4 роки тому

    Gracias.

  • @josephbarber7633
    @josephbarber7633 6 років тому

    Regalame el curso de udemy

  • @alfonsogranados4593
    @alfonsogranados4593 6 років тому +6

    Es brutal!!!!!
    Malísima tu lógica dependes demasiado de random, en vez de empujar el resultado mediante comprobaciones, esperas que lo genere al azahar lo cuál es una carga inmensa al procesador, imagina la cantidad de combinaciones que esto te entregará y por si eso no fuera suficiente, no hay modo de garantizar que estas no se repitan así que podrían ser muchos más intentos.
    Fragmentos de código tan sencillos deberían arrojar resultados en unas pocas diezmilésimas de segundo.
    Además de lo anterior, ¿porque intervalos en lugar de bucles?

  • @jorgesalamanca2726
    @jorgesalamanca2726 4 роки тому

    Super!

  • @susancruz1819
    @susancruz1819 5 років тому

    JS 😍

  • @SuperChrispol
    @SuperChrispol 6 років тому +4

    Exelente amigo....tu nivel de logica me impresiona espero algun dia poder razonar asi muchas gracias

  • @Mrcoder-qh1kp
    @Mrcoder-qh1kp 6 років тому

    #Problema de los perros
    import random
    nPasados = []
    cant = [None]*4
    perros = ['galgo','dogo','alano','podenco']
    for i in range(4):
    r = random.randint(1,4)
    while(r in nPasados):
    r = random.radint(1,4)
    cant[i] = r
    print(perros[cant.index(4)]," es el perro que menos come")
    input("")

  • @Eli-bw9mo
    @Eli-bw9mo 5 років тому

    Muchas gracias, son ejercicios muy útiles, ojalá y hagas mas

  • @happytotter2133
    @happytotter2133 5 років тому +2

    Tú primer ejercicio no está mal el resultado pero la lógica podría mejorar
    CORRÍJANME SI NO:
    Pero con esas condiciones tienes al menos 2 resultados
    B A
    C Y D
    D B
    A C
    Porque C esta directamente después de B y D está entre C y A en ningún momento dice q D es menor que B o otra cosa. Entonces la función debe estar echa para retornar true en estos 2 casos
    Solo digo :|

  • @TheHandymanIMPERIO
    @TheHandymanIMPERIO 6 років тому

    Hola ... ...
    como se llama el programa que usas y donde puedo descargarlo

  • @edgardobonilla9736
    @edgardobonilla9736 7 років тому +2

    Primer comentario

  • @federicostoppo1117
    @federicostoppo1117 6 років тому

    Tengo una duda con el de los corredores!! Si D llego en medio de A y C, no se podría dar el caso de que A haya llegado primero (Osea antes que B) = (A B D C), por lo tanto quedaría el dilema de saber las posiciones de B Y D , por que B podría haber llegado antes que D = (A B D C), o bien D pudo haber llegado antes que B = (A D B C), y en este caso D seguiría estando entre A y C.
    Muy bueno el video!!!

    • @federicostoppo1117
      @federicostoppo1117 6 років тому +1

      Ya que en ningún momento el ejercicio dice que B es el primero en llegar!!

    • @betontoyo
      @betontoyo 5 років тому +1

      Exacto