Upload folder using huggingface_hub
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +17 -0
- 01-Introducción al lenguaje C/01-Fundamentos del Lenguaje de Programación C.mp4 +3 -0
- 01-Introducción al lenguaje C/01-Fundamentos del Lenguaje de Programación C.vtt +270 -0
- 01-Introducción al lenguaje C/01-Resumen.html +0 -0
- 01-Introducción al lenguaje C/01-presentacion-curso-de-introduccion-a-c_03d52e2b-ae7d-4f48-a639-97796abeae8f.pdf +3 -0
- 01-Introducción al lenguaje C/02-Lecturas recomendadas.txt +1 -0
- 01-Introducción al lenguaje C/02-Programación en C Estructuras Funciones y Memoria.mp4 +3 -0
- 01-Introducción al lenguaje C/02-Programación en C Estructuras Funciones y Memoria.vtt +1536 -0
- 01-Introducción al lenguaje C/02-Resumen.html +0 -0
- 01-Introducción al lenguaje C/03-Cómo una computadora interpreta datos binarios.mp4 +3 -0
- 01-Introducción al lenguaje C/03-Cómo una computadora interpreta datos binarios.vtt +503 -0
- 01-Introducción al lenguaje C/03-Lecturas recomendadas.txt +1 -0
- 01-Introducción al lenguaje C/03-Resumen.html +0 -0
- 01-Introducción al lenguaje C/04-Fundamentos del Lenguaje C para Microcontroladores.mp4 +3 -0
- 01-Introducción al lenguaje C/04-Fundamentos del Lenguaje C para Microcontroladores.vtt +230 -0
- 01-Introducción al lenguaje C/04-Lecturas recomendadas.txt +1 -0
- 01-Introducción al lenguaje C/04-Resumen.html +0 -0
- 01-Introducción al lenguaje C/05-Configuración de Entorno para Programar en C en Windows.mp4 +3 -0
- 01-Introducción al lenguaje C/05-Configuración de Entorno para Programar en C en Windows.vtt +374 -0
- 01-Introducción al lenguaje C/05-Lecturas recomendadas.txt +2 -0
- 01-Introducción al lenguaje C/05-Resumen.html +0 -0
- 01-Introducción al lenguaje C/06-Instalación y Ejecución de Programas C en Linux.mp4 +3 -0
- 01-Introducción al lenguaje C/06-Instalación y Ejecución de Programas C en Linux.vtt +214 -0
- 01-Introducción al lenguaje C/06-Lecturas recomendadas.txt +1 -0
- 01-Introducción al lenguaje C/06-Resumen.html +0 -0
- 02-Estructura de un programa C/01-Estructura Básica de un Programa en C.mp4 +3 -0
- 02-Estructura de un programa C/01-Estructura Básica de un Programa en C.vtt +146 -0
- 02-Estructura de un programa C/01-Resumen.html +0 -0
- 03-Tipos de Datos en el lenguaje C/01-Lecturas recomendadas.txt +1 -0
- 03-Tipos de Datos en el lenguaje C/01-Resumen.html +0 -0
- 03-Tipos de Datos en el lenguaje C/01-Tipos de Datos en C Enteros y Flotantes.mp4 +3 -0
- 03-Tipos de Datos en el lenguaje C/01-Tipos de Datos en C Enteros y Flotantes.vtt +522 -0
- 03-Tipos de Datos en el lenguaje C/02-Resumen.html +0 -0
- 03-Tipos de Datos en el lenguaje C/02-Uso del Tipo de Dato Void en Programación en C.mp4 +3 -0
- 03-Tipos de Datos en el lenguaje C/02-Uso del Tipo de Dato Void en Programación en C.vtt +242 -0
- 03-Tipos de Datos en el lenguaje C/03-Enums en C Uso y Ejemplos Prácticos para Constantes.mp4 +3 -0
- 03-Tipos de Datos en el lenguaje C/03-Enums en C Uso y Ejemplos Prácticos para Constantes.vtt +498 -0
- 03-Tipos de Datos en el lenguaje C/03-Resumen.html +0 -0
- 03-Tipos de Datos en el lenguaje C/04-Resumen.html +0 -0
- 03-Tipos de Datos en el lenguaje C/04-Tipos de datos char y unsigned char en C.mp4 +3 -0
- 03-Tipos de Datos en el lenguaje C/04-Tipos de datos char y unsigned char en C.vtt +70 -0
- 04-Variables en el lenguaje C/01-Declaración y uso de variables en lenguaje C.mp4 +3 -0
- 04-Variables en el lenguaje C/01-Declaración y uso de variables en lenguaje C.vtt +478 -0
- 04-Variables en el lenguaje C/01-Resumen.html +0 -0
- 04-Variables en el lenguaje C/02-Manejo de Variables Externas en C y Precisión Numérica.mp4 +3 -0
- 04-Variables en el lenguaje C/02-Manejo de Variables Externas en C y Precisión Numérica.vtt +178 -0
- 04-Variables en el lenguaje C/02-Resumen.html +0 -0
- 04-Variables en el lenguaje C/03-Uso de Constantes y Literales en C.mp4 +3 -0
- 04-Variables en el lenguaje C/03-Uso de Constantes y Literales en C.vtt +246 -0
- 04-Variables en el lenguaje C/04-Resumen.html +0 -0
.gitattributes
CHANGED
|
@@ -176,3 +176,20 @@ prompt-engineering/4-Cómo[[:space:]]definir[[:space:]]roles[[:space:]]efectivos
|
|
| 176 |
prompt-engineering/6-Comparación[[:space:]]práctica[[:space:]]de[[:space:]]ChatGPT,[[:space:]]Claude,[[:space:]]Gemini[[:space:]]y[[:space:]]Microsoft[[:space:]]Copilot.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 177 |
prompt-engineering/7-Técnicas[[:space:]]zero[[:space:]]shot[[:space:]]y[[:space:]]few[[:space:]]shot[[:space:]]para[[:space:]]prompts[[:space:]]efectivos.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 178 |
prompt-engineering/8-Estructura[[:space:]]de[[:space:]]prompts[[:space:]]con[[:space:]]etiquetas[[:space:]]XML[[:space:]]para[[:space:]]IA.mp4 filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 176 |
prompt-engineering/6-Comparación[[:space:]]práctica[[:space:]]de[[:space:]]ChatGPT,[[:space:]]Claude,[[:space:]]Gemini[[:space:]]y[[:space:]]Microsoft[[:space:]]Copilot.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 177 |
prompt-engineering/7-Técnicas[[:space:]]zero[[:space:]]shot[[:space:]]y[[:space:]]few[[:space:]]shot[[:space:]]para[[:space:]]prompts[[:space:]]efectivos.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 178 |
prompt-engineering/8-Estructura[[:space:]]de[[:space:]]prompts[[:space:]]con[[:space:]]etiquetas[[:space:]]XML[[:space:]]para[[:space:]]IA.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 179 |
+
01-Introducción[[:space:]]al[[:space:]]lenguaje[[:space:]]C/01-Fundamentos[[:space:]]del[[:space:]]Lenguaje[[:space:]]de[[:space:]]Programación[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 180 |
+
01-Introducción[[:space:]]al[[:space:]]lenguaje[[:space:]]C/01-presentacion-curso-de-introduccion-a-c_03d52e2b-ae7d-4f48-a639-97796abeae8f.pdf filter=lfs diff=lfs merge=lfs -text
|
| 181 |
+
01-Introducción[[:space:]]al[[:space:]]lenguaje[[:space:]]C/02-Programación[[:space:]]en[[:space:]]C[[:space:]]Estructuras[[:space:]]Funciones[[:space:]]y[[:space:]]Memoria.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 182 |
+
01-Introducción[[:space:]]al[[:space:]]lenguaje[[:space:]]C/03-Cómo[[:space:]]una[[:space:]]computadora[[:space:]]interpreta[[:space:]]datos[[:space:]]binarios.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 183 |
+
01-Introducción[[:space:]]al[[:space:]]lenguaje[[:space:]]C/04-Fundamentos[[:space:]]del[[:space:]]Lenguaje[[:space:]]C[[:space:]]para[[:space:]]Microcontroladores.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 184 |
+
01-Introducción[[:space:]]al[[:space:]]lenguaje[[:space:]]C/05-Configuración[[:space:]]de[[:space:]]Entorno[[:space:]]para[[:space:]]Programar[[:space:]]en[[:space:]]C[[:space:]]en[[:space:]]Windows.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 185 |
+
01-Introducción[[:space:]]al[[:space:]]lenguaje[[:space:]]C/06-Instalación[[:space:]]y[[:space:]]Ejecución[[:space:]]de[[:space:]]Programas[[:space:]]C[[:space:]]en[[:space:]]Linux.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 186 |
+
02-Estructura[[:space:]]de[[:space:]]un[[:space:]]programa[[:space:]]C/01-Estructura[[:space:]]Básica[[:space:]]de[[:space:]]un[[:space:]]Programa[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 187 |
+
03-Tipos[[:space:]]de[[:space:]]Datos[[:space:]]en[[:space:]]el[[:space:]]lenguaje[[:space:]]C/01-Tipos[[:space:]]de[[:space:]]Datos[[:space:]]en[[:space:]]C[[:space:]]Enteros[[:space:]]y[[:space:]]Flotantes.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 188 |
+
03-Tipos[[:space:]]de[[:space:]]Datos[[:space:]]en[[:space:]]el[[:space:]]lenguaje[[:space:]]C/02-Uso[[:space:]]del[[:space:]]Tipo[[:space:]]de[[:space:]]Dato[[:space:]]Void[[:space:]]en[[:space:]]Programación[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 189 |
+
03-Tipos[[:space:]]de[[:space:]]Datos[[:space:]]en[[:space:]]el[[:space:]]lenguaje[[:space:]]C/03-Enums[[:space:]]en[[:space:]]C[[:space:]]Uso[[:space:]]y[[:space:]]Ejemplos[[:space:]]Prácticos[[:space:]]para[[:space:]]Constantes.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 190 |
+
03-Tipos[[:space:]]de[[:space:]]Datos[[:space:]]en[[:space:]]el[[:space:]]lenguaje[[:space:]]C/04-Tipos[[:space:]]de[[:space:]]datos[[:space:]]char[[:space:]]y[[:space:]]unsigned[[:space:]]char[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 191 |
+
04-Variables[[:space:]]en[[:space:]]el[[:space:]]lenguaje[[:space:]]C/01-Declaración[[:space:]]y[[:space:]]uso[[:space:]]de[[:space:]]variables[[:space:]]en[[:space:]]lenguaje[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 192 |
+
04-Variables[[:space:]]en[[:space:]]el[[:space:]]lenguaje[[:space:]]C/02-Manejo[[:space:]]de[[:space:]]Variables[[:space:]]Externas[[:space:]]en[[:space:]]C[[:space:]]y[[:space:]]Precisión[[:space:]]Numérica.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 193 |
+
04-Variables[[:space:]]en[[:space:]]el[[:space:]]lenguaje[[:space:]]C/03-Uso[[:space:]]de[[:space:]]Constantes[[:space:]]y[[:space:]]Literales[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 194 |
+
04-Variables[[:space:]]en[[:space:]]el[[:space:]]lenguaje[[:space:]]C/04-Uso[[:space:]]de[[:space:]]define[[:space:]]y[[:space:]]const[[:space:]]para[[:space:]]constantes[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 195 |
+
05-Conclusiones/01-Funciones[[:space:]]Básicas[[:space:]]del[[:space:]]Lenguaje[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
01-Introducción al lenguaje C/01-Fundamentos del Lenguaje de Programación C.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5a2c79ccad169ef7d0aa93699374b59428f6b45a4571be8aa6fc3a11f3c3afba
|
| 3 |
+
size 22106453
|
01-Introducción al lenguaje C/01-Fundamentos del Lenguaje de Programación C.vtt
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:07.000
|
| 4 |
+
Hola, bienvenida o bienvenido a este curso
|
| 5 |
+
de introducción a C.
|
| 6 |
+
|
| 7 |
+
00:07.000 --> 00:10.640
|
| 8 |
+
Este es un lenguaje de programación que yo
|
| 9 |
+
de verdad amo muchísimo
|
| 10 |
+
|
| 11 |
+
00:10.640 --> 00:14.960
|
| 12 |
+
porque me ayudó a crear robótica y a crear
|
| 13 |
+
robots que me permitieron
|
| 14 |
+
|
| 15 |
+
00:14.960 --> 00:19.360
|
| 16 |
+
participar en competencias nacionales,
|
| 17 |
+
ganarlas en competencias internacionales,
|
| 18 |
+
|
| 19 |
+
00:19.360 --> 00:23.760
|
| 20 |
+
obviamente con un gran equipo de trabajo,
|
| 21 |
+
pero de verdad es que me permitió programar
|
| 22 |
+
|
| 23 |
+
00:23.760 --> 00:28.120
|
| 24 |
+
microcontroladores y me abrió las puertas
|
| 25 |
+
a todo un mundo de posibilidades.
|
| 26 |
+
|
| 27 |
+
00:28.120 --> 00:32.040
|
| 28 |
+
En este curso yo te voy a enseñar las
|
| 29 |
+
bases del lenguaje,
|
| 30 |
+
|
| 31 |
+
00:32.040 --> 00:36.440
|
| 32 |
+
solo lo introductorio. Vas a aprender cómo
|
| 33 |
+
funciona un programa típico en C,
|
| 34 |
+
|
| 35 |
+
00:36.440 --> 00:40.880
|
| 36 |
+
vas a aprender cómo declarar variables,
|
| 37 |
+
qué tipos de datos puedes usar en este lenguaje
|
| 38 |
+
|
| 39 |
+
00:40.880 --> 00:45.640
|
| 40 |
+
y vas a aprender por qué deberías usar
|
| 41 |
+
cierto tipo de datos en lugar de otro.
|
| 42 |
+
|
| 43 |
+
00:45.640 --> 00:50.800
|
| 44 |
+
Es muy importante también que te vayas
|
| 45 |
+
aprendiendo aquí que C es un lenguaje tipado,
|
| 46 |
+
|
| 47 |
+
00:50.800 --> 00:56.760
|
| 48 |
+
es decir, siempre vas a tener que declarar
|
| 49 |
+
qué tipo de datos va a acompañar una variable
|
| 50 |
+
|
| 51 |
+
00:56.760 --> 01:00.440
|
| 52 |
+
para que el lenguaje sepa cuánta memoria
|
| 53 |
+
reservar en nuestra computadora
|
| 54 |
+
|
| 55 |
+
01:00.440 --> 01:02.200
|
| 56 |
+
o en el sistema que estemos programando.
|
| 57 |
+
|
| 58 |
+
01:02.200 --> 01:06.200
|
| 59 |
+
Quiero contarte además un poco sobre cómo
|
| 60 |
+
estamos atacando ahora
|
| 61 |
+
|
| 62 |
+
01:06.200 --> 01:08.400
|
| 63 |
+
los lenguajes de programación aquí en Platzi.
|
| 64 |
+
|
| 65 |
+
01:08.400 --> 01:12.240
|
| 66 |
+
Antes sacábamos un solo curso que era
|
| 67 |
+
relativamente largo,
|
| 68 |
+
|
| 69 |
+
01:12.240 --> 01:15.240
|
| 70 |
+
pero no era lo suficientemente largo para
|
| 71 |
+
cubrir todo el lenguaje,
|
| 72 |
+
|
| 73 |
+
01:15.240 --> 01:19.240
|
| 74 |
+
deberían de ser 100 clases, 150 clases en
|
| 75 |
+
algunos casos.
|
| 76 |
+
|
| 77 |
+
01:19.240 --> 01:23.680
|
| 78 |
+
¿Por qué? Porque un lenguaje tiene cosas
|
| 79 |
+
desde lo más básico como tipos de datos,
|
| 80 |
+
|
| 81 |
+
01:23.680 --> 01:27.000
|
| 82 |
+
cómo se crea una estructura básica en un
|
| 83 |
+
programa,
|
| 84 |
+
|
| 85 |
+
01:27.000 --> 01:30.800
|
| 86 |
+
hasta cuestiones avanzadas como en el caso
|
| 87 |
+
de C, manejo de memoria,
|
| 88 |
+
|
| 89 |
+
01:30.800 --> 01:33.040
|
| 90 |
+
testing en algunos otros
|
| 91 |
+
casos,
|
| 92 |
+
|
| 93 |
+
01:33.040 --> 01:36.720
|
| 94 |
+
todas estas cuestiones que ya son mucho
|
| 95 |
+
más complejas
|
| 96 |
+
|
| 97 |
+
01:36.720 --> 01:42.160
|
| 98 |
+
y esto siempre se quedaba muy corto en
|
| 99 |
+
estos cursos de lenguajes de programación.
|
| 100 |
+
|
| 101 |
+
01:42.160 --> 01:46.040
|
| 102 |
+
Queremos cambiar eso, por eso ahora
|
| 103 |
+
dividimos cada lenguaje de programación
|
| 104 |
+
|
| 105 |
+
01:46.040 --> 01:47.200
|
| 106 |
+
en varios
|
| 107 |
+
cursos.
|
| 108 |
+
|
| 109 |
+
01:47.200 --> 01:50.120
|
| 110 |
+
Por ejemplo, la ruta de C que tengo
|
| 111 |
+
planeada para ti
|
| 112 |
+
|
| 113 |
+
01:50.120 --> 01:52.040
|
| 114 |
+
y que espero que tomes de principio a
|
| 115 |
+
fin
|
| 116 |
+
|
| 117 |
+
01:52.040 --> 01:54.120
|
| 118 |
+
es el curso de introducción a
|
| 119 |
+
C,
|
| 120 |
+
|
| 121 |
+
01:54.120 --> 01:56.120
|
| 122 |
+
en donde veremos lo básico,
|
| 123 |
+
básico.
|
| 124 |
+
|
| 125 |
+
01:56.120 --> 01:59.080
|
| 126 |
+
Luego, el curso de programación en C,
|
| 127 |
+
|
| 128 |
+
01:59.080 --> 02:02.200
|
| 129 |
+
que este sí es un curso en donde vas a
|
| 130 |
+
aprender a usar ciclos,
|
| 131 |
+
|
| 132 |
+
02:02.200 --> 02:04.880
|
| 133 |
+
donde vas a poder definir el orden de un
|
| 134 |
+
programa,
|
| 135 |
+
|
| 136 |
+
02:04.880 --> 02:07.920
|
| 137 |
+
cómo hacer que de una parte de tu código
|
| 138 |
+
te vayas a otra
|
| 139 |
+
|
| 140 |
+
02:07.920 --> 02:10.040
|
| 141 |
+
y generar código mucho más complejo,
|
| 142 |
+
|
| 143 |
+
02:10.040 --> 02:12.880
|
| 144 |
+
ahí aprenderemos sobre if, for, while,
|
| 145 |
+
|
| 146 |
+
02:12.880 --> 02:15.960
|
| 147 |
+
todas estas cuestiones, también
|
| 148 |
+
aprenderemos algunas estructuras
|
| 149 |
+
|
| 150 |
+
02:15.960 --> 02:18.560
|
| 151 |
+
de datos importantísimas en el lenguaje.
|
| 152 |
+
|
| 153 |
+
02:18.560 --> 02:21.800
|
| 154 |
+
Luego, nos pasaremos al curso número 3,
|
| 155 |
+
|
| 156 |
+
02:21.800 --> 02:24.000
|
| 157 |
+
en donde aprenderemos de todas las
|
| 158 |
+
funciones
|
| 159 |
+
|
| 160 |
+
02:24.000 --> 02:25.400
|
| 161 |
+
que trae el lenguaje
|
| 162 |
+
C,
|
| 163 |
+
|
| 164 |
+
02:25.400 --> 02:27.480
|
| 165 |
+
vamos a explorar muchas de las
|
| 166 |
+
bibliotecas
|
| 167 |
+
|
| 168 |
+
02:27.480 --> 02:28.840
|
| 169 |
+
que vienen por
|
| 170 |
+
defecto,
|
| 171 |
+
|
| 172 |
+
02:28.840 --> 02:31.160
|
| 173 |
+
o las bibliotecas estándar del lenguaje,
|
| 174 |
+
|
| 175 |
+
02:31.160 --> 02:33.200
|
| 176 |
+
vamos a explorar todas las
|
| 177 |
+
funcionalidades
|
| 178 |
+
|
| 179 |
+
02:33.200 --> 02:34.440
|
| 180 |
+
que vienen dentro de
|
| 181 |
+
ellas,
|
| 182 |
+
|
| 183 |
+
02:34.440 --> 02:37.400
|
| 184 |
+
y en el cuarto curso vamos a explorar
|
| 185 |
+
cuestiones
|
| 186 |
+
|
| 187 |
+
02:37.400 --> 02:38.680
|
| 188 |
+
mucho más
|
| 189 |
+
avanzadas,
|
| 190 |
+
|
| 191 |
+
02:38.680 --> 02:41.000
|
| 192 |
+
como manejo de memoria
|
| 193 |
+
dinámica,
|
| 194 |
+
|
| 195 |
+
02:41.000 --> 02:44.360
|
| 196 |
+
obviamente ya aprenderás a manejar punteros,
|
| 197 |
+
|
| 198 |
+
02:44.360 --> 02:47.200
|
| 199 |
+
vamos a aprender a dominar ya el
|
| 200 |
+
lenguaje
|
| 201 |
+
|
| 202 |
+
02:47.200 --> 02:48.680
|
| 203 |
+
a un nivel
|
| 204 |
+
experto.
|
| 205 |
+
|
| 206 |
+
02:48.680 --> 02:51.880
|
| 207 |
+
Entonces, te doy la bienvenida a este
|
| 208 |
+
primer curso
|
| 209 |
+
|
| 210 |
+
02:51.880 --> 02:53.680
|
| 211 |
+
y te cuento que yo soy Ricardo Célis,
|
| 212 |
+
|
| 213 |
+
02:53.680 --> 02:55.960
|
| 214 |
+
si no me conoces, trabajo en Platzi,
|
| 215 |
+
|
| 216 |
+
02:55.960 --> 02:57.760
|
| 217 |
+
soy profesor de muchos
|
| 218 |
+
cursos,
|
| 219 |
+
|
| 220 |
+
02:57.760 --> 03:00.640
|
| 221 |
+
amo programar, también amo la robótica,
|
| 222 |
+
|
| 223 |
+
03:00.640 --> 03:03.080
|
| 224 |
+
y en este caso, amo
|
| 225 |
+
enseñar,
|
| 226 |
+
|
| 227 |
+
03:03.080 --> 03:05.480
|
| 228 |
+
más que nada, es lo que me mueve como
|
| 229 |
+
profesor.
|
| 230 |
+
|
| 231 |
+
03:05.480 --> 03:08.400
|
| 232 |
+
Yo en Platzi he desarrollado muchos roles,
|
| 233 |
+
|
| 234 |
+
03:08.400 --> 03:10.600
|
| 235 |
+
desde estar a cargo de las sesiones en vivo,
|
| 236 |
+
|
| 237 |
+
03:10.600 --> 03:12.840
|
| 238 |
+
hacer curso director y guiar a los
|
| 239 |
+
profesores
|
| 240 |
+
|
| 241 |
+
03:12.840 --> 03:14.240
|
| 242 |
+
a que hagan cursos
|
| 243 |
+
increíbles,
|
| 244 |
+
|
| 245 |
+
03:14.240 --> 03:16.480
|
| 246 |
+
y hoy en día estoy a cargo de todos los
|
| 247 |
+
cursos
|
| 248 |
+
|
| 249 |
+
03:16.480 --> 03:18.240
|
| 250 |
+
que tienen que ver con desarrollo de software,
|
| 251 |
+
|
| 252 |
+
03:18.240 --> 03:19.520
|
| 253 |
+
así que aprovecha
|
| 254 |
+
igual,
|
| 255 |
+
|
| 256 |
+
03:19.520 --> 03:21.160
|
| 257 |
+
si tienes alguna duda o algún
|
| 258 |
+
curso
|
| 259 |
+
|
| 260 |
+
03:21.160 --> 03:23.160
|
| 261 |
+
que te gustaría ver en Platzi que aún no
|
| 262 |
+
existe,
|
| 263 |
+
|
| 264 |
+
03:23.160 --> 03:25.120
|
| 265 |
+
cuéntamelo en los
|
| 266 |
+
comentarios.
|
| 267 |
+
|
| 268 |
+
03:25.120 --> 03:50.120
|
| 269 |
+
Te quiero dar la bienvenida y nos vemos.
|
| 270 |
+
|
01-Introducción al lenguaje C/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
01-Introducción al lenguaje C/01-presentacion-curso-de-introduccion-a-c_03d52e2b-ae7d-4f48-a639-97796abeae8f.pdf
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d3b2a04587f96a45f194f18308485d5238f9c1037eff93ca8213af59ef68e475
|
| 3 |
+
size 287073
|
01-Introducción al lenguaje C/02-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://platzi.com/clases/pic/
|
01-Introducción al lenguaje C/02-Programación en C Estructuras Funciones y Memoria.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:1a78588c1f2d67a1a3a1996561ae58d20ca2a7ab769b52c1552d24cf9f0df741
|
| 3 |
+
size 176823214
|
01-Introducción al lenguaje C/02-Programación en C Estructuras Funciones y Memoria.vtt
ADDED
|
@@ -0,0 +1,1536 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:03.000
|
| 4 |
+
¿Cómo ejecutar un código en
|
| 5 |
+
C?
|
| 6 |
+
|
| 7 |
+
00:03.500 --> 00:06.200
|
| 8 |
+
El lenguaje C es un lenguaje de
|
| 9 |
+
programación
|
| 10 |
+
|
| 11 |
+
00:06.200 --> 00:07.900
|
| 12 |
+
de tipo
|
| 13 |
+
estructurada,
|
| 14 |
+
|
| 15 |
+
00:07.900 --> 00:10.200
|
| 16 |
+
es decir, vamos a ir ejecutando las
|
| 17 |
+
instrucciones
|
| 18 |
+
|
| 19 |
+
00:10.200 --> 00:13.500
|
| 20 |
+
de nuestro código en una orden
|
| 21 |
+
específico
|
| 22 |
+
|
| 23 |
+
00:13.500 --> 00:14.700
|
| 24 |
+
que nosotros
|
| 25 |
+
tengamos.
|
| 26 |
+
|
| 27 |
+
00:14.700 --> 00:16.900
|
| 28 |
+
Suele ser, comienza en la primera
|
| 29 |
+
línea
|
| 30 |
+
|
| 31 |
+
00:16.900 --> 00:19.000
|
| 32 |
+
y de ahí para abajo,
|
| 33 |
+
simplemente,
|
| 34 |
+
|
| 35 |
+
00:19.000 --> 00:21.300
|
| 36 |
+
vamos a ir ejecutando línea a
|
| 37 |
+
línea
|
| 38 |
+
|
| 39 |
+
00:21.300 --> 00:22.900
|
| 40 |
+
todo el código que
|
| 41 |
+
tengamos.
|
| 42 |
+
|
| 43 |
+
00:22.900 --> 00:25.400
|
| 44 |
+
Obviamente, vamos a poder utilizar librerías,
|
| 45 |
+
|
| 46 |
+
00:25.400 --> 00:26.800
|
| 47 |
+
vamos a poder
|
| 48 |
+
utilizar...
|
| 49 |
+
|
| 50 |
+
00:26.800 --> 00:29.300
|
| 51 |
+
Aquí no existe tal cosa como, por ejemplo,
|
| 52 |
+
|
| 53 |
+
00:29.300 --> 00:30.800
|
| 54 |
+
las clases y los
|
| 55 |
+
objetos,
|
| 56 |
+
|
| 57 |
+
00:30.800 --> 00:32.300
|
| 58 |
+
pero existen los
|
| 59 |
+
structs,
|
| 60 |
+
|
| 61 |
+
00:32.300 --> 00:35.100
|
| 62 |
+
que puedes verlo como los abuelitos de
|
| 63 |
+
clases y objetos
|
| 64 |
+
|
| 65 |
+
00:35.100 --> 00:37.500
|
| 66 |
+
si vienes del paradigma orientado a objetos.
|
| 67 |
+
|
| 68 |
+
00:37.500 --> 00:39.700
|
| 69 |
+
Vamos a poder también crear
|
| 70 |
+
funciones
|
| 71 |
+
|
| 72 |
+
00:39.700 --> 00:42.100
|
| 73 |
+
y todo esto nos va a permitir hacer
|
| 74 |
+
programas
|
| 75 |
+
|
| 76 |
+
00:42.100 --> 00:44.900
|
| 77 |
+
que tengan el flujo que nosotros querramos.
|
| 78 |
+
|
| 79 |
+
00:44.900 --> 00:47.200
|
| 80 |
+
Ahora, C es un lenguaje, como te digo,
|
| 81 |
+
|
| 82 |
+
00:47.200 --> 00:50.600
|
| 83 |
+
de programación con el paradigma estructurado.
|
| 84 |
+
|
| 85 |
+
00:50.600 --> 00:53.300
|
| 86 |
+
Este es un lenguaje que soporta
|
| 87 |
+
recursividad
|
| 88 |
+
|
| 89 |
+
00:53.300 --> 00:55.300
|
| 90 |
+
o
|
| 91 |
+
recursión,
|
| 92 |
+
|
| 93 |
+
00:55.300 --> 00:58.400
|
| 94 |
+
es un lenguaje que también tiene un estado,
|
| 95 |
+
|
| 96 |
+
00:58.400 --> 01:01.300
|
| 97 |
+
un tipo estático de
|
| 98 |
+
tipado,
|
| 99 |
+
|
| 100 |
+
01:01.300 --> 01:03.600
|
| 101 |
+
es un lenguaje que se podría
|
| 102 |
+
considerar
|
| 103 |
+
|
| 104 |
+
01:03.600 --> 01:04.900
|
| 105 |
+
fuertemente
|
| 106 |
+
tipado.
|
| 107 |
+
|
| 108 |
+
01:04.900 --> 01:06.100
|
| 109 |
+
Tienes que
|
| 110 |
+
decirle
|
| 111 |
+
|
| 112 |
+
01:06.100 --> 01:08.300
|
| 113 |
+
de qué tipo de datos van a ser tus variables,
|
| 114 |
+
|
| 115 |
+
01:08.300 --> 01:11.300
|
| 116 |
+
cuánta capacidad de memoria vas a poder
|
| 117 |
+
almacenar,
|
| 118 |
+
|
| 119 |
+
01:11.300 --> 01:14.000
|
| 120 |
+
qué tamaño van a tener tus
|
| 121 |
+
datos
|
| 122 |
+
|
| 123 |
+
01:14.000 --> 01:15.000
|
| 124 |
+
que vas a estar
|
| 125 |
+
manejando.
|
| 126 |
+
|
| 127 |
+
01:15.000 --> 01:16.100
|
| 128 |
+
Eso es muy
|
| 129 |
+
maravilloso
|
| 130 |
+
|
| 131 |
+
01:16.100 --> 01:18.400
|
| 132 |
+
y lo vamos a ver en cursos más avanzados,
|
| 133 |
+
|
| 134 |
+
01:18.400 --> 01:20.200
|
| 135 |
+
todo lo que tiene que ver con manejo de
|
| 136 |
+
memoria.
|
| 137 |
+
|
| 138 |
+
01:20.200 --> 01:22.000
|
| 139 |
+
De hecho, ese va a ser un curso
|
| 140 |
+
entero
|
| 141 |
+
|
| 142 |
+
01:22.000 --> 01:24.500
|
| 143 |
+
de la ruta de estudio que yo te
|
| 144 |
+
propongo
|
| 145 |
+
|
| 146 |
+
01:24.500 --> 01:26.100
|
| 147 |
+
que tomes para aprender en
|
| 148 |
+
C.
|
| 149 |
+
|
| 150 |
+
01:26.100 --> 01:29.600
|
| 151 |
+
Y es un lenguaje que se ocupa
|
| 152 |
+
muchísimo
|
| 153 |
+
|
| 154 |
+
01:29.600 --> 01:33.500
|
| 155 |
+
en aplicaciones como sistemas operativos,
|
| 156 |
+
|
| 157 |
+
01:33.500 --> 01:35.300
|
| 158 |
+
software de
|
| 159 |
+
aplicación,
|
| 160 |
+
|
| 161 |
+
01:35.300 --> 01:38.100
|
| 162 |
+
se ocupa muchísimo en drivers, por ejemplo,
|
| 163 |
+
|
| 164 |
+
01:38.100 --> 01:40.700
|
| 165 |
+
se ocupa mucho en algunas
|
| 166 |
+
supercomputadoras
|
| 167 |
+
|
| 168 |
+
01:40.700 --> 01:42.200
|
| 169 |
+
para hacer cálculos
|
| 170 |
+
veloces,
|
| 171 |
+
|
| 172 |
+
01:42.200 --> 01:45.200
|
| 173 |
+
se ocupa sobre todo en sistemas embebidos,
|
| 174 |
+
|
| 175 |
+
01:45.200 --> 01:47.900
|
| 176 |
+
es el rey que tú vas a
|
| 177 |
+
encontrar.
|
| 178 |
+
|
| 179 |
+
01:47.900 --> 01:50.500
|
| 180 |
+
Por ejemplo, el firmware del tablero de tu
|
| 181 |
+
coche,
|
| 182 |
+
|
| 183 |
+
01:50.500 --> 01:52.100
|
| 184 |
+
de tu
|
| 185 |
+
vehículo,
|
| 186 |
+
|
| 187 |
+
01:52.100 --> 01:54.700
|
| 188 |
+
ves que el tablero ya son
|
| 189 |
+
digitales
|
| 190 |
+
|
| 191 |
+
01:54.700 --> 01:58.200
|
| 192 |
+
y tienen pantallitas y tienen el tacómetro
|
| 193 |
+
digital
|
| 194 |
+
|
| 195 |
+
01:58.200 --> 02:00.700
|
| 196 |
+
y tienen el sensor que mide cuánta
|
| 197 |
+
gasolina te queda
|
| 198 |
+
|
| 199 |
+
02:00.700 --> 02:02.800
|
| 200 |
+
y tienen el sensor de temperatura en el motor,
|
| 201 |
+
|
| 202 |
+
02:02.800 --> 02:04.800
|
| 203 |
+
todo eso, ¿adivina quién lo
|
| 204 |
+
coordina?
|
| 205 |
+
|
| 206 |
+
02:04.800 --> 02:08.100
|
| 207 |
+
Lo coordina un código en C de bajo
|
| 208 |
+
nivel
|
| 209 |
+
|
| 210 |
+
02:08.100 --> 02:09.800
|
| 211 |
+
que se comunica con los
|
| 212 |
+
sensores,
|
| 213 |
+
|
| 214 |
+
02:09.800 --> 02:12.900
|
| 215 |
+
los puede leer y te puede mostrar luego la
|
| 216 |
+
información
|
| 217 |
+
|
| 218 |
+
02:12.900 --> 02:15.200
|
| 219 |
+
comunicándose con las
|
| 220 |
+
pantallas.
|
| 221 |
+
|
| 222 |
+
02:15.200 --> 02:18.700
|
| 223 |
+
C es un lenguaje que de verdad está en
|
| 224 |
+
todos lados,
|
| 225 |
+
|
| 226 |
+
02:18.700 --> 02:19.900
|
| 227 |
+
en todo lo que
|
| 228 |
+
ocupas,
|
| 229 |
+
|
| 230 |
+
02:19.900 --> 02:25.100
|
| 231 |
+
muy probablemente algunos firmware o sistemas,
|
| 232 |
+
|
| 233 |
+
02:25.100 --> 02:27.700
|
| 234 |
+
código de bajo nivel dentro de tu
|
| 235 |
+
celular
|
| 236 |
+
|
| 237 |
+
02:27.700 --> 02:29.900
|
| 238 |
+
va a estar escrito con
|
| 239 |
+
C.
|
| 240 |
+
|
| 241 |
+
02:30.800 --> 02:32.400
|
| 242 |
+
En la industria, los
|
| 243 |
+
PLCs,
|
| 244 |
+
|
| 245 |
+
02:32.400 --> 02:34.900
|
| 246 |
+
que son Programmable Logic
|
| 247 |
+
Controller
|
| 248 |
+
|
| 249 |
+
02:34.900 --> 02:36.900
|
| 250 |
+
o controlador lógico
|
| 251 |
+
programable,
|
| 252 |
+
|
| 253 |
+
02:36.900 --> 02:40.300
|
| 254 |
+
son microcontroladores que tienen
|
| 255 |
+
circuitos específicos
|
| 256 |
+
|
| 257 |
+
02:40.300 --> 02:43.000
|
| 258 |
+
para poder ser
|
| 259 |
+
circuitos
|
| 260 |
+
|
| 261 |
+
02:43.000 --> 02:44.800
|
| 262 |
+
que le permiten ser
|
| 263 |
+
industriales,
|
| 264 |
+
|
| 265 |
+
02:44.800 --> 02:46.300
|
| 266 |
+
soportar voltajes más
|
| 267 |
+
altos,
|
| 268 |
+
|
| 269 |
+
02:46.300 --> 02:49.500
|
| 270 |
+
soportar ciertos entornos, temperaturas,
|
| 271 |
+
humedades,
|
| 272 |
+
|
| 273 |
+
02:49.500 --> 02:51.700
|
| 274 |
+
que el fabricante te va a permitir decir.
|
| 275 |
+
|
| 276 |
+
02:51.700 --> 02:53.900
|
| 277 |
+
También tienen firmware
|
| 278 |
+
específico
|
| 279 |
+
|
| 280 |
+
02:53.900 --> 02:56.400
|
| 281 |
+
para que estos te permitan ser
|
| 282 |
+
programados
|
| 283 |
+
|
| 284 |
+
02:56.400 --> 02:58.900
|
| 285 |
+
con el propio software que te da el
|
| 286 |
+
fabricante.
|
| 287 |
+
|
| 288 |
+
02:58.900 --> 03:01.200
|
| 289 |
+
Muchas veces no tienes que escribir
|
| 290 |
+
directamente
|
| 291 |
+
|
| 292 |
+
03:01.200 --> 03:02.300
|
| 293 |
+
código como
|
| 294 |
+
tal,
|
| 295 |
+
|
| 296 |
+
03:02.300 --> 03:03.600
|
| 297 |
+
no tienes que escribir código en
|
| 298 |
+
C
|
| 299 |
+
|
| 300 |
+
03:03.600 --> 03:05.500
|
| 301 |
+
porque ya te dan una simplificación,
|
| 302 |
+
|
| 303 |
+
03:05.500 --> 03:08.000
|
| 304 |
+
un nivel arriba que algunos de forma
|
| 305 |
+
gráfica
|
| 306 |
+
|
| 307 |
+
03:08.000 --> 03:09.200
|
| 308 |
+
puedes ir
|
| 309 |
+
escribiendo,
|
| 310 |
+
|
| 311 |
+
03:09.200 --> 03:12.700
|
| 312 |
+
otros muy tradicionalmente en el famoso
|
| 313 |
+
lenguaje
|
| 314 |
+
|
| 315 |
+
03:12.700 --> 03:15.200
|
| 316 |
+
o del sistema de programación de escalera,
|
| 317 |
+
|
| 318 |
+
03:15.200 --> 03:17.600
|
| 319 |
+
en donde vas poniendo las instrucciones
|
| 320 |
+
que quieres que haga,
|
| 321 |
+
|
| 322 |
+
03:17.600 --> 03:19.600
|
| 323 |
+
haces los bucles y eso es
|
| 324 |
+
todo.
|
| 325 |
+
|
| 326 |
+
03:19.600 --> 03:25.200
|
| 327 |
+
También estos son el pan de cada día en la
|
| 328 |
+
industria.
|
| 329 |
+
|
| 330 |
+
03:25.200 --> 03:26.500
|
| 331 |
+
Muchos
|
| 332 |
+
sistemas,
|
| 333 |
+
|
| 334 |
+
03:26.500 --> 03:28.800
|
| 335 |
+
o yo diría que la gran mayoría de los
|
| 336 |
+
sistemas,
|
| 337 |
+
|
| 338 |
+
03:28.800 --> 03:29.900
|
| 339 |
+
si no es que
|
| 340 |
+
todos,
|
| 341 |
+
|
| 342 |
+
03:29.900 --> 03:32.100
|
| 343 |
+
hoy en día están en las
|
| 344 |
+
industrias,
|
| 345 |
+
|
| 346 |
+
03:32.100 --> 03:33.600
|
| 347 |
+
en las
|
| 348 |
+
fábricas,
|
| 349 |
+
|
| 350 |
+
03:33.600 --> 03:35.900
|
| 351 |
+
en las tiras de
|
| 352 |
+
ensamblaje,
|
| 353 |
+
|
| 354 |
+
03:35.900 --> 03:37.400
|
| 355 |
+
están hechos con
|
| 356 |
+
PLCs,
|
| 357 |
+
|
| 358 |
+
03:37.400 --> 03:39.100
|
| 359 |
+
están controlando todo
|
| 360 |
+
esto
|
| 361 |
+
|
| 362 |
+
03:39.100 --> 03:42.300
|
| 363 |
+
y C, obviamente, está adentro de ellos.
|
| 364 |
+
|
| 365 |
+
03:42.300 --> 03:44.800
|
| 366 |
+
Muchas veces no programas directamente en C,
|
| 367 |
+
|
| 368 |
+
03:44.800 --> 03:46.600
|
| 369 |
+
pero el software que te da el fabricante,
|
| 370 |
+
|
| 371 |
+
03:46.600 --> 03:49.700
|
| 372 |
+
lo que hace es pasar ese código a un
|
| 373 |
+
lenguaje intermedio
|
| 374 |
+
|
| 375 |
+
03:49.700 --> 03:50.800
|
| 376 |
+
que podría ser
|
| 377 |
+
C
|
| 378 |
+
|
| 379 |
+
03:50.800 --> 03:53.000
|
| 380 |
+
y después a el lenguaje
|
| 381 |
+
máquina
|
| 382 |
+
|
| 383 |
+
03:53.000 --> 03:55.700
|
| 384 |
+
que va a entender nuestro
|
| 385 |
+
microcontrolador
|
| 386 |
+
|
| 387 |
+
03:55.700 --> 03:57.100
|
| 388 |
+
adentro del
|
| 389 |
+
PLC.
|
| 390 |
+
|
| 391 |
+
03:57.100 --> 03:59.900
|
| 392 |
+
Ahora, si te interesa todo este mundo de
|
| 393 |
+
hardware,
|
| 394 |
+
|
| 395 |
+
03:59.900 --> 04:01.000
|
| 396 |
+
tengo un curso para
|
| 397 |
+
ti
|
| 398 |
+
|
| 399 |
+
04:01.000 --> 04:03.200
|
| 400 |
+
que es el curso de programación de
|
| 401 |
+
microcontroladores.
|
| 402 |
+
|
| 403 |
+
04:03.200 --> 04:06.000
|
| 404 |
+
Dicho esto, veamos más sobre
|
| 405 |
+
C.
|
| 406 |
+
|
| 407 |
+
04:06.000 --> 04:09.200
|
| 408 |
+
Este lenguaje fue creado por el genio de
|
| 409 |
+
la computación,
|
| 410 |
+
|
| 411 |
+
04:09.200 --> 04:11.900
|
| 412 |
+
conocido como de las ciencias de la
|
| 413 |
+
computación
|
| 414 |
+
|
| 415 |
+
04:11.900 --> 04:12.900
|
| 416 |
+
para hacer de
|
| 417 |
+
honor,
|
| 418 |
+
|
| 419 |
+
04:12.900 --> 04:14.900
|
| 420 |
+
conocido como Dennis
|
| 421 |
+
Ritchie.
|
| 422 |
+
|
| 423 |
+
04:14.900 --> 04:17.200
|
| 424 |
+
Él trabajaba en los laboratorios de
|
| 425 |
+
Bell
|
| 426 |
+
|
| 427 |
+
04:17.200 --> 04:21.900
|
| 428 |
+
y lo desarrolló durante 1972 y 1973.
|
| 429 |
+
|
| 430 |
+
04:21.900 --> 04:24.300
|
| 431 |
+
La idea era que él quería un
|
| 432 |
+
lenguaje
|
| 433 |
+
|
| 434 |
+
04:24.300 --> 04:25.800
|
| 435 |
+
que fuera más
|
| 436 |
+
comprensible,
|
| 437 |
+
|
| 438 |
+
04:25.800 --> 04:29.100
|
| 439 |
+
que fuera principalmente
|
| 440 |
+
útil
|
| 441 |
+
|
| 442 |
+
04:29.100 --> 04:30.500
|
| 443 |
+
para desarrollar
|
| 444 |
+
aplicaciones
|
| 445 |
+
|
| 446 |
+
04:30.500 --> 04:32.700
|
| 447 |
+
en el sistema operativo
|
| 448 |
+
Unix,
|
| 449 |
+
|
| 450 |
+
04:32.700 --> 04:35.800
|
| 451 |
+
que se podría decir es el papá de sistemas
|
| 452 |
+
operativos
|
| 453 |
+
|
| 454 |
+
04:35.800 --> 04:38.200
|
| 455 |
+
que conocemos hoy en día como Linux,
|
| 456 |
+
por ejemplo,
|
| 457 |
+
|
| 458 |
+
04:38.200 --> 04:39.900
|
| 459 |
+
si estás familiarizado con
|
| 460 |
+
ellos,
|
| 461 |
+
|
| 462 |
+
04:39.900 --> 04:42.000
|
| 463 |
+
muchas cosas del mundo corren en Linux,
|
| 464 |
+
|
| 465 |
+
04:42.000 --> 04:43.200
|
| 466 |
+
sobre todo
|
| 467 |
+
servidores
|
| 468 |
+
|
| 469 |
+
04:43.200 --> 04:46.800
|
| 470 |
+
y cuestiones más de computación
|
| 471 |
+
profesional
|
| 472 |
+
|
| 473 |
+
04:46.800 --> 04:48.100
|
| 474 |
+
y de alto
|
| 475 |
+
rendimiento,
|
| 476 |
+
|
| 477 |
+
04:48.100 --> 04:49.600
|
| 478 |
+
o inclusive de algunas
|
| 479 |
+
personas
|
| 480 |
+
|
| 481 |
+
04:49.600 --> 04:52.300
|
| 482 |
+
que simplemente no quieren utilizar
|
| 483 |
+
software privativo,
|
| 484 |
+
|
| 485 |
+
04:52.300 --> 04:54.400
|
| 486 |
+
sino que prefieren utilizar software libre,
|
| 487 |
+
|
| 488 |
+
04:54.400 --> 04:56.800
|
| 489 |
+
como Ubuntu, por poner algún ejemplo,
|
| 490 |
+
|
| 491 |
+
04:56.800 --> 05:00.100
|
| 492 |
+
o cualquiera de las algunas otras
|
| 493 |
+
distribuciones Linux
|
| 494 |
+
|
| 495 |
+
05:00.100 --> 05:03.000
|
| 496 |
+
que cumplen con la licencia
|
| 497 |
+
GNU.
|
| 498 |
+
|
| 499 |
+
05:03.000 --> 05:06.000
|
| 500 |
+
Dicho esto, el señor Dennis
|
| 501 |
+
Ritchie
|
| 502 |
+
|
| 503 |
+
05:06.000 --> 05:07.900
|
| 504 |
+
fue el creador de este
|
| 505 |
+
lenguaje.
|
| 506 |
+
|
| 507 |
+
05:07.900 --> 05:09.000
|
| 508 |
+
Él quería hacer un
|
| 509 |
+
lenguaje
|
| 510 |
+
|
| 511 |
+
05:09.000 --> 05:11.800
|
| 512 |
+
que también fuera compatible con otros
|
| 513 |
+
sistemas operativos
|
| 514 |
+
|
| 515 |
+
05:11.800 --> 05:13.800
|
| 516 |
+
y que permitiera la
|
| 517 |
+
portabilidad.
|
| 518 |
+
|
| 519 |
+
05:13.800 --> 05:16.600
|
| 520 |
+
Y aquí quiero darte una información muy
|
| 521 |
+
importante.
|
| 522 |
+
|
| 523 |
+
05:16.600 --> 05:19.300
|
| 524 |
+
El lenguaje C es un lenguaje compilado.
|
| 525 |
+
|
| 526 |
+
05:19.300 --> 05:20.500
|
| 527 |
+
¿Qué quiere decir
|
| 528 |
+
esto?
|
| 529 |
+
|
| 530 |
+
05:20.500 --> 05:23.600
|
| 531 |
+
Es un lenguaje que tú necesitas pasar por
|
| 532 |
+
el compilador,
|
| 533 |
+
|
| 534 |
+
05:23.600 --> 05:24.600
|
| 535 |
+
decirle al
|
| 536 |
+
compilador
|
| 537 |
+
|
| 538 |
+
05:24.600 --> 05:27.000
|
| 539 |
+
a qué sistema operativo quieres que apunte,
|
| 540 |
+
|
| 541 |
+
05:27.000 --> 05:28.600
|
| 542 |
+
si quieres que sea para
|
| 543 |
+
Unix
|
| 544 |
+
|
| 545 |
+
05:28.600 --> 05:29.900
|
| 546 |
+
o para alguna otra
|
| 547 |
+
distribución
|
| 548 |
+
|
| 549 |
+
05:29.900 --> 05:31.500
|
| 550 |
+
de algún otro sistema
|
| 551 |
+
operativo.
|
| 552 |
+
|
| 553 |
+
05:31.500 --> 05:33.800
|
| 554 |
+
Por ejemplo, hoy en día podemos
|
| 555 |
+
decir
|
| 556 |
+
|
| 557 |
+
05:33.800 --> 05:35.100
|
| 558 |
+
si quieres que sea para
|
| 559 |
+
Linux,
|
| 560 |
+
|
| 561 |
+
05:35.100 --> 05:36.600
|
| 562 |
+
si quieres que sea para
|
| 563 |
+
Windows,
|
| 564 |
+
|
| 565 |
+
05:36.600 --> 05:38.300
|
| 566 |
+
tienes que decirle al
|
| 567 |
+
compilador
|
| 568 |
+
|
| 569 |
+
05:38.300 --> 05:39.700
|
| 570 |
+
y el compilador se va a
|
| 571 |
+
encargar
|
| 572 |
+
|
| 573 |
+
05:39.700 --> 05:41.700
|
| 574 |
+
de agarrar tu código escrito en lenguaje
|
| 575 |
+
C
|
| 576 |
+
|
| 577 |
+
05:41.700 --> 05:45.300
|
| 578 |
+
y vas a poder generar un
|
| 579 |
+
ejecutable
|
| 580 |
+
|
| 581 |
+
05:45.300 --> 05:47.200
|
| 582 |
+
ya sea para el sistema operativo
|
| 583 |
+
Windows
|
| 584 |
+
|
| 585 |
+
05:47.200 --> 05:49.400
|
| 586 |
+
o para el sistema operativo
|
| 587 |
+
Linux.
|
| 588 |
+
|
| 589 |
+
05:49.400 --> 05:52.100
|
| 590 |
+
Ahora, muchas veces el
|
| 591 |
+
código
|
| 592 |
+
|
| 593 |
+
05:52.100 --> 05:53.900
|
| 594 |
+
no va a funcionar
|
| 595 |
+
directamente
|
| 596 |
+
|
| 597 |
+
05:53.900 --> 05:56.500
|
| 598 |
+
en los otros sistemas operativos sin cambios.
|
| 599 |
+
|
| 600 |
+
05:57.000 --> 06:00.400
|
| 601 |
+
Hay que ser conscientes de que para que un
|
| 602 |
+
código en C
|
| 603 |
+
|
| 604 |
+
06:00.400 --> 06:02.500
|
| 605 |
+
pueda usarse en otros sistemas operativos,
|
| 606 |
+
|
| 607 |
+
06:02.500 --> 06:05.600
|
| 608 |
+
tienes que diseñar el código con
|
| 609 |
+
portabilidad en mente.
|
| 610 |
+
|
| 611 |
+
06:05.600 --> 06:08.400
|
| 612 |
+
Y ahí es que sigas los estándares de ANSI
|
| 613 |
+
C
|
| 614 |
+
|
| 615 |
+
06:08.400 --> 06:10.500
|
| 616 |
+
y que seas capaz de
|
| 617 |
+
decidir,
|
| 618 |
+
|
| 619 |
+
06:10.500 --> 06:12.100
|
| 620 |
+
ah, ok, esta es una
|
| 621 |
+
librería
|
| 622 |
+
|
| 623 |
+
06:12.100 --> 06:14.300
|
| 624 |
+
que me va a funcionar específicamente en
|
| 625 |
+
Windows,
|
| 626 |
+
|
| 627 |
+
06:14.300 --> 06:17.200
|
| 628 |
+
ok, entonces voy a escribir una función
|
| 629 |
+
para Windows
|
| 630 |
+
|
| 631 |
+
06:17.200 --> 06:19.100
|
| 632 |
+
y puedo escribir con
|
| 633 |
+
portabilidad,
|
| 634 |
+
|
| 635 |
+
06:19.100 --> 06:21.400
|
| 636 |
+
puedo decir que según el
|
| 637 |
+
código,
|
| 638 |
+
|
| 639 |
+
06:21.400 --> 06:23.800
|
| 640 |
+
el sistema operativo que estoy compilando
|
| 641 |
+
en este momento,
|
| 642 |
+
|
| 643 |
+
06:23.800 --> 06:27.600
|
| 644 |
+
entonces utilice esta función o utilice
|
| 645 |
+
esta función.
|
| 646 |
+
|
| 647 |
+
06:27.600 --> 06:29.300
|
| 648 |
+
Son cosas que se pueden hacer en
|
| 649 |
+
C,
|
| 650 |
+
|
| 651 |
+
06:29.300 --> 06:32.000
|
| 652 |
+
lo vamos a ver de nuevo en los cursos más
|
| 653 |
+
avanzados.
|
| 654 |
+
|
| 655 |
+
06:32.000 --> 06:33.900
|
| 656 |
+
Ahora, con esto
|
| 657 |
+
dicho,
|
| 658 |
+
|
| 659 |
+
06:33.900 --> 06:37.400
|
| 660 |
+
no quiere decir que sea como por ejemplo
|
| 661 |
+
JavaScript
|
| 662 |
+
|
| 663 |
+
06:37.400 --> 06:39.000
|
| 664 |
+
que lo puedes ejecutar en el
|
| 665 |
+
navegador
|
| 666 |
+
|
| 667 |
+
06:39.000 --> 06:40.800
|
| 668 |
+
de cualquier sistema
|
| 669 |
+
operativo,
|
| 670 |
+
|
| 671 |
+
06:40.800 --> 06:43.700
|
| 672 |
+
porque JavaScript tiene su
|
| 673 |
+
motor,
|
| 674 |
+
|
| 675 |
+
06:43.700 --> 06:46.100
|
| 676 |
+
su runtime en donde se va a ejecutar.
|
| 677 |
+
|
| 678 |
+
06:46.100 --> 06:49.300
|
| 679 |
+
Por ejemplo, Node.js es un runtime
|
| 680 |
+
environment,
|
| 681 |
+
|
| 682 |
+
06:49.300 --> 06:52.400
|
| 683 |
+
un ambiente de tiempo de ejecución para
|
| 684 |
+
JavaScript,
|
| 685 |
+
|
| 686 |
+
06:52.400 --> 06:56.600
|
| 687 |
+
o V8, que es el motor con el que los
|
| 688 |
+
navegadores como Chrome
|
| 689 |
+
|
| 690 |
+
06:56.600 --> 07:00.100
|
| 691 |
+
pueden utilizar o pueden ejecutar código
|
| 692 |
+
JavaScript, ok.
|
| 693 |
+
|
| 694 |
+
07:00.100 --> 07:03.200
|
| 695 |
+
Eso es lo que se encarga de traducir ese
|
| 696 |
+
código
|
| 697 |
+
|
| 698 |
+
07:03.200 --> 07:05.800
|
| 699 |
+
a tu computadora, el motor del navegador.
|
| 700 |
+
|
| 701 |
+
07:05.800 --> 07:08.500
|
| 702 |
+
¿Por qué? Porque JavaScript no es un
|
| 703 |
+
lenguaje
|
| 704 |
+
|
| 705 |
+
07:08.500 --> 07:10.000
|
| 706 |
+
que necesite ser
|
| 707 |
+
compilado.
|
| 708 |
+
|
| 709 |
+
07:10.000 --> 07:11.400
|
| 710 |
+
En cambio C,
|
| 711 |
+
sí.
|
| 712 |
+
|
| 713 |
+
07:11.400 --> 07:14.000
|
| 714 |
+
Esta compilación simplemente es que le das
|
| 715 |
+
clic a un botón,
|
| 716 |
+
|
| 717 |
+
07:14.000 --> 07:17.000
|
| 718 |
+
el compilador se va a encargar de traducir
|
| 719 |
+
tu código en C
|
| 720 |
+
|
| 721 |
+
07:17.000 --> 07:20.200
|
| 722 |
+
al código máquina del sistema al que tú le
|
| 723 |
+
estás apuntando,
|
| 724 |
+
|
| 725 |
+
07:20.200 --> 07:22.400
|
| 726 |
+
y entonces te va a permitir ejecutarlo.
|
| 727 |
+
|
| 728 |
+
07:22.400 --> 07:25.700
|
| 729 |
+
Ese paso de compilación hay muchos
|
| 730 |
+
lenguajes
|
| 731 |
+
|
| 732 |
+
07:25.700 --> 07:27.700
|
| 733 |
+
que no necesariamente lo van a tener.
|
| 734 |
+
|
| 735 |
+
07:27.700 --> 07:31.900
|
| 736 |
+
Por ejemplo, Java es un lenguaje que es
|
| 737 |
+
mucho más portable
|
| 738 |
+
|
| 739 |
+
07:31.900 --> 07:36.600
|
| 740 |
+
porque se ejecuta en la Java Virtual Machine,
|
| 741 |
+
JVM.
|
| 742 |
+
|
| 743 |
+
07:36.600 --> 07:38.700
|
| 744 |
+
Y eso le permite que un solo código,
|
| 745 |
+
|
| 746 |
+
07:38.700 --> 07:40.900
|
| 747 |
+
sin ningún cambio en su
|
| 748 |
+
escritura,
|
| 749 |
+
|
| 750 |
+
07:40.900 --> 07:43.400
|
| 751 |
+
se pueda ejecutar en varios sistemas
|
| 752 |
+
operativos.
|
| 753 |
+
|
| 754 |
+
07:43.400 --> 07:45.200
|
| 755 |
+
Eso es una de las claves que hizo que
|
| 756 |
+
Java
|
| 757 |
+
|
| 758 |
+
07:45.200 --> 07:47.800
|
| 759 |
+
se volviera muy, muy popular en su
|
| 760 |
+
tiempo
|
| 761 |
+
|
| 762 |
+
07:47.800 --> 07:49.200
|
| 763 |
+
y hasta hoy en
|
| 764 |
+
día.
|
| 765 |
+
|
| 766 |
+
07:49.200 --> 07:53.000
|
| 767 |
+
Tenemos otros casos de lenguajes, como por
|
| 768 |
+
ejemplo C Sharp,
|
| 769 |
+
|
| 770 |
+
07:53.000 --> 07:56.300
|
| 771 |
+
que buscan cierto nivel de
|
| 772 |
+
equilibrio
|
| 773 |
+
|
| 774 |
+
07:56.300 --> 07:59.700
|
| 775 |
+
entre rendimiento y entre tiempo de
|
| 776 |
+
ejecución
|
| 777 |
+
|
| 778 |
+
07:59.700 --> 08:00.900
|
| 779 |
+
y facilidad de
|
| 780 |
+
escribir.
|
| 781 |
+
|
| 782 |
+
08:00.900 --> 08:04.200
|
| 783 |
+
Ahora, C, ¿qué gana al ser un lenguaje
|
| 784 |
+
compilado?
|
| 785 |
+
|
| 786 |
+
08:04.200 --> 08:07.800
|
| 787 |
+
¿Qué es un lenguaje que te permite tener
|
| 788 |
+
mucho control de la memoria?
|
| 789 |
+
|
| 790 |
+
08:07.800 --> 08:09.700
|
| 791 |
+
¿Es un lenguaje que te permite
|
| 792 |
+
tener
|
| 793 |
+
|
| 794 |
+
08:09.700 --> 08:11.800
|
| 795 |
+
mucha velocidad en tiempo de
|
| 796 |
+
ejecución?
|
| 797 |
+
|
| 798 |
+
08:11.800 --> 08:14.200
|
| 799 |
+
Y justo vamos a ver eso volviendo a mis
|
| 800 |
+
slides.
|
| 801 |
+
|
| 802 |
+
08:14.200 --> 08:18.600
|
| 803 |
+
Quiero empezar diciéndote que C es un
|
| 804 |
+
lenguaje de nivel intermedio.
|
| 805 |
+
|
| 806 |
+
08:18.600 --> 08:22.400
|
| 807 |
+
Es decir, aquí quiero repasar un
|
| 808 |
+
poquito
|
| 809 |
+
|
| 810 |
+
08:22.400 --> 08:24.400
|
| 811 |
+
los niveles de los lenguajes de programación.
|
| 812 |
+
|
| 813 |
+
08:24.400 --> 08:27.400
|
| 814 |
+
Recuerda que los lenguajes de más alto
|
| 815 |
+
nivel
|
| 816 |
+
|
| 817 |
+
08:27.400 --> 08:29.600
|
| 818 |
+
van a ser los lenguajes más fáciles de
|
| 819 |
+
entender
|
| 820 |
+
|
| 821 |
+
08:29.600 --> 08:31.200
|
| 822 |
+
para los humanos, para
|
| 823 |
+
nosotros.
|
| 824 |
+
|
| 825 |
+
08:31.200 --> 08:34.800
|
| 826 |
+
Por ejemplo, aquí tenemos Perl, Python, Shell,
|
| 827 |
+
JavaScript.
|
| 828 |
+
|
| 829 |
+
08:34.800 --> 08:38.400
|
| 830 |
+
Son lenguajes que generalmente son
|
| 831 |
+
interpretados.
|
| 832 |
+
|
| 833 |
+
08:38.400 --> 08:41.100
|
| 834 |
+
Es decir, van a correr en su propio
|
| 835 |
+
intérprete
|
| 836 |
+
|
| 837 |
+
08:41.100 --> 08:44.400
|
| 838 |
+
que luego se va a encargar de pasarlo a la
|
| 839 |
+
computadora.
|
| 840 |
+
|
| 841 |
+
08:44.400 --> 08:45.600
|
| 842 |
+
Hablemos de
|
| 843 |
+
JavaScript.
|
| 844 |
+
|
| 845 |
+
08:45.600 --> 08:49.200
|
| 846 |
+
Y es que aquí quiero que veas cómo C y C++
|
| 847 |
+
existen en todo.
|
| 848 |
+
|
| 849 |
+
08:49.200 --> 08:51.700
|
| 850 |
+
JavaScript es un lenguaje interpretado.
|
| 851 |
+
|
| 852 |
+
08:51.700 --> 08:53.900
|
| 853 |
+
Ya te dije, se interpreta por su motor.
|
| 854 |
+
|
| 855 |
+
08:53.900 --> 08:54.500
|
| 856 |
+
¿Ok?
|
| 857 |
+
|
| 858 |
+
08:54.500 --> 08:57.700
|
| 859 |
+
Este intérprete, el intérprete de JavaScript,
|
| 860 |
+
|
| 861 |
+
08:57.700 --> 08:59.300
|
| 862 |
+
o el motor que nos va a permitir ejecución,
|
| 863 |
+
|
| 864 |
+
08:59.300 --> 09:01.100
|
| 865 |
+
¿en qué lenguaje crees que esté
|
| 866 |
+
escrito?
|
| 867 |
+
|
| 868 |
+
09:01.100 --> 09:02.200
|
| 869 |
+
Pues
|
| 870 |
+
sí.
|
| 871 |
+
|
| 872 |
+
09:02.200 --> 09:04.900
|
| 873 |
+
Por ejemplo, el motor B8 que utiliza
|
| 874 |
+
Chrome
|
| 875 |
+
|
| 876 |
+
09:04.900 --> 09:07.500
|
| 877 |
+
para poder interpretar el JavaScript del
|
| 878 |
+
navegador
|
| 879 |
+
|
| 880 |
+
09:07.500 --> 09:11.900
|
| 881 |
+
está escrito en el lenguaje
|
| 882 |
+
C++,
|
| 883 |
+
|
| 884 |
+
09:11.900 --> 09:15.400
|
| 885 |
+
que es como una evolución que existió más
|
| 886 |
+
adelante.
|
| 887 |
+
|
| 888 |
+
09:15.400 --> 09:17.500
|
| 889 |
+
Eso te dice mucho,
|
| 890 |
+
¿no?
|
| 891 |
+
|
| 892 |
+
09:17.500 --> 09:19.600
|
| 893 |
+
De por qué pasan estas
|
| 894 |
+
cosas,
|
| 895 |
+
|
| 896 |
+
09:19.600 --> 09:22.700
|
| 897 |
+
por qué JavaScript no puede correr
|
| 898 |
+
directamente en el hardware.
|
| 899 |
+
|
| 900 |
+
09:22.700 --> 09:24.100
|
| 901 |
+
Necesita ser
|
| 902 |
+
interpretado.
|
| 903 |
+
|
| 904 |
+
09:24.100 --> 09:25.300
|
| 905 |
+
Así es como
|
| 906 |
+
funciona.
|
| 907 |
+
|
| 908 |
+
09:25.300 --> 09:27.900
|
| 909 |
+
Tenemos lenguajes de alto o medio nivel,
|
| 910 |
+
|
| 911 |
+
09:27.900 --> 09:29.700
|
| 912 |
+
como C y
|
| 913 |
+
C++,
|
| 914 |
+
|
| 915 |
+
09:29.700 --> 09:32.700
|
| 916 |
+
que son lenguajes ya mucho más abstractos.
|
| 917 |
+
|
| 918 |
+
09:32.700 --> 09:34.800
|
| 919 |
+
Estos no se ocupan tanto en
|
| 920 |
+
aplicaciones
|
| 921 |
+
|
| 922 |
+
09:34.800 --> 09:37.300
|
| 923 |
+
que son gráficas o para el
|
| 924 |
+
usuario.
|
| 925 |
+
|
| 926 |
+
09:37.300 --> 09:40.400
|
| 927 |
+
En el caso de C, en el caso de C++, sí,
|
| 928 |
+
|
| 929 |
+
09:40.400 --> 09:42.300
|
| 930 |
+
porque tiene muchas facilidades para esto.
|
| 931 |
+
|
| 932 |
+
09:42.300 --> 09:43.400
|
| 933 |
+
Tiene más
|
| 934 |
+
librerías,
|
| 935 |
+
|
| 936 |
+
09:43.400 --> 09:44.800
|
| 937 |
+
tiene
|
| 938 |
+
más...
|
| 939 |
+
|
| 940 |
+
09:44.800 --> 09:47.500
|
| 941 |
+
Como todo el paradigma orientado a
|
| 942 |
+
objetos
|
| 943 |
+
|
| 944 |
+
09:47.500 --> 09:49.200
|
| 945 |
+
ya está implementado en
|
| 946 |
+
C++.
|
| 947 |
+
|
| 948 |
+
09:49.200 --> 09:51.600
|
| 949 |
+
Y, de hecho, es un lenguaje que siguen
|
| 950 |
+
manteniendo.
|
| 951 |
+
|
| 952 |
+
09:51.600 --> 09:54.800
|
| 953 |
+
Y, bueno, simplemente Bjorn Strostrup,
|
| 954 |
+
|
| 955 |
+
09:54.800 --> 09:56.400
|
| 956 |
+
que es el creador de
|
| 957 |
+
C++,
|
| 958 |
+
|
| 959 |
+
09:56.400 --> 09:59.700
|
| 960 |
+
todavía sigue trabajando en él y creando
|
| 961 |
+
nuevos features.
|
| 962 |
+
|
| 963 |
+
09:59.700 --> 10:01.300
|
| 964 |
+
No salen cada
|
| 965 |
+
año.
|
| 966 |
+
|
| 967 |
+
10:01.300 --> 10:04.200
|
| 968 |
+
Salen cada cuatro a veces los años que les
|
| 969 |
+
tomen,
|
| 970 |
+
|
| 971 |
+
10:04.200 --> 10:07.000
|
| 972 |
+
pero pueden seguir generando nuevas cosas.
|
| 973 |
+
|
| 974 |
+
10:07.000 --> 10:08.700
|
| 975 |
+
Esto es, por
|
| 976 |
+
ejemplo,
|
| 977 |
+
|
| 978 |
+
10:08.700 --> 10:11.700
|
| 979 |
+
el lenguaje en el que está escrito la
|
| 980 |
+
mayoría del malware.
|
| 981 |
+
|
| 982 |
+
10:11.700 --> 10:12.900
|
| 983 |
+
¿Por
|
| 984 |
+
qué?
|
| 985 |
+
|
| 986 |
+
10:12.900 --> 10:14.500
|
| 987 |
+
Y aquí quiero que
|
| 988 |
+
pienses.
|
| 989 |
+
|
| 990 |
+
10:15.500 --> 10:17.600
|
| 991 |
+
Simple y sencillamente porque son
|
| 992 |
+
lenguajes
|
| 993 |
+
|
| 994 |
+
10:17.600 --> 10:19.300
|
| 995 |
+
que te dejan acceder a la
|
| 996 |
+
memoria,
|
| 997 |
+
|
| 998 |
+
10:19.300 --> 10:20.700
|
| 999 |
+
que te dejan acceder a
|
| 1000 |
+
cosas
|
| 1001 |
+
|
| 1002 |
+
10:20.700 --> 10:23.800
|
| 1003 |
+
muy, muy adentro de tu
|
| 1004 |
+
computadora
|
| 1005 |
+
|
| 1006 |
+
10:23.800 --> 10:25.600
|
| 1007 |
+
que estos otros lenguajes
|
| 1008 |
+
no.
|
| 1009 |
+
|
| 1010 |
+
10:25.600 --> 10:27.800
|
| 1011 |
+
¿Y para qué sirve acceder a la
|
| 1012 |
+
memoria?
|
| 1013 |
+
|
| 1014 |
+
10:27.800 --> 10:31.400
|
| 1015 |
+
Bueno, con estos lenguajes un hacker puede
|
| 1016 |
+
hacer cosas increíbles,
|
| 1017 |
+
|
| 1018 |
+
10:31.400 --> 10:34.700
|
| 1019 |
+
como detectar si un software que estás
|
| 1020 |
+
corriendo, digamos, un...
|
| 1021 |
+
|
| 1022 |
+
10:35.400 --> 10:37.500
|
| 1023 |
+
Hablemos de un software general que te
|
| 1024 |
+
bajaste
|
| 1025 |
+
|
| 1026 |
+
10:37.500 --> 10:40.300
|
| 1027 |
+
para poder grabar tu
|
| 1028 |
+
pantalla.
|
| 1029 |
+
|
| 1030 |
+
10:40.300 --> 10:43.200
|
| 1031 |
+
Ahorita está de moda esto de capturar
|
| 1032 |
+
pantalla,
|
| 1033 |
+
|
| 1034 |
+
10:43.200 --> 10:44.200
|
| 1035 |
+
generar
|
| 1036 |
+
video.
|
| 1037 |
+
|
| 1038 |
+
10:44.200 --> 10:45.900
|
| 1039 |
+
Bueno, estás capturando tu pantalla,
|
| 1040 |
+
|
| 1041 |
+
10:45.900 --> 10:48.600
|
| 1042 |
+
bajaste un software que fue desarrollado
|
| 1043 |
+
sin buenas prácticas
|
| 1044 |
+
|
| 1045 |
+
10:48.600 --> 10:51.100
|
| 1046 |
+
y ese software tiene un leak de memoria.
|
| 1047 |
+
|
| 1048 |
+
10:51.100 --> 10:52.600
|
| 1049 |
+
¿Qué significa un leak de
|
| 1050 |
+
memoria?
|
| 1051 |
+
|
| 1052 |
+
10:52.600 --> 10:56.200
|
| 1053 |
+
Que hay ciertas variables que habían
|
| 1054 |
+
declarado
|
| 1055 |
+
|
| 1056 |
+
10:56.200 --> 10:57.400
|
| 1057 |
+
o algo por el
|
| 1058 |
+
estilo
|
| 1059 |
+
|
| 1060 |
+
10:57.400 --> 11:01.200
|
| 1061 |
+
y no estaban
|
| 1062 |
+
entrando
|
| 1063 |
+
|
| 1064 |
+
11:01.200 --> 11:03.900
|
| 1065 |
+
en la cantidad de memoria reservado para
|
| 1066 |
+
esas variables.
|
| 1067 |
+
|
| 1068 |
+
11:03.900 --> 11:06.000
|
| 1069 |
+
O algún error como que, por ejemplo,
|
| 1070 |
+
|
| 1071 |
+
11:06.000 --> 11:09.800
|
| 1072 |
+
el software tenía o accedía a un permiso
|
| 1073 |
+
que no debería
|
| 1074 |
+
|
| 1075 |
+
11:09.800 --> 11:13.100
|
| 1076 |
+
y dejaba guardadas las credenciales en la
|
| 1077 |
+
memoria.
|
| 1078 |
+
|
| 1079 |
+
11:13.100 --> 11:15.100
|
| 1080 |
+
¿Por qué? Porque no estaban con la buena
|
| 1081 |
+
práctica
|
| 1082 |
+
|
| 1083 |
+
11:15.100 --> 11:16.800
|
| 1084 |
+
de tenerlo encriptado, lo que
|
| 1085 |
+
sea.
|
| 1086 |
+
|
| 1087 |
+
11:16.800 --> 11:18.100
|
| 1088 |
+
¿Qué pasa
|
| 1089 |
+
ahí?
|
| 1090 |
+
|
| 1091 |
+
11:18.100 --> 11:21.300
|
| 1092 |
+
Bueno, tú con C puedes acceder a la
|
| 1093 |
+
memoria de la computadora,
|
| 1094 |
+
|
| 1095 |
+
11:21.300 --> 11:24.900
|
| 1096 |
+
empezar a buscar y puedes encontrar estos
|
| 1097 |
+
exploits,
|
| 1098 |
+
|
| 1099 |
+
11:24.900 --> 11:26.400
|
| 1100 |
+
puedes abusar de
|
| 1101 |
+
ellos
|
| 1102 |
+
|
| 1103 |
+
11:26.400 --> 11:28.700
|
| 1104 |
+
y puedes generar un caos en las computadoras.
|
| 1105 |
+
|
| 1106 |
+
11:28.700 --> 11:32.700
|
| 1107 |
+
De hecho, muchos hackers que de verdad
|
| 1108 |
+
encuentran exploits
|
| 1109 |
+
|
| 1110 |
+
11:32.700 --> 11:35.700
|
| 1111 |
+
a nivel como los que han pasado con los
|
| 1112 |
+
CPUs Intel,
|
| 1113 |
+
|
| 1114 |
+
11:35.700 --> 11:39.000
|
| 1115 |
+
en donde son cosas que pasan durante el
|
| 1116 |
+
tiempo de ejecución
|
| 1117 |
+
|
| 1118 |
+
11:39.000 --> 11:42.100
|
| 1119 |
+
dentro del caché del CPU, cosas de ese estilo,
|
| 1120 |
+
|
| 1121 |
+
11:42.100 --> 11:46.300
|
| 1122 |
+
se hacen con mucho código directo, código C,
|
| 1123 |
+
|
| 1124 |
+
11:46.300 --> 11:48.000
|
| 1125 |
+
que es de mucho más bajo
|
| 1126 |
+
nivel
|
| 1127 |
+
|
| 1128 |
+
11:48.000 --> 11:50.500
|
| 1129 |
+
y les permite tener acceso a estas
|
| 1130 |
+
cosas
|
| 1131 |
+
|
| 1132 |
+
11:50.500 --> 11:52.700
|
| 1133 |
+
que normalmente nunca tendrías
|
| 1134 |
+
acceso
|
| 1135 |
+
|
| 1136 |
+
11:52.700 --> 11:54.300
|
| 1137 |
+
con un lenguaje de alto
|
| 1138 |
+
nivel.
|
| 1139 |
+
|
| 1140 |
+
11:54.300 --> 11:57.900
|
| 1141 |
+
¿Por qué? Porque el intérprete no te
|
| 1142 |
+
dejaría pasar a ello.
|
| 1143 |
+
|
| 1144 |
+
11:57.900 --> 12:01.700
|
| 1145 |
+
Luego, tenemos lenguaje de montaje o
|
| 1146 |
+
lenguaje ensamblador.
|
| 1147 |
+
|
| 1148 |
+
12:01.700 --> 12:05.200
|
| 1149 |
+
El lenguaje ensamblador puede ser el Intel
|
| 1150 |
+
x86,
|
| 1151 |
+
|
| 1152 |
+
12:05.200 --> 12:10.400
|
| 1153 |
+
que son los sets de instrucciones que da
|
| 1154 |
+
el fabricante del CPU.
|
| 1155 |
+
|
| 1156 |
+
12:10.400 --> 12:12.200
|
| 1157 |
+
Entonces, aquí por
|
| 1158 |
+
suerte,
|
| 1159 |
+
|
| 1160 |
+
12:12.200 --> 12:14.200
|
| 1161 |
+
hubo una época en donde se
|
| 1162 |
+
estandarizó
|
| 1163 |
+
|
| 1164 |
+
12:14.200 --> 12:16.200
|
| 1165 |
+
e Intel sacó
|
| 1166 |
+
x86,
|
| 1167 |
+
|
| 1168 |
+
12:16.200 --> 12:19.100
|
| 1169 |
+
que es un set de instrucciones para sus CPUs,
|
| 1170 |
+
|
| 1171 |
+
12:19.100 --> 12:20.800
|
| 1172 |
+
principalmente de 32
|
| 1173 |
+
bits,
|
| 1174 |
+
|
| 1175 |
+
12:20.800 --> 12:22.500
|
| 1176 |
+
y AMD lo adaptó
|
| 1177 |
+
también,
|
| 1178 |
+
|
| 1179 |
+
12:22.500 --> 12:24.500
|
| 1180 |
+
que eran los principales fabricantes de CPUs.
|
| 1181 |
+
|
| 1182 |
+
12:24.500 --> 12:26.700
|
| 1183 |
+
AMD sacó
|
| 1184 |
+
AMD64,
|
| 1185 |
+
|
| 1186 |
+
12:26.700 --> 12:28.700
|
| 1187 |
+
que era una extensión a los
|
| 1188 |
+
sets
|
| 1189 |
+
|
| 1190 |
+
12:28.700 --> 12:32.700
|
| 1191 |
+
o a todo lo que tenían como set de
|
| 1192 |
+
instrucciones de x86,
|
| 1193 |
+
|
| 1194 |
+
12:32.700 --> 12:34.600
|
| 1195 |
+
que había sacado originalmente Intel,
|
| 1196 |
+
|
| 1197 |
+
12:34.600 --> 12:38.500
|
| 1198 |
+
y se volvió el estándar para CPUs de 64 bits.
|
| 1199 |
+
|
| 1200 |
+
12:38.500 --> 12:40.600
|
| 1201 |
+
El hecho de que esto sea
|
| 1202 |
+
estándar
|
| 1203 |
+
|
| 1204 |
+
12:40.600 --> 12:43.800
|
| 1205 |
+
permite que tú tengas una computadora con
|
| 1206 |
+
un CPU AMD
|
| 1207 |
+
|
| 1208 |
+
12:43.800 --> 12:45.400
|
| 1209 |
+
o con un CPU
|
| 1210 |
+
Intel
|
| 1211 |
+
|
| 1212 |
+
12:45.400 --> 12:47.000
|
| 1213 |
+
y que no pase
|
| 1214 |
+
nada
|
| 1215 |
+
|
| 1216 |
+
12:47.000 --> 12:49.300
|
| 1217 |
+
de que tú simplemente puedes instalarle
|
| 1218 |
+
Windows
|
| 1219 |
+
|
| 1220 |
+
12:49.300 --> 12:50.600
|
| 1221 |
+
a cualquiera de las
|
| 1222 |
+
dos
|
| 1223 |
+
|
| 1224 |
+
12:50.600 --> 12:52.800
|
| 1225 |
+
y no tienes que bajarte una versión de
|
| 1226 |
+
Windows
|
| 1227 |
+
|
| 1228 |
+
12:52.800 --> 12:55.200
|
| 1229 |
+
para AMD y una versión de Windows para Intel.
|
| 1230 |
+
|
| 1231 |
+
12:55.200 --> 12:55.900
|
| 1232 |
+
¿Por
|
| 1233 |
+
qué?
|
| 1234 |
+
|
| 1235 |
+
12:55.900 --> 12:58.300
|
| 1236 |
+
Porque todos los CPUs modernos hoy en
|
| 1237 |
+
día
|
| 1238 |
+
|
| 1239 |
+
12:58.300 --> 13:01.800
|
| 1240 |
+
ocupan el set de instrucciones AMD64.
|
| 1241 |
+
|
| 1242 |
+
13:01.800 --> 13:04.100
|
| 1243 |
+
Simple y sencillamente, ese es el estándar.
|
| 1244 |
+
|
| 1245 |
+
13:04.100 --> 13:06.100
|
| 1246 |
+
Tienen interfaces de 64
|
| 1247 |
+
bits
|
| 1248 |
+
|
| 1249 |
+
13:06.100 --> 13:09.100
|
| 1250 |
+
y es lo que tenemos hoy en
|
| 1251 |
+
día.
|
| 1252 |
+
|
| 1253 |
+
13:09.100 --> 13:12.400
|
| 1254 |
+
Antes, cuando existían CPUs en el mercado
|
| 1255 |
+
de 32 bits
|
| 1256 |
+
|
| 1257 |
+
13:12.400 --> 13:15.400
|
| 1258 |
+
y de 64 bits, sí existe
|
| 1259 |
+
software.
|
| 1260 |
+
|
| 1261 |
+
13:15.400 --> 13:18.600
|
| 1262 |
+
De hecho, todavía existe software que te
|
| 1263 |
+
pide forzosamente
|
| 1264 |
+
|
| 1265 |
+
13:18.600 --> 13:21.700
|
| 1266 |
+
que tengas instalado un CPU de 64 bits,
|
| 1267 |
+
|
| 1268 |
+
13:21.700 --> 13:24.000
|
| 1269 |
+
pero no importa si es AMD o
|
| 1270 |
+
Intel.
|
| 1271 |
+
|
| 1272 |
+
13:24.000 --> 13:26.100
|
| 1273 |
+
Aquí quiero que veas la maravilla que
|
| 1274 |
+
pasó
|
| 1275 |
+
|
| 1276 |
+
13:26.100 --> 13:28.400
|
| 1277 |
+
de que se lograron poner de acuerdo dos
|
| 1278 |
+
compañías
|
| 1279 |
+
|
| 1280 |
+
13:28.400 --> 13:29.800
|
| 1281 |
+
que son
|
| 1282 |
+
competencia
|
| 1283 |
+
|
| 1284 |
+
13:29.800 --> 13:31.100
|
| 1285 |
+
y tuvieron un
|
| 1286 |
+
estándar.
|
| 1287 |
+
|
| 1288 |
+
13:31.100 --> 13:33.200
|
| 1289 |
+
Esto nos permite mucha
|
| 1290 |
+
portabilidad
|
| 1291 |
+
|
| 1292 |
+
13:33.200 --> 13:35.500
|
| 1293 |
+
en software a nivel sistema operativo.
|
| 1294 |
+
|
| 1295 |
+
13:35.500 --> 13:38.800
|
| 1296 |
+
Repito, si tú tienes un CPU Intel o un AMD,
|
| 1297 |
+
|
| 1298 |
+
13:38.800 --> 13:41.200
|
| 1299 |
+
no importa, te bajas Windows 10 y lo instalas.
|
| 1300 |
+
|
| 1301 |
+
13:41.200 --> 13:43.400
|
| 1302 |
+
Te bajas Ubuntu y lo
|
| 1303 |
+
instalas.
|
| 1304 |
+
|
| 1305 |
+
13:43.400 --> 13:46.200
|
| 1306 |
+
Ahí, si tienes una computadora muy
|
| 1307 |
+
vieja
|
| 1308 |
+
|
| 1309 |
+
13:46.200 --> 13:47.700
|
| 1310 |
+
que es de 32
|
| 1311 |
+
bits,
|
| 1312 |
+
|
| 1313 |
+
13:47.700 --> 13:49.400
|
| 1314 |
+
entonces sí tienes que
|
| 1315 |
+
buscar
|
| 1316 |
+
|
| 1317 |
+
13:49.400 --> 13:52.100
|
| 1318 |
+
sistemas operativos compatibles a 32 bits,
|
| 1319 |
+
|
| 1320 |
+
13:52.100 --> 13:54.400
|
| 1321 |
+
pero de nuevo, dentro de los de 32 bits,
|
| 1322 |
+
|
| 1323 |
+
13:54.400 --> 13:56.000
|
| 1324 |
+
es decir, de
|
| 1325 |
+
x86,
|
| 1326 |
+
|
| 1327 |
+
13:56.000 --> 13:58.500
|
| 1328 |
+
no importa si es AMD o
|
| 1329 |
+
Intel,
|
| 1330 |
+
|
| 1331 |
+
13:58.500 --> 14:00.300
|
| 1332 |
+
si te bajas un Windows de 32
|
| 1333 |
+
bits,
|
| 1334 |
+
|
| 1335 |
+
14:00.300 --> 14:01.900
|
| 1336 |
+
lo vas a poder instalar
|
| 1337 |
+
ahí.
|
| 1338 |
+
|
| 1339 |
+
14:01.900 --> 14:04.300
|
| 1340 |
+
¿Ok? Todo en orden
|
| 1341 |
+
entonces.
|
| 1342 |
+
|
| 1343 |
+
14:04.300 --> 14:07.200
|
| 1344 |
+
Por último, tenemos representación
|
| 1345 |
+
hexadecimal,
|
| 1346 |
+
|
| 1347 |
+
14:07.200 --> 14:08.400
|
| 1348 |
+
que es el lenguaje
|
| 1349 |
+
máquina.
|
| 1350 |
+
|
| 1351 |
+
14:08.400 --> 14:11.900
|
| 1352 |
+
Esto ya es lo que directamente termina en
|
| 1353 |
+
los archivos finales
|
| 1354 |
+
|
| 1355 |
+
14:11.900 --> 14:13.800
|
| 1356 |
+
para que nuestro sistema
|
| 1357 |
+
operativo
|
| 1358 |
+
|
| 1359 |
+
14:13.800 --> 14:15.500
|
| 1360 |
+
lo pueda
|
| 1361 |
+
interpretar.
|
| 1362 |
+
|
| 1363 |
+
14:15.500 --> 14:17.500
|
| 1364 |
+
Y tenemos el código
|
| 1365 |
+
binario,
|
| 1366 |
+
|
| 1367 |
+
14:17.500 --> 14:20.300
|
| 1368 |
+
que ya es lo único que pueden leer los CPUs.
|
| 1369 |
+
|
| 1370 |
+
14:20.300 --> 14:23.600
|
| 1371 |
+
Los CPUs funcionan a base de
|
| 1372 |
+
transistores
|
| 1373 |
+
|
| 1374 |
+
14:23.600 --> 14:25.800
|
| 1375 |
+
y a base de código binario, ceros y unos.
|
| 1376 |
+
|
| 1377 |
+
14:25.800 --> 14:29.100
|
| 1378 |
+
Eso es todo lo que mueve nuestro mundo actual.
|
| 1379 |
+
|
| 1380 |
+
14:29.100 --> 14:33.200
|
| 1381 |
+
La tecnología, el software, todo es ceros
|
| 1382 |
+
y unos.
|
| 1383 |
+
|
| 1384 |
+
14:33.200 --> 14:35.500
|
| 1385 |
+
Y eso se llama código
|
| 1386 |
+
binario.
|
| 1387 |
+
|
| 1388 |
+
14:36.100 --> 14:39.200
|
| 1389 |
+
Ahora, aquí quiero que veas esta imagen de
|
| 1390 |
+
apoyo.
|
| 1391 |
+
|
| 1392 |
+
14:39.200 --> 14:41.000
|
| 1393 |
+
Recuerda que puedes descargar estos slides.
|
| 1394 |
+
|
| 1395 |
+
14:41.000 --> 14:43.500
|
| 1396 |
+
Aquí tenemos como el nivel del lenguaje,
|
| 1397 |
+
|
| 1398 |
+
14:43.500 --> 14:45.200
|
| 1399 |
+
si es de bajo o alto
|
| 1400 |
+
nivel.
|
| 1401 |
+
|
| 1402 |
+
14:45.200 --> 14:47.800
|
| 1403 |
+
Esto no quiere decir que es un lenguaje
|
| 1404 |
+
malo o bueno, para nada.
|
| 1405 |
+
|
| 1406 |
+
14:47.800 --> 14:49.800
|
| 1407 |
+
Hay un lenguaje para cada aplicación.
|
| 1408 |
+
|
| 1409 |
+
14:49.800 --> 14:51.800
|
| 1410 |
+
Por ejemplo, C y C++ para videojuegos,
|
| 1411 |
+
|
| 1412 |
+
14:51.800 --> 14:54.000
|
| 1413 |
+
C para hardware
|
| 1414 |
+
embedido,
|
| 1415 |
+
|
| 1416 |
+
14:54.000 --> 14:55.600
|
| 1417 |
+
para todo lo que ya te
|
| 1418 |
+
dije,
|
| 1419 |
+
|
| 1420 |
+
14:55.600 --> 14:58.000
|
| 1421 |
+
sistema de desarrollo de drivers para tu
|
| 1422 |
+
computadora,
|
| 1423 |
+
|
| 1424 |
+
14:58.000 --> 15:00.100
|
| 1425 |
+
cuestiones de alto
|
| 1426 |
+
rendimiento.
|
| 1427 |
+
|
| 1428 |
+
15:00.100 --> 15:04.100
|
| 1429 |
+
Y tenemos como Python para todo lo que es
|
| 1430 |
+
data science,
|
| 1431 |
+
|
| 1432 |
+
15:04.100 --> 15:06.900
|
| 1433 |
+
tenemos Python para desarrollo web, sobre
|
| 1434 |
+
todo backend.
|
| 1435 |
+
|
| 1436 |
+
15:06.900 --> 15:08.800
|
| 1437 |
+
Tenemos JavaScript para desarrollo web,
|
| 1438 |
+
|
| 1439 |
+
15:08.800 --> 15:11.100
|
| 1440 |
+
principalmente frontend, también se puede
|
| 1441 |
+
backend.
|
| 1442 |
+
|
| 1443 |
+
15:11.100 --> 15:13.900
|
| 1444 |
+
Tenemos un lenguaje para cada aplicación.
|
| 1445 |
+
|
| 1446 |
+
15:13.900 --> 15:16.300
|
| 1447 |
+
Por favor, nunca te cierres a aprender un
|
| 1448 |
+
solo lenguaje
|
| 1449 |
+
|
| 1450 |
+
15:16.300 --> 15:18.300
|
| 1451 |
+
y querer hacer todo con ese lenguaje.
|
| 1452 |
+
|
| 1453 |
+
15:18.300 --> 15:19.300
|
| 1454 |
+
No.
|
| 1455 |
+
|
| 1456 |
+
15:19.300 --> 15:22.000
|
| 1457 |
+
Aprende un lenguaje según la aplicación
|
| 1458 |
+
que tú tengas.
|
| 1459 |
+
|
| 1460 |
+
15:22.000 --> 15:24.500
|
| 1461 |
+
Total, si entiendes de verdad de computación,
|
| 1462 |
+
|
| 1463 |
+
15:24.500 --> 15:27.000
|
| 1464 |
+
vas a poder entender cualquier
|
| 1465 |
+
lenguaje
|
| 1466 |
+
|
| 1467 |
+
15:27.000 --> 15:29.900
|
| 1468 |
+
porque todos tienen muchos principios muy
|
| 1469 |
+
similares.
|
| 1470 |
+
|
| 1471 |
+
15:29.900 --> 15:31.600
|
| 1472 |
+
Entonces, siguiendo con
|
| 1473 |
+
esto,
|
| 1474 |
+
|
| 1475 |
+
15:31.600 --> 15:34.700
|
| 1476 |
+
vamos a tener que la velocidad de
|
| 1477 |
+
ejecución del programa,
|
| 1478 |
+
|
| 1479 |
+
15:34.700 --> 15:37.100
|
| 1480 |
+
mientras más cercano al
|
| 1481 |
+
hardware,
|
| 1482 |
+
|
| 1483 |
+
15:37.100 --> 15:41.100
|
| 1484 |
+
mientras más cercano al fierro, al CPU de
|
| 1485 |
+
tu computadora,
|
| 1486 |
+
|
| 1487 |
+
15:41.100 --> 15:42.900
|
| 1488 |
+
pues mucho más rápido va a
|
| 1489 |
+
ser
|
| 1490 |
+
|
| 1491 |
+
15:42.900 --> 15:47.100
|
| 1492 |
+
y también la lectura humana más difícil va
|
| 1493 |
+
a ser,
|
| 1494 |
+
|
| 1495 |
+
15:47.100 --> 15:50.600
|
| 1496 |
+
mientras más de bajo nivel sea el lenguaje
|
| 1497 |
+
de programación.
|
| 1498 |
+
|
| 1499 |
+
15:50.600 --> 15:52.400
|
| 1500 |
+
Y mientras más de alto
|
| 1501 |
+
nivel,
|
| 1502 |
+
|
| 1503 |
+
15:52.400 --> 15:54.200
|
| 1504 |
+
la lectura humana va a ser más fácil,
|
| 1505 |
+
|
| 1506 |
+
15:54.200 --> 15:57.000
|
| 1507 |
+
pero el programa va a ser más lento en
|
| 1508 |
+
tiempo de ejecución
|
| 1509 |
+
|
| 1510 |
+
15:57.000 --> 16:00.200
|
| 1511 |
+
y el nivel de lenguaje va a ser más
|
| 1512 |
+
alto
|
| 1513 |
+
|
| 1514 |
+
16:00.200 --> 16:01.800
|
| 1515 |
+
porque así se les denomina.
|
| 1516 |
+
Punto.
|
| 1517 |
+
|
| 1518 |
+
16:01.800 --> 16:03.100
|
| 1519 |
+
En la siguiente
|
| 1520 |
+
clase,
|
| 1521 |
+
|
| 1522 |
+
16:03.100 --> 16:05.800
|
| 1523 |
+
vamos a ver por qué a mí en particular me
|
| 1524 |
+
gusta C
|
| 1525 |
+
|
| 1526 |
+
16:05.800 --> 16:09.100
|
| 1527 |
+
y luego de eso vamos a comenzar a preparar
|
| 1528 |
+
nuestro entorno.
|
| 1529 |
+
|
| 1530 |
+
16:09.100 --> 16:11.100
|
| 1531 |
+
Hasta ahorita, déjame qué dudas tienes,
|
| 1532 |
+
|
| 1533 |
+
16:11.100 --> 16:38.100
|
| 1534 |
+
cuéntame si te emociona el curso y nos
|
| 1535 |
+
vemos en la próxima.
|
| 1536 |
+
|
01-Introducción al lenguaje C/02-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
01-Introducción al lenguaje C/03-Cómo una computadora interpreta datos binarios.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:23c5fedcccadfed370c23e1cd80fedd47234dc8fe530ee6e2de540b8c7ef1d02
|
| 3 |
+
size 87873198
|
01-Introducción al lenguaje C/03-Cómo una computadora interpreta datos binarios.vtt
ADDED
|
@@ -0,0 +1,503 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:08.000
|
| 4 |
+
¡Hey! Bienvenido o bienvenido a esta clase
|
| 5 |
+
pública de nuestro curso de algoritmos en Platzi.
|
| 6 |
+
|
| 7 |
+
00:08.000 --> 00:12.000
|
| 8 |
+
Yo, Ricardo Celis, tu profesor, te voy a
|
| 9 |
+
enseñar en esta clase
|
| 10 |
+
|
| 11 |
+
00:12.000 --> 00:17.000
|
| 12 |
+
cómo entiende las cosas una computadora de
|
| 13 |
+
una forma súper gráfica y rápida.
|
| 14 |
+
|
| 15 |
+
00:17.000 --> 00:19.000
|
| 16 |
+
¿Qué esperas? ¡Comienza a aprender
|
| 17 |
+
ya!
|
| 18 |
+
|
| 19 |
+
00:19.000 --> 00:22.000
|
| 20 |
+
Antes de que comiences este increíble
|
| 21 |
+
curso de algoritmos,
|
| 22 |
+
|
| 23 |
+
00:22.000 --> 00:25.000
|
| 24 |
+
hablemos de para quién le hacemos los
|
| 25 |
+
programas,
|
| 26 |
+
|
| 27 |
+
00:25.000 --> 00:28.000
|
| 28 |
+
quién se va a encargar de ejecutar este
|
| 29 |
+
código que escribimos.
|
| 30 |
+
|
| 31 |
+
00:28.000 --> 00:32.000
|
| 32 |
+
Ese es el hardware o, más específicamente,
|
| 33 |
+
la computadora.
|
| 34 |
+
|
| 35 |
+
00:32.000 --> 00:36.000
|
| 36 |
+
Las computadoras nacen de esta necesidad
|
| 37 |
+
humana
|
| 38 |
+
|
| 39 |
+
00:36.000 --> 00:42.000
|
| 40 |
+
de tener herramientas que nos van a
|
| 41 |
+
permitir hacer nuestros trabajos del día a día más fácilmente,
|
| 42 |
+
|
| 43 |
+
00:42.000 --> 00:48.000
|
| 44 |
+
como las armas para cazar, las
|
| 45 |
+
herramientas para sembrar y construir
|
| 46 |
+
|
| 47 |
+
00:48.000 --> 00:53.000
|
| 48 |
+
que nos permitieron tener mejores
|
| 49 |
+
alimentos y asentarnos como humanidad
|
| 50 |
+
|
| 51 |
+
00:53.000 --> 00:58.000
|
| 52 |
+
o, inclusive, más adelante, como la
|
| 53 |
+
electricidad.
|
| 54 |
+
|
| 55 |
+
00:58.000 --> 01:02.000
|
| 56 |
+
En un principio, las computadoras nos
|
| 57 |
+
ayudaban a trabajar con números
|
| 58 |
+
|
| 59 |
+
01:02.000 --> 01:06.000
|
| 60 |
+
de forma mucho más rápida y eficiente de
|
| 61 |
+
la que nosotros podríamos hacerlo.
|
| 62 |
+
|
| 63 |
+
01:06.000 --> 01:10.000
|
| 64 |
+
Simplemente les dábamos un input, un
|
| 65 |
+
número de input a calcular.
|
| 66 |
+
|
| 67 |
+
01:10.000 --> 01:12.000
|
| 68 |
+
Esta sería la
|
| 69 |
+
entrada.
|
| 70 |
+
|
| 71 |
+
01:12.000 --> 01:15.000
|
| 72 |
+
La computadora almacenaba la información,
|
| 73 |
+
|
| 74 |
+
01:15.000 --> 01:18.000
|
| 75 |
+
le solicitábamos las operaciones que
|
| 76 |
+
necesitamos,
|
| 77 |
+
|
| 78 |
+
01:18.000 --> 01:22.000
|
| 79 |
+
luego, con una serie de pasos previamente
|
| 80 |
+
definidos,
|
| 81 |
+
|
| 82 |
+
01:22.000 --> 01:27.000
|
| 83 |
+
procesaban la información y nos generaban
|
| 84 |
+
un resultado de salida.
|
| 85 |
+
|
| 86 |
+
01:27.000 --> 01:31.000
|
| 87 |
+
Hoy en día, las computadoras han avanzado
|
| 88 |
+
a pasos agigantados,
|
| 89 |
+
|
| 90 |
+
01:31.000 --> 01:34.000
|
| 91 |
+
permitiéndonos tener teléfonos inteligentes,
|
| 92 |
+
|
| 93 |
+
01:34.000 --> 01:38.000
|
| 94 |
+
altavoces con asistentes de voz, vehículos
|
| 95 |
+
que se manejan solos
|
| 96 |
+
|
| 97 |
+
01:38.000 --> 01:42.000
|
| 98 |
+
e, inclusive, robots que llegan a Marte.
|
| 99 |
+
|
| 100 |
+
01:42.000 --> 01:47.000
|
| 101 |
+
Estos dispositivos que mencionamos no
|
| 102 |
+
manejan solamente números y operaciones matemáticas.
|
| 103 |
+
|
| 104 |
+
01:47.000 --> 01:52.000
|
| 105 |
+
No, puedes manejar foto, video, juegos,
|
| 106 |
+
música, etc.
|
| 107 |
+
|
| 108 |
+
01:52.000 --> 01:54.000
|
| 109 |
+
¿Cómo lo hacen?
|
| 110 |
+
Veamos.
|
| 111 |
+
|
| 112 |
+
01:54.000 --> 01:57.000
|
| 113 |
+
Hablemos de lo que ocurre dentro de una
|
| 114 |
+
computadora.
|
| 115 |
+
|
| 116 |
+
01:57.000 --> 02:01.000
|
| 117 |
+
Y seguramente has visto en películas o
|
| 118 |
+
series que cuando está ocurriendo
|
| 119 |
+
|
| 120 |
+
02:01.000 --> 02:04.000
|
| 121 |
+
algún proceso en la pantalla, puedes ver
|
| 122 |
+
ceros y unos.
|
| 123 |
+
|
| 124 |
+
02:04.000 --> 02:07.000
|
| 125 |
+
Esto que has visto son los números binarios.
|
| 126 |
+
|
| 127 |
+
02:07.000 --> 02:10.000
|
| 128 |
+
Y aunque ya nadie escribe programas en
|
| 129 |
+
binario,
|
| 130 |
+
|
| 131 |
+
02:10.000 --> 02:14.000
|
| 132 |
+
estos son el tipo de señales que existen
|
| 133 |
+
dentro de tu computadora.
|
| 134 |
+
|
| 135 |
+
02:14.000 --> 02:19.000
|
| 136 |
+
Piensa en el cable que conecta el
|
| 137 |
+
interruptor de luz de tu habitación con la lámpara.
|
| 138 |
+
|
| 139 |
+
02:19.000 --> 02:22.000
|
| 140 |
+
Este cable puede tener dos
|
| 141 |
+
estados.
|
| 142 |
+
|
| 143 |
+
02:22.000 --> 02:25.000
|
| 144 |
+
Este puede ser ON, que sería un
|
| 145 |
+
1,
|
| 146 |
+
|
| 147 |
+
02:25.000 --> 02:28.000
|
| 148 |
+
u OFF, que sería un
|
| 149 |
+
0.
|
| 150 |
+
|
| 151 |
+
02:28.000 --> 02:32.000
|
| 152 |
+
Así puedes representar un sí o un no,
|
| 153 |
+
un ON o un OFF,
|
| 154 |
+
|
| 155 |
+
02:32.000 --> 02:34.000
|
| 156 |
+
un true o false en
|
| 157 |
+
computación.
|
| 158 |
+
|
| 159 |
+
02:34.000 --> 02:38.000
|
| 160 |
+
Dentro de una computadora tenemos millones
|
| 161 |
+
de dispositivos electrónicos,
|
| 162 |
+
|
| 163 |
+
02:38.000 --> 02:40.000
|
| 164 |
+
conocidos como
|
| 165 |
+
transistores,
|
| 166 |
+
|
| 167 |
+
02:40.000 --> 02:46.000
|
| 168 |
+
que van a almacenar estos ceros o unos,
|
| 169 |
+
tal como lo hiciera el cable en nuestro ejemplo anterior.
|
| 170 |
+
|
| 171 |
+
02:46.000 --> 02:49.000
|
| 172 |
+
A este dato que puede valer 0 o
|
| 173 |
+
1,
|
| 174 |
+
|
| 175 |
+
02:49.000 --> 02:52.000
|
| 176 |
+
se le conoce en computación como un
|
| 177 |
+
bit
|
| 178 |
+
|
| 179 |
+
02:52.000 --> 02:55.000
|
| 180 |
+
y es la unidad mínima de información que
|
| 181 |
+
podemos manejar.
|
| 182 |
+
|
| 183 |
+
02:55.000 --> 02:58.000
|
| 184 |
+
Y los cables, bueno, los cables dentro de
|
| 185 |
+
un circuito
|
| 186 |
+
|
| 187 |
+
02:58.000 --> 03:02.000
|
| 188 |
+
solamente se van a encargar de llevar la
|
| 189 |
+
información de un lado a otro.
|
| 190 |
+
|
| 191 |
+
03:02.000 --> 03:07.000
|
| 192 |
+
Las computadoras utilizan transistores en
|
| 193 |
+
diferentes acomodos
|
| 194 |
+
|
| 195 |
+
03:07.000 --> 03:11.000
|
| 196 |
+
para poder hacer todas las funcionalidades
|
| 197 |
+
que necesitan,
|
| 198 |
+
|
| 199 |
+
03:11.000 --> 03:14.000
|
| 200 |
+
almacenar información, hacer operaciones y
|
| 201 |
+
más.
|
| 202 |
+
|
| 203 |
+
03:14.000 --> 03:17.000
|
| 204 |
+
A continuación veremos cómo ocurre eso.
|
| 205 |
+
|
| 206 |
+
03:17.000 --> 03:23.000
|
| 207 |
+
La base que se utiliza para poder tener
|
| 208 |
+
números, imágenes, textos y audios
|
| 209 |
+
|
| 210 |
+
03:23.000 --> 03:27.000
|
| 211 |
+
con este sistema de sólo valores como 0 y 1,
|
| 212 |
+
es el sistema binario.
|
| 213 |
+
|
| 214 |
+
03:27.000 --> 03:29.000
|
| 215 |
+
Vamos a ver cómo
|
| 216 |
+
funciona.
|
| 217 |
+
|
| 218 |
+
03:29.000 --> 03:33.000
|
| 219 |
+
Nosotros estamos acostumbrados a trabajar
|
| 220 |
+
con el número decimal.
|
| 221 |
+
|
| 222 |
+
03:33.000 --> 03:36.000
|
| 223 |
+
Por ejemplo, este número sería el número 12.
|
| 224 |
+
|
| 225 |
+
03:36.000 --> 03:40.000
|
| 226 |
+
O este otro número sería el número 48.
|
| 227 |
+
|
| 228 |
+
03:40.000 --> 03:44.000
|
| 229 |
+
En número binario nosotros no vamos a
|
| 230 |
+
funcionar así.
|
| 231 |
+
|
| 232 |
+
03:44.000 --> 03:47.000
|
| 233 |
+
En número decimal tenemos, por ejemplo,
|
| 234 |
+
los miles,
|
| 235 |
+
|
| 236 |
+
03:47.000 --> 03:52.000
|
| 237 |
+
tenemos cientos, tenemos decimales y
|
| 238 |
+
tenemos unidades.
|
| 239 |
+
|
| 240 |
+
03:52.000 --> 03:59.000
|
| 241 |
+
Entonces este número son mil, doscientos,
|
| 242 |
+
cuarenta y ocho unidades.
|
| 243 |
+
|
| 244 |
+
03:59.000 --> 04:05.000
|
| 245 |
+
En el sistema binario, en cambio, nosotros
|
| 246 |
+
solamente vamos a poder utilizar 0 y 1.
|
| 247 |
+
|
| 248 |
+
04:05.000 --> 04:11.000
|
| 249 |
+
Entonces podemos tener combinaciones
|
| 250 |
+
numéricas que sean como la siguiente.
|
| 251 |
+
|
| 252 |
+
04:11.000 --> 04:13.000
|
| 253 |
+
1, 1,
|
| 254 |
+
1.
|
| 255 |
+
|
| 256 |
+
04:13.000 --> 04:18.000
|
| 257 |
+
En sistema binario la primera posición
|
| 258 |
+
vale 1 y se van multiplicando por 2 cada vez.
|
| 259 |
+
|
| 260 |
+
04:18.000 --> 04:21.000
|
| 261 |
+
Entonces la segunda posición son 2, la
|
| 262 |
+
tercera posición son 4
|
| 263 |
+
|
| 264 |
+
04:21.000 --> 04:25.000
|
| 265 |
+
y la cuarta posición sería
|
| 266 |
+
8.
|
| 267 |
+
|
| 268 |
+
04:25.000 --> 04:29.000
|
| 269 |
+
Por ejemplo, este número binario que acabo
|
| 270 |
+
de formar aquí sería 8,
|
| 271 |
+
|
| 272 |
+
04:29.000 --> 04:34.000
|
| 273 |
+
más 4, 12, más 2, 14, más 1,
|
| 274 |
+
15.
|
| 275 |
+
|
| 276 |
+
04:34.000 --> 04:37.000
|
| 277 |
+
Hemos formado el número 15 en binario.
|
| 278 |
+
|
| 279 |
+
04:37.000 --> 04:41.000
|
| 280 |
+
Ahora que ya sabes cómo la computadora
|
| 281 |
+
puede entender los números binarios,
|
| 282 |
+
|
| 283 |
+
04:41.000 --> 04:44.000
|
| 284 |
+
quizás te estás preguntando, ¿y las letras
|
| 285 |
+
de dónde salen?
|
| 286 |
+
|
| 287 |
+
04:44.000 --> 04:47.000
|
| 288 |
+
Existen convenciones, como el código ASCII,
|
| 289 |
+
|
| 290 |
+
04:47.000 --> 04:51.000
|
| 291 |
+
que nos dice que cada letra va a tener un
|
| 292 |
+
valor numérico.
|
| 293 |
+
|
| 294 |
+
04:51.000 --> 04:54.000
|
| 295 |
+
Por ejemplo, la letra T en valor decimal
|
| 296 |
+
va a ser 84
|
| 297 |
+
|
| 298 |
+
04:54.000 --> 04:58.000
|
| 299 |
+
y si tú presionas Alt 84 en tu computadora,
|
| 300 |
+
|
| 301 |
+
04:58.000 --> 05:01.000
|
| 302 |
+
vas a poder ver cómo se escribe el carácter T.
|
| 303 |
+
|
| 304 |
+
05:01.000 --> 05:06.000
|
| 305 |
+
Luego, la computadora no entiende el
|
| 306 |
+
número 84 porque está usando el sistema decimal,
|
| 307 |
+
|
| 308 |
+
05:06.000 --> 05:09.000
|
| 309 |
+
pero la computadora sí va a entender el
|
| 310 |
+
siguiente número,
|
| 311 |
+
|
| 312 |
+
05:09.000 --> 05:20.000
|
| 313 |
+
que sería 0, 0, 1, 0, 1, 0,
|
| 314 |
+
1.
|
| 315 |
+
|
| 316 |
+
05:20.000 --> 05:26.000
|
| 317 |
+
Este número decimal de 8 bits, 1, 2, 3, 4, 5,
|
| 318 |
+
6, 7
|
| 319 |
+
|
| 320 |
+
05:26.000 --> 05:30.000
|
| 321 |
+
y un bit de más que no estamos ocupando,
|
| 322 |
+
un 0 a la izquierda que no cuenta,
|
| 323 |
+
|
| 324 |
+
05:30.000 --> 05:34.000
|
| 325 |
+
es un número que nos permite almacenar un
|
| 326 |
+
carácter.
|
| 327 |
+
|
| 328 |
+
05:34.000 --> 05:37.000
|
| 329 |
+
Entonces, acabas de ver cómo las
|
| 330 |
+
computadoras manejan
|
| 331 |
+
|
| 332 |
+
05:37.000 --> 05:40.000
|
| 333 |
+
de binario a
|
| 334 |
+
letras.
|
| 335 |
+
|
| 336 |
+
05:40.000 --> 05:45.000
|
| 337 |
+
Ahora, un documento de texto no es otra
|
| 338 |
+
cosa más que una colección de caracteres
|
| 339 |
+
|
| 340 |
+
05:45.000 --> 05:49.000
|
| 341 |
+
que no son otra cosa más que ceros y unos
|
| 342 |
+
que la computadora puede entender.
|
| 343 |
+
|
| 344 |
+
05:49.000 --> 05:54.000
|
| 345 |
+
Una imagen va a ser la representación de
|
| 346 |
+
muchos pixeles juntos
|
| 347 |
+
|
| 348 |
+
05:54.000 --> 05:58.000
|
| 349 |
+
y cada uno de estos pixeles va a tener
|
| 350 |
+
ciertas características.
|
| 351 |
+
|
| 352 |
+
05:58.000 --> 06:01.000
|
| 353 |
+
Así como existe el estándar para los
|
| 354 |
+
caracteres,
|
| 355 |
+
|
| 356 |
+
06:01.000 --> 06:03.000
|
| 357 |
+
tenemos estándares para las imágenes,
|
| 358 |
+
|
| 359 |
+
06:03.000 --> 06:08.000
|
| 360 |
+
que te van a decir que vas a tener una
|
| 361 |
+
colección de, por ejemplo,
|
| 362 |
+
|
| 363 |
+
06:08.000 --> 06:11.000
|
| 364 |
+
imagínate que cada una de estas líneas es
|
| 365 |
+
un pixel
|
| 366 |
+
|
| 367 |
+
06:11.000 --> 06:13.000
|
| 368 |
+
y este pixel va a tener
|
| 369 |
+
colores.
|
| 370 |
+
|
| 371 |
+
06:13.000 --> 06:17.000
|
| 372 |
+
Estos colores van a estar representados
|
| 373 |
+
con ceros y unos
|
| 374 |
+
|
| 375 |
+
06:17.000 --> 06:21.000
|
| 376 |
+
que la computadora puede almacenar y
|
| 377 |
+
entender el mismo.
|
| 378 |
+
|
| 379 |
+
06:21.000 --> 06:25.000
|
| 380 |
+
Entonces, ahora cuando escuches una imagen
|
| 381 |
+
que tiene tantos megapixeles,
|
| 382 |
+
|
| 383 |
+
06:25.000 --> 06:28.000
|
| 384 |
+
eso significa tantos millones de
|
| 385 |
+
pixeles
|
| 386 |
+
|
| 387 |
+
06:28.000 --> 06:33.000
|
| 388 |
+
y cada uno de esos millones de pixeles va
|
| 389 |
+
a ser información en binario
|
| 390 |
+
|
| 391 |
+
06:33.000 --> 06:37.000
|
| 392 |
+
que pintan la imagen de un color y la
|
| 393 |
+
colección de todos los colores
|
| 394 |
+
|
| 395 |
+
06:37.000 --> 06:40.000
|
| 396 |
+
forman la fotografía, el dibujo o el diseño.
|
| 397 |
+
|
| 398 |
+
06:40.000 --> 06:43.000
|
| 399 |
+
Esto mismo aplica, por ejemplo, para un video,
|
| 400 |
+
|
| 401 |
+
06:43.000 --> 06:47.000
|
| 402 |
+
que además de que tiene imágenes una por una,
|
| 403 |
+
|
| 404 |
+
06:47.000 --> 06:51.000
|
| 405 |
+
junta 24 imágenes por segundo al menos,
|
| 406 |
+
o 60 o 120
|
| 407 |
+
|
| 408 |
+
06:51.000 --> 06:54.000
|
| 409 |
+
y las guarda en otro formato
|
| 410 |
+
más.
|
| 411 |
+
|
| 412 |
+
06:54.000 --> 06:56.000
|
| 413 |
+
Pero al final, ¿qué está usando? Imágenes.
|
| 414 |
+
|
| 415 |
+
06:56.000 --> 07:00.000
|
| 416 |
+
Y al final, cada una de esas imágenes se
|
| 417 |
+
descompone en ceros y unos.
|
| 418 |
+
|
| 419 |
+
07:00.000 --> 07:03.000
|
| 420 |
+
¿Y la música? ¿Qué pasa con la
|
| 421 |
+
música?
|
| 422 |
+
|
| 423 |
+
07:03.000 --> 07:07.000
|
| 424 |
+
Bueno, la música son archivos que tú
|
| 425 |
+
almacenas en tu computadora
|
| 426 |
+
|
| 427 |
+
07:07.000 --> 07:10.000
|
| 428 |
+
que son representaciones, efectivamente,
|
| 429 |
+
en binario
|
| 430 |
+
|
| 431 |
+
07:10.000 --> 07:14.000
|
| 432 |
+
de cuál es el valor que debe estar
|
| 433 |
+
reproduciendo la computadora.
|
| 434 |
+
|
| 435 |
+
07:14.000 --> 07:17.000
|
| 436 |
+
Ahora, con todo esto claro, hablemos de
|
| 437 |
+
los programas.
|
| 438 |
+
|
| 439 |
+
07:17.000 --> 07:20.000
|
| 440 |
+
El software son las series de
|
| 441 |
+
instrucciones
|
| 442 |
+
|
| 443 |
+
07:20.000 --> 07:22.000
|
| 444 |
+
que tú le vas a dar a la
|
| 445 |
+
computadora
|
| 446 |
+
|
| 447 |
+
07:22.000 --> 07:25.000
|
| 448 |
+
para que esta pueda llevar a cabo los
|
| 449 |
+
procesos.
|
| 450 |
+
|
| 451 |
+
07:25.000 --> 07:28.000
|
| 452 |
+
El flujo que todo programa va a
|
| 453 |
+
seguir
|
| 454 |
+
|
| 455 |
+
07:28.000 --> 07:31.000
|
| 456 |
+
es el de tener un input, una entrada,
|
| 457 |
+
¿cierto?
|
| 458 |
+
|
| 459 |
+
07:31.000 --> 07:35.000
|
| 460 |
+
Vamos a tener un CPU y una
|
| 461 |
+
memoria
|
| 462 |
+
|
| 463 |
+
07:35.000 --> 07:38.000
|
| 464 |
+
que se van a encargar de comunicar para
|
| 465 |
+
hacer todo el trabajo
|
| 466 |
+
|
| 467 |
+
07:38.000 --> 07:40.000
|
| 468 |
+
de procesar la información, guardar variables,
|
| 469 |
+
|
| 470 |
+
07:40.000 --> 07:42.000
|
| 471 |
+
mantener la información
|
| 472 |
+
correcta
|
| 473 |
+
|
| 474 |
+
07:42.000 --> 07:46.000
|
| 475 |
+
y después procesar un resultado final.
|
| 476 |
+
|
| 477 |
+
07:46.000 --> 07:49.000
|
| 478 |
+
Estos resultados finales son los que vas a
|
| 479 |
+
aprender a generar
|
| 480 |
+
|
| 481 |
+
07:49.000 --> 07:52.000
|
| 482 |
+
en el curso de Algoritmos y Estructuras de
|
| 483 |
+
Datos.
|
| 484 |
+
|
| 485 |
+
07:52.000 --> 07:55.000
|
| 486 |
+
En este curso aprenderás a enseñarle a la
|
| 487 |
+
computadora
|
| 488 |
+
|
| 489 |
+
07:55.000 --> 07:59.000
|
| 490 |
+
los pasos a seguir para resolver problemas
|
| 491 |
+
simples o complejos
|
| 492 |
+
|
| 493 |
+
07:59.000 --> 08:02.000
|
| 494 |
+
y quitarte el miedo a cualquier
|
| 495 |
+
desafío
|
| 496 |
+
|
| 497 |
+
08:02.000 --> 08:04.000
|
| 498 |
+
que tengas en tu vida
|
| 499 |
+
profesional.
|
| 500 |
+
|
| 501 |
+
08:04.000 --> 08:19.000
|
| 502 |
+
Nos vemos en el curso de Algoritmos.
|
| 503 |
+
|
01-Introducción al lenguaje C/03-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://platzi.com/clases/ordenamiento/
|
01-Introducción al lenguaje C/03-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
01-Introducción al lenguaje C/04-Fundamentos del Lenguaje C para Microcontroladores.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:5c08b6bfd2b8ccbd30a7358aa43f9fab84019a462cd0e8de1dfb492da87907f1
|
| 3 |
+
size 57208899
|
01-Introducción al lenguaje C/04-Fundamentos del Lenguaje C para Microcontroladores.vtt
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:08.580
|
| 4 |
+
Hola, aquí te quiero contar porque a mí me
|
| 5 |
+
parece que sé, deberías aprenderlo y aquí
|
| 6 |
+
|
| 7 |
+
00:08.580 --> 00:13.700
|
| 8 |
+
esta es la clase que yo digo quiero que
|
| 9 |
+
digas ok, me quedo aquí. A partir de esta clase todo va a
|
| 10 |
+
|
| 11 |
+
00:13.700 --> 00:17.640
|
| 12 |
+
ser práctico, vamos a aprender todo sobre
|
| 13 |
+
el lenguaje, pero de verdad quiero contarte esto
|
| 14 |
+
|
| 15 |
+
00:17.640 --> 00:23.100
|
| 16 |
+
porque tiene mucho valor. Lo primero que
|
| 17 |
+
te quiero decir es que sé es un lenguaje que ayuda a entender
|
| 18 |
+
|
| 19 |
+
00:23.100 --> 00:28.660
|
| 20 |
+
los fundamentos de teoría de computación.
|
| 21 |
+
¿Cómo así? Y mira, aquí te quiero hablar desde mi
|
| 22 |
+
|
| 23 |
+
00:28.660 --> 00:35.220
|
| 24 |
+
experiencia. Yo aprendí computación,
|
| 25 |
+
aprendí sobre desarrollo de software, aprendí todo esto,
|
| 26 |
+
|
| 27 |
+
00:35.220 --> 00:40.540
|
| 28 |
+
aprendí sobre programación porque
|
| 29 |
+
programaba microcontroladores. Los microcontroladores son
|
| 30 |
+
|
| 31 |
+
00:40.540 --> 00:45.980
|
| 32 |
+
estas pequeñas computadoras que valen
|
| 33 |
+
desde 20 centavos de dólar hasta 10, 15 o 20 dólares,
|
| 34 |
+
|
| 35 |
+
00:45.980 --> 00:51.820
|
| 36 |
+
que se ocupan en todo. Por ejemplo, en el
|
| 37 |
+
control de tu lavadora, en una cámara, en celulares, en
|
| 38 |
+
|
| 39 |
+
00:51.820 --> 00:57.140
|
| 40 |
+
tableros de coches, de verdad están en
|
| 41 |
+
todo lado que tenga cierto código, que tenga cierto nivel
|
| 42 |
+
|
| 43 |
+
00:57.140 --> 01:01.660
|
| 44 |
+
de software en donde puedas configurar algo,
|
| 45 |
+
presionar botones, pero que no llegue a tener
|
| 46 |
+
|
| 47 |
+
01:01.660 --> 01:07.300
|
| 48 |
+
la necesidad de mucho procesamiento.
|
| 49 |
+
Por ejemplo, la cámara, una cámara fotográfica va a tener un
|
| 50 |
+
|
| 51 |
+
01:07.300 --> 01:13.340
|
| 52 |
+
CPU muy poderoso que se encarga de
|
| 53 |
+
procesar las imágenes digitales de vídeo que capta el sensor,
|
| 54 |
+
|
| 55 |
+
01:13.340 --> 01:17.420
|
| 56 |
+
pero además puede tener microcontroladores
|
| 57 |
+
para todo lo que es el manejo de botones,
|
| 58 |
+
|
| 59 |
+
01:17.420 --> 01:22.340
|
| 60 |
+
un microcontrolador podría sin problema
|
| 61 |
+
controlar el motor que se encarga del autofocus en una
|
| 62 |
+
|
| 63 |
+
01:22.340 --> 01:27.660
|
| 64 |
+
cámara, detectar cuando se presionó el
|
| 65 |
+
obturador, porque son cámaras digitales hoy en día y aunque
|
| 66 |
+
|
| 67 |
+
01:27.660 --> 01:32.780
|
| 68 |
+
el obturador te da una sensación de ser
|
| 69 |
+
algo mecánico, en realidad es 100% digital y esto
|
| 70 |
+
|
| 71 |
+
01:32.780 --> 01:40.700
|
| 72 |
+
te permite tener mucho código en las cosas,
|
| 73 |
+
te permite meterle el código a lo que sea,
|
| 74 |
+
|
| 75 |
+
01:40.700 --> 01:44.500
|
| 76 |
+
casi de verdad podrías hacer con un
|
| 77 |
+
microcontrolador un regador de plantas automático,
|
| 78 |
+
|
| 79 |
+
01:44.500 --> 01:49.380
|
| 80 |
+
un alimentador de gatos automático, o que
|
| 81 |
+
tu refrigerador se conecte a wifi, o que tu
|
| 82 |
+
|
| 83 |
+
01:49.380 --> 01:53.980
|
| 84 |
+
refrigerador se conecte a bluetooth y te
|
| 85 |
+
avise cuál es la temperatura y si hay partículas
|
| 86 |
+
|
| 87 |
+
01:53.980 --> 02:00.340
|
| 88 |
+
contaminantes ahí a través de sensores o
|
| 89 |
+
gases, lo que quieras. Y estos microcontroladores son
|
| 90 |
+
|
| 91 |
+
02:00.340 --> 02:05.260
|
| 92 |
+
como computadoras a escala pero que no
|
| 93 |
+
tienen un sistema operativo y al no tener un sistema
|
| 94 |
+
|
| 95 |
+
02:05.260 --> 02:09.660
|
| 96 |
+
operativo yo tenía que programar todo,
|
| 97 |
+
yo tenía que programar cómo iba a accesar a la memoria,
|
| 98 |
+
|
| 99 |
+
02:09.660 --> 02:14.540
|
| 100 |
+
cuáles iban a ser las entradas, cuáles
|
| 101 |
+
iban a ser las salidas de mi programa, todo esto lo
|
| 102 |
+
|
| 103 |
+
02:14.540 --> 02:21.620
|
| 104 |
+
hacía yo a través de puro código C y el
|
| 105 |
+
hecho de que se utilice C es porque se te permite tener
|
| 106 |
+
|
| 107 |
+
02:21.620 --> 02:26.780
|
| 108 |
+
acceso al control de memoria de un programa,
|
| 109 |
+
por ejemplo tiene muchas cosas de bajo nivel que son
|
| 110 |
+
|
| 111 |
+
02:26.780 --> 02:32.300
|
| 112 |
+
excelentes para esto y por eso aquí quiero
|
| 113 |
+
decirte que C es un lenguaje que te va a ayudar a entender
|
| 114 |
+
|
| 115 |
+
02:32.300 --> 02:37.340
|
| 116 |
+
los fundamentos de teoría de computación,
|
| 117 |
+
si te sigues con este curso y los siguientes de lenguaje
|
| 118 |
+
|
| 119 |
+
02:37.340 --> 02:43.140
|
| 120 |
+
te aseguro que vas a entender mucho más a
|
| 121 |
+
fondo cómo funciona la memoria, qué es un stack overflow,
|
| 122 |
+
|
| 123 |
+
02:43.140 --> 02:49.540
|
| 124 |
+
que estoy muy seguro que has escuchado ese
|
| 125 |
+
sitio web cuando tienes algún bug en tu código o algo
|
| 126 |
+
|
| 127 |
+
02:49.540 --> 02:54.500
|
| 128 |
+
por el estilo, vas a stack overflow,
|
| 129 |
+
revisas qué está pasando, encuentras la solución, la copias,
|
| 130 |
+
|
| 131 |
+
02:54.500 --> 03:00.980
|
| 132 |
+
la pegas en tu programa, se vale y ya,
|
| 133 |
+
pero qué significa un stack overflow, con C puedes entender
|
| 134 |
+
|
| 135 |
+
03:00.980 --> 03:06.380
|
| 136 |
+
de verdad qué significa un stack overflow
|
| 137 |
+
y verlo verlo suceder, vamos a entender cuestiones como
|
| 138 |
+
|
| 139 |
+
03:06.380 --> 03:11.220
|
| 140 |
+
todo lo que son apuntadores, todo lo que
|
| 141 |
+
son operadores a nivel de bits, vamos a entender
|
| 142 |
+
|
| 143 |
+
03:11.220 --> 03:17.340
|
| 144 |
+
cosas de teoría de computación que un
|
| 145 |
+
lenguaje de alto nivel no nos permite porque no se meten con
|
| 146 |
+
|
| 147 |
+
03:17.340 --> 03:23.260
|
| 148 |
+
estas cosas y te van a servir muchísimo si
|
| 149 |
+
quieres de verdad, no sé, en un futuro llegar a ser
|
| 150 |
+
|
| 151 |
+
03:23.260 --> 03:28.480
|
| 152 |
+
compiladores, en un futuro de ser un
|
| 153 |
+
verdadero científico de computación, así que eso es lo que
|
| 154 |
+
|
| 155 |
+
03:28.480 --> 03:34.260
|
| 156 |
+
vamos a ir logrando con estos cursos de C.
|
| 157 |
+
Luego C tiene pocas librerías principalmente porque
|
| 158 |
+
|
| 159 |
+
03:34.260 --> 03:39.500
|
| 160 |
+
cuando se desarrolló no existía todo esto,
|
| 161 |
+
lo que son comunidades de desarrollo, muchos conceptos,
|
| 162 |
+
|
| 163 |
+
03:39.500 --> 03:46.180
|
| 164 |
+
por ejemplo yo aprendí en un libro todavía
|
| 165 |
+
y creo que es una gran forma de aprenderlo, pero no tiene
|
| 166 |
+
|
| 167 |
+
03:46.180 --> 03:51.140
|
| 168 |
+
muchas librerías, es decir, si tú quieres
|
| 169 |
+
desarrollar una aplicación específica probablemente te toque
|
| 170 |
+
|
| 171 |
+
03:51.140 --> 03:56.540
|
| 172 |
+
hacer las librerías a ti y eso es lo que a
|
| 173 |
+
nosotros justo nos pasaba cuando programamos robots o con
|
| 174 |
+
|
| 175 |
+
03:56.540 --> 04:01.300
|
| 176 |
+
microcontroladores y es que no había una
|
| 177 |
+
librería para control de motores, no había una librería
|
| 178 |
+
|
| 179 |
+
04:01.300 --> 04:06.780
|
| 180 |
+
para control de sensores y nosotros
|
| 181 |
+
aprendíamos cómo desarrollar esto desde cero, es maravilloso,
|
| 182 |
+
|
| 183 |
+
04:06.780 --> 04:13.140
|
| 184 |
+
porque de verdad entiendes más cómo están
|
| 185 |
+
pasando las cosas, llegas a tener mucho mayor comprensión
|
| 186 |
+
|
| 187 |
+
04:13.140 --> 04:17.940
|
| 188 |
+
de lo que está pasando adentro de, que de
|
| 189 |
+
hecho en Platzi nos encanta que tú sepas qué hay detrás
|
| 190 |
+
|
| 191 |
+
04:17.940 --> 04:22.940
|
| 192 |
+
de las cosas, por eso tenemos un curso
|
| 193 |
+
como el curso taller de creación de single page
|
| 194 |
+
|
| 195 |
+
04:22.940 --> 04:27.700
|
| 196 |
+
application router en donde te enseño cómo
|
| 197 |
+
funcionaría un router por dentro sin utilizar
|
| 198 |
+
|
| 199 |
+
04:27.700 --> 04:32.700
|
| 200 |
+
ninguna librería, utilizando javascript puro,
|
| 201 |
+
si te interesa javascript pues vete para allá, bueno,
|
| 202 |
+
|
| 203 |
+
04:32.700 --> 04:38.340
|
| 204 |
+
además C es el lenguaje más utilizado en
|
| 205 |
+
programación de circuitos embebidos, lo que ya te
|
| 206 |
+
|
| 207 |
+
04:38.340 --> 04:43.500
|
| 208 |
+
hablé mucho en este curso, todo lo que son
|
| 209 |
+
microcontroladores hasta arduino lo puedes programar
|
| 210 |
+
|
| 211 |
+
04:43.500 --> 04:48.940
|
| 212 |
+
con este lenguaje de programación C que de
|
| 213 |
+
verdad es maravilloso y te va a permitir hacer cosas que
|
| 214 |
+
|
| 215 |
+
04:48.940 --> 04:53.420
|
| 216 |
+
no te imaginas gracias a poder trabajar
|
| 217 |
+
con hardware y aquí te recomiendo el curso de
|
| 218 |
+
|
| 219 |
+
04:53.420 --> 04:59.140
|
| 220 |
+
microcontroladores con C. Por último C es
|
| 221 |
+
muy rápido en tiempo de ejecución, si de verdad tienes
|
| 222 |
+
|
| 223 |
+
04:59.140 --> 05:05.020
|
| 224 |
+
que hacer algo en donde el tiempo es
|
| 225 |
+
crucial entonces deberías irte por el lenguaje C,
|
| 226 |
+
|
| 227 |
+
05:05.020 --> 05:30.020
|
| 228 |
+
no hay de otra, con esto dicho nos vemos
|
| 229 |
+
en la próxima clase.
|
| 230 |
+
|
01-Introducción al lenguaje C/04-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://platzi.com/clases/singlepage-app/
|
01-Introducción al lenguaje C/04-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
01-Introducción al lenguaje C/05-Configuración de Entorno para Programar en C en Windows.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b741cf06e400a03e8e70777cae51c6364d780a44d9c4b5da3adf78cca9ffcbd1
|
| 3 |
+
size 106875441
|
01-Introducción al lenguaje C/05-Configuración de Entorno para Programar en C en Windows.vtt
ADDED
|
@@ -0,0 +1,374 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:08.440
|
| 4 |
+
Hola, en esta clase vamos a preparar
|
| 5 |
+
nuestro entorno de trabajo para poder programar C,
|
| 6 |
+
|
| 7 |
+
00:08.440 --> 00:12.360
|
| 8 |
+
para poder ejecutar nuestro código. Ya sabes,
|
| 9 |
+
tenemos que escribirlo,
|
| 10 |
+
|
| 11 |
+
00:12.360 --> 00:17.600
|
| 12 |
+
luego tendremos que compilarlo y luego
|
| 13 |
+
pasaremos a ver qué nos dice nuestro código cuando se ejecute.
|
| 14 |
+
|
| 15 |
+
00:17.600 --> 00:21.600
|
| 16 |
+
Para esto, lo primero es que quiero que me
|
| 17 |
+
acompañes a tu navegador y vayas a
|
| 18 |
+
|
| 19 |
+
00:21.600 --> 00:31.520
|
| 20 |
+
surforge.net slash project slash orwell
|
| 21 |
+
dev c++ o dev cpp. Esta url recuerda que la verás en la
|
| 22 |
+
|
| 23 |
+
00:31.520 --> 00:37.720
|
| 24 |
+
plataforma en la sección de enlaces.
|
| 25 |
+
Una vez estés aquí, dale al botón de download. Esto va a tener
|
| 26 |
+
|
| 27 |
+
00:37.720 --> 00:44.240
|
| 28 |
+
un pequeño timer para que comience la
|
| 29 |
+
descarga y una vez la descarga esté arrancando, vamos a darle
|
| 30 |
+
|
| 31 |
+
00:44.240 --> 00:50.760
|
| 32 |
+
guardar. Es una descarga bastante ligera,
|
| 33 |
+
deben de ser aproximadamente 50 megas y vamos a esperar
|
| 34 |
+
|
| 35 |
+
00:50.760 --> 00:56.680
|
| 36 |
+
a que termine de descargarse. Una vez se
|
| 37 |
+
termine de descargar, dale clic ejecuta el programa y
|
| 38 |
+
|
| 39 |
+
00:56.680 --> 01:03.840
|
| 40 |
+
windows te va a preguntar por permisos.
|
| 41 |
+
Dale que sí. Quiero contarte que es dev c++, es una IDE
|
| 42 |
+
|
| 43 |
+
01:03.840 --> 01:10.000
|
| 44 |
+
integrated development environment
|
| 45 |
+
ambiente de desarrollo integrado que nos va a servir para
|
| 46 |
+
|
| 47 |
+
01:10.000 --> 01:17.560
|
| 48 |
+
poder desarrollar todo el código en C y
|
| 49 |
+
C++ que queramos. Lo desarrolla esta persona. Muchas
|
| 50 |
+
|
| 51 |
+
01:17.560 --> 01:24.520
|
| 52 |
+
gracias. Es gratis, portable, fast y simple.
|
| 53 |
+
Es la verdad bueno y funcional. Una vez ya tengas esto
|
| 54 |
+
|
| 55 |
+
01:24.520 --> 01:31.840
|
| 56 |
+
listo, vamos a darle que sí en inglés.
|
| 57 |
+
Esto nos va a abrir una ventana de license agreement. Es
|
| 58 |
+
|
| 59 |
+
01:31.840 --> 01:37.240
|
| 60 |
+
una licencia de tipo GNU, está ok.
|
| 61 |
+
Básicamente es software que se está distribuyendo de forma
|
| 62 |
+
|
| 63 |
+
01:37.240 --> 01:42.560
|
| 64 |
+
gratuita. Recuerda tú deberías de darle a
|
| 65 |
+
aceptar y aquí nos va a decir oye que quieres instalar.
|
| 66 |
+
|
| 67 |
+
01:42.560 --> 01:50.640
|
| 68 |
+
Bueno vamos a dejarlo todo en standard y
|
| 69 |
+
vamos a proceder a instalar. Vamos a darle install.
|
| 70 |
+
|
| 71 |
+
01:50.640 --> 01:57.000
|
| 72 |
+
Todo listo, no modifiques nada y vamos a
|
| 73 |
+
esperar a que termine de extraer absolutamente todo y
|
| 74 |
+
|
| 75 |
+
01:57.000 --> 02:03.120
|
| 76 |
+
tengamos la instalación finalizada. Una
|
| 77 |
+
vez se termine no hace falta que lo ejecutemos, simplemente
|
| 78 |
+
|
| 79 |
+
02:03.120 --> 02:09.400
|
| 80 |
+
dale clic en finish. Ahora yo voy a hacer
|
| 81 |
+
la instalación un poquito más allá porque quiero
|
| 82 |
+
|
| 83 |
+
02:09.400 --> 02:17.080
|
| 84 |
+
que tengas facilidad de ejecutar desde la
|
| 85 |
+
terminal código en windows. Para esto vas a ir a tu
|
| 86 |
+
|
| 87 |
+
02:17.080 --> 02:24.120
|
| 88 |
+
menú windows, vas a apretar la tecla
|
| 89 |
+
windows y esto te va a abrir el menú. Quiero que ahí le busques
|
| 90 |
+
|
| 91 |
+
02:24.120 --> 02:31.040
|
| 92 |
+
environment variables o variables de entorno,
|
| 93 |
+
variables de ambiente. Vas a darle clic y esto
|
| 94 |
+
|
| 95 |
+
02:31.040 --> 02:36.080
|
| 96 |
+
te va a abrir esta ventana de system
|
| 97 |
+
properties. Voy a cerrar aquí el navegador para que no nos
|
| 98 |
+
|
| 99 |
+
02:36.080 --> 02:41.320
|
| 100 |
+
estorbe y en la ventana de system
|
| 101 |
+
properties o propiedades del sistema vamos a darle clic a
|
| 102 |
+
|
| 103 |
+
02:41.320 --> 02:47.840
|
| 104 |
+
variables de entorno. Vas a hacer clic
|
| 105 |
+
aquí y simple y sencillamente vamos a agregar nuestras
|
| 106 |
+
|
| 107 |
+
02:47.840 --> 02:56.200
|
| 108 |
+
variables de entorno. Vamos a darle clic
|
| 109 |
+
en new y quiero que escribas el variable name va a ser
|
| 110 |
+
|
| 111 |
+
02:57.120 --> 03:04.400
|
| 112 |
+
devc y el variable value quiero que sea
|
| 113 |
+
este que vamos a tener aquí que es la ruta en donde
|
| 114 |
+
|
| 115 |
+
03:04.400 --> 03:10.080
|
| 116 |
+
estamos guardando nuestro software y donde
|
| 117 |
+
estamos guardando nuestro compilador. Vamos a darle ok
|
| 118 |
+
|
| 119 |
+
03:10.080 --> 03:15.680
|
| 120 |
+
y vamos a darle ok. Con eso ya agregamos
|
| 121 |
+
una variable de entorno esto nos va a servir para
|
| 122 |
+
|
| 123 |
+
03:15.680 --> 03:22.360
|
| 124 |
+
que ya siempre que llamemos desde otro
|
| 125 |
+
programa o querramos ejecutar un código en C ya vamos a
|
| 126 |
+
|
| 127 |
+
03:22.360 --> 03:29.120
|
| 128 |
+
saber a dónde debería estar llamando
|
| 129 |
+
nuestro compilador. Eso es todo lo que va a pasar.
|
| 130 |
+
|
| 131 |
+
03:29.120 --> 03:36.720
|
| 132 |
+
Luego vamos a darle vamos a probar que se
|
| 133 |
+
haya hecho de forma correcta para eso vamos a ir a
|
| 134 |
+
|
| 135 |
+
03:36.720 --> 03:44.240
|
| 136 |
+
cmd igual aprieta la tecla windows y
|
| 137 |
+
escribe cmd te va a aparecer command prompt y este terminal
|
| 138 |
+
|
| 139 |
+
03:44.240 --> 03:50.680
|
| 140 |
+
que acabamos de abrir es lo que yo necesitaba.
|
| 141 |
+
Para validar que se configuró correctamente
|
| 142 |
+
|
| 143 |
+
03:50.680 --> 03:57.600
|
| 144 |
+
nuestro compilador vamos a escribir gcc y
|
| 145 |
+
me dice gcc is not recognized. ¿Por qué no lo reconoce?
|
| 146 |
+
|
| 147 |
+
03:57.600 --> 04:03.080
|
| 148 |
+
Bueno muy simple vamos a otra vez nuestros
|
| 149 |
+
environment variables vamos a configurar la
|
| 150 |
+
|
| 151 |
+
04:03.080 --> 04:10.920
|
| 152 |
+
que acabamos de agregar y en variable name
|
| 153 |
+
ponle gcc le damos ok y le damos ok. Muy bien cierras
|
| 154 |
+
|
| 155 |
+
04:10.920 --> 04:19.440
|
| 156 |
+
tu cmd lo vuelves a abrir vamos a ver
|
| 157 |
+
ahora si funciona gcc luego vas a seleccionar la que dice
|
| 158 |
+
|
| 159 |
+
04:19.440 --> 04:25.920
|
| 160 |
+
path y le vas a dar doble clic y aquí te
|
| 161 |
+
vas a asegurar de darle new y de pegar esta variable
|
| 162 |
+
|
| 163 |
+
04:25.920 --> 04:31.000
|
| 164 |
+
que estoy poniendo en pantalla justo así
|
| 165 |
+
como la estoy poniendo a menos que tengas todo instalado
|
| 166 |
+
|
| 167 |
+
04:31.000 --> 04:36.480
|
| 168 |
+
en otro disco duro entonces tendrías que
|
| 169 |
+
poner la dirección en donde tienes instalado dev cpp min
|
| 170 |
+
|
| 171 |
+
04:36.480 --> 04:43.640
|
| 172 |
+
gw pin por eso te dije que no lo cambiaras
|
| 173 |
+
ok una vez la agregas simplemente le vas a dar en ok y
|
| 174 |
+
|
| 175 |
+
04:43.640 --> 04:48.800
|
| 176 |
+
listo yo si te das cuenta quedé con dos
|
| 177 |
+
déjame borrar una no está bien que tengamos dos no hay
|
| 178 |
+
|
| 179 |
+
04:48.800 --> 04:55.160
|
| 180 |
+
necesidad vamos a dar ok y ok con esto ya
|
| 181 |
+
cerramos todo el siguiente paso es que vuelvas a apretar la
|
| 182 |
+
|
| 183 |
+
04:55.160 --> 05:01.800
|
| 184 |
+
tecla windows y escribas cmd esto nos va a
|
| 185 |
+
abrir nuestra terminal como decía como command prompt
|
| 186 |
+
|
| 187 |
+
05:01.800 --> 05:10.160
|
| 188 |
+
y vamos a escribir gcc y perfecto dice gcc
|
| 189 |
+
fatal error no input files compilation terminated pero
|
| 190 |
+
|
| 191 |
+
05:10.160 --> 05:15.200
|
| 192 |
+
por qué pues porque no le hemos pasado
|
| 193 |
+
ningún archivo en c y esto está bien no lo necesitamos
|
| 194 |
+
|
| 195 |
+
05:15.200 --> 05:19.920
|
| 196 |
+
aún simplemente quería verificar que en mi
|
| 197 |
+
computadora se había instalado el compilador
|
| 198 |
+
|
| 199 |
+
05:19.920 --> 05:27.080
|
| 200 |
+
y se llama escribiendo gcc todo está en
|
| 201 |
+
orden todo está maravilloso ahora lo que vamos a hacer
|
| 202 |
+
|
| 203 |
+
05:27.080 --> 05:36.240
|
| 204 |
+
es ir a nuestro navegador otra vez y
|
| 205 |
+
descargar visual studio code visual estudio code vamos a
|
| 206 |
+
|
| 207 |
+
05:36.240 --> 05:41.400
|
| 208 |
+
ir a la página de microsoft directo donde
|
| 209 |
+
dice download visual estudio code vamos a darle clic
|
| 210 |
+
|
| 211 |
+
05:41.400 --> 05:48.680
|
| 212 |
+
aquí en download for windows 10 vamos a
|
| 213 |
+
descargar el instalador de 64 bits muy bien y vamos a darle
|
| 214 |
+
|
| 215 |
+
05:48.680 --> 05:55.440
|
| 216 |
+
clic acá no ya esto nos lo descarga
|
| 217 |
+
simplemente ya estábamos en esa página vamos a esperar a que
|
| 218 |
+
|
| 219 |
+
05:55.440 --> 06:00.960
|
| 220 |
+
termine de descargarse esto se descargó
|
| 221 |
+
súper rápido muy bien hacemos doble clic ejecutamos
|
| 222 |
+
|
| 223 |
+
06:00.960 --> 06:06.080
|
| 224 |
+
nuestro programa y windows nos va a decir
|
| 225 |
+
oye aceptas en la licencia le voy a decir que sí por
|
| 226 |
+
|
| 227 |
+
06:06.080 --> 06:11.560
|
| 228 |
+
supuesto que acepto vamos a darle a todo
|
| 229 |
+
todo está bien a tu pad absolutamente todo lo tienes que
|
| 230 |
+
|
| 231 |
+
06:11.560 --> 06:17.920
|
| 232 |
+
dejar marcado le vas a dar en install y
|
| 233 |
+
vamos a esperar a que termine ojo para que termine de
|
| 234 |
+
|
| 235 |
+
06:17.920 --> 06:23.600
|
| 236 |
+
forma efectiva tienes que reiniciar tu
|
| 237 |
+
computadora así que lo siento tendrás que hacerlo una vez
|
| 238 |
+
|
| 239 |
+
06:23.600 --> 06:29.200
|
| 240 |
+
termine la instalación nos vemos y
|
| 241 |
+
continuamos exactamente en este instante en esta parte de
|
| 242 |
+
|
| 243 |
+
06:29.200 --> 06:35.360
|
| 244 |
+
la clase ahora que tenemos listo visual
|
| 245 |
+
estudio code vamos a proceder a ejecutarlo busca visual
|
| 246 |
+
|
| 247 |
+
06:35.360 --> 06:42.200
|
| 248 |
+
estudio code o visual estudio code como le
|
| 249 |
+
quieras decir no pasa nada se va a abrir esta bella ventana
|
| 250 |
+
|
| 251 |
+
06:42.200 --> 06:47.600
|
| 252 |
+
y es nuestro editor de código que vamos a
|
| 253 |
+
estar manejando ahora per se este programa no nos permite
|
| 254 |
+
|
| 255 |
+
06:47.600 --> 06:56.160
|
| 256 |
+
trabajar con código c no para nada para
|
| 257 |
+
eso vamos a buscar una extensión y esta extensión se va a
|
| 258 |
+
|
| 259 |
+
06:56.160 --> 07:06.040
|
| 260 |
+
llamar c slash c más más esto es si te das
|
| 261 |
+
cuenta es directo de microsoft entonces todo perfecto
|
| 262 |
+
|
| 263 |
+
07:06.040 --> 07:16.760
|
| 264 |
+
instálala por favor se llama c más más
|
| 265 |
+
también vamos a instalar c c más más compile and run esta
|
| 266 |
+
|
| 267 |
+
07:16.760 --> 07:22.400
|
| 268 |
+
es una herramienta que nos va a permitir
|
| 269 |
+
hacer la compilación directamente desde aquí con al
|
| 270 |
+
|
| 271 |
+
07:22.400 --> 07:34.000
|
| 272 |
+
presionar f6 o f7 muy bien vamos a
|
| 273 |
+
instalarlo y listo ya tenemos todo lo que necesitábamos para
|
| 274 |
+
|
| 275 |
+
07:34.000 --> 07:39.680
|
| 276 |
+
poder comenzar a programar ahora voy a
|
| 277 |
+
cerrar esto no tenemos ningún folder abierto no tenemos
|
| 278 |
+
|
| 279 |
+
07:39.680 --> 07:46.400
|
| 280 |
+
ningún repositorio no te preocupes
|
| 281 |
+
simplemente quiero que vayas acá a la ventana le des file y
|
| 282 |
+
|
| 283 |
+
07:46.400 --> 07:52.880
|
| 284 |
+
le des en new file este archivo nuevo
|
| 285 |
+
presiona control s y esto te va a abrir esta ventana yo
|
| 286 |
+
|
| 287 |
+
07:52.880 --> 08:01.960
|
| 288 |
+
voy a ir a mi escritorio y aquí le voy a
|
| 289 |
+
poner en file name le voy a poner hola hello world
|
| 290 |
+
|
| 291 |
+
08:01.960 --> 08:10.520
|
| 292 |
+
hello world punto c ya con esto vamos a
|
| 293 |
+
saber que es un archivo de tipo c y nos va a tener el
|
| 294 |
+
|
| 295 |
+
08:10.520 --> 08:17.800
|
| 296 |
+
highlight de la sintaxis ahora vamos a
|
| 297 |
+
escribir nuestro primer programa en c para esto vamos a
|
| 298 |
+
|
| 299 |
+
08:17.800 --> 08:23.280
|
| 300 |
+
poner hashtag include esta es una
|
| 301 |
+
instrucción que vamos a utilizar para poder incluir librerías en
|
| 302 |
+
|
| 303 |
+
08:23.280 --> 08:28.800
|
| 304 |
+
nuestro código vamos a poner nuestro
|
| 305 |
+
teclado en inglés es un tip que yo siempre te paso teclado
|
| 306 |
+
|
| 307 |
+
08:28.800 --> 08:37.040
|
| 308 |
+
en inglés es lo mejor para programar vamos
|
| 309 |
+
a invocar la librería es stdio punto h estándar
|
| 310 |
+
|
| 311 |
+
08:37.040 --> 08:45.280
|
| 312 |
+
input output eso es lo que hace esta
|
| 313 |
+
librería manejo de entradas y salidas estándares las
|
| 314 |
+
|
| 315 |
+
08:45.280 --> 08:49.880
|
| 316 |
+
básicas por decirlo así que quiere decir
|
| 317 |
+
esto que nos va a servir para tener funciones como
|
| 318 |
+
|
| 319 |
+
08:49.880 --> 08:55.680
|
| 320 |
+
por ejemplo print que es una función que
|
| 321 |
+
nos sirve para hacer un output a la terminal o imprimir
|
| 322 |
+
|
| 323 |
+
08:55.680 --> 09:01.960
|
| 324 |
+
algo en la terminal vamos a declarar
|
| 325 |
+
nuestro main que es donde va a estar contenido todo nuestro
|
| 326 |
+
|
| 327 |
+
09:01.960 --> 09:09.360
|
| 328 |
+
código principal del programa vamos a
|
| 329 |
+
abrir y cerrar llavecitas muy bien y vamos a escribir
|
| 330 |
+
|
| 331 |
+
09:09.360 --> 09:16.520
|
| 332 |
+
print que es la función que nos sirve para
|
| 333 |
+
poder escribir algo a terminal vamos a poner hello
|
| 334 |
+
|
| 335 |
+
09:16.520 --> 09:24.280
|
| 336 |
+
platzi que es mi versión custom del hello
|
| 337 |
+
world esto es así que punto y coma al final vamos a
|
| 338 |
+
|
| 339 |
+
09:24.280 --> 09:31.760
|
| 340 |
+
darle el return 0 esto retorcer o
|
| 341 |
+
simplemente es la instrucción que vamos a tener para finalizar
|
| 342 |
+
|
| 343 |
+
09:31.760 --> 09:38.360
|
| 344 |
+
nuestro programa en c vamos a darle
|
| 345 |
+
control s si te das cuenta no tenemos ningún problema nada que
|
| 346 |
+
|
| 347 |
+
09:38.360 --> 09:46.400
|
| 348 |
+
nos indique el editor vamos a apretar f6
|
| 349 |
+
que es la extensión que descargamos y veamos lo que pasa
|
| 350 |
+
|
| 351 |
+
09:46.400 --> 09:51.480
|
| 352 |
+
si te das cuenta después de que apretamos
|
| 353 |
+
f6 se nos abrió la terminal automáticamente dice windows
|
| 354 |
+
|
| 355 |
+
09:51.480 --> 09:57.760
|
| 356 |
+
power shell copyright a microsoft ok
|
| 357 |
+
saludos a microsoft y dice trae de nucleus platform ok no
|
| 358 |
+
|
| 359 |
+
09:57.760 --> 10:04.400
|
| 360 |
+
no vamos a hacer eso de momento y vamos a
|
| 361 |
+
ver qué pasa si te das cuenta nuestro programa ejecutó
|
| 362 |
+
|
| 363 |
+
10:04.400 --> 10:10.160
|
| 364 |
+
directamente todo lo que teníamos que
|
| 365 |
+
hacer y nos dio la salida en terminal y luego se cerró
|
| 366 |
+
|
| 367 |
+
10:10.160 --> 10:15.600
|
| 368 |
+
maravilloso tenemos listo nuestro entorno
|
| 369 |
+
de desarrollo en windows en la próxima vamos a
|
| 370 |
+
|
| 371 |
+
10:15.600 --> 10:45.600
|
| 372 |
+
aprender cómo hacerlo en un sistema
|
| 373 |
+
linux
|
| 374 |
+
|
01-Introducción al lenguaje C/05-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
https://sourceforge.net/projects/orwelldevcpp/
|
| 2 |
+
https://code.visualstudio.com/
|
01-Introducción al lenguaje C/05-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
01-Introducción al lenguaje C/06-Instalación y Ejecución de Programas C en Linux.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:6e505e592952d23f5501436c1e40bcd478c32e2942e7886a0ef1845c46ab649d
|
| 3 |
+
size 54141190
|
01-Introducción al lenguaje C/06-Instalación y Ejecución de Programas C en Linux.vtt
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:08.320
|
| 4 |
+
Hola, en esta clase te voy a enseñar cómo
|
| 5 |
+
instalar C en Linux. Vamos a abrir nuestra
|
| 6 |
+
|
| 7 |
+
00:08.320 --> 00:16.840
|
| 8 |
+
terminal. Ya la tengo aquí lista. Tengo
|
| 9 |
+
Ubuntu. Si te das cuenta, aquí en la terminal simplemente
|
| 10 |
+
|
| 11 |
+
00:16.840 --> 00:21.680
|
| 12 |
+
tienes que empezar como administrador y la
|
| 13 |
+
primera instrucción que vamos a utilizar es sudo app.
|
| 14 |
+
|
| 15 |
+
00:21.680 --> 00:29.400
|
| 16 |
+
Vamos a dar utilizar install y vamos a
|
| 17 |
+
instalar GCC. Aquí en Linux es súper fácil, simplemente
|
| 18 |
+
|
| 19 |
+
00:29.400 --> 00:30.520
|
| 20 |
+
ponemos nuestro
|
| 21 |
+
password
|
| 22 |
+
|
| 23 |
+
00:33.120 --> 00:39.880
|
| 24 |
+
y vamos a esperar a que termine. Te dice, oye,
|
| 25 |
+
van a ser 115 megabytes. Pues sí, no hay problema.
|
| 26 |
+
|
| 27 |
+
00:39.880 --> 00:45.840
|
| 28 |
+
Esperamos a que termine. Vamos a ver qué
|
| 29 |
+
nos arrojan. Todo debería de ser exitoso. Lo estamos
|
| 30 |
+
|
| 31 |
+
00:45.840 --> 00:52.200
|
| 32 |
+
haciendo con permisos de administrador y
|
| 33 |
+
todo lo que necesitamos. Ahora, para verificar que la
|
| 34 |
+
|
| 35 |
+
00:52.200 --> 01:01.280
|
| 36 |
+
instalación fue correcta, vamos a escribir
|
| 37 |
+
GCC y veamos qué nos indica. Esto significa que la
|
| 38 |
+
|
| 39 |
+
01:01.280 --> 01:08.560
|
| 40 |
+
instalación falló. Cuando esto falle en tu
|
| 41 |
+
distribución de Ubuntu o Debian, lo que estés
|
| 42 |
+
|
| 43 |
+
01:08.560 --> 01:14.480
|
| 44 |
+
utilizando, simplemente vamos a darle
|
| 45 |
+
update que nos va a actualizar todos los enlaces a donde
|
| 46 |
+
|
| 47 |
+
01:14.480 --> 01:20.680
|
| 48 |
+
podemos descargar información. Vamos a
|
| 49 |
+
esperar a que termine. Listo y ya tenemos nuestros packages
|
| 50 |
+
|
| 51 |
+
01:20.680 --> 01:27.080
|
| 52 |
+
upgradeados, actualizados. Ahora sí vamos
|
| 53 |
+
a proceder a instalar. Vamos a esperar a que termine. Nos
|
| 54 |
+
|
| 55 |
+
01:27.080 --> 01:32.360
|
| 56 |
+
vuelve a preguntar que van a ser 118 megas.
|
| 57 |
+
Le volvemos a decir que sí y esperamos a que termine
|
| 58 |
+
|
| 59 |
+
01:32.360 --> 01:37.560
|
| 60 |
+
la instalación. Una vez se terminó de
|
| 61 |
+
instalar, te recomiendo que aprietes el comando clear para
|
| 62 |
+
|
| 63 |
+
01:37.560 --> 01:42.320
|
| 64 |
+
que todo esté bien. Regresamos a la parte
|
| 65 |
+
superior de nuestra consola y vamos a escribir el comando
|
| 66 |
+
|
| 67 |
+
01:42.320 --> 01:51.120
|
| 68 |
+
gcc-version. Esto nos va a decir la
|
| 69 |
+
versión que tenemos instalada de GCC y todo está bien.
|
| 70 |
+
|
| 71 |
+
01:51.120 --> 01:56.160
|
| 72 |
+
Vemos que tenemos instalado GCC, nos dice
|
| 73 |
+
que está instalado en nuestro Ubuntu, nos dice que tenemos
|
| 74 |
+
|
| 75 |
+
01:56.160 --> 02:03.880
|
| 76 |
+
un Ubuntu 18.04. Muy bien. Esta es
|
| 77 |
+
información sobre Ubuntu, esta es la información de nuestro
|
| 78 |
+
|
| 79 |
+
02:03.880 --> 02:14.200
|
| 80 |
+
GCC que es la versión 7.5.0. Muy bien,
|
| 81 |
+
excelente. Ahora vamos a darle y fíjate que dicen que no
|
| 82 |
+
|
| 83 |
+
02:14.200 --> 02:19.240
|
| 84 |
+
hay garantía, que esto es software gratis.
|
| 85 |
+
A ver, esto es software gratis pero es software muy bueno que
|
| 86 |
+
|
| 87 |
+
02:19.240 --> 02:24.880
|
| 88 |
+
se ha desarrollado por muchos años pero de
|
| 89 |
+
todos modos ellos hacen el disclaimer de que no te van
|
| 90 |
+
|
| 91 |
+
02:24.880 --> 02:29.760
|
| 92 |
+
a pagar nada si los demandas porque no
|
| 93 |
+
programaste bien. ¿Qué ha pasado? Te voy a dejar el link a un
|
| 94 |
+
|
| 95 |
+
02:29.760 --> 02:35.880
|
| 96 |
+
artículo súper interesante de no programar
|
| 97 |
+
bien utilizando los estándares sobre todo en código C
|
| 98 |
+
|
| 99 |
+
02:35.880 --> 02:41.720
|
| 100 |
+
y lo que permitió que pasara. De hecho lo
|
| 101 |
+
veremos en una clase más adelante en donde hablemos de la
|
| 102 |
+
|
| 103 |
+
02:41.720 --> 02:48.480
|
| 104 |
+
importancia de ser muy responsables al
|
| 105 |
+
momento de escribir código. Pero con esto dicho vamos a
|
| 106 |
+
|
| 107 |
+
02:48.480 --> 02:53.040
|
| 108 |
+
escribir nuestro primer programa. Para
|
| 109 |
+
esto voy a utilizar la instrucción touch para crear un nuevo
|
| 110 |
+
|
| 111 |
+
02:53.040 --> 03:00.240
|
| 112 |
+
archivo y voy a crear un archivo que se
|
| 113 |
+
llame hello.c. Si te das cuenta ahora presionando ls
|
| 114 |
+
|
| 115 |
+
03:00.240 --> 03:06.200
|
| 116 |
+
aquí aparece nuestro nuevo archivo hello.
|
| 117 |
+
c así que vamos a abrirlo. Voy a abrirlo con beam el editor
|
| 118 |
+
|
| 119 |
+
03:06.200 --> 03:13.040
|
| 120 |
+
de código que ya trae la terminal de
|
| 121 |
+
ubuntu hello.c. Esto nos abre beam, te recomiendo que presiones
|
| 122 |
+
|
| 123 |
+
03:13.040 --> 03:20.320
|
| 124 |
+
y para comenzar a insertar caracteres y
|
| 125 |
+
vamos a escribir nuestro código que sería hashtag include
|
| 126 |
+
|
| 127 |
+
03:20.320 --> 03:29.720
|
| 128 |
+
le vamos a decir que incluya stdio.h es el
|
| 129 |
+
mismo código que hicimos en la clase anterior para el
|
| 130 |
+
|
| 131 |
+
03:29.720 --> 03:35.280
|
| 132 |
+
hola mundo en windows sólo que ahora desde
|
| 133 |
+
linux luego vamos a declarar nuestro main en donde va
|
| 134 |
+
|
| 135 |
+
03:35.280 --> 03:41.920
|
| 136 |
+
a estar toda la parte principal de nuestro
|
| 137 |
+
código abrimos y cerramos y abrimos nuestras llaves
|
| 138 |
+
|
| 139 |
+
03:41.920 --> 03:49.680
|
| 140 |
+
cerramos nuestras llaves muy bien y aquí
|
| 141 |
+
adentro de estas dos llaves va a estar el código. Este
|
| 142 |
+
|
| 143 |
+
03:49.680 --> 03:57.640
|
| 144 |
+
código bueno pues ya sabes vamos a
|
| 145 |
+
utilizar print y en print vamos a poner hello.c
|
| 146 |
+
|
| 147 |
+
03:58.560 --> 04:09.040
|
| 148 |
+
cerramos nuestro print punto y coma al
|
| 149 |
+
final y por último un return 0 punto y coma vamos a guardar
|
| 150 |
+
|
| 151 |
+
04:09.040 --> 04:15.480
|
| 152 |
+
casi presionó control s pero esto es beam
|
| 153 |
+
no se guarda así así que el comando para guardar
|
| 154 |
+
|
| 155 |
+
04:15.480 --> 04:22.800
|
| 156 |
+
en beam es dos puntos wq no pero no lo voy
|
| 157 |
+
a poner acá uy bueno aquí está bien todo sigue cerrado
|
| 158 |
+
|
| 159 |
+
04:22.800 --> 04:30.520
|
| 160 |
+
vamos a salir del modo de insertar presión
|
| 161 |
+
escape y ahora escribe dos puntos w q y este es el comando
|
| 162 |
+
|
| 163 |
+
04:30.520 --> 04:36.720
|
| 164 |
+
para salvar y para salirnos del archivo
|
| 165 |
+
todo bien ya logramos guardar nuestro archivo y logramos
|
| 166 |
+
|
| 167 |
+
04:36.720 --> 04:45.480
|
| 168 |
+
salirnos ahora tenemos que proceder a
|
| 169 |
+
ejecutar nuestro código en c para esto vamos a utilizar la
|
| 170 |
+
|
| 171 |
+
04:45.480 --> 04:50.360
|
| 172 |
+
instrucción gcc que es lo que recién
|
| 173 |
+
instalamos nuestro compilador le vamos a pasar el flag de
|
| 174 |
+
|
| 175 |
+
04:50.360 --> 04:57.320
|
| 176 |
+
o y el archivo que estamos compilando que
|
| 177 |
+
se llama hello este es el archivo de output que vamos a
|
| 178 |
+
|
| 179 |
+
04:57.320 --> 05:05.040
|
| 180 |
+
tener ok por eso el flag y luego vamos a
|
| 181 |
+
pasarle el archivo que va a compilar que es hello punto c
|
| 182 |
+
|
| 183 |
+
05:05.040 --> 05:13.960
|
| 184 |
+
vamos a darle enter y listo aquí qué es lo
|
| 185 |
+
que acabamos de hacer aquí compilamos nuestro archivo
|
| 186 |
+
|
| 187 |
+
05:13.960 --> 05:21.360
|
| 188 |
+
de c hello punto c y lo guardamos en un
|
| 189 |
+
archivo hello veamos con ls y mira que ahora aparece en
|
| 190 |
+
|
| 191 |
+
05:21.360 --> 05:26.920
|
| 192 |
+
verde nuestro nuevo ejecutable este es el
|
| 193 |
+
archivo en donde está el código el source file el código
|
| 194 |
+
|
| 195 |
+
05:26.920 --> 05:33.480
|
| 196 |
+
fuente y este es el ejecutable que
|
| 197 |
+
acabamos de compilar así que lo que hay que hacer es ejecutarlo
|
| 198 |
+
|
| 199 |
+
05:33.480 --> 05:40.720
|
| 200 |
+
como valga la redundancia vamos a poner
|
| 201 |
+
punto y slash hello para ejecutar y mira que nos aparece
|
| 202 |
+
|
| 203 |
+
05:40.720 --> 05:49.120
|
| 204 |
+
un bellísimo hello platzi muy bien
|
| 205 |
+
logramos terminar la instalación en sistemas de tipo
|
| 206 |
+
|
| 207 |
+
05:49.120 --> 05:54.000
|
| 208 |
+
linux ya sabes cómo te vas a manejar en la
|
| 209 |
+
terminal de ahora en adelante hiciste tu primer
|
| 210 |
+
|
| 211 |
+
05:54.000 --> 06:03.600
|
| 212 |
+
hola mundo en la próxima clase
|
| 213 |
+
comenzaremos a aprender todo sobre este lenguaje vamos para allá
|
| 214 |
+
|
01-Introducción al lenguaje C/06-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
http://xina.uoc.es/prestatgeries/PV00_75009_00197/mcomplement/faqcerrc.html
|
01-Introducción al lenguaje C/06-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
02-Estructura de un programa C/01-Estructura Básica de un Programa en C.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:18bd201e7a8a19b54294a49629c5f8aac34cffb2d150969eb755f83be40408e9
|
| 3 |
+
size 40818360
|
02-Estructura de un programa C/01-Estructura Básica de un Programa en C.vtt
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:08.520
|
| 4 |
+
En esta clase vamos a estudiar cómo es la
|
| 5 |
+
estructura de un programa en el lenguaje C.
|
| 6 |
+
|
| 7 |
+
00:08.520 --> 00:13.280
|
| 8 |
+
Vamos a nuestro Visual Studio Code, si
|
| 9 |
+
estás en Ubuntu igual es compatible, si estás en Mac
|
| 10 |
+
|
| 11 |
+
00:13.280 --> 00:18.840
|
| 12 |
+
igual es compatible, no te preocupes en
|
| 13 |
+
absoluto que todo va a funcionar perfectamente y quiero
|
| 14 |
+
|
| 15 |
+
00:18.840 --> 00:24.480
|
| 16 |
+
platicarte justo sobre cómo es la
|
| 17 |
+
estructura general de un programa en el lenguaje C.
|
| 18 |
+
|
| 19 |
+
00:24.480 --> 00:31.120
|
| 20 |
+
Lo primero que vamos a tener en todo
|
| 21 |
+
programa en C es la zona donde incluimos nuestras librerías.
|
| 22 |
+
|
| 23 |
+
00:31.120 --> 00:38.880
|
| 24 |
+
Esta zona oficialmente se conoce como
|
| 25 |
+
preprocessor commands, básicamente son comandos que le van a
|
| 26 |
+
|
| 27 |
+
00:38.880 --> 00:45.480
|
| 28 |
+
decir al compilador que incluyan estos
|
| 29 |
+
archivos antes de comenzar la compilación. ¿Por qué?
|
| 30 |
+
|
| 31 |
+
00:45.480 --> 00:50.480
|
| 32 |
+
Porque dentro del código hacemos uso de
|
| 33 |
+
una función que está en esta librería.
|
| 34 |
+
|
| 35 |
+
00:50.480 --> 00:57.200
|
| 36 |
+
Estos se conocen como preprocessor commands.
|
| 37 |
+
Muy bien, la siguiente línea que tenemos es el
|
| 38 |
+
|
| 39 |
+
00:57.200 --> 01:04.520
|
| 40 |
+
comando main, esta es la función principal
|
| 41 |
+
en donde la ejecución del programa comienza. Todo
|
| 42 |
+
|
| 43 |
+
01:04.520 --> 01:11.760
|
| 44 |
+
el código que podamos tener va a estar
|
| 45 |
+
aquí adentro, dentro de mi función main. Luego quiero
|
| 46 |
+
|
| 47 |
+
01:11.760 --> 01:19.360
|
| 48 |
+
poner un pequeño comentario para que sepas
|
| 49 |
+
cómo se usan, esto lo vamos a poner con barra y asterisco,
|
| 50 |
+
|
| 51 |
+
01:19.360 --> 01:33.520
|
| 52 |
+
adentro vamos a poner first hello world in
|
| 53 |
+
C language. Muy bien y vamos a cerrar nuestro comentario.
|
| 54 |
+
|
| 55 |
+
01:35.440 --> 01:41.760
|
| 56 |
+
Date cuenta que el comentario se abre con
|
| 57 |
+
este símbolo que se forma de barra y asterisco,
|
| 58 |
+
|
| 59 |
+
01:41.760 --> 01:47.400
|
| 60 |
+
luego pones lo que sea y de verdad cuando
|
| 61 |
+
digo lo que sea puede ser absolutamente todo el código,
|
| 62 |
+
|
| 63 |
+
01:47.400 --> 01:53.960
|
| 64 |
+
por ejemplo, si quisiéramos podemos
|
| 65 |
+
comentar esto, copiar nuestro print, vamos a crear una nueva línea,
|
| 66 |
+
|
| 67 |
+
01:53.960 --> 01:58.680
|
| 68 |
+
vamos a pegarlo, vamos a identarlo, tiene
|
| 69 |
+
que estar bien ordenado, recuerda que la identación
|
| 70 |
+
|
| 71 |
+
01:58.680 --> 02:04.200
|
| 72 |
+
es bien importante, básicamente cada nivel
|
| 73 |
+
adentro del código hay que hacerlo visual, por eso dejo
|
| 74 |
+
|
| 75 |
+
02:04.200 --> 02:10.320
|
| 76 |
+
esta tabulación aquí y vamos a cambiarle
|
| 77 |
+
lo que dice de hello platsip for hello student.
|
| 78 |
+
|
| 79 |
+
02:10.320 --> 02:18.600
|
| 80 |
+
Listo, vamos a guardar y recuerda que para
|
| 81 |
+
compilar tienes que apretar f6, si tienes una laptop en
|
| 82 |
+
|
| 83 |
+
02:18.600 --> 02:23.400
|
| 84 |
+
donde por defecto hacen otras cosas como
|
| 85 |
+
subirle el volumen, subir el brillo, tienes que utilizar
|
| 86 |
+
|
| 87 |
+
02:23.400 --> 02:30.480
|
| 88 |
+
la tecla function f6 que es fn y f6,
|
| 89 |
+
vamos a apretarlo, vamos a esperar a que termine de
|
| 90 |
+
|
| 91 |
+
02:30.480 --> 02:37.960
|
| 92 |
+
compilar y listo compiló y mira que ahora
|
| 93 |
+
dice hello student y el compilador ignora todo
|
| 94 |
+
|
| 95 |
+
02:37.960 --> 02:43.400
|
| 96 |
+
lo que teníamos por acá. Muy bien, ya
|
| 97 |
+
entendiste cómo funcionan los comentarios, lo siguiente que
|
| 98 |
+
|
| 99 |
+
02:43.400 --> 02:48.400
|
| 100 |
+
tenemos es la línea del print, si te das
|
| 101 |
+
cuenta estoy haciendo un repaso de toda la estructura
|
| 102 |
+
|
| 103 |
+
02:48.400 --> 02:53.920
|
| 104 |
+
principal de un programa en C, esto es una
|
| 105 |
+
función que está disponible en C
|
| 106 |
+
|
| 107 |
+
02:53.920 --> 03:01.360
|
| 108 |
+
que causa que se imprima en terminal el
|
| 109 |
+
mensaje que nosotros colocamos adentro y la última línea
|
| 110 |
+
|
| 111 |
+
03:01.360 --> 03:08.520
|
| 112 |
+
pero no menos importante es return 0,
|
| 113 |
+
esto es lo que termina mi función principal main, siempre
|
| 114 |
+
|
| 115 |
+
03:08.520 --> 03:15.320
|
| 116 |
+
que pongas el return 0 dentro de un main
|
| 117 |
+
se va a cerrar nuestra función principal y esto va a
|
| 118 |
+
|
| 119 |
+
03:15.320 --> 03:22.480
|
| 120 |
+
terminar la ejecución del programa, mira
|
| 121 |
+
qué pasa si pongo el return 0 antes del print, vas a ver lo
|
| 122 |
+
|
| 123 |
+
03:22.480 --> 03:29.560
|
| 124 |
+
que ocurre, todo se debería romper, vamos
|
| 125 |
+
a guardar y vamos a compilar y ejecutar nuestro programa, ya
|
| 126 |
+
|
| 127 |
+
03:29.560 --> 03:35.720
|
| 128 |
+
sabes esto lo hacemos con f6 y mira que
|
| 129 |
+
simple y sencillamente lo compila, lo ejecuta pero no imprime
|
| 130 |
+
|
| 131 |
+
03:35.720 --> 03:42.360
|
| 132 |
+
nada, porque aquí se salió el programa,
|
| 133 |
+
vamos a borrar eso, guardamos y vuelve a ejecutar y
|
| 134 |
+
|
| 135 |
+
03:42.360 --> 03:50.480
|
| 136 |
+
vas a ver cómo ahora sí va a aparecer
|
| 137 |
+
hello student, con esto dicho ya sabes compilar un programa en C,
|
| 138 |
+
|
| 139 |
+
03:50.480 --> 03:56.800
|
| 140 |
+
sabes ejecutar un programa en C, sabes
|
| 141 |
+
todo y sabes sobre todo cómo funciona la estructura de un
|
| 142 |
+
|
| 143 |
+
03:56.800 --> 04:01.880
|
| 144 |
+
programa básico en lenguaje C, estamos
|
| 145 |
+
listos por esta clase, nos vemos en la próxima.
|
| 146 |
+
|
02-Estructura de un programa C/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
03-Tipos de Datos en el lenguaje C/01-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://es.science19.com/what-is-e10-11567
|
03-Tipos de Datos en el lenguaje C/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
03-Tipos de Datos en el lenguaje C/01-Tipos de Datos en C Enteros y Flotantes.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:792d94c14dc6d0c957709116c118c39d010816dcee96d13074846dd25bc1d57f
|
| 3 |
+
size 160127996
|
03-Tipos de Datos en el lenguaje C/01-Tipos de Datos en C Enteros y Flotantes.vtt
ADDED
|
@@ -0,0 +1,522 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:08.560
|
| 4 |
+
Hola, en esta clase vamos a aprender sobre
|
| 5 |
+
los tipos de datos de C. Esto va a ser fundamental
|
| 6 |
+
|
| 7 |
+
00:08.560 --> 00:15.000
|
| 8 |
+
para comenzar a entender cómo funciona
|
| 9 |
+
este lenguaje de programación. Recuerda que C es
|
| 10 |
+
|
| 11 |
+
00:15.000 --> 00:19.920
|
| 12 |
+
un lenguaje de programación tipado, es decir,
|
| 13 |
+
siempre tienes que declarar de qué tipo de
|
| 14 |
+
|
| 15 |
+
00:19.920 --> 00:23.960
|
| 16 |
+
dato va a ser tu variable, pero no te
|
| 17 |
+
preocupes, igual si es tu primer curso de programación,
|
| 18 |
+
|
| 19 |
+
00:23.960 --> 00:28.320
|
| 20 |
+
lo vas a entender todo paso a paso, pero
|
| 21 |
+
si vienes de otro lenguaje, pues para que te vayas
|
| 22 |
+
|
| 23 |
+
00:28.320 --> 00:34.320
|
| 24 |
+
familiarizando con él, desde ahora. Vamos
|
| 25 |
+
a mi editor de código. Tengo el archivo hello world.c,
|
| 26 |
+
|
| 27 |
+
00:34.320 --> 00:39.280
|
| 28 |
+
que es el archivo que ya habíamos trabajado,
|
| 29 |
+
y quiero usarlo para escribirte o contarte un
|
| 30 |
+
|
| 31 |
+
00:39.280 --> 00:46.200
|
| 32 |
+
par de cosas aquí en mi pantalla. En C
|
| 33 |
+
vamos a tener los basic types,
|
| 34 |
+
|
| 35 |
+
00:48.840 --> 00:53.200
|
| 36 |
+
que van a ser tipos básicos de datos en
|
| 37 |
+
donde nosotros vamos a poder tener
|
| 38 |
+
|
| 39 |
+
00:53.200 --> 00:59.320
|
| 40 |
+
o vamos a poder almacenar información
|
| 41 |
+
aritmético. Entonces aquí vamos a poder
|
| 42 |
+
|
| 43 |
+
00:59.320 --> 01:05.920
|
| 44 |
+
tener en los basics, nos vamos a dividir
|
| 45 |
+
en tipos de datos aritméticos
|
| 46 |
+
|
| 47 |
+
01:08.360 --> 01:16.160
|
| 48 |
+
y tipos de datos, que lo voy a guardar con
|
| 49 |
+
B aquí para que tengas la referencia, flotantes
|
| 50 |
+
|
| 51 |
+
01:17.840 --> 01:19.680
|
| 52 |
+
o de punto
|
| 53 |
+
flotante.
|
| 54 |
+
|
| 55 |
+
01:19.680 --> 01:28.520
|
| 56 |
+
¿Qué es lo que se suele declarar como
|
| 57 |
+
float? Y en aritméticos es lo que podríamos declarar
|
| 58 |
+
|
| 59 |
+
01:28.520 --> 01:33.680
|
| 60 |
+
como integer, entre otros. Vamos a tener
|
| 61 |
+
diferentes tipos de integer según la cantidad
|
| 62 |
+
|
| 63 |
+
01:33.680 --> 01:40.440
|
| 64 |
+
de información que querramos almacenar.
|
| 65 |
+
Por ejemplo, en tipo de datos aritméticos vamos
|
| 66 |
+
|
| 67 |
+
01:40.440 --> 01:48.200
|
| 68 |
+
a tener que van a existir integer normales,
|
| 69 |
+
este es de 2 a o 4 bytes según el compilador
|
| 70 |
+
|
| 71 |
+
01:48.200 --> 01:55.960
|
| 72 |
+
que estés usando y esto nos permitiría
|
| 73 |
+
tener un rango numérico de aproximadamente
|
| 74 |
+
|
| 75 |
+
01:57.360 --> 02:11.320
|
| 76 |
+
menos 32.768, si es un integer de 2 bytes,
|
| 77 |
+
a 32.768 o de menos 2.147.000.000, no, esto es mucho más que
|
| 78 |
+
|
| 79 |
+
02:11.320 --> 02:26.520
|
| 80 |
+
2.147.483.648 hasta 2.147.000.000, etcétera,
|
| 81 |
+
etcétera, en positivo. Nota como todos estos rangos numéricos
|
| 82 |
+
|
| 83 |
+
02:26.520 --> 02:33.240
|
| 84 |
+
cuando estamos trabajando con una variable
|
| 85 |
+
simple, una variable de tipo entero, nos va desde un rango
|
| 86 |
+
|
| 87 |
+
02:33.240 --> 02:38.080
|
| 88 |
+
que va en números negativos hasta un rango
|
| 89 |
+
en números positivos. Hay ocasiones en las que tú
|
| 90 |
+
|
| 91 |
+
02:38.080 --> 02:43.280
|
| 92 |
+
estás programando y no necesariamente
|
| 93 |
+
necesitas los números negativos y quizás te preguntas,
|
| 94 |
+
|
| 95 |
+
02:43.280 --> 02:49.320
|
| 96 |
+
pero cuando voy a no necesitar eso? Primero,
|
| 97 |
+
para cuando no necesitas números negativos vamos a usar
|
| 98 |
+
|
| 99 |
+
02:49.320 --> 02:56.600
|
| 100 |
+
la instrucción unsigned int, este es un
|
| 101 |
+
tipo de datos que es sin signo, es decir, no nos permite
|
| 102 |
+
|
| 103 |
+
02:56.600 --> 03:03.240
|
| 104 |
+
tener números negativos, entonces el rango
|
| 105 |
+
de este número, de esta variable o de este
|
| 106 |
+
|
| 107 |
+
03:03.240 --> 03:16.200
|
| 108 |
+
tipo de datos que estaríamos declarando,
|
| 109 |
+
sería de 0 a 65.000 o de 0 a 4.294.000.000. Date cuenta que esto
|
| 110 |
+
|
| 111 |
+
03:16.960 --> 03:25.280
|
| 112 |
+
y esto es la misma cantidad de datos,
|
| 113 |
+
va del 0 al 65.000 y aquí va de la mitad, casi, de 32.768
|
| 114 |
+
|
| 115 |
+
03:25.280 --> 03:33.440
|
| 116 |
+
negativo a 32.767 negativos. Son la misma
|
| 117 |
+
cantidad de datos que tenemos, simplemente que aquí,
|
| 118 |
+
|
| 119 |
+
03:33.440 --> 03:38.400
|
| 120 |
+
cuando tenemos integer, como tenemos la
|
| 121 |
+
misma cantidad de memoria, y aquí quiero que te quede
|
| 122 |
+
|
| 123 |
+
03:38.400 --> 03:44.080
|
| 124 |
+
claro esto, si tenemos por ejemplo,
|
| 125 |
+
hablemos de integers de 2 bytes solamente, entonces quitemos
|
| 126 |
+
|
| 127 |
+
03:44.080 --> 03:50.160
|
| 128 |
+
esto para que sea clara la explicación y
|
| 129 |
+
quitemos esto, entonces también tendríamos que quitar esta
|
| 130 |
+
|
| 131 |
+
03:50.160 --> 03:58.560
|
| 132 |
+
parte. ¿Qué pasa? Quiero que te quede bien
|
| 133 |
+
claro el concepto, entonces tenemos que este es de 2 bytes
|
| 134 |
+
|
| 135 |
+
03:58.560 --> 04:05.440
|
| 136 |
+
y tenemos que este de abajo también sería
|
| 137 |
+
de 2 bytes. Lo que te quiero decir aquí es que a veces
|
| 138 |
+
|
| 139 |
+
04:05.440 --> 04:10.320
|
| 140 |
+
vas a tener variables que van a tener
|
| 141 |
+
resultados negativos, por ejemplo, imagínate que estás
|
| 142 |
+
|
| 143 |
+
04:10.320 --> 04:17.140
|
| 144 |
+
haciendo una operación de deudas o de
|
| 145 |
+
sumas o una operación, una calculadora, estás haciendo algún
|
| 146 |
+
|
| 147 |
+
04:17.140 --> 04:23.120
|
| 148 |
+
tipo de programa en donde te vas a mover
|
| 149 |
+
un robot de un lado izquierdo a un lado derecho y utilizas
|
| 150 |
+
|
| 151 |
+
04:23.120 --> 04:26.440
|
| 152 |
+
los números positivos para el lado
|
| 153 |
+
izquierdo y los números negativos para el lado derecho,
|
| 154 |
+
|
| 155 |
+
04:26.440 --> 04:34.480
|
| 156 |
+
entonces ahí tendrías que tener un valor
|
| 157 |
+
de tipo signet, o sea, int entero, que nos va a ir desde
|
| 158 |
+
|
| 159 |
+
04:34.480 --> 04:39.520
|
| 160 |
+
los negativos hasta los positivos. En cambio,
|
| 161 |
+
si tú simplemente estuvieras trabajando con valores
|
| 162 |
+
|
| 163 |
+
04:39.520 --> 04:45.360
|
| 164 |
+
positivos y nunca vas a tener restas,
|
| 165 |
+
entonces no necesitarías tener la capacidad de irte a
|
| 166 |
+
|
| 167 |
+
04:45.360 --> 04:51.640
|
| 168 |
+
números negativos porque tu programa nunca
|
| 169 |
+
va a recurrir a esto. Aquí te quiero decir algo,
|
| 170 |
+
|
| 171 |
+
04:51.640 --> 04:56.400
|
| 172 |
+
en C siempre tienes que estar pensando
|
| 173 |
+
cuáles son los valores que se van a almacenar en tus
|
| 174 |
+
|
| 175 |
+
04:56.400 --> 05:02.000
|
| 176 |
+
variables. Una de las mejores prácticas
|
| 177 |
+
que te puedo pasar es que antes de que tú lances un
|
| 178 |
+
|
| 179 |
+
05:02.000 --> 05:09.520
|
| 180 |
+
código al funcionamiento, a producción,
|
| 181 |
+
a un robot, a lo que sea, debes de hacer los cálculos de
|
| 182 |
+
|
| 183 |
+
05:09.520 --> 05:14.760
|
| 184 |
+
cuáles van a ser los rangos mínimos y
|
| 185 |
+
cuáles van a ser los rangos máximos de los valores que vas a
|
| 186 |
+
|
| 187 |
+
05:14.760 --> 05:20.600
|
| 188 |
+
tener en tu programa. ¿Por qué? Porque de
|
| 189 |
+
esto depende que sepas qué tipo de dato vas a elegir,
|
| 190 |
+
|
| 191 |
+
05:20.600 --> 05:27.320
|
| 192 |
+
también necesitas saber tu compilador que
|
| 193 |
+
estás ocupando, cómo los hace, en qué tamaños los
|
| 194 |
+
|
| 195 |
+
05:27.320 --> 05:32.480
|
| 196 |
+
guarda, todo esto igual lo puedes consultar,
|
| 197 |
+
no hay ningún problema, el estándar hoy en día son
|
| 198 |
+
|
| 199 |
+
05:32.480 --> 05:38.800
|
| 200 |
+
los mayores, entonces el estándar hoy en
|
| 201 |
+
día es que un tipo int va a ser de 4 bytes, eso es ya
|
| 202 |
+
|
| 203 |
+
05:38.800 --> 05:46.640
|
| 204 |
+
el estándar hoy por hoy y lo que lo que
|
| 205 |
+
pasa con esto es que tú tienes que siempre ser capaz de
|
| 206 |
+
|
| 207 |
+
05:46.640 --> 05:52.800
|
| 208 |
+
decir ok esta variable puede llegar a un
|
| 209 |
+
valor de 85 millones y ese es el máximo que puede llegar,
|
| 210 |
+
|
| 211 |
+
05:52.800 --> 05:59.560
|
| 212 |
+
entonces ¿qué tipo de dato le asigno? Ah
|
| 213 |
+
bueno pues aplica tal tipo de dato o este código puede
|
| 214 |
+
|
| 215 |
+
05:59.560 --> 06:05.280
|
| 216 |
+
llegar a menos 100 y quizás te preguntas y
|
| 217 |
+
si no sé cuánto tú tienes que saber, en C debes de tener
|
| 218 |
+
|
| 219 |
+
06:05.280 --> 06:11.920
|
| 220 |
+
el control siempre ¿por qué? porque si no
|
| 221 |
+
vas a permitir que haya leaks de memoria o que sea
|
| 222 |
+
|
| 223 |
+
06:11.920 --> 06:17.880
|
| 224 |
+
simple y sencillamente ¿qué pasaría si tú
|
| 225 |
+
tienes una calculadora y el límite de tus variables es
|
| 226 |
+
|
| 227 |
+
06:17.880 --> 06:28.280
|
| 228 |
+
del 0 al 10? ¿qué pasaría si tú sumas 9
|
| 229 |
+
más 9? 18, ya no podría guardar, no podrías almacenar más
|
| 230 |
+
|
| 231 |
+
06:28.280 --> 06:33.760
|
| 232 |
+
que hasta el 10, eso es lo que quiero que
|
| 233 |
+
entiendas, volvamos a la pantalla, si tú estás trabajando por
|
| 234 |
+
|
| 235 |
+
06:33.760 --> 06:40.400
|
| 236 |
+
ejemplo con puros números positivos pero
|
| 237 |
+
declaras el int así y la suma total de tus datos daba
|
| 238 |
+
|
| 239 |
+
06:40.400 --> 06:46.520
|
| 240 |
+
40 mil en una parte de tu programa,
|
| 241 |
+
entonces ¿tú crees que podrías almacenar 42 mil en tu variable
|
| 242 |
+
|
| 243 |
+
06:46.520 --> 06:53.480
|
| 244 |
+
de tipo entero? no, no podrías almacenar
|
| 245 |
+
40 mil, no podrías almacenar 42 mil, nada más allá de
|
| 246 |
+
|
| 247 |
+
06:53.480 --> 07:03.000
|
| 248 |
+
32 mil 767, es más seamos exactos no
|
| 249 |
+
podrías almacenar un valor que te diera 32 mil 768 y
|
| 250 |
+
|
| 251 |
+
07:03.000 --> 07:07.680
|
| 252 |
+
te preguntas bueno pero un 1 ¿qué pasa
|
| 253 |
+
aquí? imagínate que estás programando una aplicación
|
| 254 |
+
|
| 255 |
+
07:07.680 --> 07:12.880
|
| 256 |
+
de nómina, si no puedes almacenar a más de
|
| 257 |
+
un valor entonces puedes dejar a gente sin su pago
|
| 258 |
+
|
| 259 |
+
07:12.880 --> 07:17.120
|
| 260 |
+
completo o imagínate que estás haciendo
|
| 261 |
+
una aplicación que se encarga de medir distancias
|
| 262 |
+
|
| 263 |
+
07:17.120 --> 07:25.920
|
| 264 |
+
a través de un sensor láser y el máximo
|
| 265 |
+
que tu variable puede llegar es a 128 ¿no? de menos 128
|
| 266 |
+
|
| 267 |
+
07:25.920 --> 07:35.480
|
| 268 |
+
a más 128 ¿qué pasaría ahí? de menos 128 a
|
| 269 |
+
más 127, ponle ¿qué pasaría aquí? pues entonces si
|
| 270 |
+
|
| 271 |
+
07:35.480 --> 07:41.120
|
| 272 |
+
tuvieras que guardar un valor numérico de
|
| 273 |
+
200 ya no cabría y la máxima distancia que estaría midiendo
|
| 274 |
+
|
| 275 |
+
07:41.120 --> 07:48.240
|
| 276 |
+
tu sensor sería 127 ¿y qué pasa si hay un
|
| 277 |
+
cálculo importantísimo que te iba a servir ahí? bueno,
|
| 278 |
+
|
| 279 |
+
07:48.240 --> 07:53.560
|
| 280 |
+
¿me explico? es súper esencial que sepas
|
| 281 |
+
de qué tamaño vas a estar usando tus tipos de datos,
|
| 282 |
+
|
| 283 |
+
07:53.560 --> 08:00.480
|
| 284 |
+
ahora continuemos aprendiendo más tipos de
|
| 285 |
+
datos que hay en C, otro tipo de datos que puede ser
|
| 286 |
+
|
| 287 |
+
08:00.480 --> 08:06.400
|
| 288 |
+
muy común para operaciones simples va a
|
| 289 |
+
ser el short, el tipo de datos short te va a servir,
|
| 290 |
+
|
| 291 |
+
08:06.400 --> 08:14.160
|
| 292 |
+
este si es de 2 bytes, no importa qué
|
| 293 |
+
compilador estés usando está estandarizado en 2 bytes y va
|
| 294 |
+
|
| 295 |
+
08:14.160 --> 08:20.720
|
| 296 |
+
a llegar a esta misma distancia, déjame
|
| 297 |
+
ponerlo en 4 bytes el otro para que nos vayamos con el
|
| 298 |
+
|
| 299 |
+
08:20.720 --> 08:35.440
|
| 300 |
+
estándar vamos a ponerle 4 bytes y vamos a
|
| 301 |
+
ponerle sus valorcitos, ese es para el que va de números
|
| 302 |
+
|
| 303 |
+
08:35.440 --> 08:45.000
|
| 304 |
+
pues de números negativos a números
|
| 305 |
+
positivos y vamos a poner la versión de 4 bytes cuando es
|
| 306 |
+
|
| 307 |
+
08:45.000 --> 08:50.120
|
| 308 |
+
un signet, entonces ya espero que te haya
|
| 309 |
+
quedado muy claro, estoy seguro que te ha quedado muy
|
| 310 |
+
|
| 311 |
+
08:50.120 --> 08:56.360
|
| 312 |
+
claro cuándo debes usar un signed int y
|
| 313 |
+
cuándo debes usar int, ahora vamos a ver el short, de
|
| 314 |
+
|
| 315 |
+
08:56.360 --> 09:01.640
|
| 316 |
+
momento todavía no vamos a entrar a punto
|
| 317 |
+
flotante entonces short todavía sigue siendo aritmético,
|
| 318 |
+
|
| 319 |
+
09:01.640 --> 09:07.720
|
| 320 |
+
vamos a ponerlo aquí, hay que ser muy
|
| 321 |
+
ordenados para que nuestro código esté claro y legible,
|
| 322 |
+
|
| 323 |
+
09:07.720 --> 09:13.720
|
| 324 |
+
el short todos los tipos de datos van con
|
| 325 |
+
letra minúscula entonces tenemos el short listo,
|
| 326 |
+
|
| 327 |
+
09:13.720 --> 09:21.680
|
| 328 |
+
muy bien, obviamente existe un signet short,
|
| 329 |
+
todas tienen su versión unsigned, short y la
|
| 330 |
+
|
| 331 |
+
09:21.680 --> 09:32.080
|
| 332 |
+
versión de unsigned short va de 0 a 65 mil,
|
| 333 |
+
es de 2 bytes y va de 0 hasta 65 mil, aquí hay otro
|
| 334 |
+
|
| 335 |
+
09:32.080 --> 09:43.280
|
| 336 |
+
tipo de datos que vamos a poder tener para
|
| 337 |
+
números enteros que va a ser long, el número long también
|
| 338 |
+
|
| 339 |
+
09:43.280 --> 09:51.080
|
| 340 |
+
puede ser como ya sabes del tipo normal
|
| 341 |
+
que sería con signos y del tipo normal sin signos, así que
|
| 342 |
+
|
| 343 |
+
09:51.080 --> 09:59.680
|
| 344 |
+
podemos declarar long, long va a ser una
|
| 345 |
+
variable de 8 bytes y nos va a dar estos rangos, la verdad
|
| 346 |
+
|
| 347 |
+
09:59.680 --> 10:08.000
|
| 348 |
+
son números que ya ni siquiera puedo leer,
|
| 349 |
+
mira aquí hay 700 mil, aquí hay 854 millones, sí bueno
|
| 350 |
+
|
| 351 |
+
10:08.000 --> 10:15.280
|
| 352 |
+
tú te das cuenta son ya para cuando tienes
|
| 353 |
+
cifras muchísimo más grandes y también tenemos unsigned
|
| 354 |
+
|
| 355 |
+
10:15.280 --> 10:24.120
|
| 356 |
+
long, quizás dices, bueno esta clase me la
|
| 357 |
+
puedo saltar, no, esto es importantísimo en C
|
| 358 |
+
|
| 359 |
+
10:24.120 --> 10:29.520
|
| 360 |
+
porque todos tus programas van a depender
|
| 361 |
+
de esto, ya cuando tú sabes cuál puede ser el valor máximo
|
| 362 |
+
|
| 363 |
+
10:29.520 --> 10:35.640
|
| 364 |
+
en tu código de los números, como tú
|
| 365 |
+
tienes control de todo cuando estás programando en C, pues
|
| 366 |
+
|
| 367 |
+
10:35.640 --> 10:41.400
|
| 368 |
+
entonces puedes poner restricciones en tus
|
| 369 |
+
cajas de texto, restricciones en tus inputs para que no
|
| 370 |
+
|
| 371 |
+
10:41.400 --> 10:47.000
|
| 372 |
+
aceptes números más grandes a x cantidades
|
| 373 |
+
porque si no tú sabes que tu código se rompería, a eso
|
| 374 |
+
|
| 375 |
+
10:47.000 --> 10:54.280
|
| 376 |
+
me refiero con que todo debe de estar
|
| 377 |
+
precalculado, volvamos a nuestro código y date cuenta que estos
|
| 378 |
+
|
| 379 |
+
10:54.280 --> 11:01.040
|
| 380 |
+
son, quiero decirte que estos son los tres
|
| 381 |
+
tipos de datos que vamos a tener aritméticos, es
|
| 382 |
+
|
| 383 |
+
11:01.040 --> 11:11.960
|
| 384 |
+
decir que son valores íntegros, valores
|
| 385 |
+
enteros, valores enteros, muy bien todo en orden, ahora
|
| 386 |
+
|
| 387 |
+
11:11.960 --> 11:20.320
|
| 388 |
+
veamos los tipos de datos de punto
|
| 389 |
+
flotante que vamos a tener, para tipo flotante tenemos las
|
| 390 |
+
|
| 391 |
+
11:20.320 --> 11:26.240
|
| 392 |
+
siguientes herramientas, los siguientes
|
| 393 |
+
tipos de datos, que el primero va a ser el clásico float,
|
| 394 |
+
|
| 395 |
+
11:26.240 --> 11:38.080
|
| 396 |
+
este es de 4 bytes y su rango es el siguiente,
|
| 397 |
+
además tiene seis lugares o seis posiciones
|
| 398 |
+
|
| 399 |
+
11:38.080 --> 11:45.480
|
| 400 |
+
decimales, muy bien, si te das cuenta aquí
|
| 401 |
+
lo estamos expresando en notación científica, si no
|
| 402 |
+
|
| 403 |
+
11:45.480 --> 11:50.320
|
| 404 |
+
conoces la notación científica te voy a
|
| 405 |
+
dejar un enlace que te lo explica súper fácil en la sección
|
| 406 |
+
|
| 407 |
+
11:50.320 --> 11:56.640
|
| 408 |
+
de links, no nada, pero yo creo que ya
|
| 409 |
+
deberías saberlo, vamos a tener también aquí el tipo double,
|
| 410 |
+
|
| 411 |
+
11:58.640 --> 12:05.880
|
| 412 |
+
double, recuerda que la notación
|
| 413 |
+
científica se ocupa para escribir números muy grandes de
|
| 414 |
+
|
| 415 |
+
12:05.880 --> 12:13.960
|
| 416 |
+
forma legible, vamos a ir aquí, mira que
|
| 417 |
+
este va a tener 308 posiciones, o sea en lo negativo el
|
| 418 |
+
|
| 419 |
+
12:13.960 --> 12:20.920
|
| 420 |
+
punto se recorrería 308 hacia un lado y en
|
| 421 |
+
lo positivo el punto se recorrería 308 hacia el
|
| 422 |
+
|
| 423 |
+
12:20.920 --> 12:28.360
|
| 424 |
+
otro lado para darnos una cantidad
|
| 425 |
+
astronómica tal como la tenemos aquí arriba, ahora aquí
|
| 426 |
+
|
| 427 |
+
12:28.360 --> 12:34.320
|
| 428 |
+
por qué los números no son como estos que
|
| 429 |
+
son tan grandes, porque aquí tenemos las posiciones
|
| 430 |
+
|
| 431 |
+
12:34.320 --> 12:43.640
|
| 432 |
+
decimales, 15 decimal places, qué
|
| 433 |
+
significa 6 decimal places, 15 decimal places, que aquí vas a
|
| 434 |
+
|
| 435 |
+
12:43.640 --> 12:49.880
|
| 436 |
+
poder tener 15 datos después del punto,
|
| 437 |
+
aquí vas a poder tener 6, si te das cuenta la precisión
|
| 438 |
+
|
| 439 |
+
12:49.880 --> 12:58.880
|
| 440 |
+
aquí es gigantesca y por último vamos a
|
| 441 |
+
tener long double y si te das cuenta estos valores no
|
| 442 |
+
|
| 443 |
+
12:58.880 --> 13:09.280
|
| 444 |
+
pueden ser un SIN, simplemente los tienen
|
| 445 |
+
en SIN y ya, y este es de 10 bytes y los valores que puede
|
| 446 |
+
|
| 447 |
+
13:09.280 --> 13:20.680
|
| 448 |
+
tener son los siguientes y este tiene 19
|
| 449 |
+
posiciones decimales, es decir nos permite tener 19 valores
|
| 450 |
+
|
| 451 |
+
13:20.680 --> 13:27.920
|
| 452 |
+
después del punto, es muy importante que
|
| 453 |
+
en estas variables tengas la claridad de cuántos puntos
|
| 454 |
+
|
| 455 |
+
13:27.920 --> 13:33.200
|
| 456 |
+
decimales necesitas y aquí te voy a pasar
|
| 457 |
+
un tip súper rápido, si tú estás trabajando cuestiones
|
| 458 |
+
|
| 459 |
+
13:33.200 --> 13:38.560
|
| 460 |
+
financieras pues obviamente no te va a
|
| 461 |
+
servir 6 puntos decimales, deberías tener más quizás,
|
| 462 |
+
|
| 463 |
+
13:38.560 --> 13:48.880
|
| 464 |
+
por qué? quizás dices pero no tengo,
|
| 465 |
+
o sea con 6 ya puedo tener punto 263 521 centavos, claro pero
|
| 466 |
+
|
| 467 |
+
13:48.880 --> 13:57.480
|
| 468 |
+
si te faltaron 5 o 6 dígitos después para
|
| 469 |
+
que tengas el número exacto, qué pasa cuando sumas
|
| 470 |
+
|
| 471 |
+
13:57.480 --> 14:04.320
|
| 472 |
+
unas 100.000 veces esos datos que estaban
|
| 473 |
+
faltando la información, sin duda el número final te va a
|
| 474 |
+
|
| 475 |
+
14:04.320 --> 14:09.760
|
| 476 |
+
fallar, por eso es que ellos pensaron
|
| 477 |
+
cuando se desarrolló este lenguaje o en general en muchos
|
| 478 |
+
|
| 479 |
+
14:09.760 --> 14:17.240
|
| 480 |
+
lenguajes en que tú seas capaz de tener el
|
| 481 |
+
control de cuánto o qué información vas a poder guardar,
|
| 482 |
+
|
| 483 |
+
14:17.240 --> 14:23.600
|
| 484 |
+
qué pasa con más valores o qué pasa si yo
|
| 485 |
+
pongo más puntos decimales simplemente no los guardaría,
|
| 486 |
+
|
| 487 |
+
14:23.600 --> 14:29.120
|
| 488 |
+
así que tienes que tener mucho cuidado con
|
| 489 |
+
eso porque si no usas el correcto estarías simple y
|
| 490 |
+
|
| 491 |
+
14:29.120 --> 14:34.440
|
| 492 |
+
sencillamente perdiendo información,
|
| 493 |
+
pero si simplemente usas long double en todo entonces
|
| 494 |
+
|
| 495 |
+
14:34.440 --> 14:41.040
|
| 496 |
+
estarías desperdiciando memoria, por eso
|
| 497 |
+
te digo en C tienes que aprender a calcular lo que vas a
|
| 498 |
+
|
| 499 |
+
14:41.040 --> 14:51.440
|
| 500 |
+
utilizar. Con esto terminamos los tipos de
|
| 501 |
+
datos aritméticos, que es una forma fancy de decir
|
| 502 |
+
|
| 503 |
+
14:51.440 --> 14:58.000
|
| 504 |
+
números o de tipos de datos numéricos pero
|
| 505 |
+
es la correcta y los tipos aritméticos se dividen en dos
|
| 506 |
+
|
| 507 |
+
14:58.000 --> 15:05.600
|
| 508 |
+
en valores enteros que vamos a tener y en
|
| 509 |
+
valores de punto flotante, el primero siendo float y double
|
| 510 |
+
|
| 511 |
+
15:05.600 --> 15:12.240
|
| 512 |
+
y long double en respecto a los puntos
|
| 513 |
+
flotantes y valores enteros siendo int, short, long, los tres
|
| 514 |
+
|
| 515 |
+
15:12.240 --> 15:17.920
|
| 516 |
+
con sus versiones unsigned. En la próxima
|
| 517 |
+
clase aprenderás cómo puedes usar estos tipos de datos
|
| 518 |
+
|
| 519 |
+
15:17.920 --> 15:28.160
|
| 520 |
+
declarando variables y qué deberías
|
| 521 |
+
almacenar en cada una de ellas. Nos vemos allá.
|
| 522 |
+
|
03-Tipos de Datos en el lenguaje C/02-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
03-Tipos de Datos en el lenguaje C/02-Uso del Tipo de Dato Void en Programación en C.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f9626a72ac23c9b336a737cc3d916018be35a8af06355664036e38564e09c3fb
|
| 3 |
+
size 73659734
|
03-Tipos de Datos en el lenguaje C/02-Uso del Tipo de Dato Void en Programación en C.vtt
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:08.280
|
| 4 |
+
En esta clase vas a aprender sobre otro
|
| 5 |
+
tipo de datos que es esencial en el lenguaje de
|
| 6 |
+
|
| 7 |
+
00:08.280 --> 00:13.640
|
| 8 |
+
programación en C. Si bien los más
|
| 9 |
+
populares que vas a estar manejando son los aritméticos,
|
| 10 |
+
|
| 11 |
+
00:13.640 --> 00:18.720
|
| 12 |
+
ya sea con valores flotantes o con valores
|
| 13 |
+
enteros, igual vas a necesitar este nuevo
|
| 14 |
+
|
| 15 |
+
00:18.720 --> 00:23.680
|
| 16 |
+
tipo de datos y los próximos que veremos.
|
| 17 |
+
Todos son igual de importantes, solo que en
|
| 18 |
+
|
| 19 |
+
00:23.680 --> 00:31.240
|
| 20 |
+
programación muchas veces lo que más
|
| 21 |
+
utilizamos son números. Vamos a nuestro editor de código,
|
| 22 |
+
|
| 23 |
+
00:32.280 --> 00:39.080
|
| 24 |
+
vamos a escribir acá el tipo de dato nuevo
|
| 25 |
+
que te quiero mostrar. Este tipo de dato nuevo que te
|
| 26 |
+
|
| 27 |
+
00:39.080 --> 00:46.480
|
| 28 |
+
quiero mostrar es el tipo de dato void,
|
| 29 |
+
entonces vamos a escribirlo y esto lo vas a ver en muchas
|
| 30 |
+
|
| 31 |
+
00:46.480 --> 00:57.720
|
| 32 |
+
partes a lo largo del lenguaje C. Esto
|
| 33 |
+
void lo que hace es que especifica que no hay valor
|
| 34 |
+
|
| 35 |
+
00:57.720 --> 01:10.880
|
| 36 |
+
disponible. Eso es lo que nos va a
|
| 37 |
+
especificar y se usa en tres escenarios, por decirlo así.
|
| 38 |
+
|
| 39 |
+
01:10.880 --> 01:34.560
|
| 40 |
+
Bueno, el primero es que una función
|
| 41 |
+
retorna un tipo de datos void. ¿Qué quiere decir esto? Que
|
| 42 |
+
|
| 43 |
+
01:34.560 --> 01:42.800
|
| 44 |
+
una función cuando la ejecutes no nos va a
|
| 45 |
+
retornar ningún valor. Por ejemplo, una función como la que
|
| 46 |
+
|
| 47 |
+
01:42.800 --> 01:49.840
|
| 48 |
+
vemos acá en el main nos da un return 0.
|
| 49 |
+
Esta función es del tipo entero porque nos retorna
|
| 50 |
+
|
| 51 |
+
01:49.840 --> 01:57.120
|
| 52 |
+
un valor de 0. Si tú le pusieras esta
|
| 53 |
+
función void entonces no retornaría ningún valor y se
|
| 54 |
+
|
| 55 |
+
01:57.120 --> 02:02.560
|
| 56 |
+
rompería todo nuestro código en C. Esta
|
| 57 |
+
función no puede ser de tipo void porque entonces cuando
|
| 58 |
+
|
| 59 |
+
02:02.560 --> 02:08.200
|
| 60 |
+
nos está retornando este 0 se no detecta
|
| 61 |
+
que el main retorna 0 y eso va a hacer que el programa
|
| 62 |
+
|
| 63 |
+
02:08.200 --> 02:12.760
|
| 64 |
+
pues no se cerraría, simplemente el
|
| 65 |
+
compilador puede que no te lo deje hacer, son muchas cosas.
|
| 66 |
+
|
| 67 |
+
02:12.760 --> 02:18.840
|
| 68 |
+
Por eso esta función main que es de tipo
|
| 69 |
+
entero, que ahora ya sabes qué onda, nos retorna el valor
|
| 70 |
+
|
| 71 |
+
02:18.840 --> 02:32.080
|
| 72 |
+
0. Una función que se declara de la
|
| 73 |
+
siguiente manera void function, esta sería una función
|
| 74 |
+
|
| 75 |
+
02:32.080 --> 02:37.760
|
| 76 |
+
que no nos va a retornar ningún valor y
|
| 77 |
+
quizás te preguntas ¿para qué voy a querer utilizar una
|
| 78 |
+
|
| 79 |
+
02:37.760 --> 02:42.040
|
| 80 |
+
función que no nos va a retornar ningún
|
| 81 |
+
valor? Primero veremos funciones más adelante en el
|
| 82 |
+
|
| 83 |
+
02:42.040 --> 02:47.400
|
| 84 |
+
curso pero te doy el pequeño spoiler y es
|
| 85 |
+
que muchas veces vas a querer configurar variables
|
| 86 |
+
|
| 87 |
+
02:47.400 --> 02:52.720
|
| 88 |
+
adentro de tu función, cambiar valores,
|
| 89 |
+
pero no necesariamente vas a querer que la función te
|
| 90 |
+
|
| 91 |
+
02:52.720 --> 02:58.640
|
| 92 |
+
regrese un resultado de una operación
|
| 93 |
+
aritmética o te regrese alguna expresión en caracteres,
|
| 94 |
+
|
| 95 |
+
02:58.640 --> 03:04.400
|
| 96 |
+
no vas a querer nada, entonces ahí le
|
| 97 |
+
tendrías que poner void para que el programa no espere
|
| 98 |
+
|
| 99 |
+
03:04.400 --> 03:10.480
|
| 100 |
+
que la función retorne algún tipo de salida.
|
| 101 |
+
Las funciones pueden ser de todo tipo, char,
|
| 102 |
+
|
| 103 |
+
03:10.480 --> 03:15.120
|
| 104 |
+
las funciones pueden ser float, con todos
|
| 105 |
+
los tipos de datos que hemos aprendido a usar pero
|
| 106 |
+
|
| 107 |
+
03:15.120 --> 03:21.080
|
| 108 |
+
eso lo veremos más adelante, solo quiero
|
| 109 |
+
que te quede claro que void uno de sus usos es ese.
|
| 110 |
+
|
| 111 |
+
03:21.080 --> 03:30.200
|
| 112 |
+
Vamos a dejar aquí unos espacios con
|
| 113 |
+
nuestro tabulador, vamos a poner el punto 2,
|
| 114 |
+
|
| 115 |
+
03:30.200 --> 03:44.960
|
| 116 |
+
function tiene argumentos de tipo void.
|
| 117 |
+
Bueno esto es otro caso de uso, van a existir funciones
|
| 118 |
+
|
| 119 |
+
03:44.960 --> 03:50.640
|
| 120 |
+
que no aceptan ningún parámetro, una
|
| 121 |
+
función que no acepta ningún parámetro va a ser una
|
| 122 |
+
|
| 123 |
+
03:50.640 --> 03:58.520
|
| 124 |
+
función que debe de tener void adentro,
|
| 125 |
+
por ejemplo imagínate que declaramos una función
|
| 126 |
+
|
| 127 |
+
03:58.520 --> 04:04.520
|
| 128 |
+
para que nos dé un valor random, se puede
|
| 129 |
+
utilizar el void ahí, entonces esta función que estoy
|
| 130 |
+
|
| 131 |
+
04:04.520 --> 04:11.640
|
| 132 |
+
declarando random no necesita ningún
|
| 133 |
+
número como argumento, los argumentos de la función van a ir
|
| 134 |
+
|
| 135 |
+
04:11.640 --> 04:17.880
|
| 136 |
+
aquí adentro, y mira que esta función si
|
| 137 |
+
nos va a retornar un valor en la salida, porque se puede
|
| 138 |
+
|
| 139 |
+
04:17.880 --> 04:24.440
|
| 140 |
+
declarar del tipo void. Vamos a poner de
|
| 141 |
+
los ejemplos acá, solo quiero que tengas bien claro
|
| 142 |
+
|
| 143 |
+
04:24.440 --> 04:37.320
|
| 144 |
+
este tipo de dato que es void, void función,
|
| 145 |
+
una función del tipo int que va a tener void,
|
| 146 |
+
|
| 147 |
+
04:37.320 --> 04:42.440
|
| 148 |
+
y mira que los tipos de datos también se
|
| 149 |
+
ocupan en funciones, se ocupan en variables y en eso,
|
| 150 |
+
|
| 151 |
+
04:42.440 --> 04:54.600
|
| 152 |
+
vamos a tener el caso de uso número 3,
|
| 153 |
+
puntero o apuntador, puntero o apuntador que va a la dirección
|
| 154 |
+
|
| 155 |
+
04:56.000 --> 05:07.080
|
| 156 |
+
en memoria de un objeto en la memoria
|
| 157 |
+
física de tu computadora, pero no le importa el tipo de objeto
|
| 158 |
+
|
| 159 |
+
05:07.080 --> 05:19.680
|
| 160 |
+
que tenga, el tipo de dato que tenga, ok,
|
| 161 |
+
what does this mean? qué significa esto? lo que pasa en el
|
| 162 |
+
|
| 163 |
+
05:19.680 --> 05:26.360
|
| 164 |
+
tercer caso es que tú puedes apuntar a una
|
| 165 |
+
dirección de memoria para obtener un dato pero no necesariamente
|
| 166 |
+
|
| 167 |
+
05:26.360 --> 05:32.880
|
| 168 |
+
vas a ser capaz de que te diga cuál va a
|
| 169 |
+
ser el tipo de datos que vas a estar trabajando, qué
|
| 170 |
+
|
| 171 |
+
05:32.880 --> 05:38.200
|
| 172 |
+
significa esto? bueno cuando estás
|
| 173 |
+
trabajando con memoria las cosas se ponen complicadas pero no te
|
| 174 |
+
|
| 175 |
+
05:38.200 --> 05:42.720
|
| 176 |
+
preocupes que más adelante tenemos una
|
| 177 |
+
clase bien buena que te va a explicar todo lo de los punteros,
|
| 178 |
+
|
| 179 |
+
05:42.720 --> 05:49.800
|
| 180 |
+
mientras tanto te cuento, tú en C puedes
|
| 181 |
+
acceder directo a la memoria a través de apuntar a una
|
| 182 |
+
|
| 183 |
+
05:49.800 --> 05:55.560
|
| 184 |
+
dirección específica, si tú le pones void,
|
| 185 |
+
si le pones que el puntero sea un dato como void,
|
| 186 |
+
|
| 187 |
+
05:55.560 --> 06:02.160
|
| 188 |
+
entonces no te va a importar el tipo de
|
| 189 |
+
datos que tenga eso que tú estás manejando en la memoria,
|
| 190 |
+
|
| 191 |
+
06:02.160 --> 06:09.080
|
| 192 |
+
y esto te va a permitir hacer un casteo de
|
| 193 |
+
este dato a cualquier tipo de datos, un casteo es
|
| 194 |
+
|
| 195 |
+
06:09.080 --> 06:15.720
|
| 196 |
+
agarrar una información y pasarla o
|
| 197 |
+
transformarla a otro a un tipo de datos específico, los casteos
|
| 198 |
+
|
| 199 |
+
06:15.720 --> 06:21.240
|
| 200 |
+
son bien importantes porque a veces
|
| 201 |
+
necesitas castear de números enteros a números flotantes
|
| 202 |
+
|
| 203 |
+
06:21.240 --> 06:26.400
|
| 204 |
+
ya que si no pues cómo vas a hacer la suma,
|
| 205 |
+
qué deberías esperar al final, idealmente deberías
|
| 206 |
+
|
| 207 |
+
06:26.400 --> 06:32.560
|
| 208 |
+
de si quieres si estás trabajando con
|
| 209 |
+
datos flotantes y por alguna razón había un número
|
| 210 |
+
|
| 211 |
+
06:32.560 --> 06:36.880
|
| 212 |
+
entero, bueno primero idealmente hubieras
|
| 213 |
+
declarado todo como flotante pero si no tú
|
| 214 |
+
|
| 215 |
+
06:36.880 --> 06:43.120
|
| 216 |
+
puedes hacer un casteo para convertir tu
|
| 217 |
+
número entero a un número de tipo flotante, existen
|
| 218 |
+
|
| 219 |
+
06:43.120 --> 06:48.640
|
| 220 |
+
varios casteos en C por defecto y también
|
| 221 |
+
tú puedes programar casteos si quisieras a través
|
| 222 |
+
|
| 223 |
+
06:48.640 --> 06:53.880
|
| 224 |
+
de pues el código que se te permite escribir,
|
| 225 |
+
con esto dicho ya hemos estudiado el tipo de
|
| 226 |
+
|
| 227 |
+
06:53.880 --> 06:58.800
|
| 228 |
+
dato void y espero que te quede claro,
|
| 229 |
+
puede ser un poco confuso porque es avanzado pero si tienes
|
| 230 |
+
|
| 231 |
+
06:58.800 --> 07:03.680
|
| 232 |
+
dudas no te preocupes una vez vayamos
|
| 233 |
+
viendo funciones, una vez vayamos viendo punteros,
|
| 234 |
+
|
| 235 |
+
07:03.680 --> 07:08.120
|
| 236 |
+
todo esto que acabas de aprender aquí va a
|
| 237 |
+
ser todavía mucho más click pero mientras
|
| 238 |
+
|
| 239 |
+
07:08.120 --> 07:26.520
|
| 240 |
+
nos vemos en la siguiente
|
| 241 |
+
clase.
|
| 242 |
+
|
03-Tipos de Datos en el lenguaje C/03-Enums en C Uso y Ejemplos Prácticos para Constantes.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b39eb61d82d01ac7767289fb684ba006a359f2087f6f09f46c67971334a3b0df
|
| 3 |
+
size 146113229
|
03-Tipos de Datos en el lenguaje C/03-Enums en C Uso y Ejemplos Prácticos para Constantes.vtt
ADDED
|
@@ -0,0 +1,498 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:09.200
|
| 4 |
+
En esta clase vas a aprender sobre los
|
| 5 |
+
enums o enumerations en el lenguaje C. Esto es una
|
| 6 |
+
|
| 7 |
+
00:09.200 --> 00:14.760
|
| 8 |
+
especie de lista, es un tipo de datos que
|
| 9 |
+
nos va a servir para guardar valores constantes.
|
| 10 |
+
|
| 11 |
+
00:14.760 --> 00:20.320
|
| 12 |
+
¿Cómo así? Vamos a Visual Studio Code.
|
| 13 |
+
Lo primero que voy a hacer es guardar todo lo
|
| 14 |
+
|
| 15 |
+
00:20.320 --> 00:25.560
|
| 16 |
+
que había escrito en la clase anterior y
|
| 17 |
+
voy a ir a File, voy a crear un new file y lo voy
|
| 18 |
+
|
| 19 |
+
00:25.560 --> 00:35.640
|
| 20 |
+
a guardar como enums.c. Básico. Espero que
|
| 21 |
+
hagas lo mismo y me acompañes a lo largo de esta clase.
|
| 22 |
+
|
| 23 |
+
00:35.640 --> 00:41.040
|
| 24 |
+
Veamos un ejemplo directo en código para
|
| 25 |
+
que nos vaya quedando claro. Una de las grandes formas
|
| 26 |
+
|
| 27 |
+
00:41.040 --> 00:47.440
|
| 28 |
+
de explicar los enums, imagínate que tú
|
| 29 |
+
tienes un caso de uso en donde vas a tener datos constantes
|
| 30 |
+
|
| 31 |
+
00:47.440 --> 00:52.840
|
| 32 |
+
que vas a necesitar en tu programa y que
|
| 33 |
+
van a pertenecer a un mismo grupo de datos. Por ejemplo,
|
| 34 |
+
|
| 35 |
+
00:52.840 --> 00:59.920
|
| 36 |
+
los días de la semana de lunes a domingo.
|
| 37 |
+
Eso quedaría perfecto en un enum porque puedes
|
| 38 |
+
|
| 39 |
+
00:59.920 --> 01:05.360
|
| 40 |
+
guardar los días lunes, martes, miércoles,
|
| 41 |
+
jueves, viernes, sábado y domingo y entonces puedes crear
|
| 42 |
+
|
| 43 |
+
01:05.360 --> 01:11.680
|
| 44 |
+
tu enum que se llame semana. Tienes tus
|
| 45 |
+
valores constantes que son los días de la semana adentro
|
| 46 |
+
|
| 47 |
+
01:11.680 --> 01:17.360
|
| 48 |
+
de un enum que contiene toda la semana.
|
| 49 |
+
Esta es la lógica que debes usar cuando tengas que
|
| 50 |
+
|
| 51 |
+
01:17.360 --> 01:23.480
|
| 52 |
+
tomar la decisión si deberías usar un enum
|
| 53 |
+
o no. Otro caso de un enum sería para quizás estás
|
| 54 |
+
|
| 55 |
+
01:23.480 --> 01:30.360
|
| 56 |
+
pensando un juego y vas a declarar que tal
|
| 57 |
+
tipo de carta tiene tal tipo de ataque. Por ejemplo,
|
| 58 |
+
|
| 59 |
+
01:30.360 --> 01:36.480
|
| 60 |
+
entonces puedes crear un enum en donde
|
| 61 |
+
crees la carta mazos, la carta espadas, la carta copas,
|
| 62 |
+
|
| 63 |
+
01:36.480 --> 01:41.920
|
| 64 |
+
la carta no sé cuál es la otra carta en la
|
| 65 |
+
franja española pero tú me entiendes y a cada uno de
|
| 66 |
+
|
| 67 |
+
01:41.920 --> 01:47.600
|
| 68 |
+
estos tipos de carta le asignas un peso
|
| 69 |
+
entonces tendrías todas las cartas guardadas en una
|
| 70 |
+
|
| 71 |
+
01:47.600 --> 01:53.800
|
| 72 |
+
variable que se llame dec o monte de cartas.
|
| 73 |
+
Ese es otro ejemplo. Puedes pensar en tus propios
|
| 74 |
+
|
| 75 |
+
01:53.800 --> 02:00.800
|
| 76 |
+
ejemplos y me los puedes dejar en la
|
| 77 |
+
sección de comentarios. Solo quiero comentarte que los enums,
|
| 78 |
+
|
| 79 |
+
02:00.800 --> 02:07.600
|
| 80 |
+
los valores o las variables dentro de un
|
| 81 |
+
enum sólo pueden tener un valor. Entonces los enums
|
| 82 |
+
|
| 83 |
+
02:07.600 --> 02:12.920
|
| 84 |
+
pueden tener constantes como sería el caso
|
| 85 |
+
de uso de los días de la semana y los enums también
|
| 86 |
+
|
| 87 |
+
02:12.920 --> 02:18.440
|
| 88 |
+
pueden tener variables que van a ser los
|
| 89 |
+
datos que van a estar cambiando. ¿Por qué deberías usar
|
| 90 |
+
|
| 91 |
+
02:18.440 --> 02:22.360
|
| 92 |
+
variables dentro de un enum? Porque si en
|
| 93 |
+
tu juego estamos hablando del juego de cartas,
|
| 94 |
+
|
| 95 |
+
02:22.360 --> 02:27.680
|
| 96 |
+
vas a más adelante a hacer un balance
|
| 97 |
+
entre todas las cartas para que tengan diferentes o
|
| 98 |
+
|
| 99 |
+
02:27.680 --> 02:32.440
|
| 100 |
+
nuevos poderes de ataque por decir algo o
|
| 101 |
+
nuevos valores numéricos por decir algo, entonces
|
| 102 |
+
|
| 103 |
+
02:32.440 --> 02:37.640
|
| 104 |
+
simplemente vas al enum, haces los cambios
|
| 105 |
+
ahí y todo tu código, toda la lógica del juego sigue
|
| 106 |
+
|
| 107 |
+
02:37.640 --> 02:43.280
|
| 108 |
+
igual porque las cartas siguen siendo las
|
| 109 |
+
mismas. Vamos a verlo en código. Otro ejemplo que te
|
| 110 |
+
|
| 111 |
+
02:43.280 --> 02:47.800
|
| 112 |
+
quiero mostrar y ya quiero que entremos en
|
| 113 |
+
los detalles de cómo declararíamos un enum que va
|
| 114 |
+
|
| 115 |
+
02:47.800 --> 02:53.560
|
| 116 |
+
a tener variables. Imagínate que estás
|
| 117 |
+
haciendo un sistema en donde los elementos de diseño van
|
| 118 |
+
|
| 119 |
+
02:53.560 --> 03:01.840
|
| 120 |
+
a ser súper importantes entonces yo podría
|
| 121 |
+
poner design elements porque obviamente debes escribir
|
| 122 |
+
|
| 123 |
+
03:01.840 --> 03:05.840
|
| 124 |
+
código en inglés por favor si escribes
|
| 125 |
+
código en español no lo hagas por nada del mundo.
|
| 126 |
+
|
| 127 |
+
03:07.360 --> 03:15.000
|
| 128 |
+
Design elements, vamos a abrir nuestras
|
| 129 |
+
llaves y adentro vamos a declarar nuestro enum entonces
|
| 130 |
+
|
| 131 |
+
03:15.000 --> 03:23.240
|
| 132 |
+
vamos a decir que por decirlo así italics
|
| 133 |
+
va a ser igual a 1 para que si alguien selecciona 1
|
| 134 |
+
|
| 135 |
+
03:23.240 --> 03:33.800
|
| 136 |
+
se ponga en italic o para que bold sea
|
| 137 |
+
igual a 2 y para que underline o strike
|
| 138 |
+
|
| 139 |
+
03:38.600 --> 03:43.720
|
| 140 |
+
sea igual a 3 entonces estos son valores
|
| 141 |
+
que vamos a estar definiendo en nuestro código
|
| 142 |
+
|
| 143 |
+
03:43.720 --> 03:48.560
|
| 144 |
+
obviamente estos números tendrían algún
|
| 145 |
+
impacto en nuestra lógica más adelante ahora hagamos el
|
| 146 |
+
|
| 147 |
+
03:48.560 --> 03:53.520
|
| 148 |
+
ejemplo con los días de la semana pero ya
|
| 149 |
+
hagámoslo con un código más completo voy a traerme aquí mi
|
| 150 |
+
|
| 151 |
+
03:53.520 --> 03:59.320
|
| 152 |
+
esqueleto básico de un programa en C ok
|
| 153 |
+
para poder imprimir cositas voy a pegarlo en enums
|
| 154 |
+
|
| 155 |
+
03:59.320 --> 04:06.600
|
| 156 |
+
solamente tengo el stdio ya sabes tengo el
|
| 157 |
+
main y arriba voy a declarar mi enum vamos a hacer justo
|
| 158 |
+
|
| 159 |
+
04:06.600 --> 04:14.440
|
| 160 |
+
eso no quiero imprimir hola mundo o ni
|
| 161 |
+
hola estudiante vamos a declarar mi enum. Te acuerdas
|
| 162 |
+
|
| 163 |
+
04:14.440 --> 04:18.760
|
| 164 |
+
que te dije del ejemplo de los días de la
|
| 165 |
+
semana veamos ese ejemplo en código cómo se podría
|
| 166 |
+
|
| 167 |
+
04:18.760 --> 04:27.640
|
| 168 |
+
mostrar ya sabes vamos a declarar nuestro
|
| 169 |
+
enum y eso es todo ahora vamos a ponerle weekdays date
|
| 170 |
+
|
| 171 |
+
04:27.640 --> 04:32.040
|
| 172 |
+
cuenta que yo escribo en camel casing es
|
| 173 |
+
decir siempre vas a empezar con minúscula y después
|
| 174 |
+
|
| 175 |
+
04:32.040 --> 04:39.200
|
| 176 |
+
cada letra va a estar en mayúscula cada
|
| 177 |
+
palabra nueva va a empezar con su letra en mayúscula la
|
| 178 |
+
|
| 179 |
+
04:39.200 --> 04:46.960
|
| 180 |
+
primera entonces weekdays of month por
|
| 181 |
+
ejemplo ese sería un caso de uso de mi camel casing que estoy
|
| 182 |
+
|
| 183 |
+
04:46.960 --> 04:52.960
|
| 184 |
+
teniendo pero no sólo weekdays es más que
|
| 185 |
+
suficiente vamos a abrir nuestro enum vamos a
|
| 186 |
+
|
| 187 |
+
04:52.960 --> 05:01.440
|
| 188 |
+
crear nuestra listita sunday aquí estamos
|
| 189 |
+
declarando una enumeración de valores constantes así que
|
| 190 |
+
|
| 191 |
+
05:01.440 --> 05:08.800
|
| 192 |
+
debes de separarlos por comas simple y
|
| 193 |
+
sencillamente va a ser una vil y cruel lista una sencilla lista
|
| 194 |
+
|
| 195 |
+
05:08.800 --> 05:17.400
|
| 196 |
+
Tuesday, Sunday, Monday, Tuesday, Wednesday,
|
| 197 |
+
tengo problemas siempre en pronunciar esa palabra a
|
| 198 |
+
|
| 199 |
+
05:17.400 --> 05:25.000
|
| 200 |
+
veces detalles no soy profe de inglés
|
| 201 |
+
Friday y Saturday muy bien ya nos sabemos los días en
|
| 202 |
+
|
| 203 |
+
05:25.000 --> 05:31.120
|
| 204 |
+
inglés además de saber utilizar los enums
|
| 205 |
+
luego vamos a nuestro main vamos a importar o llamar
|
| 206 |
+
|
| 207 |
+
05:31.120 --> 05:38.400
|
| 208 |
+
nuestro enum y vamos a decirle oye pásame
|
| 209 |
+
el día de hoy week y quiero un valor que se llame
|
| 210 |
+
|
| 211 |
+
05:38.400 --> 05:45.000
|
| 212 |
+
today y aquí quizás te preguntas what que
|
| 213 |
+
sería today bueno hay que declararlo entonces today
|
| 214 |
+
|
| 215 |
+
05:47.240 --> 05:52.320
|
| 216 |
+
today va a ser igual a
|
| 217 |
+
Wednesday
|
| 218 |
+
|
| 219 |
+
05:54.600 --> 06:02.560
|
| 220 |
+
Wednesday y luego le voy a preguntar a se
|
| 221 |
+
que me diga oye qué día es hoy por favor vamos a ponerle
|
| 222 |
+
|
| 223 |
+
06:02.560 --> 06:09.520
|
| 224 |
+
%d más adelante vamos a entrar a detalle
|
| 225 |
+
en cómo son los estándares para escribir esto no te
|
| 226 |
+
|
| 227 |
+
06:09.520 --> 06:17.120
|
| 228 |
+
preocupes por nada entonces de ahí luego
|
| 229 |
+
%d que es para darle formato a la salida quiero sacar
|
| 230 |
+
|
| 231 |
+
06:17.120 --> 06:23.480
|
| 232 |
+
un número decimal porque quiero saber cuál
|
| 233 |
+
es el día del miércoles ok entonces va a ser today
|
| 234 |
+
|
| 235 |
+
06:23.480 --> 06:30.560
|
| 236 |
+
más uno y aquí quizás te preguntas por qué
|
| 237 |
+
más uno por qué y esto es un concepto importantísimo
|
| 238 |
+
|
| 239 |
+
06:30.560 --> 06:38.560
|
| 240 |
+
en el mundo de la programación este valor
|
| 241 |
+
en mi enumeración es el valor 0 mira aquí dice
|
| 242 |
+
|
| 243 |
+
06:38.560 --> 06:45.840
|
| 244 |
+
sunday igual a 0 es la posición 0 que
|
| 245 |
+
tenemos en nuestro enum y sábado es la posición 5 pero
|
| 246 |
+
|
| 247 |
+
06:45.840 --> 06:53.120
|
| 248 |
+
nosotros como humanos no tenemos un día 0
|
| 249 |
+
de la semana tenemos el día 1 y tenemos el día 6 de la
|
| 250 |
+
|
| 251 |
+
06:53.120 --> 07:01.640
|
| 252 |
+
semana sábanse lunes martes miércoles
|
| 253 |
+
jueves viernes sábado domingo ok tenemos del día 1 al
|
| 254 |
+
|
| 255 |
+
07:01.640 --> 07:08.360
|
| 256 |
+
día 7 de la semana y en código nunca
|
| 257 |
+
empieza desde el 1 en código siempre empezamos desde la posición
|
| 258 |
+
|
| 259 |
+
07:08.360 --> 07:18.680
|
| 260 |
+
0 así que sería posición 0 posición 1
|
| 261 |
+
posición 2 posición 3 posición 4 y posición 5 y justo con
|
| 262 |
+
|
| 263 |
+
07:18.680 --> 07:23.840
|
| 264 |
+
esto de conteo que acabo de hacer de las
|
| 265 |
+
posiciones me he dado cuenta que nos faltaba el jueves con
|
| 266 |
+
|
| 267 |
+
07:23.840 --> 07:30.520
|
| 268 |
+
razón aquí sólo había seis días de la
|
| 269 |
+
semana muy bien tuesday justamente hoy es un día jueves de una
|
| 270 |
+
|
| 271 |
+
07:30.520 --> 07:36.520
|
| 272 |
+
fecha que no te voy a decir pero es
|
| 273 |
+
curioso que se me haya pasado justo el jueves vamos a guardar
|
| 274 |
+
|
| 275 |
+
07:36.520 --> 07:42.120
|
| 276 |
+
control s ya actualizamos esto ahora sí
|
| 277 |
+
todo está bien tenemos nuestros siete días sólo que va de
|
| 278 |
+
|
| 279 |
+
07:42.120 --> 07:48.280
|
| 280 |
+
la posición 0 a la posición 6 tal cual
|
| 281 |
+
como debería ser y como es en el mundo real por eso
|
| 282 |
+
|
| 283 |
+
07:48.280 --> 07:55.400
|
| 284 |
+
nosotros a today le sumamos un número 1
|
| 285 |
+
para que no empiece en 0 sino que empiece en 1 por ejemplo
|
| 286 |
+
|
| 287 |
+
07:55.400 --> 08:05.760
|
| 288 |
+
sonde vamos a guardar y vamos a correr
|
| 289 |
+
nuestro código recuerda que lo corres con f6 si tienes
|
| 290 |
+
|
| 291 |
+
08:05.760 --> 08:11.880
|
| 292 |
+
la configuración igualita la mía y tenemos
|
| 293 |
+
un error claro nos faltó un punto y coma acá muy bien
|
| 294 |
+
|
| 295 |
+
08:11.880 --> 08:18.360
|
| 296 |
+
y nos faltó un punto y coma acá típico de
|
| 297 |
+
c es bueno que lo veas siempre siempre checa por los
|
| 298 |
+
|
| 299 |
+
08:18.360 --> 08:27.800
|
| 300 |
+
puntos y comas vamos a volver a ejecutar
|
| 301 |
+
nuestro código ok déjame ir a la terminal y hacer no
|
| 302 |
+
|
| 303 |
+
08:27.800 --> 08:36.120
|
| 304 |
+
no me está dejando ok claro que no vamos a
|
| 305 |
+
darle clear y vamos acá control s y vamos a volver a
|
| 306 |
+
|
| 307 |
+
08:36.120 --> 08:44.280
|
| 308 |
+
ejecutar nuestro código esperemos a ver y
|
| 309 |
+
dice que todavía tenemos un error y mira que no sólo
|
| 310 |
+
|
| 311 |
+
08:44.280 --> 08:49.600
|
| 312 |
+
tenemos el problema de los puntos y comas
|
| 313 |
+
lo que pasa aquí es que nos dice oye no sé de qué hablas
|
| 314 |
+
|
| 315 |
+
08:49.600 --> 08:55.560
|
| 316 |
+
cuál es el storage size de en un week
|
| 317 |
+
today y aquí es medio deceiving si no tienes experiencia es
|
| 318 |
+
|
| 319 |
+
08:55.560 --> 09:01.800
|
| 320 |
+
medio confuso si no tienes experiencia
|
| 321 |
+
porque porque today no es el problema el problema es
|
| 322 |
+
|
| 323 |
+
09:01.800 --> 09:07.440
|
| 324 |
+
que nosotros escribimos week en nuestro en
|
| 325 |
+
un cuando en realidad se llama weekdays vamos a
|
| 326 |
+
|
| 327 |
+
09:07.440 --> 09:13.160
|
| 328 |
+
actualizar esto guardamos ejecutamos el
|
| 329 |
+
código y esto que acabo de hacer yo esto que te acabo
|
| 330 |
+
|
| 331 |
+
09:13.160 --> 09:20.440
|
| 332 |
+
de mostrar se conoce como debugging mira
|
| 333 |
+
que ya me dijo que el día sonday es el primer día de la
|
| 334 |
+
|
| 335 |
+
09:20.440 --> 09:25.880
|
| 336 |
+
semana hagamos un pequeño cambio sólo
|
| 337 |
+
porque en realidad en nuestro sistema todo empieza en el
|
| 338 |
+
|
| 339 |
+
09:25.880 --> 09:32.480
|
| 340 |
+
lunes entonces vamos a poner un sonday y
|
| 341 |
+
este proceso que hicimos que fue buscar los errores
|
| 342 |
+
|
| 343 |
+
09:32.480 --> 09:39.880
|
| 344 |
+
leer el output ver qué estaba ocurriendo
|
| 345 |
+
se conoce como debugging es decir vamos a estar buscando en
|
| 346 |
+
|
| 347 |
+
09:39.880 --> 09:45.320
|
| 348 |
+
dónde están los errores en nuestro código
|
| 349 |
+
es bien importante que siempre leas las líneas y veas qué
|
| 350 |
+
|
| 351 |
+
09:45.320 --> 09:52.600
|
| 352 |
+
está pasando aquí el set te lo indica pero
|
| 353 |
+
siempre te va a indicar muchas veces un espacio más adelante
|
| 354 |
+
|
| 355 |
+
09:52.600 --> 09:58.800
|
| 356 |
+
de lo que está mal entonces en este caso
|
| 357 |
+
nos decía hoy el today que pero en realidad el problema era
|
| 358 |
+
|
| 359 |
+
09:58.800 --> 10:04.040
|
| 360 |
+
porque week no estaba declarado bien era
|
| 361 |
+
weekdays espero que te haya quedado súper claro veamos
|
| 362 |
+
|
| 363 |
+
10:04.040 --> 10:09.160
|
| 364 |
+
ahora qué pasa con sonde y sólo quiero que
|
| 365 |
+
tengas súper claro el funcionamiento de todo esto vamos a
|
| 366 |
+
|
| 367 |
+
10:09.160 --> 10:15.400
|
| 368 |
+
correrlo otra vez vamos a nuestro terminal
|
| 369 |
+
y listo tenemos que vamos del día 1 al día 7 ahora hagamos
|
| 370 |
+
|
| 371 |
+
10:15.400 --> 10:23.320
|
| 372 |
+
el ejemplo con lo que yo te decía de las
|
| 373 |
+
cartas o no sé quizás enemigos en un videojuego lo que sea
|
| 374 |
+
|
| 375 |
+
10:23.320 --> 10:31.240
|
| 376 |
+
vamos a poder vamos a tener values en un
|
| 377 |
+
proyecto real tendrías que usar nombres de variables mucho
|
| 378 |
+
|
| 379 |
+
10:31.240 --> 10:37.840
|
| 380 |
+
más nombres de tu genomes mucho más
|
| 381 |
+
específicos de hecho le voy a poner el nombre deck de deck
|
| 382 |
+
|
| 383 |
+
10:37.840 --> 10:44.240
|
| 384 |
+
de cartas y le voy a poner mi y voy a
|
| 385 |
+
declarar mis variables cuando estoy trabajando con cuando
|
| 386 |
+
|
| 387 |
+
10:44.240 --> 10:50.400
|
| 388 |
+
estás trabajando con variables siempre es
|
| 389 |
+
mejor que dejes espacio acá que abras y cierres y entonces
|
| 390 |
+
|
| 391 |
+
10:50.400 --> 11:00.160
|
| 392 |
+
lo escribas vamos a decirle esta va a ser
|
| 393 |
+
mi carta 0 coma luego vamos a tener diamantes este podría
|
| 394 |
+
|
| 395 |
+
11:00.160 --> 11:09.720
|
| 396 |
+
ser mi carta con un valor de 5 vamos a
|
| 397 |
+
ponerle 5 coma además de diamantes si no me equivoco en los
|
| 398 |
+
|
| 399 |
+
11:09.720 --> 11:17.840
|
| 400 |
+
juegos de cartas hay corazones entonces
|
| 401 |
+
corazones sería igual a 10 y date cuenta que cada carta va
|
| 402 |
+
|
| 403 |
+
11:17.840 --> 11:26.880
|
| 404 |
+
teniendo mucho mayor valor y la última
|
| 405 |
+
carta que hay son espadas spades vamos a decirle que espadas
|
| 406 |
+
|
| 407 |
+
11:26.880 --> 11:32.600
|
| 408 |
+
sería un valor de 15 así sale una carta de
|
| 409 |
+
espadas tienes 15 puntos y matas a los otros no el que
|
| 410 |
+
|
| 411 |
+
11:32.600 --> 11:38.000
|
| 412 |
+
tenga más puntos al final gana esa es la
|
| 413 |
+
lógica detrás de este juego estamos declarando el deck
|
| 414 |
+
|
| 415 |
+
11:38.000 --> 11:44.000
|
| 416 |
+
y obviamente un deck va a tener cartas
|
| 417 |
+
vamos a decirle vamos a pasarle el valor card
|
| 418 |
+
|
| 419 |
+
11:46.800 --> 11:53.280
|
| 420 |
+
y vamos a imprimir esto entonces todo lo
|
| 421 |
+
que habíamos escrito ya nos sirve vamos a pasarle
|
| 422 |
+
|
| 423 |
+
11:53.280 --> 11:59.640
|
| 424 |
+
la relación de que nuestra carta viene de
|
| 425 |
+
mí en un no nuestra carta que queremos seleccionar la
|
| 426 |
+
|
| 427 |
+
11:59.640 --> 12:04.760
|
| 428 |
+
primera yo quiero que sea spades aquí
|
| 429 |
+
obviamente esto lo podrías hacer random más adelante con
|
| 430 |
+
|
| 431 |
+
12:04.760 --> 12:09.640
|
| 432 |
+
una función que aleatoriamente eligiera
|
| 433 |
+
una de las cuatro posiciones dentro de tu en un
|
| 434 |
+
|
| 435 |
+
12:10.640 --> 12:15.200
|
| 436 |
+
vamos a ponerle eso todo listo y luego
|
| 437 |
+
vamos a imprimir
|
| 438 |
+
|
| 439 |
+
12:20.640 --> 12:26.880
|
| 440 |
+
por ejemplo que podemos hacer con esto lo
|
| 441 |
+
que te digo sacar aleatoriamente una carta podemos hacer
|
| 442 |
+
|
| 443 |
+
12:26.880 --> 12:33.000
|
| 444 |
+
muchas muchas cosas pero lo primero que
|
| 445 |
+
quiero es que veamos qué pasa si simplemente utilizamos
|
| 446 |
+
|
| 447 |
+
12:33.000 --> 12:42.320
|
| 448 |
+
el código que ya tenemos cart ok vamos a
|
| 449 |
+
darle safe y vamos a darle fn f6 en el caso de mi laptop
|
| 450 |
+
|
| 451 |
+
12:42.320 --> 12:50.120
|
| 452 |
+
en tu caso es solo f6 y mira dice de 15
|
| 453 |
+
porque porque le escribimos de acá porque está esto
|
| 454 |
+
|
| 455 |
+
12:50.120 --> 13:02.440
|
| 456 |
+
está quemado en el código entonces cart
|
| 457 |
+
value o cart power por ejemplo vamos a darle guardar
|
| 458 |
+
|
| 459 |
+
13:02.440 --> 13:09.240
|
| 460 |
+
y vamos a otra vez compilar el código y
|
| 461 |
+
ejecutarlo vamos a ver qué sale y mira ya dice cart power
|
| 462 |
+
|
| 463 |
+
13:09.240 --> 13:15.880
|
| 464 |
+
igual a 15 tal como lo tenemos acá vamos a
|
| 465 |
+
ver qué tanto pesa o cuál es el tamaño de mi variable
|
| 466 |
+
|
| 467 |
+
13:15.880 --> 13:26.880
|
| 468 |
+
vamos a escribir size of variable y la
|
| 469 |
+
variable cuyo tamaño quiero es la carta pero vamos a
|
| 470 |
+
|
| 471 |
+
13:26.880 --> 13:33.280
|
| 472 |
+
utilizar una instrucción nueva que se
|
| 473 |
+
llama size of esta es una función que va a sacarme el tamaño
|
| 474 |
+
|
| 475 |
+
13:33.280 --> 13:40.680
|
| 476 |
+
de la carta cerramos bien nuestros
|
| 477 |
+
paréntesis vamos a guardar y al permitirnos guardar variables
|
| 478 |
+
|
| 479 |
+
13:40.680 --> 13:46.520
|
| 480 |
+
de tipo enteros simple y sencillamente ya
|
| 481 |
+
sabes que tienes límites de la información que puedes
|
| 482 |
+
|
| 483 |
+
13:46.520 --> 13:52.960
|
| 484 |
+
guardar por defecto en un en un con esto
|
| 485 |
+
dicho ya sabes para qué son los enums en lenguaje c la
|
| 486 |
+
|
| 487 |
+
13:52.960 --> 13:58.160
|
| 488 |
+
verdad es que este es un feature o una
|
| 489 |
+
característica del lenguaje que yo personalmente ocupo muchísimo
|
| 490 |
+
|
| 491 |
+
13:58.160 --> 14:02.760
|
| 492 |
+
aquí te acabo de dar un par de ejemplos
|
| 493 |
+
importantes espero que me cuentes en qué
|
| 494 |
+
|
| 495 |
+
14:02.760 --> 14:23.760
|
| 496 |
+
lo ocuparías tú y nos vemos en la próxima
|
| 497 |
+
clase!
|
| 498 |
+
|
03-Tipos de Datos en el lenguaje C/03-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
03-Tipos de Datos en el lenguaje C/04-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
03-Tipos de Datos en el lenguaje C/04-Tipos de datos char y unsigned char en C.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bed999f94d93776eac9817e4a5c28ac2534a7911190b51c6eb1803b666f0811b
|
| 3 |
+
size 22061640
|
03-Tipos de Datos en el lenguaje C/04-Tipos de datos char y unsigned char en C.vtt
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:10.060
|
| 4 |
+
Hay otro tipo de dato que tenemos que
|
| 5 |
+
discutir en el lenguaje C y es que existe el tipo de datos
|
| 6 |
+
|
| 7 |
+
00:10.060 --> 00:18.120
|
| 8 |
+
char que nos va a servir para almacenar
|
| 9 |
+
idealmente caracteres pero que está internamente constituido
|
| 10 |
+
|
| 11 |
+
00:18.120 --> 00:25.320
|
| 12 |
+
por un rango de valores igual que
|
| 13 |
+
cualquier rango de los números enteros. Veamos, vamos a escribirlo
|
| 14 |
+
|
| 15 |
+
00:25.320 --> 00:36.280
|
| 16 |
+
aquí este sería char y también vamos a
|
| 17 |
+
tener un signet char o char de carácter vamos a tener que
|
| 18 |
+
|
| 19 |
+
00:36.280 --> 00:45.040
|
| 20 |
+
un char va a ser de un byte nada más y
|
| 21 |
+
nada menos y un signet char va a ser igual de un byte. Ahora
|
| 22 |
+
|
| 23 |
+
00:45.040 --> 00:54.000
|
| 24 |
+
esto va a tener un rango de menos 128 a
|
| 25 |
+
127 porque es un solo byte tenemos 256 valores que podemos
|
| 26 |
+
|
| 27 |
+
00:54.000 --> 01:04.520
|
| 28 |
+
almacenar y vamos a ir de 0 a 255 aquí
|
| 29 |
+
están los mismos 256 valores toma que toma en cuenta que 0
|
| 30 |
+
|
| 31 |
+
01:04.520 --> 01:12.840
|
| 32 |
+
es el valor 1 y 255 sería el valor 256
|
| 33 |
+
aquí simplemente estamos podemos guardar un total de
|
| 34 |
+
|
| 35 |
+
01:12.840 --> 01:23.560
|
| 36 |
+
256 datos o números diferentes del 0 al
|
| 37 |
+
255 porque porque es de un solo byte y el char idealmente se
|
| 38 |
+
|
| 39 |
+
01:23.560 --> 01:30.280
|
| 40 |
+
va a utilizar en variables que nos van a
|
| 41 |
+
servir para poder almacenar un carácter. Hasta ahorita
|
| 42 |
+
|
| 43 |
+
01:30.280 --> 01:35.960
|
| 44 |
+
con esto ya vimos todos los tipos de datos
|
| 45 |
+
que existen en el lenguaje C hay unos más que se
|
| 46 |
+
|
| 47 |
+
01:35.960 --> 01:43.000
|
| 48 |
+
conocen tipos de datos derivados o derived
|
| 49 |
+
data types o derived types que son derivaciones o que
|
| 50 |
+
|
| 51 |
+
01:43.000 --> 01:49.400
|
| 52 |
+
combinan ciertos tipos de datos esenciales
|
| 53 |
+
para formar estructuras más complejas eso lo veremos
|
| 54 |
+
|
| 55 |
+
01:49.400 --> 01:57.360
|
| 56 |
+
mucho más adelante en el curso y son
|
| 57 |
+
pointer types, array types, los strokes y los union types así como
|
| 58 |
+
|
| 59 |
+
01:57.360 --> 02:02.480
|
| 60 |
+
los function types todo eso lo veremos te
|
| 61 |
+
digo más adelante en nuestros cursos de lenguaje C
|
| 62 |
+
|
| 63 |
+
02:02.480 --> 02:07.880
|
| 64 |
+
no te preocupes estos que ya sabes son los
|
| 65 |
+
tipos de datos esenciales y en la próxima clase
|
| 66 |
+
|
| 67 |
+
02:07.880 --> 02:19.880
|
| 68 |
+
comenzaremos viendo justamente cómo
|
| 69 |
+
utilizarlos para crear variables con esto dicho nos vemos en la próxima!
|
| 70 |
+
|
04-Variables en el lenguaje C/01-Declaración y uso de variables en lenguaje C.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:755f2f56c29b4812fdb953d3a1204316812486d238d9ac1cd5292d6a6d154f92
|
| 3 |
+
size 138588021
|
04-Variables en el lenguaje C/01-Declaración y uso de variables en lenguaje C.vtt
ADDED
|
@@ -0,0 +1,478 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:09.240
|
| 4 |
+
Una variable en el lenguaje C, y en
|
| 5 |
+
realidad en cualquier lado, no es nada más que la definición
|
| 6 |
+
|
| 7 |
+
00:09.240 --> 00:15.320
|
| 8 |
+
o el nombre que le vamos a dar a un
|
| 9 |
+
espacio reservado de la memoria para poder almacenar
|
| 10 |
+
|
| 11 |
+
00:15.320 --> 00:21.240
|
| 12 |
+
información que nosotros tengamos en
|
| 13 |
+
nuestro programa. Cada variable en C va a tener un
|
| 14 |
+
|
| 15 |
+
00:21.240 --> 00:26.800
|
| 16 |
+
tipo específico y esos tipos son los que
|
| 17 |
+
vimos en clases anteriores, los tipos de datos de los
|
| 18 |
+
|
| 19 |
+
00:26.800 --> 00:33.880
|
| 20 |
+
que hablamos, y esto va a determinar el
|
| 21 |
+
tamaño y la estructura que estamos reservando en la memoria.
|
| 22 |
+
|
| 23 |
+
00:33.880 --> 00:40.680
|
| 24 |
+
Entonces recuerda, tú sabes que yendo aquí
|
| 25 |
+
a mi pantalla en una variable de tipo char,
|
| 26 |
+
|
| 27 |
+
00:40.680 --> 00:47.320
|
| 28 |
+
pues iba a poder tener la capacidad de
|
| 29 |
+
reservar un byte de memoria, que son 8 bits, 8 espacios
|
| 30 |
+
|
| 31 |
+
00:47.320 --> 00:54.400
|
| 32 |
+
básicos de la memoria, y va a poder
|
| 33 |
+
almacenar valores de menos 128 a 127, un unsigned int va
|
| 34 |
+
|
| 35 |
+
00:54.400 --> 01:02.960
|
| 36 |
+
a poder almacenar valores de 0 a 4.294
|
| 37 |
+
millones, etcétera, y esto es el espacio que estamos
|
| 38 |
+
|
| 39 |
+
01:02.960 --> 01:09.160
|
| 40 |
+
reservando y a este espacio le tenemos que
|
| 41 |
+
dar una etiqueta o un nombre definitivo, un nombre
|
| 42 |
+
|
| 43 |
+
01:09.160 --> 01:15.160
|
| 44 |
+
que vamos a manejar en todo nuestro programa.
|
| 45 |
+
Vamos al código. Vamos a declarar una serie
|
| 46 |
+
|
| 47 |
+
01:15.160 --> 01:19.440
|
| 48 |
+
de variables simplemente para que vayas
|
| 49 |
+
viendo cómo funciona la declaración y quiero enseñarte
|
| 50 |
+
|
| 51 |
+
01:19.440 --> 01:25.960
|
| 52 |
+
un par de cosas. Tú puedes declarar
|
| 53 |
+
variables afuera de tu main y tenerlas todas ordenadas en
|
| 54 |
+
|
| 55 |
+
01:25.960 --> 01:34.920
|
| 56 |
+
un archivo bastante claro, por ejemplo
|
| 57 |
+
podríamos declarar que vamos a tener nuestra variable int
|
| 58 |
+
|
| 59 |
+
01:34.920 --> 01:42.440
|
| 60 |
+
y esta variable int puede ser un número o
|
| 61 |
+
un elemento auxiliar que suelen llamarse i, j y k
|
| 62 |
+
|
| 63 |
+
01:42.440 --> 01:53.480
|
| 64 |
+
en el lenguaje de programación C. También
|
| 65 |
+
podemos tener valores enteros como minutos estacionados,
|
| 66 |
+
|
| 67 |
+
01:54.920 --> 01:59.680
|
| 68 |
+
por ejemplo asumiendo que estás haciendo
|
| 69 |
+
una aplicación de estacionamiento en donde tienes
|
| 70 |
+
|
| 71 |
+
01:59.680 --> 02:06.800
|
| 72 |
+
que llevar tracking de cuántos minutos
|
| 73 |
+
estacionado lleva un auto, por ejemplo, y aquí sabrías que
|
| 74 |
+
|
| 75 |
+
02:06.800 --> 02:15.920
|
| 76 |
+
este auto se podría estacionar hasta 2.
|
| 77 |
+
147 millones de minutos negativos, pero en un
|
| 78 |
+
|
| 79 |
+
02:15.920 --> 02:21.360
|
| 80 |
+
estacionamiento un auto no debería tener
|
| 81 |
+
minutos negativos, ¿o sí? Pues en realidad sí, es probable
|
| 82 |
+
|
| 83 |
+
02:21.360 --> 02:26.800
|
| 84 |
+
que un auto pague por adelantado minutos y
|
| 85 |
+
entonces esos serían minutos negativos porque no se los
|
| 86 |
+
|
| 87 |
+
02:26.800 --> 02:31.600
|
| 88 |
+
tendrías que sumar a una cuenta de cobro.
|
| 89 |
+
¿Ves? Eso es lo que tienes que pensar cuando estás programando
|
| 90 |
+
|
| 91 |
+
02:31.600 --> 02:36.680
|
| 92 |
+
en C, cuál es el tipo de datos que te va a
|
| 93 |
+
servir más. Igual yo sí no creo que en un auto prepague
|
| 94 |
+
|
| 95 |
+
02:36.680 --> 02:46.240
|
| 96 |
+
2.147 millones de minutos, pero
|
| 97 |
+
definitivamente puede llegar a prepagar más de 128 minutos,
|
| 98 |
+
|
| 99 |
+
02:46.240 --> 02:54.640
|
| 100 |
+
que son menos de tres horas, imagínate son
|
| 101 |
+
dos horas que tendría prepagadas, muy
|
| 102 |
+
|
| 103 |
+
02:54.640 --> 02:59.880
|
| 104 |
+
chiquito. Esto sin duda no aplicaría para
|
| 105 |
+
un estacionamiento, entonces nos podríamos ir con
|
| 106 |
+
|
| 107 |
+
02:59.880 --> 03:07.800
|
| 108 |
+
int sin ningún problema o podrías irte con
|
| 109 |
+
short, quizás si los cálculos te dan. Ahora volvamos a
|
| 110 |
+
|
| 111 |
+
03:07.800 --> 03:13.400
|
| 112 |
+
los tipos de variables que vamos a tener,
|
| 113 |
+
recuerda que las variables siempre en lenguaje C tienen
|
| 114 |
+
|
| 115 |
+
03:13.400 --> 03:20.520
|
| 116 |
+
que empezar con una letra o tienen que
|
| 117 |
+
empezar con underscore, es lo que tiene que pasar
|
| 118 |
+
|
| 119 |
+
03:20.520 --> 03:28.160
|
| 120 |
+
por definición, si tú por ejemplo empiezas
|
| 121 |
+
a declarar una variable con un símbolo entonces
|
| 122 |
+
|
| 123 |
+
03:28.160 --> 03:35.120
|
| 124 |
+
esto no lo reconoce y mira que mi editor
|
| 125 |
+
no me lo marca de color azulito, esto sería un error.
|
| 126 |
+
|
| 127 |
+
03:35.120 --> 03:41.560
|
| 128 |
+
Ahora aquí quiero que veas que tú puedes
|
| 129 |
+
declarar varias variables de un mismo tipo y simplemente
|
| 130 |
+
|
| 131 |
+
03:41.560 --> 03:47.520
|
| 132 |
+
separarlas por comas, también las
|
| 133 |
+
variables pueden estar inicializadas en un valor o no,
|
| 134 |
+
|
| 135 |
+
03:47.520 --> 03:54.520
|
| 136 |
+
por ejemplo puedo inicializar mi variable
|
| 137 |
+
en minutos estacionados asumiendo que un estacionamiento de
|
| 138 |
+
|
| 139 |
+
03:54.520 --> 03:59.720
|
| 140 |
+
coches te cobra 30 minutos de entrada,
|
| 141 |
+
no importa que te quede solamente 10 que de hecho estos
|
| 142 |
+
|
| 143 |
+
03:59.720 --> 04:04.560
|
| 144 |
+
comportamientos si pasan en los
|
| 145 |
+
estacionamientos tienen como una tarifa mínima, entonces puedes
|
| 146 |
+
|
| 147 |
+
04:04.560 --> 04:15.800
|
| 148 |
+
inicializar tu variable o crear variables
|
| 149 |
+
tarifa minutos mínimos, esto en inglés sería
|
| 150 |
+
|
| 151 |
+
04:15.800 --> 04:24.160
|
| 152 |
+
minimum minutes. Este es otro ejemplo de
|
| 153 |
+
cómo les puedes dar un uso a las variables, recuerda que
|
| 154 |
+
|
| 155 |
+
04:24.160 --> 04:29.080
|
| 156 |
+
este es el tipo int, podemos guardar
|
| 157 |
+
números negativos simplemente los escribes si tuviéramos
|
| 158 |
+
|
| 159 |
+
04:29.080 --> 04:37.760
|
| 160 |
+
un sinet int entonces no estaría bien que
|
| 161 |
+
guardaras números de tipo negativos simplemente no puede
|
| 162 |
+
|
| 163 |
+
04:37.760 --> 04:44.600
|
| 164 |
+
hacerlo. Muy bien ahora vamos a quitar
|
| 165 |
+
esto porque se ve feo, van a decir que el profe no sabe y eso
|
| 166 |
+
|
| 167 |
+
04:44.600 --> 04:50.800
|
| 168 |
+
no es cierto, vamos a continuar ya tenemos
|
| 169 |
+
un int, tenemos un sinet int, ¿qué más quisieras declarar?
|
| 170 |
+
|
| 171 |
+
04:50.800 --> 04:57.480
|
| 172 |
+
bueno nosotros podemos declarar variables
|
| 173 |
+
de tipo char, imagínate que vas a tener un carácter no
|
| 174 |
+
|
| 175 |
+
04:57.480 --> 05:05.280
|
| 176 |
+
sé char y y esto va a ser igual a
|
| 177 |
+
efectivamente el carácter y, estos son los tipos de cosas que
|
| 178 |
+
|
| 179 |
+
05:05.280 --> 05:10.240
|
| 180 |
+
se pueden hacer con la variable char o
|
| 181 |
+
carácter, también tú con la variable char puedes declarar
|
| 182 |
+
|
| 183 |
+
05:10.240 --> 05:19.640
|
| 184 |
+
números, no pasa nada te permite hacerlo
|
| 185 |
+
el lenguaje c, por ejemplo f horas horas worked hours,
|
| 186 |
+
|
| 187 |
+
05:19.640 --> 05:31.560
|
| 188 |
+
horas trabajadas, diarias, daily, worked
|
| 189 |
+
hours, esta es una variable que como el día tiene 24 horas sin
|
| 190 |
+
|
| 191 |
+
05:31.560 --> 05:38.000
|
| 192 |
+
duda podemos hacerla de tipo carácter
|
| 193 |
+
porque porque cabe en el rango numérico que nosotros vamos a
|
| 194 |
+
|
| 195 |
+
05:38.000 --> 05:44.040
|
| 196 |
+
tener entonces para un día tú puedes tener
|
| 197 |
+
tus horas trabajadas, puedes tener horas trabajadas
|
| 198 |
+
|
| 199 |
+
05:44.040 --> 05:50.920
|
| 200 |
+
negativas no, así que lo ideal sería
|
| 201 |
+
hacerlo de tipo un sinet char daily worked hours y esta variable
|
| 202 |
+
|
| 203 |
+
05:50.920 --> 05:56.160
|
| 204 |
+
pues puedes inicializarla en cero sin
|
| 205 |
+
ningún problema o dejarla como está que también estaría
|
| 206 |
+
|
| 207 |
+
05:56.160 --> 06:03.520
|
| 208 |
+
con un valor de cero de entrada, en
|
| 209 |
+
realidad o sea siempre siempre siempre tus variables van a estar
|
| 210 |
+
|
| 211 |
+
06:03.520 --> 06:08.280
|
| 212 |
+
en cero si no las inicializas y si tú las
|
| 213 |
+
inicializas igual está correcto, me parece que es
|
| 214 |
+
|
| 215 |
+
06:08.280 --> 06:14.280
|
| 216 |
+
una muy buena práctica que dejes siempre
|
| 217 |
+
tus variables inicializadas excepto cuando son variables
|
| 218 |
+
|
| 219 |
+
06:14.280 --> 06:20.040
|
| 220 |
+
de este tipo que son simples y sencillos
|
| 221 |
+
auxiliares a menos que necesites que tu auxiliar que tu número
|
| 222 |
+
|
| 223 |
+
06:20.040 --> 06:24.640
|
| 224 |
+
auxiliar empiece en un valor dado, más
|
| 225 |
+
adelante los vamos a aprender a usar en cuestiones como
|
| 226 |
+
|
| 227 |
+
06:24.640 --> 06:30.120
|
| 228 |
+
control de flujo y todo eso. Con esto ya
|
| 229 |
+
viste cómo se declaran las variables todas funcionan
|
| 230 |
+
|
| 231 |
+
06:30.120 --> 06:35.280
|
| 232 |
+
con esta misma lógica ahora quiero hacer
|
| 233 |
+
unos pequeños demos de cómo las podemos utilizar y
|
| 234 |
+
|
| 235 |
+
06:35.280 --> 06:40.640
|
| 236 |
+
manipular en un programa en C, vamos a
|
| 237 |
+
darle archivo nuevo archivo vamos a copiar nuestra
|
| 238 |
+
|
| 239 |
+
06:40.640 --> 06:46.520
|
| 240 |
+
estructura básica, no el archivo no se va
|
| 241 |
+
a llamar así vamos a guardarlo y le voy a poner de nombre
|
| 242 |
+
|
| 243 |
+
06:46.520 --> 06:56.720
|
| 244 |
+
variables, variables, variables, muy bien
|
| 245 |
+
punto C, todo en orden vamos a ver qué pasa primero voy a
|
| 246 |
+
|
| 247 |
+
06:56.720 --> 07:03.800
|
| 248 |
+
borrar todo lo que tenía declarado no lo
|
| 249 |
+
necesito para este ejemplo vamos a hacerlo luego voy a
|
| 250 |
+
|
| 251 |
+
07:03.800 --> 07:08.520
|
| 252 |
+
dejar el print siempre es bienvenido ese
|
| 253 |
+
print lo vamos a necesitar y vamos a declarar nuestras
|
| 254 |
+
|
| 255 |
+
07:08.520 --> 07:17.960
|
| 256 |
+
variables aquí siempre es bueno que
|
| 257 |
+
empieces con un comentario variable declarations para que si
|
| 258 |
+
|
| 259 |
+
07:17.960 --> 07:22.920
|
| 260 |
+
alguien más lee tu código sepa que todo lo
|
| 261 |
+
que va a estar aquí son declaraciones de variables,
|
| 262 |
+
|
| 263 |
+
07:22.920 --> 07:28.360
|
| 264 |
+
este símbolo que estamos usando es
|
| 265 |
+
diferente al otro de comentarios este comentario sólo
|
| 266 |
+
|
| 267 |
+
07:28.360 --> 07:33.400
|
| 268 |
+
aplica para la línea actual y nada más que
|
| 269 |
+
la línea actual no no es como el anterior que te
|
| 270 |
+
|
| 271 |
+
07:33.400 --> 07:39.480
|
| 272 |
+
había enseñado que nos va a servir para
|
| 273 |
+
todo y también quiero enseñarte algo más en C existe
|
| 274 |
+
|
| 275 |
+
07:39.480 --> 07:45.440
|
| 276 |
+
el comando extern que te va a permitir
|
| 277 |
+
declarar variables cuando las vas a ocupar en diferentes
|
| 278 |
+
|
| 279 |
+
07:45.440 --> 07:52.200
|
| 280 |
+
archivos a lo largo de tu código esto no
|
| 281 |
+
siempre lo necesitas a menos que estés trabajando en
|
| 282 |
+
|
| 283 |
+
07:52.200 --> 07:59.400
|
| 284 |
+
proyectos mucho mucho más grandes y que
|
| 285 |
+
estás usando múltiples archivos de C, no para nada
|
| 286 |
+
|
| 287 |
+
07:59.400 --> 08:03.920
|
| 288 |
+
esto lo vamos a hacer en este primer curso
|
| 289 |
+
recuerda que esta es la introducción pero si más adelante
|
| 290 |
+
|
| 291 |
+
08:03.920 --> 08:09.680
|
| 292 |
+
en la carrera sin duda lo veremos ocurrir
|
| 293 |
+
pero de todos modos tienes que saberlo desde ya porque si
|
| 294 |
+
|
| 295 |
+
08:09.680 --> 08:15.680
|
| 296 |
+
por alguna razón te topas con algo que
|
| 297 |
+
están utilizando la directiva extern entonces ya sabes
|
| 298 |
+
|
| 299 |
+
08:15.680 --> 08:20.840
|
| 300 |
+
a qué se refiere es para que el compilador
|
| 301 |
+
sepa que esa variable es externa y que se va a estar
|
| 302 |
+
|
| 303 |
+
08:20.840 --> 08:26.720
|
| 304 |
+
usando a lo largo de todo tu proyecto
|
| 305 |
+
entonces ya no necesitará más información cuando esté compilando
|
| 306 |
+
|
| 307 |
+
08:26.720 --> 08:33.320
|
| 308 |
+
es una buena práctica nosotros no estamos
|
| 309 |
+
con varios archivos y entonces no vamos a hacerlo
|
| 310 |
+
|
| 311 |
+
08:33.320 --> 08:38.360
|
| 312 |
+
vamos a declarar todas nuestras variables
|
| 313 |
+
la primera que voy a declarar va a ser una variable
|
| 314 |
+
|
| 315 |
+
08:38.360 --> 08:47.360
|
| 316 |
+
de tipo entero a y una variable de tipo
|
| 317 |
+
entero b punto y coma también voy a declarar una variable
|
| 318 |
+
|
| 319 |
+
08:47.360 --> 08:57.680
|
| 320 |
+
que se hace vamos a declarar la k mi
|
| 321 |
+
variable c muy bien punto y coma y vamos a hacer lo mismo
|
| 322 |
+
|
| 323 |
+
08:57.680 --> 09:08.520
|
| 324 |
+
para una variable de tipo float que van a
|
| 325 |
+
ser la variable f g h muy bien todo en orden tenemos a
|
| 326 |
+
|
| 327 |
+
09:08.520 --> 09:15.640
|
| 328 |
+
b c f g h aquí tenemos tres variables
|
| 329 |
+
enteras tres variables flotantes hagamos algo con estas variables
|
| 330 |
+
|
| 331 |
+
09:15.640 --> 09:21.720
|
| 332 |
+
para trabajar con estas variables lo que
|
| 333 |
+
yo voy a hacer simplemente es escribir un par de sumas
|
| 334 |
+
|
| 335 |
+
09:21.720 --> 09:27.400
|
| 336 |
+
vamos a inicializar mis variables les voy
|
| 337 |
+
a dar su primer valor les voy a decir que a va a ser
|
| 338 |
+
|
| 339 |
+
09:27.400 --> 09:35.760
|
| 340 |
+
igual a cuánto podemos ponerle unos para
|
| 341 |
+
que sea una suma bastante simple para nosotros sin ningún
|
| 342 |
+
|
| 343 |
+
09:35.760 --> 09:44.240
|
| 344 |
+
problema y vamos a poner b que va a ser
|
| 345 |
+
igual a 34 date cuenta todo lo que estamos haciendo acá
|
| 346 |
+
|
| 347 |
+
09:44.240 --> 09:50.000
|
| 348 |
+
estamos declarando nuestra variable y aquí
|
| 349 |
+
estamos inicializando nuestra variable quiero que por
|
| 350 |
+
|
| 351 |
+
09:50.000 --> 09:55.640
|
| 352 |
+
favor te aprendas estos términos porque
|
| 353 |
+
son esenciales en el lenguaje variable variable
|
| 354 |
+
|
| 355 |
+
09:57.000 --> 10:05.800
|
| 356 |
+
inicialización inicialización muy bien
|
| 357 |
+
tenemos esto hagamos una pequeña suma vamos a sumar c
|
| 358 |
+
|
| 359 |
+
10:05.800 --> 10:14.800
|
| 360 |
+
esto va a ser igual a más b y vamos a
|
| 361 |
+
poner un bello punto y coma al final porque estamos en el
|
| 362 |
+
|
| 363 |
+
10:14.800 --> 10:24.680
|
| 364 |
+
lenguaje c me gusta dejar espacio por
|
| 365 |
+
buena práctica luego vamos a decirle que imprima el valor de la
|
| 366 |
+
|
| 367 |
+
10:24.680 --> 10:33.360
|
| 368 |
+
suma es y le vamos a pasar el elemento que
|
| 369 |
+
nos va a dar el formato y ya quiero que te vayas dando
|
| 370 |
+
|
| 371 |
+
10:33.360 --> 10:38.920
|
| 372 |
+
cuenta que hace este esta instrucción de
|
| 373 |
+
por ciento de lo que hace esta instrucción de por ciento de
|
| 374 |
+
|
| 375 |
+
10:38.920 --> 10:45.560
|
| 376 |
+
es que aquí justo en donde yo la estoy
|
| 377 |
+
colocando va a escribir la variable que yo le pase cuál va
|
| 378 |
+
|
| 379 |
+
10:45.560 --> 10:50.680
|
| 380 |
+
a ser la variable que yo le voy a pasar la
|
| 381 |
+
variable c ahorita te va a quedar todavía más claro con el
|
| 382 |
+
|
| 383 |
+
10:50.680 --> 10:56.720
|
| 384 |
+
ejemplo que tengo planeado vamos a
|
| 385 |
+
imprimir esto vamos a guardar y vamos a ejecutar nuestro código
|
| 386 |
+
|
| 387 |
+
10:56.720 --> 11:08.440
|
| 388 |
+
y mira tenemos que ejecutó el código y la
|
| 389 |
+
suma es 35 todo está excelente ahora qué pasaría si yo
|
| 390 |
+
|
| 391 |
+
11:08.440 --> 11:15.000
|
| 392 |
+
este por ciento de por ejemplo lo pongo en
|
| 393 |
+
value off mira mira mira lo que va a pasar quiero que
|
| 394 |
+
|
| 395 |
+
11:15.000 --> 11:24.800
|
| 396 |
+
esto te ayude a entender para qué nos
|
| 397 |
+
sirve el por ciento de vamos a ejecutarlo y mira dice
|
| 398 |
+
|
| 399 |
+
11:24.800 --> 11:30.520
|
| 400 |
+
value 35 de la suma es porque porque aquí
|
| 401 |
+
está la variable que le estamos pasando a nuestro
|
| 402 |
+
|
| 403 |
+
11:30.520 --> 11:36.440
|
| 404 |
+
print pero aquí está el por ciento de en
|
| 405 |
+
donde tú le pongas el tipo de dato de la variable es
|
| 406 |
+
|
| 407 |
+
11:36.440 --> 11:41.800
|
| 408 |
+
donde lo va a imprimir vamos a colocarlo
|
| 409 |
+
bien otra vez por supuesto que no queremos que esto
|
| 410 |
+
|
| 411 |
+
11:41.800 --> 11:48.600
|
| 412 |
+
se rompa y mira vamos a nuestro archivo de
|
| 413 |
+
hello world y cuánto es el máximo valor que podemos
|
| 414 |
+
|
| 415 |
+
11:48.600 --> 11:54.040
|
| 416 |
+
guardar en una variable de tipo entero
|
| 417 |
+
este este es el máximo valor que podemos guardar vamos a
|
| 418 |
+
|
| 419 |
+
11:54.040 --> 11:59.680
|
| 420 |
+
nuestro archivo de variables y vamos a
|
| 421 |
+
asignarle a ve el máximo valor que puede guardar y vamos a
|
| 422 |
+
|
| 423 |
+
11:59.680 --> 12:08.800
|
| 424 |
+
sumarle 1 vamos a sumarle 10 para ser
|
| 425 |
+
exactos vamos a darle control s vamos a darle fn fc dice
|
| 426 |
+
|
| 427 |
+
12:08.800 --> 12:15.120
|
| 428 |
+
en mi caso fc dicen el tuyo si no estás en
|
| 429 |
+
un laptop y vamos a ver qué pasa y mira se rompió
|
| 430 |
+
|
| 431 |
+
12:15.120 --> 12:23.160
|
| 432 |
+
estamos sumando dos números dos números
|
| 433 |
+
positivos pero él me lo manda a los negativos porque por
|
| 434 |
+
|
| 435 |
+
12:23.160 --> 12:29.560
|
| 436 |
+
cómo funciona adentro en c la memoria lo
|
| 437 |
+
que hicimos es que nos desbordamos los espacios que
|
| 438 |
+
|
| 439 |
+
12:29.560 --> 12:35.440
|
| 440 |
+
teníamos reservados para valores positivos
|
| 441 |
+
y algo desbordarnos los espacios para valores positivos
|
| 442 |
+
|
| 443 |
+
12:35.440 --> 12:41.760
|
| 444 |
+
el número se fue a los valores para
|
| 445 |
+
números negativos esto es algo maravilloso de c es algo
|
| 446 |
+
|
| 447 |
+
12:41.760 --> 12:46.640
|
| 448 |
+
que mucha gente dice que es el uno de los
|
| 449 |
+
principales problemas de este lenguaje porque si
|
| 450 |
+
|
| 451 |
+
12:46.640 --> 12:51.760
|
| 452 |
+
se te van las manos si se te falla algo
|
| 453 |
+
con el manejo de la memoria tu problema va a crashear
|
| 454 |
+
|
| 455 |
+
12:51.760 --> 12:56.080
|
| 456 |
+
si tu programa crashea puede que lo dejes
|
| 457 |
+
vulnerable a ataques de seguridad puede que
|
| 458 |
+
|
| 459 |
+
12:56.080 --> 13:01.280
|
| 460 |
+
obviamente la experiencia de usuario no
|
| 461 |
+
sea ideal pero por eso te estoy enseñando con mucho detalle
|
| 462 |
+
|
| 463 |
+
13:01.280 --> 13:06.720
|
| 464 |
+
a pensar en qué tipo de datos vas a usar
|
| 465 |
+
cuando los vas a usar tienes que pensar en todo momento
|
| 466 |
+
|
| 467 |
+
13:06.720 --> 13:11.080
|
| 468 |
+
las declaraciones que estás haciendo en c
|
| 469 |
+
y cuáles van a ser los valores máximos que estarías
|
| 470 |
+
|
| 471 |
+
13:11.080 --> 13:17.560
|
| 472 |
+
haciendo en tus operaciones nos vemos en
|
| 473 |
+
la próxima clase donde profundizaremos más en las variables y
|
| 474 |
+
|
| 475 |
+
13:17.560 --> 13:24.560
|
| 476 |
+
su
|
| 477 |
+
declaración
|
| 478 |
+
|
04-Variables en el lenguaje C/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
04-Variables en el lenguaje C/02-Manejo de Variables Externas en C y Precisión Numérica.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a131229c2d983bdacd977c5df1e5eee2b66ca81e336874d80dbe7114687fdba5
|
| 3 |
+
size 54419836
|
04-Variables en el lenguaje C/02-Manejo de Variables Externas en C y Precisión Numérica.vtt
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:08.400
|
| 4 |
+
Hay una última cosa que te quiero enseñar
|
| 5 |
+
sobre la declaración de variables y es cómo vas a
|
| 6 |
+
|
| 7 |
+
00:08.400 --> 00:13.680
|
| 8 |
+
manejar variables cuando estés trabajando
|
| 9 |
+
con diferentes archivos. Vamos a ello. Como ya te
|
| 10 |
+
|
| 11 |
+
00:13.680 --> 00:21.440
|
| 12 |
+
lo había indicado en la clase pasada,
|
| 13 |
+
vamos a tener nuestras variables extern, extern, de externas,
|
| 14 |
+
|
| 15 |
+
00:21.440 --> 00:27.640
|
| 16 |
+
nada más, nada raro por ahí, pero al
|
| 17 |
+
momento de utilizarlas dentro de nuestro código no va a ser
|
| 18 |
+
|
| 19 |
+
00:27.640 --> 00:36.000
|
| 20 |
+
tan simple como solamente inicializarlas y ya.
|
| 21 |
+
Vamos a tener que hacer una definición nueva de
|
| 22 |
+
|
| 23 |
+
00:36.000 --> 00:42.040
|
| 24 |
+
nuestras variables para indicar que la
|
| 25 |
+
vamos a estar utilizando adentro de nuestro código. Es
|
| 26 |
+
|
| 27 |
+
00:42.040 --> 00:51.720
|
| 28 |
+
decir, vamos a bajar esto por acá y vamos
|
| 29 |
+
a crear un nuevo comentario que diga variable y esto sería
|
| 30 |
+
|
| 31 |
+
00:51.720 --> 01:04.720
|
| 32 |
+
definition. Voy a decirle que voy a tener
|
| 33 |
+
mis variables int, a, b y c y ya con esto el programa
|
| 34 |
+
|
| 35 |
+
01:04.720 --> 01:10.720
|
| 36 |
+
sabrá que estamos trabajando con estas
|
| 37 |
+
variables. Es decir, aquí estamos diciendo que van a ser
|
| 38 |
+
|
| 39 |
+
01:10.720 --> 01:16.000
|
| 40 |
+
externas y aquí ya estamos diciendo en
|
| 41 |
+
esta parte del código las voy a utilizar, no se declara
|
| 42 |
+
|
| 43 |
+
01:16.000 --> 01:22.520
|
| 44 |
+
doble int, ahí se me fue un typo y ya.
|
| 45 |
+
Una vez haces esto simplemente puedes guardar y puedes
|
| 46 |
+
|
| 47 |
+
01:22.520 --> 01:28.240
|
| 48 |
+
ejecutar tu código y vas a ver que va a
|
| 49 |
+
funcionar a la perfección. Ahora obviamente no hace la suma
|
| 50 |
+
|
| 51 |
+
01:28.240 --> 01:35.280
|
| 52 |
+
bien porque lo hicimos a propósito,
|
| 53 |
+
sumémosle 0 y veamos qué ocurre. Vamos a compilar y ejecutar
|
| 54 |
+
|
| 55 |
+
01:35.280 --> 01:41.640
|
| 56 |
+
otra vez nuestro programa y ya
|
| 57 |
+
efectivamente estamos al máximo de la capacidad de nuestra
|
| 58 |
+
|
| 59 |
+
01:41.640 --> 01:47.760
|
| 60 |
+
variable. Pero ahora qué pasa si superamos
|
| 61 |
+
el máximo negativo al que podemos llegar? Quiero
|
| 62 |
+
|
| 63 |
+
01:47.760 --> 01:54.600
|
| 64 |
+
que veas ese experimento, vamos a agarrar
|
| 65 |
+
todo en negativo y vamos a sumarle menos 10, control s y
|
| 66 |
+
|
| 67 |
+
01:54.600 --> 02:02.200
|
| 68 |
+
vamos a ejecutar este código esperando a
|
| 69 |
+
que termine y mira que nada, no pasa nada, simplemente
|
| 70 |
+
|
| 71 |
+
02:02.200 --> 02:08.920
|
| 72 |
+
llega al valor máximo y ya llega a un
|
| 73 |
+
valor que no debería llegar, se fue a un número positivo cuando
|
| 74 |
+
|
| 75 |
+
02:08.920 --> 02:15.400
|
| 76 |
+
debería ser negativo y los comportamientos
|
| 77 |
+
son erráticos. Ahora que ya viste estos ejemplos,
|
| 78 |
+
|
| 79 |
+
02:15.400 --> 02:23.120
|
| 80 |
+
hagamos ejemplos con números negativos.
|
| 81 |
+
Para esto vamos a utilizar g, vamos a utilizar h y el
|
| 82 |
+
|
| 83 |
+
02:23.120 --> 02:32.680
|
| 84 |
+
resultado de la suma de g no es h, g y f y
|
| 85 |
+
el resultado de la suma de g más f lo vamos a guardar
|
| 86 |
+
|
| 87 |
+
02:32.680 --> 02:39.520
|
| 88 |
+
en h. Obviamente hay que cambiarlo aquí en
|
| 89 |
+
donde estábamos imprimiendo el resultado y también acá
|
| 90 |
+
|
| 91 |
+
02:39.520 --> 02:44.040
|
| 92 |
+
porque el porciento de es para imprimir un
|
| 93 |
+
número decimal, para imprimir un número flotante
|
| 94 |
+
|
| 95 |
+
02:44.040 --> 02:50.560
|
| 96 |
+
necesitaremos porciento f. Vamos a ver qué
|
| 97 |
+
pasa con estos valores simplemente, recuerda que esta
|
| 98 |
+
|
| 99 |
+
02:50.560 --> 02:56.740
|
| 100 |
+
variable es de mucho mayor espacio que la
|
| 101 |
+
variable de tipo entero, vamos a ver qué pasa y mira aquí
|
| 102 |
+
|
| 103 |
+
02:56.740 --> 03:02.560
|
| 104 |
+
parece que si logra hacer la suma y nos
|
| 105 |
+
agrega seis números decimales que es la precisión que vamos a
|
| 106 |
+
|
| 107 |
+
03:02.560 --> 03:20.840
|
| 108 |
+
tener. Ahora sumemos 1000 positivo punto
|
| 109 |
+
999 con 1 punto 1111, estamos sumando dos números de
|
| 110 |
+
|
| 111 |
+
03:20.840 --> 03:30.320
|
| 112 |
+
cuatro decimales. Vamos a ver qué
|
| 113 |
+
resultado nos da esto y ve todo está funcionando, simplemente
|
| 114 |
+
|
| 115 |
+
03:30.320 --> 03:35.920
|
| 116 |
+
tenemos nuestros cinco números decimales,
|
| 117 |
+
nuestros cuatro números decimales pero ahora la suma utiliza
|
| 118 |
+
|
| 119 |
+
03:35.920 --> 03:42.960
|
| 120 |
+
los seis números decimales que podíamos tener,
|
| 121 |
+
obviamente nos da todo muy preciso, veamos qué pasa
|
| 122 |
+
|
| 123 |
+
03:42.960 --> 03:53.400
|
| 124 |
+
si nosotros ahora quisiéramos sumar 999999
|
| 125 |
+
en la parte decimal, o sea seis números decimales,
|
| 126 |
+
|
| 127 |
+
03:53.400 --> 04:05.680
|
| 128 |
+
vamos a 1 2 1 2 3 4 5 6 y borramos ese
|
| 129 |
+
último 1, guardamos y ejecutamos el código,
|
| 130 |
+
|
| 131 |
+
04:07.200 --> 04:12.880
|
| 132 |
+
vamos a esperar a que la consola la
|
| 133 |
+
terminal nos arroje un resultado, si te das cuenta la suma
|
| 134 |
+
|
| 135 |
+
04:12.880 --> 04:19.400
|
| 136 |
+
estuvo ok, simplemente se corta a los seis
|
| 137 |
+
decimales, no le va a poner más precisión aunque
|
| 138 |
+
|
| 139 |
+
04:19.400 --> 04:25.720
|
| 140 |
+
nosotros hiciéramos sumas de más decimales,
|
| 141 |
+
no estaríamos teniendo una afectación en cuestión
|
| 142 |
+
|
| 143 |
+
04:25.720 --> 04:32.280
|
| 144 |
+
de que el programa lance un error, pero sí
|
| 145 |
+
que tendríamos una afectación en cuestión de que
|
| 146 |
+
|
| 147 |
+
04:32.280 --> 04:39.200
|
| 148 |
+
estaríamos perdiendo precisión de los datos,
|
| 149 |
+
entiendes? el código no te va a decir que hay un
|
| 150 |
+
|
| 151 |
+
04:39.200 --> 04:44.040
|
| 152 |
+
error y es que esa es la parte tricky de C,
|
| 153 |
+
C no te va a decir oye todo está mal porque declaraste
|
| 154 |
+
|
| 155 |
+
04:44.040 --> 04:49.680
|
| 156 |
+
estas variables y se desborda y estás
|
| 157 |
+
perdiendo información, C es un lenguaje que se hizo en los
|
| 158 |
+
|
| 159 |
+
04:49.680 --> 04:56.760
|
| 160 |
+
70s y aunque es maravilloso no tiene ese
|
| 161 |
+
nivel de un sistema o algo que se esté encargando de
|
| 162 |
+
|
| 163 |
+
04:56.760 --> 05:03.440
|
| 164 |
+
ayudarte a manejar las variables, no eres
|
| 165 |
+
tú quien se debe de ayudar y por eso quería mostrarte estos
|
| 166 |
+
|
| 167 |
+
05:03.440 --> 05:09.040
|
| 168 |
+
ejemplos porque C no te marca ningún error
|
| 169 |
+
pero sí que estás perdiendo precisión en los datos que
|
| 170 |
+
|
| 171 |
+
05:09.040 --> 05:14.320
|
| 172 |
+
estás manejando, debes tenerlo en cuenta,
|
| 173 |
+
nos vemos en la próxima clase en donde te enseñaré cómo
|
| 174 |
+
|
| 175 |
+
05:14.320 --> 05:39.360
|
| 176 |
+
trabajar con valores
|
| 177 |
+
constantes.
|
| 178 |
+
|
04-Variables en el lenguaje C/02-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
04-Variables en el lenguaje C/03-Uso de Constantes y Literales en C.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b5fe9a23ca722679e0a7a33abf92c5249940a85f04a224804f15b4d4bd712410
|
| 3 |
+
size 70126107
|
04-Variables en el lenguaje C/03-Uso de Constantes y Literales en C.vtt
ADDED
|
@@ -0,0 +1,246 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:00.000 --> 00:09.000
|
| 4 |
+
En esta clase vamos a aprender todo sobre
|
| 5 |
+
las constantes. Las constantes son valores que no
|
| 6 |
+
|
| 7 |
+
00:09.000 --> 00:13.960
|
| 8 |
+
van a cambiar en tu código, a diferencia
|
| 9 |
+
de las variables, que son valores que asignas
|
| 10 |
+
|
| 11 |
+
00:13.960 --> 00:19.320
|
| 12 |
+
espacios en la memoria de la computadora
|
| 13 |
+
en la que estás ejecutando tu código y ese espacio
|
| 14 |
+
|
| 15 |
+
00:19.320 --> 00:23.640
|
| 16 |
+
de memoria lo puedes llenar con la
|
| 17 |
+
información que tú quieras. Puedes borrar esa información,
|
| 18 |
+
|
| 19 |
+
00:23.640 --> 00:29.120
|
| 20 |
+
puedes cambiar esa información y siempre
|
| 21 |
+
vas a tener ese espacio de memoria reservado. Eso
|
| 22 |
+
|
| 23 |
+
00:29.120 --> 00:34.520
|
| 24 |
+
era una variable, la constante no va a
|
| 25 |
+
estar cambiando, entonces se podría decir que sí,
|
| 26 |
+
|
| 27 |
+
00:34.520 --> 00:40.400
|
| 28 |
+
son valores fijos, también se conocen como
|
| 29 |
+
literales y son valores que no van a cambiar,
|
| 30 |
+
|
| 31 |
+
00:40.400 --> 00:46.320
|
| 32 |
+
pero igual vas a tener que darles un tipo
|
| 33 |
+
de dato porque esto es el lenguaje C y tienes que decirle
|
| 34 |
+
|
| 35 |
+
00:46.320 --> 00:52.760
|
| 36 |
+
que para esta constante reserve tanto
|
| 37 |
+
espacio en memoria. Estas pueden ser cualquier tipo de
|
| 38 |
+
|
| 39 |
+
00:52.760 --> 00:58.480
|
| 40 |
+
dato de los que ya te enseñé, puede ser
|
| 41 |
+
entero, puede ser flotante, puede ser character o puede
|
| 42 |
+
|
| 43 |
+
00:58.480 --> 01:05.280
|
| 44 |
+
ser un string literal, que es un dato
|
| 45 |
+
nuevo que ahorita vamos a ver de qué se trata. Vamos a
|
| 46 |
+
|
| 47 |
+
01:05.280 --> 01:13.040
|
| 48 |
+
nuestro Visual Studio Code, archivo,
|
| 49 |
+
archivo nuevo y vamos a guardar este archivo nuevo con
|
| 50 |
+
|
| 51 |
+
01:13.040 --> 01:24.280
|
| 52 |
+
control s como mi archivo de constantes.
|
| 53 |
+
Bien ya tenemos Visual Studio listo, lo primero es que
|
| 54 |
+
|
| 55 |
+
01:24.280 --> 01:30.440
|
| 56 |
+
voy a empezar por contarte qué es un
|
| 57 |
+
string literal. En clases anteriores has visto que
|
| 58 |
+
|
| 59 |
+
01:30.440 --> 01:38.080
|
| 60 |
+
nosotros utilizamos la siguiente expresión
|
| 61 |
+
dentro de un elemento prim, por ejemplo es de humanos
|
| 62 |
+
|
| 63 |
+
01:38.080 --> 01:48.080
|
| 64 |
+
errar, algo bien poético, esto sería un
|
| 65 |
+
string literal, lo que nosotros podemos colocar dentro
|
| 66 |
+
|
| 67 |
+
01:48.080 --> 01:54.600
|
| 68 |
+
de dos comillas dobles, estas que tenemos
|
| 69 |
+
aquí dentro de C, van a ser mis string literals y esto
|
| 70 |
+
|
| 71 |
+
01:54.600 --> 02:02.000
|
| 72 |
+
internamente se lo está almacenando como
|
| 73 |
+
un array o un arreglo, es decir una estructura de datos en
|
| 74 |
+
|
| 75 |
+
02:02.000 --> 02:08.920
|
| 76 |
+
donde se guarda carácter a carácter
|
| 77 |
+
incluyendo los espacios en blanco y por último termina con
|
| 78 |
+
|
| 79 |
+
02:08.920 --> 02:17.080
|
| 80 |
+
un carácter con el comando null, un
|
| 81 |
+
carácter null. Esto es un string literal en C, en C no tenemos
|
| 82 |
+
|
| 83 |
+
02:17.080 --> 02:22.120
|
| 84 |
+
el tipo de datos string que sí existen
|
| 85 |
+
otros lenguajes de programación, te dejo este tip por
|
| 86 |
+
|
| 87 |
+
02:22.120 --> 02:26.680
|
| 88 |
+
si este no es tu primer lenguaje de
|
| 89 |
+
programación que estás intentando aprender, pero si no, si este
|
| 90 |
+
|
| 91 |
+
02:26.680 --> 02:30.960
|
| 92 |
+
sí es tu primer lenguaje de programación
|
| 93 |
+
no te preocupes, simplemente es que hay otros lenguajes
|
| 94 |
+
|
| 95 |
+
02:30.960 --> 02:36.600
|
| 96 |
+
que tienen el tipo de datos string para
|
| 97 |
+
almacenar cadenas de caracteres, en C si tú quisieras
|
| 98 |
+
|
| 99 |
+
02:36.600 --> 02:42.400
|
| 100 |
+
trabajar con cadenas de caracteres lo que
|
| 101 |
+
tendrías que hacer es un array y en ese array escribir char
|
| 102 |
+
|
| 103 |
+
02:42.400 --> 02:48.000
|
| 104 |
+
por char lo que tú quieres guardar, así
|
| 105 |
+
que ese es un lenguaje viejito hay que creerlo con sus
|
| 106 |
+
|
| 107 |
+
02:48.000 --> 02:54.320
|
| 108 |
+
limitantes. Vamos a continuar entonces,
|
| 109 |
+
con esto dicho nosotros vamos a poder declarar constantes
|
| 110 |
+
|
| 111 |
+
02:54.320 --> 03:02.760
|
| 112 |
+
de tipo int, de tipo float, de tipo char,
|
| 113 |
+
pero también hay que ser muy realistas y para poder
|
| 114 |
+
|
| 115 |
+
03:02.760 --> 03:09.080
|
| 116 |
+
declarar las que sean constantes solamente
|
| 117 |
+
hay que utilizar la palabra reservada const, entonces
|
| 118 |
+
|
| 119 |
+
03:09.080 --> 03:14.480
|
| 120 |
+
aquí tenemos una constante entera, vamos a
|
| 121 |
+
poder también tener una constante flotante para guardar
|
| 122 |
+
|
| 123 |
+
03:14.480 --> 03:21.080
|
| 124 |
+
números con valores flotantes y la
|
| 125 |
+
constante char que se puede usar para los mismos valores numéricos
|
| 126 |
+
|
| 127 |
+
03:21.080 --> 03:30.880
|
| 128 |
+
que yo ya te había enseñado previamente.
|
| 129 |
+
Ahora, ¿qué podemos guardar en una variable
|
| 130 |
+
|
| 131 |
+
03:30.880 --> 03:36.400
|
| 132 |
+
en una constante del tipo entero? Bueno,
|
| 133 |
+
podemos guardar números, por ejemplo podríamos declarar
|
| 134 |
+
|
| 135 |
+
03:36.400 --> 03:48.000
|
| 136 |
+
que esta variable, esta constante se llame
|
| 137 |
+
costo hotdog, claramente ya tengo un poquito de hambre,
|
| 138 |
+
|
| 139 |
+
03:48.000 --> 03:56.880
|
| 140 |
+
costo hotdog, me salió ahí la dislexia y
|
| 141 |
+
el costo de hotdog lo podemos dejar definido en 100,
|
| 142 |
+
|
| 143 |
+
03:56.880 --> 04:03.800
|
| 144 |
+
lo podemos dejar definido en un millón,
|
| 145 |
+
lo podemos dejar definido en cualquier valor que
|
| 146 |
+
|
| 147 |
+
04:03.800 --> 04:09.960
|
| 148 |
+
quepa dentro de nuestro entero. También
|
| 149 |
+
podemos guardar, como son constantes, podemos guardar
|
| 150 |
+
|
| 151 |
+
04:09.960 --> 04:16.160
|
| 152 |
+
combinaciones de números y letras, por
|
| 153 |
+
ejemplo un código como 100a para indicar que esto es
|
| 154 |
+
|
| 155 |
+
04:16.160 --> 04:22.520
|
| 156 |
+
un elemento específico, eso se podría hacer.
|
| 157 |
+
También podemos crear combinaciones y podemos
|
| 158 |
+
|
| 159 |
+
04:22.520 --> 04:30.360
|
| 160 |
+
decirle que sea 100u, la u es un sufijo
|
| 161 |
+
que nos va a servir para decir que es un signet o para
|
| 162 |
+
|
| 163 |
+
04:30.360 --> 04:36.320
|
| 164 |
+
decir que sea long, podemos usar el sufijo
|
| 165 |
+
L para indicar long y el sufijo u para indicar un signet
|
| 166 |
+
|
| 167 |
+
04:36.320 --> 04:42.400
|
| 168 |
+
respectivamente. Estos sufijos pueden ser
|
| 169 |
+
en mayúscula o en minúscula y no hay problema,
|
| 170 |
+
|
| 171 |
+
04:42.400 --> 04:47.640
|
| 172 |
+
por eso date cuenta que nos los marca bien,
|
| 173 |
+
pero si yo agrego 100w no, si yo agrego 100a no,
|
| 174 |
+
|
| 175 |
+
04:47.640 --> 04:53.280
|
| 176 |
+
si yo agrego 100q no. Espero que te haya
|
| 177 |
+
quedado claro, estoy seguro que con esto ya te queda claro
|
| 178 |
+
|
| 179 |
+
04:53.280 --> 05:03.520
|
| 180 |
+
cómo funcionan los enteros. También
|
| 181 |
+
podemos guardar ciertas palabras que empiecen, también
|
| 182 |
+
|
| 183 |
+
05:03.520 --> 05:11.520
|
| 184 |
+
podemos guardar palabras dentro de esto,
|
| 185 |
+
por ejemplo guardar la palabra fill, guardar la palabra doc,
|
| 186 |
+
|
| 187 |
+
05:11.520 --> 05:19.120
|
| 188 |
+
podemos guardar letras y podemos guardar más.
|
| 189 |
+
Recuerda que aquí estamos creando constantes
|
| 190 |
+
|
| 191 |
+
05:19.120 --> 05:25.280
|
| 192 |
+
enteras, entonces trata de trabajar con
|
| 193 |
+
números directamente, podemos crear constantes flotantes
|
| 194 |
+
|
| 195 |
+
05:25.280 --> 05:35.000
|
| 196 |
+
como para decir cambio, una constante en
|
| 197 |
+
donde damos el cambio de un precio o algo,
|
| 198 |
+
|
| 199 |
+
05:35.000 --> 05:47.760
|
| 200 |
+
cambio hay que ponerlo en inglés, esto
|
| 201 |
+
sería cost, y aquí sería total bill para indicar que es la
|
| 202 |
+
|
| 203 |
+
05:47.760 --> 05:59.120
|
| 204 |
+
cuenta total. Ahora vamos a declararla y
|
| 205 |
+
esta podría ser por ejemplo 100.57, 100.58, como está
|
| 206 |
+
|
| 207 |
+
05:59.120 --> 06:07.120
|
| 208 |
+
en float pues no se puede más de seis
|
| 209 |
+
caracteres, pero también podríamos usar los tipos de datos
|
| 210 |
+
|
| 211 |
+
06:07.120 --> 06:15.680
|
| 212 |
+
flotantes que tengan más caracteres
|
| 213 |
+
siempre y cuando nosotros lo indiquemos. Por último podemos
|
| 214 |
+
|
| 215 |
+
06:15.680 --> 06:24.080
|
| 216 |
+
declarar una constante de tipo carácter,
|
| 217 |
+
aquí tú podrías llamarla por ejemplo newline, o podríamos
|
| 218 |
+
|
| 219 |
+
06:24.080 --> 06:33.440
|
| 220 |
+
sí, salto de línea, newline, el salto de
|
| 221 |
+
línea es algo que se ocupa en el lenguaje C para poder
|
| 222 |
+
|
| 223 |
+
06:33.440 --> 06:39.120
|
| 224 |
+
definir que todo lo que escribamos a
|
| 225 |
+
partir de cierto punto se vaya a una nueva línea en la
|
| 226 |
+
|
| 227 |
+
06:39.120 --> 06:44.800
|
| 228 |
+
pantalla o en la terminal y es diagonal
|
| 229 |
+
invertida n, así que la podemos asignar a un char para que
|
| 230 |
+
|
| 231 |
+
06:44.800 --> 06:51.160
|
| 232 |
+
tenga un valor como newline, esto se puede
|
| 233 |
+
hacer sin ningún problema aquí y funcionaría. En esta clase
|
| 234 |
+
|
| 235 |
+
06:51.160 --> 06:56.760
|
| 236 |
+
ya vimos cómo funcionan las constantes,
|
| 237 |
+
quiero pasarte un par de tips en tus códigos, pero eso
|
| 238 |
+
|
| 239 |
+
06:56.760 --> 07:04.720
|
| 240 |
+
lo haremos en la próxima clase en donde
|
| 241 |
+
aprendamos a usar el preprocesador de fine, que es excelente
|
| 242 |
+
|
| 243 |
+
07:04.720 --> 07:17.360
|
| 244 |
+
y es una gran herramienta para programar en C.
|
| 245 |
+
Nos vemos allá.
|
| 246 |
+
|
04-Variables en el lenguaje C/04-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|