Tocó el turno de hablar de las estructuras de decisión y operadores lógicos quiero que preste mucha
atención a esto porque les va a parecer tan pero tan fácil que no van a poder creer que realmente esto
estaba en un lenguaje de programación.
Imagínense que ustedes se paran en una esquina y tienen que decidir si van a la otra calles si cruzan
la calle o no.
Bueno muy bien qué es lo que van a hacer ustedes van a ver un semáforo y van a ver los colores del semáforo
y van a decidir su mente va a tomar decisiones va a dotarse de información cuál es la información.
En realidad lo primero que van a adquirir son datos.
Cuál es el dato el color del semáforo.
Otro dato es si viene un auto no en base a esa información en base a esos datos ustedes van a armar
la información el color rojo significa que debo detenerme muy bien nuestro cerebro usó parte de la memoria
al ojo el dato del color del semáforo.
Luego usó ese dato para obtener en base al procesamiento información obtuvo la información cuál es la
información.
El semáforo en rojo me indica que no debo cruzar si el semáforo me indica que no debo cruzar.
Yo ya estoy ejecutando una estructura de decisión.
Estoy tratando de decidir qué hacer entonces si tuviéramos que mencionar cuál es esa estructura de decisión
en en palabras en español diríamos si el semáforo en rojo entonces no cruzo.
De lo contrario si el semáforo no está en rojo pregunto si el semáforo está en verde si el semáforo
en verde empiezo a cruzar la calle.
De lo contrario significa que el semáforo está en color amarillo y entonces debo ejecutar una rutina
de espera.
Todo esto que ustedes hacen en cada momento con cada cosa en su día a día cada segundo que fue llevado
a los lenguajes de programación es por eso que tenemos estructuras de decisión una estructura de decisión.
Es una pregunta que hace nuestro sistema en base a información y en base a datos que vamos a tener seguramente
grabadas en variables y en base al valor de esas variables vamos a decidir si hacemos una tarea u otra
tarea.
Si vamos a nuestro blog Clem lo que vamos a ver.
Nosotros tenemos aquí un ejemplo quiero que nos saquemos de encima este ejemplo porque cada vez que
entremos nos va a pegar todo esto en la cara y ustedes seguramente deben saber o deben querer saber
qué es lo que hace aquí lo que tenemos es la creación de una variable.
Recuerden que dijimos que los lenguajes creaban variables y las creaban en un área de memoria en la
memoria RAM en la memoria que no es el disco rígido en la memoria que si se apaga la PC se apaga toda
esa memoria perdemos nuestra información entonces estamos creando una variables y la llama Canout es
un contador.
Recuerden que esto está en inglés un contador al contador inicialmente ejecuta una sentencia y le mueve
el valor de 1.
Esta es la manera de asignar un valor a una variable le dice que count es igual a 1 y luego lo que le
dices ejecuta lo que esté dentro de esta estructura de iteración que lo vamos a ver en capítulos siguientes.
Mientras el Weyl significa mientras mientras Khun mientras la variable Count sea menor o igual a 3 ejecuta
esto qué es lo que hace esta sentencia.
Envía una alerta de pantalla que dice Hola mundo en inglés y luego lo que hace a la variable k le suma
1.
Esto es así.
Cam es igual al valor que ya tenía Count +1.
Esta es la manera de sumar 1 a una variable entonces lo que logramos es que lo que logramos es que durante
dos iteraciones o tres ahora lo voy a ejecutar me va a mostrar un mensaje que dice que lo.
Aquí tenemos el plan para ejecutarlo lo voy a hacer click y vamos a ver una ventana que me dice Gelo
Word la muestra una vez.
Cuando le doy a aceptar la vuelve a mostrar por segunda vez y cuando le doy a aceptar la vuelve a mostrar
por tercera vez.
Al tercer click ya se fue de la iteración de esta estructura de iteración y como no tiene ninguna instrucción
más debajo terminó el programa.
Todo esto que está haciendo en JavaScript es lo que tenemos aquí.
Visualmente esto es los bloques que por eso se llama Block CLI los bloques de estructuras que me permiten
visualmente armar un programa está hecho para que si ustedes no conocen el lenguaje lo armen visualmente
de una manera amigable y Google lo que hace les traduce esto a un código.
Por supuesto pueden hacer cosas mucho más grandes estructuradas pero la idea es que usen esto para aprender
a programar no que hagan programas con esto.
No conozco a nadie ningún programador profesional que venga Locklear a armar programas se entiende.
Esto es para aprender a programar es como cuando a los chicos les dan algún programita en una computadora
que les enseña a sumar.
Bueno esto es visualmente para aprender a programar.
Si yo quiero meter en mi programa estructuras de decisión que para eso estamos viendo en este capítulo
voy a venir a Logic todos son nuestro son estructuras de lógica por sí o por no una condición es verdadera
o es falsa y vamos a entrar en las estructuras.
Vamos a ver luego que hay varias estructuras lógicas.
No vamos a empezar con la más fácil que es el IFF.
Todo esto viene del inglés vamos a colocarlo aquí.
Voy a borrar esto vamos a hacer un pequeño programita fíjense que al borrarlos se borró de aquí el Weyl
que teníamos.
Tenemos nuestra variable nuestro contador aquí lo aceptamos el creíais.
Si ustedes quieren crear una variable entran aquí en variables y tienen él quería que no se va a mostrar
visualmente por eso aquí no tengo nada que me diga que se crea una variable.
Simplemente la menciona aquí el quería porque las variables en casi todos los lenguajes nos obligan
a primero crearlas y luego usarlas porque aclaro esto porque hay algunos lenguajes que con hacer esto
count es igual a uno ya.
El compilador el lenguaje de programación automáticamente detecta que no existe y crea lo correcto y
todos los lenguajes están apuntando a eso es que haya una instrucción de creación previamente.
En este caso en JavaScript para crear una variable hay que colocar el prefijo VaR de variable y el nombre
de la variable y de esa manera ya me crea la variable ok.
En otros lenguajes vamos a saber por ejemplo PHP simplemente con poner pesos Count ya me la crea y tengo
que agregar un punto y coma.
Ustedes ahora no sé no se marean con esto no tienen que aprender esto vamos a ir aprendiendo primero
la lógica luego en el curso tenemos muchos cursos de programación en este curso al menos van a aprender
tres lenguajes de programación como en ningún otro curso de.
Tres lenguajes completos van a aprender.
En principio el JavaScript va a ser agregado luego así que no se preocupen van a aprender lenguaje Go
Python y C++ así que va a ser un curso muy completo muy bien.
Vamos a hacer un pequeño programita nosotros tenemos nuestra variable la salteamos en uno y ahora vamos
a hacer que nuestra estructura de decisión.
Fíjense que aquí ya me pone GIF y significa así si se da una condición entonces al if lo que voy a hacer
es agregarle la variable Count aquí arriba.
Fíjense que aquí ya me puso la variable Count y lo que voy a hacer ahora es preguntar voy a agregar
el Logic.
En realidad tendría que haber puesto esto vamos a ubicarlo bien le voy a decir esto voy muy bien acá.
Pregunto si Kwak es igual a cero.
Por qué cero por qué no le puse ningún valor aquí a la derecha.
Entonces lo que está preguntando es si es igual a cero como yo voy a preguntar por otro valor.
Voy a preguntar voy a ver si puedo duplicar esto.
Fíjense lo que hice fui al número en sí botón derecho duplicado y eso me duplicó el valor.
Vamos de vuelta dúplica y me lo duplicó para que solo arrastre y lo coloque en el área del programa
que yo quiera.
Muy bien aquí yo borro eso que estaba de más.
Entonces si count es igual a uno muy bien qué es lo que voy a hacer.
Voy a mostrar un mensaje por pantalla.
Vamos a ir a texto voy a decirle que en texto porque voy a mostrar un texto entonces en la parte de
texto están todas las funciones y los conjuntos de herramientas que tienen que ver con texto.
Voy a decirle que muestre por pantalla que es igual a uno muy bien fíjense que es un texto no es una
instrucciones.
Aquí podría poner.
Vamos a hacerlo más representativo.
La variable GAM es igual.
Vamos a ejecutarlo y me dice la variable count es igual a uno.
Obvio por qué.
Porque primero le grabé un valor de uno fíjense que la sentencia primero inicializar canta en uno y
luego pregunto cuánto es igual a uno.
Entonces mostró un mensaje ahora qué pasará si yo aquí coloco otro número.
Le digo que es igual a dos.
Si yo ejecuto no hace nada por qué.
Por qué nunca terminó de entrar por esta instrucción.
Entonces Fíjense no he cruzado la calle.
Entonces no ha ejecutado las instrucciones que van a hacer que yo camine que mire para los costados
que me dirija y que Itinere y que camine hasta llegar a la vereda de enfrente.
Entonces ya tenemos una idea de que el programa va a tener bifurcaciones lógicas bifurcaciones lógicas.
Si una condición se cumple o voy a ejecutar algo y si esa condición no se cumple voy a ejecutar otra
cosa o nada en este caso no estoy ejecutando nada.
Ahora qué es lo que vamos a hacer ahora.
Ahí tenemos que cuando countless igual a uno me va a mostrar un mensaje.
Ahora si yo lo que quiero es que cuando count es igual a 1 muestro un mensaje.
Pero para cualquier otro valor haga otra cosa muy bien lo que vamos a hacer es hacer click aquí en esta
ruedita de CTO y vamos a elegir el L10 lo que me permite vamos a hacerle una rastree
él es lo que me permite es por todo lo demás cuando cada no sea igual a uno.
Voy a ejecutar otra cosa.
Vengo aquí yo ahora estoy mostrando mensajes pero imagínense que aquí podría haber una secuencia muchas
instrucciones una debajo la otra inclusive llamados a rutina funciones.
O sea esto puede llegara a complicarse demasiado.
Igualmente lo que vamos a ver aquí también en el curso de programación básica vamos a aprender buenas
prácticas las buenas prácticas por ejemplo no hay que repetir código.
Si yo sé que hay una cierta cantidad instrucciones que necesito ejecutarla más de una vez en determinadas
partes de mi sistema lo que voy a hacer es armar una rutina con todo ese pedazo de código y a lo sumo
la voy a ir llamando a esa rutina de diferentes partes de mi sistema.
Si por ejemplo mi sistema tiene que enviar un mail a los clientes cada vez que ocurre algo por ejemplo
cada vez que compran o cuando se les vence un crédito no voy a repetir el mismo código en distintas
partes de mi sistema lo que voy a hacer es crear una rutina llamada envío de mail que va a recibir parámetros
le voy a mandar les voy a enviar datos de parametro a esa rutina y con esos datos va a armar lo que
tenga que hacer y va a enviar por ejemplo los mails a los clientes.
Uno de los parámetros puede ser el cliente en sí mismo la rutina envíame él sabe que tiene que recibir
de parametro los datos del cliente cuando lo recibe ejecuta y envía el mail al cliente.
Estas son buenas prácticas otras buenas prácticas es no armar rutinas con muchísimas instrucciones que
después sean muy difíciles de entender y de seguir entonces se arman pequeñas rutinas muy temáticas
muy específicas que hagan una tarea determinada y voy armando distintas rutinas que van haciendo cada
una una tarea determinada.
Otra buena práctica es usar nombres de variables nemotécnica.
Significan nemotécnica que con su nombre yo ya me doy cuenta qué es lo que significa si yo uso una variable
tipo Cam Me estoy dando cuenta de que es un contador si yo a la variable la llamo y me doy cuenta que
lo que va a alojar ahí es una casilla de mail.
Entonces no usemos variables llamadas X Y griega que no nos dicen nada usemos nombres de variables que
cuando el programador vea el código entienda de qué estamos hablando.
Vamos a ir hablando a lo largo de todo el curso de distintas buenas prácticas ya vamos a ir de desparramando
en los distintos capítulos distintos tips que les van a ir sirviendo para ser buenos programadores.
Entonces volviendo a nuestro ejemplo count es igual a 2 si count es igual a uno va a mostrar que la
variable count es igual a 1 y aquí vamos a poner.
Me fui por el él significa que ejecutó esto muy bien vamos a ejecutarlo y me dice me fui por él.
Por qué.
Porque Count vale 2 no vale uno.
Esto es la estructura de decisión muy bien.
Si esta condición se cumple siempre pregunta por verdadero yo podría preguntar aquí que en lugar de
igual si count es distinto de uno fíjense como JavaScript me lo pone con un signo de admiración y uno
igual aquí estoy preguntando lo contrario.
Si count es distinto de uno entonces aquí este mensaje va a estar mal.
La variable QAM es distinto de 1.
Vamos a ejecutarlo y aquí me muestra el mensaje.
La variable count es distinto de uno muy bien fíjense que por igual entra en él pero por distinto entra
en el DU.
Esto significa que siempre el sistema va a evaluar la condición y va a decidir por qué rama se va.
Aquí el semáforo se puso en verde y ya tengo que comenzar a caminar.
Aquí tengo la rutina de quedarme quieto y esperar el tiempo que sea necesario.
Vamos a ver alguna variante más.
Se acuerdan que dijimos que si nosotros teníamos por ejemplo que ver los tres colores del semáforo no
nos va a hacer falta una condición anidada vamos a sacar el & vamos a colocar un Exif muy bien y ahora
vamos a cerrar esto qué es lo que hace aquí si count es distinto de uno entonces hacer esto pero aquí
voy a tener que dar y colocar aquí vamos a dejarlo igual.
Luego vamos a ver las distintas variantes de operadores vamos a hablar de operadores lógicos también
los vamos a ver después en este mismo capítulo.
Muy bien si Canout es igualados entonces vamos a hacer esto.
Aquí lo que me faltaría vamos a entrar nuevamente es una más.
Muy bien vamos a cerrar.
Si cates igual a 1 ejecuto esto aquí es igual.
Es uno muy bien.
Ahora el CIF CIF es como anidaron if por Elders.
Es como decir mira si Counts es igual a uno hace esto y si no pregunta otra condición akan.
Aquí no hace falta preguntar por CAM por él por este IFF anidados yo podría preguntar otra cosa si otra
variable es igual a otra cosa si se da otra condición No no necesariamente tengo que repetir esto.
Entonces a qué voy a preguntar si Camps es igual a dos.
Me fui por Gouet igual 2 y por él es voy a agregar otro texto en nuestro texts me agregó otro texto
que diga FEEM vamos a correr me dice que me fui por Camps igual 2 fijense no entro por la primera condición
pero por el Lifes que viene anidado entré porque por qué Count vale 2 entienden la potencia de esto
y esto que puede ser difícil de entender a nivel código.
Esto lo hacemos constantemente en el día a día nosotros en nuestra mente por milésimas y milésimas de
segundo vamos haciendo millones de operaciones de este tipo en nuestra mente.
Esto es importante que ustedes lo entiendan en un curso similar que enseñaba a programar básico.
Yo ponía el ejemplo de cepillarnos los dientes y ponía todas las sentencias secuencias variables estructuras
de decisión estructuras de iteración que nosotros usamos diariamente en la simple tarea de ir a cepillarnos
los dientes de caminar hasta el baño hasta que se cumpla la condición de hacer una estructura de decisión
preguntar si la puerta está abierta o está cerrada si la estructura.
Si la puerta está cerrada hay que ejecutar una rutina especial con una serie de sentencias dedicadas
para abrir la puerta del baño.
Pero si la puerta ya estaba abierta esa rutina no la llamamos.
No hace falta ejecutar la rutina de abrir la puerta del baño.
Una vez que abrimos la puerta del baño ejecutamos una estructura de iteración caminábamos hasta que
estábamos frente a la pileta a Lavazza o como lo llamen ustedes donde voy a tomar el cepillo de dientes
y cada una de las operaciones que yo llevo a cabo lleva implícita una serie de miles de operaciones
que hasta le diría hasta a nivel celular se llevan a cabo en nuestro cuerpo donde se llevan a cabo estas
estructuras.
El sistema de nuestra mente constantemente está analizando datos obteniendo información y tomando decisiones
y esto los científicos lo volcaron a los sistemas y crearon los lenguajes de programación.
Cuando ustedes quieran aprender lenguajes de programación tienen que entender esto y pensar como programadores
y para pensar como programadores tienen que ser muy conscientes de todo lo que ocurre en la mente de
cada uno de ustedes.
Muy bien aquí tenemos ya nuestra estructura fíjense que ya nuestro código está siendo más complejo más
completo y tiene varias partes.
Ahora qué pasa si yo quiero evaluar más de una estructura más de una variable y más de una condición
al mismo tiempo.
Porque quizás yo quiera evaluar si cada uno es igual a uno y además si otra variable tiene otro valor
muy bien vamos a crear otra variable vamos a crear una variable la vamos a llamar temperatura le damos
a aceptar Fíjense que aquí tenemos temperatura la vamos a perder vamos a ser temperatura recién cuando
coloco el set Block y ella me la coloca en bar.
Esto lo vamos a quitar tenemos nuestra variable temperatura y nuestra variable a temperatura por ahora
le movió a cero porque no le ha asignado un valor fijo vamos a duplicar esto lo vamos a colocar aquí
y aquí vamos a decir que hace unos 30 grados muy bien tenemos temperatura igual 30 Counts igual dos.
Ahora si yo quiero hacer un chequeo más complejo más complejo.
Vamos a agregar aquí otro tipo de chequeo otro tipo de decisión.
Vamos a venir a los sic y vamos a decir que vamos a húsares.
Vamos a meter toda esta estructura dentro cuesta porque es todo un tema visual está muy bien que el
sistema lo que está haciendo es evaluar una condición y estos son los operadores lógicos que vamos a
ver en este capítulo y o son and y or tal condición es verdadera y tal otra también es verdadera o una
de ellas es verdadera.
No importa.
Por ejemplo si count es igual a 1 y temperaturas igual a 30 no es lo mismo que decir cates es igual
a 1 o temperaturas igual a 30 porque el con el OR donde cualquiera de las dos sea verdadera va a entrar
por el muy bien.
Ahora vamos a duplicar esto y vamos a colocar aquí nuestra estructura y vamos a decirle que la variable
temperatura es igual a 30.
Ahora ustedes qué creen viendo los datos cómo los tenemos por dónde va a entrar la lógica de programa
porque en realidad está preguntando si es igual a 1 y en realidad es igual a 2.
Entonces vamos a ver vamos a ejecutar y lo que dices me fui por Count igual a 2 porque la primer condición
que es una condición compleja no se dio y lo que se dio es que me fui por el ERS como countless igualados.
Aquí no tengo una condición compuesta sino que tengo una condición simple me fui a este mensaje muy
bien ahora si yo aquí le colocó una por lo que vamos a ver es que dice la variable count es igual a
1 que en realidad está mal cada uno vale 1 esto es un mensaje aquí puedo decir cualquier cosa.
Lo que quiero mostrarles es que por error como una de las condiciones fue verdadera porque temperaturas
realmente vale 30 se fue por esta rama por el DU.
Si esto es verdadero 2 significa ser haz esta instrucción o este conjunto de instrucciones muy bien.
Esos son los operadores lógicos los operadores de comparación son éstos los operadores de si es igual
si es distinto si es menor.
Podemos comparar si un número es menor a otro.
Si una variable es menor a otra Podemos aquí vamos a hacer un menor y vamos a quitar esto.
No me interesa vamos a quitar el valor y vamos a colocar temperatura aquí ya no estoy comparando valores
fijos estoy comparando variables y esto es muy válido en programación.
Yo puedo preguntar si si el count es menor a temperatura y obviamente va a ser menor.
En este ejemplo va a ser menor pero yo puedo comparar variables en todo momento y de hecho es muy usado
esto yo voy a tener variables voy a preguntar si en un videojuego por ejemplo en un videojuego yo como
vimos cuando vimos el capítulo de la memoria voy a tener una constante que va servidas y que va a ser
igual a 3.
Entonces voy a preguntar si las vidas actuales es menor a la cantidad de vidas o si ya vidas llegó a
cero.
Y ahí voy a terminar el juego o voy a continuar con otro nivel del juego muy bien.
Estos son los operadores de comparación y estos son los operadores lógicos and y or esto es lo que tenemos
que aprender.
Vamos a ver a lo largo de estos capítulos vamos a usar mucho todo esto en la parte final del capítulo
vamos a hacer un pequeño programita que haga algunos cálculos para que ustedes vean no nos vamos a extender
mucho con programitas de ejemplo porque como les digo en este curso van a tener verdaderos programas
y lenguajes para aprender a programar así que nos vamos al próximo capítulo y empezamos a ver estructuras
de iteración.