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