Hola bienvenidos a otro capítulo de este curso y vamos a ver lo que se denomina alcanze de variables
es muy simple si recuerdan nosotros venimos declarando variables en esta zona en este lugar por ejemplo
declarar la variable número igual a cero bien sin mayor explicación.
Nosotros venimos declarando variables por acá arriba cuando declaramos variables en esta zona decimos
que son variables globales una variable global la vamos a poder acceder o sea conocer su valor.
O bien vamos a poder modificar su valor en cualquier parte del código ya sea en el ZetaP o sea acá.
Acá voy a poder decir y al punto print LN.
Habiendo iniciado el serial previamente por supuesto número
o tren número si quiero hacerlo correctamente pasando a string la variable número OSEP.
Con esto voy a poder mostrar por pantalla cuánto vale números.
Vamos a probarlo.
Necesito que inicie el puerto serial
a una velocidad de 9600.
Luego de eso vamos a mostrar por pantalla lo que vale números.
Vamos a intentar esto para que tenga una orden.
Funcionaría igual.
Por supuesto si no lo hago vamos a poner un número más interesante.
Si tiene un poco más de sentido está bueno vamos a proceder a imprimir por la terminal serial la variable
número muy simple no vamos subiendo
no sale nada bien.
No me di cuenta.
Yo estuve trabajando con otra placa y lo dejé en una velocidad muy alta.
No nos viene mal pero de todas estas cosas porque son cosas que les va a pasar todo el tiempo.
Es normal.
Bueno ya aparece la variable y vemos que vale 76 bien.
Yo pude desde el ZetaP acceder a lo que vale enumeró.
Lo mismo podría ser veãan desde Lop porque porque es una variable global como el loop es algo donde
se repite todo el tiempo aparece muchas veces pero para mostrarles no solamente puedo conocer su valor
sino que lo puedo modificar en cualquier parte puedo decir el número es igual a 10.
Entonces cambió el valor del número.
Por ende si lo imprimirá esta altura vería en pantalla 10.
Entonces las variables globales se pueden cambiar en cualquier parte del código o se pueden ver incluso
ya vamos a ver más adelante lo que son funciones pero como les dije básicamente esto es una función
así que una función propia es algo que vamos a hacer nosotros por nuestra cuenta y puede ser por ejemplo
hoy suma números sé que no no hemos visto funciones pero falta poco.
Bueno esta es una función mía que acabo de inventar que sirve para sumar números.
Entonces supongamos yo acá adentro puedo decir que el número
es igual a uno lo que estoy haciendo cuando se ejecuta esta función es cambiar el valor de la función
de la variable que declaré acá arriba.
Bueno
el caso opuesto a las variables globales son las variables locales cuando esta variable en vez de declararla
fuera de cualquier función que sería una variable global no se acostumbra.
Pero les cuento algo si esa variable global yo la declaro acá es exactamente lo mismo porque en realidad
lo que está pasando es que le estoy declarando fuera de cualquier función.
Eso hace que sea global.
Nos hemos puesto todos de acuerdo que cuando sean globales lo vamos a escribir arriba pero en realidad
técnicamente conquistó la escriba fuera de cualquier función funciona pero no viene al caso esto lo
que queremos ver ahora son las locales y una variable local es algo tan simple como declararla adentro
de una función número 3 un entero llamado Número Tres números poner otra cosa números de posición acá
supongamos que acumulamos el número de posición en la que salió un corredor en una carrera sexto puesto
ahí está bueno veamos qué pasa.
Veamos qué pasa acá.
Mira y acá vamos a entender el tema de las Vari de qué quiere decir alcance sobre todo.
Mirá yo voy a intentar acá hacer Lucientes sería el punto print n seria el punto LN voy a imprimir
número de posición
recuerden que cuando yo imprimo una variable numérica con print LN No es necesario transformar la string
cuando solo imprimo una variable se encarga automáticamente la función.
Ahora bien si esto lo quiero concatenar con el número es para que quede más bello más prolijo.
Yo Akashi voy a tener que transformar la variable con la función Street.
Lo bueno es un tanto al margen de todo esto vamos a profundizar.
No se preocupe vamos a volver a lo que nos trajo.
Quiero sacar por pantalla número de posición
con Pilo y ya me salto un error y me dice qué número de posición fíjense no está declarado porque porque
estoy pidiendo usarlo ya sea para modificarlo o para imprimirlo o para lo que sea antes de haberlo declarado
a esta altura.
Número de posición ni siquiera existe.
Por supuesto que sí Bandar si luego de declararlo funciona
como ven acá se imprimió el número 6 de el número de posición
miren lo que pasa acá cor.to esto y lo pego acá vamos a probar la tipeando en otra función
otra vez me dice el número de posición no está declarado Bien pero cómo puede ser si lo declara acá
arriba no Pablo no no funciona así.
Número de posición pertenece de manera local a la función ZetaP y ahí viene el tema del alcance el alcance
de número de posición además de estar restringido para ser usado luego de que lo declaró está restringido
el ámbito de esta función zETAp porque lo declara acá adentro.
Entonces lo primero que tengo que saber es que voy a poder usar después de que haya declarado antes
nunca.
Y en segundo término tengo que saber de qué número de posición va a ser válido solo para la función
zETAp fuera de zETAp no pasa nada.
No voy a poder usarla ni modificarla
porque me está diciendo que no fue declarado.
Pues bien porque en loop no tengo ninguna declaración de una variable llamada número de posición voy
a comentar un poquito de esto para que no tenga efecto.
Miren lo que pasa ahora qué pasa si yo acá mismo digo Hind voy a declarar otra variable que se va a
llamar número de posición igual a cero grabo
y me dice Ré declaración que estoy declarando dos veces con el mismo nombre una variable.
Eso no se puede hacer.
Sin embargo cuando yo me voy y esta supuesta declaración la quiero hacer pero en otra función.
Miren acá no me da error de hecho se cargó.
Qué sucede.
Bueno como esta variable número de posición sólo tiene alcance en esta función no se molesta para nada
con esta otra que puede compartir el nombre pero no tienen nada que ver y van a tomar caminos separados
son totalmente independientes.
Esta variable de esta variable incluso si acá pongo y declaró
INTT número número vamos Pablo Gómez.
Reposición igual igualdad 5.
Tampoco va a molestar porque este esta variable solo va a funcionar dentro de suma números
veremos si cierto.
A ver si mi error no me da error para nada es totalmente válido son variables distintas cada una por
su cuenta y miren esto voy acá y voy a poner Hind número igual a 6.
Recuerden que el número lo teníamos acá como Général que valía setenta y seis
querer imprimir para ver cuánto vale nuestra altura número
de probemos
se cargó
no funciona.
Claro Pablo.
Claro si nos llamaste nunca a esa función qué está pasando.
La vamos a ver.
No llamé en ningún momento en ningún momento a esta función y tengo que llamarla para que se ejecute.
Eso se lo vamos a explicar no se preocupen.
Pero bueno para llamarla sepan de antemano que simplemente tengo que escribirle entre paréntesis punto
y coma y hoy lo que hago es hacer que el código salte a este lugar ya lo vemos más en profundidad pero
es lo que quiero es que se ejecute esto para explicarles algo.
Mira 6 o sea que cuando le pedí que imprima número tuvo prioridad esta variable en vez de esta incluso
no se molestaron.
Ahora bien si yo no declaro nada no declara una variable local con el mismo nombre cuando le pide a
K que imprima números como ésta es global o no va a imprimir esta otra de acá.
Cual imprimió por qué no se los 76.
No porque después de valer 76 dijimos que tiene que valer 10.
Y después acá en suma números le estoy imprimiendo y tenemos el 10.
Bueno este es el caso donde les pido un poco de paciencia y que sigan por un acto de convicción y de
fe.
Sé que suena raro lo que pasa es que la única y mejor manera de aprender esto.
No soy exagerado con lo de ùnica es practicándolo viviéndolo manejándolo.
Pero qué problema tenemos.
Estamos recién empezando nos faltan algunas herramientas y elementos básicos para que empecemos a trabajar
y ahí seguro van a poder entenderlo y asimilarlo mejor.
Así que si todavía sienten que no están seguros hay cosas que no les terminan de cerrar.
No se preocupen es normal es normal que pase que no entendamos cosas y es normal también que a veces
tomemos el riesgo de seguir un poquito adelante aunque haya cosas en el pasado que sintamos que no estamos
tan seguros.
Hagamos la prueba si vemos que nos cuesta volvemos igual y siempre le estaré atento para responder lo
que necesiten.
Esto ha sido en este capítulo lo que hemos visto espero que lo hayan disfrutado y nos vemos la próxima.