240917 Intro1 - 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, estoy grabando esta clase, por lo tanto, si hacéis alguna pregunta, comentario, levantar la mano, habláis, me estáis dando implícitamente el consentimiento para grabar.
00:00:00
¿Vale? Si no queréis que vuestras preguntas o comentarios sean grabados, me decís algo para que pare la grabación un momento, me hacéis la pregunta y luego seguimos.
00:00:11
¿Vale? No sé por qué, pero está en vuestro diálogo.
00:00:21
Entonces, vamos a empezar a ver qué es la programación.
00:00:25
programación, tened en cuenta que
00:00:28
aquí hay alguien de vosotros
00:00:29
que ya sabe un poco programar
00:00:32
que ya ha visto programación, otros lo han visto
00:00:33
en la ESO, otros la saben
00:00:35
porque ha aprendido por su cuenta
00:00:37
pues la primera parte
00:00:39
para estas personas será un poco aburrida
00:00:41
¿vale? en el sentido que yo voy a
00:00:44
empezar desde cero porque
00:00:45
habrá otras personas que no han visto
00:00:47
programación en su vida
00:00:49
entonces aprovechad para
00:00:50
dar un repaso
00:00:53
a las bases que tenéis
00:00:55
de conocimientos de programación, sacad dieces en los exámenes primeros que son los fáciles
00:00:57
y luego ya iremos construyendo cosas más complejas, ¿vale? Si también tenéis comentarios
00:01:05
o aportar algo o decir algo sobre algo que sabéis y que yo no estoy diciendo o que para
00:01:10
vosotros se hace de otra forma, pues me lo decís y lo discutimos, ¿vale? Entonces, ¿qué
00:01:15
¿Qué es la programación en general?
00:01:22
Es la creación de un conjunto concreto de instrucciones que un ordenador puede interpretar, denominado programa de ordenador.
00:01:24
¿Qué quiere decir esto?
00:01:32
¿Vosotros habéis oído alguna vez hablar del concepto de algoritmo?
00:01:33
¿Sabéis qué es un algoritmo?
00:01:38
¿Qué es un algoritmo?
00:01:40
Una operación matemática.
00:01:42
Un algoritmo es, dado un objetivo, hacer algo
00:01:46
La secuencia de pasos, la secuencia de instrucciones que tengo que seguir
00:01:57
Para lograr ese objetivo
00:02:02
En informática utilizamos algoritmos mogollón
00:02:04
Pero en realidad los algoritmos también se utilizan fuera de la informática
00:02:09
También en la vida real
00:02:13
Cuando tú haces una tarta, la receta es un algoritmo
00:02:14
Te da los inputs, las entradas, lo que te empieza a pedir, que son los ingredientes
00:02:18
Te da los pasos que tienes que seguir, cómo mezclar y cuándo mezclar los ingredientes
00:02:23
Para hacer un proceso, para hacer un algoritmo, para hacer una serie de instrucciones
00:02:29
Que al final obtendrán la tarta que estabas haciendo
00:02:32
Entonces, la idea es esta, cuando se programa, la idea que estamos haciendo es dialogar, comunicar con el ordenador
00:02:35
Decirle al ordenador, oye mira, estos son los pasos que tienes que hacer para lograr lo que tú quieres
00:02:44
Para poder hablar con el ordenador se necesita un lenguaje que nos permita comunicar con él
00:02:50
No podemos, bueno, no podíamos ahora cada vez más comunicarnos con el ordenador en castellano o con lenguaje natural
00:02:58
Hoy en día, con un chat GPT, inteligencia artificial, o Gemini, o lo que sea, pues ya está yendo la cosa hacia allí.
00:03:08
Tú estás hablando con tu ordenador, diciéndole qué quiere que haga tu programa en lenguaje natural,
00:03:15
él lo interpreta y te saca un código que es capaz luego de ejecutarse en ordenador.
00:03:21
¿Vale? Pero todavía le falta.
00:03:26
¿Vale? Muchas veces el programita sencillo sí que lo hace bien, pero programas más complejos, sistemas más complejos,
00:03:28
Pues eres tú, programador, que tienes que dividir la complejidad del sistema entero en pequeños trocitos más sencillos
00:03:34
Y a ese punto la inteligencia artificial te puede echar una mano
00:03:44
Tú le pides todos los trocitos pequeños, las funciones que quieres que haga, las operaciones que quiere que haga
00:03:47
Y luego tú, como programador, las combinas de tal forma que haga un sistema mucho más cómodo
00:03:52
Entonces, la programación es crear este conjunto de instrucciones
00:03:58
Es transformar el algoritmo que tengo en mi mente
00:04:04
En una serie de instrucciones que el ordenador puede entender
00:04:08
Para que luego él haga la operación en mi lugar
00:04:12
El programa habitualmente se escribe en un lenguaje de programación
00:04:15
También se puede escribir directamente en lenguaje de máquina o en sembrador
00:04:20
Aquí hay varios niveles de abstracción
00:04:24
Yo puedo escribir un programa simplemente dándole ceros y unos
00:04:27
En la antigüedad de la informática, cuando había las tarjetas perforadas
00:04:32
No sé si habéis visto alguna vez alguna película vieja
00:04:38
O habéis visto historias de la informática, cosas por el estilo
00:04:41
Los primeros programas eran hojas con agujeros
00:04:44
Donde un agujero era un cero, no sé si era un cero o un uno
00:04:48
Y no agujero era un uno, o al revés
00:04:52
¿Vale? Da igual
00:04:56
El concepto es que un estado de la hoja era un valor
00:04:57
Y el otro estado era lo otro
00:05:02
Entonces había una figura profesional
00:05:03
Que sustancialmente se hacía de interfaz entre
00:05:07
Programador, que no era un programador, era un matemático probablemente
00:05:11
O alguien por el estilo
00:05:14
Y el ordenador
00:05:15
Y lo que hacía el matemático es que se inventaba una serie de operaciones
00:05:16
Sumas, restas y cosas por el estilo
00:05:20
Se la daba escrita a este operador
00:05:22
Que pillaba una tarjeta
00:05:25
Y empezabas a perforarla en ceros y unos
00:05:27
Para que saliera el programa
00:05:29
Que había pedido el matemático
00:05:31
Y entonces
00:05:32
A ese punto la ponía en un ordenador
00:05:35
El ordenador interpretaba los ceros y unos
00:05:37
Y hacía el programa
00:05:38
Hacia la teoría
00:05:41
Entonces, se puede todavía
00:05:42
Programar en ceros y unos
00:05:44
De hecho, hay ramas de la informática
00:05:46
Muy específicas
00:05:49
Que puede que sigan trabajando en ceros y unos
00:05:50
Para programar los propios
00:05:53
procesador. Vosotros esto no lo haréis. Lo veremos más en detalle más adelante, pero
00:05:55
el lenguaje máquina son estos ceros y unos, cada procesador tiene su lenguaje máquina,
00:06:01
una serie de operaciones que puede ejecutar, que son ceros y unos, con sus datos, y que
00:06:07
un Intel o un AMD tienen, posiblemente, conjuntos distintos de lenguaje máquina. Una primera
00:06:13
La extracción es el ensamblador, ¿vale?
00:06:21
Es un pequeño lenguaje, muy poco potente, entre comillas,
00:06:23
que te permite comunicar con el procesador, no en ceros y unos,
00:06:30
sino con palabras un poquito más humanas.
00:06:35
La suma, en vez de ser una tira de ceros y unos que representa esto es la suma
00:06:40
y luego me dices que sumar, pues se escribe ADD, ADD, añadir.
00:06:46
Aún así, programar ensemblador es un inferno
00:06:51
El ensemblador sigue siendo muy cercano a lo que es el lenguaje máquina
00:06:56
Y por lo tanto a veces dependiente del procesador
00:07:01
Los procesadores a lo mejor no admiten determinadas funciones de ensemblador
00:07:04
Que otra sí admite
00:07:09
Y para hacer programas complejos esto se volvería muy grave
00:07:11
Porque un programita muy sencillo de escríbeme en pantalla hola
00:07:17
Pues en el semblador le sale un programa moral
00:07:21
Si seguimos con
00:07:24
Este nivel de abstracciones
00:07:28
Llegamos a los lenguajes de programaciones
00:07:30
De alto nivel, que son los que vemos nosotros
00:07:32
Como Java, C, C++
00:07:34
De esta forma
00:07:36
Hablaremos más en detalle con esto
00:07:38
Por ahora, la programación es
00:07:40
Este enzima de instrucciones
00:07:42
¿Cómo le digo las instrucciones?
00:07:44
Pues creando un programa
00:07:45
Y este programa necesita un lenguaje de programación
00:07:47
para poder escribir el programa correctamente.
00:07:49
Programa es un párrafo, es una novela, ¿vale?
00:07:52
Y yo necesito un idioma para poder escribir esta novela.
00:07:55
Este idioma es el lenguaje de programación.
00:07:59
El lenguaje de programación tendrá su sintaxis,
00:08:01
que si yo la escribo mal, pues no se entiende.
00:08:04
Si yo me pongo a hablar en castellano, con palabras castellanas,
00:08:07
pero mezclando frases sin verbos, sin sujeto y cosas así,
00:08:10
pues no nos entendemos.
00:08:14
Cada oración tiene que tener su estructura.
00:08:16
Pues lo mismo cuando hablamos de lenguaje de programación
00:08:18
¿Vale?
00:08:21
¿Un lenguaje de programación qué es?
00:08:22
Es un conjunto de símbolos y palabras
00:08:24
Que el usuario tiene a disposición para elaborar un programa
00:08:26
Cada lenguaje de programación
00:08:28
Tendrá un conjunto de palabras reservadas
00:08:30
Que tú puedes utilizar
00:08:33
Y cuando usas esa palabra allí
00:08:34
Estás diciendo al ordenador
00:08:36
Algo específico
00:08:39
¿Vale?
00:08:41
Para crear un entero, una variable entero
00:08:42
Hasta la palabra reservada int
00:08:44
Cuando yo digo int
00:08:46
A un programa en Java, por ejemplo
00:08:49
Le estoy diciendo algo específico
00:08:51
Le estoy diciendo, mira, aquí estoy creando
00:08:53
Un espacio de memoria donde almacenaré
00:08:55
Un entero
00:08:57
Entonces, los lenguajes
00:08:58
Que tenemos son estos
00:09:04
Ya los he dicho más o menos
00:09:06
El lenguaje máquina es el lenguaje
00:09:07
Que el procesador entiende directamente
00:09:09
Es como comunicar directamente con el lenguaje
00:09:11
Máquina
00:09:13
¿Por qué existe?
00:09:15
Porque técnicamente este lenguaje es el más eficiente posible
00:09:17
Hablar directamente con el procesador
00:09:21
Hace que mi programa sea lo más eficiente posible
00:09:24
Es un infierno
00:09:27
Pero es muy eficiente
00:09:28
No tengo ningún tipo de paso previo
00:09:30
Para que el ordenador funcione
00:09:34
Escribo el programa y luego el programa lo interpreta
00:09:36
¿Vale?
00:09:39
Entonces en términos de eficiencia esto está muy bien
00:09:39
Sí, lo veremos
00:09:41
¿Vale?
00:09:53
Sostancialmente esto sigue existiendo en el sentido de que cuando yo hago alto nivel,
00:09:54
estoy escribiendo palabras que me da la gana, luego tendré que hacer algo, magia, informática,
00:09:59
veremos qué, hay dos opciones, normalmente tres, que me permiten transformar lo que he escrito en alto nivel
00:10:05
a lenguaje mágico, para que el ordenador pueda entender.
00:10:11
El ordenador no puede entender este lenguaje, puede entender solo el lenguaje mágico.
00:10:17
pero yo tengo otros programas
00:10:22
que lo que hacen es traducir
00:10:25
desde el lenguaje que tengo yo
00:10:26
al lenguaje máquina para ese específico
00:10:28
procesador, entonces lo puede ejecutar
00:10:30
el ensemblador
00:10:32
hemos dicho que es un primer paso hacia la extracción
00:10:36
pero sigue siendo muy dependiente
00:10:38
del procesador, lo que usamos
00:10:41
hoy en día para programar siempre todos
00:10:42
son lenguajes de alto nivel
00:10:44
que hay de distintos tipos
00:10:46
hay algunos más alto nivel que otros
00:10:49
Algunos se quedan más cercanos
00:10:51
A lo que es el ensamblador
00:10:53
Y algunos intentan extraer todavía más
00:10:55
Para que sea más fácil para el programador
00:10:57
Al final, escribir
00:10:59
Escribir código
00:11:01
Pero todos son de alto nivel
00:11:02
Tened en cuenta que
00:11:05
Para escribir en pantalla
00:11:08
Hola
00:11:09
Un lenguaje de alto nivel
00:11:10
Hago para hacer un ejemplo
00:11:12
Pone el comando print
00:11:13
Y luego entre paréntesis lo que quieres escribir
00:11:16
Escribes print hola
00:11:19
Ya está, has escrito hola en pantalla
00:11:21
Pero en realidad el procesador esto no lo entiende
00:11:22
En realidad necesitamos de alguien
00:11:25
Que pilla este print hola
00:11:28
Y lo transforma
00:11:29
En lenguaje mágico
00:11:31
¿Sí? De alguna forma
00:11:34
O en ensemblador y que luego haya un intérprete de ensemblador
00:11:35
No lo sé
00:11:37
Pero al fin y al cabo tiene que transformarse en una tira de ceros y unos
00:11:38
Que el procesador pueda entender
00:11:42
Que no será una sola operación
00:11:43
Yo he escrito solo print hola
00:11:45
Pero en realidad serán
00:11:47
20 operaciones
00:11:48
que tiene que hacer el procesador
00:11:50
para pillar los datos que son
00:11:52
H, O, L, A, ponerlos
00:11:54
en una misma zona de memoria
00:11:56
este punto acceder al
00:11:58
monitor, decirle al monitor
00:11:59
oye monitor, quiero que vaya a escribir esta cosa
00:12:02
hablar con el driver del monitor para que
00:12:04
active el monitor para que se escriba esta cosa
00:12:06
y luego se escribirá
00:12:08
hay un mogollón de procesos
00:12:09
detrás, que yo no quiero ver
00:12:12
porque yo soy un programador y por definición
00:12:14
Bueno, soy perezoso y quiero hacer lo menos posible con máximo de, no sé, logro, con máximo de dinero, obtener lo máximo haciendo lo mismo.
00:12:16
¿Vale? ¿Sí?
00:12:27
Pues bueno, programación de alto nivel imperativos, ¿vale?
00:12:29
Entonces, en los lenguajes de alto nivel una instrucción engloba varias instrucciones máquinas.
00:12:34
Lo que es decir, que tengo solo print, pero en realidad por debajo estoy haciendo muchas cosas.
00:12:39
El concepto de abstraer es el concepto de pillar muchas operaciones comunes que se hacen mucho, como por ejemplo escribir en pantalla porque es la forma con que el ordenador comunica el resultado al usuario.
00:12:43
Entonces escribir en pantalla se hace mucho. Pues como esta es una operación que se hace mucho, en vez de tener que escribir cada vez 20 líneas de código ensemblador para decir ahora escribí esto y ahora tengo que escribir otra cosa, otras veces las 20 líneas.
00:13:00
Pues no, voy abstrayendo y me creo una abstracción, una palabra abstracta, una palabra, una función, ¿vale?
00:13:12
Que me dice, cuando uso esta función, él sabrá que tiene que hacer todos los pasos que tiene que hacer, ¿vale?
00:13:20
Y voy abstrayendo, voy haciendo cosas, programas más abstractos, usando palabras más abstractas,
00:13:26
que luego se concretarán en ceros y unos, pero no lo voy a hacer yo, lo va a hacer alguien por mí.
00:13:32
Veremos sobre qué.
00:13:38
¿Se entiende?
00:13:40
Un lenguaje imperativo describe una secuencia de operaciones a realizar para obtener un resultado
00:13:40
Cuando yo estoy con la programación imperativa
00:13:47
Sostancialmente yo le estoy diciendo al ordenador que hace
00:13:51
Hace esto, luego esto, luego esto, luego esto, luego esto
00:13:55
Nosotros trabajaremos con esta principalmente
00:13:59
Luego se cambiará un poquito y veremos algunos matices de estas de aquí
00:14:04
Pero nuestra principal programación es esta de aquí
00:14:08
Luego hay otros tipos de programación
00:14:12
La declarativa y cosas por el estilo
00:14:14
Que en vez enfocan de forma distinta lo que es programar
00:14:15
Aquí yo le estoy diciendo al ordenador
00:14:21
La secuencia de operaciones en la declarativa
00:14:22
Es más bien, filosóficamente hablando
00:14:25
Definir lo que quiero yo al final de mi proceso
00:14:28
y que luego él, en cierto sentido, se busque la vida para encontrar las operaciones para llegar allí.
00:14:35
Hay algunos campos de la informática en los que la programación imperativa funciona relativamente mal
00:14:41
y es mejor otras cosas como la programación lógica, la programación funcional, la programación declarativa,
00:14:50
que hace que los problemas que nos enfrentamos sean más fáciles de resolver con otro tipo de programación.
00:14:57
Lo más común que usamos hoy en día en programación
00:15:03
Es programación imperativa
00:15:07
Voy describiendo las operaciones que tiene que hacer
00:15:10
Dentro de este mundo
00:15:12
Programación alto nivel imperativo
00:15:18
Podemos encontrar varios lenguajes
00:15:20
Que hacen cosas un poquito distintas
00:15:23
Hay los lenguajes no estructurados
00:15:25
Como el BASIC
00:15:28
Aquí estamos en 1995
00:15:29
Que es basado en la línea de código
00:15:32
¿Vale?
00:15:39
O sea, el elemento importante
00:15:40
De los programas escritos en BASIC
00:15:43
Son las líneas de código
00:15:45
De hecho, las líneas de código venían hasta numeradas
00:15:46
Y tienen
00:15:49
El maldito GOTU
00:15:50
¿Vale?
00:15:53
Esto es un comando
00:15:55
Que te permite
00:15:57
Dentro de tu código
00:15:58
de mil líneas
00:16:01
saltar a una línea
00:16:03
concreta que quieres tú
00:16:05
go to línea 7
00:16:07
tú estabas ejecutando
00:16:08
llegas a este comando y saltas
00:16:10
a la línea 7, sea o hace sea
00:16:13
¿vale?
00:16:14
esto es la causa
00:16:16
de por qué muchos de los
00:16:18
proyectos
00:16:21
de primeros años 90
00:16:23
y cosas por el estilo
00:16:25
al crecer se hundieron
00:16:26
porque esta cosa
00:16:28
De poder saltar donde te da la gana
00:16:31
Y con el Goutou
00:16:33
Hacía que el código
00:16:34
Se volviera
00:16:35
Inmantenible
00:16:37
En el sentido que no era fácil
00:16:39
Porque tú tenías un millón de líneas de código
00:16:41
Y de repente tenías salto
00:16:44
A zonas distintas del código
00:16:46
Y cuando tenías que meter las manos allí
00:16:48
Pues o eras el que lo ha escrito todo
00:16:49
Y lo tenías en la cabeza
00:16:52
Y entonces a lo mejor podías salir de allí
00:16:53
Pero si es el que había hecho todo el programa
00:16:55
Se había ido de la empresa
00:16:58
Y ahora otro tenía que meter las manos allí
00:16:59
Era imposible
00:17:01
Lo que causaba que los proyectos se hundieran
00:17:03
Y tuvieran que empezar desde cero
00:17:06
Haciéndolo el mismo proyecto pero desde cero otra vez
00:17:08
¿Vale?
00:17:10
Este problema
00:17:12
¿Vale?
00:17:14
En basarse sobre línea de código
00:17:14
Este malvado
00:17:17
Butú
00:17:20
Llevaron a una evolución
00:17:21
De la informática
00:17:24
Hacia los programas estructurados
00:17:25
¿Vale?
00:17:28
Los programas estructurados en vez de basarse sobre línea de código
00:17:28
Se basan sobre funciones y módulos
00:17:32
O sea, yo empaqueto un conjunto de líneas de código
00:17:35
En un ente, en algo que llamaré función o módulo
00:17:41
Al que luego le doy un nombre
00:17:51
Y cuando quiero ejecutar esas líneas de código
00:17:53
Llamo a esa función ese nombre
00:17:58
en vez de tener que escribir otra vez
00:18:00
esa línea de código
00:18:02
y eso es muy bueno
00:18:03
es muy bueno porque me organiza el código
00:18:05
y es muy bueno porque me permite
00:18:08
reutilizar el código
00:18:10
entonces cuando yo hago
00:18:11
una serie de operaciones
00:18:13
bla bla bla que me escriben en pantalla
00:18:15
el DNI de un usuario
00:18:18
que le he pasado por parámetro
00:18:20
pues todo esto
00:18:22
lo incrusto en la función
00:18:24
lo llamo
00:18:26
imprime usuario
00:18:27
Y ahora cada vez que quiero imprimir un usuario
00:18:30
Tengo la función imprimusuario
00:18:33
Al que le paso un código
00:18:34
Que es el código identificador del usuario
00:18:36
Y él en automático me escribe toda la información de ese usuario
00:18:38
Y si de repente
00:18:40
Esa misma función la quiero usar
00:18:43
En otro proyecto porque los usuarios son los mismos
00:18:44
Pues simplemente me copio
00:18:47
Esa función y ya la tengo
00:18:49
¿Entendéis?
00:18:50
C o Pascal
00:18:57
Son típicos
00:19:00
Ejemplos de programas
00:19:01
que usan
00:19:03
funciones inmóviles
00:19:05
hoy en día
00:19:06
esto no se suele usar
00:19:08
C a veces sale por ahí
00:19:11
o en
00:19:14
proyectos legacy
00:19:15
proyectos que vienen desde
00:19:16
no se sabe cuándo y que nadie se atreve
00:19:18
de destruir porque si no
00:19:21
la empresa se hunde
00:19:23
o si yo estoy buscando
00:19:24
un nivel
00:19:27
de eficiencia
00:19:29
Eficiencia X, un cierto nivel de eficiencia, y quedarme más cercano a la baja, al bajo nivel, ¿vale?
00:19:31
Me da una ventaja con respecto a irme todavía más alto nivel, ¿vale?
00:19:42
Pero es raro, C hoy en día se usa poco, ¿vale?
00:19:48
Lo que se suele utilizar bastante comúnmente hoy en día es la orientación a objetos, que es la evolución de lo estructural.
00:19:52
¿Qué quiere decir eso?
00:19:59
Pues habíamos pillado las funciones
00:20:00
Y habían creado estas funciones
00:20:02
Diciendo, oye, trozos de código
00:20:04
Lo pongo en la función y le doy un nombre
00:20:05
Pues ahora voy a crear objetos
00:20:07
¿Qué son objetos?
00:20:10
Un objeto es la modelización
00:20:12
De un concepto
00:20:14
Dentro de mi programa
00:20:16
Dentro de mi sistema
00:20:18
Yo estoy haciendo una escuela
00:20:19
¿Vale?
00:20:21
Quiero utilizar dentro de la escuela
00:20:23
Los alumnos
00:20:26
Para luego matricularlos en materias
00:20:26
para luego darles notas, para luego mandarle un mensaje, no lo sé, pero tengo el concepto de alumno.
00:20:30
Entonces voy a mirar en mi sistema cuáles son las características principales de este alumno,
00:20:36
su nombre, su apellido, el DNI, el número de identificación de alumno, la dirección donde vive,
00:20:44
las notas que pilla a lo largo del curso, no lo sé.
00:20:50
Lo que a mí me interesa es que sistemas distintos podrían tener una modelización de alumno distinta.
00:20:53
El sistema para secretaría, a lo mejor no le interesan las notas, hago para decir, mientras el sistema para los profesores, las notas sí que le interesan mucho.
00:21:00
Entonces, una vez que yo he creado este objeto y sé sus características, le añado también su comportamiento, lo que puede hacer este objeto.
00:21:12
Por ejemplo, un objeto alumno puede presentarse
00:21:23
Entonces tendrá la función presentarse
00:21:27
Que dirá, hola, me llamo, pilla mi nombre
00:21:30
Mi apellido es, pilla mi apellido
00:21:33
Y tengo de media, pilla todas tus notas, calcula la media y escriba
00:21:36
Y luego tendrá otra función
00:21:40
Como por ejemplo, matricularme asignatura
00:21:44
Que pilla como parámetro una asignatura
00:21:46
Y matricula a este alumno
00:21:49
A esta asignatura
00:21:52
Ahora, todas las características del objeto
00:21:53
Y todas las funciones y comportamientos
00:21:59
De este objeto
00:22:02
Se empaquetan en un objeto
00:22:03
En lo que viene a llamarse un objeto
00:22:06
Antes yo me basaba en las funciones
00:22:07
Entonces si tenía dos funciones
00:22:11
La de matricularse y la de presentarse
00:22:13
Eran dos funciones distintas
00:22:15
Desvincularlas entre ellas
00:22:16
Pues ahora creo una única entidad que engloba las características de esa entidad y lo que puede hacer esa entidad.
00:22:18
Y todo está en un único paquete, en un único objeto.
00:22:28
Pues esto es como se programa hoy en día.
00:22:34
Y es lo que veremos a partir del segundo río.
00:22:38
Antes nosotros trabajaremos
00:22:40
Imperativo estructurado
00:22:45
Que es como la base
00:22:47
Es lo más facilito
00:22:48
No nos meteremos en las cosas avanzadas
00:22:50
De orientación a objetos
00:22:54
Cuando luego sabremos hacer
00:22:55
Pequeñas funciones
00:22:57
Pequeños algoritmos
00:22:59
Pequeños ejercicios
00:23:00
Que hacemos aquí en clase
00:23:02
Dominamos el if, el while, el switch
00:23:03
El for, cosillas por el estilo
00:23:05
A este punto diremos
00:23:08
Ahora hagamos un paso más adelante
00:23:10
Vamos al mundo de los objetos
00:23:12
Y veremos cómo se usan los objetos
00:23:14
Y las potencialidades que tienen
00:23:16
Si os acordáis todos los superpoderes
00:23:18
Del que hablamos ayer
00:23:20
De las cosas avanzadas
00:23:21
Pues todas las cosas avanzadas
00:23:23
Surgen a raíz del concepto de objeto
00:23:24
Cuando yo tengo los objetos
00:23:27
Entonces puedo hacer que un objeto
00:23:29
Herede de otro objeto
00:23:31
Que haya el alumno
00:23:32
Pero un alumno es una persona
00:23:34
Entonces yo puedo crearme
00:23:36
Un objeto persona
00:23:38
Que a lo mejor tiene mucho del alumno
00:23:40
Pero no todo del alumno
00:23:43
Una persona no tiene notas
00:23:45
No tiene materia a la que está matriculado
00:23:46
Pero sí tiene nombre, apellido, DNI
00:23:49
Y a este punto con esta persona
00:23:51
Me puedo crear por un lado el alumno
00:23:53
Añadiéndole que también tiene notas
00:23:55
Y también desde persona me puedo decir
00:23:57
Pero también existe profesor
00:23:59
Que tendrá, será siempre una persona
00:24:01
Pero con características distintas
00:24:04
Y esto se llama herencia
00:24:05
Y un montón de otras cosas así
00:24:07
Que surgen a raíz de esto
00:24:10
¿Qué programas, qué lenguaje de programación
00:24:12
Son orientados a objetos?
00:24:14
Java
00:24:16
C++
00:24:17
C Sharp
00:24:23
Python
00:24:26
Y muchos otros
00:24:28
Estos son cuatro de los que
00:24:30
Que más son comunes
00:24:33
Y que giran por aquí
00:24:35
por el instituto, ¿vale?
00:24:36
C++ creo que hoy
00:24:38
no lo usa nadie, ¿vale?
00:24:40
En el instituto digo, pero Java, C Sharp
00:24:42
y Python sí que hay asignaturas que se dan
00:24:45
en estas asignaturas.
00:24:47
Aquí creo que principalmente
00:24:49
Java y C Sharp, por ahí.
00:24:50
C Sharp
00:24:53
es el próximo juego.
00:24:54
Y, nota, pues, C Sharp
00:24:56
es C++
00:24:58
más más, si no lo sabéis.
00:25:01
¿Veis que aquí son cuatro más?
00:25:03
El lenguaje estructurado ya no se usa
00:25:05
Pero se usa
00:25:15
Porque todo lo que hacemos dentro de los objetos
00:25:16
Es lenguaje estructurado
00:25:20
Entonces si no sabes programar estructurado
00:25:21
No sabes programar
00:25:25
No puedes
00:25:26
¿Vale?
00:25:26
Y si sabes programar objetos
00:25:28
Sabes programar estructurado
00:25:30
Entonces hoy en día no se suele trabajar
00:25:31
Teniendo en mente esto
00:25:34
Se suele trabajar teniendo en mente objetos
00:25:36
Lo digo por la practicidad
00:25:39
Incluso a objetos
00:25:48
pero de hecho nosotros programaremos
00:25:50
objetos, nosotros empezamos con Java
00:25:52
no empezó con C, cosa de cuestión
00:25:54
nosotros trabajamos Java, pero
00:25:56
a votar el primer día
00:25:57
todo lo que implica
00:26:00
la orientación a objetos y cosas por el estilo
00:26:01
es muy complejo, entonces nosotros vamos paso por paso
00:26:03
y no es que yo os diré
00:26:06
mira, ahora estáis programando así
00:26:07
estamos programando siempre en Java
00:26:09
y solo que los primeros ejercicios
00:26:11
que tú haces, más que orientados
00:26:14
a objetos, serán
00:26:16
de programación estructurada
00:26:18
Mientras vas aprendiendo
00:26:19
En cuanto sepamos hacer
00:26:21
Una función
00:26:23
En un módulo, porque al fin y al cabo
00:26:24
Un objeto dentro tiene funciones
00:26:27
Los comportamientos
00:26:29
Si no sabes hacer una función, ¿qué haces?
00:26:31
Entonces, en cuanto sepamos hacer
00:26:33
Funciones sin módulos
00:26:35
Pues a este punto diré, vale, ahora los empaquetamos
00:26:36
De esta forma, y de hecho habrá una clase
00:26:39
En que diré, mirad, vosotros estabais ya
00:26:41
Programando en objetos
00:26:43
Desde el principio, porque esto, esto y esto
00:26:44
Y ahora lo vamos a utilizar
00:26:47
De forma más consciente
00:26:49
¿Sí?
00:26:50
¿Más dudas?
00:26:53
Vale
00:26:59
Lenguaje de programación de alto nivel
00:27:00
Declarativos, ¿vale?
00:27:05
Lo que decíamos antes
00:27:06
Entonces existe otro mundo
00:27:07
Que no es el imperativo
00:27:09
Recuerdo que el imperativo es
00:27:13
Haz esto, luego esto, luego esto
00:27:14
Y yo digo al ordenador la secuencia
00:27:16
De programas
00:27:18
De pasos, de instrucciones
00:27:19
Que tiene que hacer
00:27:22
Pues en el mundo declarativo
00:27:23
Se describe el resultado deseado
00:27:25
¿Vale?
00:27:28
No como se logra
00:27:29
Los pasos para llegar a ese resultado
00:27:31
Sino en cierto sentido
00:27:34
Tú das una serie de vínculos
00:27:35
Para decir el programa
00:27:36
Al final me tiene que dar un resultado
00:27:39
Con estas características
00:27:41
De esta forma
00:27:42
Esto es lo que tienes que alcanzar
00:27:43
¿Vale?
00:27:44
Normalmente definido con funciones
00:27:45
Funciones o matemáticas o lógicas
00:27:48
¿Vale?
00:27:51
Entonces
00:27:52
Aquí hay unos cuantos
00:27:53
Lenguajes
00:27:55
Que funcionan más o menos así
00:27:59
Lisp es funcional
00:28:01
Se basa en funciones matemáticas
00:28:03
Prolog
00:28:05
Es lógico
00:28:07
Más bien que funciones matemáticas
00:28:08
Está trabajando con una rama
00:28:12
De la matemática que es la lógica
00:28:13
Entonces hace teoremas
00:28:15
Reglas básicas y a partir de reglas básicas
00:28:17
Va componiendo para crear
00:28:19
cosas más grandes
00:28:21
en vez de programar con
00:28:23
tú le das una serie de axiomas
00:28:25
una serie de reglas básicas
00:28:28
que puede utilizar
00:28:30
y a partir de allí le dices, tienes que llegar aquí
00:28:31
y él intentará
00:28:34
componer estas reglas básicas
00:28:35
para llegar allí
00:28:38
y el que más entenderéis
00:28:39
el que más cercano a vosotros
00:28:42
y lo vais a estudiar, SQL
00:28:43
SQL es
00:28:46
el lenguaje con el que
00:28:48
se hacen las peticiones
00:28:50
a las bases de datos
00:28:52
uno de los dos
00:28:53
entonces si lo pensáis
00:28:55
si alguien ha visto alguna vez
00:28:58
un SQL
00:29:00
cuando vosotros hacéis una query SQL
00:29:01
lo que estáis definiendo es lo que queréis
00:29:04
al final
00:29:06
yo quiero todos los alumnos
00:29:07
que tengan una nota media
00:29:10
mayor que 5
00:29:12
y que vivan en Madrid
00:29:13
la escribes en SQL
00:29:15
lo que estás definiendo no es
00:29:18
Cómo llegar a ese resultado
00:29:19
Tú estás definiendo lo que quieres al final
00:29:21
Un listado de estos alumnos con estas características
00:29:24
Estás definiendo el resultado
00:29:26
Luego, cómo lo saca el programa SU
00:29:28
¿Sí?
00:29:31
En un cierto sentido
00:29:34
De esto no veremos prácticamente nada
00:29:35
¿Vale?
00:29:38
Normalmente en empresas estándar
00:29:40
De toda la vida
00:29:42
Lo que se usa es la inferativa orientada a objeto
00:29:44
Por eso nosotros es lo que vamos a estudiar
00:29:47
En algunos nichos
00:29:49
Más bien de investigación
00:29:52
Que de uso real
00:29:54
Pues salen estos señores de aquí
00:29:55
Yo como anécdota
00:29:58
Cuando estaba en la universidad
00:30:00
En un
00:30:02
En análisis de lenguaje natural
00:30:03
Una cosa de ese estilo
00:30:06
Nos dieron una tarea para hacer
00:30:07
Pues yo me puse a hacerla en Java
00:30:10
Me salió un programa que funcionaba
00:30:11
De, bueno, no sé
00:30:14
Mil líneas de código
00:30:15
Pasaba tres tardes allí trabajando
00:30:16
Y lo hacía junto con otra chica
00:30:19
Que era extranjera
00:30:22
No sé de dónde
00:30:23
Entonces ella miró mi código
00:30:24
Después cuando nos reunimos
00:30:27
Dice, si está bien, funciona
00:30:28
Pero yo creo que en Prologue se hace más fácil
00:30:30
Se puso allí media hora
00:30:32
Sacó un programa de 20 líneas
00:30:34
Y funcionaba igual que el mío
00:30:37
Hacía las mismas cosas
00:30:39
Pero ella había hecho mil líneas de código
00:30:40
Y tardaba tres días
00:30:43
Y ella lo había hecho en 20 minutos
00:30:45
Yo no he aprendido nunca
00:30:46
Prologue Lisp
00:30:49
Pero me ha quedado
00:30:50
A lo mejor debe
00:30:52
Ejemplos
00:30:54
¿Qué es esto?
00:30:57
Esto es
00:30:59
Ensamblador
00:31:08
Lenguaje ensamblador
00:31:09
Todos los programas
00:31:11
Que os voy a enseñar ahora
00:31:14
Hacen exactamente lo mismo
00:31:15
Que es calcular la serie de Fibonacci
00:31:17
¿Sabéis que es la serie de Fibonacci?
00:31:20
Es una serie de números
00:31:22
Donde el siguiente número
00:31:24
Es la suma de los dos anteriores
00:31:27
Y empieza por 1, 1
00:31:29
Entonces 1, 1
00:31:31
El siguiente número es 1 más 1, 2
00:31:33
El siguiente número es 2 más 1, 3
00:31:35
El siguiente número es 3 más 2, 5
00:31:37
El siguiente número es 5 más 3, 8
00:31:39
Etcétera, etcétera
00:31:41
¿Sí? Esa es la serie de Fibonacci
00:31:43
Pues esto es un programa
00:31:45
Escrito de Ensemblador
00:31:47
Que va pillando
00:31:49
los datos que tiene que pillar
00:31:51
los mueve en los registros
00:31:53
porque aquí estamos hablando
00:31:55
al procesador, estamos a un nivel
00:31:56
muy muy bajo, no es
00:31:59
el nivel de ceros y unos
00:32:01
todavía esto ya es una extracción
00:32:02
¿vale?
00:32:05
pero es un nivel muy bajo
00:32:07
tan bajo que vosotros sabéis que
00:32:08
en un ordenador hay distintos tipos de memoria
00:32:11
hay el disco duro
00:32:13
la memoria que cuando apagas y entiendes sigue allí
00:32:14
hay la RAM
00:32:17
mucho más rápida, mucho más cara
00:32:18
pero que no consigue mantener la información
00:32:20
cuando apagáis y encendéis
00:32:23
y luego hay una serie de cachés
00:32:24
cuando compráis un
00:32:27
procesador que viene con cachés
00:32:28
de nivel 3, de 4
00:32:31
megabytes
00:32:33
pues que son
00:32:34
otras memorias siempre más
00:32:37
pequeñas, siempre más rápidas
00:32:39
y siempre más caras
00:32:41
que están cuanto más cerca del procesador
00:32:42
porque en vez
00:32:45
de acceder siempre a la RAM
00:32:47
o al disco duro
00:32:49
Que sería una cosa lenta
00:32:50
Lo que hace el procesador es copiarse un trozo
00:32:51
Grande del programa
00:32:54
Más cerca de él
00:32:56
Y de este trozo otro trocito
00:32:58
Más cerca todavía
00:33:00
Y otro trocito más cerca todavía
00:33:01
Los tres niveles de caché
00:33:03
Y luego las operaciones
00:33:05
Que está haciendo en un momento
00:33:08
Lo hacen memorias muy pequeñitas
00:33:09
Que se llaman registros
00:33:11
Que son lo más rápido
00:33:13
Lo más pequeño porque contienen
00:33:15
32 bits o 64 bits
00:33:17
Y que está
00:33:19
Lo más caros
00:33:22
Son absolutamente lo más caros
00:33:24
Que están dentro del propio chip del procesador
00:33:26
Y por lo tanto se pueden trabajar
00:33:29
Se pueden utilizar muy rápidamente
00:33:30
Si os fijáis
00:33:32
Estos R están por registro
00:33:34
O sea
00:33:36
El
00:33:37
El ensemblador
00:33:38
Está trabajando con los registros
00:33:41
Del propio procesador
00:33:44
Entonces dependiendo de cuantos registros
00:33:45
que en el procesador, esto puede cambiar
00:33:47
si yo tengo
00:33:49
un procesador con
00:33:51
64 registros y uso
00:33:53
el registro 65, no me va a funcionar
00:33:55
entonces
00:33:57
los programas, estos tipos de programas
00:33:59
dependen del tipo de
00:34:01
procesador que tengáis
00:34:03
y hace todos estos pasos
00:34:04
de aquí, sigue aquí
00:34:07
todo esto es
00:34:08
sustancialmente comentado
00:34:11
para que pueda
00:34:13
calcular el
00:34:15
número n de la
00:34:17
secuencia de Fibonacci
00:34:19
yo digo, calculan el cuarto número
00:34:20
el número 4 de la secuencia de Fibonacci
00:34:23
y calculará que es
00:34:24
1, 1, 2, 3
00:34:26
y me dirás, es el 3
00:34:28
entonces, esto es
00:34:30
semblador
00:34:37
esto es C
00:34:38
aquí ya estamos a alto nivel
00:34:40
¿vale?
00:34:47
hemos dado un salto
00:34:49
no es lenguaje máquina
00:34:50
ceros y unos, no es en semblador
00:34:53
ahora estamos a C
00:34:55
en Java esto no está
00:34:57
esto no está en Java
00:35:04
en Java existe en .auto.println
00:35:06
en .println
00:35:09
lo puedes programar tú
00:35:10
o que alguien lo haya programado
00:35:14
pero en el Java oficial
00:35:15
esto no está
00:35:17
que luego la gente lo programa
00:35:18
pero lo puedes hacer tú
00:35:19
y scanf
00:35:21
se puede
00:35:25
pero por ejemplo hay características de esto
00:35:33
que Java no tiene.
00:35:36
Ahora hablaremos de eso.
00:35:37
No es Java, era Ensemblado.
00:35:40
Son lenguajes distintos.
00:35:48
Es un lenguaje casi
00:35:50
lo más bajo nivel que puede.
00:35:52
Es lo mismo.
00:35:55
Es buscar el elemento
00:35:56
N de la serie Fibonacci.
00:35:58
Ensemblado.
00:36:02
Se llama Ensemblado.
00:36:03
Ensembler.
00:36:07
Lenguaje marca no es un lenguaje
00:36:17
de programación.
00:36:18
¿Es un lenguaje único o hay...?
00:36:19
El ensemblador es que es dependiente del procesador.
00:36:21
Entonces, la idea es común, pero hay funciones en el ensemblador
00:36:27
que algunos procesadores pueden ejecutar y que algunos otros no.
00:36:30
Entonces, si tú quieres programar en eso, deberías irte a ver qué procesador tienes
00:36:37
y qué tipo de ensemblador tienes y cuáles son los comandos admitidos en ese ensemblador.
00:36:42
¿Por qué no se enseña directamente C y luego Java?
00:36:47
Primero porque C no es orientado a objetos
00:36:56
Y nosotros queremos aprender los orientados a objetos
00:36:58
¿Vale?
00:37:01
Y segundo, C tiene un problema muy serio
00:37:01
Que tiene también C++, por ejemplo
00:37:05
Que es que la memoria que utiliza tu programa
00:37:08
La tienes que gestionar tú
00:37:12
¿Vale?
00:37:13
Cuando tú creas una variable, cuando tú creas un array
00:37:15
Cuando tú creas algo que almacene algo
00:37:18
Tú tienes que decirle al programa
00:37:21
Aloca una cierta cantidad de memoria
00:37:23
Para que yo pueda escribir aquí
00:37:26
Y cuando no la usas más
00:37:28
La tienes que deshacer
00:37:31
Y eso es un infierno
00:37:32
Un paso antes
00:37:34
Antes de poder decir que este lado de este cuadrado vale 3
00:37:44
Tengo que decirle
00:37:48
Oye, sistema, reserva un trozo de RAM
00:37:50
4 bytes de RAM
00:37:53
porque aquí dentro
00:37:55
yo voy a escribir el número 3
00:37:57
que luego me representará el lado del triángulo
00:37:59
cada valor que tú creas
00:38:02
entonces esto es una cosa que se hacía
00:38:07
yo he programado en C
00:38:10
en la universidad
00:38:12
y todavía por la noche me despierto
00:38:15
sudando
00:38:17
a la frase
00:38:18
segmentation fault
00:38:21
porque cuando te equivocas
00:38:23
En C lo que te dice es
00:38:25
Segmentation for
00:38:27
No te dice dónde te has equivocado
00:38:28
Te dice segmentation for
00:38:30
Y tú a buscar en las 2000 líneas de código
00:38:33
Dónde no has alocado bien la memoria
00:38:36
Donde habías dicho
00:38:39
Reservo 4 bytes
00:38:40
Pero lo has escrito 5
00:38:41
Al máximo
00:38:43
Si te hubiésemos tocado algo
00:38:52
No en esta asignatura
00:38:55
O C++
00:38:56
Que es orientada a objetos
00:38:57
O C sharp
00:38:59
Que es la evolución
00:39:00
Y de hecho C Sharp tiene una sintaxis prácticamente idéntica a Java
00:39:01
Hay muchísimas cosas de C Sharp que son iguales a Java
00:39:09
Próximo año, en segundo, veréis otros lenguajes de programación
00:39:13
O de lenguaje de marcas o lenguaje de scripting
00:39:16
Pero más o menos vamos por allí, no son exactamente equivalentes
00:39:19
Pero por allí, como PHP, como JavaScript, lo de este año
00:39:23
No sé si en segundo creo que también
00:39:27
Se sharpa algo
00:39:30
Toda forma, tened en cuenta que
00:39:31
Ya que estamos, os lo digo
00:39:36
El lenguaje que
00:39:37
Que le dais
00:39:40
No cuenta de nada
00:39:41
En el sentido que
00:39:43
El lenguaje que vais a utilizar
00:39:44
Es Turing equivalente
00:39:47
Es decir, todos los lenguajes
00:39:50
Pueden llegar a hacer
00:39:53
Lo mismo
00:39:54
Entonces utilizar Java o utilizar C Sharp
00:39:55
No es que te da una ventaja con respecto al otro
00:39:58
Lo que tenéis que entender
00:39:59
Es la filosofía que está por debajo
00:40:01
Lo que se puede hacer
00:40:03
Y hacer un algoritmo
00:40:05
Y luego plasmarlo en un programa
00:40:07
Esa es la parte
00:40:09
Un poco importante
00:40:11
Luego la sintaxis, el cómo se escriben las cosas
00:40:12
Las palabras que podéis utilizar
00:40:15
Si tenéis que utilizar printf
00:40:17
O println
00:40:19
Si tenéis que utilizar scanf
00:40:21
O readint o nextint
00:40:22
O cosas por el estilo
00:40:25
Esa es una cosa que se aprende en dos semanas de trabajo
00:40:26
Cambiar de un lenguaje a otro
00:40:28
No es tremendo
00:40:31
Lo que es difícil es programar
00:40:32
Si sabes programar en Java
00:40:34
Puedes tardar un mes
00:40:36
Y luego sabrás tardar también en C++
00:40:37
O en C Sharp
00:40:40
Con algunas pequeñeces
00:40:41
Como esta de la gestión de memoria
00:40:44
En C++
00:40:47
Si se necesita
00:40:48
T, C++, se necesita gestionar
00:40:49
La memoria uno mismo
00:40:52
Mientras en Java, por ejemplo
00:40:53
Y en C Sharp
00:40:55
Pues la memoria ya
00:40:57
Alguien más la gestiona
00:40:59
Entonces yo simplemente le digo, quiero escribir un entero
00:41:01
Y luego alguien
00:41:04
Mágicamente me reserva el espacio justo para un entero
00:41:05
¿Por qué vemos Java
00:41:08
En vez de C++?
00:41:09
Porque es más fácil
00:41:11
Me centro en la programación
00:41:12
De algoritmo
00:41:15
Sin tener que
00:41:17
pelearme con
00:41:19
la parte de
00:41:21
memoria, etc. ¿Y por qué entonces
00:41:22
sigue existiendo C++?
00:41:25
Porque si yo
00:41:27
tengo control directo sobre la
00:41:29
memoria, puedo hacer
00:41:31
programas más eficientes.
00:41:32
Si yo delego la gestión
00:41:36
de la memoria a alguien más, no sé
00:41:39
qué está haciendo con la memoria.
00:41:41
Y como no sé qué está haciendo con la memoria, puedo asumir
00:41:42
que a veces gaste más memoria
00:41:45
de la que debería.
00:41:47
Sin embargo, si soy yo que gestiono la memoria directamente
00:41:48
Sé que si gestiono más memoria de lo que debería
00:41:52
Es un error mío
00:41:55
Y que lo puedo modificar
00:41:56
Entonces, en programas como por ejemplo juegos
00:41:57
El C++ sigue siendo bastante utilizado
00:42:02
Porque me permite trabajar con la memoria
00:42:09
Me permite hacer más eficiente
00:42:11
Y que funcione el mismo programa, el mismo juego
00:42:13
En ordenadores también con menos capacidades
00:42:16
Y por lo tanto
00:42:19
Puedo venderlo
00:42:20
Como los juegos tienen que ser
00:42:21
Muy optimizados para funcionar muy bien
00:42:24
Pues el tema es más
00:42:26
Puede ser un programa
00:42:28
Un level de programación que se utiliza
00:42:29
¿Sí?
00:42:31
Hacer un juego en Java
00:42:33
Se puede, hacen lo mismo
00:42:35
Pero normalmente es menos eficiente
00:42:38
¿Vale?
00:42:40
Luego depende también, o sea, a nivel que programamos nosotros
00:42:41
Nosotros de eficiente hacemos poco o nada
00:42:44
Nosotros ya tendremos suficientes problemas
00:42:45
Para hacer que funcione el programa
00:42:48
Ahora luego hazlo eficiente
00:42:50
Eficiente dentro de 6 años
00:42:52
Cuando estáis en la empresa
00:42:54
Por pasos
00:42:55
Entonces, esto es C
00:42:59
Fijaos que ahora hay
00:43:02
Funciones, ¿vale?
00:43:04
Esta función de aquí, printf
00:43:06
Que pilla una
00:43:08
Texto
00:43:09
Lo que hace es escribir en pantalla
00:43:12
¿Vale? A lo mejor
00:43:13
Escribir en pantalla
00:43:15
En otros lenguajes
00:43:17
Más de bajo nivel
00:43:19
Requiere varias operaciones
00:43:21
Aquí yo, el C
00:43:23
Me proporciona el mismo
00:43:24
Una función creada por los
00:43:26
Creadores de C, por los desarrolladores de C
00:43:29
Que cuando yo la llamo, lo que hará es
00:43:31
Escribirme esto en pantalla, ya está
00:43:33
A alto nivel, he abstraído
00:43:35
¿Y cómo se hace? ¿Y qué monitor tengo?
00:43:36
¿Y cómo es el driver que escribe esta cosa?
00:43:39
No me interesa
00:43:41
¿Vale?
00:43:42
No me interesa
00:43:47
Lo que me interesa es que el programa lo hará
00:43:48
Pregúntalo a los conserjes
00:43:54
Otra función, scanf
00:44:05
Scanf es una función que pilla dos parámetros
00:44:14
- Autor/es:
- Stefano Chiesa
- Subido por:
- Stefano C.
- Licencia:
- Reconocimiento - No comercial
- Visualizaciones:
- 55
- Fecha:
- 17 de septiembre de 2024 - 11:21
- Visibilidad:
- Clave
- Centro:
- IES ROSA CHACEL
- Duración:
- 44′ 19″
- Relación de aspecto:
- 16:10 El estándar usado por los portátiles de 15,4" y algunos otros, es ancho como el 16:9.
- Resolución:
- 1152x720 píxeles
- Tamaño:
- 101.32 MBytes