2999a commited on
Commit
f81c5d1
·
verified ·
1 Parent(s): f8047b4

Upload batch from C CLI

Browse files

Uploaded via hf-downloader C client

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +26 -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
@@ -203,3 +203,29 @@ subir/Curso[[:space:]]de[[:space:]]C[[:space:]]Básico/03-Conceptos[[:space:]]b
203
  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
204
  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
205
  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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  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
204
  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
205
  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
206
+ 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
207
+ 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
208
+ 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
209
+ 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
210
+ 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
211
+ 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
212
+ 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
213
+ 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
214
+ 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
215
+ 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
216
+ 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
217
+ 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
218
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/02-Entender[[:space:]]los[[:space:]]Fundamentos[[:space:]]del[[:space:]]diseño/04-Accesibilidad[[:space:]]Web[[:space:]]Mejores[[:space:]]Prácticas[[:space:]]y[[:space:]]Consejos[[:space:]]Básicos.mp4 filter=lfs diff=lfs merge=lfs -text
219
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/02-Entender[[:space:]]los[[:space:]]Fundamentos[[:space:]]del[[:space:]]diseño/05-Creación[[:space:]]de[[:space:]]un[[:space:]]Brief[[:space:]]para[[:space:]]Aplicaciones[[:space:]]de[[:space:]]Restaurantes.mp4 filter=lfs diff=lfs merge=lfs -text
220
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/03-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]Experiencia[[:space:]]de[[:space:]]usuario/01-Diseño[[:space:]]UX[[:space:]]Creación[[:space:]]de[[:space:]]Prototipos[[:space:]]y[[:space:]]Flujos[[:space:]]de[[:space:]]Usuario.mp4 filter=lfs diff=lfs merge=lfs -text
221
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/03-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]Experiencia[[:space:]]de[[:space:]]usuario/02-Creación[[:space:]]de[[:space:]]Diagramas[[:space:]]de[[:space:]]Flujo[[:space:]]para[[:space:]]Diseño[[:space:]]de[[:space:]]Aplicaciones.mp4 filter=lfs diff=lfs merge=lfs -text
222
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/03-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]Experiencia[[:space:]]de[[:space:]]usuario/03-Creación[[:space:]]de[[:space:]]Wireframes[[:space:]]para[[:space:]]Diseño[[:space:]]UX[[:space:]]Básico.mp4 filter=lfs diff=lfs merge=lfs -text
223
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/04-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]de[[:space:]]interfaz[[:space:]]de[[:space:]]usuario/01-Diseño[[:space:]]UI[[:space:]]Estilos[[:space:]]Visuales[[:space:]]y[[:space:]]Diferencias[[:space:]]con[[:space:]]UX.mp4 filter=lfs diff=lfs merge=lfs -text
224
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/04-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]de[[:space:]]interfaz[[:space:]]de[[:space:]]usuario/02-Creación[[:space:]]de[[:space:]]Mood[[:space:]]Boards[[:space:]]para[[:space:]]Aplicaciones[[:space:]]Visuales.mp4 filter=lfs diff=lfs merge=lfs -text
225
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/04-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]de[[:space:]]interfaz[[:space:]]de[[:space:]]usuario/03-Psicología[[:space:]]del[[:space:]]Color[[:space:]]y[[:space:]]su[[:space:]]Aplicación[[:space:]]en[[:space:]]Diseño[[:space:]]Web.mp4 filter=lfs diff=lfs merge=lfs -text
226
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/04-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]de[[:space:]]interfaz[[:space:]]de[[:space:]]usuario/04-Creación[[:space:]]de[[:space:]]Paletas[[:space:]]de[[:space:]]Color[[:space:]]para[[:space:]]Aplicaciones.mp4 filter=lfs diff=lfs merge=lfs -text
227
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/04-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]de[[:space:]]interfaz[[:space:]]de[[:space:]]usuario/05-Selección[[:space:]]y[[:space:]]Uso[[:space:]]de[[:space:]]Tipografías[[:space:]]en[[:space:]]Diseño[[:space:]]Web.mp4 filter=lfs diff=lfs merge=lfs -text
228
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/04-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]de[[:space:]]interfaz[[:space:]]de[[:space:]]usuario/06-Creación[[:space:]]de[[:space:]]Grillas[[:space:]]Responsivas[[:space:]]con[[:space:]]CSS[[:space:]]Grid[[:space:]]y[[:space:]]SASS.mp4 filter=lfs diff=lfs merge=lfs -text
229
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/04-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]de[[:space:]]interfaz[[:space:]]de[[:space:]]usuario/07-Desarrollo[[:space:]]de[[:space:]]Aplicaciones[[:space:]]Web[[:space:]]con[[:space:]]Componentes[[:space:]]Reutilizables.mp4 filter=lfs diff=lfs merge=lfs -text
230
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/04-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]de[[:space:]]interfaz[[:space:]]de[[:space:]]usuario/08-Implementación[[:space:]]de[[:space:]]Themes[[:space:]]en[[:space:]]Aplicaciones[[:space:]]Web[[:space:]]con[[:space:]]CSS[[:space:]]y[[:space:]]SAS.mp4 filter=lfs diff=lfs merge=lfs -text
231
+ subir/Curso[[:space:]]de[[:space:]]Diseño[[:space:]]para[[:space:]]Developers/04-Aprender[[:space:]]sobre[[:space:]]Diseño[[:space:]]de[[:space:]]interfaz[[:space:]]de[[:space:]]usuario/09-Selección[[:space:]]y[[:space:]]uso[[:space:]]adecuado[[:space:]]de[[:space:]]imágenes[[:space:]]para[[:space:]]la[[:space:]]web.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