2999a commited on
Commit
813f322
·
verified ·
1 Parent(s): 11fb02f

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +17 -0
  2. 01-Introducción al lenguaje C/01-Fundamentos del Lenguaje de Programación C.mp4 +3 -0
  3. 01-Introducción al lenguaje C/01-Fundamentos del Lenguaje de Programación C.vtt +270 -0
  4. 01-Introducción al lenguaje C/01-Resumen.html +0 -0
  5. 01-Introducción al lenguaje C/01-presentacion-curso-de-introduccion-a-c_03d52e2b-ae7d-4f48-a639-97796abeae8f.pdf +3 -0
  6. 01-Introducción al lenguaje C/02-Lecturas recomendadas.txt +1 -0
  7. 01-Introducción al lenguaje C/02-Programación en C Estructuras Funciones y Memoria.mp4 +3 -0
  8. 01-Introducción al lenguaje C/02-Programación en C Estructuras Funciones y Memoria.vtt +1536 -0
  9. 01-Introducción al lenguaje C/02-Resumen.html +0 -0
  10. 01-Introducción al lenguaje C/03-Cómo una computadora interpreta datos binarios.mp4 +3 -0
  11. 01-Introducción al lenguaje C/03-Cómo una computadora interpreta datos binarios.vtt +503 -0
  12. 01-Introducción al lenguaje C/03-Lecturas recomendadas.txt +1 -0
  13. 01-Introducción al lenguaje C/03-Resumen.html +0 -0
  14. 01-Introducción al lenguaje C/04-Fundamentos del Lenguaje C para Microcontroladores.mp4 +3 -0
  15. 01-Introducción al lenguaje C/04-Fundamentos del Lenguaje C para Microcontroladores.vtt +230 -0
  16. 01-Introducción al lenguaje C/04-Lecturas recomendadas.txt +1 -0
  17. 01-Introducción al lenguaje C/04-Resumen.html +0 -0
  18. 01-Introducción al lenguaje C/05-Configuración de Entorno para Programar en C en Windows.mp4 +3 -0
  19. 01-Introducción al lenguaje C/05-Configuración de Entorno para Programar en C en Windows.vtt +374 -0
  20. 01-Introducción al lenguaje C/05-Lecturas recomendadas.txt +2 -0
  21. 01-Introducción al lenguaje C/05-Resumen.html +0 -0
  22. 01-Introducción al lenguaje C/06-Instalación y Ejecución de Programas C en Linux.mp4 +3 -0
  23. 01-Introducción al lenguaje C/06-Instalación y Ejecución de Programas C en Linux.vtt +214 -0
  24. 01-Introducción al lenguaje C/06-Lecturas recomendadas.txt +1 -0
  25. 01-Introducción al lenguaje C/06-Resumen.html +0 -0
  26. 02-Estructura de un programa C/01-Estructura Básica de un Programa en C.mp4 +3 -0
  27. 02-Estructura de un programa C/01-Estructura Básica de un Programa en C.vtt +146 -0
  28. 02-Estructura de un programa C/01-Resumen.html +0 -0
  29. 03-Tipos de Datos en el lenguaje C/01-Lecturas recomendadas.txt +1 -0
  30. 03-Tipos de Datos en el lenguaje C/01-Resumen.html +0 -0
  31. 03-Tipos de Datos en el lenguaje C/01-Tipos de Datos en C Enteros y Flotantes.mp4 +3 -0
  32. 03-Tipos de Datos en el lenguaje C/01-Tipos de Datos en C Enteros y Flotantes.vtt +522 -0
  33. 03-Tipos de Datos en el lenguaje C/02-Resumen.html +0 -0
  34. 03-Tipos de Datos en el lenguaje C/02-Uso del Tipo de Dato Void en Programación en C.mp4 +3 -0
  35. 03-Tipos de Datos en el lenguaje C/02-Uso del Tipo de Dato Void en Programación en C.vtt +242 -0
  36. 03-Tipos de Datos en el lenguaje C/03-Enums en C Uso y Ejemplos Prácticos para Constantes.mp4 +3 -0
  37. 03-Tipos de Datos en el lenguaje C/03-Enums en C Uso y Ejemplos Prácticos para Constantes.vtt +498 -0
  38. 03-Tipos de Datos en el lenguaje C/03-Resumen.html +0 -0
  39. 03-Tipos de Datos en el lenguaje C/04-Resumen.html +0 -0
  40. 03-Tipos de Datos en el lenguaje C/04-Tipos de datos char y unsigned char en C.mp4 +3 -0
  41. 03-Tipos de Datos en el lenguaje C/04-Tipos de datos char y unsigned char en C.vtt +70 -0
  42. 04-Variables en el lenguaje C/01-Declaración y uso de variables en lenguaje C.mp4 +3 -0
  43. 04-Variables en el lenguaje C/01-Declaración y uso de variables en lenguaje C.vtt +478 -0
  44. 04-Variables en el lenguaje C/01-Resumen.html +0 -0
  45. 04-Variables en el lenguaje C/02-Manejo de Variables Externas en C y Precisión Numérica.mp4 +3 -0
  46. 04-Variables en el lenguaje C/02-Manejo de Variables Externas en C y Precisión Numérica.vtt +178 -0
  47. 04-Variables en el lenguaje C/02-Resumen.html +0 -0
  48. 04-Variables en el lenguaje C/03-Uso de Constantes y Literales en C.mp4 +3 -0
  49. 04-Variables en el lenguaje C/03-Uso de Constantes y Literales en C.vtt +246 -0
  50. 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