Bueno bienvenidos a un capítulo nuevo de este curso y en este caso vamos a ver los ciclos o bucles.
Bueno vamos a empezar por el ciclo for en definitiva los ciclos o bucle se usan para cuando necesito
hacer una tarea de manera repetida.
Quiero repetir x cantidad de veces determinada tarea.
Por ejemplo vamos a ver ya de entrada un caso súper práctico así van a entender de paso la utilidad
que tienen.
Vamos a eso se acuerdan de los Arráiz qué importante los ciclos para operar y trabajar con Arráiz.
Miren vamos a declarar a que la red que teníamos por ejemplo vamos a declarar una raíz de tipo string
se acuerdan en una variable string.
Yo grabo oraciones entonces si yo tengo un array de tipos string voy a grabar en él diferentes oraciones.
Vamos a poner que este va a tener cuatro casilleros cuatro posiciones para grabar oraciones Isa sobre
la marcha.
Vamos a llenar ese Array vamos a poner en la primera posición.
Hola bienvenidos un saludo de bienvenida separado de coma.
El segundo elemento el segundo string.
Por qué los paso entre comillas porque los estrenos siempre de venir entre comillas.
Recuerden que los elementos se separan por una coma.
En la segunda posición que viene a ser perdón es en la segunda posición con el índice 1 porque la primera
posición que es esta tiene el índice cero.
Sigamos.
Hola bienvenidos acá vamos a poner un saludo de despedida a Dios hasta pronto en la posición número
3 vamos a poner una consulta cómo estas
y vamos a poner.
Fíjense que yo le saqué el acento para evitar tener problemas por las dudas en el monitor serie pero
no no es nada del otro mundo simplemente por eso y en la cuarta posición y la última viene a ser el
índice 3 vamos a poner el que podamos poner me gusta Ardura Hardwick no perfecto punto y coma al final
listo ya tenemos una radio definido y vamos a empezar.
Lo dejamos en un momento solo lo tenemos definido pero ya lo vamos a usar.
Vamos a empezar a jugar con el ciclo for para usar el ciclo forzase de la siguiente manera.
Yo pongo for y entre paréntesis voy a poner la condición que se va a cumplir para que ese ciclo se sigue
repitiendo.
Entonces la estructura del ciclo es de la siguiente manera.
Entre paréntesis voy a crear una variable a donde ir llevando la cuenta de cuántas veces se repitió
pero esto lo hago hasta yo o vos en la vida diaria.
Si yo quiero hacer no sé supongamos que me piden que tengo que subir y bajar una escalera 10 veces porque
estoy haciendo gimnasia bueno mentalmente tengo que en algún lugar ir llevando la cuenta para detenerme.
Si estoy haciendo abdominales bueno tengo que hacer una serie de 50 abdominales lógicamente ir llevando
mentalmente una cuenta para detenerme cuando cumpla el requisito los 50 abdominales bueno con el ciclo
pasa lo mismo como primera medida vamos a declarar un entero siempre es un entero lo declaró en esta
oportunidad ahí mismo dentro de los paréntesis declaró la variable y esa variable puede tener cualquier
nombre si cualquier nombre se lo invento yo.
Contador cuenta pero sucede algo los programadores se pusieron de acuerdo y ya es una convención que
cuando utilizamos ciclos for huthis utilizamos la variable con el nombre y esta eso lo entienden.
Ahora vamos a usar y pero si se pudiera acá cuenta mandar igual va a funcionar igual pero van a ver
que todos usamos la letra.
Y bueno entonces creó una variable y llamada de tipo entero y digo que va a arrancar con su valor inicial
igual a cero punto y coma a calado.
Voy a poner la condición que se va a dar mientras el ciclo se cumple o sea vamos a decirlo así.
Acá pongo el mientrás mientras y sea menor que cinco y después ya van a entender no se preocupen yo
sigo.
Créanme ya lo entienden.
Punto y coma.
Y acá voy a poner el incremento cómo se va agrandando la variable ahí y yo voy a decir que esa variable
se va a ir agrandando uno en uno se van a entender no se preocupen.
Entonces cómo hago para que para decir que una variable se incrementa de a uno así y igual ahí más uno.
Por qué.
Porque esto que estoy escribiendo acá hace que ahí se le sume uno pero también lo vas a ver en todos
lados que lo usamos así y más más porque es la manera corta de escribir y iguala y más uno siempre después
de cada una de estas tres partes van va un punto y coma.
Entonces el foro se escribe entre paréntesis y a donde yo voy a poner una variable que la declaró acá
mismo digo que arranca con un valor 0.
Después digo que esto va a funcionar mientras sea menor a cinco y el incremento va a ser 1 en 1.
Listo.
Abro y cierro llaves y acá voy a poner lo que se va a ejecutar la cantidad de veces que determine el
ciclo for supongamos que voy a imprimir sería el punto print LN Se ejecutó una vez
ahora que tengo armado el ciclo.
Lo vuelvo a explicar y les aseguro que lo entienden mejor.
Lo que tengo entre llaves en este caso es esta línea.
Podrían ser muchas líneas muchas instrucciones.
Ahora voy a usar una sola para hacerlo fácil.
Mira lo que tengo en tres llaves lo voy a ejecutar tantas veces como indique este lugar vamos de nuevo.
Esta línea la voy a ejecutar mientras I sea menor que 5.
Teniendo en cuenta que y arranca desde cero y se va a ir incrementando de uno en uno cada vez que se
ejecute lo que le pido me van siguiendo la variable y yo acabo de crear que arranca en cero.
Cada vez que se ejecuta esto que acaba adentro va a incrementarse en una unidad entonces cada vez que
se ejecuta viene acá y pregunta Y vale todavía menor que 5.
Si es así se va a seguir ejecutando otra vez ejecuta el bucle viene por acá y pregunta Y vale vale.
Sigue siendo menor que 5 pero para la segunda vuelta y ya vale uno porque arranca en cero 1 y así y
en cada vuelta va a ir sumando y va a ir preguntando y mientras siga valiendo menor que 5 o más mientras
sí sea menor que 5.
Esto se va a ir ejecutando va a llegar un momento que va a valer 5 cuando iba al 5 5 es menor que 5
de ellos es igual a 5.
Y ahí se acabó el bucle o el ciclo por ahí ya no hay más nada que hacer y en vez de seguirse repitiendo
esta acción Tuco salta sale del bucle y siguen ejecutándose las líneas posteriores o que están fuera
del bucle.
Fíjense que como en toda función o ciclo yo estoy inventando lo que va dentro de las llaves lo metí
en una tabulación más adentro.
Bueno vamos a probar siendo esto.
Voy a grabar.
Bueno fíjense que este array da lo mismo que esté donde esté porque todavía no lo estamos usando.
Seguro que hay uno que ya se está dando cuenta para qué lo vamos a usar el foro con esto.
Pero bueno vamos
grabo cargo en la placa y de entrada me da error y andaríamos.
Bueno bueno veamos qué tenemos acá.
Empecemos por víveres cosas más string.
Bueno groso error.
Como no me di cuenta en qué momento se me borró el nombre.
Bueno cuando vea este video me voy a dar cuenta cuando lo borre.
Le habíamos puesto mensajes o lo dije y no lo hice.
Bueno será eso o sea que nos avise que nos faltaba el nombre de la raíz de cuatro posiciones de tamaño
4.
Vamos a probar si desaparece el error.
Listo.
Ahora me da un error el 9.
Ah claro ese punto y final no iba.
Bah punto y coma punto y coma.
Y acá no va a puntico más no va nada a ver listo.
Ahora con biloba entonces tranquilamente lo puedo cargar.
Espero la respuesta.
Vamos a ver cómo funciona esto.
Parece que anduvo uno dos tres cuatro cinco veces.
Se ejecutó justo lo que le pedí para que se entienda mejor esto vamos a practicar algo más.
A ver vamos a cambiar esto.
Y vamos a decir esta es la ejecución número dos puntos.
Dejo un espacio más que les había dicho que era la variable y un contador.
Es una memoria que lleva nuestro micro microcontrolador para ir llevando la cuenta y saber cuándo parar
uno o dos tres y en cada vuelta repito está preguntándose si ya superó el límite máximo que yo le había
dicho mientras sea menor que 5 hace esto.
Así que el micro vas pensando iba diciendo y vas llevando esa cuenta en una variable que yo le doy que
es ahí.
Lo bueno que como yo sé que esta variable es la que está usando nuestro microcontrolador entonces se
le puede pedir prestado vamos a decir se le puede robar un rato para curiosear y ver qué va pasando
con esa variable.
Entonces yo aprovecho y dentro del bucle cada vez que imprime una vez lo que le pido voy a sumarle el
valor en string de la variable y vamos qué estoy haciendo acá.
Esta función lo que hace es convertirme en el número que tenga en ese momento y en una string para podérselo
concatenar a este string bueno ya estamos si grabo cargo en la placa y vamos a ver que muestra la terminal.
Miren qué pasa.
Arrancan en cero cero uno dos tres cuatro.
Por qué llega hasta el 4.
Porque tengo cinco posiciones nada más que arranca en el cero.
Entonces ahora puedo empezar a jugar.
Miren si yo les digo que y declaró y pero les digo que arranquen el 1 miren miren lo que pasa
se ejecuta 4 veces la impresión por pantalla porque y porque les estoy descontando uno porque ya de
movida arranca en un valor una unidad mayor que el cero por supuesto que si le pongo 6 hay otra vez
tendríamos los 5 Sigamos jugando con esto.
Supongamos que hacemos del 1 al 100.
Estas cosas son lindas cuando ya empezamos a experimentar del 0 al 100
cargo vamos a ver el resultado.
Vamos listo.
Llega hasta el 99 Miren del 0 al 99 cuántas veces lo imprimió 100.
Justo lo que le pedí.
Fíjense si yo hubiera tenido que escribir un código como venimos sabiendo.
Vamos a decirlo a mano para que me imprima 100 veces esto.
Pues eso tendría que copiar y pegar.
Esta línea 100 veces y a mano e ir cambiando el número.
Entonces vieron que son útiles.
Obviamente este ejemplo no tiene mayor sentido pero esa es la idea poderlo usar para otras cosas.
Miren esto acá decimos que incrementa de a 1.
Yo acá tengo 100 100 y 100 veces la ejecución en pantalla.
Mira ahora le vamos a decir que vamos a incrementar de a dos.
Entonces para eso le digo que y es igual.
Ahí más dos gravó
voy a esperar y ahí imprime
y qué pasó.
Funcionó.
Si funcionó me confundió.
Miren cero dos cuatro seis ocho.
En total tengo 50 líneas acá solo que va de dos en dos.
Bueno si yo pongo de 10 en 10 por último para redondear esto
disto 0 10 20 30 hasta la línea número 10 que corresponde al número 90 interesante no.
Bueno seguro me vas a decir Hugo y Pablo.
Esto es complicado.
Mira todo esto del hint.
Cuanto tiempo me voy a pasar hasta recordármelo no me lo sé de memoria.
Mira te voy a decir cuando yo empecé con esto no te das una idea la cantidad de veces que tuve que volver
al ejemplo que me dió en aquel entonces mi profesor para copiar y pegar y poderme inspirar y recordar
y refrescar de qué se trataba pero tenemos otra ayuda que es.
Cuando digo Hatton me refiero también a cualquier editor de código bueno o moderno.
Miren yo escribo for.
No escribo ni toco más nada y aprieto enter y automáticamente ya me prepara ya me prepara la estructura
de un bucle.
Tengo que tocar un poco tengo que ponerla acá Hint y acá tengo que reemplazarlo por el valor que quiera
pero en definitiva tengo un foro
sigamos y vamos aprendiendo un poquito más bueno teníamos esto vamos a dejar esto en condiciones porque
lo que quiero hacer es lo siguiente e igual a cero.
Eso está bien ya que voy a poner un 4
y yo voy a poner acá como estaba antes y más vieron el 4 y se están dando cuenta de algo no miren
vamos a poner el mensaje Sage número string y que ponga el número.
Acabo de volver a sumar otra dice
y le voy a volver a sumar
mensajes.
No voy a hacer en silencio ahora lo voy a explicar lo voy a hacer lo ejecutamos y después lo vemos pero
no eliminar el factor sorpresa.
Mensaje mensajes y el índice en vez de escribir un número se acuerdan cómo imprimimos el valor de una
raíz poniendo el número acá bueno poner un número voy a poner lo que valga y en ese momento grabo
lo carga en la placa y vamos a ver qué hace
bueno algo está dando mal algo está mal.
Veamos qué es no se está deteniendo nunca.
Bueno me sirve porque esto es importantísimo cuando te equivocas y haces algo mal corres el riesgo de
que ya vi qué hice mal.
Corres el riesgo de que la condición nunca se cumpla y que nuestro bucle se ejecute de manera infinita.
En el caso de los microcontroladores es distinto que con las computadoras.
Cuando esto te pasa en un programa en una computadora el procesador puede calentarse puede pasar algo
medianamente grave con los microcontroladores no lo que va a pasar es que se va a quedar encerrado en
nuestro código ejecutándose de por vida como si fuera el LUV.
Eso es lo que es un bucle infinito como un bucle infinito sin cesar.
Bueno dónde está mi error mi error fatal está acá entonces y se queda siempre valiendo lo mismo y no
crece nunca y por ende nunca se agranda el valor y nunca cesa el bucle grabo ya corregir el error carga
en la placa el factor sorpresa por supuesto ya se deshizo todo esto pero bueno la intención es lo que
vale.
Voy a correr un poquito esto entonces a ver para resetear de nuevo borrar porque salió así borrarlo
ustedes no vieron pero eso lo Rosety con el botón Reset vamos a acomodarlo hay algo que no me gusta
acá nos falta un espacio que iba a quedar mejor si lo hacemos lo hacemos bien y si Systèmes hagamos
mi luna decía mi papá vamos listo.
El mensaje número cero dice Hola bienvenidos.
El mensaje número uno dice adiós o hasta pronto el 2 Cómo estás el 3 me gusta arruino vean lo que estoy
haciendo es lo que se conoce como recorrer un rey recorrer una raíz.
Cómo hago.
Si tuviera que imprimir este rey o tuviera que mostrarlo en pantalla valor por valor eso es lo que tendría
que hacer.
Sería algo como lo siguiente sería así.
Sería el punto print ln y le voy a decir
Sturges
cero.
Se dieron cuenta de algo.
Por qué a mensajes no le estoy poniendo esto de transformarlo en una string.
Por qué no se lo pongo.
Por qué mensajes ya acumula.
No tiene sentido transformar una string en string.
Ya es una estrella.
No necesito convertirlo entonces lo que haría sería el print LN mensaje cero.
Tendría que copiar esto 3 4 y venirme acá y modificar
esto vean que lo grabo y hace el mismo efecto
bien.
Estos 4 de acá son corresponden al bucle y acá están los mensajes los 4 mensajes que imprimida acá.
Bueno tampoco es muy difícil hacerlo así pero porque tiene cuatro posiciones cuando tenga una raíz de
1000.
Cómo hacemos.
Bueno para eso vienen vienen los bucles son importantísimos sobre todo el foro que me permite acceder
a esta variable
tranquilamente.
Yo podría usar esto para otra cosa.
Vamos que es un esfuerzo se lo pido es un esfuerzo porque cuesta estamos aprendiendo mucho en poco tiempo
pero esto es lo último ya con esto estaríamos cerrando mira vamos a crear una red
que se va a llamar vamos a poner algo sencillo que puede ser
dinero.
No me van a decir que estoy obsesionado con el dinero.
No no no no no. Vamos a ponerle mascotas es la cantidad de mascotas que tiene un PET SHOP.
Ahí están las mascotas.
Por qué.
Porque yo tengo varios pet shops tengo cuatro tengo cuatro pet shops y lo que voy a decir es en este
área y describir cuántas mascotas tengo en cada uno de esos Pet Shop.
En el primero tengo diez mascotas a la venta en el segundo tengo 20 23 en el tercero tengo cinco y en
el cuarto me quedé sin mascotas no tengo nada para vender.
Entonces pasemos acá.
Por supuesto que sí.
Acá el rey tuviera 10 posiciones con el Fort Yo voy a tener que recorrer 10 posiciones.
Volvamos pero acá tenemos cuatro nada más.
A ser un chico pequeño para que sea más rápido.
Bueno vamos a cambiar el mensaje para que esté un poco más acorde no más cuotas en tienda.
Y si le vamos a poner un número a esa tienda le vamos a poner número.
El número de índice entonces ya directamente acá le estoy imprimiendo el orden de la tienda mascotas
en tienda cero y yo qué voy a decir cantidad supongamos
y acá lo que voy a mostrar es lo que guarde mascotas en ese índice.
Bueno vamos a imprimir esto esto tiene que andar bien porque no tiene mayor complejidad.
Bravo
subido listo entiendo cero tengo 10 entiéndalo tengo 23 en tienda dos tengo 5 entiendo.
3 Tengo cero.
El ejemplo no sirve.
Hemos practicado una vez más un bucle for.
Seguro que lo entendiste más pero le vamos a ver una vueltita de rosca y esto es el esfuerzo que te
pido.
Atención atenti porque cuando yo vi esto como dije no puede ser.
Y ahí es como a partir de acá es como se me empezó a abrir el panorama y empecé a entender un poco más
de qué se trata esto no
miren lo que voy a hacer
approved aprovechen siempre la virtud de poder copiar y pegar y reciclar eso nos ayuda a acelerar.
No está mal listo nadie no hace males.
Copio y pego un mensaje para decir la cantidad actual.
Esto quiero dejar un espacio en blanco está me olvidé de enseñarles.
Miren cuando necesiten dejar una línea en blanco un renglón en blanco imprimen otro print LN con nada
adentro.
Eso les va a dejar un renglón vacío.
Entonces grabo esto era muy despacito poco a poco para que no nos perdamos.
Vamos a ver cómo va quedando nuestro nuestro proyecto la cantidad de actual pum me muestra la cantidad
actual de mascotas en la tienda.
Seguimos como el resto.
Lo que voy a hacer ahora es suponer que a futuro voy a sumar cinco mascotas en cada tienda porque estoy
recuperando stock.
Entonces voy a poner cantidad futura.
Esto va a ser dentro de unos días voy a copiar el bucle entero.
Y lo que voy a hacer acá adentro es decir en cada vuelta le voy a ir sumando la cantidad de mascotas
que vamos a comprar y vamos a incorporar.
Entonces creó una variable que se va a llamar cuando vamos al vuelo mejor porque si no no lo confunde.
Mirá vamos a decir lo siguiente Vamos a decir que
mascotas de la posición en la que esté y va a ser igual a lo que ya tenía mascotas en esa posición más
cinco mascotas para cada tienda le vamos a entregar.
Luego de hacer esto lo que va a hacer es imprimir la mascota o mejor dicho la cantidad de mascotas que
hay en esa tienda entonces lo vamos a pensar ahora ya lo probamos.
Miren lo que va a ser es en definitiva es lo mismo que nada más que antes de imprimir.
Estoy operando y acá viene este nuevo concepto.
Uso un bucle para modificar cada uno de los valores.
Si yo a todos estos a todos estos valores les quisiera sumar cinco yo lo que tendría que hacer es esto.
Mirá yo tendría que venir
acá abajo y decir que lo que hay en mascota cero es igual a mascota cero +5.
Después copiar esto cuatro veces está desordenado.
No se preocupen no pasa nada lo tenemos ahí.
Bueno supongamos que con la magia de Hatton tengo la ventaja de que puedo hacer esto.
Bueno una ayudita
nos
tres.
Bueno Akashi acá le sumé a todas las mascotas 5 y si tuviéramos 1000 y si tuviéramos 10 mil tiendas
pero no a las mascotas a las tiendas a cada tienda le sumé 5 mascotas nuevas.
Pero si tuviéramos 1000 tiendas si fuera no sé otra cosa.
Sería imposible hacerlo así sería una locura el trabajo.
Entonces para esto están los bucles.
Lo que estoy diciendo acá es vamos.
Repasemos este bucle arranca en cero.
Ahí arranca en cero.
Entonces en la primera vuelta le estoy diciendo Qué mascota cero es igual a lo que ya tenía mascota
ceros cero más cinco.
Entonces cuántos tenía mascota 0 10.
Bueno entonces el nuevo valor va a ser de 15.
Listo.
Vaughan Radio imprimir lo que tenía.
Tiendas Zero
en realidad no queda claro cómo cómo los llamé porque los llamé mascotas se presta a la confusión.
Si usted me entiende porque esto sería tiendas o en realidad sería esto pet shops ya que estamos vamos
a corregirlo cambiando nada más que el nombre para que sea más claro para ustedes.
Mira
acá y acá no tengo miedo a olvidarme ningún cambio porque si me lo olvido me va a dar error y me voy
a integrar bueno
entonces volvamos arranca en cero.
En la primera vuelta estoy diciendo que en el PET SHOP cero voy a tener la misma cantidad de mascotas
que había en el PET SHOP cero porque iba de cero.
Acuérdense que cada día se reemplaza con lo que vale en ese momento +5.
Listo.
Cuántas mascotas teníamos el PET SHOP cero 10 por 15.
Imprime la cantidad de mascotas que tenemos en el pet shop cero y vamos a poner acá nueva cantidad.
Y bueno voy a imprimir el número 15 en teoría cuando pase a la segunda vuelta.
Acá se va a reemplazar por un uno y iba a decir que Pet Shop uno.
O sea esta posición va a tener lo que ya tenía +5.
Bueno calculo que va a ser 28 pero bueno vamos a probar cómo anda esto.
Antes de seguir hablando sí veamos grabó subiendo
wow Miren mascotas entiendo a cero 10.
Eso es lo que teníamos.
Y ahora la nueva cantidad.
15 23:28 5 10 0 5.
Cómo se dan cuenta.
Le hemos sumado a cada uno de los elementos del array un valor fijo.
Bueno creo que de esta manera queda más que clara alguna de las utilidades del bucle for.
Ni que hablar.
Quizás falta muy poquito para que empecemos a trabajar con Arduino con las placas y esto lo vamos a
poder usar para prender y apagar un LED.
X cantidad de veces para mover un brazo robótico.
X cantidad de veces para que un robot de X cantidad de pasos es muy muy útil.
El ciclo for.
Bueno esto ha sido todo por hoy qué capítulo tuvimos.
Nos vemos en el próximo gracias.