20250917-ProgEstr-Variables_1 - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Vale, bueno, pues ahora ya
00:00:00
¿Quiere la pizarra?
00:00:05
Sí, muy bonito, pero yo no quiero esto
00:00:25
Ahora, esto
00:00:27
Ahora sí, vale
00:00:30
El roto de pizarra
00:00:32
Dime
00:00:36
Vamos a empezar
00:00:43
programación estructurada, sí, un stream en particular
00:00:48
ahora no, ¿vale?
00:00:51
Sí, bueno pues entonces
00:00:52
Bueno, pues ahora ya sí que estamos
00:00:57
contextualizados
00:01:05
dentro de lo que es la
00:01:07
tarea del desarrollo
00:01:09
de software, que para nosotros
00:01:10
ahora mismo va a ser
00:01:13
hacer programas sencillos, eso va a ser
00:01:14
bueno, pues entonces para eso tenemos que seleccionar
00:01:18
primero una metodología de programación
00:01:22
en realidad no hay una única forma de programar
00:01:24
no hay una única metodología de programación
00:01:29
hay varias, pero en cuanto a metodología
00:01:31
de programación de propósito general
00:01:35
para resolver cualquier tipo de problemas
00:01:37
aplicaciones comerciales, etcétera
00:01:41
La metodología de programación que se usa es la programación estructural, entonces cuando se empezaron a desarrollar los primeros programas, sobre todo desde el momento en que ya se definió la arquitectura de Von Neumann famosa, pues en los 40, 50 o por ahí,
00:01:43
que no es más que un microprocesador que es capaz de leer sentencias de una memoria RAM,
00:02:19
hacer operaciones con ella y darme resultados a unos registros que a su vez se pueden mandar por buses a dispositivos.
00:02:28
Pues desde que se vio que ese modelo sobre el papel se podía ya implementar en un hardware como este,
00:02:36
dijo pues ahora ya
00:02:45
llega el momento de empezar a definir
00:02:46
posibles sentencias
00:02:50
pues había empezado lenguajes de pronunciación
00:02:51
a tutiplén, sentencias de todo tipo
00:02:53
cosas rarísimas, extrañísimas
00:02:55
pues desde los primeros lenguajes
00:02:57
hasta el basic, hasta no sé qué
00:02:59
entonces era un galimatía de lenguajes
00:03:01
un desastre, ahí nadie entendía nada
00:03:03
y los programas eran súper
00:03:05
rarísimos, un montón de líneas
00:03:07
que ahora de repente de aquí te ibas aquí
00:03:09
porque cambiabas de idea
00:03:11
eso no había manera de progresar
00:03:12
por ese camino
00:03:15
bueno
00:03:16
como habéis descansado el rato que estábamos con ellos
00:03:18
¿os hace falta descansar?
00:03:21
pues seguimos hasta las 2 y cuarto
00:03:24
por ahí y ya está
00:03:26
vale
00:03:27
entonces ahí había que poner orden
00:03:29
entonces todos los estudiosos
00:03:31
de la materia
00:03:35
matemáticos y todo eso
00:03:35
que son efectivamente
00:03:37
los que crearon
00:03:40
todas las técnicas de programación, pues se dieron cuenta de una cosa que recogieron en el famoso teorema de la estructura.
00:03:42
Entonces, el teorema de la estructura es un enunciado básico en programación, que lo podéis buscar en la Wikipedia, donde sea,
00:04:00
y dice lo siguiente, dice, cualquier cosa que yo pretenda que un ordenador que responda a la arquitectura de Von Neumann,
00:04:09
esta que os he dicho, o sea, un ordenador de toda
00:04:18
la vida, que yo
00:04:20
pretenda que un ordenador de toda la vida me resuelva
00:04:22
cualquier cosa que yo pretenda que me resuelva,
00:04:24
la puedo conseguir
00:04:28
con una secuencia exclusivamente
00:04:30
de tres
00:04:32
tipos de estructuras. O sea, la puedo
00:04:33
conseguir con una secuencia de
00:04:36
sentencias de este tipo. Es decir,
00:04:38
este teorema de la estructura
00:04:41
diría, vale,
00:04:42
bueno, da igual, todo fue
00:04:49
más fácil. Este teorema de la
00:04:50
estructura diría, cualquier
00:04:52
problema que queramos que un ordenador
00:05:02
nos resuelva, se puede
00:05:04
resolver con
00:05:27
programas que usan solamente
00:05:29
tres cosas, que le decimos
00:05:30
qué cosas son.
00:05:33
Esto es lo que dice el tema de la estructura, lo que dice
00:05:51
con mis palabras, para intentar
00:05:53
que sea un poquito más comprensible
00:05:55
pero bueno, lo podéis buscar en la Wikipedia, donde sea
00:05:57
se puede resolver con programas
00:05:59
que incluye tres cosas
00:06:01
en realidad, tres conceptos, más
00:06:07
que de tres cosas, las vamos a llamar
00:06:08
tres conceptos
00:06:10
o tres tipos
00:06:12
de sentencias.
00:06:23
Lo queremos llamar así.
00:06:29
¿Y cuáles son esos tres conceptos básicos
00:06:37
o tres tipos de sentencias?
00:06:39
Lo estoy tuneando un poquito.
00:06:42
Lo digo porque si alguno lo busca por ahí,
00:06:44
lo estoy tuneando un poquito.
00:06:46
Pues la recogida
00:06:47
y la devolución de los datos.
00:06:49
¿Lo hizo lo mismo Luma o no?
00:07:03
No, no, no.
00:07:05
La recogida y devolución de los datos.
00:07:06
decisiones y bucles y todo eso puesto en secuencia que incluyen estaría mejor expresado si pusiéramos
00:07:10
que combinan estaría mejor expresado si pusiéramos que combinan bueno es un poquito túnel pero qué
00:07:29
significa significa yo tengo que resolver un problema pues calcula lees tres usuarios
00:07:47
saca el mayor de los tres
00:07:53
y el mayor de los tres
00:07:56
pues calcula cuántos años le faltan
00:07:57
para cumplir una edad
00:08:00
igual que la de su tío
00:08:02
yo qué sé, cualquier problema
00:08:04
que tengo que resolver
00:08:06
vale, pues yo ya me pongo a pensar en un algoritmo
00:08:06
pues da igual el problema que sea
00:08:10
da igual lo complicado que sea
00:08:11
da igual las operaciones que involucre
00:08:13
da igual lo que sea
00:08:15
siempre va a existir un programa
00:08:16
que lo resuelva
00:08:19
que es una lista de sentencias
00:08:20
una tras otra en secuencia
00:08:23
eso es importante
00:08:24
una lista de sentencias una tras otra
00:08:26
en secuencia
00:08:29
no hace ninguna falta
00:08:29
que se haga nada en paralelo para resolver
00:08:32
cualquier problema, no
00:08:34
siempre se va a poder
00:08:36
resolver con una lista de cosas
00:08:39
en secuencia
00:08:40
y que va a haber ahí en esa secuencia
00:08:41
pues la combinación que nosotros
00:08:44
veamos que funciona
00:08:46
pero solamente de estas cosas
00:08:48
recogida y devolución de los datos
00:08:50
eso es básico, hay que recoger los datos y devolverlos
00:08:52
pero bueno, eso no es nada
00:08:55
lee, escribe, lee, escribe
00:08:56
y luego
00:08:58
tomar decisiones
00:08:59
es decir, en función
00:09:02
de los datos
00:09:04
en función de una preguntita
00:09:06
en función de una condición
00:09:08
hago una cosa o hago la otra
00:09:10
eso es una decisión
00:09:12
en función de si una condición
00:09:14
sobre esos datos
00:09:16
ser mayor que cero
00:09:18
ser múltiplo uno del otro
00:09:20
En función de una condición, hacer una cosa o hacer otra, es decir, el programa se puede dividir por este camino o por esta en función de una condición. Eso es una decisión. Un bucle, ¿qué un bucle es? Yo tengo unas sentencias, pues mandarle al programa que las haga un montón de veces, que esté todo el rato haciéndolas.
00:09:21
las haga y vuelve arriba, ya las has hecho
00:09:43
pues vuelve arriba, ya las has hecho y vuelve
00:09:46
arriba, ya las has hecho y vuelve arriba
00:09:48
hasta que yo te diga, para, y entonces
00:09:50
ya continúas
00:09:52
entonces, la combinación
00:09:53
de mover los datos de acá
00:09:56
para allá
00:09:58
y hombre
00:09:58
a la vez que los mueves puedes
00:10:01
operar con ellos, sumar, restar y
00:10:04
veremos que operación, pero lo básico
00:10:06
mover los datos de acá para allá
00:10:08
decidir en función
00:10:10
de una condición si haces esto o haces
00:10:12
lo otro, eso es una decisión
00:10:14
o un bucle
00:10:16
que es, esto me interesa
00:10:18
hacerlo 27 veces
00:10:20
pues venga, ala
00:10:21
27 veces, esto
00:10:23
también es una sentencia
00:10:26
la decisión
00:10:27
es una sentencia, como ya veremos
00:10:30
y el bucle
00:10:32
es otra sentencia, como ya veremos, más compleja
00:10:33
la sentencia
00:10:36
n igual a 3 más 1
00:10:37
es una sentencia
00:10:39
la sentencia
00:10:41
haz
00:10:44
esto 27 veces
00:10:45
también es una sentencia
00:10:48
más compleja, pero también es una sentencia
00:10:50
en este caso es una sentencia
00:10:52
de bucle, porque es
00:10:54
haz esto 27 veces, también es una sentencia
00:10:56
otra sentencia posible, la decisión
00:10:59
que decimos, que es
00:11:02
si x es igual a 3
00:11:04
haz esto
00:11:06
eso también es una sentencia posible para el programa
00:11:07
un poquito más compleja que la de n igual a 2
00:11:10
porque implica
00:11:14
si x es igual a 3 hace esto
00:11:15
pero también es una sentencia
00:11:17
pues ya está, no hacen falta más tipos de sentencias
00:11:18
no hacen falta
00:11:22
combinando
00:11:22
y esa combinación dependerá
00:11:24
lógicamente de nuestro pensamiento lógico
00:11:26
que ha decidido cómo tiene que combinarlas
00:11:29
combinándolas en secuencia
00:11:30
tres decisiones
00:11:33
ahora un bucle, ahora una lectura de datos
00:11:35
ahora una decisión, ahora tres bucles
00:11:37
combinándolas en secuencia
00:11:39
tal y como nuestro pensamiento
00:11:41
lógico haya decidido
00:11:44
podemos resolver
00:11:45
cualquier problema
00:11:47
que pueda hacer una máquina de esas
00:11:49
y eso
00:11:52
no ha cambiado y eso sigue siendo así
00:11:53
y eso es así
00:11:55
una cuestión matemática
00:11:56
no hace falta nada más
00:11:58
nada más que combinar esas tres cosas
00:12:01
entonces
00:12:03
cuando ya por fin eso se
00:12:05
y se comprobó que era así,
00:12:07
empezaron a desaparecer los lenguajes
00:12:10
que se inventaban sentencias que hacían cosas raras.
00:12:12
Porque lo único que hacían era obtener programas muy complejos.
00:12:15
Entonces, a partir de ese punto,
00:12:21
empezaron a surgir los lenguajes de programación estructurados,
00:12:23
que se llamaban.
00:12:28
¿Y cuáles son los lenguajes de programación estructurados?
00:12:29
Lenguajes de programación que solo tienen estos tipos de sentencias.
00:12:32
Y no tienen nada más
00:12:36
¿Por qué? Porque no les hace falta nada más
00:12:38
No les hace falta nada más
00:12:40
Contener eso es suficiente
00:12:42
Ya está
00:12:44
Y todos los lenguajes
00:12:51
Que manejamos ahora mismo
00:12:54
Salvo los específicos para a lo mejor
00:12:55
Pues para
00:12:58
De programación funcional
00:13:00
Para matemáticas
00:13:02
que son programación funcional
00:13:03
pero son cosas muy concretas
00:13:06
todos son estructurados
00:13:07
¿qué es lo que han ido aportando?
00:13:09
la forma de organizar
00:13:13
el código
00:13:15
el código es estructurado siempre
00:13:15
pero ¿qué han aportado?
00:13:17
pues Java en particular
00:13:20
lo que fue pionera es
00:13:21
vamos a organizarlo en cachos diferentes
00:13:22
lo que os decía el primer día
00:13:26
porque si yo puedo hacerme
00:13:27
un programa estructurado solamente
00:13:30
con estos tres tipos
00:13:32
de cosas, me resuelve todo.
00:13:34
Pero me han salido 10.000 líneas.
00:13:36
Pues voy a dividirlo en tres cachitos
00:13:38
y cada cachito
00:13:40
una clase. Ya está, pero lo que hay
00:13:42
en cada clase es estructurado, es que no hay otra.
00:13:44
¿Vale? Luego, la programación
00:13:46
de entrada de objetos no es que sea una alternativa
00:13:48
a la estructurada. No.
00:13:50
La programación de entrada de objetos
00:13:52
incluye la estructurada
00:13:53
y cambia la forma de organizar
00:13:55
esos trozos
00:13:59
estructurados para facilitar la reutilización
00:14:00
nada más, pero todo
00:14:02
es estructurado dentro
00:14:04
bueno, pues entonces lo primero
00:14:05
que hay que aprender, cuando uno tiene que aprender a programar
00:14:10
que es lo más importante porque es lo que
00:14:12
te da el pensamiento lógico
00:14:14
es la programación estructurada
00:14:15
que es como con tu lenguaje de programación
00:14:17
puedes utilizar
00:14:20
estos tres tipos de sentencias, ver que sintaxis
00:14:21
tienen, etcétera, para construir tus códigos
00:14:23
y ya está
00:14:26
¿vale?
00:14:27
bueno, pues por eso este tema
00:14:28
es programación estructurada
00:14:31
bueno, los que ya habéis programado alguna vez
00:14:33
aunque sea con Scratch, en tercero de la ESO
00:14:51
la decisión y el bucle
00:14:53
os suena, aunque sea por un muñeco
00:14:55
que daba muchas volteretas
00:14:57
o se iba por un camino o se iba por otro
00:14:59
pues es eso, es lo mismo
00:15:00
se podría aprender programación estructurada
00:15:02
sin aplicar a ningún lenguaje
00:15:09
no hace falta
00:15:11
podemos incluso escribir en lenguaje
00:15:12
natural un programa
00:15:15
Por ejemplo, programa que me lea dos números y me diga el mayor de los dos
00:15:17
Por ejemplo, eso es un problema que a lo mejor yo quiero resolver con un ordenador
00:15:24
Te doy dos números y tu ordenador dime cuál es el mayor
00:15:28
Porque es que yo estoy un poco lento para eso
00:15:32
Pues eso sería, por ejemplo, un primer problema que queremos resolver
00:15:35
programa que recibe
00:15:42
dos números
00:15:49
y muestra
00:15:50
el mayor.
00:15:58
Claro, esto es como si fuera
00:16:03
en términos nuestros un ejercicio,
00:16:04
pero en términos generales
00:16:07
un problema que tú te has encontrado
00:16:09
que es, yo tengo dos números
00:16:11
y quiero saber cuál es el mayor.
00:16:13
Hombre, ese lo vas a saber resolver por ti mismo.
00:16:15
Pero imagínate que se lo quieres
00:16:17
dar a una máquina, ¿por qué?
00:16:19
Porque quieres hacer eso
00:16:21
200.000 veces.
00:16:23
Entonces, si lo tienes que hacer tú, dos números, el mayor es este, dos números, el mayor es este, dos números, el mayor es este, hasta que lo hagas 200.000 veces, te vas a estar un rato.
00:16:25
Entonces, a ver, espérate, voy a hacer esto en un ordenador, porque el ordenador, los números, a toda velocidad, los puede ir leyendo de donde sea, de un fichero, de donde sea, y a toda velocidad me va a dar los resultados, mucho más rápido de lo que yo lo haría.
00:16:35
que es para lo que en la mayoría
00:16:53
de los casos sabemos las cosas
00:16:55
porque lo hacen rápido
00:16:57
¿vale? entonces
00:16:59
pues entonces es un problema
00:17:01
que nos hemos encontrado que por la razón
00:17:04
que sea, que en este caso hemos dicho
00:17:05
porque él es más rápido que nosotros
00:17:07
y si lo quiero hacer 300 veces
00:17:09
pues mucho mejor que lo haga él que no que lo haga yo
00:17:11
con esta razón hemos decidido
00:17:13
que queremos que lo haga ordenado
00:17:15
¿vale? pues aquí
00:17:17
aquí no hay lenguaje de programación que valga
00:17:19
ni hay nada que valga.
00:17:21
Aquí lo primero que tenemos que pensar es un algoritmo.
00:17:23
Es lo primero que pensamos.
00:17:27
¿Qué algoritmo seguir para esto?
00:17:29
Todavía no he mencionado ningún lenguaje de programación ni nada.
00:17:36
¿Vale?
00:17:39
¿Algoritmo qué es?
00:17:41
Lo mencionamos el primer día en cuanto a sinónimo,
00:17:43
lo podíamos entender como sinónimo de programa.
00:17:47
Un algoritmo es una secuencia ordenada y finita de pasos para resolver un problema.
00:17:50
Eso es un algoritmo, secuencia ordenada y finita de pasos.
00:17:58
Venga, pues vamos a pensar qué secuencia ordenada de pasos puedo seguir yo para resolver esto.
00:18:03
Pues si vamos por orden, lo primero será leer los números.
00:18:12
Entonces, no voy a leer dos números de golpe, no puedo.
00:18:17
Al ordenador, el ordenador tiene sus limitaciones.
00:18:20
Entre ellas es que las cosas hay que dárselas una por una.
00:18:24
Vale, pues entonces, el algoritmo, ya tendríamos.
00:18:28
Primer paso del algoritmo, leer el numerito 1.
00:18:31
Ala, ya tengo el primer paso del algoritmo, bien.
00:18:39
Siguiente paso de mi algoritmo, necesito otro número más.
00:18:42
Pues venga, leer el segundo número.
00:18:46
Vale, aquí ya se me complica la vida.
00:18:54
para elaborar el algoritmo.
00:18:57
Entonces, aquí lo primero que tenemos que pensar,
00:19:00
una vez que hemos hecho la lectura de datos,
00:19:02
que esa es la más fácil,
00:19:03
¿qué datos necesito?
00:19:05
Estos.
00:19:06
Leer, leer, leer.
00:19:07
Ahí hay poco que pensar.
00:19:08
Leer los datos.
00:19:10
Vale.
00:19:10
Ahora ya es cuando tenemos que pensar,
00:19:11
vale, pero ¿qué operaciones tengo que hacer aquí?
00:19:14
Porque si lo tengo que dar todo muy más caro y detallado.
00:19:16
Desde luego, el siguiente paso no podría ser al ordenador
00:19:18
decir el mayor.
00:19:23
Este no es un paso válido para un algoritmo, porque el ordenador no sabe, no sabe, al ordenador hay que dárselo todo en términos de operaciones algebraicas que son las únicas que sabe hacer, algebraicas y lógicas, hemos dicho que un ordenador es una unidad aritmético-lógica que hace operaciones aritméticas, sumas, restas y lógicas, ah, Dios, y ya está, vamos a hacer más que eso, entonces el concepto de dime el mayor, ¿qué me estás contando?
00:19:28
con lo cual esto como algoritmo no nos vale
00:19:54
pues entonces
00:19:57
uy no yo quería esto
00:19:58
pues entonces como ya se nos ha complicado la cosa
00:20:00
porque eso no nos vale como paso del algoritmo
00:20:04
ni por tanto nos valdrá como paso
00:20:07
del programa no nos valdrá
00:20:08
para arrancar a pensar
00:20:10
lo más fácil es que
00:20:12
nos situemos al final siempre
00:20:14
que es a donde quiero llegar
00:20:16
a donde quiero llegar yo
00:20:18
yo quiero llegar
00:20:20
a un resultado
00:20:22
final que tengo, que está
00:20:24
entre dos opciones. Mi resultado
00:20:26
final, que no sé qué paso será,
00:20:29
el D, el E, el F, no lo sé.
00:20:30
Mi resultado final
00:20:33
yo sé que va a ser
00:20:34
muestra num1
00:20:37
o muestra num2.
00:20:39
Eso el ordenador sí que sabe.
00:20:41
Mostrar
00:20:43
y leer sí sabe.
00:20:44
Vale, pues entonces yo sé que hay
00:20:47
al final
00:20:48
el algoritmo
00:20:49
tiene que hacer
00:20:51
una de dos cosas
00:20:53
y no más
00:20:56
al final mi algoritmo va a hacer
00:20:57
o mostrar
00:21:00
num1
00:21:02
vamos a suponer que no le damos números iguales
00:21:04
porque si no simplemente lo que cambiaría
00:21:07
sería que puede mostrar tres cosas
00:21:10
mostrar num1, mostrar num2
00:21:12
o mostrar el mensaje son iguales
00:21:14
ni siquiera, vamos a dejarlo en dos posibilidades
00:21:17
asumimos que siempre le vamos a dar
00:21:19
números distintos
00:21:21
Pues entonces, para seguir pensando el resto del algoritmo, repito,
00:21:23
lo más fácil es que yo me vaya al final y diga, pero vamos a ver,
00:21:28
¿yo qué espero del programa? ¿Qué espero?
00:21:31
Pues espero que al final pase una de estas dos cosas.
00:21:33
O mostrarme un 1 o mostrarme un 2.
00:21:38
Vale, pero claro, ¿cuál de las dos es?
00:21:42
Porque un programa no puede hacer dos cosas,
00:21:46
tiene que hacer una secuencia de pasos definida.
00:21:49
Pues entonces, aquí es donde decimos, vale, ¿qué decía la programación estructurada?
00:21:52
Que tú puedes incluir decisiones o bucles.
00:22:01
Una decisión que es hacer una cosa o hacer otra en función de una condición.
00:22:05
Ah, vale, vale, eso encaja con lo que yo quiero.
00:22:14
Porque mi programa o bien va a hacer esto o bien va a hacer esto otro,
00:22:16
en función de si
00:22:20
NUM1 es mayor que NUM2
00:22:23
o si NUM2 es mayor
00:22:25
que NUM1. Eso ya es
00:22:27
estructural, porque eso
00:22:29
ya es una decisión, que es
00:22:31
si esto pasa, hace esta cosa
00:22:33
que lo que no sabe hacer, que es mostrar
00:22:35
y si no pasa, hace esta otra.
00:22:37
Eso ya si es
00:22:41
algo de población estructurada, que podemos poner
00:22:41
en nuestro algoritmo. Pues magnífico,
00:22:43
lo podríamos poner como nuestro tercer
00:22:46
paso. ¿Vale? Lo estoy poniendo
00:22:47
como ejemplo, ahora mismo no estamos viendo
00:22:49
sentencias de decisión ni de nada, entonces mi algoritmo
00:22:52
podría seguir ahora ya así, oye
00:22:57
si resulta
00:23:02
que num1 es mayor que num2
00:23:05
si resulta esto
00:23:09
pues entonces muestra
00:23:13
el num1
00:23:17
por ejemplo
00:23:18
y podría escribir aquí
00:23:21
Si num2 es mayor que num1
00:23:25
Muestra num2
00:23:32
Y mi programa habría terminado
00:23:38
Fin
00:23:41
Vale, con esto es lo único que quiero decir
00:23:42
Varias cosas
00:23:47
Primera
00:23:47
Que para aprender a programar en programación estructurada
00:23:48
Yo no necesito ningún lenguaje de programación
00:23:51
¿Vale?
00:23:54
Porque programar es elaborar algoritmos
00:23:55
La traducción de esto
00:23:58
A Java, Python, ASEA
00:24:00
lo que a mí me dé la gana ya es inmediato. Lo difícil es hacer la secuencia de pasos
00:24:02
que resuelven el problema. Y esa secuencia de pasos solo puede involucrar sentencias
00:24:08
de aprobación estructurada, que serían leer y mostrar datos, como en este caso esto que
00:24:15
es leer datos y aquí que estamos devolviendo, decisiones, lo que hemos hecho aquí, aunque
00:24:22
Eso ya lo veremos más en detalle, cómo funciona
00:24:30
una decisión. Si pasa
00:24:32
esto, haz una cosa.
00:24:34
Eso es una decisión, pues la puedo incluir en mi
00:24:36
algoritmo. Y bucles
00:24:38
que aquí no nos han hecho falta. No nos han hecho falta
00:24:40
pero nos pueden haber hecho.
00:24:42
Esto ya es un algoritmo
00:24:44
de programación estructurada, perfecto
00:24:45
porque solo involucra eso.
00:24:48
Y yo lo puedo pasar a un
00:24:50
lenguaje de programación estructurada y tengo el programa hecho.
00:24:52
Lo que pasa es que nosotros, desde el principio
00:24:54
ya vamos a trabajar con un
00:24:56
lenguaje de programación
00:24:58
pues para facilitar
00:24:59
la ejecución, la comprobación
00:25:01
de si está bien, está mal y por optimizar
00:25:04
y por ir más rápido
00:25:06
pero podríamos trabajar en esto
00:25:07
que se podría llamar
00:25:10
pseudocódigo
00:25:12
¿qué es un pseudocódigo?
00:25:13
un lenguaje parecido
00:25:16
al natural
00:25:18
en el que tú escribes programas
00:25:18
que no se corresponden con ningún lenguaje
00:25:21
de programación y que por tanto ni ejecuta
00:25:24
ni nada, porque no se corresponden con ningún
00:25:26
lenguaje
00:25:27
esto podría ser una especie
00:25:28
de pseudocódigo
00:25:30
dime
00:25:31
si, claro, a ver
00:25:33
lo que no sabes entender, dime cuál es mayor
00:25:42
pero los operadores
00:25:45
los entiende, el más, el menos
00:25:46
los operadores aritméticos
00:25:48
y los relacionales los entiende
00:25:50
que son los que vamos a ver, entonces
00:25:52
el operador este es un operador relacional
00:25:54
mayor que, lo entiende
00:25:56
si tú le dices 3 mayor que 2
00:25:58
él te va a decir, ¿verdad?
00:26:00
si le dices 3
00:26:03
mayor que 7, él te va a decir, mentira
00:26:04
o sea, los operadores estos
00:26:06
los conoce, lo que no
00:26:08
entiende es una sentencia del tipo
00:26:10
dime cuál es mayor de los dos
00:26:12
no, pero si tú le das
00:26:14
una sentencia de decisión en la que le dices
00:26:16
la operación que tiene que hacer
00:26:18
él no sabe, que para saber si uno es mayor
00:26:20
que otro, él no sabe que tiene que usar
00:26:22
este operador, él no lo sabe
00:26:24
tú se lo tienes que decir, le dices
00:26:26
este operador
00:26:28
si es mayor
00:26:30
si esto es
00:26:31
verdad, me devuelves esto
00:26:34
¿vale? pero bueno, todo esto
00:26:37
precisamente es lo que tenemos que ir desarrollando
00:26:38
esto lo ponía como ejemplo
00:26:41
de que
00:26:43
programar es elaborar algoritmos
00:26:44
que usando sentencias de parámetro estructurada
00:26:46
resuelven el problema que sea
00:26:49
desde partida vamos a usar
00:26:51
Java nosotros
00:26:55
¿Vale? Y traducir esto a Java
00:26:56
Pues sería inmediato
00:26:57
Pero podríamos aprender a programar
00:26:58
Sin usar ningún lenguaje de programación
00:27:02
Sí
00:27:03
Pero bueno, vamos a empezar
00:27:04
Usando este
00:27:06
Para que sea un poquito más
00:27:09
Más dinámico
00:27:13
Vale, pues primeros conceptillos
00:27:15
Que vamos a ir introduciendo
00:27:19
Para que podamos empezar a ir haciendo las primeras cosas
00:27:20
Aunque sean sencillas
00:27:23
Primera cosa
00:27:24
Importantísima, importantísima
00:27:27
importantísima. Los programas
00:27:29
trabajan con datos.
00:27:33
Si no, no valen para nada.
00:27:35
¿Verdad? Si un programa no tiene
00:27:37
datos con los que trabajar...
00:27:39
Pero esto es aparte de lo de antes, ¿no?
00:27:40
Es como aplicarlo con Java.
00:27:45
Sí, sí, sí. O sea, lo de antes
00:27:47
era un ejemplo
00:27:49
con el que los quería ilustrar
00:27:51
que programar no es
00:27:53
usar un lenguaje de programación.
00:27:55
Programar es diseñar
00:27:57
algoritmos para que resuelvan
00:27:59
problemas. Es decir, es el pensamiento lógico
00:28:01
que te lleva a ti
00:28:03
a decidir qué pasos
00:28:05
resuelven el problema. Pero eso
00:28:08
es independiente de cualquier lenguaje de programación.
00:28:09
Entonces, lo que hemos hecho antes nosotros
00:28:11
es programar, pero no lo hemos aplicado
00:28:13
a ningún lenguaje. Y ahora
00:28:15
lo que os digo es, vamos
00:28:17
a programar, pero ya directamente
00:28:19
usando el lenguaje
00:28:21
para escribir ya directamente la sentencia.
00:28:24
Exacto.
00:28:26
Sí, bueno.
00:28:27
Bueno, eso de antes no.
00:28:29
ese programa en particular no
00:28:30
bueno, pues entonces
00:28:32
ahora ya sí que empezamos en Java
00:28:35
empezamos con Java
00:28:37
entonces
00:28:38
primera cosa que tenemos que entender
00:28:40
que yo creo que es evidente para todos, para empezar a introducir
00:28:42
los primeros conceptos
00:28:45
¿cómo la batería se está agotando?
00:28:47
ah, claro, es que no puede ser
00:28:49
si esto está
00:28:51
¿cómo funciona este?
00:28:52
a ver un momentito
00:29:01
tú
00:29:02
tienes, vale
00:29:05
Bueno, pues a ver
00:29:13
Bueno, pues
00:29:14
Para introducir el primer concepto básico
00:29:19
Que es el de variables
00:29:22
Para introducir el primer concepto básico
00:29:23
Que es el de variables
00:29:25
Tenemos que entender que
00:29:25
Cualquier programa
00:29:28
Que utiliza datos
00:29:30
Los programas necesitan
00:29:34
Datos para trabajar, ¿verdad?
00:29:42
El primer programita que hemos hecho nosotros
00:29:48
El de saludar
00:29:50
Ese no necesitaba ningún dato
00:29:51
ese no, porque eso lo que hacía era
00:29:53
hola, ya está
00:29:55
si lo hubiéramos cambiado
00:29:56
para que me saludara
00:29:59
para que saludara a la persona
00:30:01
que lo ejecuta
00:30:03
vale, si lo hubiéramos hecho
00:30:05
una primera modificación
00:30:07
para conseguir un programita
00:30:09
más sofisticado
00:30:11
que saludara a la persona
00:30:12
que lo ejecuta
00:30:15
ahora ya si necesitaría un dato
00:30:16
que es
00:30:19
el dato de la persona que lo ejecuta
00:30:20
Entonces, ese programa, lo primero que haría sería, ¿cómo te llamas?
00:30:23
Tú le das ese dato y ahora ya el programa te saludaría.
00:30:27
Hola, Pepito.
00:30:31
¿Vale?
00:30:32
Entonces, en general, cualquier programa necesita datos para trabajar,
00:30:33
salvo excepciones como el Hola Mundo de ayer.
00:30:39
Claro, cualquier otro necesita datos para trabajar.
00:30:41
Eso está claro.
00:30:44
Pues, entonces, lo primero que tenemos que ver en Java,
00:30:45
antes de poder hacer cualquier programa,
00:30:47
es donde guardamos los datos
00:30:49
con los que el programa tiene que trabajar.
00:30:53
¿Dónde los guardamos?
00:30:56
Bueno, pues los datos de trabajo del programa
00:30:59
tienen que estar sí o sí,
00:31:01
para eso sí que no hay alternativa,
00:31:18
en variables.
00:31:21
Tienen que estar en una cosa o en muchas,
00:31:27
si son muchos datos,
00:31:30
que se llamen variables.
00:31:32
Un programa no puede trabajar con nada que no esté en una variable.
00:31:34
Entonces, lo primero que tenemos que hacer es desde nuestro programa,
00:31:42
desde nuestros programas en Java, saber cómo crear esas variables
00:31:54
para poder meter en ellas datos.
00:31:58
Entonces, el primer concepto.
00:32:02
El primer concepto es el concepto de variable básico en programación.
00:32:03
Es el concepto más importante de la programación variable,
00:32:06
variable porque todo aquel dato con el que el programa tenga que trabajar tiene que estar en
00:32:09
una variable eso no tiene pero que valga bueno pues vamos a ver un poquito más que es una variable
00:32:14
que es una variable una variable es una cajita para guardar un dato esto es una variable entonces
00:32:24
El programa, nosotros le diremos cuáles son las cajitas en las que están sus datos
00:33:01
y tendremos que aprender cómo llenar esas cajitas con los datos
00:33:11
y cómo sacar esos datos de las cajitas, lógicamente.
00:33:14
Una variable es eso, una caja para guardar un dato.
00:33:18
Puedes guardar uno, lo que pasa es que ese dato puede ser un objeto
00:33:24
y un objeto es una variable gorda con muchos datos dentro.
00:33:27
Entonces, con el matiz de solo puedes guardar uno, sí, solo puedes guardar uno. Pero ese dato puede ser un objeto. Y un objeto puede tener a su vez millones de cosas dentro. Pero dejémoslo por ahora así, ¿vale?
00:33:31
Entonces, la cajita, para que el programa, para poder decirle yo a qué cajita se refiere, porque un programa puede tener mil variables, mil cajitas con mil datos, pues para decirle al programa, oye, usa esta, usa la otra, usa esta otra.
00:33:44
lo normal es que la cajita tenga su nombre
00:34:01
entonces cada cajita
00:34:04
recibe un nombre
00:34:05
luego cada variable
00:34:07
siendo variable el sinónimo de mi cajita
00:34:14
cada variable tiene su propio nombre
00:34:16
cada variable
00:34:19
tiene su propio nombre
00:34:21
entonces la variable involucra por tanto
00:34:22
dos conceptos, dos ideas
00:34:26
su nombre
00:34:28
y el dato que tiene dentro
00:34:29
que son dos cosas distintas
00:34:32
por ejemplo esta variable
00:34:34
se podría llamar a lo mejor
00:34:36
números, y eso es
00:34:38
el nombre de la variable
00:34:40
yo lo decido, ahora veremos como
00:34:41
desde código, creo una
00:34:44
variable o una cajita y la
00:34:46
llamo num, ahora lo haremos en código
00:34:48
pero eso es lo primero que tenemos que hacer
00:34:50
vale, pues
00:34:52
esta variable o cajita se llama
00:34:54
num, porque yo lo he decidido
00:34:56
y a partir de ahí
00:34:57
puede guardar
00:34:59
el dato que a mi me dé la gana
00:35:01
con las restricciones que ahora veremos
00:35:04
qué dato guardará el que yo quiera
00:35:05
siempre el mismo
00:35:09
no, esa cajita puede ir cambiando
00:35:10
a veces guarda un 3, a lo mejor luego guarda un 7
00:35:12
va cambiando
00:35:15
por eso se llama variable
00:35:16
porque su contenido puede
00:35:18
variar, su nombre no varía jamás
00:35:20
su nombre es num
00:35:22
no varía, yo soy la cajita num
00:35:24
qué dato voy a tener dentro
00:35:26
lo que me quieran meter
00:35:28
cuando quieran en cada momento
00:35:30
me da lo mismo
00:35:32
dos variables distintas
00:35:33
cada una tiene su dato distinto
00:35:39
que a su vez puede ir variando si hiciera falta
00:35:41
que no es el caso
00:35:44
uno y dos serían variables
00:35:44
no, eso serían datos contenidos en banco
00:35:47
uno y dos serían
00:35:50
nombres de dos variables
00:35:54
efectivamente
00:35:55
y dentro iría
00:35:56
el dato que tú le das cuando ejecutas
00:36:00
el programa, a lo mejor la primera vez
00:36:02
le das 3 y 2
00:36:04
y en ese momento la variable en un 1
00:36:05
tiene dentro el 3 y la variable en un 2
00:36:08
tiene dentro el 2, pero a lo mejor dentro de 2 horas
00:36:10
haces otra ejecución
00:36:12
entonces la variable en un 1 que se sigue
00:36:13
grabando en un 1, ahora tiene el 7
00:36:16
y la variable en un 2 que se sigue
00:36:18
grabando en un 2, ahora tiene el 8
00:36:20
luego la variable es
00:36:21
una caja que tú creas cuando
00:36:23
arranca el programa o en cualquier momento
00:36:26
de repente sea cuando arranca, que está
00:36:28
pensada para recibir
00:36:30
un dato
00:36:32
el dato puede ser cualquiera
00:36:32
el que a ti te interese en cada momento
00:36:35
¿vale?
00:36:38
pero la cajita una vez que ha recibido
00:36:40
un nombre, ese es su nombre
00:36:42
en el ejemplo anterior
00:36:43
efectivamente, que habíamos mencionado un poco
00:36:46
por encima, solamente para ver el lenguaje natural
00:36:48
teníamos dos cajitas
00:36:50
num1 y num2
00:36:52
su contenido
00:36:53
yo lo varío en función de los dos
00:36:55
números que quiera comparar
00:36:58
si quiero comparar el 3 y el 7
00:36:59
num1 recibe el 3 y num2
00:37:01
recibe el 7, que quiero comparar
00:37:03
el 15 y el 23, num1
00:37:05
recibe el 15 y num2 el 23
00:37:07
num1, num2
00:37:10
los nombres de las variables
00:37:12
el dato
00:37:14
el que me interese a mi en cada momento
00:37:15
¿vale?
00:37:18
primera cosa distinguir
00:37:19
nombre de variable
00:37:20
dato que recibe dentro que es
00:37:22
variable, que puede cambiar
00:37:25
pues cuando uno
00:37:27
hace un programa, pues
00:37:29
primero tiene que hacer
00:37:31
lo que se llama en el desarrollo de software
00:37:33
la fase de análisis
00:37:35
que es una fase importantísima
00:37:36
que esa no tiene nada que ver ni con
00:37:39
entornos de desarrollo, ni con programas, ni con
00:37:41
código, eso tiene que ver con un cerebro
00:37:43
un papel y un lápiz, que es
00:37:45
¿de qué va este programa?
00:37:47
¿cuántos datos va a manejar?
00:37:49
¿muchos, pocos?
00:37:51
¿cuántas variables me va a interesar que tenga?
00:37:53
¿de qué tipo van a ser? ¿son números, son letras?
00:37:55
o sea, una especie de visión global
00:37:57
de de qué va el rollo
00:37:59
eso es lo que hace el analista
00:38:00
se aproxima al problema a ver de que va
00:38:02
y va ilustrando
00:38:04
con pinceladas
00:38:07
su posible solución
00:38:08
y luego ya
00:38:10
después de que ha acabado el analista
00:38:12
que es al que le han pagado
00:38:15
muchísimo más que a nadie
00:38:16
pues ya llega el programador
00:38:18
que ya hace la parte fácil
00:38:20
que es con el lenguaje de programación que sea
00:38:22
pues ya programa
00:38:24
bueno pues entonces
00:38:25
nosotros en nuestra pseudo fase
00:38:28
de análisis, porque nuestros programas son sencillos
00:38:30
pues en nuestra pseudo fase de análisis
00:38:32
cuando nos dan un enunciado
00:38:34
después de leerlo dos, tres, cuatro veces
00:38:36
lo primero
00:38:38
que nos ronda por la cabeza
00:38:40
nos tiene que rondar por la cabeza es
00:38:42
¿cuántas variables yo necesitaría?
00:38:44
en el programa anterior
00:38:47
rápidamente diríamos, como el programa
00:38:48
es, lee dos números
00:38:50
y dime cuál es mayor
00:38:52
voy a necesitar dos cajitas
00:38:54
una cajita para el primero y otra para el segundo
00:38:55
¿Vale? Pero todo eso
00:38:58
lo vamos pensando
00:39:00
en sucesivas lecturas
00:39:01
del enunciado
00:39:04
y cuando ya tenemos un diseño, lo tenemos pensado
00:39:04
en la cabeza, ya empezamos a escribir
00:39:08
¿Vale? Bueno, pues cuando
00:39:09
uno ya ha llegado a la conclusión
00:39:12
de que necesita una variable
00:39:13
para un dato, por la razón que sea
00:39:16
pues ahora ya puede
00:39:17
en Java escribir
00:39:19
la sentencia que te crea
00:39:22
esa cajita, le da el valor
00:39:24
lo que haga falta
00:39:26
¿Vale?
00:39:26
Bueno, pues entonces, ¿está claro, no?
00:39:28
Que una variable es un espacio, lo que yo digo cajita es un espacio en la memoria RAM, lógicamente.
00:39:31
¿Esta cajita físicamente dónde está?
00:39:37
Pues en la memoria RAM.
00:39:40
Luego la memoria RAM no solo va a tener el código que se va ejecutando,
00:39:44
eso va a tener que estar ahí sí o sí.
00:39:48
En la memoria RAM también habrá un cacho ahí reservado para las variables,
00:39:50
Aunque eso a nosotros nos da igual, ni lo vemos ni nos importa.
00:39:56
Pero bueno, es importante que sepamos que todas las variables que nosotros vamos a crear en nuestros códigos,
00:40:01
todas ellas son cajitas o espacios de memoria que van a estar aquí en la RAM.
00:40:09
Cada variable es un espacio de memoria en la RAM.
00:40:15
Y ese espacio de memoria, ¿para qué está pensado?
00:40:20
Para guardar un dato, un dato que irá cambiando.
00:40:23
según el programa vaya necesitando
00:40:25
bueno, pues ahora sí que vamos a ver
00:40:28
en código, cómo poder
00:40:32
crear esas
00:40:34
variables, vale, vamos a suponer
00:40:35
que yo ya tengo
00:40:48
mi class bla bla bla
00:40:48
y mi main bla bla bla
00:40:55
o sea, me ahorro todo esto para no escribirlo
00:40:57
todo el rato, vale, esto ya lo tengo
00:40:58
escrito, me lo ahorro para no escribirlo todo el rato
00:41:00
ahora ya me voy al bloque de código
00:41:03
en el que voy a escribir cosas, ya me voy a ese bloque
00:41:04
de código, vale, ahora
00:41:07
lo hacemos y nos da tiempo en el eclipse
00:41:09
vale, pues
00:41:10
vamos a
00:41:13
crear una variable
00:41:15
vamos a crear la variable num1
00:41:16
por ejemplo
00:41:19
antes de crear una variable
00:41:20
lo primero yo tengo que decidir el nombre
00:41:22
de la variable
00:41:24
entonces, esto es lo mismo que
00:41:25
el nombre del programa este
00:41:28
después del class que decíamos el otro día
00:41:30
el nombre de variable
00:41:32
que esté lo mejor elegido
00:41:34
posible, porque eso va a hacer
00:41:36
que nuestro programa sea lo más legible
00:41:38
o entendible posible.
00:41:41
Entonces, si yo tengo una variable
00:41:44
para guardar la edad de un usuario,
00:41:45
a esa variable la llamaré edad,
00:41:49
no la llamaré x.
00:41:52
Si la llamo x,
00:41:54
lógicamente al compilador le da igual,
00:41:56
pero ese programa está mal escrito.
00:41:58
El que tenga que arreglarlo,
00:42:01
el que lo abra,
00:42:02
¿qué sería x?
00:42:02
Tendría que empezar a mirarlo.
00:42:05
Pero si le llamas edad,
00:42:06
ya empieza a entender un poquito más
00:42:08
de qué van esas sentencias, ¿vale?
00:42:10
Luego, nombres de variables, de nuevo,
00:42:12
como pauta de programación,
00:42:16
no como obligación del lenguaje,
00:42:19
bien elegidos.
00:42:22
Pues venga, por ejemplo, pues ya está,
00:42:24
vamos a hacer una variable
00:42:26
y le voy a dar yo el nombre de edad,
00:42:27
porque en mi programa, a ver, os veo inquietos,
00:42:30
¿eso es porque es tarde?
00:42:33
Eso ni cuánto, vale, no, nos vamos a ir ya.
00:42:34
vale, vamos a crear una variable
00:42:36
para guardar la edad
00:42:39
de una persona, porque yo necesito
00:42:41
un programa que trabaja con la edad de una
00:42:43
persona, para ese es mayor de edad, lo que sea
00:42:45
primero
00:42:46
pienso el nombre
00:42:48
nombre
00:42:50
lo más descriptivo posible
00:42:52
edad, vale
00:42:54
pero no puedo poner edad sin más
00:43:02
si hay la variable aparecido
00:43:04
aquí ya estoy escribiendo código, esto es lo que iría
00:43:06
dentro de ese mail famoso de esas llaves
00:43:09
vale, ¿qué tengo que hacer?
00:43:11
siguiente cosa que pienso
00:43:14
oye, esta cajita
00:43:15
edad que yo he creado
00:43:18
aquí, esta cajita edad
00:43:20
¿qué tipo de dato va a
00:43:21
contener? ¿va a contener
00:43:24
números o va a contener caracteres?
00:43:26
y en función
00:43:29
de eso
00:43:30
ponemos aquí, que ya vemos
00:43:30
mañana o el jueves, el tipo
00:43:33
de dato que va a contener
00:43:35
que ya nos da tiempo
00:43:37
terminamos con punto y coma
00:43:39
y la cajita está creada
00:43:41
¿vale?
00:43:43
pero vamos a dejarlo aquí
00:43:44
¿qué tenemos que ver ahora?
00:43:45
me has dicho que tienes que poner ahí un tipo
00:43:49
un tipo de dato
00:43:52
pues ¿qué tipos de datos tengo?
00:43:53
pues unos 4
00:43:55
¿vale?
00:43:56
ya los vemos el próximo día
00:43:58
para poder empezar a trabajar con las primeras variables
00:43:59
ahora nos quedamos con esto
00:44:01
y ya está
00:44:02
¿vale?
00:44:04
pues
00:44:04
Gracias.
00:44:08
- Materias:
- Programación
- Niveles educativos:
- ▼ Mostrar / ocultar niveles
- Formación Profesional
- Ciclo formativo de grado superior
- Primer Curso
- Subido por:
- Raquel G.
- Licencia:
- Todos los derechos reservados
- Visualizaciones:
- 20
- Fecha:
- 17 de septiembre de 2025 - 18:34
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 44′ 12″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 2.95