2999a commited on
Commit
dc41575
·
verified ·
1 Parent(s): 18b413c

Upload via hfc (batch)

Browse files

Uploaded using hfc tool

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +12 -0
  2. subir/Curso de C Básico/03-Conceptos básicos/06-Lecturas recomendadas.txt +1 -0
  3. subir/Curso de C Básico/03-Conceptos básicos/06-Resumen.html +0 -0
  4. subir/Curso de C Básico/04-Control de flujo/01-Condicionales en C if else else if y operadores lógicos.mp4 +3 -0
  5. subir/Curso de C Básico/04-Control de flujo/01-Condicionales en C if else else if y operadores lógicos.vtt +646 -0
  6. subir/Curso de C Básico/04-Control de flujo/01-Lecturas recomendadas.txt +1 -0
  7. subir/Curso de C Básico/04-Control de flujo/01-Resumen.html +0 -0
  8. subir/Curso de C Básico/04-Control de flujo/01-condicional-if.zip +3 -0
  9. subir/Curso de C Básico/04-Control de flujo/02-Condicionales en C Uso de la Sentencia Switch Case.mp4 +3 -0
  10. subir/Curso de C Básico/04-Control de flujo/02-Condicionales en C Uso de la Sentencia Switch Case.vtt +436 -0
  11. subir/Curso de C Básico/04-Control de flujo/02-Lecturas recomendadas.txt +1 -0
  12. subir/Curso de C Básico/04-Control de flujo/02-Resumen.html +0 -0
  13. subir/Curso de C Básico/04-Control de flujo/02-condicional-switch.zip +3 -0
  14. subir/Curso de C Básico/04-Control de flujo/03-Ciclos For en C Cómo Iterar Listas y Rangos Numéricos.mp4 +3 -0
  15. subir/Curso de C Básico/04-Control de flujo/03-Ciclos For en C Cómo Iterar Listas y Rangos Numéricos.vtt +754 -0
  16. subir/Curso de C Básico/04-Control de flujo/03-Lecturas recomendadas.txt +1 -0
  17. subir/Curso de C Básico/04-Control de flujo/03-Resumen.html +0 -0
  18. subir/Curso de C Básico/04-Control de flujo/03-ciclo-for.zip +3 -0
  19. subir/Curso de C Básico/04-Control de flujo/04-Ciclos While y Do While en C Ejemplos Prácticos.mp4 +3 -0
  20. subir/Curso de C Básico/04-Control de flujo/04-Ciclos While y Do While en C Ejemplos Prácticos.vtt +463 -0
  21. subir/Curso de C Básico/04-Control de flujo/04-Lecturas recomendadas.txt +1 -0
  22. subir/Curso de C Básico/04-Control de flujo/04-Resumen.html +0 -0
  23. subir/Curso de C Básico/04-Control de flujo/04-ciclo-while.zip +3 -0
  24. subir/Curso de C Básico/05-Funciones/01-Funciones en C creación uso y valores por defecto.mp4 +3 -0
  25. subir/Curso de C Básico/05-Funciones/01-Funciones en C creación uso y valores por defecto.vtt +427 -0
  26. subir/Curso de C Básico/05-Funciones/01-Lecturas recomendadas.txt +1 -0
  27. subir/Curso de C Básico/05-Funciones/01-Resumen.html +0 -0
  28. subir/Curso de C Básico/05-Funciones/01-funciones.zip +3 -0
  29. subir/Curso de C Básico/05-Funciones/02-Lecturas recomendadas.txt +1 -0
  30. subir/Curso de C Básico/05-Funciones/02-Resumen.html +0 -0
  31. subir/Curso de C Básico/05-Funciones/02-Uso de la Biblioteca String en C para Manejo de Cadenas de Texto.mp4 +3 -0
  32. subir/Curso de C Básico/05-Funciones/02-Uso de la Biblioteca String en C para Manejo de Cadenas de Texto.vtt +448 -0
  33. subir/Curso de C Básico/05-Funciones/02-biblioteca-estandar.zip +3 -0
  34. subir/Curso de C Básico/06-Próximos pasos/01-Lecturas recomendadas.txt +1 -0
  35. subir/Curso de C Básico/06-Próximos pasos/01-Programación Orientada a Objetos con C.mp4 +3 -0
  36. subir/Curso de C Básico/06-Próximos pasos/01-Resumen.html +0 -0
  37. subir/Curso de Diseño para Developers/01-Introducción/01-Diseño Eficiente para Programadores Herramientas y Conceptos Básicos.mp4 +3 -0
  38. subir/Curso de Diseño para Developers/01-Introducción/01-Diseño Eficiente para Programadores Herramientas y Conceptos Básicos.vtt +61 -0
  39. subir/Curso de Diseño para Developers/01-Introducción/01-Lecturas recomendadas.txt +3 -0
  40. subir/Curso de Diseño para Developers/01-Introducción/01-Resumen.html +0 -0
  41. subir/Curso de Diseño para Developers/01-Introducción/01-slidesdisenoparaprogram_80421720-f8bc-4435-9886-a145e6adbb5a.pdf +3 -0
  42. subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/01-Desarrollo de la creatividad para diseño y aplicaciones web.mp4 +3 -0
  43. subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/01-Desarrollo de la creatividad para diseño y aplicaciones web.vtt +134 -0
  44. subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/01-Resumen.html +0 -0
  45. subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/02-Conceptos Básicos de Composición en Diseño Gráfico.mp4 +3 -0
  46. subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/02-Conceptos Básicos de Composición en Diseño Gráfico.vtt +331 -0
  47. subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/02-Resumen.html +0 -0
  48. subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/03-Responsive Design Metodologías y Prácticas Esenciales.mp4 +3 -0
  49. subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/03-Responsive Design Metodologías y Prácticas Esenciales.vtt +186 -0
  50. subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/03-Resumen.html +0 -0
.gitattributes CHANGED
@@ -140,3 +140,15 @@ subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/03-Conceptos[[:space:]]b
140
  subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/03-Conceptos[[:space:]]básicos/04-Constantes[[:space:]]y[[:space:]]Listas[[:space:]]en[[:space:]]C[[:space:]]Uso[[:space:]]y[[:space:]]Manipulación[[:space:]]Básica.mp4 filter=lfs diff=lfs merge=lfs -text
141
  subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/03-Conceptos[[:space:]]básicos/05-Operadores[[:space:]]en[[:space:]]C[[:space:]]Aritméticos[[:space:]]Comparativos[[:space:]]y[[:space:]]Lógicos.mp4 filter=lfs diff=lfs merge=lfs -text
142
  subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/03-Conceptos[[:space:]]básicos/06-Manejo[[:space:]]de[[:space:]]Entrada[[:space:]]y[[:space:]]Salida[[:space:]]de[[:space:]]Datos[[:space:]]con[[:space:]]IOStream[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/03-Conceptos[[:space:]]básicos/04-Constantes[[:space:]]y[[:space:]]Listas[[:space:]]en[[:space:]]C[[:space:]]Uso[[:space:]]y[[:space:]]Manipulación[[:space:]]Básica.mp4 filter=lfs diff=lfs merge=lfs -text
141
  subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/03-Conceptos[[:space:]]básicos/05-Operadores[[:space:]]en[[:space:]]C[[:space:]]Aritméticos[[:space:]]Comparativos[[:space:]]y[[:space:]]Lógicos.mp4 filter=lfs diff=lfs merge=lfs -text
142
  subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/03-Conceptos[[:space:]]básicos/06-Manejo[[:space:]]de[[:space:]]Entrada[[:space:]]y[[:space:]]Salida[[:space:]]de[[:space:]]Datos[[:space:]]con[[:space:]]IOStream[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
143
+ subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/04-Control[[:space:]]de[[:space:]]flujo/01-Condicionales[[:space:]]en[[:space:]]C[[:space:]]if[[:space:]]else[[:space:]]else[[:space:]]if[[:space:]]y[[:space:]]operadores[[:space:]]lógicos.mp4 filter=lfs diff=lfs merge=lfs -text
144
+ subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/04-Control[[:space:]]de[[:space:]]flujo/02-Condicionales[[:space:]]en[[:space:]]C[[:space:]]Uso[[:space:]]de[[:space:]]la[[:space:]]Sentencia[[:space:]]Switch[[:space:]]Case.mp4 filter=lfs diff=lfs merge=lfs -text
145
+ subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/04-Control[[:space:]]de[[:space:]]flujo/03-Ciclos[[:space:]]For[[:space:]]en[[:space:]]C[[:space:]]Cómo[[:space:]]Iterar[[:space:]]Listas[[:space:]]y[[:space:]]Rangos[[:space:]]Numéricos.mp4 filter=lfs diff=lfs merge=lfs -text
146
+ subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/04-Control[[:space:]]de[[:space:]]flujo/04-Ciclos[[:space:]]While[[:space:]]y[[:space:]]Do[[:space:]]While[[:space:]]en[[:space:]]C[[:space:]]Ejemplos[[:space:]]Prácticos.mp4 filter=lfs diff=lfs merge=lfs -text
147
+ subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/05-Funciones/01-Funciones[[:space:]]en[[:space:]]C[[:space:]]creación[[:space:]]uso[[:space:]]y[[:space:]]valores[[:space:]]por[[:space:]]defecto.mp4 filter=lfs diff=lfs merge=lfs -text
148
+ subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/05-Funciones/02-Uso[[:space:]]de[[:space:]]la[[:space:]]Biblioteca[[:space:]]String[[:space:]]en[[:space:]]C[[:space:]]para[[:space:]]Manejo[[:space:]]de[[:space:]]Cadenas[[:space:]]de[[:space:]]Texto.mp4 filter=lfs diff=lfs merge=lfs -text
149
+ subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/06-Próximos[[:space:]]pasos/01-Programación[[:space:]]Orientada[[:space:]]a[[:space:]]Objetos[[:space:]]con[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
150
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/01-Introducción/01-Diseño[[:space:]]Eficiente[[:space:]]para[[:space:]]Programadores[[:space:]]Herramientas[[:space:]]y[[:space:]]Conceptos[[:space:]]Básicos.mp4 filter=lfs diff=lfs merge=lfs -text
151
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/01-Introducción/01-slidesdisenoparaprogram_80421720-f8bc-4435-9886-a145e6adbb5a.pdf filter=lfs diff=lfs merge=lfs -text
152
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/02-Entender[[:space:]]los[[:space:]]Fundamentos[[:space:]]del[[:space:]]diseño/01-Desarrollo[[:space:]]de[[:space:]]la[[:space:]]creatividad[[:space:]]para[[:space:]]diseño[[:space:]]y[[:space:]]aplicaciones[[:space:]]web.mp4 filter=lfs diff=lfs merge=lfs -text
153
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/02-Entender[[:space:]]los[[:space:]]Fundamentos[[:space:]]del[[:space:]]diseño/02-Conceptos[[:space:]]Básicos[[:space:]]de[[:space:]]Composición[[:space:]]en[[:space:]]Diseño[[:space:]]Gráfico.mp4 filter=lfs diff=lfs merge=lfs -text
154
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/02-Entender[[:space:]]los[[:space:]]Fundamentos[[:space:]]del[[:space:]]diseño/03-Responsive[[:space:]]Design[[:space:]]Metodologías[[:space:]]y[[:space:]]Prácticas[[:space:]]Esenciales.mp4 filter=lfs diff=lfs merge=lfs -text
subir/Curso de C Básico/03-Conceptos básicos/06-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/curso-basico-c-plus-plus/tree/entrada-salida-datos
subir/Curso de C Básico/03-Conceptos básicos/06-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de C Básico/04-Control de flujo/01-Condicionales en C if else else if y operadores lógicos.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6cc1f769889ab8d3a34c2c1c4db95c07cd54f3bf4c8d74ba4181931d989f584c
3
+ size 120386341
subir/Curso de C Básico/04-Control de flujo/01-Condicionales en C if else else if y operadores lógicos.vtt ADDED
@@ -0,0 +1,646 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:03.120 --> 00:00:05.279
4
+ Vamos a hablar sobre las condicionales en C
5
+
6
+ 00:00:05.279 --> 00:00:08.020
7
+ más más. Como sabes, los lenguajes de programación
8
+
9
+ 00:00:08.639 --> 00:00:11.540
10
+ tienen diferentes formas de realizar toma de decisiones
11
+
12
+ 00:00:11.759 --> 00:00:14.320
13
+ durante la ejecución de nuestros programas. Esto es
14
+
15
+ 00:00:14.320 --> 00:00:16.965
16
+ para que la computadora no sea solo una
17
+
18
+ 00:00:16.965 --> 00:00:20.564
19
+ computadora que realice cálculos de una forma tonta,
20
+
21
+ 00:00:20.564 --> 00:00:22.884
22
+ sino que además pueda tomar decisiones sobre los
23
+
24
+ 00:00:22.884 --> 00:00:26.485
25
+ mismos y poder implementar algoritmos más complejos y
26
+
27
+ 00:00:26.485 --> 00:00:29.220
28
+ completos. Vamos a ver un ejemplo de código.
29
+
30
+ 00:00:29.460 --> 00:00:31.939
31
+ A continuación, te muestro el mismo código base
32
+
33
+ 00:00:31.939 --> 00:00:33.640
34
+ que hemos estado utilizando en todos nuestros ejercicios
35
+
36
+ 00:00:34.100 --> 00:00:36.980
37
+ y vamos a revisar nuestros primeros condicionales, pero
38
+
39
+ 00:00:36.980 --> 00:00:39.780
40
+ para esto vamos a utilizar unas variables que
41
+
42
+ 00:00:39.780 --> 00:00:42.579
43
+ son de tipo booleano, vamos a realizar operaciones
44
+
45
+ 00:00:42.579 --> 00:00:44.840
46
+ booleanas con las que vamos a poder comparar
47
+
48
+ 00:00:45.755 --> 00:00:47.915
49
+ si los valores dan verdadero o falso, ya
50
+
51
+ 00:00:47.915 --> 00:00:50.635
52
+ que los condicionales necesitan de este tipo de
53
+
54
+ 00:00:50.635 --> 00:00:53.675
55
+ valor para poder funcionar. Vamos a crear una
56
+
57
+ 00:00:53.675 --> 00:00:56.475
58
+ variable de tipo booleano, por ejemplo, una que
59
+
60
+ 00:00:56.475 --> 00:01:00.900
61
+ se llame resultado, y que va a almacenar
62
+
63
+ 00:01:00.900 --> 00:01:03.400
64
+ las operaciones de ejemplo que vamos a realizar.
65
+
66
+ 00:01:03.780 --> 00:01:05.960
67
+ Y el resultado lo vamos a mostrar en
68
+
69
+ 00:01:06.500 --> 00:01:13.335
70
+ la salida de nuestra terminal. Ahora, ¿cuáles son
71
+
72
+ 00:01:13.335 --> 00:01:17.174
73
+ las principales operaciones booleanas que conocemos? Pues, existen
74
+
75
+ 00:01:17.174 --> 00:01:21.354
76
+ tres. Existe Ant, Or y Not. La operación
77
+
78
+ 00:01:21.814 --> 00:01:25.255
79
+ Ant nos permite evaluar si dos elementos dan
80
+
81
+ 00:01:25.255 --> 00:01:28.268
82
+ verdadero o falso. Sí va a dar verdadero
83
+
84
+ 00:01:28.268 --> 00:01:30.140
85
+ o falso dependiendo de cuál sea su cómodo.
86
+
87
+ 00:01:30.140 --> 00:01:33.340
88
+ Por ejemplo, si yo tengo un valor true,
89
+
90
+ 00:01:33.340 --> 00:01:37.100
91
+ que es verdadero, y otro valor true, estos
92
+
93
+ 00:01:37.100 --> 00:01:40.539
94
+ valores podrían ser operaciones que devuelvan verdadero o
95
+
96
+ 00:01:40.539 --> 00:01:44.035
97
+ falso, no necesariamente la palabra true, pero supongamos
98
+
99
+ 00:01:44.035 --> 00:01:46.354
100
+ que yo tengo de la izquierda una expresión
101
+
102
+ 00:01:46.354 --> 00:01:48.595
103
+ que devuelve verdadero y a la derecha otra
104
+
105
+ 00:01:48.595 --> 00:01:51.815
106
+ expresión que devuelve verdadero o falso. La operación
107
+
108
+ 00:01:52.115 --> 00:01:53.955
109
+ and, que son estos dos símbolos de aquí,
110
+
111
+ 00:01:53.955 --> 00:01:56.450
112
+ lo que va a hacer es realizar una
113
+
114
+ 00:01:56.450 --> 00:01:59.770
115
+ validación, una verificación. Si los dos lados son
116
+
117
+ 00:01:59.770 --> 00:02:03.609
118
+ verdaderos, entonces, devolverá verdadero. Si los dos lados
119
+
120
+ 00:02:03.609 --> 00:02:06.729
121
+ son falsos, devolverá falso. Y si cualquiera de
122
+
123
+ 00:02:06.729 --> 00:02:09.050
124
+ los dos lados es verdadero, no importando que
125
+
126
+ 00:02:09.050 --> 00:02:11.310
127
+ el otro sea falso, va a devolver verdadero.
128
+
129
+ 00:02:11.985 --> 00:02:14.811
130
+ Vamos a realizar la ejecución y vamos a
131
+
132
+ 00:02:14.811 --> 00:02:17.045
133
+ observar que una vez que tenemos la salida,
134
+
135
+ 00:02:20.225 --> 00:02:22.865
136
+ obtenemos el resultado de nuestra operación con el
137
+
138
+ 00:02:22.865 --> 00:02:27.210
139
+ valor uno, que como sabemos significa verdadero. Otra
140
+
141
+ 00:02:27.210 --> 00:02:31.550
142
+ operación booleana que funciona con nuestro nuestros condicionales
143
+
144
+ 00:02:31.930 --> 00:02:33.810
145
+ es la posibilidad de evaluar si solo uno
146
+
147
+ 00:02:33.810 --> 00:02:37.050
148
+ de los dos es verdadero. Por ejemplo, utilizando
149
+
150
+ 00:02:37.050 --> 00:02:39.530
151
+ el símbolo de doble barra, que es el
152
+
153
+ 00:02:39.530 --> 00:02:42.285
154
+ operador or, vamos a poder evaluar si tanto
155
+
156
+ 00:02:42.285 --> 00:02:44.285
157
+ de la izquierda o de la derecha cualquiera
158
+
159
+ 00:02:44.285 --> 00:02:46.845
160
+ de los dos es verdadero, el otro puede
161
+
162
+ 00:02:46.845 --> 00:02:49.245
163
+ ser falso, siempre que haya uno verdadero, la
164
+
165
+ 00:02:49.245 --> 00:02:52.445
166
+ operación or nos va a devolver verdadero, y
167
+
168
+ 00:02:52.445 --> 00:02:56.560
169
+ vamos a ejecutarlo. La única forma en la
170
+
171
+ 00:02:56.560 --> 00:02:58.319
172
+ que la operación or nos va a devolver
173
+
174
+ 00:02:58.319 --> 00:03:00.720
175
+ falso es cuando los dos lados tengan un
176
+
177
+ 00:03:00.720 --> 00:03:04.159
178
+ valor falso. En este caso, son las dos
179
+
180
+ 00:03:04.159 --> 00:03:07.200
181
+ principales operaciones que existen, pero existe una tercera
182
+
183
+ 00:03:07.200 --> 00:03:08.795
184
+ y última que vamos a ver, que es
185
+
186
+ 00:03:08.795 --> 00:03:10.555
187
+ la operación NOT, y lo que va a
188
+
189
+ 00:03:10.555 --> 00:03:14.415
190
+ hacer es invertir el valor lógico que hayamos
191
+
192
+ 00:03:15.595 --> 00:03:19.275
193
+ puesto después de el símbolo de negación. En
194
+
195
+ 00:03:19.275 --> 00:03:21.435
196
+ este caso, el símbolo de negación es este
197
+
198
+ 00:03:21.435 --> 00:03:24.230
199
+ símbolo de admiración, y lo que va a
200
+
201
+ 00:03:24.230 --> 00:03:26.370
202
+ hacer es que si obtiene un valor verdadero
203
+
204
+ 00:03:26.510 --> 00:03:28.190
205
+ a su derecha, lo va a convertir en
206
+
207
+ 00:03:28.190 --> 00:03:31.470
208
+ un verdadero, en un valor falso, y si
209
+
210
+ 00:03:31.470 --> 00:03:33.390
211
+ obtiene un valor falso, lo va a convertir
212
+
213
+ 00:03:33.390 --> 00:03:36.910
214
+ en un valor verdadero. Vamos a realizar la
215
+
216
+ 00:03:36.910 --> 00:03:40.055
217
+ ejecución y listo. Tienes como true se convierte
218
+
219
+ 00:03:40.055 --> 00:03:44.695
220
+ en cero, que es falso. Ahora que ya
221
+
222
+ 00:03:44.695 --> 00:03:48.295
223
+ conocemos cómo funcionan las funciones lógicas, las operaciones
224
+
225
+ 00:03:48.295 --> 00:03:52.075
226
+ lógicas, sabemos que estas nos permiten tomar decisiones.
227
+
228
+ 00:03:52.375 --> 00:03:54.890
229
+ Por ejemplo, si una contraseña es igual a
230
+
231
+ 00:03:54.890 --> 00:03:57.770
232
+ otra, eso devuelve verdadero. Si un número es
233
+
234
+ 00:03:57.770 --> 00:04:00.570
235
+ mayor o menor que cierto otro número de
236
+
237
+ 00:04:00.570 --> 00:04:02.410
238
+ una variable, eso también nos puede dar verdadero
239
+
240
+ 00:04:02.410 --> 00:04:06.590
241
+ o falso. Entonces, todas estas condiciones las podemos
242
+
243
+ 00:04:07.050 --> 00:04:09.115
244
+ utilizar para tomar decisiones en nuestro programa, y
245
+
246
+ 00:04:09.115 --> 00:04:12.395
247
+ eso lo vamos a hacer utilizando if. Por
248
+
249
+ 00:04:12.395 --> 00:04:15.535
250
+ ejemplo, supongamos que yo quiero utilizar un programa
251
+
252
+ 00:04:15.755 --> 00:04:18.154
253
+ para evaluar si una persona puede votar en
254
+
255
+ 00:04:18.154 --> 00:04:21.755
256
+ unas elecciones. Supongamos que la condición es que
257
+
258
+ 00:04:21.755 --> 00:04:25.410
259
+ pueden votar solo personas entre dieciocho y cuarenta
260
+
261
+ 00:04:25.410 --> 00:04:29.090
262
+ años. Para esto necesitaríamos una variable que va
263
+
264
+ 00:04:29.090 --> 00:04:31.090
265
+ almacenar la edad de la persona. Vamos a
266
+
267
+ 00:04:31.090 --> 00:04:34.610
268
+ crear una variable que se llame edad, que
269
+
270
+ 00:04:34.610 --> 00:04:37.570
271
+ contenga, pues, cualquier edad que vayamos a poder
272
+
273
+ 00:04:37.570 --> 00:04:40.355
274
+ introducir. La voy a inicializar como cero y
275
+
276
+ 00:04:40.355 --> 00:04:41.735
277
+ luego se la voy a pedir al usuario.
278
+
279
+ 00:04:41.735 --> 00:04:47.955
280
+ Le voy a poner c out, edad, dos
281
+
282
+ 00:04:47.955 --> 00:04:50.995
283
+ puntos, y a continuación voy a hacer un
284
+
285
+ 00:04:50.995 --> 00:04:59.450
286
+ same. De edad. De esta manera voy a
287
+
288
+ 00:04:59.450 --> 00:05:02.510
289
+ pedirle al usuario su edad cuando ejecute el
290
+
291
+ 00:05:03.530 --> 00:05:06.664
292
+ programa. Ahora, necesito realizar la primera validación, que
293
+
294
+ 00:05:06.664 --> 00:05:09.125
295
+ es que sea mayor de dieciocho años. Para
296
+
297
+ 00:05:09.224 --> 00:05:12.025
298
+ esto, puedo utilizar la palabra if de la
299
+
300
+ 00:05:12.025 --> 00:05:16.504
301
+ siguiente manera. If es esta estructura que contiene
302
+
303
+ 00:05:16.504 --> 00:05:19.479
304
+ entre paréntesis una condición y entre llaves el
305
+
306
+ 00:05:19.479 --> 00:05:21.080
307
+ código que se va a ejecutar si esta
308
+
309
+ 00:05:21.080 --> 00:05:23.479
310
+ condición se cumple. Si yo quiero evaluar si
311
+
312
+ 00:05:23.479 --> 00:05:25.639
313
+ la persona es mayor de dieciocho años o
314
+
315
+ 00:05:25.639 --> 00:05:28.360
316
+ de dieciocho años, entonces yo puedo poner un
317
+
318
+ 00:05:28.360 --> 00:05:32.985
319
+ condicional que sea si edad es mayor o
320
+
321
+ 00:05:32.985 --> 00:05:37.625
322
+ igual de dieciocho. Si esto es correcto, entonces
323
+
324
+ 00:05:37.625 --> 00:05:39.865
325
+ yo dejaría a la persona votar, ¿no? Entonces
326
+
327
+ 00:05:39.865 --> 00:05:43.085
328
+ puedo poner un mensaje de salida que diga,
329
+
330
+ 00:05:43.385 --> 00:05:50.880
331
+ puedes votar. Y en caso de que yo
332
+
333
+ 00:05:50.880 --> 00:05:52.960
334
+ quisiera decirle un error, de que no puede
335
+
336
+ 00:05:52.960 --> 00:05:55.440
337
+ votar cuando no cumple con esta característica porque
338
+
339
+ 00:05:55.440 --> 00:05:57.835
340
+ sea menor de edad, entonces yo puedo utilizar
341
+
342
+ 00:05:57.835 --> 00:06:01.355
343
+ la palabra else. La palabra else me indica
344
+
345
+ 00:06:01.355 --> 00:06:02.875
346
+ lo que sucede en caso de que el
347
+
348
+ 00:06:02.875 --> 00:06:06.395
349
+ condicional no se cumpla. En este caso, podría
350
+
351
+ 00:06:06.395 --> 00:06:13.900
352
+ ponerle un mensaje como no puedes votar. Si
353
+
354
+ 00:06:13.900 --> 00:06:18.140
355
+ yo probara esto, podríamos ejecutarlo y nos va
356
+
357
+ 00:06:18.140 --> 00:06:20.060
358
+ a pedir una edad. Supongamos que es una
359
+
360
+ 00:06:20.060 --> 00:06:23.660
361
+ persona de diecinueve años, en este caso, nos
362
+
363
+ 00:06:23.660 --> 00:06:27.795
364
+ diría, puedes votar. Pero, ¿qué pasaría si entra
365
+
366
+ 00:06:27.795 --> 00:06:29.555
367
+ y trata de votar una persona que solo
368
+
369
+ 00:06:29.555 --> 00:06:32.755
370
+ tenga quince años? En este caso, me diría
371
+
372
+ 00:06:32.755 --> 00:06:35.495
373
+ que no puedo votar. Este es el funcionamiento
374
+
375
+ 00:06:35.515 --> 00:06:37.555
376
+ esperado de nuestro programa, y esta es la
377
+
378
+ 00:06:37.555 --> 00:06:40.660
379
+ forma en la que funcionan los condicionales. Pero,
380
+
381
+ 00:06:40.660 --> 00:06:43.139
382
+ ¿qué pasaría si yo quisiera validar la segunda
383
+
384
+ 00:06:43.139 --> 00:06:46.340
385
+ condición que habíamos considerado? Que solamente pueden votar
386
+
387
+ 00:06:46.340 --> 00:06:49.060
388
+ personas de hasta cuarenta años, es decir, cuarenta
389
+
390
+ 00:06:49.060 --> 00:06:52.820
391
+ años, pero no más. Entonces, yo podría comenzar
392
+
393
+ 00:06:52.820 --> 00:06:56.125
394
+ a agregar complejidad a mi programa y realizar
395
+
396
+ 00:06:56.125 --> 00:06:58.445
397
+ dentro de, ok, ya tiene más de dieciocho
398
+
399
+ 00:06:58.445 --> 00:07:02.205
400
+ años o dieciocho años cumplidos otra condición. Por
401
+
402
+ 00:07:02.205 --> 00:07:05.324
403
+ ejemplo, podría agregar una condición que pregunte ahora
404
+
405
+ 00:07:05.324 --> 00:07:08.525
406
+ por la edad máxima. Supongamos que ahora edad
407
+
408
+ 00:07:08.525 --> 00:07:11.639
409
+ es igual a, es menor o igual a
410
+
411
+ 00:07:12.340 --> 00:07:16.360
412
+ el máximo de edad permitido. En ese caso,
413
+
414
+ 00:07:16.420 --> 00:07:19.300
415
+ podríamos decirle a la persona que puede votar,
416
+
417
+ 00:07:19.300 --> 00:07:21.960
418
+ por eso yo voy a tomar este valor,
419
+
420
+ 00:07:22.740 --> 00:07:25.395
421
+ este código, y lo voy a pegar aquí.
422
+
423
+ 00:07:25.715 --> 00:07:27.794
424
+ Con esto le estaríamos diciendo que si la
425
+
426
+ 00:07:27.794 --> 00:07:29.875
427
+ persona primero ya cumplió que es mayor de
428
+
429
+ 00:07:29.875 --> 00:07:32.115
430
+ edad, ya tiene más de dieciocho años, y
431
+
432
+ 00:07:32.115 --> 00:07:35.074
433
+ luego ya cumplió que es menor de cuarenta
434
+
435
+ 00:07:35.074 --> 00:07:38.139
436
+ hoy máximo cuarenta, entonces puede votar, y en
437
+
438
+ 00:07:38.139 --> 00:07:40.620
439
+ caso de que no, bueno, podría agregarle otro
440
+
441
+ 00:07:40.620 --> 00:07:46.220
442
+ else que nos diga no puedes votar. De
443
+
444
+ 00:07:46.220 --> 00:07:49.520
445
+ esta manera, yo estaría validando todos los puntos
446
+
447
+ 00:07:49.580 --> 00:07:53.685
448
+ de mi ejercicio propuesto. Ahora, supongamos que es
449
+
450
+ 00:07:53.685 --> 00:07:56.085
451
+ una persona que tiene cincuenta años, en el
452
+
453
+ 00:07:56.085 --> 00:07:57.764
454
+ caso de ejemplo, le diría que no puede
455
+
456
+ 00:07:57.764 --> 00:08:01.285
457
+ votar. Si volvemos a repetir el ejercicio, pero
458
+
459
+ 00:08:01.285 --> 00:08:04.780
460
+ ahora introducimos una edad de diecinueve años, nos
461
+
462
+ 00:08:04.780 --> 00:08:08.180
463
+ diría que puede votar. Este es el funcionamiento
464
+
465
+ 00:08:08.180 --> 00:08:10.540
466
+ esperado, pero existe una forma un poco más
467
+
468
+ 00:08:10.540 --> 00:08:13.420
469
+ organizada de realizar este tipo de condiciones, donde
470
+
471
+ 00:08:13.420 --> 00:08:16.140
472
+ validamos una misma variable una y otra vez,
473
+
474
+ 00:08:16.140 --> 00:08:19.260
475
+ o incluso podemos realizar múltiples validaciones de diferentes
476
+
477
+ 00:08:19.260 --> 00:08:23.325
478
+ cosas. Y es para no anidar un if
479
+
480
+ 00:08:23.325 --> 00:08:26.045
481
+ dentro de otro if. En este caso, tendríamos,
482
+
483
+ 00:08:26.045 --> 00:08:28.605
484
+ si tuviéramos muchas otras cosas que validar, se
485
+
486
+ 00:08:28.605 --> 00:08:30.925
487
+ iría agregando una complejidad a la hora de
488
+
489
+ 00:08:30.925 --> 00:08:33.405
490
+ leer nuestro programa. Por lo tanto, se inventó
491
+
492
+ 00:08:33.405 --> 00:08:35.620
493
+ una forma mucho más fácil y eficiente, que
494
+
495
+ 00:08:35.620 --> 00:08:39.020
496
+ es utilizar else if. Con esto, yo tengo
497
+
498
+ 00:08:39.020 --> 00:08:40.819
499
+ que cambiar un poco la lógica de mi
500
+
501
+ 00:08:40.819 --> 00:08:43.379
502
+ programa para indicarle cuándo puede y cuándo no
503
+
504
+ 00:08:43.379 --> 00:08:46.740
505
+ puede votar la persona. En este caso, tenemos
506
+
507
+ 00:08:46.740 --> 00:08:49.399
508
+ primero que validar todas las cosas que no
509
+
510
+ 00:08:49.610 --> 00:08:52.658
511
+ debería poder hacer, y si ya pasó todas
512
+
513
+ 00:08:52.658 --> 00:08:55.725
514
+ las validaciones, entonces ya debería poder votar. En
515
+
516
+ 00:08:55.725 --> 00:08:58.084
517
+ este caso, vamos a utilizar, por ejemplo, la
518
+
519
+ 00:08:58.084 --> 00:09:01.805
520
+ primera condición para preguntar si es menor que
521
+
522
+ 00:09:01.805 --> 00:09:05.020
523
+ dieciocho años. Si la persona es menor que
524
+
525
+ 00:09:05.020 --> 00:09:08.640
526
+ dieciocho años, entonces le diríamos, no puedes votar,
527
+
528
+ 00:09:09.420 --> 00:09:13.360
529
+ y si no, entonces pasaría al puedes votar.
530
+
531
+ 00:09:14.940 --> 00:09:17.740
532
+ Esto funcionaría para validar que sea mayor de
533
+
534
+ 00:09:17.740 --> 00:09:22.925
535
+ dieciocho años, pero ahora necesitamos validar la otra
536
+
537
+ 00:09:23.105 --> 00:09:25.585
538
+ característica que es que sea menor de cuarenta,
539
+
540
+ 00:09:25.585 --> 00:09:29.345
541
+ ¿no? Entonces, podríamos agregarle otra condición y ahora
542
+
543
+ 00:09:29.345 --> 00:09:32.965
544
+ sí utilizaríamos la magia de nuestro condicional combinando
545
+
546
+ 00:09:33.105 --> 00:09:34.610
547
+ else con un nuevo if. En este caso,
548
+
549
+ 00:09:34.610 --> 00:09:37.230
550
+ podríamos decirle, y si no fue lo anterior,
551
+
552
+ 00:09:38.329 --> 00:09:41.450
553
+ hago otra pregunta que ahora sería sobre su
554
+
555
+ 00:09:41.450 --> 00:09:45.450
556
+ edad menor de cuarenta años. Por ejemplo, si
557
+
558
+ 00:09:45.450 --> 00:09:46.830
559
+ la persona, y y aquí vamos a validar
560
+
561
+ 00:09:46.830 --> 00:09:48.595
562
+ lo que de error, en este caso, si
563
+
564
+ 00:09:48.595 --> 00:09:52.595
565
+ la persona es mayor de cuarenta años, entonces
566
+
567
+ 00:09:52.595 --> 00:09:57.075
568
+ si edad es mayor de cuarenta años y
569
+
570
+ 00:09:57.075 --> 00:09:59.475
571
+ le volveríamos a dar un error que diga
572
+
573
+ 00:09:59.475 --> 00:10:02.210
574
+ no puedes votar. Fíjate bien lo que pasa
575
+
576
+ 00:10:02.210 --> 00:10:05.250
577
+ aquí. Primero, si la persona tiene menos de
578
+
579
+ 00:10:05.250 --> 00:10:08.070
580
+ dieciocho años, le dices que no puedes votar.
581
+
582
+ 00:10:08.770 --> 00:10:11.490
583
+ Si no, o sea, es mayor de dieciocho
584
+
585
+ 00:10:11.490 --> 00:10:13.890
586
+ años, pero ahora le preguntas una nueva cosa,
587
+
588
+ 00:10:13.890 --> 00:10:16.591
589
+ ¿es mayor de cuarenta años? Si eso es
590
+
591
+ 00:10:16.591 --> 00:10:19.845
592
+ verdad, entonces no puedes votar tampoco. Y si
593
+
594
+ 00:10:19.845 --> 00:10:23.605
595
+ ninguna de las cosas anteriores sucedió, entonces ahora
596
+
597
+ 00:10:23.605 --> 00:10:26.665
598
+ sí le dirás que puede votar, porque puedes
599
+
600
+ 00:10:26.805 --> 00:10:28.805
601
+ asumir que cumplió con el rango de edad
602
+
603
+ 00:10:28.805 --> 00:10:31.709
604
+ establecido. Vamos a realizar la ejecución de este
605
+
606
+ 00:10:32.009 --> 00:10:36.329
607
+ programa con una edad de veinticuatro años, y
608
+
609
+ 00:10:36.329 --> 00:10:38.430
610
+ el programa ahora te dice que puedes votar.
611
+
612
+ 00:10:39.050 --> 00:10:41.209
613
+ ¿Qué sucede si yo pongo una persona que
614
+
615
+ 00:10:41.209 --> 00:10:44.649
616
+ solo tenga catorce años? Pues me dice que
617
+
618
+ 00:10:44.649 --> 00:10:47.525
619
+ no puede votar, y por último, una persona
620
+
621
+ 00:10:47.825 --> 00:10:51.985
622
+ que tenga cincuenta años me dirá que no
623
+
624
+ 00:10:51.985 --> 00:10:54.225
625
+ puede votar. Esta es la forma de utilizar
626
+
627
+ 00:10:54.225 --> 00:10:56.865
628
+ sentencias condicionales dentro de c más más, la
629
+
630
+ 00:10:56.865 --> 00:10:59.550
631
+ forma de utilizar if, else y else if.
632
+
633
+ 00:10:59.550 --> 00:11:01.950
634
+ Pero esta no es la forma más óptima
635
+
636
+ 00:11:01.950 --> 00:11:04.670
637
+ de escribir este ejemplo, te reto a escribir
638
+
639
+ 00:11:04.670 --> 00:11:09.266
640
+ una mejor alternativa utilizando la condición utilizando una
641
+
642
+ 00:11:09.266 --> 00:11:12.467
643
+ sentencia or. Nos vemos en la próxima clase,
644
+
645
+ 00:11:12.467 --> 00:11:15.446
646
+ donde aprenderemos a utilizar switch con case.
subir/Curso de C Básico/04-Control de flujo/01-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/curso-basico-c-plus-plus/tree/condicional-if
subir/Curso de C Básico/04-Control de flujo/01-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de C Básico/04-Control de flujo/01-condicional-if.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a1146a159e1894869e3e53e7800c3498ab9c1f319ed46aa42fa3fe920a650fd0
3
+ size 2929
subir/Curso de C Básico/04-Control de flujo/02-Condicionales en C Uso de la Sentencia Switch Case.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:98a9e876612da39fd801cb771e3bd7c0ca8d4cd507a6d24432d931ac101a5145
3
+ size 80291134
subir/Curso de C Básico/04-Control de flujo/02-Condicionales en C Uso de la Sentencia Switch Case.vtt ADDED
@@ -0,0 +1,436 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:03.040 --> 00:00:04.960
4
+ Vamos a ver la segunda parte de los
5
+
6
+ 00:00:04.960 --> 00:00:07.359
7
+ condicionales en C más más. Vamos a hablar
8
+
9
+ 00:00:07.359 --> 00:00:10.900
10
+ de la sentencia switch case. Vamos al código.
11
+
12
+ 00:00:11.120 --> 00:00:13.440
13
+ La sentencia switch case es una forma más
14
+
15
+ 00:00:13.440 --> 00:00:16.805
16
+ óptima de escribir algunos condicionales, específicamente cuando vamos
17
+
18
+ 00:00:16.805 --> 00:00:20.105
19
+ a validar si una misma variable contiene diferentes
20
+
21
+ 00:00:20.165 --> 00:00:22.645
22
+ opciones de datos. Vamos a hacer un ejemplo.
23
+
24
+ 00:00:22.645 --> 00:00:25.465
25
+ Supongamos que yo tengo, por ejemplo, un menú
26
+
27
+ 00:00:25.525 --> 00:00:27.845
28
+ principal de algún sistema. No sé si alguna
29
+
30
+ 00:00:27.845 --> 00:00:29.525
31
+ vez has llamado a alguna de estas líneas
32
+
33
+ 00:00:29.525 --> 00:00:32.170
34
+ telefónicas que te dicen, si quiere tal opción,
35
+
36
+ 00:00:32.170 --> 00:00:34.930
37
+ marque uno, si quiere esta otra, marque dos,
38
+
39
+ 00:00:34.930 --> 00:00:37.850
40
+ o incluso algunos chatbots también hacen esto, pues
41
+
42
+ 00:00:37.850 --> 00:00:39.950
43
+ es el ejemplo que vamos a manejar aquí.
44
+
45
+ 00:00:40.170 --> 00:00:43.129
46
+ Supongamos que la persona quiere introducir un número
47
+
48
+ 00:00:43.129 --> 00:00:46.015
49
+ para seleccionar una opción en un menú. Para
50
+
51
+ 00:00:46.015 --> 00:00:48.574
52
+ esto, tendríamos que crear una variable que contenga
53
+
54
+ 00:00:48.574 --> 00:00:51.155
55
+ el número que la persona seleccionó. Por ejemplo,
56
+
57
+ 00:00:51.295 --> 00:00:54.655
58
+ vamos a crear un valor entero que se
59
+
60
+ 00:00:54.655 --> 00:01:00.559
61
+ llame opción, y le vamos a asignar un
62
+
63
+ 00:01:00.559 --> 00:01:04.560
64
+ valor inicial de cero. Y ahora, si yo
65
+
66
+ 00:01:04.560 --> 00:01:06.479
67
+ quisiera validar cuál es la opción que escogió
68
+
69
+ 00:01:06.479 --> 00:01:10.159
70
+ el usuario, podría comenzar de una forma, pues,
71
+
72
+ 00:01:10.159 --> 00:01:12.615
73
+ conocida, que podría ser la condición if. Supongamos
74
+
75
+ 00:01:12.615 --> 00:01:14.855
76
+ que yo quiero validar si la opción fue
77
+
78
+ 00:01:14.855 --> 00:01:16.935
79
+ uno o dos o tres, entonces, yo podría
80
+
81
+ 00:01:16.935 --> 00:01:19.995
82
+ hacer una serie de condicionales como este, opción
83
+
84
+ 00:01:22.455 --> 00:01:25.275
85
+ igual igual a uno, y en este caso,
86
+
87
+ 00:01:25.575 --> 00:01:28.160
88
+ podría ponerle como seleccionaste tal cosa, ¿no? Por
89
+
90
+ 00:01:28.620 --> 00:01:40.155
91
+ ejemplo, primera opción del menú. Y de la
92
+
93
+ 00:01:40.155 --> 00:01:41.995
94
+ misma manera, irías validando cada una de las
95
+
96
+ 00:01:41.995 --> 00:01:44.975
97
+ opciones. Por ejemplo, podrías colocar un else if
98
+
99
+ 00:01:45.115 --> 00:01:48.395
100
+ y, a continuación, otra otro valor igual a
101
+
102
+ 00:01:48.395 --> 00:01:51.435
103
+ dos, luego otro condicional con el sif, y
104
+
105
+ 00:01:51.435 --> 00:01:53.640
106
+ ahora el igual igual a tres, igual igual
107
+
108
+ 00:01:53.640 --> 00:01:55.320
109
+ a cuatro en los sucesivos, y así te
110
+
111
+ 00:01:55.320 --> 00:01:57.880
112
+ irías, ¿no? Entonces, una forma más breve de
113
+
114
+ 00:01:57.880 --> 00:02:00.040
115
+ escribir esto es, sabiendo que este es el
116
+
117
+ 00:02:00.040 --> 00:02:02.440
118
+ patrón que vas a seguir, para este caso
119
+
120
+ 00:02:02.440 --> 00:02:05.560
121
+ específico existe switch case. La forma de escribirlo
122
+
123
+ 00:02:05.560 --> 00:02:07.800
124
+ es de la siguiente manera, escribes la palabra
125
+
126
+ 00:02:07.800 --> 00:02:12.334
127
+ switch, paréntesis, entre paréntesis vas a poner la
128
+
129
+ 00:02:12.334 --> 00:02:15.234
130
+ variable que quieres validar, en este caso sería
131
+
132
+ 00:02:15.614 --> 00:02:23.215
133
+ opción. Y, a continuación, vas a abrir un
134
+
135
+ 00:02:23.215 --> 00:02:25.750
136
+ par de llaves donde vas a escribir los
137
+
138
+ 00:02:25.750 --> 00:02:29.350
139
+ diferentes casos que puede tener. Por ejemplo, si
140
+
141
+ 00:02:29.350 --> 00:02:32.170
142
+ queremos hacer un menú de opciones, podemos validar,
143
+
144
+ 00:02:32.310 --> 00:02:35.110
145
+ pues, el número. En este caso, podemos utilizar
146
+
147
+ 00:02:35.110 --> 00:02:39.194
148
+ la palabra case para indicarle cada una de
149
+
150
+ 00:02:39.194 --> 00:02:41.515
151
+ las opciones o de las posibilidades que puede
152
+
153
+ 00:02:41.515 --> 00:02:44.415
154
+ tener esta variable, y podemos utilizar a continuación
155
+
156
+ 00:02:45.034 --> 00:02:46.814
157
+ un valor que es el que la persona
158
+
159
+ 00:02:46.875 --> 00:02:49.915
160
+ va a introducir. Supongamos que queremos ese menú
161
+
162
+ 00:02:49.915 --> 00:02:53.560
163
+ de opciones basarlo en números, podríamos validar si
164
+
165
+ 00:02:53.560 --> 00:02:56.120
166
+ el primer caso, pues, es uno. Si quisiéramos
167
+
168
+ 00:02:56.120 --> 00:02:59.080
169
+ basarlo en letras y fuera una variable tipo
170
+
171
+ 00:02:59.080 --> 00:03:01.880
172
+ char podríamos hacerlo, y entonces podríamos hacerlo tal
173
+
174
+ 00:03:01.880 --> 00:03:04.680
175
+ vez con la letra ABC. En este caso,
176
+
177
+ 00:03:04.680 --> 00:03:06.675
178
+ lo voy a hacer con números, y la
179
+
180
+ 00:03:06.675 --> 00:03:09.155
181
+ forma sería escribir case, el valor con el
182
+
183
+ 00:03:09.155 --> 00:03:13.395
184
+ que estamos comprobando, y dos puntos. Dentro de
185
+
186
+ 00:03:13.395 --> 00:03:16.355
187
+ este case vamos a poder escribir todo lo
188
+
189
+ 00:03:16.355 --> 00:03:18.515
190
+ que queremos que pase, cualquier cantidad de líneas
191
+
192
+ 00:03:18.515 --> 00:03:21.160
193
+ de código, para que se ejecuten. Yo solamente
194
+
195
+ 00:03:21.160 --> 00:03:31.525
196
+ voy a escribir un mensaje. Opción uno. De
197
+
198
+ 00:03:31.525 --> 00:03:34.005
199
+ esta manera, cuando la persona introduzca el valor
200
+
201
+ 00:03:34.005 --> 00:03:37.125
202
+ uno, va a suceder este caso. Lo mismo
203
+
204
+ 00:03:37.125 --> 00:03:39.285
205
+ yo puedo hacer para validar todos los otros
206
+
207
+ 00:03:39.285 --> 00:03:42.005
208
+ casos, por ejemplo, yo puedo hacer otro caso
209
+
210
+ 00:03:42.005 --> 00:03:44.085
211
+ que sea para cuando la persona introduzca el
212
+
213
+ 00:03:44.085 --> 00:03:50.820
214
+ número dos, y puedo incluso copiar aquí esta
215
+
216
+ 00:03:50.820 --> 00:03:54.660
217
+ opción, la puedo pegar y cambiarle aquí el
218
+
219
+ 00:03:54.660 --> 00:03:57.700
220
+ número dos. Y así sucesivamente, si yo tengo
221
+
222
+ 00:03:57.700 --> 00:04:00.644
223
+ tres, cuatro, cinco opciones, no importa, esto lo
224
+
225
+ 00:04:00.644 --> 00:04:03.004
226
+ puedo seguir haciendo y lo único que al
227
+
228
+ 00:04:03.004 --> 00:04:05.605
229
+ final yo yo tendré una última opción, que
230
+
231
+ 00:04:05.605 --> 00:04:08.325
232
+ será el default. ¿Te acuerdas de si hacías
233
+
234
+ 00:04:08.325 --> 00:04:10.885
235
+ una cadena de if, else if, else if,
236
+
237
+ 00:04:10.885 --> 00:04:12.644
238
+ al final tenías un else en caso de
239
+
240
+ 00:04:12.644 --> 00:04:14.610
241
+ que todo lo anterior no hubiera ocurrido? Pues
242
+
243
+ 00:04:14.610 --> 00:04:17.250
244
+ aquí es lo mismo, con default vas a
245
+
246
+ 00:04:17.250 --> 00:04:19.570
247
+ poder hacer un código que se va a
248
+
249
+ 00:04:19.570 --> 00:04:22.850
250
+ ejecutar única y exclusivamente cuando ninguno de los
251
+
252
+ 00:04:22.850 --> 00:04:29.169
253
+ casos anteriores haya sucedido. Por ejemplo, podemos aprovechar
254
+
255
+ 00:04:29.169 --> 00:04:32.795
256
+ para indicar al usuario si escogió un menú
257
+
258
+ 00:04:32.795 --> 00:04:34.555
259
+ o un valor del menú que no fue,
260
+
261
+ 00:04:34.555 --> 00:04:41.195
262
+ que no existe, ¿no? Y esta sería la
263
+
264
+ 00:04:41.195 --> 00:04:43.915
265
+ forma en la que quedaría nuestro primer ejemplo,
266
+
267
+ 00:04:43.915 --> 00:04:48.820
268
+ vamos a hacer una ejecución del programa. Aquí
269
+
270
+ 00:04:49.280 --> 00:04:51.280
271
+ todavía no hemos preguntado por un valor al
272
+
273
+ 00:04:51.280 --> 00:04:54.080
274
+ usuario, en este caso, como el valor inicial
275
+
276
+ 00:04:54.080 --> 00:04:56.639
277
+ es cero y no tenemos validado si es
278
+
279
+ 00:04:56.639 --> 00:04:58.320
280
+ un valor cero, solo tenemos el uno y
281
+
282
+ 00:04:58.320 --> 00:05:00.395
283
+ el dos, se fue a la opción default
284
+
285
+ 00:05:00.455 --> 00:05:02.535
286
+ y nos dijo que no existe. Vamos a
287
+
288
+ 00:05:02.535 --> 00:05:03.975
289
+ habilitar para que se le pueda pedir al
290
+
291
+ 00:05:03.975 --> 00:05:06.365
292
+ usuario este valor, por ejemplo, vamos a hacer
293
+
294
+ 00:05:06.365 --> 00:05:14.720
295
+ c out, y vamos a poner introduce una
296
+
297
+ 00:05:15.640 --> 00:05:19.400
298
+ opción. Este programa lo podríamos hacer más bonito
299
+
300
+ 00:05:19.460 --> 00:05:22.020
301
+ si le agregáramos que primero haga varios COuts
302
+
303
+ 00:05:22.020 --> 00:05:24.660
304
+ para mostrar las opciones disponibles, pero de momento
305
+
306
+ 00:05:24.660 --> 00:05:29.785
307
+ vamos a hacerlo de esta manera, si introducimos
308
+
309
+ 00:05:29.785 --> 00:05:36.425
310
+ el valor a opción. Con esto, ya podemos
311
+
312
+ 00:05:36.425 --> 00:05:38.650
313
+ ahora sí realizar la ejecución del programa y
314
+
315
+ 00:05:38.650 --> 00:05:40.729
316
+ nos va a pedir que introduzcamos la opción
317
+
318
+ 00:05:40.729 --> 00:05:42.889
319
+ que querramos. Si yo pongo una de las
320
+
321
+ 00:05:42.889 --> 00:05:45.130
322
+ opciones que están en los cases, por ejemplo,
323
+
324
+ 00:05:45.130 --> 00:05:46.410
325
+ el A uno o la dos, va a
326
+
327
+ 00:05:46.410 --> 00:05:50.330
328
+ suceder el código relacionado a ese caso. En
329
+
330
+ 00:05:50.330 --> 00:05:52.970
331
+ este caso, si te das cuenta, está pasando
332
+
333
+ 00:05:52.970 --> 00:05:55.195
334
+ algo más, que es que la opción dos
335
+
336
+ 00:05:55.195 --> 00:05:58.095
337
+ se está ejecutando, pero también se está ejecutando
338
+
339
+ 00:05:58.155 --> 00:05:59.915
340
+ el código por defecto. Y esto es porque
341
+
342
+ 00:05:59.915 --> 00:06:02.835
343
+ nos falta poner una sentencia muy importante cuando
344
+
345
+ 00:06:02.835 --> 00:06:05.675
346
+ utilizas switch case, que va a evitar que
347
+
348
+ 00:06:05.675 --> 00:06:07.675
349
+ sucedan todos los demás casos. ¿Qué es lo
350
+
351
+ 00:06:07.675 --> 00:06:10.310
352
+ que está pasando aquí? La opción tiene el
353
+
354
+ 00:06:10.690 --> 00:06:13.750
355
+ valor dos, entonces el caso uno no sucede
356
+
357
+ 00:06:14.290 --> 00:06:16.530
358
+ porque no no es el caso. El caso
359
+
360
+ 00:06:16.530 --> 00:06:20.370
361
+ dos sí sucede y se ejecuta, pero continúa
362
+
363
+ 00:06:20.370 --> 00:06:22.210
364
+ con todo lo que siga debajo. Si hubiera
365
+
366
+ 00:06:22.210 --> 00:06:24.045
367
+ un caso tres, un caso cuatro, todos los
368
+
369
+ 00:06:24.045 --> 00:06:26.625
370
+ demás hasta llegar a default, se seguirían validando.
371
+
372
+ 00:06:27.005 --> 00:06:29.665
373
+ Como esos casos no serían correctos, no sucederían,
374
+
375
+ 00:06:29.965 --> 00:06:32.845
376
+ pero el default sí llega a ejecutarse. Entonces,
377
+
378
+ 00:06:32.845 --> 00:06:36.125
379
+ siempre tendríamos este bug, que es un efecto
380
+
381
+ 00:06:36.125 --> 00:06:39.190
382
+ secundario, de no poner una palabra que es
383
+
384
+ 00:06:39.190 --> 00:06:42.150
385
+ break. Con break, lo que vamos a hacer
386
+
387
+ 00:06:42.150 --> 00:06:44.870
388
+ es indicarle a nuestro compilador que, una vez
389
+
390
+ 00:06:44.870 --> 00:06:47.449
391
+ que termine de de ejecutar ese caso en
392
+
393
+ 00:06:47.990 --> 00:06:50.745
394
+ específico, termine el switch. De esa forma, si
395
+
396
+ 00:06:50.745 --> 00:06:53.165
397
+ yo ya llegué al caso dos, por ejemplo,
398
+
399
+ 00:06:58.425 --> 00:07:00.825
400
+ le puedo decir que ya no ejecute el
401
+
402
+ 00:07:00.825 --> 00:07:05.610
403
+ caso por defecto. Vamos a ejecutar este programa,
404
+
405
+ 00:07:06.110 --> 00:07:08.210
406
+ y supongamos que yo escojo la opción dos,
407
+
408
+ 00:07:09.150 --> 00:07:12.110
409
+ listo, solamente ejecutó el código necesario para el
410
+
411
+ 00:07:12.110 --> 00:07:15.230
412
+ caso dos, ya no llegó al código por
413
+
414
+ 00:07:15.230 --> 00:07:18.235
415
+ defecto, y lo mismo podríamos seguir realizando con
416
+
417
+ 00:07:18.235 --> 00:07:21.194
418
+ cualquier otro caso. Te recuerdo que no solamente
419
+
420
+ 00:07:21.194 --> 00:07:25.089
421
+ puedes utilizar números, puedes utilizar cualquier valor posible
422
+
423
+ 00:07:25.149 --> 00:07:27.229
424
+ para la variable que estés validando, y esta
425
+
426
+ 00:07:27.229 --> 00:07:29.549
427
+ variable podría ser de cualquier tipo de dato.
428
+
429
+ 00:07:29.549 --> 00:07:31.009
430
+ Esta es la forma en la que funcionan
431
+
432
+ 00:07:31.309 --> 00:07:34.269
433
+ los condicionales con switch y case. Te invito
434
+
435
+ 00:07:34.269 --> 00:07:35.489
436
+ a la próxima clase.
subir/Curso de C Básico/04-Control de flujo/02-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/curso-basico-c-plus-plus/tree/condicional-switch
subir/Curso de C Básico/04-Control de flujo/02-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de C Básico/04-Control de flujo/02-condicional-switch.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:996e44fac93e6beae7c6e48c00478293aa397db077409922c1a6ede4094a419c
3
+ size 3601
subir/Curso de C Básico/04-Control de flujo/03-Ciclos For en C Cómo Iterar Listas y Rangos Numéricos.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d1d6c4806a32317583458a623937ca4583d610b8781284c84808d63000008b8d
3
+ size 136438091
subir/Curso de C Básico/04-Control de flujo/03-Ciclos For en C Cómo Iterar Listas y Rangos Numéricos.vtt ADDED
@@ -0,0 +1,754 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:03.600 --> 00:00:06.160
4
+ Vamos a hablar sobre otra característica muy importante
5
+
6
+ 00:00:06.160 --> 00:00:08.639
7
+ de los lenguajes de programación, que son los
8
+
9
+ 00:00:08.639 --> 00:00:11.599
10
+ ciclos. Los ciclos nos van a permitir iterar
11
+
12
+ 00:00:11.599 --> 00:00:14.205
13
+ un mismo bloque de código sobre una lista
14
+
15
+ 00:00:14.205 --> 00:00:17.085
16
+ o un rango numérico. Por ejemplo, si tenemos
17
+
18
+ 00:00:17.085 --> 00:00:19.404
19
+ una lista de números y queremos realizar una
20
+
21
+ 00:00:19.404 --> 00:00:21.885
22
+ misma operación sobre cada uno de ellos, podemos
23
+
24
+ 00:00:21.885 --> 00:00:24.765
25
+ utilizar un ciclo. Si tenemos un rango de
26
+
27
+ 00:00:24.765 --> 00:00:26.770
28
+ números sobre el cual tenemos que operar o
29
+
30
+ 00:00:26.770 --> 00:00:29.970
31
+ un rango de cosas que pueden ser variables
32
+
33
+ 00:00:29.970 --> 00:00:31.650
34
+ que provengan de la entrada de tu programa,
35
+
36
+ 00:00:31.650 --> 00:00:35.430
37
+ puedes utilizar ciclos para realizar estas operaciones repetitivas
38
+
39
+ 00:00:35.570 --> 00:00:38.450
40
+ o iterativas. Vamos a ver cómo se programan
41
+
42
+ 00:00:38.450 --> 00:00:40.450
43
+ los ciclos en este lenguaje de programación que
44
+
45
+ 00:00:40.450 --> 00:00:42.485
46
+ es C más más y vamos al ejemplo
47
+
48
+ 00:00:42.485 --> 00:00:45.545
49
+ de código. Para comenzar a programar un ciclo,
50
+
51
+ 00:00:45.925 --> 00:00:47.925
52
+ es importante que tengamos en cuenta qué tipo
53
+
54
+ 00:00:47.925 --> 00:00:52.005
55
+ de interacción vamos a realizar. Existen principalmente dos
56
+
57
+ 00:00:52.005 --> 00:00:53.685
58
+ tipos de ciclos dentro de C más más
59
+
60
+ 00:00:53.685 --> 00:00:54.965
61
+ y el primero es el que vamos a
62
+
63
+ 00:00:54.965 --> 00:00:57.375
64
+ ver en esta clase, que son los ciclos
65
+
66
+ 00:00:57.375 --> 00:00:59.600
67
+ for. Los ciclos for nos van a permitir
68
+
69
+ 00:00:59.820 --> 00:01:04.140
70
+ integrar sobre rangos numéricos o sobre el tamaño
71
+
72
+ 00:01:04.140 --> 00:01:06.300
73
+ de una lista. Por ejemplo, si tenemos diez
74
+
75
+ 00:01:06.300 --> 00:01:09.600
76
+ elementos, podemos decir, repite este bloque de código
77
+
78
+ 00:01:09.660 --> 00:01:13.215
79
+ diez veces. La forma básica de realizarlo sería
80
+
81
+ 00:01:13.515 --> 00:01:15.435
82
+ utilizar simplemente una variable que vaya contando cada
83
+
84
+ 00:01:15.435 --> 00:01:20.075
85
+ alteración. Y la estructura sería la siguiente, escribimos
86
+
87
+ 00:01:20.075 --> 00:01:22.635
88
+ la palabra for, que es la palabra clave
89
+
90
+ 00:01:22.635 --> 00:01:24.815
91
+ dentro del lenguaje C más más para realizar
92
+
93
+ 00:01:25.195 --> 00:01:27.729
94
+ los ciclos for, y vamos a comenzar a
95
+
96
+ 00:01:27.729 --> 00:01:30.670
97
+ declarar la variable que va a utilizar sobre
98
+
99
+ 00:01:31.330 --> 00:01:33.490
100
+ el ciclo para realizar su conteo. En este
101
+
102
+ 00:01:33.490 --> 00:01:36.630
103
+ caso, podemos utilizar una variable de tipo entero
104
+
105
+ 00:01:37.170 --> 00:01:41.175
106
+ que se puede llamar I y podemos inicializarla
107
+
108
+ 00:01:41.395 --> 00:01:44.115
109
+ en algún valor, por ejemplo, en el valor
110
+
111
+ 00:01:44.115 --> 00:01:46.935
112
+ cero. Cabe destacar que no necesita ser cero,
113
+
114
+ 00:01:46.995 --> 00:01:49.715
115
+ pero por lo general, si quieres iterar una
116
+
117
+ 00:01:49.715 --> 00:01:51.475
118
+ lista de números, pues vas a comenzar a
119
+
120
+ 00:01:51.475 --> 00:01:55.690
121
+ partir del cero. La segunda parte que necesita
122
+
123
+ 00:01:55.690 --> 00:01:59.210
124
+ nuestro ciclo for es una condición sobre la
125
+
126
+ 00:01:59.210 --> 00:02:01.290
127
+ cual va a evaluar en qué momento debe
128
+
129
+ 00:02:01.290 --> 00:02:05.050
130
+ detenerse. En este caso, podemos utilizar cualquier valor
131
+
132
+ 00:02:05.050 --> 00:02:07.290
133
+ que podríamos utilizar dentro de un condicional, justo
134
+
135
+ 00:02:07.290 --> 00:02:10.284
136
+ como lo hacíamos dentro de if. Aquí vamos
137
+
138
+ 00:02:10.284 --> 00:02:13.405
139
+ a realizar esa condición, por ejemplo, limitando el
140
+
141
+ 00:02:13.405 --> 00:02:15.885
142
+ máximo el tamaño de la letra I. En
143
+
144
+ 00:02:15.885 --> 00:02:18.765
145
+ este caso, si I llega a diez, podemos
146
+
147
+ 00:02:18.765 --> 00:02:21.424
148
+ detener el ciclo. Esto haría que se repita
149
+
150
+ 00:02:21.644 --> 00:02:26.550
151
+ diez veces. Si I es mayor que diez,
152
+
153
+ 00:02:29.010 --> 00:02:31.250
154
+ si I es menor que diez, si evaluara
155
+
156
+ 00:02:31.250 --> 00:02:33.650
157
+ si es mayor que diez, nunca llegaría ahí
158
+
159
+ 00:02:33.650 --> 00:02:36.290
160
+ porque I es cero. Entonces, mi condición debe
161
+
162
+ 00:02:36.290 --> 00:02:38.470
163
+ ser si I es menor que diez, entonces
164
+
165
+ 00:02:38.665 --> 00:02:42.385
166
+ sigo realizando las ejecuciones del ciclo. Y por
167
+
168
+ 00:02:42.385 --> 00:02:45.145
169
+ último, necesito indicarle de cuánto en cuánto se
170
+
171
+ 00:02:45.145 --> 00:02:47.145
172
+ va a ir incrementando la variable. En este
173
+
174
+ 00:02:47.145 --> 00:02:50.025
175
+ caso, si yo quiero contar del cero al
176
+
177
+ 00:02:50.025 --> 00:02:53.250
178
+ nueve, diez, son diez veces, y necesita incrementar
179
+
180
+ 00:02:53.250 --> 00:02:56.290
181
+ de uno en uno, yo podría realizar la
182
+
183
+ 00:02:56.290 --> 00:03:01.810
184
+ iteración haciendo I más igual uno. Como vimos
185
+
186
+ 00:03:01.810 --> 00:03:04.795
187
+ en los operadores, pues esto va a incrementar
188
+
189
+ 00:03:04.935 --> 00:03:07.335
190
+ el valor de I en uno. Si I
191
+
192
+ 00:03:07.335 --> 00:03:09.175
193
+ valía cero, va a convertirse en uno, si
194
+
195
+ 00:03:09.175 --> 00:03:13.495
196
+ valía dos, va a ser tres, etcétera. Y
197
+
198
+ 00:03:13.495 --> 00:03:16.375
199
+ para para terminar nuestro ciclo, pues tenemos que
200
+
201
+ 00:03:16.375 --> 00:03:18.215
202
+ escribir el código que queremos que se repita.
203
+
204
+ 00:03:18.215 --> 00:03:20.540
205
+ En este caso, yo solamente voy a mostrar
206
+
207
+ 00:03:20.540 --> 00:03:23.120
208
+ en pantalla el valor de I. Por ejemplo,
209
+
210
+ 00:03:23.660 --> 00:03:27.580
211
+ vamos a utilizar si out y vamos a
212
+
213
+ 00:03:27.580 --> 00:03:29.340
214
+ poder mostrar el valor de I a la
215
+
216
+ 00:03:29.340 --> 00:03:31.875
217
+ salida de la terminal. Para que no se
218
+
219
+ 00:03:31.875 --> 00:03:34.795
220
+ junten los números dentro uno después del otro,
221
+
222
+ 00:03:34.795 --> 00:03:36.955
223
+ vamos a utilizar end line para que haga
224
+
225
+ 00:03:36.955 --> 00:03:39.455
226
+ un cambio de línea después de haber impreso
227
+
228
+ 00:03:39.515 --> 00:03:43.755
229
+ cada uno de los números. Vamos a realizar
230
+
231
+ 00:03:43.755 --> 00:03:46.495
232
+ la ejecución con la tecla f seis y
233
+
234
+ 00:03:49.080 --> 00:03:53.000
235
+ ahí está. Aquí tienes tus números del cero
236
+
237
+ 00:03:53.000 --> 00:03:55.739
238
+ al nueve. Se repitió diez veces el código
239
+
240
+ 00:03:56.120 --> 00:03:59.180
241
+ y pasó en primer lugar siendo el valor
242
+
243
+ 00:03:59.239 --> 00:04:02.040
244
+ cero, luego se incrementó más uno, entonces ahora
245
+
246
+ 00:04:02.040 --> 00:04:05.135
247
+ I vale uno, luego dos, tres y así
248
+
249
+ 00:04:05.135 --> 00:04:07.535
250
+ hasta llegar a romper la condición que se
251
+
252
+ 00:04:07.535 --> 00:04:09.775
253
+ le puso dentro de el la sintaxis de
254
+
255
+ 00:04:09.775 --> 00:04:12.655
256
+ nuestro ciclo for. Esta es la forma básica
257
+
258
+ 00:04:12.655 --> 00:04:14.975
259
+ de realizar cualquier ciclo for dentro de ese
260
+
261
+ 00:04:14.975 --> 00:04:17.100
262
+ más más, pero hay algunas cosas que puedes
263
+
264
+ 00:04:17.100 --> 00:04:20.320
265
+ hacer. Por ejemplo, si tu valor de límite
266
+
267
+ 00:04:20.779 --> 00:04:25.720
268
+ es variable, puedes convertir precisamente este límite numérico,
269
+
270
+ 00:04:25.740 --> 00:04:28.300
271
+ pues que no esté directamente, pues puesto ahí,
272
+
273
+ 00:04:28.300 --> 00:04:30.985
274
+ sino que esté dentro de algún otro, de
275
+
276
+ 00:04:30.985 --> 00:04:33.145
277
+ alguna otra variable. Por ejemplo, yo voy a
278
+
279
+ 00:04:33.145 --> 00:04:35.245
280
+ crear una variable que se llame el límite
281
+
282
+ 00:04:38.185 --> 00:04:41.865
283
+ y esta variable podría ser una variable tipo
284
+
285
+ 00:04:41.865 --> 00:04:50.780
286
+ entero, justo como la letra I. Y de
287
+
288
+ 00:04:50.780 --> 00:04:53.099
289
+ esta manera, yo tendría la ventaja de poder
290
+
291
+ 00:04:53.099 --> 00:04:55.819
292
+ controlar hasta cuánto vamos a contar dentro de
293
+
294
+ 00:04:55.819 --> 00:04:58.155
295
+ nuestro ciclo. Por ejemplo, con un dato de
296
+
297
+ 00:04:58.155 --> 00:05:00.555
298
+ entrada del usuario, si yo quisiera pedirle al
299
+
300
+ 00:05:00.555 --> 00:05:03.835
301
+ usuario el el límite de ejecuciones durante el
302
+
303
+ 00:05:03.835 --> 00:05:05.995
304
+ tiempo de ejecución, podría hacerlo, por ejemplo, con
305
+
306
+ 00:05:05.995 --> 00:05:11.840
307
+ se out y sein. En este caso, voy
308
+
309
+ 00:05:11.840 --> 00:05:14.400
310
+ a mostrar en pantalla la palabra límite dos
311
+
312
+ 00:05:14.400 --> 00:05:17.540
313
+ puntos y voy a utilizar SEIN para que
314
+
315
+ 00:05:17.600 --> 00:05:20.240
316
+ la persona que esté usando nuestro programa pueda
317
+
318
+ 00:05:20.240 --> 00:05:22.880
319
+ introducir un límite durante el tiempo de ejecución
320
+
321
+ 00:05:22.880 --> 00:05:26.985
322
+ de nuestro programa. Voy a ejecutarlo y vamos
323
+
324
+ 00:05:26.985 --> 00:05:29.385
325
+ a ver, me está pidiendo un límite. ¿Qué
326
+
327
+ 00:05:29.385 --> 00:05:34.825
328
+ pasa si yo le pongo un veinte? Genial,
329
+
330
+ 00:05:34.825 --> 00:05:38.185
331
+ ha realizado veinte iteraciones. Esto mismo lo podemos
332
+
333
+ 00:05:38.185 --> 00:05:41.919
334
+ utilizar para listas. Por ejemplo, si yo tengo
335
+
336
+ 00:05:41.919 --> 00:05:44.879
337
+ una lista de números y quiero elevar al
338
+
339
+ 00:05:44.879 --> 00:05:47.379
340
+ cuadrado o multiplicar por dos cada uno de
341
+
342
+ 00:05:47.520 --> 00:05:50.240
343
+ ellos, no necesito escribir muchos bloques con muchas
344
+
345
+ 00:05:50.240 --> 00:05:52.240
346
+ líneas de código para realizar la operación por
347
+
348
+ 00:05:52.240 --> 00:05:53.885
349
+ cada una de ellas, De la misma manera
350
+
351
+ 00:05:53.885 --> 00:05:56.365
352
+ en que tenemos listas para poder almacenar en
353
+
354
+ 00:05:56.365 --> 00:05:59.104
355
+ una en una sola variable todos nuestros números,
356
+
357
+ 00:05:59.405 --> 00:06:02.444
358
+ podemos utilizar ciclos para iterar un mismo bloque
359
+
360
+ 00:06:02.444 --> 00:06:04.604
361
+ de código por cada uno de ellos. Vamos
362
+
363
+ 00:06:04.604 --> 00:06:09.950
364
+ al ejemplo. Si yo tengo una lista de
365
+
366
+ 00:06:11.610 --> 00:06:14.810
367
+ números, ¿qué puedo crear? Utilizando mi sintaxis de
368
+
369
+ 00:06:14.810 --> 00:06:16.990
370
+ listas de C más más, que es utilizando
371
+
372
+ 00:06:17.130 --> 00:06:19.370
373
+ corchetes y luego en un par de llaves
374
+
375
+ 00:06:19.370 --> 00:06:22.785
376
+ separar los valores, Yo puedo colocar todos los
377
+
378
+ 00:06:22.785 --> 00:06:26.465
379
+ números que quiera dentro de mi lista y
380
+
381
+ 00:06:26.465 --> 00:06:28.865
382
+ supongamos que yo quiero multiplicar por dos cada
383
+
384
+ 00:06:28.865 --> 00:06:32.145
385
+ uno de ellos, entonces yo podría realizar aquí
386
+
387
+ 00:06:32.145 --> 00:06:36.300
388
+ mi operación de por dos, pero ya no
389
+
390
+ 00:06:36.300 --> 00:06:38.380
391
+ vamos a imprimir I. En lugar de eso,
392
+
393
+ 00:06:38.380 --> 00:06:40.300
394
+ vamos a tomar el valor de cada elemento
395
+
396
+ 00:06:40.300 --> 00:06:44.060
397
+ de la lista. Si recuerdas clases anteriores, para
398
+
399
+ 00:06:44.060 --> 00:06:46.880
400
+ poder obtener o acceder al valor de un
401
+
402
+ 00:06:47.259 --> 00:06:49.100
403
+ elemento de una lista, podemos acceder por medio
404
+
405
+ 00:06:49.100 --> 00:06:51.875
406
+ de su índice. Si recuerdas, la sintaxis era
407
+
408
+ 00:06:51.875 --> 00:06:53.875
409
+ algo así como escribir el nombre de la
410
+
411
+ 00:06:53.875 --> 00:06:56.355
412
+ variable que contiene la lista y entre los
413
+
414
+ 00:06:56.355 --> 00:06:59.475
415
+ corchetes colocar el número del índice al que
416
+
417
+ 00:06:59.475 --> 00:07:02.910
418
+ queremos acceder, comenzando a contar de cero. En
419
+
420
+ 00:07:02.910 --> 00:07:05.710
421
+ este caso, si yo quisiera imprimir con COUT
422
+
423
+ 00:07:05.710 --> 00:07:09.390
424
+ el valor de lista corchetes uno, estaría imprimiendo
425
+
426
+ 00:07:09.390 --> 00:07:12.350
427
+ el valor doscientos, porque estaría accediendo al segundo
428
+
429
+ 00:07:12.350 --> 00:07:16.815
430
+ elemento de la lista. Entonces, yo podría utilizar
431
+
432
+ 00:07:16.915 --> 00:07:19.795
433
+ esta misma sintaxis, pero reemplazar esta variable que
434
+
435
+ 00:07:19.795 --> 00:07:22.675
436
+ está escrita, este este número que está literalmente
437
+
438
+ 00:07:22.675 --> 00:07:26.595
439
+ escrito dentro de la variable de índice, y
440
+
441
+ 00:07:26.595 --> 00:07:29.475
442
+ reemplazarlo precisamente por el valor de la letra
443
+
444
+ 00:07:29.475 --> 00:07:30.435
445
+ I, que es la que va a ir
446
+
447
+ 00:07:30.435 --> 00:07:31.950
448
+ cambiando a lo largo de ejecución de la
449
+
450
+ 00:07:31.950 --> 00:07:35.470
451
+ lista. Por ejemplo, yo podría tomar este ejemplo
452
+
453
+ 00:07:35.470 --> 00:07:41.470
454
+ de de aquí y colocarlo aquí. Antes de
455
+
456
+ 00:07:41.470 --> 00:07:44.485
457
+ multiplicarlo por dos, quiero mostrarte cómo se vería
458
+
459
+ 00:07:44.485 --> 00:07:48.505
460
+ simplemente ejecutar una lista de los diez elementos,
461
+
462
+ 00:07:49.365 --> 00:07:51.764
463
+ pero sobre la lista de números. En este
464
+
465
+ 00:07:51.764 --> 00:07:55.285
466
+ caso, mi límite ya no es cualquier límite
467
+
468
+ 00:07:55.285 --> 00:07:57.620
469
+ que quiera poner el usuario, sino que sabemos
470
+
471
+ 00:07:57.620 --> 00:08:00.180
472
+ que tiene tres elementos. Entonces, para no romper
473
+
474
+ 00:08:00.180 --> 00:08:02.659
475
+ mi programa, solamente voy a introducir un valor
476
+
477
+ 00:08:02.659 --> 00:08:08.259
478
+ con el número tres. Ok, aquí eliminé mi
479
+
480
+ 00:08:08.259 --> 00:08:11.060
481
+ lista, mi variable límite. Entonces voy a volver
482
+
483
+ 00:08:11.060 --> 00:08:20.225
484
+ a crearla. Listo. Ahora mi variable límite ya
485
+
486
+ 00:08:20.225 --> 00:08:24.705
487
+ existe y cuando me pregunte cuántas iteraciones quiero
488
+
489
+ 00:08:24.705 --> 00:08:25.905
490
+ realizar, como yo sé que en la lista
491
+
492
+ 00:08:25.905 --> 00:08:27.780
493
+ tengo tres elementos, solo voy a poner el
494
+
495
+ 00:08:27.780 --> 00:08:30.980
496
+ número tres. Y listo, realizó tres iteraciones y
497
+
498
+ 00:08:30.980 --> 00:08:32.900
499
+ por cada una de ellas ejecutó el código
500
+
501
+ 00:08:32.900 --> 00:08:35.700
502
+ de mostrar, pues, qué contia, qué contenía ese
503
+
504
+ 00:08:35.700 --> 00:08:39.000
505
+ valor en ese índice. Imprimió nuestros tres números
506
+
507
+ 00:08:39.059 --> 00:08:42.544
508
+ y todo está bien. Aquí quiero mencionarte un
509
+
510
+ 00:08:42.544 --> 00:08:45.024
511
+ problema en el que hemos al que hemos
512
+
513
+ 00:08:45.024 --> 00:08:47.345
514
+ llegado en C más más y es qué
515
+
516
+ 00:08:47.345 --> 00:08:49.584
517
+ pasaría ahí si yo pongo otro límite distinto,
518
+
519
+ 00:08:49.584 --> 00:08:54.020
520
+ no? Vamos a ejecutarlo. Si yo realizo la
521
+
522
+ 00:08:54.320 --> 00:08:56.800
523
+ ejecución sobre esta misma versión del programa y
524
+
525
+ 00:08:56.800 --> 00:08:59.120
526
+ yo coloco el número dos, no habría ningún
527
+
528
+ 00:08:59.120 --> 00:09:02.000
529
+ problema porque solo realizaría las primeras dos ejecuciones
530
+
531
+ 00:09:02.000 --> 00:09:04.320
532
+ o iteraciones. Pero, ¿qué pasa si yo pongo
533
+
534
+ 00:09:04.320 --> 00:09:06.685
535
+ un número más grande? Por ejemplo, seis. Pues
536
+
537
+ 00:09:06.685 --> 00:09:08.764
538
+ esto es lo que sucede, me muestra cien,
539
+
540
+ 00:09:08.764 --> 00:09:10.845
541
+ doscientos, trescientos y los otros tres números los
542
+
543
+ 00:09:10.845 --> 00:09:13.165
544
+ llena con números aleatorios que obtiene de la
545
+
546
+ 00:09:13.165 --> 00:09:16.944
547
+ memoria. Esto es básicamente basura. Pero, ¿cómo podríamos
548
+
549
+ 00:09:17.245 --> 00:09:20.204
550
+ saber en tiempo de ejecución cuántos elementos tiene
551
+
552
+ 00:09:20.204 --> 00:09:22.400
553
+ la lista? La verdad es que C más
554
+
555
+ 00:09:22.400 --> 00:09:25.090
556
+ más no nos da una forma fácil, pero
557
+
558
+ 00:09:25.090 --> 00:09:27.190
559
+ la forma ya la vimos en las clases
560
+
561
+ 00:09:27.250 --> 00:09:30.290
562
+ de listas, y esto es obtener el tamaño
563
+
564
+ 00:09:30.290 --> 00:09:33.170
565
+ total de la lista y dividirlo entre el
566
+
567
+ 00:09:33.170 --> 00:09:36.105
568
+ tamaño de un elemento de la lista. En
569
+
570
+ 00:09:36.105 --> 00:09:38.665
571
+ lugar de pedirle el límite al usuario, lo
572
+
573
+ 00:09:38.665 --> 00:09:40.745
574
+ que yo puedo hacer es utilizar la operación
575
+
576
+ 00:09:40.745 --> 00:09:43.065
577
+ size off para obtener el tamaño total de
578
+
579
+ 00:09:43.065 --> 00:09:46.845
580
+ la lista y realizar la división. Con size
581
+
582
+ 00:09:47.145 --> 00:09:50.730
583
+ off, recuerda, obtenemos el tamaño en bytes de
584
+
585
+ 00:09:50.730 --> 00:09:53.130
586
+ una variable. En este caso, si yo tengo
587
+
588
+ 00:09:53.130 --> 00:09:58.030
589
+ la variable lista, obtendría que tiene, son tres
590
+
591
+ 00:09:58.250 --> 00:10:01.610
592
+ elementos enteros y utiliza, sabemos que se utilizan,
593
+
594
+ 00:10:01.610 --> 00:10:03.795
595
+ por lo menos en mi computadora, cuatro bytes
596
+
597
+ 00:10:04.115 --> 00:10:06.915
598
+ por cada entero, entonces estaríamos hablando de doce
599
+
600
+ 00:10:06.915 --> 00:10:10.274
601
+ bytes. Y si eso lo dividimos entre los
602
+
603
+ 00:10:10.274 --> 00:10:13.154
604
+ cuatro bytes que mide cada elemento de la
605
+
606
+ 00:10:13.154 --> 00:10:15.475
607
+ lista, obtendríamos el tamaño de la lista, que
608
+
609
+ 00:10:15.475 --> 00:10:18.610
610
+ sería tres. Para hacerlo un poquito más dinámico,
611
+
612
+ 00:10:18.610 --> 00:10:20.790
613
+ en lugar de solo poner el número cuatro,
614
+
615
+ 00:10:20.850 --> 00:10:24.949
616
+ voy a utilizar size off sobre el primer
617
+
618
+ 00:10:25.009 --> 00:10:32.075
619
+ elemento de la lista. Ahora sabes lo que
620
+
621
+ 00:10:32.295 --> 00:10:35.335
622
+ significa cómo obtener el tamaño límite. Vamos a
623
+
624
+ 00:10:35.335 --> 00:10:41.335
625
+ ejecutarlo y veremos qué pasa. Listo. Ya funcionó
626
+
627
+ 00:10:41.335 --> 00:10:43.654
628
+ nuestro código de ejemplo. Ya sabes cómo iterar
629
+
630
+ 00:10:43.654 --> 00:10:46.720
631
+ una lista de números sin necesidad de tener
632
+
633
+ 00:10:46.720 --> 00:10:48.800
634
+ alguna funcionalidad extra de C más más, que
635
+
636
+ 00:10:48.800 --> 00:10:51.120
637
+ de momento sabemos que no la tiene, para
638
+
639
+ 00:10:51.120 --> 00:10:52.640
640
+ leer cuál es el tamaño de la lista,
641
+
642
+ 00:10:52.640 --> 00:10:53.920
643
+ pero este es un gran truco que te
644
+
645
+ 00:10:53.920 --> 00:10:55.760
646
+ va a servir muchísimo a lo largo de
647
+
648
+ 00:10:55.760 --> 00:10:58.925
649
+ los ejercicios de este lenguaje de programación. Para
650
+
651
+ 00:10:58.925 --> 00:11:01.485
652
+ finalizar, vamos a hablar de una característica más
653
+
654
+ 00:11:01.485 --> 00:11:03.405
655
+ que tienen los ciclos for, en C más
656
+
657
+ 00:11:03.405 --> 00:11:05.725
658
+ más, y es la capacidad de romper el
659
+
660
+ 00:11:05.725 --> 00:11:10.620
661
+ ciclo determinando cierta condición. Por ejemplo, si yo
662
+
663
+ 00:11:10.620 --> 00:11:13.200
664
+ quisiera que el ciclo se rompa siempre que
665
+
666
+ 00:11:13.340 --> 00:11:17.120
667
+ encuentre un número doscientos, yo podría hacerlo añadiendo
668
+
669
+ 00:11:17.180 --> 00:11:20.060
670
+ una condición y nuestra palabra para romper ciclos,
671
+
672
+ 00:11:20.060 --> 00:11:23.260
673
+ que es break. ¿Cómo podría hacerlo? Por ejemplo,
674
+
675
+ 00:11:23.260 --> 00:11:26.455
676
+ de esta manera. Si yo quiero que cuando
677
+
678
+ 00:11:26.455 --> 00:11:27.975
679
+ la el valor que voy a mostrar, en
680
+
681
+ 00:11:27.975 --> 00:11:32.955
682
+ este caso sería lista por el índice, sea
683
+
684
+ 00:11:33.335 --> 00:11:37.370
685
+ cuando es igual a doscientos, en ese momento
686
+
687
+ 00:11:37.370 --> 00:11:41.850
688
+ yo puedo utilizar mi palabra reservada break para
689
+
690
+ 00:11:41.850 --> 00:11:45.770
691
+ romper el ciclo. Si yo ejecuto esto, entonces
692
+
693
+ 00:11:45.770 --> 00:11:48.510
694
+ voy a ver que nada más ejecuta cien,
695
+
696
+ 00:11:48.570 --> 00:11:52.045
697
+ doscientos y termina. ¿Por qué pasó esto? Porque
698
+
699
+ 00:11:52.045 --> 00:11:54.964
700
+ c out está justo antes de esta condición,
701
+
702
+ 00:11:54.964 --> 00:11:57.885
703
+ así que encuentra el doscientos si lo imprime
704
+
705
+ 00:11:57.885 --> 00:12:00.285
706
+ y después ya rompe el ciclo. ¿Qué pasaría
707
+
708
+ 00:12:00.285 --> 00:12:03.185
709
+ si yo pongo el if primero? Pues entonces,
710
+
711
+ 00:12:03.350 --> 00:12:05.990
712
+ se rompería justo antes de mostrar el doscientos
713
+
714
+ 00:12:05.990 --> 00:12:09.190
715
+ y solo habríamos visto el número cien. Esta
716
+
717
+ 00:12:09.190 --> 00:12:11.670
718
+ es la característica que a veces vamos a
719
+
720
+ 00:12:11.670 --> 00:12:14.950
721
+ utilizar mucho para decidir cuándo romper un ciclo,
722
+
723
+ 00:12:14.950 --> 00:12:17.404
724
+ sobre todo cuando no tenemos tanto control sobre
725
+
726
+ 00:12:18.024 --> 00:12:20.985
727
+ cuál es el límite máximo de iteraciones y,
728
+
729
+ 00:12:20.985 --> 00:12:22.505
730
+ pues, nos va a ser muy útil en
731
+
732
+ 00:12:22.505 --> 00:12:25.325
733
+ nuestra próxima sentencia de ciclos, que es while.
734
+
735
+ 00:12:26.185 --> 00:12:28.870
736
+ Ahora, esto no es lo único puedes hacer
737
+
738
+ 00:12:28.870 --> 00:12:31.189
739
+ con ciclos, puedes hacer muchísimas cosas, y por
740
+
741
+ 00:12:31.189 --> 00:12:34.230
742
+ eso te reto a que como tarea realices
743
+
744
+ 00:12:34.230 --> 00:12:37.829
745
+ un ejercicio donde solo muestres los números pares
746
+
747
+ 00:12:37.829 --> 00:12:42.241
748
+ utilizando un condicional. Nos vemos en la próxima
749
+
750
+ 00:12:42.241 --> 00:12:44.321
751
+ clase, donde vamos a comenzar a hablar sobre
752
+
753
+ 00:12:44.321 --> 00:12:45.541
754
+ ciclos while.
subir/Curso de C Básico/04-Control de flujo/03-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/curso-basico-c-plus-plus/tree/ciclo-for
subir/Curso de C Básico/04-Control de flujo/03-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de C Básico/04-Control de flujo/03-ciclo-for.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f0d4bd0e3ebc6b4fd1c426d70d7a2cf41799245964c3cd142df9795e03bb81a5
3
+ size 3920
subir/Curso de C Básico/04-Control de flujo/04-Ciclos While y Do While en C Ejemplos Prácticos.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:257656a911d2772f01812f313a7fbd5b520ee4ce8f46d2d85f808da43e4ee766
3
+ size 85489976
subir/Curso de C Básico/04-Control de flujo/04-Ciclos While y Do While en C Ejemplos Prácticos.vtt ADDED
@@ -0,0 +1,463 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:03.679 --> 00:00:06.399
4
+ Vamos a continuar hablando sobre la segunda parte
5
+
6
+ 00:00:06.399 --> 00:00:09.840
7
+ de ciclos de C más más. Para esto,
8
+
9
+ 00:00:09.840 --> 00:00:12.320
10
+ tenemos que hablar de dos ciclos específicos que
11
+
12
+ 00:00:12.320 --> 00:00:15.405
13
+ son while y the while. Son muy similares
14
+
15
+ 00:00:15.405 --> 00:00:17.645
16
+ a la forma de utilizar for, excepto porque
17
+
18
+ 00:00:17.645 --> 00:00:19.965
19
+ estos son pensados para no tener un límite
20
+
21
+ 00:00:19.965 --> 00:00:22.945
22
+ numérico, sino que se pueden ejecutar de forma
23
+
24
+ 00:00:23.085 --> 00:00:26.205
25
+ indefinida hasta que alguna situación externa, pues, los
26
+
27
+ 00:00:26.205 --> 00:00:28.720
28
+ haga terminar, ya sea por medio de un
29
+
30
+ 00:00:28.720 --> 00:00:31.599
31
+ condicional o alguna otra situación que surja que
32
+
33
+ 00:00:31.599 --> 00:00:34.800
34
+ termine el ciclo. Ahora, vamos a pasar al
35
+
36
+ 00:00:34.800 --> 00:00:38.720
37
+ ejemplo de código. Para realizar nuestro ejemplo de
38
+
39
+ 00:00:38.720 --> 00:00:40.739
40
+ código en c más más vamos a proponer
41
+
42
+ 00:00:40.879 --> 00:00:44.105
43
+ el siguiente problema. Supongamos que tú tienes un
44
+
45
+ 00:00:44.105 --> 00:00:45.625
46
+ programa de esos que se ejecutan en la
47
+
48
+ 00:00:45.625 --> 00:00:49.325
49
+ terminal de comandos y necesitas realizar un menú
50
+
51
+ 00:00:49.545 --> 00:00:52.185
52
+ principal donde necesitas preguntarle a la persona si
53
+
54
+ 00:00:52.185 --> 00:00:54.745
55
+ ya desea retirarse y salir del programa o
56
+
57
+ 00:00:54.745 --> 00:00:58.580
58
+ desea continuar usándolo. Dependiendo de su respuesta, vas
59
+
60
+ 00:00:58.580 --> 00:01:00.940
61
+ a terminar la ejecución del programa o vas
62
+
63
+ 00:01:00.940 --> 00:01:03.220
64
+ a volver a mostrarle el menú de opciones
65
+
66
+ 00:01:03.220 --> 00:01:06.040
67
+ o alguna otra característica que tú tengas programada
68
+
69
+ 00:01:06.580 --> 00:01:09.060
70
+ para que el usuario pueda seguir haciendo, pues,
71
+
72
+ 00:01:09.060 --> 00:01:12.825
73
+ uso de tu programa correctamente. Esto sería un
74
+
75
+ 00:01:12.825 --> 00:01:15.465
76
+ caso de uso ideal para un ciclo while.
77
+
78
+ 00:01:15.465 --> 00:01:18.905
79
+ Entonces, vamos a ver primero qué pasaría si
80
+
81
+ 00:01:18.905 --> 00:01:20.744
82
+ yo tratara de desarrollar esto con un ciclo
83
+
84
+ 00:01:20.744 --> 00:01:23.065
85
+ for. Si yo tratara de hacerlo, tendría que
86
+
87
+ 00:01:23.065 --> 00:01:25.065
88
+ ponerle un número muy grande porque no sé
89
+
90
+ 00:01:25.065 --> 00:01:26.710
91
+ cuántos intentos voy a hacer antes de que
92
+
93
+ 00:01:26.710 --> 00:01:28.549
94
+ el usuario por fin me dice que me
95
+
96
+ 00:01:28.549 --> 00:01:30.409
97
+ diga que tiene que terminar el programa, ¿no?
98
+
99
+ 00:01:31.030 --> 00:01:34.250
100
+ Por ejemplo, yo podría hacer un ciclo for
101
+
102
+ 00:01:35.110 --> 00:01:37.350
103
+ que le pregunte al usuario si ya desea
104
+
105
+ 00:01:37.350 --> 00:01:42.634
106
+ terminar el programa, por ejemplo, sea out. Deseas
107
+
108
+ 00:01:43.734 --> 00:01:47.674
109
+ terminar y a partir de lo que responda
110
+
111
+ 00:01:49.814 --> 00:01:54.454
112
+ podríamos, por ejemplo, pedirle que responda con un
113
+
114
+ 00:01:54.454 --> 00:01:57.750
115
+ carácter, con una letra. Por ejemplo, los programas
116
+
117
+ 00:01:57.750 --> 00:01:59.510
118
+ que hacen esto suelen utilizar la y para
119
+
120
+ 00:01:59.510 --> 00:02:01.990
121
+ decir que sí, yes, o la n para
122
+
123
+ 00:02:01.990 --> 00:02:05.610
124
+ decir que no. Entonces, supongamos que queremos utilizar
125
+
126
+ 00:02:06.150 --> 00:02:09.509
127
+ esta misma este mismo estándar, pues podríamos utilizar
128
+
129
+ 00:02:09.509 --> 00:02:14.605
130
+ una variable que sea tipo carácter que sea
131
+
132
+ 00:02:14.605 --> 00:02:22.045
133
+ la respuesta de la persona. Y originalmente le
134
+
135
+ 00:02:22.045 --> 00:02:24.284
136
+ voy a poner un valor vacío porque enseguida
137
+
138
+ 00:02:24.284 --> 00:02:25.805
139
+ lo voy a llenar con lo que la
140
+
141
+ 00:02:25.805 --> 00:02:30.263
142
+ persona haya contestado. Y voy a preguntar si
143
+
144
+ 00:02:30.291 --> 00:02:33.940
145
+ la respuesta fue yes, entonces terminaríamos el programa,
146
+
147
+ 00:02:33.940 --> 00:02:37.160
148
+ por lo tanto, puedo utilizar un break. Si,
149
+
150
+ 00:02:38.420 --> 00:02:46.614
151
+ respuesta fue igual a la letra y, entonces
152
+
153
+ 00:02:47.555 --> 00:02:53.875
154
+ podría, por ejemplo, decirle bye bye. Y a
155
+
156
+ 00:02:53.875 --> 00:03:00.070
157
+ continuación terminar el programa. De esta manera, cuando
158
+
159
+ 00:03:00.070 --> 00:03:02.550
160
+ la persona que esté utilizando este programa use
161
+
162
+ 00:03:02.550 --> 00:03:03.830
163
+ la respuesta con esta y, se va a
164
+
165
+ 00:03:03.830 --> 00:03:06.070
166
+ terminar el programa, y cuando use cualquier otra
167
+
168
+ 00:03:06.070 --> 00:03:09.270
169
+ respuesta, simplemente el programa va a continuar. En
170
+
171
+ 00:03:09.270 --> 00:03:11.830
172
+ este caso, vamos a probarlo con la tecla
173
+
174
+ 00:03:11.830 --> 00:03:14.465
175
+ f seis. Ok, me dice que tengo un
176
+
177
+ 00:03:14.465 --> 00:03:16.305
178
+ problema en el código y es cierto, no
179
+
180
+ 00:03:16.305 --> 00:03:20.004
181
+ llené los datos de el ciclo for. Olvidamos
182
+
183
+ 00:03:20.065 --> 00:03:23.665
184
+ llenar las condiciones necesarias para que funcione nuestro
185
+
186
+ 00:03:23.665 --> 00:03:26.165
187
+ ciclo for. En este caso, voy a utilizar
188
+
189
+ 00:03:26.224 --> 00:03:28.870
190
+ simplemente un número muy grande como límite y
191
+
192
+ 00:03:29.010 --> 00:03:32.690
193
+ una variable contador, pues que vaya realizando las
194
+
195
+ 00:03:32.690 --> 00:03:35.890
196
+ iteraciones incrementando de uno en uno. Por ejemplo,
197
+
198
+ 00:03:35.890 --> 00:03:37.810
199
+ voy a crear la variable I, que la
200
+
201
+ 00:03:37.810 --> 00:03:41.205
202
+ voy a inicializar en cero. El límite para
203
+
204
+ 00:03:41.205 --> 00:03:43.125
205
+ que el ciclo termine lo voy a poner
206
+
207
+ 00:03:43.125 --> 00:03:44.985
208
+ muy alto, por lo tanto, voy a preguntarle
209
+
210
+ 00:03:45.525 --> 00:03:49.205
211
+ que haga diez mil ciclos, por ejemplo, y
212
+
213
+ 00:03:49.205 --> 00:03:51.205
214
+ lo voy a incrementar solo de uno en
215
+
216
+ 00:03:51.205 --> 00:03:56.420
217
+ uno. Con esto, este ciclo se va a
218
+
219
+ 00:03:56.420 --> 00:03:59.860
220
+ repetir mil ciclos o si el usuario responde
221
+
222
+ 00:03:59.860 --> 00:04:01.700
223
+ que ya no desea continuar, en ese momento
224
+
225
+ 00:04:01.700 --> 00:04:07.620
226
+ se va a terminar. Me dice que no
227
+
228
+ 00:04:07.620 --> 00:04:10.354
229
+ puedo poner un carácter vacío. Vamos a poner
230
+
231
+ 00:04:10.354 --> 00:04:19.595
232
+ algún otro valor, por ejemplo, la u. Listo.
233
+
234
+ 00:04:19.595 --> 00:04:21.514
235
+ Ahora, me va a preguntar si deseo terminar.
236
+
237
+ 00:04:21.514 --> 00:04:23.675
238
+ ¿Qué pasa si yo contesto cualquier cosa, por
239
+
240
+ 00:04:23.675 --> 00:04:27.780
241
+ ejemplo, la n de, no? Se sigue repitiendo,
242
+
243
+ 00:04:27.780 --> 00:04:32.099
244
+ ¿no? Yo puedo realizar este ejercicio hasta mil
245
+
246
+ 00:04:32.099 --> 00:04:34.740
247
+ intentos, y si llego a mil intentos, entonces
248
+
249
+ 00:04:34.740 --> 00:04:37.139
250
+ el ciclo for va a terminar. Si yo
251
+
252
+ 00:04:37.139 --> 00:04:39.481
253
+ contesto en algún momento que sí, en ese
254
+
255
+ 00:04:39.481 --> 00:04:41.615
256
+ momento me dice bye bye y termine la
257
+
258
+ 00:04:41.615 --> 00:04:45.775
259
+ ejecución de mi programa. Ahora, esto está bien
260
+
261
+ 00:04:45.775 --> 00:04:48.915
262
+ entre comillas porque nuestro programa va a continuar
263
+
264
+ 00:04:49.135 --> 00:04:50.895
265
+ durante mil veces y esto podría ser un
266
+
267
+ 00:04:50.895 --> 00:04:53.290
268
+ número muy grande para este ejemplo, pero la
269
+
270
+ 00:04:53.290 --> 00:04:54.730
271
+ verdad es que este no es el comportamiento
272
+
273
+ 00:04:54.730 --> 00:04:58.030
274
+ ideal y necesitamos una mejor forma de hacerlo.
275
+
276
+ 00:04:58.410 --> 00:05:00.410
277
+ Por lo tanto, el lenguaje de programación C
278
+
279
+ 00:05:00.410 --> 00:05:02.970
280
+ más más nos provee de la funcionalidad de
281
+
282
+ 00:05:02.970 --> 00:05:09.495
283
+ while. While nos permitiría reemplazar estas variables como
284
+
285
+ 00:05:09.495 --> 00:05:11.735
286
+ que son contadores y el incremento de uno
287
+
288
+ 00:05:11.735 --> 00:05:14.715
289
+ en uno, y solamente nos permitiría poner una
290
+
291
+ 00:05:15.015 --> 00:05:17.255
292
+ condición que puede ser de cualquier tipo, como
293
+
294
+ 00:05:17.255 --> 00:05:21.495
295
+ un if. Por ejemplo, yo podría simplemente terminar
296
+
297
+ 00:05:21.495 --> 00:05:26.380
298
+ con todo esto y decirle cambiar el for
299
+
300
+ 00:05:26.380 --> 00:05:30.620
301
+ por un while, y decirle que esto siempre
302
+
303
+ 00:05:30.620 --> 00:05:33.740
304
+ va a ser verdadero. Ahora, algo que va
305
+
306
+ 00:05:33.740 --> 00:05:37.419
307
+ a pasar aquí es que la respuesta inicialmente
308
+
309
+ 00:05:37.419 --> 00:05:39.755
310
+ tiene un carácter vacío, eso no nos lo
311
+
312
+ 00:05:39.755 --> 00:05:42.955
313
+ va a permitir el compilador, pero sabiendo que
314
+
315
+ 00:05:42.955 --> 00:05:45.275
316
+ una vez que ejecutemos el programa enseguida le
317
+
318
+ 00:05:45.275 --> 00:05:48.074
319
+ vamos a pedir ese input al usuario, lo
320
+
321
+ 00:05:48.074 --> 00:05:50.814
322
+ que podemos hacer es dejar este valor vacío
323
+
324
+ 00:05:51.240 --> 00:05:53.640
325
+ a la hora de crearlo y simplemente siempre
326
+
327
+ 00:05:53.640 --> 00:05:54.840
328
+ se va a llenar con lo que el
329
+
330
+ 00:05:54.840 --> 00:05:57.960
331
+ usuario haya contestado. En este caso, vamos a
332
+
333
+ 00:05:57.960 --> 00:06:01.080
334
+ pasar a la ejecución del programa y aquí
335
+
336
+ 00:06:01.080 --> 00:06:03.960
337
+ está. Ya tenemos un ciclo que es infinito,
338
+
339
+ 00:06:03.960 --> 00:06:06.040
340
+ por lo tanto, nos va a a seguir
341
+
342
+ 00:06:06.040 --> 00:06:08.355
343
+ preguntando todas las veces que sea necesario hasta
344
+
345
+ 00:06:08.355 --> 00:06:11.875
346
+ que el usuario use la opción de responder
347
+
348
+ 00:06:11.875 --> 00:06:14.515
349
+ y, en ese caso, va a terminar. Si
350
+
351
+ 00:06:14.515 --> 00:06:17.035
352
+ yo quiero comprobar que esto, pues, va a
353
+
354
+ 00:06:17.035 --> 00:06:19.175
355
+ seguir funcionando por la eternidad, pues, podría realizar
356
+
357
+ 00:06:19.475 --> 00:06:24.250
358
+ todas las entradas posibles y, pues continuar verificando
359
+
360
+ 00:06:24.250 --> 00:06:30.650
361
+ que esto continuará ejecutándose. Vamos a ver un
362
+
363
+ 00:06:30.650 --> 00:06:33.560
364
+ tema más que es la función do while,
365
+
366
+ 00:06:33.855 --> 00:06:35.535
367
+ Y esto es la forma en la que
368
+
369
+ 00:06:35.535 --> 00:06:38.815
370
+ funciona nuestro condicional, va a depender mucho de
371
+
372
+ 00:06:38.815 --> 00:06:41.375
373
+ la condición inicial. ¿Por qué? Si yo aquí
374
+
375
+ 00:06:41.375 --> 00:06:46.255
376
+ tengo una condición true, sea directamente true o
377
+
378
+ 00:06:46.255 --> 00:06:48.735
379
+ alguna otra condición que me devuelva verdadero o
380
+
381
+ 00:06:48.735 --> 00:06:51.320
382
+ falso, esta condición siempre se va a preguntar
383
+
384
+ 00:06:51.380 --> 00:06:54.260
385
+ antes de entrar a la primera alteración siquiera
386
+
387
+ 00:06:54.260 --> 00:06:57.540
388
+ de mi ciclo while. Sin embargo, en algunas
389
+
390
+ 00:06:57.540 --> 00:06:59.300
391
+ ocasiones o en la mayoría de las ocasiones
392
+
393
+ 00:06:59.300 --> 00:07:02.675
394
+ yo podría querer realizar una primera ejecución siempre
395
+
396
+ 00:07:03.135 --> 00:07:06.735
397
+ antes de utilizar, pues, esa condición. Entonces, lo
398
+
399
+ 00:07:06.735 --> 00:07:08.495
400
+ que nos va a permitir C más más
401
+
402
+ 00:07:08.495 --> 00:07:11.455
403
+ es utilizar do while. En lugar de tener
404
+
405
+ 00:07:11.455 --> 00:07:13.935
406
+ la condición al inicio de el while, yo
407
+
408
+ 00:07:13.935 --> 00:07:16.595
409
+ podría colocarla después de que se haya ejecutado
410
+
411
+ 00:07:17.180 --> 00:07:20.000
412
+ el while. Para esto, reemplazo aquí por do
413
+
414
+ 00:07:20.460 --> 00:07:23.039
415
+ y la condición la traigo para acá abajo
416
+
417
+ 00:07:24.620 --> 00:07:27.580
418
+ y así está. Entonces, do while lo que
419
+
420
+ 00:07:27.580 --> 00:07:29.680
421
+ va lo que va a permitirme es ejecutar
422
+
423
+ 00:07:29.740 --> 00:07:32.764
424
+ una vez este primer bloque de código y
425
+
426
+ 00:07:32.764 --> 00:07:34.625
427
+ después de que se haya ejecutado la primera
428
+
429
+ 00:07:34.685 --> 00:07:37.885
430
+ vez, va a realizar la condición. Con esta
431
+
432
+ 00:07:37.885 --> 00:07:40.845
433
+ condición sabrá si ejecuta nuevamente el código o
434
+
435
+ 00:07:40.845 --> 00:07:43.805
436
+ si simplemente termina. Esto es la forma fácil
437
+
438
+ 00:07:43.805 --> 00:07:47.010
439
+ y rápida de realizar todo tipo de ciclos
440
+
441
+ 00:07:47.170 --> 00:07:49.650
442
+ dentro de C más más utilizando while y
443
+
444
+ 00:07:49.650 --> 00:07:52.390
445
+ to while, ya vimos el ciclo for, y
446
+
447
+ 00:07:52.450 --> 00:07:54.450
448
+ tienes que saber que esto lo puedes combinar
449
+
450
+ 00:07:54.450 --> 00:07:57.250
451
+ con todos los demás conocimientos que hemos aprendido
452
+
453
+ 00:07:57.250 --> 00:07:59.490
454
+ a lo largo de este curso. Puedes utilizar
455
+
456
+ 00:07:59.490 --> 00:08:02.390
457
+ condicionales como lo vimos aquí, puedes utilizar listas,
458
+
459
+ 00:08:02.701 --> 00:08:06.861
460
+ variables y todos los operadores. Te veo en
461
+
462
+ 00:08:06.861 --> 00:08:07.761
463
+ la próxima clase.
subir/Curso de C Básico/04-Control de flujo/04-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/curso-basico-c-plus-plus/tree/ciclo-while
subir/Curso de C Básico/04-Control de flujo/04-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de C Básico/04-Control de flujo/04-ciclo-while.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7964cbf1bb66a626279cafc039fecec90258c5bd268fa69307139136db58cacd
3
+ size 4566
subir/Curso de C Básico/05-Funciones/01-Funciones en C creación uso y valores por defecto.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:07956e82d4ef99b9901159b161bfbc5b82525ca46b6c0a3f1da10de32a11d09e
3
+ size 71950874
subir/Curso de C Básico/05-Funciones/01-Funciones en C creación uso y valores por defecto.vtt ADDED
@@ -0,0 +1,427 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:04.160 --> 00:00:06.720
4
+ Vamos a hablar sobre las funciones en c
5
+
6
+ 00:00:06.720 --> 00:00:09.679
7
+ más más. Las funciones son esta característica de
8
+
9
+ 00:00:09.679 --> 00:00:12.580
10
+ los lenguajes de programación que nos permiten aislar
11
+
12
+ 00:00:12.639 --> 00:00:16.785
13
+ bloques de código para poder invocarlos posteriormente. Nos
14
+
15
+ 00:00:16.785 --> 00:00:20.705
16
+ permiten aislar, por ejemplo, algoritmos que realicen algún
17
+
18
+ 00:00:20.705 --> 00:00:23.845
19
+ subproceso dentro de nuestro programa, que pueden recibir
20
+
21
+ 00:00:23.985 --> 00:00:26.305
22
+ datos de entrada para realizar su trabajo y
23
+
24
+ 00:00:26.305 --> 00:00:29.550
25
+ pueden retornar algún dato de salida. Funciona más
26
+
27
+ 00:00:29.550 --> 00:00:32.430
28
+ o menos así, funciona como una especie de
29
+
30
+ 00:00:32.430 --> 00:00:34.110
31
+ caja negra a la que le ponemos un
32
+
33
+ 00:00:34.110 --> 00:00:37.230
34
+ nombre, por ejemplo, una nombre un nombre para
35
+
36
+ 00:00:37.230 --> 00:00:40.350
37
+ una función puede ser f, y puede recibir
38
+
39
+ 00:00:40.350 --> 00:00:43.135
40
+ una serie de inputs, que son valores de
41
+
42
+ 00:00:43.135 --> 00:00:45.535
43
+ entrada, que pueden ser, dependiendo de lo que
44
+
45
+ 00:00:45.535 --> 00:00:47.715
46
+ se trate la función, pues pueden ser números,
47
+
48
+ 00:00:47.774 --> 00:00:50.175
49
+ letras, cualquier tipo de dato que tú quieras
50
+
51
+ 00:00:50.175 --> 00:00:52.655
52
+ manejar con tu lenguaje de programación, y a
53
+
54
+ 00:00:52.655 --> 00:00:54.975
55
+ la salida, pues te va a devolver algún
56
+
57
+ 00:00:54.975 --> 00:00:57.220
58
+ valor de retorno, también puede ser de cualquier
59
+
60
+ 00:00:57.220 --> 00:00:59.460
61
+ tipo que tú puedas establecer dentro de tu
62
+
63
+ 00:00:59.460 --> 00:01:03.700
64
+ lenguaje de programación. Y algunas funciones, incluso, pueden
65
+
66
+ 00:01:03.700 --> 00:01:06.900
67
+ no retornar algo, solamente realizar la ejecución de
68
+
69
+ 00:01:06.900 --> 00:01:10.020
70
+ algún bloque de código, pero como definición, pues,
71
+
72
+ 00:01:10.020 --> 00:01:13.135
73
+ pueden hacerlo. Entonces, vamos al ejemplo de código
74
+
75
+ 00:01:13.435 --> 00:01:15.355
76
+ para que veas cómo se programan las funciones
77
+
78
+ 00:01:15.355 --> 00:01:18.555
79
+ en C más más. Entonces, vamos a hacer
80
+
81
+ 00:01:18.555 --> 00:01:21.835
82
+ nuestro ejemplo de código. Para definir funciones en
83
+
84
+ 00:01:21.835 --> 00:01:25.080
85
+ C más más podemos hacerlo indicando qué tipo
86
+
87
+ 00:01:25.080 --> 00:01:27.240
88
+ de dato van a recibir, qué tipo de
89
+
90
+ 00:01:27.240 --> 00:01:29.400
91
+ dato van a retornar y cuál va a
92
+
93
+ 00:01:29.400 --> 00:01:31.640
94
+ ser su nombre. La forma que nos ofrece
95
+
96
+ 00:01:31.640 --> 00:01:34.200
97
+ el lenguaje de programación es indicarlo de la
98
+
99
+ 00:01:34.200 --> 00:01:36.200
100
+ siguiente manera, por ejemplo, si yo quiero realizar
101
+
102
+ 00:01:36.200 --> 00:01:38.680
103
+ una función suma que toma dos números como
104
+
105
+ 00:01:38.680 --> 00:01:40.814
106
+ entrada y devuelve un número como salida, sé
107
+
108
+ 00:01:40.814 --> 00:01:42.414
109
+ que voy a utilizar un tipo de dato
110
+
111
+ 00:01:42.414 --> 00:01:45.534
112
+ entero, en este caso, int. Luego, voy a
113
+
114
+ 00:01:45.534 --> 00:01:47.215
115
+ poder escribir el nombre de la función, en
116
+
117
+ 00:01:47.215 --> 00:01:49.695
118
+ este caso, le voy a llamar suma, y
119
+
120
+ 00:01:49.695 --> 00:01:52.655
121
+ entre paréntesis voy a poder indicarle todos los
122
+
123
+ 00:01:52.655 --> 00:01:55.370
124
+ argumentos que recibe como valores de entrada. En
125
+
126
+ 00:01:55.370 --> 00:01:59.130
127
+ este caso, respetando los mismos las mismas condiciones
128
+
129
+ 00:01:59.130 --> 00:02:01.550
130
+ de cómo nombrar las variables, vamos a poder
131
+
132
+ 00:02:02.570 --> 00:02:04.650
133
+ nombrar aquí dos variables, por ejemplo, la variable
134
+
135
+ 00:02:04.650 --> 00:02:07.210
136
+ a y la la variable b, que van
137
+
138
+ 00:02:07.210 --> 00:02:09.150
139
+ a ser dos variables que van a contener
140
+
141
+ 00:02:09.210 --> 00:02:13.685
142
+ números enteros para realizar nuestra suma. Luego podemos,
143
+
144
+ 00:02:13.685 --> 00:02:15.685
145
+ en un par de llaves, escribir todo el
146
+
147
+ 00:02:15.685 --> 00:02:18.724
148
+ código necesario para que ejecute nuestra función. Como
149
+
150
+ 00:02:18.724 --> 00:02:20.885
151
+ es una función de ejemplo, vamos a utilizar
152
+
153
+ 00:02:20.885 --> 00:02:24.260
154
+ solamente una línea de código para realizar el
155
+
156
+ 00:02:24.260 --> 00:02:26.420
157
+ proceso que queremos realizar, que es a más
158
+
159
+ 00:02:26.420 --> 00:02:28.900
160
+ b. Como se trata de una orden que
161
+
162
+ 00:02:28.900 --> 00:02:30.760
163
+ le estamos dando a la computadora, no debemos
164
+
165
+ 00:02:31.220 --> 00:02:34.500
166
+ olvidar poner el punto y coma. Ahora, las
167
+
168
+ 00:02:34.500 --> 00:02:37.379
169
+ funciones no solamente pueden recibir datos, como vimos
170
+
171
+ 00:02:37.379 --> 00:02:39.915
172
+ pueden retornarlos, y para esto utilizamos la palabra
173
+
174
+ 00:02:39.915 --> 00:02:44.555
175
+ reservada return. Esta palabra le indica a nuestro
176
+
177
+ 00:02:44.555 --> 00:02:46.795
178
+ lenguaje de programación que lo que haya obtenido,
179
+
180
+ 00:02:46.795 --> 00:02:48.395
181
+ en este caso de a más b, es
182
+
183
+ 00:02:48.395 --> 00:02:50.315
184
+ lo que va a retornar como respuesta de
185
+
186
+ 00:02:50.315 --> 00:02:53.940
187
+ la función. Una vez que ya definimos nuestra
188
+
189
+ 00:02:53.940 --> 00:02:57.239
190
+ función, tenemos que utilizarla. Para hacerlo, podemos invocarla
191
+
192
+ 00:02:57.300 --> 00:02:59.300
193
+ desde nuestra función main, que es la que
194
+
195
+ 00:02:59.300 --> 00:03:01.060
196
+ sabemos que va a se va a ejecutar
197
+
198
+ 00:03:01.060 --> 00:03:03.780
199
+ siempre cuando inicie nuestro programa, y lo que
200
+
201
+ 00:03:03.780 --> 00:03:05.700
202
+ vamos a hacer es, por ejemplo, llamarla con
203
+
204
+ 00:03:05.700 --> 00:03:08.905
205
+ ceo y mostrar el resultado de la suma
206
+
207
+ 00:03:08.905 --> 00:03:13.625
208
+ de dos más dos. Suma, entre paréntesis ponemos
209
+
210
+ 00:03:13.625 --> 00:03:15.565
211
+ los dos números que está esperando la suma
212
+
213
+ 00:03:16.985 --> 00:03:20.205
214
+ y cerramos. Esta es la forma de utilizarlas,
215
+
216
+ 00:03:20.425 --> 00:03:22.433
217
+ lo que está pasando aquí es que, al
218
+
219
+ 00:03:22.433 --> 00:03:24.940
220
+ invocar a la función suma y pasarle dos
221
+
222
+ 00:03:24.940 --> 00:03:28.060
223
+ valores, va a realizar esta operación, va a
224
+
225
+ 00:03:28.060 --> 00:03:30.700
226
+ retornar el resultado y el resultado es como
227
+
228
+ 00:03:30.700 --> 00:03:32.860
229
+ si lo hubiéramos escrito directamente en lugar de
230
+
231
+ 00:03:32.860 --> 00:03:34.754
232
+ esto, así que si out lo va a
233
+
234
+ 00:03:34.754 --> 00:03:36.775
235
+ devolver y lo va a mostrar en pantalla.
236
+
237
+ 00:03:37.075 --> 00:03:44.595
238
+ Vamos a ejecutar el programa. Como puedes ver,
239
+
240
+ 00:03:44.595 --> 00:03:47.474
241
+ ahora tenemos el número cuatro. Realizamos la suma
242
+
243
+ 00:03:47.474 --> 00:03:51.090
244
+ de dos más dos. Si queremos realizar alguna
245
+
246
+ 00:03:51.090 --> 00:03:53.010
247
+ otra operación, la ventaja que nos dan las
248
+
249
+ 00:03:53.010 --> 00:03:55.330
250
+ funciones es que, una vez que las declaramos,
251
+
252
+ 00:03:55.330 --> 00:03:58.390
253
+ ya podemos utilizarlas todas las veces que querramos.
254
+
255
+ 00:03:58.450 --> 00:04:00.850
256
+ Por ejemplo, si yo quiero sumar dos más
257
+
258
+ 00:04:00.850 --> 00:04:04.715
259
+ doscientos, ahora puedo realizar esta ejecución y va
260
+
261
+ 00:04:04.715 --> 00:04:07.035
262
+ a suceder de la forma correcta. Esa es
263
+
264
+ 00:04:07.035 --> 00:04:09.375
265
+ la ventaja de utilizar funciones, que podemos reutilizar
266
+
267
+ 00:04:09.515 --> 00:04:13.675
268
+ mucho código, podemos abstraerlo y organizarlo conforme nos
269
+
270
+ 00:04:13.675 --> 00:04:16.175
271
+ vaya conviniendo, pues, a la hora de programar.
272
+
273
+ 00:04:17.740 --> 00:04:20.300
274
+ Si quisiéramos realizar otra función, lo único que
275
+
276
+ 00:04:20.300 --> 00:04:22.540
277
+ tendríamos que hacer es del mismo modo que
278
+
279
+ 00:04:22.540 --> 00:04:25.580
280
+ creamos la función suma, pues podríamos realizar a
281
+
282
+ 00:04:25.580 --> 00:04:28.940
283
+ cualquier otra operación. Yo, imaginemos que quiero realizar
284
+
285
+ 00:04:28.940 --> 00:04:32.294
286
+ ahora una multiplicación, pues lo podemos hacer. Por
287
+
288
+ 00:04:32.294 --> 00:04:35.974
289
+ ejemplo, si yo quiero realizar una función que
290
+
291
+ 00:04:35.974 --> 00:04:40.935
292
+ multiplique dos números, puedo crear una función que
293
+
294
+ 00:04:40.935 --> 00:04:43.014
295
+ sabemos que una multiplicación, pues devuelve un entero,
296
+
297
+ 00:04:43.014 --> 00:04:47.950
298
+ entonces es int, y multiplicar el número a
299
+
300
+ 00:04:48.530 --> 00:04:52.230
301
+ con el número b como datos de entrada,
302
+
303
+ 00:04:52.770 --> 00:04:55.730
304
+ y vamos a retornar, pues, el resultado de
305
+
306
+ 00:04:55.730 --> 00:05:01.375
307
+ esa multiplicación. Así. Ahora, en lugar de utilizar
308
+
309
+ 00:05:01.375 --> 00:05:04.195
310
+ la suma, yo podría utilizar mi función multiplicar.
311
+
312
+ 00:05:06.655 --> 00:05:09.295
313
+ Vamos a ejecutarlo y ahí lo tienes, doscientos
314
+
315
+ 00:05:09.295 --> 00:05:12.960
316
+ por dos da cuatrocientos. Excelente, ahora has realizado
317
+
318
+ 00:05:12.960 --> 00:05:15.680
319
+ tus primeras funciones en c más más. Esto
320
+
321
+ 00:05:15.680 --> 00:05:17.280
322
+ no es lo único que puedes hacer, también
323
+
324
+ 00:05:17.280 --> 00:05:19.840
325
+ puedes hacer muchas otras cosas, vas a poder
326
+
327
+ 00:05:19.840 --> 00:05:22.659
328
+ utilizar cualquier tipo de datos conforme los vayas
329
+
330
+ 00:05:23.280 --> 00:05:25.199
331
+ aprendiendo a utilizar, vas a ver que puedes
332
+
333
+ 00:05:25.199 --> 00:05:28.295
334
+ utilizar caracteres y más adelante veremos cómo utilizar
335
+
336
+ 00:05:28.675 --> 00:05:31.635
337
+ cadenas de texto. Una última cosa antes de
338
+
339
+ 00:05:31.635 --> 00:05:33.955
340
+ terminar el tema de funciones es que cuando
341
+
342
+ 00:05:33.955 --> 00:05:37.335
343
+ hablamos de funciones puedes declarar valores por defecto,
344
+
345
+ 00:05:37.635 --> 00:05:40.035
346
+ sobre todo para el último argumento de la
347
+
348
+ 00:05:40.035 --> 00:05:42.270
349
+ función. En este caso, si yo quisiera que
350
+
351
+ 00:05:42.530 --> 00:05:46.169
352
+ mi función de multiplicar pueda utilizar un valor
353
+
354
+ 00:05:46.169 --> 00:05:49.130
355
+ por defecto para el segundo número, por ejemplo,
356
+
357
+ 00:05:49.130 --> 00:05:53.449
358
+ siempre si yo proveo dos números, multiplica esos
359
+
360
+ 00:05:53.449 --> 00:05:55.465
361
+ dos números, por ejemplo, dos por doscientos, pero
362
+
363
+ 00:05:55.465 --> 00:05:57.865
364
+ si yo no proveyera el segundo número que
365
+
366
+ 00:05:57.865 --> 00:05:59.785
367
+ ya tenga como que algún valor por defecto,
368
+
369
+ 00:05:59.785 --> 00:06:02.185
370
+ pues yo lo podría hacer. Por ejemplo, pongamos
371
+
372
+ 00:06:02.185 --> 00:06:04.985
373
+ que yo solo quiero proveer el número, el
374
+
375
+ 00:06:04.985 --> 00:06:07.384
376
+ primer número, el doscientos, y quiero que por
377
+
378
+ 00:06:07.384 --> 00:06:09.065
379
+ defecto, si yo no le doy otro número,
380
+
381
+ 00:06:09.065 --> 00:06:10.985
382
+ me los multiplique por dos, cualquier cosa que
383
+
384
+ 00:06:10.985 --> 00:06:13.920
385
+ yo meta. Entonces, lo que puedo hacer es
386
+
387
+ 00:06:13.920 --> 00:06:16.400
388
+ utilizar aquí un símbolo de igual y poner
389
+
390
+ 00:06:16.400 --> 00:06:18.880
391
+ el valor por defecto. De esta manera, si
392
+
393
+ 00:06:18.880 --> 00:06:20.800
394
+ yo no pusiera otro valor para b, dos
395
+
396
+ 00:06:20.800 --> 00:06:23.040
397
+ va a ser su valor. ¿Qué pasa si
398
+
399
+ 00:06:23.040 --> 00:06:25.940
400
+ yo lo ejecuto? Pues tengo el mismo resultado.
401
+
402
+ 00:06:26.224 --> 00:06:28.465
403
+ Tuve el número doscientos y ahora lo multipliqué
404
+
405
+ 00:06:28.465 --> 00:06:31.444
406
+ por el número por defecto. Si yo quisiera
407
+
408
+ 00:06:31.745 --> 00:06:35.205
409
+ cambiarlo, simplemente podría poner cualquier otro valor y
410
+
411
+ 00:06:35.585 --> 00:06:38.305
412
+ realizamos la ejecución y ahí está, tenemos mil
413
+
414
+ 00:06:38.305 --> 00:06:40.518
415
+ doscientos. Esto puede llegar a ser muy útil,
416
+
417
+ 00:06:40.518 --> 00:06:42.520
418
+ dado que, pues, en algunas funciones, pues, no
419
+
420
+ 00:06:42.520 --> 00:06:45.960
421
+ queremos estar metiendo valores bastante repetitivos a la
422
+
423
+ 00:06:45.960 --> 00:06:48.280
424
+ hora de invocarlos, y esto nos puede ayudar
425
+
426
+ 00:06:48.280 --> 00:06:51.260
427
+ bastante. Te veo en la próxima clase.
subir/Curso de C Básico/05-Funciones/01-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/curso-basico-c-plus-plus/tree/funciones
subir/Curso de C Básico/05-Funciones/01-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de C Básico/05-Funciones/01-funciones.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:46c30546d32570f5e2c85987845931e92afdafa588bf783f7177876c9ac9c12f
3
+ size 5535
subir/Curso de C Básico/05-Funciones/02-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://github.com/platzi/curso-basico-c-plus-plus/tree/biblioteca-estandar
subir/Curso de C Básico/05-Funciones/02-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de C Básico/05-Funciones/02-Uso de la Biblioteca String en C para Manejo de Cadenas de Texto.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8f808bcd030bf344c97acf59b5fb5f4038afed16232acc18443027bbcf3538f3
3
+ size 79349588
subir/Curso de C Básico/05-Funciones/02-Uso de la Biblioteca String en C para Manejo de Cadenas de Texto.vtt ADDED
@@ -0,0 +1,448 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00:03.919 --> 00:00:06.000
4
+ Vamos a hablar sobre la biblioteca estándar de
5
+
6
+ 00:00:06.000 --> 00:00:08.639
7
+ C más más. Como bien sabes, hemos estado
8
+
9
+ 00:00:08.639 --> 00:00:12.340
10
+ utilizando números y letras de tipos de dato
11
+
12
+ 00:00:12.400 --> 00:00:14.625
13
+ carácter o booleanos a lo largo de los
14
+
15
+ 00:00:14.625 --> 00:00:19.265
16
+ ejemplos de este curso. Pero, si has trabajado
17
+
18
+ 00:00:19.265 --> 00:00:21.345
19
+ con algún otro lenguaje de programación, te habrás
20
+
21
+ 00:00:21.345 --> 00:00:24.305
22
+ dado cuenta que no tenemos cadenas de texto
23
+
24
+ 00:00:24.305 --> 00:00:27.465
25
+ para poder utilizar, por ejemplo, mensajes completos. Los
26
+
27
+ 00:00:27.465 --> 00:00:30.120
28
+ hemos utilizado con CEOut, pero al momento no
29
+
30
+ 00:00:30.120 --> 00:00:32.840
31
+ los hemos utilizado como valores de variables, y
32
+
33
+ 00:00:32.840 --> 00:00:34.440
34
+ esto es por una razón, y es que
35
+
36
+ 00:00:34.440 --> 00:00:36.840
37
+ en C más más no tenemos el tipo
38
+
39
+ 00:00:36.840 --> 00:00:41.100
40
+ tipo string dentro de nuestro lenguaje de programación,
41
+
42
+ 00:00:41.575 --> 00:00:45.095
43
+ sino que es dentro de su biblioteca estándar
44
+
45
+ 00:00:45.095 --> 00:00:48.215
46
+ donde podemos importarlo, pero es necesario importarlo como
47
+
48
+ 00:00:48.215 --> 00:00:50.855
49
+ una librería. Para esto tenemos que hablar, pues,
50
+
51
+ 00:00:50.855 --> 00:00:53.335
52
+ sobre las diferentes librerías que nos provee la
53
+
54
+ 00:00:53.335 --> 00:00:56.530
55
+ biblioteca estándar de C más Mall. A continuación,
56
+
57
+ 00:00:56.910 --> 00:01:00.110
58
+ estarás viendo una tabla donde puedes ver algunas
59
+
60
+ 00:01:00.110 --> 00:01:03.070
61
+ de las muchas bibliotecas que incluye. En primer
62
+
63
+ 00:01:03.070 --> 00:01:05.229
64
+ lugar, tenemos iOStream, que ya la conoces, la
65
+
66
+ 00:01:05.229 --> 00:01:07.310
67
+ hemos estado utilizando para entrada y salida de
68
+
69
+ 00:01:07.310 --> 00:01:10.045
70
+ datos durante los ejercicios del programa. En segundo
71
+
72
+ 00:01:10.045 --> 00:01:12.765
73
+ lugar, tienes string, que nos permite el manejo
74
+
75
+ 00:01:12.765 --> 00:01:14.285
76
+ de cadenas de texto dentro de C más
77
+
78
+ 00:01:14.285 --> 00:01:16.685
79
+ más esa es la que vamos a aprender
80
+
81
+ 00:01:16.685 --> 00:01:20.145
82
+ en las siguientes clases, y tenemos algunas otras.
83
+
84
+ 00:01:20.365 --> 00:01:23.073
85
+ Esto es para que sepas que existen, realmente
86
+
87
+ 00:01:23.073 --> 00:01:25.982
88
+ no nos daría tiempo de utilizar todas las
89
+
90
+ 00:01:25.982 --> 00:01:27.990
91
+ bibliotecas que existen a lo largo de la
92
+
93
+ 00:01:27.990 --> 00:01:30.970
94
+ biblioteca estándar de C más más, pero existen
95
+
96
+ 00:01:31.750 --> 00:01:35.450
97
+ algunas especiales para manejar errores, otras para operaciones
98
+
99
+ 00:01:36.425 --> 00:01:40.185
100
+ matemáticas, como conseguir sacar un exponente o realizar
101
+
102
+ 00:01:40.185 --> 00:01:43.145
103
+ una operación de senos y cosenos. También tienes
104
+
105
+ 00:01:43.145 --> 00:01:46.025
106
+ otras que te sirven para manejar arrays o
107
+
108
+ 00:01:46.025 --> 00:01:49.570
109
+ incluso algunas para manejar vectores de datos, y
110
+
111
+ 00:01:49.570 --> 00:01:53.250
112
+ todas estas tienen sus propias funciones internas que
113
+
114
+ 00:01:53.250 --> 00:01:55.970
115
+ te permiten realizar, pues, todas las operaciones necesarias
116
+
117
+ 00:01:55.970 --> 00:01:59.430
118
+ con este tipo de estructuras. En este caso,
119
+
120
+ 00:01:59.570 --> 00:02:03.634
121
+ vamos a hablar sobre la la librería string,
122
+
123
+ 00:02:03.634 --> 00:02:04.755
124
+ que es la que nos va a permitir
125
+
126
+ 00:02:04.755 --> 00:02:07.395
127
+ el manejo de cadenas de texto. Vamos al
128
+
129
+ 00:02:07.395 --> 00:02:10.675
130
+ ejemplo de código. Para trabajar con cadenas de
131
+
132
+ 00:02:10.675 --> 00:02:13.235
133
+ texto, primero tenemos que hablar sobre el tema
134
+
135
+ 00:02:13.235 --> 00:02:17.790
136
+ de listas de caracteres. Como sabes, en C
137
+
138
+ 00:02:17.790 --> 00:02:21.010
139
+ más más tenemos el tipo carácter, por ejemplo,
140
+
141
+ 00:02:21.069 --> 00:02:23.390
142
+ char, y podemos crear una variable con él,
143
+
144
+ 00:02:23.390 --> 00:02:28.269
145
+ por ejemplo, un texto, ¿no? Ahora, también vimos
146
+
147
+ 00:02:28.269 --> 00:02:29.915
148
+ el tema de las listas, ¿no? Sabes que
149
+
150
+ 00:02:29.915 --> 00:02:32.075
151
+ si les ponemos este símbolo de aquí, esto
152
+
153
+ 00:02:32.075 --> 00:02:36.015
154
+ es corchetes, y comenzamos a escribir caracteres individuales,
155
+
156
+ 00:02:36.075 --> 00:02:38.395
157
+ pues esto podría funcionar como una forma de
158
+
159
+ 00:02:38.395 --> 00:02:40.815
160
+ escribir un texto de más de un carácter.
161
+
162
+ 00:02:41.355 --> 00:02:44.575
163
+ Por ejemplo, si queremos escribir la palabra hola,
164
+
165
+ 00:02:45.030 --> 00:02:49.349
166
+ podríamos hacerlo de la siguiente manera. Esto no
167
+
168
+ 00:02:49.349 --> 00:02:51.510
169
+ es una forma muy eficiente, pero es una
170
+
171
+ 00:02:51.510 --> 00:02:53.989
172
+ forma que funciona para C más más. Vamos
173
+
174
+ 00:02:53.989 --> 00:02:55.189
175
+ a ver qué es lo que genera en
176
+
177
+ 00:02:55.189 --> 00:03:04.185
178
+ la salida. Si ejecutamos este bloque de código,
179
+
180
+ 00:03:04.185 --> 00:03:08.605
181
+ obtenemos que nuestra variable texto, pues, efectivamente contiene
182
+
183
+ 00:03:08.905 --> 00:03:13.120
184
+ la palabra hola, ya que, si out lo
185
+
186
+ 00:03:13.120 --> 00:03:14.440
187
+ que hace es tomar cada uno de los
188
+
189
+ 00:03:14.440 --> 00:03:17.160
190
+ caracteres y y colocarlos en la terminal, pues
191
+
192
+ 00:03:17.160 --> 00:03:20.120
193
+ no notamos ninguna gran diferencia. Sin embargo, si
194
+
195
+ 00:03:20.120 --> 00:03:23.160
196
+ comenzáramos a querer trabajar con esta forma de
197
+
198
+ 00:03:23.160 --> 00:03:26.295
199
+ escribir la palabra hola, además de que no
200
+
201
+ 00:03:26.295 --> 00:03:28.855
202
+ es muy eficiente escribir todas las palabras que
203
+
204
+ 00:03:28.855 --> 00:03:31.834
205
+ queramos. Tendríamos las limitantes de que no podemos
206
+
207
+ 00:03:31.834 --> 00:03:34.534
208
+ conocer, por ejemplo, de una forma sencilla cuál
209
+
210
+ 00:03:34.534 --> 00:03:37.095
211
+ es el número de caracteres que contiene, tendríamos
212
+
213
+ 00:03:37.095 --> 00:03:38.855
214
+ que realizar, pues, la fórmula que vimos con
215
+
216
+ 00:03:38.855 --> 00:03:43.390
217
+ size off tendríamos que realizar algún otro tipo
218
+
219
+ 00:03:43.390 --> 00:03:45.770
220
+ de trucos que vamos a ir descubriendo de
221
+
222
+ 00:03:45.790 --> 00:03:47.790
223
+ cómo utilizar, pues, las listas. A lo mejor,
224
+
225
+ 00:03:47.790 --> 00:03:49.970
226
+ si quisieras mostrar cada una de las letras,
227
+
228
+ 00:03:50.030 --> 00:03:52.965
229
+ tendrías que hacer, tal vez, un ciclo. Y
230
+
231
+ 00:03:52.965 --> 00:03:56.005
232
+ si quisieras procesarlo en general para un uso
233
+
234
+ 00:03:56.005 --> 00:03:57.845
235
+ de un if o de un case, pues
236
+
237
+ 00:03:57.845 --> 00:04:01.285
238
+ también podría ser bastante complicado. Para esto, la
239
+
240
+ 00:04:01.285 --> 00:04:04.165
241
+ librería estándar, la biblioteca estándar de C más
242
+
243
+ 00:04:04.165 --> 00:04:06.985
244
+ más nos provee una librería que es string.
245
+
246
+ 00:04:09.840 --> 00:04:14.560
247
+ Con include podemos invocar esta librería y se
248
+
249
+ 00:04:14.560 --> 00:04:18.480
250
+ llama string. String nos va a permitir declarar
251
+
252
+ 00:04:18.480 --> 00:04:21.524
253
+ un nuevo tipo de dato para nuestras variables,
254
+
255
+ 00:04:21.604 --> 00:04:24.245
256
+ que es precisamente el tipo de dato del
257
+
258
+ 00:04:24.245 --> 00:04:27.445
259
+ mismo nombre, string. Y con esto ya no
260
+
261
+ 00:04:27.445 --> 00:04:31.604
262
+ necesitaremos utilizar esta sintaxis extraña de una lista
263
+
264
+ 00:04:31.604 --> 00:04:33.604
265
+ de caracteres dentro de C más más, sino
266
+
267
+ 00:04:33.604 --> 00:04:37.044
268
+ que pasaríamos a simplemente poder utilizar las dobles
269
+
270
+ 00:04:37.044 --> 00:04:41.360
271
+ comillas. Por ejemplo, hola mundo. De esta manera,
272
+
273
+ 00:04:41.420 --> 00:04:44.380
274
+ nuestra variable texto ya contiene todos los caracteres
275
+
276
+ 00:04:44.380 --> 00:04:46.940
277
+ necesarios para funcionar y, a la hora de
278
+
279
+ 00:04:46.940 --> 00:04:51.775
280
+ ejecutarlos, vamos a obtener un resultado correcto. Si
281
+
282
+ 00:04:51.775 --> 00:04:54.414
283
+ te diste cuenta, nuestra forma de escribir ahora
284
+
285
+ 00:04:54.414 --> 00:04:56.835
286
+ las cadenas de texto es mucho más fácil.
287
+
288
+ 00:04:57.615 --> 00:05:00.255
289
+ Ahora, C más más nos provee de algunos
290
+
291
+ 00:05:00.255 --> 00:05:03.055
292
+ métodos adicionales para trabajar con las listas. Por
293
+
294
+ 00:05:03.055 --> 00:05:05.710
295
+ ejemplo, obtener cuál es su tamaño. En lugar
296
+
297
+ 00:05:05.710 --> 00:05:09.650
298
+ de simplemente hacer una operación con size off,
299
+
300
+ 00:05:09.710 --> 00:05:11.710
301
+ la cual, de hecho, ya no serviría con
302
+
303
+ 00:05:11.710 --> 00:05:16.270
304
+ este tipo de dato, podemos simplemente obtener su
305
+
306
+ 00:05:16.270 --> 00:05:20.770
307
+ propiedad size con la siguiente sintaxis, punto size.
308
+
309
+ 00:05:21.395 --> 00:05:24.514
310
+ Y entre paréntesis porque es una función que
311
+
312
+ 00:05:24.514 --> 00:05:28.595
313
+ le pertenece a cualquier texto. De esta manera,
314
+
315
+ 00:05:28.595 --> 00:05:32.055
316
+ nos está devolviendo que tiene diez caracteres nuestra
317
+
318
+ 00:05:32.115 --> 00:05:36.310
319
+ nuestro hola mundo. Otras cosas que podemos hacer
320
+
321
+ 00:05:36.310 --> 00:05:39.669
322
+ con la biblioteca string dentro de C más
323
+
324
+ 00:05:39.669 --> 00:05:41.990
325
+ más es, por ejemplo, tomar un valor que
326
+
327
+ 00:05:41.990 --> 00:05:44.009
328
+ venga de una cadena de texto y convertirlo
329
+
330
+ 00:05:44.310 --> 00:05:47.129
331
+ a un número. Esto puede ser necesario si
332
+
333
+ 00:05:47.190 --> 00:05:50.064
334
+ trabajamos, por ejemplo, con Sein y queremos que
335
+
336
+ 00:05:50.064 --> 00:05:54.784
337
+ la persona introduzca algo, algún valor y queremos
338
+
339
+ 00:05:54.784 --> 00:05:56.865
340
+ separar solamente la parte numérica y nos queda,
341
+
342
+ 00:05:56.865 --> 00:05:58.865
343
+ pues, a lo mejor algo como esto, el
344
+
345
+ 00:05:58.865 --> 00:06:01.905
346
+ número diez, pero en forma de cadena de
347
+
348
+ 00:06:01.905 --> 00:06:04.320
349
+ texto. Bueno, la forma que nos da la
350
+
351
+ 00:06:04.320 --> 00:06:07.280
352
+ librería de C más más es utilizar una
353
+
354
+ 00:06:07.280 --> 00:06:10.320
355
+ función que se llama string to int, pero
356
+
357
+ 00:06:10.320 --> 00:06:14.400
358
+ abreviado es s to I. String to int
359
+
360
+ 00:06:14.400 --> 00:06:16.365
361
+ lo que nos va a recibir es una
362
+
363
+ 00:06:16.365 --> 00:06:19.949
364
+ cadena de texto que contiene algo válido como
365
+
366
+ 00:06:19.949 --> 00:06:22.485
367
+ un número, como en este caso, y lo
368
+
369
+ 00:06:22.485 --> 00:06:25.485
370
+ que va a devolver es precisamente un entero.
371
+
372
+ 00:06:25.485 --> 00:06:28.385
373
+ De esta manera, ya no necesitaríamos realizar ninguna
374
+
375
+ 00:06:28.765 --> 00:06:31.040
376
+ otra operación extraña, y si tratamos de hacer
377
+
378
+ 00:06:31.040 --> 00:06:34.640
379
+ operaciones matemáticas o algebraicas, con este número podríamos
380
+
381
+ 00:06:34.640 --> 00:06:38.660
382
+ hacerlo. Si nuestro número no fuera un tipo
383
+
384
+ 00:06:38.960 --> 00:06:41.520
385
+ entero, sino que tuviéramos, por ejemplo, un tipo
386
+
387
+ 00:06:41.520 --> 00:06:44.400
388
+ flotante, podríamos hacerlo, por ejemplo, un diez punto
389
+
390
+ 00:06:44.400 --> 00:06:46.735
391
+ cinco. Lo único que tendríamos que hacer es
392
+
393
+ 00:06:46.735 --> 00:06:49.634
394
+ cambiar a otra función que sirve para convertirlo
395
+
396
+ 00:06:49.694 --> 00:06:51.455
397
+ en flotante. Lo único que tenemos que hacer
398
+
399
+ 00:06:51.455 --> 00:06:55.315
400
+ es string to float. Así, string to float
401
+
402
+ 00:06:55.694 --> 00:06:58.735
403
+ es una función que nos provee la biblioteca
404
+
405
+ 00:06:58.735 --> 00:07:01.470
406
+ de string, de C más más y ahí
407
+
408
+ 00:07:01.470 --> 00:07:03.870
409
+ lo tenemos. No nos está dando errores, ya
410
+
411
+ 00:07:03.870 --> 00:07:06.270
412
+ podemos realizar operaciones con ellos. Si yo quisiera,
413
+
414
+ 00:07:06.270 --> 00:07:08.030
415
+ por ejemplo, validar que esto es un número,
416
+
417
+ 00:07:08.030 --> 00:07:10.510
418
+ pues podría intentar realizar a lo mejor una
419
+
420
+ 00:07:10.510 --> 00:07:12.350
421
+ suma y ver que no me da ningún
422
+
423
+ 00:07:12.350 --> 00:07:15.255
424
+ error, porque realmente se está procesando como un
425
+
426
+ 00:07:15.255 --> 00:07:17.575
427
+ número. Aunque SEOut no nos muestre realmente la
428
+
429
+ 00:07:17.575 --> 00:07:21.175
430
+ diferencia, por detrás, si quisiéramos realizar operaciones directamente
431
+
432
+ 00:07:21.175 --> 00:07:25.115
433
+ con una cadena de texto, no podríamos. Esta
434
+
435
+ 00:07:25.255 --> 00:07:28.130
436
+ y muchas otras funciones son contenidas dentro de
437
+
438
+ 00:07:28.130 --> 00:07:30.370
439
+ la biblioteca estándar de C más más, en
440
+
441
+ 00:07:30.370 --> 00:07:33.330
442
+ este caso para string, pero existen muchas otras
443
+
444
+ 00:07:33.330 --> 00:07:35.410
445
+ y me gustaría invitarte a que investigues y
446
+
447
+ 00:07:35.410 --> 00:07:37.750
448
+ realices ejercicios con algunas de ellas.
subir/Curso de C Básico/05-Funciones/02-biblioteca-estandar.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d3be9955acf5fa2b253ac2614464d6bdfd4d4361ea942d389ac878d6a5181ab1
3
+ size 6527
subir/Curso de C Básico/06-Próximos pasos/01-Lecturas recomendadas.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://platzi.com/cursos/c-plus-plus-poo/
subir/Curso de C Básico/06-Próximos pasos/01-Programación Orientada a Objetos con C.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1a92055e20ad3296c78e6394d92630c4dca6bdc74c617bc4531b665137ba3c02
3
+ size 11720535
subir/Curso de C Básico/06-Próximos pasos/01-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Diseño para Developers/01-Introducción/01-Diseño Eficiente para Programadores Herramientas y Conceptos Básicos.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:912188a31dd98623d495d717c130e298f58f21e3744abdd3c8eb12ae63e9424a
3
+ size 10733591
subir/Curso de Diseño para Developers/01-Introducción/01-Diseño Eficiente para Programadores Herramientas y Conceptos Básicos.vtt ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:06.440
4
+ Hola, te doy la bienvenida a este curso de
5
+ diseño para programadores.
6
+
7
+ 00:06.440 --> 00:10.280
8
+ Mi nombre es Samantha Martínez y he tenido
9
+ la oportunidad de trabajar tanto en las áreas
10
+
11
+ 00:10.280 --> 00:14.480
12
+ de diseño como en las áreas de
13
+ programación y entiendo lo difícil que es muchas veces
14
+
15
+ 00:14.480 --> 00:19.240
16
+ definir un flujo de trabajo entre
17
+ diseñadores y programadores y también entiendo lo difícil
18
+
19
+ 00:19.240 --> 00:22.320
20
+ que es para muchos programadores empezar a
21
+ diseñar.
22
+
23
+ 00:22.320 --> 00:26.440
24
+ En este curso te vamos a dar las
25
+ herramientas para que no solo programes tu aplicación,
26
+
27
+ 00:26.440 --> 00:28.480
28
+ sino puedas hacer un diseño eficiente.
29
+
30
+ 00:28.480 --> 00:32.320
31
+ A lo largo de este curso vamos a tener un
32
+ proyecto que va a ser el hilo conductor y
33
+
34
+ 00:32.320 --> 00:36.440
35
+ vamos a tener una serie de clases en donde
36
+ vamos a ir entendiendo los conceptos básicos
37
+
38
+ 00:36.440 --> 00:37.440
39
+ del
40
+ diseño.
41
+
42
+ 00:37.440 --> 00:42.080
43
+ También hay un repositorio en GitHub donde
44
+ vamos a subir todas las clases del proyecto,
45
+
46
+ 00:42.080 --> 00:46.060
47
+ lo puedes descargar y puedes consultar ahí
48
+ todo lo que necesites y también puedes opinar
49
+
50
+ 00:46.060 --> 00:49.360
51
+ en el foro y escribir todas las preguntas
52
+ que se te ocurran.
53
+
54
+ 00:49.360 --> 00:54.600
55
+ Te invito a que me sigas en redes sociales,
56
+ estoy en Twitter como MSSroboto y te espero
57
+
58
+ 00:54.600 --> 00:58.520
59
+ en la próxima clase en donde vamos a
60
+ hablar sobre el proceso creativo.
61
+
subir/Curso de Diseño para Developers/01-Introducción/01-Lecturas recomendadas.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ https://github.com/mssroboto/diseno-para-programadores
2
+ https://twitter.com/mssroboto
3
+ https://platzi.com/blog/disenadora-grafica-front-end-developer/
subir/Curso de Diseño para Developers/01-Introducción/01-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Diseño para Developers/01-Introducción/01-slidesdisenoparaprogram_80421720-f8bc-4435-9886-a145e6adbb5a.pdf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:de99479236d2436110ca575534574fa509fdeaf61809085afe3c369231df81d9
3
+ size 2279132
subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/01-Desarrollo de la creatividad para diseño y aplicaciones web.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:07bc2fb6f45824d62320c3cf060682d695b0aa5137a758830c71780a921a84a8
3
+ size 31935738
subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/01-Desarrollo de la creatividad para diseño y aplicaciones web.vtt ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:07.600
4
+ ¿Cuántas veces has escuchado a tus
5
+ compañeros programadores o incluso tú mismo te has dicho
6
+
7
+ 00:07.600 --> 00:12.440
8
+ esta frase? Me gustaría diseñar pero no
9
+ tengo creatividad. Hay personas que son más creativas
10
+
11
+ 00:12.440 --> 00:17.320
12
+ que otras. Pues la verdad es que no es así.
13
+ El proceso creativo, al igual que cualquier otro
14
+
15
+ 00:17.320 --> 00:22.480
16
+ proceso técnico, consta de algunos pasos y
17
+ aunque los hagamos de una manera inconsciente, siempre lo
18
+
19
+ 00:22.480 --> 00:28.080
20
+ aplicamos para solucionar distintos problemas.
21
+ Estos pasos son el primero preparación, segundo
22
+
23
+ 00:28.080 --> 00:34.400
24
+ incubación, tercero iluminación, cuarto
25
+ evaluación y quinto implementación. ¿En qué consisten estos
26
+
27
+ 00:34.400 --> 00:39.680
28
+ pasos? El primer paso en la preparación es
29
+ cuando investigamos y recopilamos toda la información
30
+
31
+ 00:39.680 --> 00:46.400
32
+ relativa a un problema o una cosa que
33
+ queramos solucionar. El segundo es la etapa incubación. En
34
+
35
+ 00:46.400 --> 00:51.960
36
+ esta etapa lo que hacemos es experimentar,
37
+ buscar diferentes soluciones, mirar cómo alguien más
38
+
39
+ 00:51.960 --> 00:57.240
40
+ soluciona este problema y luego pasamos a
41
+ la tercera etapa que es la iluminación. La etapa
42
+
43
+ 00:57.240 --> 01:02.120
44
+ de la iluminación es donde se nos ocurre
45
+ la idea. Entonces en esta etapa es donde se nos permite
46
+
47
+ 01:02.120 --> 01:07.360
48
+ idear e imaginar soluciones. Y luego
49
+ tenemos que ir a la cuarta etapa que es en donde evaluamos
50
+
51
+ 01:07.360 --> 01:13.520
52
+ si estas soluciones son prácticas, son
53
+ viables y las criticamos y si es necesario las replanteamos.
54
+
55
+ 01:13.520 --> 01:19.200
56
+ Finalmente tenemos la etapa de
57
+ implementación que es en donde ya construimos nuestra idea,
58
+
59
+ 01:19.200 --> 01:25.720
60
+ trabajamos en ella y tenemos un producto
61
+ final. Este proceso no solamente se aplica para diseño
62
+
63
+ 01:25.720 --> 01:32.280
64
+ ni para hacer aplicaciones ni algo que
65
+ esté relacionado con un campo técnico o productivo.
66
+
67
+ 01:32.280 --> 01:37.240
68
+ Este proceso lo aplicamos todos los días
69
+ para solucionar problemas de la vida cotidiana. Por
70
+
71
+ 01:37.240 --> 01:42.840
72
+ ejemplo, Olga necesita hacer un pastel de
73
+ cumpleaños. Antes de empezar hace una lista de insumos y busca
74
+
75
+ 01:42.840 --> 01:47.920
76
+ recetas. En este caso, Olga está haciendo
77
+ la etapa de investigación. Después de investigar,
78
+
79
+ 01:47.920 --> 01:52.760
80
+ Olga se da cuenta de que todas las recetas
81
+ de pasteles requieren horno. Entonces busca recetas
82
+
83
+ 01:52.760 --> 01:57.520
84
+ de postres que no lo requieran. En esta
85
+ etapa ella empieza a experimentar y a buscar soluciones que
86
+
87
+ 01:57.520 --> 02:03.120
88
+ necesita. Siguiente, tras considerar
89
+ varias opciones, a Olga se le ocurre preparar un cheesecake frío de
90
+
91
+ 02:03.120 --> 02:07.760
92
+ fresa. Es este momento en el que ocurre la
93
+ iluminación. La iluminación y la idea de
94
+
95
+ 02:07.760 --> 02:12.480
96
+ preparar un cheesecake frío de fresa no
97
+ fue la primera opción sino el resultado de un proceso,
98
+
99
+ 02:12.480 --> 02:20.440
100
+ un proceso mental que ha venido haciendo ella.
101
+ ¿Qué pasa? Antes de empezar a cocinar, Olga revisa que
102
+
103
+ 02:20.440 --> 02:25.960
104
+ tiene todo lo necesario y ahí se da cuenta
105
+ de que no tiene suficientes fresas. Entonces replantea su
106
+
107
+ 02:25.960 --> 02:32.360
108
+ idea y decide preparar un cheesecake de
109
+ arándanos. Ya con su idea clara, Olga llega y empieza a
110
+
111
+ 02:32.360 --> 02:36.880
112
+ implementar y empieza a cocinar y
113
+ finalmente tiene su... no tiene una torta de cumpleaños,
114
+
115
+ 02:36.880 --> 02:41.680
116
+ pero tiene un cheesecake. Cumple la misma
117
+ función y acaba de aplicar el proceso creativo de una
118
+
119
+ 02:41.680 --> 02:46.520
120
+ manera en la que no se dio cuenta.
121
+ Entonces todo este proceso es importante que lo sepamos para
122
+
123
+ 02:46.520 --> 02:51.360
124
+ que entendamos que la creatividad no es un
125
+ talento, no es algo con lo que se nace, es algo
126
+
127
+ 02:51.360 --> 02:55.360
128
+ que se desarrolla y en este curso vamos a
129
+ aprender a desarrollar nuestra creatividad
130
+
131
+ 02:55.360 --> 03:17.360
132
+ aplicada a la creación de una aplicación o
133
+ de un diseño web.
134
+
subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/01-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/02-Conceptos Básicos de Composición en Diseño Gráfico.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5eb69d1ea89723bdf649f470b8264d9d8a8f3d1e3ef4093bfdee37ca6316e7d2
3
+ size 41223852
subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/02-Conceptos Básicos de Composición en Diseño Gráfico.vtt ADDED
@@ -0,0 +1,331 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:03.000
4
+ Hola, ahora vamos a estudiar seis
5
+ conceptos básicos
6
+
7
+ 00:03.000 --> 00:04.600
8
+ de la composición en
9
+ diseño.
10
+
11
+ 00:04.600 --> 00:06.600
12
+ Tener estos seis conceptos básicos
13
+ claros
14
+
15
+ 00:06.600 --> 00:09.400
16
+ te van a ayudar a crear composiciones no
17
+ solamente web,
18
+
19
+ 00:09.400 --> 00:12.400
20
+ sino composición editoriales, ilustraciones,
21
+ etc.
22
+
23
+ 00:14.000 --> 00:15.600
24
+ Empecemos con el
25
+ balance.
26
+
27
+ 00:15.600 --> 00:18.000
28
+ El balance se refiere a la estructura y
29
+ estabilidad
30
+
31
+ 00:18.000 --> 00:20.600
32
+ de una composición en donde la posición de
33
+ cada elemento
34
+
35
+ 00:20.600 --> 00:22.400
36
+ está dada por su peso
37
+ visual.
38
+
39
+ 00:22.400 --> 00:24.800
40
+ Podemos tener un balance simétrico o
41
+ asimétrico,
42
+
43
+ 00:24.800 --> 00:27.000
44
+ como lo veremos en los siguientes ejemplos.
45
+
46
+ 00:27.000 --> 00:29.400
47
+ Aquí vemos un ejemplo de balance simétrico.
48
+
49
+ 00:29.400 --> 00:32.000
50
+ Si bien no todos los elementos tienen el
51
+ mismo tamaño,
52
+
53
+ 00:32.000 --> 00:35.000
54
+ sí tenemos una composición que va de
55
+ arriba hacia abajo
56
+
57
+ 00:35.000 --> 00:36.600
58
+ y de izquierda a
59
+ derecha,
60
+
61
+ 00:36.600 --> 00:39.600
62
+ y que tiene los colores más fuertes en la
63
+ parte de abajo.
64
+
65
+ 00:41.000 --> 00:44.600
66
+ En este ejemplo podemos ver un ejemplo de
67
+ composición asimétrica.
68
+
69
+ 00:45.000 --> 00:47.000
70
+ Vemos cómo se marca una
71
+ diagonal
72
+
73
+ 00:47.000 --> 00:49.000
74
+ en donde tenemos contenido en la parte de
75
+ arriba
76
+
77
+ 00:49.000 --> 00:50.600
78
+ y en la parte de
79
+ abajo,
80
+
81
+ 00:50.600 --> 00:53.600
82
+ y a pesar de no tener una cuadrícula
83
+ específica,
84
+
85
+ 00:53.600 --> 00:55.600
86
+ tenemos una composición bastante balanceada,
87
+
88
+ 00:55.600 --> 00:58.000
89
+ porque la cantidad de elementos que hay
90
+ sobre la botella
91
+
92
+ 00:58.000 --> 01:00.000
93
+ y bajo la botella es muy
94
+ similar.
95
+
96
+ 01:01.400 --> 01:04.200
97
+ Otro de los conceptos importantes es el
98
+ contraste.
99
+
100
+ 01:04.200 --> 01:07.600
101
+ El contraste lo podemos utilizar para
102
+ señalar un concepto
103
+
104
+ 01:07.600 --> 01:11.000
105
+ marcado por la diferencia entre dos
106
+ elementos distintos.
107
+
108
+ 01:11.000 --> 01:13.400
109
+ Por ejemplo, claro-oscuro, moderno-antiguo,
110
+
111
+ 01:13.400 --> 01:15.000
112
+ grande-pequeño,
113
+ etc.
114
+
115
+ 01:15.800 --> 01:18.400
116
+ Acá podemos ver un muy buen ejemplo de
117
+ contraste,
118
+
119
+ 01:18.400 --> 01:20.600
120
+ donde no solamente está contando con el color,
121
+
122
+ 01:20.600 --> 01:23.000
123
+ sino que también está contando con el color.
124
+
125
+ 01:23.000 --> 01:25.000
126
+ No solamente está contrastando el color,
127
+
128
+ 01:25.000 --> 01:26.600
129
+ sino el tamaño de los
130
+ elementos.
131
+
132
+ 01:26.600 --> 01:29.000
133
+ Podemos ver que tenemos un botón al lado
134
+ izquierdo
135
+
136
+ 01:29.000 --> 01:30.600
137
+ y otro botón al lado
138
+ derecho.
139
+
140
+ 01:32.200 --> 01:34.600
141
+ Otro concepto importante es la alineación.
142
+
143
+ 01:34.600 --> 01:37.200
144
+ La alineación nos permite crear una ruta
145
+ visual
146
+
147
+ 01:37.200 --> 01:40.400
148
+ entre diferentes elementos que queremos
149
+ señalarle al usuario.
150
+
151
+ 01:41.400 --> 01:44.400
152
+ En este ejemplo vemos cómo tenemos
153
+ alineados al centro
154
+
155
+ 01:44.400 --> 01:46.400
156
+ los botones y el título
157
+ principal
158
+
159
+ 01:46.400 --> 01:48.600
160
+ y los elementos decorativos a la derecha.
161
+
162
+ 01:48.600 --> 01:51.000
163
+ Si quisiéramos tener nuestro elemento
164
+ principal
165
+
166
+ 01:51.000 --> 01:53.800
167
+ alineado a la izquierda, pondríamos los
168
+ elementos decorativos
169
+
170
+ 01:53.800 --> 01:57.000
171
+ al lado derecho, cuidando de que el peso
172
+ visual de las cosas
173
+
174
+ 01:57.000 --> 01:58.600
175
+ no se vea
176
+ afectado.
177
+
178
+ 02:00.000 --> 02:02.400
179
+ El siguiente concepto es la proximidad.
180
+
181
+ 02:02.400 --> 02:05.800
182
+ La proximidad nos permite agrupar
183
+ diferentes elementos.
184
+
185
+ 02:05.800 --> 02:08.600
186
+ La proximidad no necesariamente tiene que
187
+ ser física,
188
+
189
+ 02:08.600 --> 02:10.400
190
+ sino que podemos agrupar
191
+ elementos
192
+
193
+ 02:10.400 --> 02:14.400
194
+ utilizando colores, íconos u otro tipo de
195
+ elementos.
196
+
197
+ 02:15.400 --> 02:17.600
198
+ Acá vemos en esta página de un
199
+ restaurante
200
+
201
+ 02:17.600 --> 02:19.800
202
+ cómo tenemos tres categorías de un
203
+ menú
204
+
205
+ 02:19.800 --> 02:22.400
206
+ y estas tienen una proximidad no solamente
207
+ física,
208
+
209
+ 02:22.400 --> 02:24.800
210
+ sino que están utilizando el mismo estilo
211
+ visual.
212
+
213
+ 02:24.800 --> 02:27.400
214
+ Así es más fácil para el usuario a primera
215
+ vista
216
+
217
+ 02:27.400 --> 02:30.600
218
+ entender que las tres hacen parte de una
219
+ misma categoría.
220
+
221
+ 02:31.800 --> 02:34.000
222
+ El siguiente concepto es la repetición.
223
+
224
+ 02:34.000 --> 02:37.600
225
+ La repetición es muy utilizada para
226
+ generar concepto de marca.
227
+
228
+ 02:37.600 --> 02:41.200
229
+ Vemos cómo muchas marcas utilizan siempre
230
+ los mismos colores,
231
+
232
+ 02:41.200 --> 02:44.200
233
+ las iniciales de sus logotipos, etc.
234
+
235
+ 02:44.200 --> 02:47.800
236
+ Acá, por ejemplo, en este siguiente caso,
237
+
238
+ 02:47.800 --> 02:49.800
239
+ vemos cómo tenemos una
240
+ cuadrícula,
241
+
242
+ 02:49.800 --> 02:52.800
243
+ es una página de gaseosas y ellos utilizan
244
+ la repetición
245
+
246
+ 02:52.800 --> 02:55.600
247
+ no solamente para mostrarnos los sabores
248
+ de gaseosas,
249
+
250
+ 02:55.600 --> 02:58.000
251
+ sino para mostrarnos su logo cuatro veces.
252
+
253
+ 02:58.000 --> 03:00.600
254
+ Eso genera una recordación en los usuarios
255
+ de la marca
256
+
257
+ 03:00.600 --> 03:02.800
258
+ y también ayuda a reforzar un concepto.
259
+
260
+ 03:04.000 --> 03:06.200
261
+ El último concepto es el
262
+ espacio.
263
+
264
+ 03:06.200 --> 03:09.000
265
+ El espacio lo podemos aprovechar de muchas
266
+ maneras.
267
+
268
+ 03:09.000 --> 03:11.200
269
+ En este ejemplo podemos
270
+ ver
271
+
272
+ 03:11.200 --> 03:13.200
273
+ que tenemos al lado izquierdo un
274
+ título
275
+
276
+ 03:13.200 --> 03:14.800
277
+ y al lado derecho una
278
+ imagen.
279
+
280
+ 03:14.800 --> 03:17.400
281
+ Ellos no se conformaron solamente con
282
+ ubicar un título
283
+
284
+ 03:17.400 --> 03:19.200
285
+ en el centro de la
286
+ página,
287
+
288
+ 03:19.200 --> 03:21.600
289
+ sino que están aprovechando el espacio
290
+ negativo
291
+
292
+ 03:21.600 --> 03:24.600
293
+ para poner una imagen y para seguir
294
+ añadiendo más fuerza
295
+
296
+ 03:24.600 --> 03:27.600
297
+ a su concepto, que en este caso es una
298
+ página de vinos.
299
+
300
+ 03:28.200 --> 03:30.600
301
+ Ahora que ya tienes claros los seis
302
+ conceptos básicos
303
+
304
+ 03:30.600 --> 03:32.800
305
+ de la composición, vamos a
306
+ aprender
307
+
308
+ 03:32.800 --> 03:34.600
309
+ cómo aplicar estos conceptos
310
+ básicos
311
+
312
+ 03:34.600 --> 03:36.600
313
+ para que se adapten a todos los
314
+ dispositivos
315
+
316
+ 03:36.600 --> 03:37.800
317
+ y tamaños de
318
+ pantalla.
319
+
320
+ 03:37.800 --> 03:40.000
321
+ Para eso es importante tener claro el
322
+ concepto
323
+
324
+ 03:40.000 --> 03:42.000
325
+ de Responsive Design o diseño
326
+ responsivo
327
+
328
+ 03:42.000 --> 03:48.000
329
+ que haremos en la siguiente
330
+ clase.
331
+
subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/02-Resumen.html ADDED
The diff for this file is too large to render. See raw diff
 
subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/03-Responsive Design Metodologías y Prácticas Esenciales.mp4 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:80dccd8b17082d71e4d786bea2b74d64328ee8679fb8ce775af5aca968a0196c
3
+ size 46555870
subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/03-Responsive Design Metodologías y Prácticas Esenciales.vtt ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ WEBVTT
2
+
3
+ 00:00.000 --> 00:07.120
4
+ Hola, ahora que tienes claros los seis
5
+ conceptos básicos de la composición,
6
+
7
+ 00:07.120 --> 00:11.280
8
+ vamos a aprender a adaptarlos a diferentes
9
+ tamaños de pantalla por medio del uso del
10
+
11
+ 00:11.280 --> 00:16.520
12
+ responsive design o diseño responsivo.
13
+ ¿Pero qué es el responsive design? El responsive design es
14
+
15
+ 00:16.520 --> 00:21.520
16
+ una metodología de diseño que nos permite
17
+ crear diferentes diseños que sean adaptables a diferentes
18
+
19
+ 00:21.520 --> 00:27.720
20
+ tamaños de pantalla. ¿Cómo podemos
21
+ garantizar que nuestra aplicación sea responsive? Lo primero,
22
+
23
+ 00:27.720 --> 00:31.880
24
+ tenemos que empezar por dispositivos móviles.
25
+ Esto nos va a garantizar que vamos a partir
26
+
27
+ 00:31.880 --> 00:36.840
28
+ desde el contenido básico hasta el
29
+ contenido más complejo. Lo segundo, separar las capas
30
+
31
+ 00:36.840 --> 00:41.320
32
+ de contenido y funcionalidad. ¿Para qué
33
+ nos sirve esto? Esto nos sirve para garantizarle al usuario
34
+
35
+ 00:41.320 --> 00:46.560
36
+ el acceso a todo el contenido de nuestra
37
+ página sin tener que ejecutar scripts, de realizar ninguna
38
+
39
+ 00:46.560 --> 00:52.920
40
+ acción ni de ejecutar animaciones complejas.
41
+ El tercero, utiliza sistemas de grillas y columnas.
42
+
43
+ 00:52.920 --> 00:57.920
44
+ ¿Para qué nos sirve esto? Las columnas son
45
+ una referencia que tenemos en nuestro layout total de
46
+
47
+ 00:57.920 --> 01:02.840
48
+ la página y nos sirve para ir mirando el
49
+ ancho de nuestra página. De esta manera va a ser mucho más
50
+
51
+ 01:02.840 --> 01:11.480
52
+ fácil adaptar los contenidos como imágenes,
53
+ textos, videos, etc. Hay distintas metodologías para hacer
54
+
55
+ 01:11.480 --> 01:17.680
56
+ responsive design. La primera es la mejora
57
+ progresiva o progressive enhancement. ¿Qué es
58
+
59
+ 01:17.680 --> 01:22.840
60
+ esta metodología? Esta metodología es la
61
+ que yo les recomiendo, en la que se parte de una base
62
+
63
+ 01:22.840 --> 01:28.360
64
+ sólida en donde tenemos los elementos
65
+ esenciales y básicos de nuestra aplicación y luego le vamos
66
+
67
+ 01:28.360 --> 01:33.960
68
+ añadiendo capas de complejidad. Esto nos
69
+ permite garantizar que los usuarios con baja memoria o con
70
+
71
+ 01:33.960 --> 01:38.640
72
+ un dispositivo muy pequeño puedan acceder
73
+ al contenido y los usuarios que tengan mejores
74
+
75
+ 01:38.640 --> 01:42.800
76
+ dispositivos o una pantalla más grande
77
+ puedan ver el mismo contenido pero con una experiencia
78
+
79
+ 01:42.800 --> 01:49.760
80
+ más enriquecida como con animaciones y
81
+ otras funcionalidades. Acá vemos un ejemplo de mejora
82
+
83
+ 01:49.760 --> 01:56.360
84
+ progresiva. Entonces vemos cómo tenemos en
85
+ el tamaño más pequeño una fresa, en la tablet
86
+
87
+ 01:56.360 --> 02:01.240
88
+ tenemos una fresa y una naranja y en
89
+ desktop tenemos ya todas las frutas. Estamos transmitiendo
90
+
91
+ 02:01.240 --> 02:06.400
92
+ exactamente el mismo concepto pero estamos
93
+ garantizando que cada tamaño de pantalla tenga
94
+
95
+ 02:06.400 --> 02:13.840
96
+ el contenido básico sin sobrecargar la
97
+ aplicación. La siguiente metodología es la degradación
98
+
99
+ 02:13.840 --> 02:19.480
100
+ agraciada o graceful degradation. Esta es
101
+ todo lo contrario. En esta partimos de una versión full y
102
+
103
+ 02:19.480 --> 02:24.560
104
+ completa en donde tenemos todas las
105
+ animaciones, todos los contenidos, todas las imágenes y empezamos
106
+
107
+ 02:24.560 --> 02:30.080
108
+ a quitarle capas de complejidad para que
109
+ se adapte a tablet, a mobile y para que se adapte a dispositivos
110
+
111
+ 02:30.080 --> 02:34.840
112
+ que son más lentos. Esta se puede
113
+ recomendar en escenarios específicos como cuando estamos
114
+
115
+ 02:34.840 --> 02:40.360
116
+ adaptando una página que ya está hecha,
117
+ que no estamos haciendo desde ceros, que por alguna razón
118
+
119
+ 02:40.360 --> 02:45.840
120
+ se hizo primero la versión desktop y
121
+ tenemos que adaptarla a tablet y a mobile. Esta metodología
122
+
123
+ 02:45.840 --> 02:51.920
124
+ es válida para esos casos pero como les
125
+ digo para mí lo mejor es empezar siempre desde mobile.
126
+
127
+ 02:53.200 --> 02:57.600
128
+ Acá vemos un ejemplo de degradación agraciada,
129
+ entonces vemos cómo tenemos nuestra versión full
130
+
131
+ 02:57.600 --> 03:02.720
132
+ en desktop con todas las frutas, luego en
133
+ tablet pues se alcanza a adaptar, todavía alcanzamos a
134
+
135
+ 03:02.720 --> 03:08.040
136
+ tener las cuatro frutas, pero cuando vamos
137
+ a ir a mobile ya empezamos a tener inconvenientes porque
138
+
139
+ 03:08.040 --> 03:13.160
140
+ se empieza a salir de nuestro contenedor.
141
+ Hay ciertas maneras de hacerlo eficiente como cambiando
142
+
143
+ 03:13.160 --> 03:18.360
144
+ el orden o la distribución de nuestros
145
+ elementos y puede funcionar pero a veces es muy complicado
146
+
147
+ 03:18.360 --> 03:22.920
148
+ entonces yo te recomiendo siempre utilizar
149
+ Mobile First o Progressive Enhancement.
150
+
151
+ 03:24.360 --> 03:29.480
152
+ Acá vemos un ejemplo y es que estas
153
+ metodologías no solamente aplican al diseño sino también al
154
+
155
+ 03:29.480 --> 03:35.480
156
+ código, entonces vemos como por ejemplo en
157
+ diseño primero partimos de un contenido de nuestros datos,
158
+
159
+ 03:35.480 --> 03:40.680
160
+ luego hacemos los wireframes que son bocetos,
161
+ luego hacemos nuestro diseño visual y finalmente
162
+
163
+ 03:40.680 --> 03:45.960
164
+ añadimos las animaciones. Lo mismo pasa
165
+ cuando vamos a programar, tú siempre vas a empezar desde
166
+
167
+ 03:45.960 --> 03:51.600
168
+ los datos, después vas a hacer el markup,
169
+ la maquetación básica con HTML, después añade los
170
+
171
+ 03:51.600 --> 03:56.920
172
+ estilos con CSS y por último el JavaScript.
173
+ ¿Qué pasa si empezamos por JavaScript primero? Que
174
+
175
+ 03:56.920 --> 04:01.920
176
+ nuestra aplicación va a estar basada en
177
+ scripts y no en web semántica que es lo ideal.
178
+
179
+ 04:04.200 --> 04:09.280
180
+ Ahora vamos a aprender accesibilidad de
181
+ diseño que es otro de los conceptos importantes que
182
+
183
+ 04:09.280 --> 04:12.240
184
+ vamos a tener en cuenta, entonces quédate
185
+ atento a la siguiente clase.
186
+
subir/Curso de Diseño para Developers/02-Entender los Fundamentos del diseño/03-Resumen.html ADDED
The diff for this file is too large to render. See raw diff