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 +11 -0
- subir/Curso de Control de Flujo en C/04-Uso de las instrucciones break y continue/03-Resumen.html +0 -0
- subir/Curso de Control de Flujo en C/05-Cierre/01-Ejercicios Prácticos de Programación para Reforzar Conocimientos.mhtml +0 -0
- subir/Curso de Control de Flujo en C/05-Cierre/02-Estructuras de Control de Flujo en C.mp4 +3 -0
- subir/Curso de Control de Flujo en C/05-Cierre/02-Estructuras de Control de Flujo en C.vtt +248 -0
- subir/Curso de Control de Flujo en C/05-Cierre/02-Lecturas recomendadas.txt +4 -0
- subir/Curso de Control de Flujo en C/05-Cierre/02-Resumen.html +0 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/01-Funciones en C Declaración y Uso Práctico.mp4 +3 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/01-Funciones en C Declaración y Uso Práctico.vtt +166 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/01-Lecturas recomendadas.txt +2 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/01-Resumen.html +0 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/02-Funciones en C Creación y Uso para Potencias de Enteros.mp4 +3 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/02-Funciones en C Creación y Uso para Potencias de Enteros.vtt +422 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/02-Resumen.html +0 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/02-function_0343da15-da02-412b-8715-bf15e00c974b.c +11 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/03-Creación y uso de funciones en lenguaje C.mp4 +3 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/03-Creación y uso de funciones en lenguaje C.vtt +662 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/03-Lecturas recomendadas.txt +1 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/03-powerofintegers_a2741312-e4b5-409e-b3ec-6a2e15a430b8.c +26 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/04-Resumen.html +0 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/04-Tipos de Funciones en C Argumentos y Valores de Retorno.mp4 +3 -0
- subir/Curso de Funciones en C/01-Introducción a las funciones en C/04-Tipos de Funciones en C Argumentos y Valores de Retorno.vtt +650 -0
- subir/Curso de Funciones en C/02-Manejo de funciones en C/01-Funciones en C Uso de void y manejo de return types.mp4 +3 -0
- subir/Curso de Funciones en C/02-Manejo de funciones en C/01-Funciones en C Uso de void y manejo de return types.vtt +561 -0
- subir/Curso de Funciones en C/02-Manejo de funciones en C/01-Resumen.html +0 -0
- subir/Curso de Funciones en C/02-Manejo de funciones en C/01-add_c0320bcc-2842-4e74-a4a7-11798f414800.c +16 -0
- subir/Curso de Funciones en C/02-Manejo de funciones en C/02-Lecturas recomendadas.txt +1 -0
- subir/Curso de Funciones en C/02-Manejo de funciones en C/02-Paso de Argumentos por Valor en C Conceptos y Ejemplos Prácticos.mp4 +3 -0
- subir/Curso de Funciones en C/02-Manejo de funciones en C/02-Paso de Argumentos por Valor en C Conceptos y Ejemplos Prácticos.vtt +791 -0
- subir/Curso de Funciones en C/02-Manejo de funciones en C/02-Resumen.html +0 -0
- subir/Curso de Funciones en C/02-Manejo de funciones en C/02-powerofintegers2_f852e42a-a15b-4834-a79d-f2ca262c7f5b.c +26 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-Bibliotecas estándar del lenguaje C y sus funciones principales.mp4 +3 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-Bibliotecas estándar del lenguaje C y sus funciones principales.vtt +713 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-Lecturas recomendadas.txt +2 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-Resumen.html +0 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-libraries_52ae0350-75bf-4e6b-a5d7-1b57fd7d6a03.c +11 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-Funciones matemáticas básicas en C con la biblioteca math.mp4 +3 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-Funciones matemáticas básicas en C con la biblioteca math.vtt +493 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-Lecturas recomendadas.txt +1 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-Resumen.html +0 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-mathdemo_4d517300-d5e9-4437-82ad-b7fdbe0bc464.c +16 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-Lecturas recomendadas.txt +1 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-Manejo de Strings en C Funciones y Operaciones Básicas.mp4 +3 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-Manejo de Strings en C Funciones y Operaciones Básicas.vtt +722 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-Resumen.html +0 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-strcmp_249b729e-6242-41e0-83ce-fcbc7d8c1537.c +27 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/04-Manejo de tiempo en C con la biblioteca timeh.mp4 +3 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/04-Manejo de tiempo en C con la biblioteca timeh.vtt +718 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/04-time_b57bea89-545a-4dd2-aa58-9ee4ebf6dbb8.c +12 -0
- subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/04-timediff_73766468-af49-4500-94ef-07de638bb8c2.c +14 -0
.gitattributes
CHANGED
|
@@ -118,3 +118,14 @@ subir/Curso[[:space:]]de[[:space:]]Control[[:space:]]de[[:space:]]Flujo[[:space:
|
|
| 118 |
subir/Curso[[:space:]]de[[:space:]]Control[[:space:]]de[[:space:]]Flujo[[:space:]]en[[:space:]]C/04-Uso[[:space:]]de[[:space:]]las[[:space:]]instrucciones[[:space:]]break[[:space:]]y[[:space:]]continue/01-Uso[[:space:]]de[[:space:]]la[[:space:]]Instrucción[[:space:]]Break[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 119 |
subir/Curso[[:space:]]de[[:space:]]Control[[:space:]]de[[:space:]]Flujo[[:space:]]en[[:space:]]C/04-Uso[[:space:]]de[[:space:]]las[[:space:]]instrucciones[[:space:]]break[[:space:]]y[[:space:]]continue/02-Uso[[:space:]]del[[:space:]]Continue[[:space:]]en[[:space:]]Bucles[[:space:]]de[[:space:]]Programación.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 120 |
subir/Curso[[:space:]]de[[:space:]]Control[[:space:]]de[[:space:]]Flujo[[:space:]]en[[:space:]]C/04-Uso[[:space:]]de[[:space:]]las[[:space:]]instrucciones[[:space:]]break[[:space:]]y[[:space:]]continue/03-Uso[[:space:]]seguro[[:space:]]de[[:space:]]GOTO[[:space:]]en[[:space:]]manejo[[:space:]]de[[:space:]]errores[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
subir/Curso[[:space:]]de[[:space:]]Control[[:space:]]de[[:space:]]Flujo[[:space:]]en[[:space:]]C/04-Uso[[:space:]]de[[:space:]]las[[:space:]]instrucciones[[:space:]]break[[:space:]]y[[:space:]]continue/01-Uso[[:space:]]de[[:space:]]la[[:space:]]Instrucción[[:space:]]Break[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 119 |
subir/Curso[[:space:]]de[[:space:]]Control[[:space:]]de[[:space:]]Flujo[[:space:]]en[[:space:]]C/04-Uso[[:space:]]de[[:space:]]las[[:space:]]instrucciones[[:space:]]break[[:space:]]y[[:space:]]continue/02-Uso[[:space:]]del[[:space:]]Continue[[:space:]]en[[:space:]]Bucles[[:space:]]de[[:space:]]Programación.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 120 |
subir/Curso[[:space:]]de[[:space:]]Control[[:space:]]de[[:space:]]Flujo[[:space:]]en[[:space:]]C/04-Uso[[:space:]]de[[:space:]]las[[:space:]]instrucciones[[:space:]]break[[:space:]]y[[:space:]]continue/03-Uso[[:space:]]seguro[[:space:]]de[[:space:]]GOTO[[:space:]]en[[:space:]]manejo[[:space:]]de[[:space:]]errores[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 121 |
+
subir/Curso[[:space:]]de[[:space:]]Control[[:space:]]de[[:space:]]Flujo[[:space:]]en[[:space:]]C/05-Cierre/02-Estructuras[[:space:]]de[[:space:]]Control[[:space:]]de[[:space:]]Flujo[[:space:]]en[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 122 |
+
subir/Curso[[:space:]]de[[:space:]]Funciones[[:space:]]en[[:space:]]C/01-Introducción[[:space:]]a[[:space:]]las[[:space:]]funciones[[:space:]]en[[:space:]]C/01-Funciones[[:space:]]en[[:space:]]C[[:space:]]Declaración[[:space:]]y[[:space:]]Uso[[:space:]]Práctico.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 123 |
+
subir/Curso[[:space:]]de[[:space:]]Funciones[[:space:]]en[[:space:]]C/01-Introducción[[:space:]]a[[:space:]]las[[:space:]]funciones[[:space:]]en[[:space:]]C/02-Funciones[[:space:]]en[[:space:]]C[[:space:]]Creación[[:space:]]y[[:space:]]Uso[[:space:]]para[[:space:]]Potencias[[:space:]]de[[:space:]]Enteros.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 124 |
+
subir/Curso[[:space:]]de[[:space:]]Funciones[[:space:]]en[[:space:]]C/01-Introducción[[:space:]]a[[:space:]]las[[:space:]]funciones[[:space:]]en[[:space:]]C/03-Creación[[:space:]]y[[:space:]]uso[[:space:]]de[[:space:]]funciones[[:space:]]en[[:space:]]lenguaje[[:space:]]C.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 125 |
+
subir/Curso[[:space:]]de[[:space:]]Funciones[[:space:]]en[[:space:]]C/01-Introducción[[:space:]]a[[:space:]]las[[:space:]]funciones[[:space:]]en[[:space:]]C/04-Tipos[[:space:]]de[[:space:]]Funciones[[:space:]]en[[:space:]]C[[:space:]]Argumentos[[:space:]]y[[:space:]]Valores[[:space:]]de[[:space:]]Retorno.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 126 |
+
subir/Curso[[:space:]]de[[:space:]]Funciones[[:space:]]en[[:space:]]C/02-Manejo[[:space:]]de[[:space:]]funciones[[:space:]]en[[:space:]]C/01-Funciones[[:space:]]en[[:space:]]C[[:space:]]Uso[[:space:]]de[[:space:]]void[[:space:]]y[[:space:]]manejo[[:space:]]de[[:space:]]return[[:space:]]types.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 127 |
+
subir/Curso[[:space:]]de[[:space:]]Funciones[[:space:]]en[[:space:]]C/02-Manejo[[:space:]]de[[:space:]]funciones[[:space:]]en[[:space:]]C/02-Paso[[:space:]]de[[:space:]]Argumentos[[:space:]]por[[:space:]]Valor[[:space:]]en[[:space:]]C[[:space:]]Conceptos[[:space:]]y[[:space:]]Ejemplos[[:space:]]Prácticos.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 128 |
+
subir/Curso[[:space:]]de[[:space:]]Funciones[[:space:]]en[[:space:]]C/03-Bibliotecas[[:space:]]estándar[[:space:]]de[[:space:]]funciones/01-Bibliotecas[[:space:]]estándar[[:space:]]del[[:space:]]lenguaje[[:space:]]C[[:space:]]y[[:space:]]sus[[:space:]]funciones[[:space:]]principales.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 129 |
+
subir/Curso[[:space:]]de[[:space:]]Funciones[[:space:]]en[[:space:]]C/03-Bibliotecas[[:space:]]estándar[[:space:]]de[[:space:]]funciones/02-Funciones[[:space:]]matemáticas[[:space:]]básicas[[:space:]]en[[:space:]]C[[:space:]]con[[:space:]]la[[:space:]]biblioteca[[:space:]]math.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 130 |
+
subir/Curso[[:space:]]de[[:space:]]Funciones[[:space:]]en[[:space:]]C/03-Bibliotecas[[:space:]]estándar[[:space:]]de[[:space:]]funciones/03-Manejo[[:space:]]de[[:space:]]Strings[[:space:]]en[[:space:]]C[[:space:]]Funciones[[:space:]]y[[:space:]]Operaciones[[:space:]]Básicas.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 131 |
+
subir/Curso[[:space:]]de[[:space:]]Funciones[[:space:]]en[[:space:]]C/03-Bibliotecas[[:space:]]estándar[[:space:]]de[[:space:]]funciones/04-Manejo[[:space:]]de[[:space:]]tiempo[[:space:]]en[[:space:]]C[[:space:]]con[[:space:]]la[[:space:]]biblioteca[[:space:]]timeh.mp4 filter=lfs diff=lfs merge=lfs -text
|
subir/Curso de Control de Flujo en C/04-Uso de las instrucciones break y continue/03-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
subir/Curso de Control de Flujo en C/05-Cierre/01-Ejercicios Prácticos de Programación para Reforzar Conocimientos.mhtml
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
subir/Curso de Control de Flujo en C/05-Cierre/02-Estructuras de Control de Flujo en C.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dfe819d4657c520034c0436e980e4e961e195307ac6b0d958aa76f3655d0e088
|
| 3 |
+
size 35403716
|
subir/Curso de Control de Flujo en C/05-Cierre/02-Estructuras de Control de Flujo en C.vtt
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:03.580 --> 00:06.801
|
| 4 |
+
¡Hey! Hemos llegado al final
|
| 5 |
+
de nuestro curso de C,
|
| 6 |
+
|
| 7 |
+
00:06.927 --> 00:10.909
|
| 8 |
+
en donde nos enfocamos
|
| 9 |
+
en las estructuras de control de flujo.
|
| 10 |
+
|
| 11 |
+
00:11.035 --> 00:14.339
|
| 12 |
+
Recuerda que esta serie de cursos
|
| 13 |
+
que estás tomando del lenguaje C
|
| 14 |
+
|
| 15 |
+
00:14.465 --> 00:18.074
|
| 16 |
+
existen para que tal cual aprendas
|
| 17 |
+
el lenguaje.
|
| 18 |
+
|
| 19 |
+
00:18.200 --> 00:22.600
|
| 20 |
+
Más adelante se viene el curso
|
| 21 |
+
de estructuras de datos,
|
| 22 |
+
|
| 23 |
+
00:22.600 --> 00:24.365
|
| 24 |
+
en donde hablaremos de los arrays,
|
| 25 |
+
|
| 26 |
+
00:24.491 --> 00:27.334
|
| 27 |
+
hablaremos de otros elementos
|
| 28 |
+
específicos de C,
|
| 29 |
+
|
| 30 |
+
00:27.460 --> 00:29.865
|
| 31 |
+
como por ejemplo la instrucción struct,
|
| 32 |
+
|
| 33 |
+
00:30.025 --> 00:32.916
|
| 34 |
+
y vamos a aprender muchísimo más
|
| 35 |
+
de este lenguaje.
|
| 36 |
+
|
| 37 |
+
00:33.042 --> 00:36.480
|
| 38 |
+
También más adelante viene el curso
|
| 39 |
+
de funciones en C,
|
| 40 |
+
|
| 41 |
+
00:36.639 --> 00:39.200
|
| 42 |
+
de hecho ese es el siguiente curso
|
| 43 |
+
a este que acabamos de grabar.
|
| 44 |
+
|
| 45 |
+
00:39.342 --> 00:41.760
|
| 46 |
+
Ahí vamos a entender todo
|
| 47 |
+
sobre el manejo de funciones
|
| 48 |
+
|
| 49 |
+
00:41.760 --> 00:43.597
|
| 50 |
+
en este maravilloso lenguaje,
|
| 51 |
+
|
| 52 |
+
00:43.723 --> 00:48.085
|
| 53 |
+
y con esto vamos a ir logrando dominar
|
| 54 |
+
este lenguaje poco a poco.
|
| 55 |
+
|
| 56 |
+
00:48.391 --> 00:50.440
|
| 57 |
+
Cuéntame en los comentarios
|
| 58 |
+
qué te están pareciendo
|
| 59 |
+
|
| 60 |
+
00:50.440 --> 00:52.640
|
| 61 |
+
estos cursos súper cortos y enfocados.
|
| 62 |
+
|
| 63 |
+
00:52.858 --> 00:55.640
|
| 64 |
+
A mí me encantan porque, o sea,
|
| 65 |
+
yo como programador,
|
| 66 |
+
|
| 67 |
+
00:55.848 --> 00:59.320
|
| 68 |
+
me encantaba tener lugares de referencia
|
| 69 |
+
a algo específico,
|
| 70 |
+
|
| 71 |
+
00:59.607 --> 01:02.320
|
| 72 |
+
y justo eso es lo que te estamos dando
|
| 73 |
+
en este tipo de cursos.
|
| 74 |
+
|
| 75 |
+
01:02.651 --> 01:06.781
|
| 76 |
+
Si tienes dudas de cómo funciona el IF,
|
| 77 |
+
el WHILE, el DO, etc.,
|
| 78 |
+
|
| 79 |
+
01:06.907 --> 01:09.252
|
| 80 |
+
pues simplemente te vienes a este curso,
|
| 81 |
+
|
| 82 |
+
01:09.378 --> 01:11.682
|
| 83 |
+
tomas las clases que necesitas y repasas,
|
| 84 |
+
|
| 85 |
+
01:11.808 --> 01:15.421
|
| 86 |
+
no te tienes que preocupar además
|
| 87 |
+
de que haces el examen
|
| 88 |
+
|
| 89 |
+
01:15.547 --> 01:18.365
|
| 90 |
+
de solamente las partes
|
| 91 |
+
de control de flujo.
|
| 92 |
+
|
| 93 |
+
01:18.491 --> 01:21.828
|
| 94 |
+
Con esto garantizamos que estás
|
| 95 |
+
aprendiendo algo bien,
|
| 96 |
+
|
| 97 |
+
01:21.954 --> 01:23.430
|
| 98 |
+
estás aprendiendo algo a fondo,
|
| 99 |
+
|
| 100 |
+
01:23.556 --> 01:26.666
|
| 101 |
+
en cada parte de los cursos
|
| 102 |
+
del lenguaje C.
|
| 103 |
+
|
| 104 |
+
01:26.926 --> 01:29.717
|
| 105 |
+
Yo soy Ricardo Celis,
|
| 106 |
+
fui tu profesor en este curso,
|
| 107 |
+
|
| 108 |
+
01:29.843 --> 01:32.341
|
| 109 |
+
seguiré siendo tu profesor
|
| 110 |
+
en el resto de cursos de C,
|
| 111 |
+
|
| 112 |
+
01:32.467 --> 01:34.420
|
| 113 |
+
estoy muy emocionado por verte allá.
|
| 114 |
+
|
| 115 |
+
01:34.546 --> 01:36.892
|
| 116 |
+
La verdad es que C es un lenguaje
|
| 117 |
+
maravilloso
|
| 118 |
+
|
| 119 |
+
01:37.018 --> 01:42.418
|
| 120 |
+
y obviamente luego cuando termines todos
|
| 121 |
+
estos cursos del lenguaje C,
|
| 122 |
+
|
| 123 |
+
01:42.544 --> 01:44.777
|
| 124 |
+
vas a tener un mundo de posibilidades
|
| 125 |
+
para hacer.
|
| 126 |
+
|
| 127 |
+
01:44.903 --> 01:47.474
|
| 128 |
+
De hecho, una vez termines
|
| 129 |
+
estos cursos de C,
|
| 130 |
+
|
| 131 |
+
01:47.600 --> 01:49.984
|
| 132 |
+
sería genial que me alcanzaras
|
| 133 |
+
en los cursos de Arduino,
|
| 134 |
+
|
| 135 |
+
01:50.110 --> 01:51.761
|
| 136 |
+
en cursos de microcontroladores,
|
| 137 |
+
|
| 138 |
+
01:51.887 --> 01:54.367
|
| 139 |
+
y por qué no, cuéntame si te gustaría
|
| 140 |
+
aprender robótica
|
| 141 |
+
|
| 142 |
+
01:54.493 --> 01:58.135
|
| 143 |
+
para que hagamos cursos de eso,
|
| 144 |
+
si vemos que hay suficiente interés
|
| 145 |
+
|
| 146 |
+
01:58.261 --> 02:01.360
|
| 147 |
+
de parte de todas
|
| 148 |
+
y todos nuestros estudiantes.
|
| 149 |
+
|
| 150 |
+
02:01.609 --> 02:04.080
|
| 151 |
+
Como siempre,
|
| 152 |
+
te invito a que tomes el examen,
|
| 153 |
+
|
| 154 |
+
02:04.080 --> 02:05.520
|
| 155 |
+
a que repases mucho,
|
| 156 |
+
|
| 157 |
+
02:05.520 --> 02:07.520
|
| 158 |
+
recuerda que estos cursos de lenguajes
|
| 159 |
+
|
| 160 |
+
02:07.520 --> 02:09.080
|
| 161 |
+
que estamos haciendo ahora en Platzi,
|
| 162 |
+
|
| 163 |
+
02:09.318 --> 02:11.640
|
| 164 |
+
existen para que los uses
|
| 165 |
+
como una referencia,
|
| 166 |
+
|
| 167 |
+
02:12.002 --> 02:13.680
|
| 168 |
+
tanto para cuando aprendas
|
| 169 |
+
el lenguaje
|
| 170 |
+
|
| 171 |
+
02:13.680 --> 02:16.680
|
| 172 |
+
como para cuando quieras aplicarlo
|
| 173 |
+
o tengas dudas.
|
| 174 |
+
|
| 175 |
+
02:16.940 --> 02:19.560
|
| 176 |
+
Recuerda que tienes que tomar
|
| 177 |
+
toda nuestra carrera
|
| 178 |
+
|
| 179 |
+
02:19.560 --> 02:20.760
|
| 180 |
+
de Computer Science,
|
| 181 |
+
|
| 182 |
+
02:20.760 --> 02:24.440
|
| 183 |
+
en donde ya aprendes más las bases
|
| 184 |
+
de la computación,
|
| 185 |
+
|
| 186 |
+
02:24.440 --> 02:27.720
|
| 187 |
+
tenemos los cursos de pensamiento
|
| 188 |
+
computacional con Python,
|
| 189 |
+
|
| 190 |
+
02:27.720 --> 02:30.640
|
| 191 |
+
es una serie de cuatro cursos
|
| 192 |
+
que son excelentes
|
| 193 |
+
|
| 194 |
+
02:30.640 --> 02:34.760
|
| 195 |
+
y son los primeritos en nuestra ruta
|
| 196 |
+
de Computer Science
|
| 197 |
+
|
| 198 |
+
02:34.760 --> 02:36.400
|
| 199 |
+
que justamente existen
|
| 200 |
+
|
| 201 |
+
02:36.400 --> 02:40.360
|
| 202 |
+
para que puedas tener la capacidad
|
| 203 |
+
de ser una persona
|
| 204 |
+
|
| 205 |
+
02:40.360 --> 02:43.000
|
| 206 |
+
que no tiene que aprender
|
| 207 |
+
a hacer cosas puntuales
|
| 208 |
+
|
| 209 |
+
02:43.000 --> 02:44.080
|
| 210 |
+
y seguir tutoriales,
|
| 211 |
+
|
| 212 |
+
02:44.080 --> 02:47.000
|
| 213 |
+
sino que seas una persona que domina
|
| 214 |
+
varios lenguajes,
|
| 215 |
+
|
| 216 |
+
02:47.000 --> 02:49.120
|
| 217 |
+
entiende cómo funciona la computación,
|
| 218 |
+
|
| 219 |
+
02:49.120 --> 02:51.120
|
| 220 |
+
sabe programar no importa qué
|
| 221 |
+
|
| 222 |
+
02:51.120 --> 02:53.120
|
| 223 |
+
y eso te va a separar del resto.
|
| 224 |
+
|
| 225 |
+
02:53.447 --> 02:55.827
|
| 226 |
+
Estoy muy feliz de que hayas terminado
|
| 227 |
+
este curso,
|
| 228 |
+
|
| 229 |
+
02:55.953 --> 02:59.000
|
| 230 |
+
recuerda mi Twitter es @CelisMx,
|
| 231 |
+
|
| 232 |
+
02:59.000 --> 03:01.600
|
| 233 |
+
ahí me puedes presumir tu diploma
|
| 234 |
+
cuando lo termines,
|
| 235 |
+
|
| 236 |
+
03:01.840 --> 03:04.440
|
| 237 |
+
a mí me encantará darle un like,
|
| 238 |
+
un retweet, etcétera.
|
| 239 |
+
|
| 240 |
+
03:04.657 --> 03:06.360
|
| 241 |
+
También si llegas a tener dudas,
|
| 242 |
+
|
| 243 |
+
03:06.360 --> 03:08.714
|
| 244 |
+
mándame un tweet,
|
| 245 |
+
yo feliz de la vida te ayudo
|
| 246 |
+
|
| 247 |
+
03:08.993 --> 03:14.840
|
| 248 |
+
y sin más, nos vemos en el próximo curso.
|
subir/Curso de Control de Flujo en C/05-Cierre/02-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
https://platzi.com/clases/python-cs/
|
| 2 |
+
https://platzi.com/clases/poo-python/
|
| 3 |
+
https://platzi.com/clases/programacion-estocastica/
|
| 4 |
+
https://platzi.com/clases/probabilistica/
|
subir/Curso de Control de Flujo en C/05-Cierre/02-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/01-Funciones en C Declaración y Uso Práctico.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ec237b731ef4db733b1e1415983a080c13fd69b182f6a7bc6eca3c3a6231cdb3
|
| 3 |
+
size 24742302
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/01-Funciones en C Declaración y Uso Práctico.vtt
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:02.893 --> 00:05.324
|
| 4 |
+
¡Hey! Hola, bienvenida o bienvenido
|
| 5 |
+
|
| 6 |
+
00:05.450 --> 00:07.999
|
| 7 |
+
a este nuevo curso de programación en C.
|
| 8 |
+
|
| 9 |
+
00:08.125 --> 00:09.958
|
| 10 |
+
Recuerda que este es el tercer curso
|
| 11 |
+
|
| 12 |
+
00:10.083 --> 00:12.280
|
| 13 |
+
de la ruta de cursos
|
| 14 |
+
de este increíble lenguaje
|
| 15 |
+
|
| 16 |
+
00:12.280 --> 00:16.280
|
| 17 |
+
que estoy haciendo para ti aquí en Platzi
|
| 18 |
+
y que espero que vayas tomando y que vayas
|
| 19 |
+
|
| 20 |
+
00:16.280 --> 00:17.940
|
| 21 |
+
aprendiendo muchísimo.
|
| 22 |
+
|
| 23 |
+
00:18.066 --> 00:20.681
|
| 24 |
+
La idea de dividir
|
| 25 |
+
los lenguajes de programación
|
| 26 |
+
|
| 27 |
+
00:20.807 --> 00:23.785
|
| 28 |
+
en varios cursos cortos
|
| 29 |
+
es que sea mucho más eficiente
|
| 30 |
+
|
| 31 |
+
00:23.910 --> 00:25.975
|
| 32 |
+
para ti el proceso de aprendizaje,
|
| 33 |
+
|
| 34 |
+
00:26.101 --> 00:29.158
|
| 35 |
+
de que vayas obteniendo
|
| 36 |
+
pequeños logros,
|
| 37 |
+
|
| 38 |
+
00:29.283 --> 00:31.840
|
| 39 |
+
como es en este caso
|
| 40 |
+
con el curso de introducción a C.
|
| 41 |
+
|
| 42 |
+
00:31.840 --> 00:34.342
|
| 43 |
+
Obtienes tu diploma,
|
| 44 |
+
obtienes conocimiento importantísimo,
|
| 45 |
+
|
| 46 |
+
00:34.468 --> 00:35.674
|
| 47 |
+
te va quedando todo claro.
|
| 48 |
+
|
| 49 |
+
00:35.800 --> 00:39.399
|
| 50 |
+
Luego te pasas al curso
|
| 51 |
+
de estructuras de control de flujo en C,
|
| 52 |
+
|
| 53 |
+
00:39.525 --> 00:41.840
|
| 54 |
+
en donde pues,
|
| 55 |
+
como su nombre lo dice,
|
| 56 |
+
|
| 57 |
+
00:41.840 --> 00:44.888
|
| 58 |
+
hablamos de if, while, for, de todo eso.
|
| 59 |
+
|
| 60 |
+
00:45.014 --> 00:48.520
|
| 61 |
+
También hablamos de continue,
|
| 62 |
+
de break y de más sentencias
|
| 63 |
+
|
| 64 |
+
00:48.520 --> 00:51.087
|
| 65 |
+
que te van a servir para
|
| 66 |
+
darle mucho dinamismo
|
| 67 |
+
|
| 68 |
+
00:51.212 --> 00:53.720
|
| 69 |
+
a tu programa
|
| 70 |
+
y que haga lo que tú quieras.
|
| 71 |
+
|
| 72 |
+
00:53.720 --> 00:56.158
|
| 73 |
+
En este tercer curso
|
| 74 |
+
te voy a explicar todo
|
| 75 |
+
|
| 76 |
+
00:56.283 --> 00:57.530
|
| 77 |
+
sobre las funciones en C.
|
| 78 |
+
|
| 79 |
+
00:57.656 --> 01:00.932
|
| 80 |
+
Vamos a entender cómo
|
| 81 |
+
puedes declarar tus propias funciones,
|
| 82 |
+
|
| 83 |
+
01:01.057 --> 01:03.600
|
| 84 |
+
cómo les puedes
|
| 85 |
+
pasar valores y obviamente
|
| 86 |
+
|
| 87 |
+
01:03.600 --> 01:08.220
|
| 88 |
+
vamos a explorar algunas de las funciones
|
| 89 |
+
más utilizadas que de hecho
|
| 90 |
+
|
| 91 |
+
01:08.220 --> 01:09.823
|
| 92 |
+
tienen que ver con la manipulación
|
| 93 |
+
de strings
|
| 94 |
+
|
| 95 |
+
01:09.949 --> 01:15.200
|
| 96 |
+
para hacer un par de ejemplos
|
| 97 |
+
de cómo puedes utilizarlas en tus códigos.
|
| 98 |
+
|
| 99 |
+
01:15.326 --> 01:19.320
|
| 100 |
+
Recuerda que este no es el final,
|
| 101 |
+
tenemos más temas de C que abordar,
|
| 102 |
+
|
| 103 |
+
01:19.320 --> 01:22.113
|
| 104 |
+
así que bueno, bienvenido a este curso
|
| 105 |
+
en donde ya,
|
| 106 |
+
|
| 107 |
+
01:22.239 --> 01:24.028
|
| 108 |
+
como te conté, aprenderás todo
|
| 109 |
+
|
| 110 |
+
01:24.154 --> 01:28.360
|
| 111 |
+
respecto a las funciones y espero
|
| 112 |
+
que me vayas contando qué te han parecido
|
| 113 |
+
|
| 114 |
+
01:28.360 --> 01:31.285
|
| 115 |
+
los cursos anteriores
|
| 116 |
+
y quiero darte un pequeño,
|
| 117 |
+
|
| 118 |
+
01:31.410 --> 01:34.080
|
| 119 |
+
como una pequeña explicación sobre por qué
|
| 120 |
+
|
| 121 |
+
01:34.080 --> 01:38.978
|
| 122 |
+
estamos haciendo esto y es que descubrimos
|
| 123 |
+
que es mucho más eficiente
|
| 124 |
+
|
| 125 |
+
01:39.104 --> 01:42.282
|
| 126 |
+
que aprendas los lenguajes
|
| 127 |
+
de programación de forma segmentada.
|
| 128 |
+
|
| 129 |
+
01:42.408 --> 01:45.892
|
| 130 |
+
Así no te damos un curso larguísimo,
|
| 131 |
+
muy difícil de consumir,
|
| 132 |
+
|
| 133 |
+
01:46.018 --> 01:49.080
|
| 134 |
+
que puede que no lo logres
|
| 135 |
+
y puede que lo dejes a medias
|
| 136 |
+
|
| 137 |
+
01:49.080 --> 01:52.345
|
| 138 |
+
o que lo dejes en el principio
|
| 139 |
+
y simplemente te desmotive.
|
| 140 |
+
|
| 141 |
+
01:52.471 --> 01:56.206
|
| 142 |
+
Aquí te estamos dando varios
|
| 143 |
+
cursos súper cortos y enfocados,
|
| 144 |
+
|
| 145 |
+
01:56.332 --> 01:59.120
|
| 146 |
+
cada uno de ellos te da un
|
| 147 |
+
diploma que obtienes y que puedes
|
| 148 |
+
|
| 149 |
+
01:59.120 --> 02:01.451
|
| 150 |
+
descargarte y presumir
|
| 151 |
+
en todas tus redes sociales
|
| 152 |
+
|
| 153 |
+
02:01.576 --> 02:04.140
|
| 154 |
+
y también son materiales de consulta
|
| 155 |
+
|
| 156 |
+
02:04.140 --> 02:06.681
|
| 157 |
+
una vez ya aprendes el
|
| 158 |
+
lenguaje y es que puedes
|
| 159 |
+
|
| 160 |
+
02:06.806 --> 02:10.253
|
| 161 |
+
regresar a tomarlos cuantas veces quieras
|
| 162 |
+
con tu suscripción.
|
| 163 |
+
|
| 164 |
+
02:10.379 --> 02:14.140
|
| 165 |
+
Con esto dicho, ¿qué estás esperando?
|
| 166 |
+
¡Comencemos este curso!
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/01-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
https://platzi.com/clases/lenguaje-c/
|
| 2 |
+
https://platzi.com/clases/flujo-c-2020/
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/02-Funciones en C Creación y Uso para Potencias de Enteros.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:206c4f90c8c72a29aef24e335ac38278241d2717f17f6828df87b5baa8a674b2
|
| 3 |
+
size 59051760
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/02-Funciones en C Creación y Uso para Potencias de Enteros.vtt
ADDED
|
@@ -0,0 +1,422 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:03.226 --> 00:06.290
|
| 4 |
+
Una función es una utilidad
|
| 5 |
+
que nos da el lenguaje
|
| 6 |
+
|
| 7 |
+
00:06.416 --> 00:09.700
|
| 8 |
+
para poder encapsular cierta lógica
|
| 9 |
+
de programación,
|
| 10 |
+
|
| 11 |
+
00:09.700 --> 00:14.200
|
| 12 |
+
un fragmento de código que va
|
| 13 |
+
a realizar una tarea específica.
|
| 14 |
+
|
| 15 |
+
00:14.200 --> 00:15.200
|
| 16 |
+
¿Para qué?
|
| 17 |
+
|
| 18 |
+
00:15.200 --> 00:19.143
|
| 19 |
+
Para que más adelante simplemente
|
| 20 |
+
llamemos nuestra función
|
| 21 |
+
|
| 22 |
+
00:19.269 --> 00:21.377
|
| 23 |
+
para que ejecute una tarea específica
|
| 24 |
+
|
| 25 |
+
00:21.503 --> 00:25.366
|
| 26 |
+
sin preocuparnos de escribir
|
| 27 |
+
varias veces la implementación.
|
| 28 |
+
|
| 29 |
+
00:25.392 --> 00:26.474
|
| 30 |
+
Simple.
|
| 31 |
+
|
| 32 |
+
00:26.500 --> 00:28.100
|
| 33 |
+
Imagínate que hay un bloque de código
|
| 34 |
+
|
| 35 |
+
00:28.100 --> 00:31.300
|
| 36 |
+
que estás usando mucho en un software,
|
| 37 |
+
en tu programa.
|
| 38 |
+
|
| 39 |
+
00:31.300 --> 00:34.000
|
| 40 |
+
Por ejemplo, el lenguaje C, por defecto,
|
| 41 |
+
|
| 42 |
+
00:34.000 --> 00:36.400
|
| 43 |
+
no tiene el operador asterisco, asterisco,
|
| 44 |
+
|
| 45 |
+
00:36.400 --> 00:38.900
|
| 46 |
+
que en otros lenguajes se utiliza
|
| 47 |
+
|
| 48 |
+
00:38.900 --> 00:40.900
|
| 49 |
+
para elevar un número a una potencia.
|
| 50 |
+
|
| 51 |
+
00:40.900 --> 00:44.100
|
| 52 |
+
Entonces, en algún software
|
| 53 |
+
que estés desarrollando,
|
| 54 |
+
|
| 55 |
+
00:44.100 --> 00:46.100
|
| 56 |
+
puede que llegues a necesitar un programa
|
| 57 |
+
|
| 58 |
+
00:46.100 --> 00:47.400
|
| 59 |
+
o un pedazo de código
|
| 60 |
+
|
| 61 |
+
00:47.400 --> 00:50.400
|
| 62 |
+
que eleva un número a la potencia
|
| 63 |
+
que tú le indiques.
|
| 64 |
+
|
| 65 |
+
00:50.400 --> 00:53.500
|
| 66 |
+
Eso es un caso de uso perfecto
|
| 67 |
+
para una función.
|
| 68 |
+
|
| 69 |
+
00:53.500 --> 00:54.200
|
| 70 |
+
¿Por qué?
|
| 71 |
+
|
| 72 |
+
00:54.200 --> 00:55.400
|
| 73 |
+
Lo declaramos una vez,
|
| 74 |
+
|
| 75 |
+
00:55.400 --> 00:58.900
|
| 76 |
+
creamos nuestra función de elevar
|
| 77 |
+
un número m a la n,
|
| 78 |
+
|
| 79 |
+
00:58.900 --> 01:01.500
|
| 80 |
+
y con esto simplemente cada que queramos
|
| 81 |
+
|
| 82 |
+
01:01.500 --> 01:04.100
|
| 83 |
+
elevar un número a una potencia dada,
|
| 84 |
+
|
| 85 |
+
01:04.100 --> 01:06.500
|
| 86 |
+
llamamos la función y la ejecutamos.
|
| 87 |
+
|
| 88 |
+
01:06.500 --> 01:09.600
|
| 89 |
+
Nos ahorramos tener que escribir
|
| 90 |
+
la implementación directa
|
| 91 |
+
|
| 92 |
+
01:09.600 --> 01:14.200
|
| 93 |
+
de cómo hacer que un número se
|
| 94 |
+
eleve a una potencia dada cada vez.
|
| 95 |
+
|
| 96 |
+
01:14.200 --> 01:17.600
|
| 97 |
+
Más adelante, de hecho,
|
| 98 |
+
en otros cursos dentro de este pad,
|
| 99 |
+
|
| 100 |
+
01:17.600 --> 01:21.000
|
| 101 |
+
veremos sobre librerías
|
| 102 |
+
o bibliotecas de código.
|
| 103 |
+
|
| 104 |
+
01:21.000 --> 01:22.800
|
| 105 |
+
Y es que son esenciales en C
|
| 106 |
+
|
| 107 |
+
01:22.800 --> 01:25.800
|
| 108 |
+
y lo que hacen principalmente
|
| 109 |
+
es recopilar funciones
|
| 110 |
+
|
| 111 |
+
01:25.800 --> 01:29.100
|
| 112 |
+
que van a traer utilidades similares.
|
| 113 |
+
|
| 114 |
+
01:29.100 --> 01:32.100
|
| 115 |
+
Por ejemplo, la librería STDIO
|
| 116 |
+
|
| 117 |
+
01:32.100 --> 01:35.800
|
| 118 |
+
que estamos utilizando en otras clases
|
| 119 |
+
de estos cursos,
|
| 120 |
+
|
| 121 |
+
01:35.800 --> 01:38.700
|
| 122 |
+
nos sirve para manejar inputs y outputs.
|
| 123 |
+
|
| 124 |
+
01:38.700 --> 01:40.900
|
| 125 |
+
Es la librería estándar
|
| 126 |
+
de inputs y outputs.
|
| 127 |
+
|
| 128 |
+
01:40.900 --> 01:44.500
|
| 129 |
+
Y de hecho, esta librería cuenta
|
| 130 |
+
con la función printf,
|
| 131 |
+
|
| 132 |
+
01:44.500 --> 01:46.800
|
| 133 |
+
que es la función que contiene el código
|
| 134 |
+
|
| 135 |
+
01:46.800 --> 01:49.600
|
| 136 |
+
para que el lenguaje C pueda imprimir
|
| 137 |
+
un mensaje
|
| 138 |
+
|
| 139 |
+
01:49.600 --> 01:51.200
|
| 140 |
+
en tu pantalla de tu terminal
|
| 141 |
+
|
| 142 |
+
01:51.200 --> 01:54.000
|
| 143 |
+
y es lo que hemos estado
|
| 144 |
+
utilizando muchísimo
|
| 145 |
+
|
| 146 |
+
01:54.000 --> 01:56.700
|
| 147 |
+
a lo largo de todos
|
| 148 |
+
estos cursos anteriores.
|
| 149 |
+
|
| 150 |
+
01:56.700 --> 01:59.700
|
| 151 |
+
Así que ahora no solo vamos
|
| 152 |
+
a aprender a utilizar funciones,
|
| 153 |
+
|
| 154 |
+
01:59.700 --> 02:01.800
|
| 155 |
+
vamos a aprender a declararlas.
|
| 156 |
+
|
| 157 |
+
02:01.800 --> 02:04.900
|
| 158 |
+
Con esto dicho, vamos al código
|
| 159 |
+
donde justamente te voy a enseñar
|
| 160 |
+
|
| 161 |
+
02:04.900 --> 02:08.200
|
| 162 |
+
cómo crear una función que eleve
|
| 163 |
+
un número a una potencia.
|
| 164 |
+
|
| 165 |
+
02:08.200 --> 02:11.200
|
| 166 |
+
Para empezar, abre tu Visual Studio Code,
|
| 167 |
+
como siempre.
|
| 168 |
+
|
| 169 |
+
02:11.200 --> 02:16.200
|
| 170 |
+
Vamos a guardar este archivo
|
| 171 |
+
como functions. c
|
| 172 |
+
|
| 173 |
+
02:16.800 --> 02:18.300
|
| 174 |
+
Y quiero comentarte un poco
|
| 175 |
+
|
| 176 |
+
02:18.300 --> 02:21.100
|
| 177 |
+
cómo funciona la definición
|
| 178 |
+
de una función.
|
| 179 |
+
|
| 180 |
+
02:21.100 --> 02:25.700
|
| 181 |
+
Lo primero es que vamos a tener
|
| 182 |
+
los siguientes elementos.
|
| 183 |
+
|
| 184 |
+
02:25.985 --> 02:28.184
|
| 185 |
+
return type,
|
| 186 |
+
|
| 187 |
+
02:29.410 --> 02:32.700
|
| 188 |
+
es decir, el tipo de datos que la función
|
| 189 |
+
va a retornar,
|
| 190 |
+
|
| 191 |
+
02:32.700 --> 02:34.856
|
| 192 |
+
el nombre de la función,
|
| 193 |
+
|
| 194 |
+
02:34.982 --> 02:37.200
|
| 195 |
+
que vamos a escribir como function name.
|
| 196 |
+
|
| 197 |
+
02:37.479 --> 02:42.000
|
| 198 |
+
También vamos a tener parameter,
|
| 199 |
+
|
| 200 |
+
02:42.189 --> 02:44.401
|
| 201 |
+
declarations,
|
| 202 |
+
|
| 203 |
+
02:46.640 --> 02:48.194
|
| 204 |
+
if any.
|
| 205 |
+
|
| 206 |
+
02:49.100 --> 02:50.700
|
| 207 |
+
Muy bien.
|
| 208 |
+
|
| 209 |
+
02:50.700 --> 02:53.521
|
| 210 |
+
Luego, obviamente, adentro de la función
|
| 211 |
+
|
| 212 |
+
02:53.647 --> 02:55.500
|
| 213 |
+
tendríamos que abrir nuestras llaves
|
| 214 |
+
|
| 215 |
+
02:55.500 --> 02:59.200
|
| 216 |
+
y aquí tendríamos nuestras declaraciones
|
| 217 |
+
|
| 218 |
+
02:59.200 --> 03:01.700
|
| 219 |
+
y nuestros statements.
|
| 220 |
+
|
| 221 |
+
03:01.700 --> 03:04.927
|
| 222 |
+
Recuerda que yo ya te había dicho
|
| 223 |
+
que era un statement en C
|
| 224 |
+
|
| 225 |
+
03:05.053 --> 03:07.000
|
| 226 |
+
y que era un declaration.
|
| 227 |
+
|
| 228 |
+
03:07.000 --> 03:08.500
|
| 229 |
+
Aquí vamos a poder declarar,
|
| 230 |
+
|
| 231 |
+
03:08.500 --> 03:10.800
|
| 232 |
+
en caso de ser necesario,
|
| 233 |
+
algún tipo de variable,
|
| 234 |
+
|
| 235 |
+
03:10.800 --> 03:12.600
|
| 236 |
+
inicializarle algunas cosas,
|
| 237 |
+
|
| 238 |
+
03:12.600 --> 03:16.000
|
| 239 |
+
todo lo que se necesite
|
| 240 |
+
para que la función funcione,
|
| 241 |
+
|
| 242 |
+
03:16.000 --> 03:18.800
|
| 243 |
+
valga la redundancia de forma adecuada.
|
| 244 |
+
|
| 245 |
+
03:18.800 --> 03:20.700
|
| 246 |
+
Y statements o declaraciones,
|
| 247 |
+
|
| 248 |
+
03:20.700 --> 03:23.000
|
| 249 |
+
que son las instrucciones
|
| 250 |
+
que vamos a ejecutar
|
| 251 |
+
|
| 252 |
+
03:23.000 --> 03:26.700
|
| 253 |
+
dentro de nuestra función.
|
| 254 |
+
¿Ok?
|
| 255 |
+
|
| 256 |
+
03:26.700 --> 03:30.300
|
| 257 |
+
Con esto dicho, déjame aclararte
|
| 258 |
+
un poquito más qué es cada cosa.
|
| 259 |
+
|
| 260 |
+
03:30.300 --> 03:33.900
|
| 261 |
+
return type es el tipo de datos
|
| 262 |
+
que la función va a retornar.
|
| 263 |
+
|
| 264 |
+
03:33.900 --> 03:36.100
|
| 265 |
+
Por ejemplo, si tú dentro de la función
|
| 266 |
+
|
| 267 |
+
03:36.100 --> 03:38.300
|
| 268 |
+
haces un procesamiento
|
| 269 |
+
con números enteros,
|
| 270 |
+
|
| 271 |
+
03:38.300 --> 03:42.700
|
| 272 |
+
entonces la función va a retornar
|
| 273 |
+
un tipo de datos enteros.
|
| 274 |
+
|
| 275 |
+
03:42.700 --> 03:46.000
|
| 276 |
+
Y volviendo al código,
|
| 277 |
+
podríamos poner int.
|
| 278 |
+
|
| 279 |
+
03:46.000 --> 03:50.400
|
| 280 |
+
Si tu función se va a encargar de hacer
|
| 281 |
+
la potencia de dos números enteros,
|
| 282 |
+
|
| 283 |
+
03:50.400 --> 03:56.900
|
| 284 |
+
entonces power of integers.
|
| 285 |
+
|
| 286 |
+
03:56.900 --> 03:59.200
|
| 287 |
+
Y aquí tenemos nuestra función
|
| 288 |
+
que se va a encargar
|
| 289 |
+
|
| 290 |
+
03:59.200 --> 04:01.700
|
| 291 |
+
de hacer la potencia
|
| 292 |
+
de dos números enteros.
|
| 293 |
+
|
| 294 |
+
04:01.700 --> 04:04.700
|
| 295 |
+
Parámetros. ¿Qué son los parámetros?
|
| 296 |
+
|
| 297 |
+
04:04.700 --> 04:06.700
|
| 298 |
+
Los parámetros son los valores
|
| 299 |
+
|
| 300 |
+
04:06.700 --> 04:09.000
|
| 301 |
+
que le vamos a pasar a nuestra función.
|
| 302 |
+
|
| 303 |
+
04:09.000 --> 04:11.200
|
| 304 |
+
Estos valores son importantísimos
|
| 305 |
+
|
| 306 |
+
04:11.200 --> 04:13.500
|
| 307 |
+
porque es lo que va a ocupar
|
| 308 |
+
el código más,
|
| 309 |
+
|
| 310 |
+
04:13.500 --> 04:15.900
|
| 311 |
+
el código que esté
|
| 312 |
+
adentro de nuestra función,
|
| 313 |
+
|
| 314 |
+
04:15.900 --> 04:18.700
|
| 315 |
+
para resolver la tarea que le pidamos.
|
| 316 |
+
|
| 317 |
+
04:18.700 --> 04:21.300
|
| 318 |
+
En este caso, estamos hablando
|
| 319 |
+
de la potencia
|
| 320 |
+
|
| 321 |
+
04:21.300 --> 04:22.400
|
| 322 |
+
de un número entero.
|
| 323 |
+
|
| 324 |
+
04:22.400 --> 04:24.900
|
| 325 |
+
Como bien sabes,
|
| 326 |
+
vamos a tener dos elementos
|
| 327 |
+
|
| 328 |
+
04:24.900 --> 04:27.100
|
| 329 |
+
que van a ser de tipo entero
|
| 330 |
+
|
| 331 |
+
04:27.100 --> 04:30.000
|
| 332 |
+
y el primero va a ser la base
|
| 333 |
+
de nuestra potencia,
|
| 334 |
+
|
| 335 |
+
04:30.000 --> 04:32.200
|
| 336 |
+
si va a ser base 2, base 3, etc.
|
| 337 |
+
|
| 338 |
+
04:32.200 --> 04:36.400
|
| 339 |
+
Y el segundo valor va a ser
|
| 340 |
+
igual entero y va a ser la n,
|
| 341 |
+
|
| 342 |
+
04:36.400 --> 04:41.000
|
| 343 |
+
es decir, a qué factor estamos elevando
|
| 344 |
+
nuestra base.
|
| 345 |
+
|
| 346 |
+
04:41.000 --> 04:43.700
|
| 347 |
+
Con esto dicho, ya tenemos los parámetros
|
| 348 |
+
|
| 349 |
+
04:43.700 --> 04:45.300
|
| 350 |
+
que necesitaría nuestra función.
|
| 351 |
+
|
| 352 |
+
04:45.300 --> 04:48.300
|
| 353 |
+
Antes de continuar,
|
| 354 |
+
quiero contarte que en C
|
| 355 |
+
|
| 356 |
+
04:48.300 --> 04:51.500
|
| 357 |
+
esto es correcto y es una buena práctica.
|
| 358 |
+
¿Por qué?
|
| 359 |
+
|
| 360 |
+
04:51.500 --> 04:55.269
|
| 361 |
+
Porque te ayuda a tener
|
| 362 |
+
mejor documentadas tus funciones.
|
| 363 |
+
|
| 364 |
+
04:55.395 --> 04:56.800
|
| 365 |
+
Hay otra forma de hacerlo.
|
| 366 |
+
|
| 367 |
+
04:56.800 --> 04:59.200
|
| 368 |
+
Si tú quisieras,
|
| 369 |
+
puedes simplemente decirle
|
| 370 |
+
|
| 371 |
+
04:59.200 --> 05:03.500
|
| 372 |
+
a tu función que va a recibir
|
| 373 |
+
dos valores de tipo entero.
|
| 374 |
+
|
| 375 |
+
05:03.778 --> 05:07.280
|
| 376 |
+
Esto está ok, el compilador lo aceptaría,
|
| 377 |
+
|
| 378 |
+
05:07.406 --> 05:10.438
|
| 379 |
+
sin embargo,
|
| 380 |
+
no es una buena práctica
|
| 381 |
+
|
| 382 |
+
05:10.564 --> 05:12.200
|
| 383 |
+
porque entonces no vas a tener claro
|
| 384 |
+
|
| 385 |
+
05:12.200 --> 05:15.800
|
| 386 |
+
de qué se trata
|
| 387 |
+
cada uno de estos valores enteros.
|
| 388 |
+
|
| 389 |
+
05:15.800 --> 05:18.749
|
| 390 |
+
Y aquí ya le estamos diciendo
|
| 391 |
+
el tipo de dato
|
| 392 |
+
|
| 393 |
+
05:18.875 --> 05:23.100
|
| 394 |
+
y el nombre del valor
|
| 395 |
+
que estamos teniendo.
|
| 396 |
+
|
| 397 |
+
05:23.100 --> 05:28.111
|
| 398 |
+
Es simplemente para que el código
|
| 399 |
+
sea legible y fácil de comprender.
|
| 400 |
+
|
| 401 |
+
05:28.237 --> 05:31.970
|
| 402 |
+
Con esto dicho, veamos qué más
|
| 403 |
+
habría que hacer en nuestra función.
|
| 404 |
+
|
| 405 |
+
05:32.096 --> 05:35.000
|
| 406 |
+
Con esto dicho, ya sabes
|
| 407 |
+
de qué se trata una función.
|
| 408 |
+
|
| 409 |
+
05:35.000 --> 05:37.800
|
| 410 |
+
Ahora, esto lo vas a utilizar muchísimo
|
| 411 |
+
|
| 412 |
+
05:37.800 --> 05:39.500
|
| 413 |
+
a lo largo de tu desarrollo en C.
|
| 414 |
+
|
| 415 |
+
05:39.500 --> 05:41.900
|
| 416 |
+
Obviamente, vamos a ver una implementación
|
| 417 |
+
|
| 418 |
+
05:41.900 --> 05:44.900
|
| 419 |
+
de esto y lo veremos en la próxima clase.
|
| 420 |
+
|
| 421 |
+
05:44.900 --> 05:51.500
|
| 422 |
+
Así que vamos para allá.
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/02-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/02-function_0343da15-da02-412b-8715-bf15e00c974b.c
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
return-type function-name(parameters declaration, if any)
|
| 2 |
+
{
|
| 3 |
+
declarations
|
| 4 |
+
statements
|
| 5 |
+
}
|
| 6 |
+
|
| 7 |
+
int powerOfIntegers(int base, int n)
|
| 8 |
+
{
|
| 9 |
+
declarations
|
| 10 |
+
statements
|
| 11 |
+
}
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/03-Creación y uso de funciones en lenguaje C.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b6a9ce4eb734c0dc9f932fe277b9970559636cb38b7803e4686a253baf99a9a9
|
| 3 |
+
size 114928891
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/03-Creación y uso de funciones en lenguaje C.vtt
ADDED
|
@@ -0,0 +1,662 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:03.113 --> 00:05.272
|
| 4 |
+
¡Listo! Es momento
|
| 5 |
+
de llevar este concepto
|
| 6 |
+
|
| 7 |
+
00:05.398 --> 00:07.799
|
| 8 |
+
de función a la práctica. Vamos a eso.
|
| 9 |
+
|
| 10 |
+
00:08.047 --> 00:10.967
|
| 11 |
+
Vamos a abrir una nueva pestaña
|
| 12 |
+
en Visual Studio Code,
|
| 13 |
+
|
| 14 |
+
00:11.092 --> 00:14.055
|
| 15 |
+
lo guardamos, ya sabes,
|
| 16 |
+
le vamos a poner de nombre
|
| 17 |
+
|
| 18 |
+
00:14.181 --> 00:18.350
|
| 19 |
+
function one point C,
|
| 20 |
+
dice que ya existe, claro,
|
| 21 |
+
|
| 22 |
+
00:18.476 --> 00:21.069
|
| 23 |
+
lo voy a sobreescribir,
|
| 24 |
+
no pasa nada y empezamos
|
| 25 |
+
|
| 26 |
+
00:21.195 --> 00:22.860
|
| 27 |
+
con todo lo que es el boilerplate,
|
| 28 |
+
|
| 29 |
+
00:22.986 --> 00:28.064
|
| 30 |
+
que es este código que digamos
|
| 31 |
+
que hay que escribir porque sí,
|
| 32 |
+
|
| 33 |
+
00:29.031 --> 00:31.435
|
| 34 |
+
como es el include,
|
| 35 |
+
que tenemos que escribirlo
|
| 36 |
+
|
| 37 |
+
00:31.561 --> 00:36.196
|
| 38 |
+
sí o sí porque vamos
|
| 39 |
+
a necesitar nuestra librería stdio.h,
|
| 40 |
+
|
| 41 |
+
00:36.322 --> 00:38.801
|
| 42 |
+
vamos a declarar
|
| 43 |
+
ahora nuestra función,
|
| 44 |
+
|
| 45 |
+
00:38.927 --> 00:41.106
|
| 46 |
+
siempre tienes
|
| 47 |
+
que declarar tus funciones arriba,
|
| 48 |
+
|
| 49 |
+
00:41.232 --> 00:43.175
|
| 50 |
+
justo en donde declaramos las variables,
|
| 51 |
+
|
| 52 |
+
00:43.301 --> 00:47.307
|
| 53 |
+
porque eso te sirve
|
| 54 |
+
para que el compilador sepa
|
| 55 |
+
|
| 56 |
+
00:47.433 --> 00:49.917
|
| 57 |
+
que esa función existe
|
| 58 |
+
y si se le encuentra en tu código
|
| 59 |
+
|
| 60 |
+
00:50.043 --> 00:52.400
|
| 61 |
+
más adelante,
|
| 62 |
+
pues no diga oye, ¿qué es esto?
|
| 63 |
+
|
| 64 |
+
00:52.400 --> 00:55.605
|
| 65 |
+
No tengo idea, sino que sea,
|
| 66 |
+
esta es la función power,
|
| 67 |
+
|
| 68 |
+
00:55.731 --> 00:58.111
|
| 69 |
+
vamos a pasarle nuestras variables
|
| 70 |
+
|
| 71 |
+
00:58.237 --> 01:01.498
|
| 72 |
+
que como lo habíamos hecho
|
| 73 |
+
antes van a ser m
|
| 74 |
+
|
| 75 |
+
01:01.623 --> 01:06.194
|
| 76 |
+
o base y luego le vamos a
|
| 77 |
+
pasar nuestra variable n,
|
| 78 |
+
|
| 79 |
+
01:06.320 --> 01:10.590
|
| 80 |
+
int n, ok, todo bien por acá,
|
| 81 |
+
simplemente punto y coma,
|
| 82 |
+
|
| 83 |
+
01:10.716 --> 01:12.602
|
| 84 |
+
ya con esto
|
| 85 |
+
declaramos nuestra función,
|
| 86 |
+
|
| 87 |
+
01:12.728 --> 01:16.274
|
| 88 |
+
ahora procedemos a escribir nuestro main,
|
| 89 |
+
|
| 90 |
+
01:16.741 --> 01:19.080
|
| 91 |
+
vamos a abrir sus llaves
|
| 92 |
+
para todo el código
|
| 93 |
+
|
| 94 |
+
01:19.080 --> 01:23.468
|
| 95 |
+
que va a corresponder
|
| 96 |
+
y adentro de este código main,
|
| 97 |
+
|
| 98 |
+
01:23.594 --> 01:25.473
|
| 99 |
+
lo primero que quiero
|
| 100 |
+
es declarar un auxiliar
|
| 101 |
+
|
| 102 |
+
01:25.599 --> 01:29.538
|
| 103 |
+
y un contador,
|
| 104 |
+
vamos a escribir luego un ciclo for,
|
| 105 |
+
|
| 106 |
+
01:29.663 --> 01:33.139
|
| 107 |
+
este ciclo for lo que va
|
| 108 |
+
a tener de particular
|
| 109 |
+
|
| 110 |
+
01:33.265 --> 01:36.702
|
| 111 |
+
es que nos va a servir
|
| 112 |
+
para iterar en diferentes
|
| 113 |
+
|
| 114 |
+
01:36.828 --> 01:38.960
|
| 115 |
+
valores y quiero que veas cómo se imprime
|
| 116 |
+
|
| 117 |
+
01:38.960 --> 01:42.075
|
| 118 |
+
el resultado de números
|
| 119 |
+
elevados a diversas potencias
|
| 120 |
+
|
| 121 |
+
01:42.200 --> 01:45.120
|
| 122 |
+
y cómo escribimos un código bien,
|
| 123 |
+
bien corto,
|
| 124 |
+
|
| 125 |
+
01:45.120 --> 01:47.634
|
| 126 |
+
compacto, que tiene
|
| 127 |
+
bastante funcionalidad,
|
| 128 |
+
|
| 129 |
+
01:48.251 --> 01:50.807
|
| 130 |
+
vamos a decirle que cuando
|
| 131 |
+
i sea menor que 10,
|
| 132 |
+
|
| 133 |
+
01:50.933 --> 01:54.590
|
| 134 |
+
quiero que iterate de 0 a 10,
|
| 135 |
+
excelente y más más,
|
| 136 |
+
|
| 137 |
+
01:54.716 --> 01:58.276
|
| 138 |
+
eso se queda así, luego voy a tener
|
| 139 |
+
un print bastante largo,
|
| 140 |
+
|
| 141 |
+
01:58.402 --> 02:00.642
|
| 142 |
+
pero ya te explico para qué va a servir,
|
| 143 |
+
|
| 144 |
+
02:00.768 --> 02:03.910
|
| 145 |
+
vamos a imprimir tres valores,
|
| 146 |
+
|
| 147 |
+
02:04.109 --> 02:11.062
|
| 148 |
+
el primero va a ser n es igual a %d,
|
| 149 |
+
|
| 150 |
+
02:11.849 --> 02:15.715
|
| 151 |
+
el segundo va a ser resultado
|
| 152 |
+
|
| 153 |
+
02:18.773 --> 02:20.773
|
| 154 |
+
o resultado
|
| 155 |
+
|
| 156 |
+
02:23.473 --> 02:24.633
|
| 157 |
+
de la potencia
|
| 158 |
+
|
| 159 |
+
02:26.318 --> 02:31.668
|
| 160 |
+
va a ser igual a %d, bellísimo,
|
| 161 |
+
|
| 162 |
+
02:32.588 --> 02:36.198
|
| 163 |
+
vamos a cerrar aquí
|
| 164 |
+
con un salto de línea,
|
| 165 |
+
|
| 166 |
+
02:39.657 --> 02:45.298
|
| 167 |
+
ya sabes barra invertida n,
|
| 168 |
+
cerramos nuestras comillas,
|
| 169 |
+
|
| 170 |
+
02:45.424 --> 02:47.200
|
| 171 |
+
coma y aquí le pasamos el valor,
|
| 172 |
+
|
| 173 |
+
02:47.200 --> 02:51.205
|
| 174 |
+
primero le voy a pasar
|
| 175 |
+
i que va a ser n en este caso,
|
| 176 |
+
|
| 177 |
+
02:51.331 --> 02:54.120
|
| 178 |
+
el exponente y luego le paso mi potencia
|
| 179 |
+
|
| 180 |
+
02:54.120 --> 02:59.967
|
| 181 |
+
o el resultado de mi potencia,
|
| 182 |
+
vamos a hacerlo de esta forma 2,i,
|
| 183 |
+
|
| 184 |
+
03:00.533 --> 03:02.600
|
| 185 |
+
perfecto, 2 va a ser la base
|
| 186 |
+
|
| 187 |
+
03:02.600 --> 03:05.278
|
| 188 |
+
que voy a utilizar
|
| 189 |
+
para este ejemplo e i
|
| 190 |
+
|
| 191 |
+
03:05.403 --> 03:07.446
|
| 192 |
+
va a ser el exponencial
|
| 193 |
+
que vamos a tener
|
| 194 |
+
|
| 195 |
+
03:07.572 --> 03:12.674
|
| 196 |
+
que se va a ir iterando en este ciclo for,
|
| 197 |
+
eso es todo lo que tenemos en este código,
|
| 198 |
+
|
| 199 |
+
03:12.800 --> 03:14.445
|
| 200 |
+
todo está muy bello,
|
| 201 |
+
|
| 202 |
+
03:14.571 --> 03:18.468
|
| 203 |
+
cerramos nuestros paréntesis
|
| 204 |
+
|
| 205 |
+
03:20.927 --> 03:24.874
|
| 206 |
+
y le ponemos su correspondiente
|
| 207 |
+
punto y coma, excelente,
|
| 208 |
+
|
| 209 |
+
03:25.000 --> 03:28.746
|
| 210 |
+
ya tenemos nuestro for escrito,
|
| 211 |
+
veamos que todo esté correcto,
|
| 212 |
+
|
| 213 |
+
03:28.872 --> 03:30.960
|
| 214 |
+
tenemos aquí el paréntesis
|
| 215 |
+
|
| 216 |
+
03:30.960 --> 03:33.878
|
| 217 |
+
que resierra el print,
|
| 218 |
+
tenemos nuestras comillas
|
| 219 |
+
|
| 220 |
+
03:34.003 --> 03:36.920
|
| 221 |
+
que se cierran bien
|
| 222 |
+
y tenemos los textos escritos,
|
| 223 |
+
|
| 224 |
+
03:36.920 --> 03:41.180
|
| 225 |
+
todo está excelente,
|
| 226 |
+
vamos a poner aquí el resultado
|
| 227 |
+
|
| 228 |
+
03:41.306 --> 03:44.508
|
| 229 |
+
de la potencia,
|
| 230 |
+
nos estaba faltando utilizar
|
| 231 |
+
|
| 232 |
+
03:44.634 --> 03:49.007
|
| 233 |
+
ahí un artículo, muy bien,
|
| 234 |
+
ya tenemos declarado nuestro for,
|
| 235 |
+
|
| 236 |
+
03:49.133 --> 03:51.188
|
| 237 |
+
ahora simplemente por estándar
|
| 238 |
+
|
| 239 |
+
03:51.314 --> 03:56.358
|
| 240 |
+
cerramos con nuestro return 0 para indicar
|
| 241 |
+
el fin de la ejecución de nuestro código,
|
| 242 |
+
|
| 243 |
+
03:56.844 --> 04:02.547
|
| 244 |
+
con esto dicho vamos a la carnita de esta
|
| 245 |
+
clase que es la declaración de la función,
|
| 246 |
+
|
| 247 |
+
04:02.813 --> 04:06.104
|
| 248 |
+
abajo de nuestro main
|
| 249 |
+
vamos a declarar nuestra función power,
|
| 250 |
+
|
| 251 |
+
04:06.230 --> 04:08.160
|
| 252 |
+
es decir, vamos a definir nuestra función,
|
| 253 |
+
|
| 254 |
+
04:08.160 --> 04:12.601
|
| 255 |
+
mejor dicho, a escribir todo el código
|
| 256 |
+
que va a estar adentro de la misma,
|
| 257 |
+
|
| 258 |
+
04:12.727 --> 04:15.938
|
| 259 |
+
aquí la inicializamos,
|
| 260 |
+
eso es todo, la declaramos
|
| 261 |
+
|
| 262 |
+
04:16.063 --> 04:19.640
|
| 263 |
+
por decirlo así y aquí
|
| 264 |
+
vamos ahora sí a escribirla,
|
| 265 |
+
|
| 266 |
+
04:19.640 --> 04:22.758
|
| 267 |
+
a crearla, a ponerle
|
| 268 |
+
todo lo que va a ir adentro,
|
| 269 |
+
|
| 270 |
+
04:22.883 --> 04:26.895
|
| 271 |
+
lo primero va a ser
|
| 272 |
+
comenzar a escribir la base y n,
|
| 273 |
+
|
| 274 |
+
04:27.021 --> 04:28.856
|
| 275 |
+
excelente, abrimos nuestras llaves
|
| 276 |
+
|
| 277 |
+
04:28.982 --> 04:31.662
|
| 278 |
+
para indicarle al compilador
|
| 279 |
+
que todo lo que está adentro
|
| 280 |
+
|
| 281 |
+
04:31.788 --> 04:33.680
|
| 282 |
+
pertenece a esta función power,
|
| 283 |
+
|
| 284 |
+
04:33.805 --> 04:36.440
|
| 285 |
+
voy a declarar dos variables
|
| 286 |
+
auxiliares que la primera
|
| 287 |
+
|
| 288 |
+
04:36.566 --> 04:39.261
|
| 289 |
+
va a ser y i la segunda va a ser p,
|
| 290 |
+
punto y coma,
|
| 291 |
+
|
| 292 |
+
04:39.386 --> 04:42.774
|
| 293 |
+
luego voy a
|
| 294 |
+
inicializar mi variable p en 1,
|
| 295 |
+
|
| 296 |
+
04:44.573 --> 04:50.015
|
| 297 |
+
en 1, punto y coma y por último voy
|
| 298 |
+
a hacer un pequeñísimo ciclo for,
|
| 299 |
+
|
| 300 |
+
04:50.141 --> 04:54.180
|
| 301 |
+
este ciclo for
|
| 302 |
+
va a comenzar en i igual a 1,
|
| 303 |
+
|
| 304 |
+
04:54.306 --> 04:57.891
|
| 305 |
+
estoy usando
|
| 306 |
+
delete en vez de backspace,
|
| 307 |
+
|
| 308 |
+
04:58.016 --> 05:03.984
|
| 309 |
+
i igual a 1, excelente,
|
| 310 |
+
i menor o igual que n,
|
| 311 |
+
|
| 312 |
+
05:05.847 --> 05:09.438
|
| 313 |
+
punto y coma y luego mi iterador
|
| 314 |
+
|
| 315 |
+
05:09.563 --> 05:13.799
|
| 316 |
+
que va a ser i ++, excelente,
|
| 317 |
+
mi incrementador,
|
| 318 |
+
|
| 319 |
+
05:13.925 --> 05:16.283
|
| 320 |
+
mi variable que va a estar sumando
|
| 321 |
+
de 1 en 1,
|
| 322 |
+
|
| 323 |
+
05:16.409 --> 05:19.600
|
| 324 |
+
perfecto, ahora le ponemos
|
| 325 |
+
la carnita o el código
|
| 326 |
+
|
| 327 |
+
05:19.600 --> 05:22.860
|
| 328 |
+
de mi función que de hecho
|
| 329 |
+
es bastante simple,
|
| 330 |
+
|
| 331 |
+
05:22.986 --> 05:29.640
|
| 332 |
+
te vas a sorprender, simplemente
|
| 333 |
+
voy a declarar p igual a p por base,
|
| 334 |
+
|
| 335 |
+
05:30.243 --> 05:35.633
|
| 336 |
+
muy bien, y por último
|
| 337 |
+
algo esencial es retornar,
|
| 338 |
+
|
| 339 |
+
05:35.766 --> 05:39.938
|
| 340 |
+
siempre que declaramos una función,
|
| 341 |
+
siempre que escribimos todo el código
|
| 342 |
+
|
| 343 |
+
05:40.063 --> 05:44.369
|
| 344 |
+
de nuestra función, tenemos
|
| 345 |
+
que decirle que vamos a retornar,
|
| 346 |
+
|
| 347 |
+
05:44.495 --> 05:46.058
|
| 348 |
+
qué variable es la que va a agarrar
|
| 349 |
+
|
| 350 |
+
05:46.183 --> 05:49.690
|
| 351 |
+
y va a retornar, porque si no
|
| 352 |
+
C va a retornar la primera variable
|
| 353 |
+
|
| 354 |
+
05:49.816 --> 05:51.598
|
| 355 |
+
o el primer dato que se encuentre
|
| 356 |
+
|
| 357 |
+
05:51.723 --> 05:54.546
|
| 358 |
+
y no vamos a estar obteniendo
|
| 359 |
+
el resultado adecuado,
|
| 360 |
+
|
| 361 |
+
05:54.672 --> 05:59.769
|
| 362 |
+
en este caso vamos a retornar
|
| 363 |
+
un valor entero como ya lo definimos
|
| 364 |
+
|
| 365 |
+
05:59.895 --> 06:01.695
|
| 366 |
+
en el principio en mi return type
|
| 367 |
+
|
| 368 |
+
06:01.821 --> 06:05.449
|
| 369 |
+
y el return simplemente
|
| 370 |
+
debe de indicar qué valor
|
| 371 |
+
|
| 372 |
+
06:05.575 --> 06:07.297
|
| 373 |
+
es el que va a estar regresando
|
| 374 |
+
|
| 375 |
+
06:07.423 --> 06:10.298
|
| 376 |
+
cuando se le ejecute o se le llama
|
| 377 |
+
esta función, cuando estamos
|
| 378 |
+
|
| 379 |
+
06:10.423 --> 06:12.800
|
| 380 |
+
llamando nuestra función,
|
| 381 |
+
aquí lo estamos llamando
|
| 382 |
+
|
| 383 |
+
06:12.800 --> 06:14.860
|
| 384 |
+
en cada bucle de nuestro ciclo for,
|
| 385 |
+
|
| 386 |
+
06:14.986 --> 06:19.000
|
| 387 |
+
estamos llamando nuestra función power
|
| 388 |
+
y ahora mi programa,
|
| 389 |
+
|
| 390 |
+
06:19.000 --> 06:22.289
|
| 391 |
+
mi función sabe que debe
|
| 392 |
+
de retornar el valor de p,
|
| 393 |
+
|
| 394 |
+
06:22.415 --> 06:26.464
|
| 395 |
+
en cada uno de esos
|
| 396 |
+
ciclos que se le llama,
|
| 397 |
+
|
| 398 |
+
06:26.590 --> 06:29.754
|
| 399 |
+
perfecto, ahora quiero
|
| 400 |
+
explicarte una cosita más
|
| 401 |
+
|
| 402 |
+
06:29.880 --> 06:31.800
|
| 403 |
+
y es que si no tienes
|
| 404 |
+
claro el concepto
|
| 405 |
+
|
| 406 |
+
06:31.800 --> 06:33.924
|
| 407 |
+
de una potencia pues
|
| 408 |
+
no vas a entender este código
|
| 409 |
+
|
| 410 |
+
06:34.049 --> 06:36.420
|
| 411 |
+
y eso es un concepto matemático básico,
|
| 412 |
+
|
| 413 |
+
06:36.420 --> 06:39.722
|
| 414 |
+
pero no te preocupes yo te lo explico,
|
| 415 |
+
simple y sencillamente
|
| 416 |
+
|
| 417 |
+
06:39.848 --> 06:43.076
|
| 418 |
+
nosotros vamos a tener,
|
| 419 |
+
cuando elevamos un número a una potencia,
|
| 420 |
+
|
| 421 |
+
06:43.202 --> 06:46.713
|
| 422 |
+
dos valores, la base
|
| 423 |
+
que es el número que tenemos
|
| 424 |
+
|
| 425 |
+
06:46.839 --> 06:48.480
|
| 426 |
+
y la potencia o el exponencial
|
| 427 |
+
|
| 428 |
+
06:48.480 --> 06:52.709
|
| 429 |
+
que nos dice cuántas veces se va
|
| 430 |
+
a multiplicar ese número por sí mismo,
|
| 431 |
+
|
| 432 |
+
06:52.835 --> 06:55.217
|
| 433 |
+
en este caso si tú elevas una potencia
|
| 434 |
+
|
| 435 |
+
06:55.343 --> 06:59.078
|
| 436 |
+
que es base 2 por ejemplo un 2 a la 3,
|
| 437 |
+
|
| 438 |
+
06:59.203 --> 07:02.101
|
| 439 |
+
este sería 2 por 2, 4 por 2, 8,
|
| 440 |
+
|
| 441 |
+
07:02.227 --> 07:06.311
|
| 442 |
+
el resultado de elevar 2
|
| 443 |
+
a la tercera potencia es un 8,
|
| 444 |
+
|
| 445 |
+
07:06.437 --> 07:10.450
|
| 446 |
+
así de fácil es como funcionan las potencias
|
| 447 |
+
y eso es lo que tenemos en el código,
|
| 448 |
+
|
| 449 |
+
07:10.576 --> 07:13.218
|
| 450 |
+
vamos a verlo,
|
| 451 |
+
justo aquí puedes ver
|
| 452 |
+
|
| 453 |
+
07:13.344 --> 07:16.777
|
| 454 |
+
que tengo mi ciclo for,
|
| 455 |
+
imagínate que le paso el en base,
|
| 456 |
+
|
| 457 |
+
07:16.903 --> 07:22.614
|
| 458 |
+
le paso 2 y en n le paso 3,
|
| 459 |
+
que sería un 2 a la 3,
|
| 460 |
+
|
| 461 |
+
07:22.740 --> 07:26.440
|
| 462 |
+
ok, una base 2 exponencial 3,
|
| 463 |
+
|
| 464 |
+
07:26.566 --> 07:32.277
|
| 465 |
+
comenzamos entonces, p comienza
|
| 466 |
+
valiendo 1 y comienza valiendo 1,
|
| 467 |
+
|
| 468 |
+
07:32.403 --> 07:37.305
|
| 469 |
+
dice i o sea 1 es menor o igual que n,
|
| 470 |
+
n era 3, si,
|
| 471 |
+
|
| 472 |
+
07:37.431 --> 07:39.841
|
| 473 |
+
1 si es menor o igual que 3,
|
| 474 |
+
|
| 475 |
+
07:39.967 --> 07:42.160
|
| 476 |
+
entonces incrementamos y ahora
|
| 477 |
+
|
| 478 |
+
07:42.286 --> 07:48.640
|
| 479 |
+
en este caso i vale 2, ok,
|
| 480 |
+
|
| 481 |
+
07:48.640 --> 07:52.693
|
| 482 |
+
sólo para llevar la cuenta,
|
| 483 |
+
p que habíamos inicializado en 1
|
| 484 |
+
|
| 485 |
+
07:52.819 --> 07:56.880
|
| 486 |
+
simplemente dice 1 es
|
| 487 |
+
|
| 488 |
+
07:56.880 --> 08:01.641
|
| 489 |
+
o a este valor p le vamos a asignar
|
| 490 |
+
el número 1 por la base,
|
| 491 |
+
|
| 492 |
+
08:01.767 --> 08:05.476
|
| 493 |
+
esta es la primera
|
| 494 |
+
multiplicación, sería 1 por 2,
|
| 495 |
+
|
| 496 |
+
08:05.602 --> 08:08.232
|
| 497 |
+
ok, ¿cuánto valió p en este caso?
|
| 498 |
+
|
| 499 |
+
08:08.358 --> 08:14.422
|
| 500 |
+
la primera vez tuvo un valor de 2,
|
| 501 |
+
excelente, ahora vamos a poner p acá
|
| 502 |
+
|
| 503 |
+
08:14.548 --> 08:18.494
|
| 504 |
+
de nuevo y vamos
|
| 505 |
+
a ejecutar otra vez nuestro bucle,
|
| 506 |
+
|
| 507 |
+
08:18.620 --> 08:25.925
|
| 508 |
+
ahora i que es 2
|
| 509 |
+
es menor que n, si, n es 3 y 2
|
| 510 |
+
|
| 511 |
+
08:26.051 --> 08:31.098
|
| 512 |
+
es menor o igual a 3,
|
| 513 |
+
si, pasa por la condición,
|
| 514 |
+
|
| 515 |
+
08:31.223 --> 08:37.313
|
| 516 |
+
incrementamos, ahora
|
| 517 |
+
i va a valer 3, excelente,
|
| 518 |
+
|
| 519 |
+
08:37.439 --> 08:43.658
|
| 520 |
+
y p que valía 2 va a ser
|
| 521 |
+
igual a 2 por 2, ahora p vale 4,
|
| 522 |
+
|
| 523 |
+
08:44.504 --> 08:49.034
|
| 524 |
+
se vuelve a iterar
|
| 525 |
+
i que es 3 es menor o igual que n,
|
| 526 |
+
|
| 527 |
+
08:49.160 --> 08:51.296
|
| 528 |
+
pues no es menor pero si es igual,
|
| 529 |
+
|
| 530 |
+
08:51.421 --> 08:54.912
|
| 531 |
+
entonces excelente,
|
| 532 |
+
se ejecuta y p valía 4,
|
| 533 |
+
|
| 534 |
+
08:55.038 --> 09:00.087
|
| 535 |
+
entonces 4 por 2 es 8,
|
| 536 |
+
por último p termina valiendo 8,
|
| 537 |
+
|
| 538 |
+
09:00.213 --> 09:03.240
|
| 539 |
+
excelente, ya viste
|
| 540 |
+
cómo pasamos esta lógica
|
| 541 |
+
|
| 542 |
+
09:03.240 --> 09:05.620
|
| 543 |
+
matemática a un algoritmo o a una serie
|
| 544 |
+
|
| 545 |
+
09:05.745 --> 09:08.600
|
| 546 |
+
de instrucciones a seguir
|
| 547 |
+
que nos ayudan a realizar
|
| 548 |
+
|
| 549 |
+
09:08.600 --> 09:12.265
|
| 550 |
+
la potencia de un número,
|
| 551 |
+
esto es excelente
|
| 552 |
+
|
| 553 |
+
09:12.391 --> 09:16.300
|
| 554 |
+
y ahora vamos a ver que funcione,
|
| 555 |
+
probemos ya en código directamente,
|
| 556 |
+
|
| 557 |
+
09:16.426 --> 09:17.763
|
| 558 |
+
para esto voy a borrar todos
|
| 559 |
+
|
| 560 |
+
09:17.889 --> 09:20.511
|
| 561 |
+
los números auxiliares
|
| 562 |
+
raros que le metí porque si no,
|
| 563 |
+
|
| 564 |
+
09:20.637 --> 09:23.818
|
| 565 |
+
no va a compilar de ninguna forma,
|
| 566 |
+
|
| 567 |
+
09:23.943 --> 09:27.720
|
| 568 |
+
vamos a ponerle p por base
|
| 569 |
+
y date cuenta cómo al utilizar
|
| 570 |
+
|
| 571 |
+
09:27.720 --> 09:30.344
|
| 572 |
+
estas variables nos evitamos
|
| 573 |
+
tener que quemar valores,
|
| 574 |
+
|
| 575 |
+
09:30.470 --> 09:33.583
|
| 576 |
+
eso es algo que es simple
|
| 577 |
+
y sencillamente excelente,
|
| 578 |
+
|
| 579 |
+
09:33.709 --> 09:35.353
|
| 580 |
+
es una buena práctica,
|
| 581 |
+
|
| 582 |
+
09:36.223 --> 09:39.920
|
| 583 |
+
muy bien ya lo tenemos todo listo,
|
| 584 |
+
i igual a 1, p igual a base,
|
| 585 |
+
|
| 586 |
+
09:39.920 --> 09:46.140
|
| 587 |
+
excelente, return, vamos
|
| 588 |
+
a guardar ctrl s y procede
|
| 589 |
+
|
| 590 |
+
09:46.266 --> 09:50.954
|
| 591 |
+
a compilar el código,
|
| 592 |
+
ya sabes que se compila con f6,
|
| 593 |
+
|
| 594 |
+
09:51.080 --> 09:55.253
|
| 595 |
+
uy y veamos los resultados,
|
| 596 |
+
dice cuando n vale a 0
|
| 597 |
+
|
| 598 |
+
09:55.379 --> 09:59.620
|
| 599 |
+
el resultado de la potencia es 1,
|
| 600 |
+
si 2 a la 0 efectivamente nos da 1,
|
| 601 |
+
|
| 602 |
+
09:59.745 --> 10:05.600
|
| 603 |
+
luego cuando la potencia es 1,
|
| 604 |
+
o sea 2 a la 1 nos da 2, 2 a la 2 nos da 4,
|
| 605 |
+
|
| 606 |
+
10:05.600 --> 10:07.758
|
| 607 |
+
2 a la 3 nos da 8
|
| 608 |
+
y mira que este
|
| 609 |
+
|
| 610 |
+
10:07.883 --> 10:10.040
|
| 611 |
+
es el que nosotros hicimos
|
| 612 |
+
a mano y nos da lo mismo
|
| 613 |
+
|
| 614 |
+
10:10.040 --> 10:13.617
|
| 615 |
+
a mano que por código,
|
| 616 |
+
eso significa que está excelente,
|
| 617 |
+
|
| 618 |
+
10:13.743 --> 10:18.525
|
| 619 |
+
luego 4, 16, 2 a la 5 nos da 32,
|
| 620 |
+
|
| 621 |
+
10:18.651 --> 10:24.997
|
| 622 |
+
2 a la 6 nos da 64,
|
| 623 |
+
2 a la 7 128, 2 a la 8 256
|
| 624 |
+
|
| 625 |
+
10:25.123 --> 10:29.600
|
| 626 |
+
y así va incrementando
|
| 627 |
+
sucesivamente con cada uno
|
| 628 |
+
|
| 629 |
+
10:29.600 --> 10:34.314
|
| 630 |
+
de los valores, mira que ya
|
| 631 |
+
con esto hiciste tu primer programa
|
| 632 |
+
|
| 633 |
+
10:34.440 --> 10:35.641
|
| 634 |
+
que utiliza una función,
|
| 635 |
+
|
| 636 |
+
10:35.767 --> 10:38.658
|
| 637 |
+
cuéntame si te emocionó bastante
|
| 638 |
+
en los comentarios,
|
| 639 |
+
|
| 640 |
+
10:38.783 --> 10:40.960
|
| 641 |
+
también recuerda que las funciones
|
| 642 |
+
las vamos a utilizar
|
| 643 |
+
|
| 644 |
+
10:40.960 --> 10:43.418
|
| 645 |
+
muchísimo en el lenguaje C,
|
| 646 |
+
siempre que tengas
|
| 647 |
+
|
| 648 |
+
10:43.543 --> 10:46.280
|
| 649 |
+
un bloque de código que
|
| 650 |
+
vas a reutilizar bastante
|
| 651 |
+
|
| 652 |
+
10:46.280 --> 10:49.618
|
| 653 |
+
en tus programas,
|
| 654 |
+
necesitas meter ese código
|
| 655 |
+
|
| 656 |
+
10:49.743 --> 10:53.420
|
| 657 |
+
en una función, simplemente
|
| 658 |
+
es una buena práctica,
|
| 659 |
+
|
| 660 |
+
10:53.546 --> 11:00.080
|
| 661 |
+
con esto dicho
|
| 662 |
+
nos vemos en la siguiente clase.
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/03-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://platzi.com/clases/fundamentos-matematicas/
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/03-powerofintegers_a2741312-e4b5-409e-b3ec-6a2e15a430b8.c
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include <stdio.h>
|
| 2 |
+
|
| 3 |
+
int power(int base, int n);
|
| 4 |
+
|
| 5 |
+
int main()
|
| 6 |
+
{
|
| 7 |
+
int i;
|
| 8 |
+
for (i = 0; i < 10; i++)
|
| 9 |
+
{
|
| 10 |
+
printf("n = %d resultado de la potencia = %d\n", i, power(2,i));
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
return 0;
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
int power(int base, int n)
|
| 17 |
+
{
|
| 18 |
+
int i, p;
|
| 19 |
+
p = 1;
|
| 20 |
+
for (i = 0; i <= n; i++)
|
| 21 |
+
{
|
| 22 |
+
p = p * base;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
return p;
|
| 26 |
+
}
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/04-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/04-Tipos de Funciones en C Argumentos y Valores de Retorno.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9530e616989df11579d501533225ce4f675618a46ad3665219e042220ef852f1
|
| 3 |
+
size 104503652
|
subir/Curso de Funciones en C/01-Introducción a las funciones en C/04-Tipos de Funciones en C Argumentos y Valores de Retorno.vtt
ADDED
|
@@ -0,0 +1,650 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:03.000 --> 00:05.981
|
| 4 |
+
Bien, hasta aquí ya aprendiste cuestiones
|
| 5 |
+
|
| 6 |
+
00:06.107 --> 00:09.160
|
| 7 |
+
importantísimas sobre
|
| 8 |
+
el manejo de funciones,
|
| 9 |
+
|
| 10 |
+
00:09.160 --> 00:11.372
|
| 11 |
+
como son la declaración de la función,
|
| 12 |
+
|
| 13 |
+
00:11.498 --> 00:13.701
|
| 14 |
+
que es cuando le dices al compilador,
|
| 15 |
+
|
| 16 |
+
00:13.827 --> 00:16.268
|
| 17 |
+
¿esta función existe?
|
| 18 |
+
¿Recuerdas lo que hacemos
|
| 19 |
+
|
| 20 |
+
00:16.393 --> 00:19.200
|
| 21 |
+
en la parte de arriba
|
| 22 |
+
donde estamos definiendo variables,
|
| 23 |
+
|
| 24 |
+
00:19.326 --> 00:21.288
|
| 25 |
+
donde estamos utilizando nuestros defines,
|
| 26 |
+
|
| 27 |
+
00:21.414 --> 00:24.805
|
| 28 |
+
donde estamos importando
|
| 29 |
+
nuestras bibliotecas de código?
|
| 30 |
+
|
| 31 |
+
00:24.931 --> 00:27.168
|
| 32 |
+
También ya sabes
|
| 33 |
+
cómo llamar una función,
|
| 34 |
+
|
| 35 |
+
00:27.294 --> 00:30.599
|
| 36 |
+
que escribes el nombre, paréntesis,
|
| 37 |
+
le pasas o no argumentos,
|
| 38 |
+
|
| 39 |
+
00:30.724 --> 00:34.216
|
| 40 |
+
y por supuesto también
|
| 41 |
+
sabes cómo declarar una función,
|
| 42 |
+
|
| 43 |
+
00:34.342 --> 00:35.998
|
| 44 |
+
que es donde escribimos todo el código
|
| 45 |
+
|
| 46 |
+
00:36.123 --> 00:38.760
|
| 47 |
+
que va a vivir dentro de la misma.
|
| 48 |
+
|
| 49 |
+
00:38.760 --> 00:40.649
|
| 50 |
+
Ahora te quiero hablar
|
| 51 |
+
de algo importantísimo,
|
| 52 |
+
|
| 53 |
+
00:40.775 --> 00:43.406
|
| 54 |
+
que son los tipos de funciones
|
| 55 |
+
|
| 56 |
+
00:43.532 --> 00:47.034
|
| 57 |
+
según el valor o el dato
|
| 58 |
+
que te van a retornar.
|
| 59 |
+
|
| 60 |
+
00:47.160 --> 00:50.052
|
| 61 |
+
Vamos a verlo. En Visual Studio Code,
|
| 62 |
+
como siempre,
|
| 63 |
+
|
| 64 |
+
00:50.178 --> 00:52.740
|
| 65 |
+
vamos a abrir un nuevo archivo,
|
| 66 |
+
vamos a guardarlo,
|
| 67 |
+
|
| 68 |
+
00:52.866 --> 00:56.859
|
| 69 |
+
le voy a poner function types,
|
| 70 |
+
|
| 71 |
+
00:58.732 --> 01:01.362
|
| 72 |
+
types per argument,
|
| 73 |
+
|
| 74 |
+
01:01.622 --> 01:07.607
|
| 75 |
+
per return type. Listo, punto C.
|
| 76 |
+
|
| 77 |
+
01:07.733 --> 01:10.284
|
| 78 |
+
Y aquí te quiero hablar de algunos temas
|
| 79 |
+
|
| 80 |
+
01:10.410 --> 01:14.930
|
| 81 |
+
que vamos a tener.
|
| 82 |
+
Lo primero es que vamos a tener funciones
|
| 83 |
+
|
| 84 |
+
01:15.763 --> 01:22.753
|
| 85 |
+
sin argumentos
|
| 86 |
+
y sin valor de retorno.
|
| 87 |
+
|
| 88 |
+
01:23.825 --> 01:27.107
|
| 89 |
+
Estas funciones van a utilizar el tipo void
|
| 90 |
+
|
| 91 |
+
01:27.233 --> 01:30.298
|
| 92 |
+
y van a declararse de la siguiente forma,
|
| 93 |
+
|
| 94 |
+
01:30.424 --> 01:34.736
|
| 95 |
+
function name, y en donde deberías
|
| 96 |
+
ponerle el argumento,
|
| 97 |
+
|
| 98 |
+
01:34.862 --> 01:40.476
|
| 99 |
+
simplemente vas a abrir
|
| 100 |
+
y cerrar tus paréntesis.
|
| 101 |
+
|
| 102 |
+
01:40.602 --> 01:43.141
|
| 103 |
+
Vamos a poner punto y coma,
|
| 104 |
+
|
| 105 |
+
01:43.267 --> 01:45.007
|
| 106 |
+
ya le ponemos punto y coma
|
| 107 |
+
|
| 108 |
+
01:45.133 --> 01:47.122
|
| 109 |
+
y esa sería la declaración de una función
|
| 110 |
+
|
| 111 |
+
01:47.248 --> 01:50.536
|
| 112 |
+
que no va a tener
|
| 113 |
+
ningún tipo de argumentos
|
| 114 |
+
|
| 115 |
+
01:50.662 --> 01:53.139
|
| 116 |
+
y no va a retornar valores de ningún tipo.
|
| 117 |
+
|
| 118 |
+
01:53.265 --> 01:58.090
|
| 119 |
+
Por ejemplo, esta función simplemente
|
| 120 |
+
la llamarías así, function name,
|
| 121 |
+
|
| 122 |
+
01:58.585 --> 02:01.251
|
| 123 |
+
paréntesis y punto y coma,
|
| 124 |
+
|
| 125 |
+
02:01.377 --> 02:05.098
|
| 126 |
+
y esto sería el llamado a la función,
|
| 127 |
+
y obviamente esta función
|
| 128 |
+
|
| 129 |
+
02:05.223 --> 02:07.447
|
| 130 |
+
la definirías de la siguiente forma,
|
| 131 |
+
|
| 132 |
+
02:07.573 --> 02:14.167
|
| 133 |
+
void function name, punto y coma.
|
| 134 |
+
Perfecto.
|
| 135 |
+
|
| 136 |
+
02:14.582 --> 02:21.135
|
| 137 |
+
Luego vamos a tener
|
| 138 |
+
funciones con argumentos
|
| 139 |
+
|
| 140 |
+
02:23.299 --> 02:27.727
|
| 141 |
+
pero sin valores a retornar.
|
| 142 |
+
|
| 143 |
+
02:30.152 --> 02:32.412
|
| 144 |
+
Estas funciones se van a definir igual
|
| 145 |
+
|
| 146 |
+
02:32.538 --> 02:36.788
|
| 147 |
+
utilizando la instrucción void,
|
| 148 |
+
sería function name,
|
| 149 |
+
|
| 150 |
+
02:37.796 --> 02:41.176
|
| 151 |
+
y obviamente esta sí tendría
|
| 152 |
+
tus argumentos.
|
| 153 |
+
|
| 154 |
+
02:41.302 --> 02:44.977
|
| 155 |
+
Entonces tendríamos que pasarle
|
| 156 |
+
un tipo de dato,
|
| 157 |
+
|
| 158 |
+
02:45.103 --> 02:46.672
|
| 159 |
+
lo que sea que vayamos a tener aquí,
|
| 160 |
+
|
| 161 |
+
02:46.798 --> 02:49.998
|
| 162 |
+
y quiero profundizar un poquito más
|
| 163 |
+
en estos argumentos.
|
| 164 |
+
|
| 165 |
+
02:50.123 --> 02:54.095
|
| 166 |
+
Quiero contarte que estos argumentos
|
| 167 |
+
pueden ser de todos los tipos de datos
|
| 168 |
+
|
| 169 |
+
02:54.221 --> 02:56.776
|
| 170 |
+
que ya te hablé previamente
|
| 171 |
+
en cursos anteriores.
|
| 172 |
+
|
| 173 |
+
02:56.902 --> 02:58.582
|
| 174 |
+
Eso es todo lo que necesitas saber.
|
| 175 |
+
|
| 176 |
+
02:58.708 --> 03:03.099
|
| 177 |
+
Obviamente no son solo ints,
|
| 178 |
+
si tú quisieras puedes trabajar con float,
|
| 179 |
+
|
| 180 |
+
03:03.225 --> 03:06.840
|
| 181 |
+
si tú quisieras puedes trabajar
|
| 182 |
+
con un long, puedes trabajar con todo tipo
|
| 183 |
+
|
| 184 |
+
03:06.840 --> 03:10.597
|
| 185 |
+
de datos de argumentos,
|
| 186 |
+
pero recuerda que C es un lenguaje tipado,
|
| 187 |
+
|
| 188 |
+
03:10.723 --> 03:12.680
|
| 189 |
+
de hecho se cataloga como un lenguaje
|
| 190 |
+
|
| 191 |
+
03:12.806 --> 03:17.036
|
| 192 |
+
relativamente débilmente tipado,
|
| 193 |
+
pero eso simple y sencillamente
|
| 194 |
+
|
| 195 |
+
03:17.162 --> 03:20.629
|
| 196 |
+
no evita que el compilador siempre te pida
|
| 197 |
+
|
| 198 |
+
03:20.755 --> 03:23.280
|
| 199 |
+
el tipo de datos que le estás requiriendo
|
| 200 |
+
|
| 201 |
+
03:23.280 --> 03:25.098
|
| 202 |
+
al lenguaje, y con esto dicho,
|
| 203 |
+
|
| 204 |
+
03:25.224 --> 03:28.041
|
| 205 |
+
pues debes de ser muy cuidadoso
|
| 206 |
+
al escribirlo,
|
| 207 |
+
|
| 208 |
+
03:28.239 --> 03:31.606
|
| 209 |
+
y aquí te va un tip
|
| 210 |
+
que yo te he dado desde el primer curso,
|
| 211 |
+
|
| 212 |
+
03:31.732 --> 03:35.818
|
| 213 |
+
siempre trata de saber cuáles
|
| 214 |
+
van a ser los resultados de tus cálculos
|
| 215 |
+
|
| 216 |
+
03:35.943 --> 03:39.141
|
| 217 |
+
dentro de las funciones de antemano
|
| 218 |
+
para que no te agarre por sorpresa
|
| 219 |
+
|
| 220 |
+
03:39.267 --> 03:42.489
|
| 221 |
+
y no sea que un tipo de dato
|
| 222 |
+
que declaraste se quede corto
|
| 223 |
+
|
| 224 |
+
03:42.615 --> 03:46.644
|
| 225 |
+
y tengas el famoso de que se
|
| 226 |
+
desborda la memoria,
|
| 227 |
+
|
| 228 |
+
03:46.770 --> 03:49.547
|
| 229 |
+
es decir, no cabe la información
|
| 230 |
+
que tú quieres guardar
|
| 231 |
+
|
| 232 |
+
03:49.673 --> 03:52.919
|
| 233 |
+
en la variable que le asignaste,
|
| 234 |
+
demás cuestiones.
|
| 235 |
+
|
| 236 |
+
03:53.045 --> 03:55.708
|
| 237 |
+
Antes de continuar
|
| 238 |
+
con este segundo ejemplo
|
| 239 |
+
|
| 240 |
+
03:55.833 --> 03:59.620
|
| 241 |
+
de unas funciones con argumentos
|
| 242 |
+
pero sin valores a retornar,
|
| 243 |
+
|
| 244 |
+
03:59.746 --> 04:03.802
|
| 245 |
+
bueno, aquí te quiero decir
|
| 246 |
+
que FunctionName, bueno,
|
| 247 |
+
|
| 248 |
+
04:03.928 --> 04:07.942
|
| 249 |
+
para la parte que sería la definición
|
| 250 |
+
de nuestra función,
|
| 251 |
+
|
| 252 |
+
04:08.068 --> 04:10.880
|
| 253 |
+
hay que abrir y cerrar
|
| 254 |
+
nuestras llavecitas,
|
| 255 |
+
|
| 256 |
+
04:10.880 --> 04:16.994
|
| 257 |
+
aquí iría la lógica, lógica,
|
| 258 |
+
y aquí no lleva punto y coma, ¿ok?
|
| 259 |
+
|
| 260 |
+
04:17.120 --> 04:20.298
|
| 261 |
+
Recuerda, el primero,
|
| 262 |
+
lo que hacemos cuando
|
| 263 |
+
|
| 264 |
+
04:20.423 --> 04:22.209
|
| 265 |
+
escribimos la función por primera vez,
|
| 266 |
+
|
| 267 |
+
04:22.335 --> 04:25.972
|
| 268 |
+
por decirlo de alguna forma,
|
| 269 |
+
contarle al compilador
|
| 270 |
+
|
| 271 |
+
04:26.098 --> 04:30.369
|
| 272 |
+
que nuestra función existe,
|
| 273 |
+
se llama declaración de la función,
|
| 274 |
+
|
| 275 |
+
04:30.495 --> 04:32.518
|
| 276 |
+
tenemos la forma de ejecutar
|
| 277 |
+
|
| 278 |
+
04:32.643 --> 04:38.560
|
| 279 |
+
o llamar a nuestra función y vamos a tener
|
| 280 |
+
la parte de la definición.
|
| 281 |
+
|
| 282 |
+
04:38.560 --> 04:40.678
|
| 283 |
+
Aquí es muy importante
|
| 284 |
+
que no te confundas,
|
| 285 |
+
|
| 286 |
+
04:40.803 --> 04:42.453
|
| 287 |
+
por eso estoy haciendo este hincapié,
|
| 288 |
+
|
| 289 |
+
04:42.579 --> 04:45.068
|
| 290 |
+
tenemos lo primero que es declaración
|
| 291 |
+
|
| 292 |
+
04:45.194 --> 04:48.187
|
| 293 |
+
y vamos a tener la parte de definición
|
| 294 |
+
|
| 295 |
+
04:48.313 --> 04:52.013
|
| 296 |
+
que es cuando nosotros
|
| 297 |
+
escribimos la lógica de nuestra función,
|
| 298 |
+
|
| 299 |
+
04:52.139 --> 04:55.160
|
| 300 |
+
ese es como un repaso
|
| 301 |
+
para que lo tengas en cuenta.
|
| 302 |
+
|
| 303 |
+
04:55.160 --> 04:56.740
|
| 304 |
+
Bueno, continuamos con el ejemplo
|
| 305 |
+
|
| 306 |
+
04:56.866 --> 04:59.702
|
| 307 |
+
de funciones con argumentos
|
| 308 |
+
pero sin valores a retornar,
|
| 309 |
+
|
| 310 |
+
04:59.828 --> 05:04.536
|
| 311 |
+
recuerda que entonces la instrucción void
|
| 312 |
+
nos va a servir para indicar
|
| 313 |
+
|
| 314 |
+
05:04.662 --> 05:09.415
|
| 315 |
+
que el return type de nuestra función,
|
| 316 |
+
si te acuerdas del prototipo de la función,
|
| 317 |
+
|
| 318 |
+
05:09.541 --> 05:12.947
|
| 319 |
+
esto se llama return type
|
| 320 |
+
|
| 321 |
+
05:14.401 --> 05:16.758
|
| 322 |
+
y este return type puede ser,
|
| 323 |
+
|
| 324 |
+
05:16.884 --> 05:18.883
|
| 325 |
+
como ya vimos anteriormente, un int,
|
| 326 |
+
|
| 327 |
+
05:19.009 --> 05:23.038
|
| 328 |
+
también puede ser un void y el void
|
| 329 |
+
simple y sencillamente
|
| 330 |
+
|
| 331 |
+
05:23.163 --> 05:26.196
|
| 332 |
+
indica que no nos va a retornar nada
|
| 333 |
+
|
| 334 |
+
05:26.322 --> 05:27.847
|
| 335 |
+
y aquí quizás te preguntas
|
| 336 |
+
|
| 337 |
+
05:27.973 --> 05:31.456
|
| 338 |
+
¿para qué voy a yo utilizar una función
|
| 339 |
+
que no me retorna nada?
|
| 340 |
+
|
| 341 |
+
05:31.582 --> 05:33.760
|
| 342 |
+
¿Qué sentido tiene?
|
| 343 |
+
|
| 344 |
+
05:33.760 --> 05:36.348
|
| 345 |
+
Pues la verdad es
|
| 346 |
+
que tiene muchísimo sentido,
|
| 347 |
+
|
| 348 |
+
05:36.473 --> 05:38.573
|
| 349 |
+
por ejemplo, una de las aplicaciones,
|
| 350 |
+
|
| 351 |
+
05:38.699 --> 05:42.241
|
| 352 |
+
de hecho la aplicación más importante
|
| 353 |
+
que tiene el lenguaje C hoy en día
|
| 354 |
+
|
| 355 |
+
05:42.367 --> 05:44.000
|
| 356 |
+
es en sistemas embebidos,
|
| 357 |
+
|
| 358 |
+
05:44.000 --> 05:47.193
|
| 359 |
+
todo lo que tiene que ver con desarrollo
|
| 360 |
+
de circuitos electrónicos,
|
| 361 |
+
|
| 362 |
+
05:47.319 --> 05:50.798
|
| 363 |
+
lo que tiene que ver
|
| 364 |
+
con sistemas como por ejemplo
|
| 365 |
+
|
| 366 |
+
05:50.923 --> 05:53.944
|
| 367 |
+
drivers y cuestiones de ese tipo
|
| 368 |
+
y cuando hablamos de hardware,
|
| 369 |
+
|
| 370 |
+
05:54.070 --> 05:56.728
|
| 371 |
+
muchas veces tú puedes ejecutar
|
| 372 |
+
|
| 373 |
+
05:56.854 --> 05:58.891
|
| 374 |
+
una función para que haga algo,
|
| 375 |
+
|
| 376 |
+
05:59.017 --> 06:02.533
|
| 377 |
+
por ejemplo que cambie un valor de 0 a 1
|
| 378 |
+
pero no necesitas
|
| 379 |
+
|
| 380 |
+
06:02.659 --> 06:06.130
|
| 381 |
+
que esa función haga
|
| 382 |
+
ningún tipo de procesamiento numérico
|
| 383 |
+
|
| 384 |
+
06:06.256 --> 06:07.896
|
| 385 |
+
necesariamente que te va a retornar
|
| 386 |
+
|
| 387 |
+
06:08.021 --> 06:10.683
|
| 388 |
+
para que tú hagas algo
|
| 389 |
+
con esos números, ¿por qué?
|
| 390 |
+
|
| 391 |
+
06:10.809 --> 06:12.673
|
| 392 |
+
Porque como estás trabajando con hardware
|
| 393 |
+
|
| 394 |
+
06:12.799 --> 06:15.720
|
| 395 |
+
simplemente le pides a la función,
|
| 396 |
+
oye, configúrame
|
| 397 |
+
|
| 398 |
+
06:15.720 --> 06:18.178
|
| 399 |
+
el robot para que avance hacia adelante
|
| 400 |
+
|
| 401 |
+
06:18.303 --> 06:20.760
|
| 402 |
+
y ya, la función no te necesita
|
| 403 |
+
retornar nada
|
| 404 |
+
|
| 405 |
+
06:20.760 --> 06:23.124
|
| 406 |
+
porque ya hizo que el robot
|
| 407 |
+
vaya hacia adelante
|
| 408 |
+
|
| 409 |
+
06:23.249 --> 06:25.560
|
| 410 |
+
simplemente modificando los ceros y unos
|
| 411 |
+
|
| 412 |
+
06:25.560 --> 06:28.782
|
| 413 |
+
que se van a encargar de cambiar
|
| 414 |
+
la dirección de giro de los motores,
|
| 415 |
+
|
| 416 |
+
06:28.908 --> 06:31.933
|
| 417 |
+
ese es un caso de uso,
|
| 418 |
+
hay muchísimos más.
|
| 419 |
+
|
| 420 |
+
06:32.059 --> 06:36.944
|
| 421 |
+
Vamos a nuestro editor de código,
|
| 422 |
+
te voy a mostrar el ejemplo
|
| 423 |
+
|
| 424 |
+
06:37.070 --> 06:40.765
|
| 425 |
+
de cómo llamarías esta función, es igual,
|
| 426 |
+
function name, obviamente
|
| 427 |
+
|
| 428 |
+
06:40.891 --> 06:45.958
|
| 429 |
+
aquí sí le pasarías el número float
|
| 430 |
+
o la variable que necesites,
|
| 431 |
+
|
| 432 |
+
06:46.084 --> 06:49.760
|
| 433 |
+
pondrías punto y coma y por último
|
| 434 |
+
cómo haríamos la parte
|
| 435 |
+
|
| 436 |
+
06:49.760 --> 06:52.478
|
| 437 |
+
de la definición de nuestra función,
|
| 438 |
+
|
| 439 |
+
06:52.603 --> 06:55.995
|
| 440 |
+
recuerda que la definición es
|
| 441 |
+
donde ponemos el código de la misma,
|
| 442 |
+
|
| 443 |
+
06:56.121 --> 07:01.346
|
| 444 |
+
function name, float,
|
| 445 |
+
|
| 446 |
+
07:03.550 --> 07:07.960
|
| 447 |
+
punto y coma y aquí irían nuestras llaves,
|
| 448 |
+
|
| 449 |
+
07:07.960 --> 07:10.560
|
| 450 |
+
aquí iría la lógica.
|
| 451 |
+
|
| 452 |
+
07:10.560 --> 07:13.774
|
| 453 |
+
Muy bien, con eso ya estamos listos
|
| 454 |
+
con este tipo de funciones
|
| 455 |
+
|
| 456 |
+
07:13.900 --> 07:19.979
|
| 457 |
+
que tienen argumentos, recuerda argumentos
|
| 458 |
+
pero sin valores a retornar,
|
| 459 |
+
|
| 460 |
+
07:20.105 --> 07:23.040
|
| 461 |
+
por ejemplo, si tuvieras
|
| 462 |
+
un pequeño robot móvil
|
| 463 |
+
|
| 464 |
+
07:23.040 --> 07:24.921
|
| 465 |
+
y este robot móvil fuera hacia adelante,
|
| 466 |
+
|
| 467 |
+
07:25.046 --> 07:27.120
|
| 468 |
+
atrás, izquierda o derecha,
|
| 469 |
+
tú podrías hacer
|
| 470 |
+
|
| 471 |
+
07:27.120 --> 07:29.309
|
| 472 |
+
una función que se llame dirección
|
| 473 |
+
|
| 474 |
+
07:29.435 --> 07:33.153
|
| 475 |
+
y el argumento puede ser
|
| 476 |
+
adelante, atrás, izquierda o derecha
|
| 477 |
+
|
| 478 |
+
07:33.279 --> 07:35.619
|
| 479 |
+
y ya conforme tú le pasas el argumento
|
| 480 |
+
|
| 481 |
+
07:35.745 --> 07:37.640
|
| 482 |
+
haces que el robot, que los motores giren
|
| 483 |
+
|
| 484 |
+
07:37.640 --> 07:40.268
|
| 485 |
+
en unas direcciones
|
| 486 |
+
o en otras direcciones,
|
| 487 |
+
|
| 488 |
+
07:40.394 --> 07:42.200
|
| 489 |
+
ese es un caso de uso de una función
|
| 490 |
+
|
| 491 |
+
07:42.200 --> 07:45.459
|
| 492 |
+
que no necesitaría retornarte
|
| 493 |
+
absolutamente nada
|
| 494 |
+
|
| 495 |
+
07:45.585 --> 07:49.400
|
| 496 |
+
y funcionaría perfectamente
|
| 497 |
+
bien porque cumpliría
|
| 498 |
+
|
| 499 |
+
07:49.400 --> 07:50.960
|
| 500 |
+
con su cometido.
|
| 501 |
+
|
| 502 |
+
07:50.960 --> 07:52.262
|
| 503 |
+
Volvemos a nuestro código,
|
| 504 |
+
|
| 505 |
+
07:52.388 --> 07:55.460
|
| 506 |
+
aquí se me fue un pequeño error
|
| 507 |
+
por copiar, casi casi copiar y pegar,
|
| 508 |
+
|
| 509 |
+
07:55.586 --> 07:57.078
|
| 510 |
+
puse el punto y coma,
|
| 511 |
+
|
| 512 |
+
07:57.203 --> 07:59.480
|
| 513 |
+
recuerda que cuando estamos definiendo
|
| 514 |
+
nuestra función
|
| 515 |
+
|
| 516 |
+
07:59.480 --> 08:02.680
|
| 517 |
+
no lleva el punto y coma, continuamos.
|
| 518 |
+
|
| 519 |
+
08:02.680 --> 08:04.856
|
| 520 |
+
Ahora te quiero mostrar
|
| 521 |
+
otro tipo de funciones
|
| 522 |
+
|
| 523 |
+
08:04.982 --> 08:08.564
|
| 524 |
+
que va a ser la función sin argumentos
|
| 525 |
+
|
| 526 |
+
08:10.531 --> 08:14.503
|
| 527 |
+
pero que sí nos retorna un valor,
|
| 528 |
+
|
| 529 |
+
08:14.709 --> 08:20.625
|
| 530 |
+
funciones con argumentos, sin argumentos
|
| 531 |
+
|
| 532 |
+
08:23.432 --> 08:30.416
|
| 533 |
+
pero que sí tiene valores a retornar.
|
| 534 |
+
|
| 535 |
+
08:32.801 --> 08:35.383
|
| 536 |
+
Esta función como ya te lo
|
| 537 |
+
deberías estar imaginando
|
| 538 |
+
|
| 539 |
+
08:35.509 --> 08:38.160
|
| 540 |
+
en este punto,
|
| 541 |
+
pues simple y sencillamente
|
| 542 |
+
|
| 543 |
+
08:38.160 --> 08:42.877
|
| 544 |
+
va a tener el tipo de return type,
|
| 545 |
+
int o float
|
| 546 |
+
|
| 547 |
+
08:43.003 --> 08:45.420
|
| 548 |
+
o lo que sea que queramos retornar
|
| 549 |
+
|
| 550 |
+
08:45.546 --> 08:50.316
|
| 551 |
+
y estas funciones pues igual
|
| 552 |
+
function name no necesitan
|
| 553 |
+
|
| 554 |
+
08:50.441 --> 08:54.080
|
| 555 |
+
tener un argumento, serían así la parte
|
| 556 |
+
|
| 557 |
+
08:54.080 --> 08:58.778
|
| 558 |
+
de la declaración de la función y ya
|
| 559 |
+
por último tendríamos funciones
|
| 560 |
+
|
| 561 |
+
08:58.904 --> 09:05.091
|
| 562 |
+
que tienen con argumentos
|
| 563 |
+
con return value y estas funciones
|
| 564 |
+
|
| 565 |
+
09:06.325 --> 09:09.680
|
| 566 |
+
y estas funciones,
|
| 567 |
+
como te lo debes estar imaginando
|
| 568 |
+
|
| 569 |
+
09:09.680 --> 09:13.743
|
| 570 |
+
van a ser de la siguiente forma,
|
| 571 |
+
function name
|
| 572 |
+
|
| 573 |
+
09:14.389 --> 09:17.660
|
| 574 |
+
y van a tener un tipo de datos
|
| 575 |
+
en el argumento
|
| 576 |
+
|
| 577 |
+
09:17.660 --> 09:23.200
|
| 578 |
+
o varios como cualquier argumento
|
| 579 |
+
de una función en el prototipo de la misma.
|
| 580 |
+
|
| 581 |
+
09:23.200 --> 09:26.495
|
| 582 |
+
Con esto dicho ya vimos los cuatro tipos
|
| 583 |
+
|
| 584 |
+
09:26.621 --> 09:28.780
|
| 585 |
+
de funciones
|
| 586 |
+
con los que te vas a encontrar,
|
| 587 |
+
|
| 588 |
+
09:28.906 --> 09:31.300
|
| 589 |
+
no quiero que te confundas con el void,
|
| 590 |
+
simplemente
|
| 591 |
+
|
| 592 |
+
09:31.426 --> 09:34.194
|
| 593 |
+
indica que no va a haber nada retornando,
|
| 594 |
+
|
| 595 |
+
09:34.320 --> 09:37.198
|
| 596 |
+
eso es absolutamente todo
|
| 597 |
+
lo que te indica el void,
|
| 598 |
+
|
| 599 |
+
09:37.323 --> 09:40.200
|
| 600 |
+
es una función de tipo void,
|
| 601 |
+
|
| 602 |
+
09:40.200 --> 09:42.021
|
| 603 |
+
cuando se declara el return type así,
|
| 604 |
+
|
| 605 |
+
09:42.147 --> 09:45.240
|
| 606 |
+
recuerda que podemos tener todas
|
| 607 |
+
estas combinaciones
|
| 608 |
+
|
| 609 |
+
09:45.240 --> 09:49.588
|
| 610 |
+
que es una función que no tiene
|
| 611 |
+
return type y no tiene argumentos,
|
| 612 |
+
|
| 613 |
+
09:49.714 --> 09:53.338
|
| 614 |
+
una función que no tiene return type
|
| 615 |
+
y tiene argumentos,
|
| 616 |
+
|
| 617 |
+
09:53.463 --> 09:57.086
|
| 618 |
+
una función que tiene
|
| 619 |
+
return type pero no tiene argumentos
|
| 620 |
+
|
| 621 |
+
09:57.212 --> 09:59.318
|
| 622 |
+
y la función que lo tiene todo,
|
| 623 |
+
|
| 624 |
+
09:59.443 --> 10:03.560
|
| 625 |
+
que tiene un return type
|
| 626 |
+
y que tiene también argumentos.
|
| 627 |
+
|
| 628 |
+
10:03.560 --> 10:05.866
|
| 629 |
+
En la próxima clase
|
| 630 |
+
te voy a mostrar un ejemplo
|
| 631 |
+
|
| 632 |
+
10:05.991 --> 10:08.600
|
| 633 |
+
de una función de este último
|
| 634 |
+
|
| 635 |
+
10:08.600 --> 10:10.728
|
| 636 |
+
porque creo que puede ser el más difícil,
|
| 637 |
+
|
| 638 |
+
10:10.853 --> 10:14.127
|
| 639 |
+
de hecho. de este primero
|
| 640 |
+
que es la función que no tiene return type
|
| 641 |
+
|
| 642 |
+
10:14.253 --> 10:15.649
|
| 643 |
+
y que no tiene argumentos
|
| 644 |
+
|
| 645 |
+
10:15.775 --> 10:17.240
|
| 646 |
+
porque seguro te estás preguntando bueno,
|
| 647 |
+
|
| 648 |
+
10:17.240 --> 10:22.680
|
| 649 |
+
y eso qué, para qué lo voy a utilizar pues
|
| 650 |
+
ya lo veremos en la siguiente clase.
|
subir/Curso de Funciones en C/02-Manejo de funciones en C/01-Funciones en C Uso de void y manejo de return types.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:70dfb694de5cc676bbbf5ea148443b817be70ab96b9e029d63d5810ede6d948f
|
| 3 |
+
size 95252085
|
subir/Curso de Funciones en C/02-Manejo de funciones en C/01-Funciones en C Uso de void y manejo de return types.vtt
ADDED
|
@@ -0,0 +1,561 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:03.000 --> 00:05.233
|
| 4 |
+
Bueno, veamos un ejemplo de una función
|
| 5 |
+
|
| 6 |
+
00:05.359 --> 00:09.487
|
| 7 |
+
que no reciba argumentos
|
| 8 |
+
y que no tenga un return type.
|
| 9 |
+
|
| 10 |
+
00:09.613 --> 00:11.728
|
| 11 |
+
Vamos a nuestro editor de código,
|
| 12 |
+
|
| 13 |
+
00:11.853 --> 00:14.660
|
| 14 |
+
archivo nuevo, guardamos.
|
| 15 |
+
Lo primero que vamos a hacer
|
| 16 |
+
|
| 17 |
+
00:14.660 --> 00:19.107
|
| 18 |
+
es llamar nuestro include
|
| 19 |
+
y vamos a importar nuestra stdio,
|
| 20 |
+
|
| 21 |
+
00:19.233 --> 00:20.480
|
| 22 |
+
que es la clásica librería
|
| 23 |
+
|
| 24 |
+
00:20.480 --> 00:22.987
|
| 25 |
+
que hemos estado
|
| 26 |
+
usando en nuestros cursos.
|
| 27 |
+
|
| 28 |
+
00:23.113 --> 00:27.474
|
| 29 |
+
Luego vamos a poner
|
| 30 |
+
nuestro main. Perfecto.
|
| 31 |
+
|
| 32 |
+
00:27.600 --> 00:30.034
|
| 33 |
+
No necesito ningún tipo de argumento acá.
|
| 34 |
+
|
| 35 |
+
00:30.160 --> 00:32.760
|
| 36 |
+
Ahora tú ya sabes que
|
| 37 |
+
esto es una función y sí,
|
| 38 |
+
|
| 39 |
+
00:32.760 --> 00:35.744
|
| 40 |
+
es la función en donde está
|
| 41 |
+
todo tu código en C.
|
| 42 |
+
|
| 43 |
+
00:35.870 --> 00:38.560
|
| 44 |
+
Ya ahora también sabes
|
| 45 |
+
que esta función tiene
|
| 46 |
+
|
| 47 |
+
00:38.560 --> 00:41.911
|
| 48 |
+
un return type de tipo entero
|
| 49 |
+
y por eso retornamos
|
| 50 |
+
|
| 51 |
+
00:42.037 --> 00:44.772
|
| 52 |
+
un cero al final
|
| 53 |
+
y esto le indica al compilador
|
| 54 |
+
|
| 55 |
+
00:44.898 --> 00:47.893
|
| 56 |
+
que todo se ejecutó sin problemas.
|
| 57 |
+
|
| 58 |
+
00:48.019 --> 00:52.840
|
| 59 |
+
Tenemos el main y bueno,
|
| 60 |
+
no voy a necesitar pasar nada
|
| 61 |
+
|
| 62 |
+
00:52.840 --> 00:56.416
|
| 63 |
+
de estos argumentos que me pone aquí
|
| 64 |
+
Visual Studio Code por defecto.
|
| 65 |
+
|
| 66 |
+
00:56.542 --> 00:59.543
|
| 67 |
+
Eso no se necesita. Vamos a continuar.
|
| 68 |
+
|
| 69 |
+
01:00.910 --> 01:04.993
|
| 70 |
+
Ahora vamos a ver qué podemos sacar
|
| 71 |
+
|
| 72 |
+
01:05.119 --> 01:06.845
|
| 73 |
+
con este tipo de funciones.
|
| 74 |
+
|
| 75 |
+
01:06.971 --> 01:11.176
|
| 76 |
+
Primero vamos a definir nuestra función
|
| 77 |
+
que, como ya te lo había dicho,
|
| 78 |
+
|
| 79 |
+
01:11.302 --> 01:13.873
|
| 80 |
+
va a ser de tipo void.
|
| 81 |
+
Así que ponemos void.
|
| 82 |
+
|
| 83 |
+
01:13.999 --> 01:16.869
|
| 84 |
+
Ese es nuestro return type.
|
| 85 |
+
Luego declaramos
|
| 86 |
+
|
| 87 |
+
01:16.994 --> 01:19.276
|
| 88 |
+
nuestra función que sería demo,
|
| 89 |
+
|
| 90 |
+
01:19.934 --> 01:23.318
|
| 91 |
+
simple y sencillamente,
|
| 92 |
+
y le indicamos que va a ser
|
| 93 |
+
|
| 94 |
+
01:23.443 --> 01:26.440
|
| 95 |
+
una función sin ningún valor a retornar.
|
| 96 |
+
|
| 97 |
+
01:26.440 --> 01:29.158
|
| 98 |
+
Aquí quiero enseñarte algo más
|
| 99 |
+
y es que como buena práctica
|
| 100 |
+
|
| 101 |
+
01:29.283 --> 01:32.157
|
| 102 |
+
también puedes indicar
|
| 103 |
+
acá void para que sepa
|
| 104 |
+
|
| 105 |
+
01:32.283 --> 01:36.049
|
| 106 |
+
que no vas a tener
|
| 107 |
+
ningún tipo de argumentos.
|
| 108 |
+
|
| 109 |
+
01:36.175 --> 01:39.280
|
| 110 |
+
No lo vamos a hacer ahorita,
|
| 111 |
+
de momento, simplemente
|
| 112 |
+
|
| 113 |
+
01:39.280 --> 01:41.499
|
| 114 |
+
quiero que sepas que existe esa opción.
|
| 115 |
+
|
| 116 |
+
01:41.624 --> 01:45.544
|
| 117 |
+
Vamos a continuar con nuestro código.
|
| 118 |
+
Ahora ya tenemos nuestra función,
|
| 119 |
+
|
| 120 |
+
01:45.670 --> 01:46.692
|
| 121 |
+
vamos a llamarla.
|
| 122 |
+
|
| 123 |
+
01:46.818 --> 01:51.520
|
| 124 |
+
Simplemente escribiríamos demo,
|
| 125 |
+
abrimos y cerramos y ponemos
|
| 126 |
+
|
| 127 |
+
01:51.520 --> 01:54.918
|
| 128 |
+
punto y coma y quiero
|
| 129 |
+
que esta función demo
|
| 130 |
+
|
| 131 |
+
01:55.043 --> 01:58.598
|
| 132 |
+
me haga la impresión
|
| 133 |
+
de una simple y sencilla suma.
|
| 134 |
+
|
| 135 |
+
01:59.124 --> 02:03.099
|
| 136 |
+
Vamos a pasar a hacer
|
| 137 |
+
la parte de la definición
|
| 138 |
+
|
| 139 |
+
02:03.225 --> 02:06.840
|
| 140 |
+
de nuestra función. Entonces void demo,
|
| 141 |
+
|
| 142 |
+
02:08.141 --> 02:12.528
|
| 143 |
+
no necesitamos pasarle nada,
|
| 144 |
+
abrimos y cerramos nuestras llaves.
|
| 145 |
+
|
| 146 |
+
02:12.654 --> 02:14.629
|
| 147 |
+
Esta es otra forma de identar
|
| 148 |
+
|
| 149 |
+
02:14.755 --> 02:16.918
|
| 150 |
+
o de poner organizadas tus llaves.
|
| 151 |
+
|
| 152 |
+
02:17.043 --> 02:19.520
|
| 153 |
+
A mí me gusta más la clásica
|
| 154 |
+
que siempre he estado utilizando
|
| 155 |
+
|
| 156 |
+
02:19.520 --> 02:23.218
|
| 157 |
+
en el curso, pero eso ya
|
| 158 |
+
es una cuestión de gustos personales.
|
| 159 |
+
|
| 160 |
+
02:23.744 --> 02:27.541
|
| 161 |
+
Vamos a declarar int a,
|
| 162 |
+
|
| 163 |
+
02:28.534 --> 02:32.611
|
| 164 |
+
punto y coma,
|
| 165 |
+
vamos a declarar un int b también.
|
| 166 |
+
|
| 167 |
+
02:32.737 --> 02:34.760
|
| 168 |
+
Aquí lo que estoy
|
| 169 |
+
haciendo es una declaración
|
| 170 |
+
|
| 171 |
+
02:34.760 --> 02:37.198
|
| 172 |
+
de varias variables,
|
| 173 |
+
todas de tipo entero,
|
| 174 |
+
|
| 175 |
+
02:37.323 --> 02:40.607
|
| 176 |
+
la variable a y la variable b.
|
| 177 |
+
Vamos a hacer una suma,
|
| 178 |
+
|
| 179 |
+
02:41.647 --> 02:47.876
|
| 180 |
+
sum es igual a,
|
| 181 |
+
vamos a sumar a más b,
|
| 182 |
+
|
| 183 |
+
02:50.096 --> 02:54.838
|
| 184 |
+
a más b, punto y coma y vamos
|
| 185 |
+
a darle unos valores a,
|
| 186 |
+
|
| 187 |
+
02:54.964 --> 03:00.822
|
| 188 |
+
a va a ser igual a 100,
|
| 189 |
+
b va a ser igual a 100,
|
| 190 |
+
|
| 191 |
+
03:01.582 --> 03:03.440
|
| 192 |
+
porque pues así nosotros
|
| 193 |
+
podemos hacer la suma
|
| 194 |
+
|
| 195 |
+
03:03.440 --> 03:06.658
|
| 196 |
+
tan rápido como la
|
| 197 |
+
computadora y luego vamos
|
| 198 |
+
|
| 199 |
+
03:06.783 --> 03:10.137
|
| 200 |
+
a simple y sencillamente
|
| 201 |
+
ver qué ocurre con esto.
|
| 202 |
+
|
| 203 |
+
03:10.263 --> 03:11.976
|
| 204 |
+
¿Qué tendríamos que hacer aquí?
|
| 205 |
+
|
| 206 |
+
03:12.102 --> 03:17.140
|
| 207 |
+
Pues imprimir nuestro resultado,
|
| 208 |
+
vamos a imprimir el resultado de la suma.
|
| 209 |
+
|
| 210 |
+
03:18.819 --> 03:24.832
|
| 211 |
+
The result is dos puntos %d,
|
| 212 |
+
|
| 213 |
+
03:26.126 --> 03:30.440
|
| 214 |
+
ya sabes ponemos la comita
|
| 215 |
+
para indicar que acá
|
| 216 |
+
|
| 217 |
+
03:30.440 --> 03:33.277
|
| 218 |
+
vamos a poner nuestra
|
| 219 |
+
variable y nuestra variable
|
| 220 |
+
|
| 221 |
+
03:33.403 --> 03:38.723
|
| 222 |
+
va a ser la suma.
|
| 223 |
+
Uy, ese autocomplete que no me gustó.
|
| 224 |
+
|
| 225 |
+
03:38.849 --> 03:41.351
|
| 226 |
+
Listo y punto y coma.
|
| 227 |
+
Excelente, tenemos
|
| 228 |
+
|
| 229 |
+
03:41.477 --> 03:43.880
|
| 230 |
+
nuestra función demo,
|
| 231 |
+
si te das cuenta es algo
|
| 232 |
+
|
| 233 |
+
03:43.880 --> 03:46.740
|
| 234 |
+
súper simple, solo se
|
| 235 |
+
encarga de imprimir un valor,
|
| 236 |
+
|
| 237 |
+
03:46.865 --> 03:51.181
|
| 238 |
+
es absolutamente sencillo,
|
| 239 |
+
todo lo hacemos dentro de la función,
|
| 240 |
+
|
| 241 |
+
03:51.307 --> 03:54.695
|
| 242 |
+
así que no le tenemos que pasar ningún
|
| 243 |
+
tipo de argumentos, vamos a guardar
|
| 244 |
+
|
| 245 |
+
03:54.821 --> 03:59.287
|
| 246 |
+
y vamos a ejecutar
|
| 247 |
+
la misma para ver el resultado
|
| 248 |
+
|
| 249 |
+
03:59.547 --> 04:06.517
|
| 250 |
+
y hay un problema,
|
| 251 |
+
dice <i>error sum undeclared first use</i>,
|
| 252 |
+
|
| 253 |
+
04:06.643 --> 04:08.993
|
| 254 |
+
claro, no declaramos
|
| 255 |
+
nuestra variable sum,
|
| 256 |
+
|
| 257 |
+
04:09.119 --> 04:11.259
|
| 258 |
+
vamos a declararla acá
|
| 259 |
+
|
| 260 |
+
04:14.499 --> 04:18.563
|
| 261 |
+
y vamos a volver a ejecutar
|
| 262 |
+
nuestro código.
|
| 263 |
+
|
| 264 |
+
04:19.549 --> 04:21.566
|
| 265 |
+
Compile successfully
|
| 266 |
+
|
| 267 |
+
04:21.692 --> 04:27.240
|
| 268 |
+
y me dice the result is 200, perfecto,
|
| 269 |
+
el resultado es 200.
|
| 270 |
+
|
| 271 |
+
04:27.240 --> 04:30.464
|
| 272 |
+
Si te das cuenta lo que
|
| 273 |
+
hicimos aquí fue el proceso
|
| 274 |
+
|
| 275 |
+
04:30.590 --> 04:33.145
|
| 276 |
+
tal cual correcto,
|
| 277 |
+
declaramos nuestra función,
|
| 278 |
+
|
| 279 |
+
04:33.271 --> 04:36.729
|
| 280 |
+
llamamos nuestra función
|
| 281 |
+
y definimos nuestra función,
|
| 282 |
+
|
| 283 |
+
04:36.855 --> 04:40.320
|
| 284 |
+
en todo momento
|
| 285 |
+
no utilizamos para nada
|
| 286 |
+
|
| 287 |
+
04:40.320 --> 04:44.095
|
| 288 |
+
nuestros argumentos
|
| 289 |
+
de ningún tipo y no utilizamos
|
| 290 |
+
|
| 291 |
+
04:44.220 --> 04:47.680
|
| 292 |
+
nuestros return type.
|
| 293 |
+
Ahora voy a hacer
|
| 294 |
+
|
| 295 |
+
04:47.680 --> 04:50.129
|
| 296 |
+
unas modificaciones en esta
|
| 297 |
+
función para que veas pues
|
| 298 |
+
|
| 299 |
+
04:50.255 --> 04:52.895
|
| 300 |
+
cómo más se puede hacer,
|
| 301 |
+
por ejemplo,
|
| 302 |
+
|
| 303 |
+
04:53.021 --> 04:59.626
|
| 304 |
+
qué pasa si yo en mi definición le digo
|
| 305 |
+
que vamos a tener int a e int b,
|
| 306 |
+
|
| 307 |
+
05:00.606 --> 05:02.880
|
| 308 |
+
ah bueno
|
| 309 |
+
ya es diferente la cosa,
|
| 310 |
+
|
| 311 |
+
05:02.880 --> 05:05.989
|
| 312 |
+
no, simple y sencillamente
|
| 313 |
+
vamos a pasar
|
| 314 |
+
|
| 315 |
+
05:06.115 --> 05:08.777
|
| 316 |
+
la declaración de mis variables
|
| 317 |
+
aquí afuerita,
|
| 318 |
+
|
| 319 |
+
05:12.081 --> 05:13.998
|
| 320 |
+
vamos a decirle que a es igual a 100,
|
| 321 |
+
|
| 322 |
+
05:14.123 --> 05:17.901
|
| 323 |
+
vamos a quitarle sum porque
|
| 324 |
+
eso si no lo necesitamos
|
| 325 |
+
|
| 326 |
+
05:18.027 --> 05:21.675
|
| 327 |
+
y a mi función le voy
|
| 328 |
+
a cambiar el nombre a sum,
|
| 329 |
+
|
| 330 |
+
05:23.969 --> 05:27.360
|
| 331 |
+
de hecho sum de suma
|
| 332 |
+
en español, no,
|
| 333 |
+
|
| 334 |
+
05:27.360 --> 05:30.658
|
| 335 |
+
le voy a poner add de suma
|
| 336 |
+
ya en inglés porque es una mejor
|
| 337 |
+
|
| 338 |
+
05:30.783 --> 05:32.981
|
| 339 |
+
práctica manejar todo en inglés,
|
| 340 |
+
|
| 341 |
+
05:33.107 --> 05:37.606
|
| 342 |
+
vamos a ponerle add
|
| 343 |
+
y aquí se va a llamar mi variable add,
|
| 344 |
+
|
| 345 |
+
05:40.207 --> 05:46.000
|
| 346 |
+
esta variable va a ser del tipo entero,
|
| 347 |
+
punto y coma,
|
| 348 |
+
|
| 349 |
+
05:46.240 --> 05:48.887
|
| 350 |
+
muy bien todo maravilloso,
|
| 351 |
+
ahora hay que pasarle
|
| 352 |
+
|
| 353 |
+
05:49.013 --> 05:55.320
|
| 354 |
+
nuestras dos variables
|
| 355 |
+
int a int b, excelente
|
| 356 |
+
|
| 357 |
+
05:55.320 --> 06:01.921
|
| 358 |
+
ya tenemos declarado a y b arriba,
|
| 359 |
+
perfecto, pasémosle los valores acá,
|
| 360 |
+
|
| 361 |
+
06:05.255 --> 06:08.582
|
| 362 |
+
entonces no, así se pasan,
|
| 363 |
+
podemos pasarle
|
| 364 |
+
|
| 365 |
+
06:08.708 --> 06:11.360
|
| 366 |
+
de la siguiente forma
|
| 367 |
+
directamente los valores,
|
| 368 |
+
|
| 369 |
+
06:11.360 --> 06:13.686
|
| 370 |
+
quiero que veas las dos
|
| 371 |
+
formas de hacerlo
|
| 372 |
+
|
| 373 |
+
06:13.812 --> 06:17.481
|
| 374 |
+
para que te quede claro,
|
| 375 |
+
quitamos este punto y coma,
|
| 376 |
+
|
| 377 |
+
06:17.607 --> 06:20.418
|
| 378 |
+
hagamos un repaso,
|
| 379 |
+
aquí que está pasando,
|
| 380 |
+
|
| 381 |
+
06:20.543 --> 06:24.030
|
| 382 |
+
bueno aquí estoy como ya sabes
|
| 383 |
+
declarando mi función,
|
| 384 |
+
|
| 385 |
+
06:24.156 --> 06:27.018
|
| 386 |
+
aquí estoy ejecutando
|
| 387 |
+
o llamando mi función
|
| 388 |
+
|
| 389 |
+
06:27.143 --> 06:30.400
|
| 390 |
+
y aquí estoy definiendo
|
| 391 |
+
mi función, es decir,
|
| 392 |
+
|
| 393 |
+
06:30.400 --> 06:33.518
|
| 394 |
+
estoy haciendo toda la lógica
|
| 395 |
+
que vamos a tener,
|
| 396 |
+
|
| 397 |
+
06:34.035 --> 06:37.044
|
| 398 |
+
perfecto, veamos
|
| 399 |
+
cómo funciona esto,
|
| 400 |
+
|
| 401 |
+
06:38.781 --> 06:41.598
|
| 402 |
+
compilamos y ejecutamos
|
| 403 |
+
y nos da un error, claro,
|
| 404 |
+
|
| 405 |
+
06:41.724 --> 06:44.315
|
| 406 |
+
porque estoy imprimiendo
|
| 407 |
+
sum y ahora se llama add,
|
| 408 |
+
|
| 409 |
+
06:44.942 --> 06:47.855
|
| 410 |
+
excelente, guardamos,
|
| 411 |
+
es bien importante
|
| 412 |
+
|
| 413 |
+
06:47.981 --> 06:49.934
|
| 414 |
+
que todo el tiempo estén leyendo la terminal,
|
| 415 |
+
|
| 416 |
+
06:50.060 --> 06:53.218
|
| 417 |
+
la consola y mira
|
| 418 |
+
el resultado es 200,
|
| 419 |
+
|
| 420 |
+
06:53.343 --> 06:56.760
|
| 421 |
+
nos da el mismo resultado
|
| 422 |
+
pero lo hicimos de una forma
|
| 423 |
+
|
| 424 |
+
06:56.760 --> 07:00.133
|
| 425 |
+
totalmente distinta
|
| 426 |
+
y eso es importante
|
| 427 |
+
|
| 428 |
+
07:00.259 --> 07:02.640
|
| 429 |
+
que lo tengas claro, ahorita
|
| 430 |
+
te voy a mostrar
|
| 431 |
+
|
| 432 |
+
07:02.640 --> 07:05.113
|
| 433 |
+
la otra forma que es teniendo
|
| 434 |
+
un return type,
|
| 435 |
+
|
| 436 |
+
07:05.239 --> 07:11.648
|
| 437 |
+
vamos a cambiarlo aquí también,
|
| 438 |
+
este return sería entero,
|
| 439 |
+
|
| 440 |
+
07:13.091 --> 07:15.817
|
| 441 |
+
perfecto, esto no cambia acá, ya en esta
|
| 442 |
+
|
| 443 |
+
07:15.943 --> 07:19.560
|
| 444 |
+
función lo primero que
|
| 445 |
+
voy a hacer es comentar
|
| 446 |
+
|
| 447 |
+
07:19.560 --> 07:21.739
|
| 448 |
+
este print, ya no lo
|
| 449 |
+
vamos a necesitar,
|
| 450 |
+
|
| 451 |
+
07:21.865 --> 07:26.160
|
| 452 |
+
justo aquí como lo teníamos,
|
| 453 |
+
muy bien y este void
|
| 454 |
+
|
| 455 |
+
07:26.160 --> 07:28.478
|
| 456 |
+
hay que cambiarlo porque
|
| 457 |
+
como sabes, como lo hicimos
|
| 458 |
+
|
| 459 |
+
07:28.603 --> 07:31.310
|
| 460 |
+
desde la parte de arriba,
|
| 461 |
+
bueno ahora va a ser
|
| 462 |
+
|
| 463 |
+
07:31.436 --> 07:34.656
|
| 464 |
+
un int porque vamos a
|
| 465 |
+
retornar un valor, perfecto,
|
| 466 |
+
|
| 467 |
+
07:34.781 --> 07:37.695
|
| 468 |
+
vamos por último a
|
| 469 |
+
agregar nuestro return
|
| 470 |
+
|
| 471 |
+
07:37.821 --> 07:41.538
|
| 472 |
+
y la variable que voy a retornar
|
| 473 |
+
es add guardo
|
| 474 |
+
|
| 475 |
+
07:41.663 --> 07:44.115
|
| 476 |
+
y esto debería de funcionar
|
| 477 |
+
sin problema
|
| 478 |
+
|
| 479 |
+
07:44.241 --> 07:46.865
|
| 480 |
+
pero hay que agregar ahora el print
|
| 481 |
+
aquí arriba,
|
| 482 |
+
|
| 483 |
+
07:46.991 --> 07:52.740
|
| 484 |
+
entonces simplemente me lo voy
|
| 485 |
+
a robar de acá y lo voy
|
| 486 |
+
|
| 487 |
+
07:52.866 --> 07:55.698
|
| 488 |
+
a imprimir aquí abajito,
|
| 489 |
+
excelente,
|
| 490 |
+
|
| 491 |
+
07:56.495 --> 08:00.131
|
| 492 |
+
guardamos, vamos a ver si esto
|
| 493 |
+
funciona de forma adecuada,
|
| 494 |
+
|
| 495 |
+
08:00.257 --> 08:03.698
|
| 496 |
+
fnf6 para compilar
|
| 497 |
+
y ejecutar y mira que,
|
| 498 |
+
|
| 499 |
+
08:05.147 --> 08:08.286
|
| 500 |
+
que está pasando, nos dice el resultado es
|
| 501 |
+
|
| 502 |
+
08:08.763 --> 08:11.993
|
| 503 |
+
41.400,
|
| 504 |
+
|
| 505 |
+
08:12.119 --> 08:17.826
|
| 506 |
+
si es un número grande, 4.199.786, what?
|
| 507 |
+
|
| 508 |
+
08:17.999 --> 08:22.258
|
| 509 |
+
¿de dónde sacó esto?
|
| 510 |
+
veamos, ¿por qué? ¿por qué pasó esto?
|
| 511 |
+
|
| 512 |
+
08:22.384 --> 08:24.729
|
| 513 |
+
porque estoy
|
| 514 |
+
llamando la variable add como
|
| 515 |
+
|
| 516 |
+
08:24.854 --> 08:26.698
|
| 517 |
+
si yo estuviera adentro
|
| 518 |
+
de la función,
|
| 519 |
+
|
| 520 |
+
08:26.824 --> 08:31.264
|
| 521 |
+
lo que tenemos que hacer es
|
| 522 |
+
simple y sencillamente cambiar
|
| 523 |
+
|
| 524 |
+
08:31.389 --> 08:35.061
|
| 525 |
+
aquí por como lo hicimos
|
| 526 |
+
ya de forma previa,
|
| 527 |
+
|
| 528 |
+
08:35.187 --> 08:39.320
|
| 529 |
+
vamos a guardar, vamos a
|
| 530 |
+
ejecutar y ahora sí veamos
|
| 531 |
+
|
| 532 |
+
08:39.446 --> 08:44.059
|
| 533 |
+
qué resultado nos trae
|
| 534 |
+
y todo está funcionando perfecto,
|
| 535 |
+
|
| 536 |
+
08:44.185 --> 08:45.878
|
| 537 |
+
hay muchas
|
| 538 |
+
formas de cómo debemos
|
| 539 |
+
|
| 540 |
+
08:46.003 --> 08:49.040
|
| 541 |
+
de nosotros acceder a la
|
| 542 |
+
información en C por cómo
|
| 543 |
+
|
| 544 |
+
08:49.040 --> 08:51.968
|
| 545 |
+
funciona internamente este
|
| 546 |
+
lenguaje, eso lo veremos
|
| 547 |
+
|
| 548 |
+
08:52.093 --> 08:54.960
|
| 549 |
+
en cursos más avanzados
|
| 550 |
+
pero hay algo que sí
|
| 551 |
+
|
| 552 |
+
08:54.960 --> 08:58.038
|
| 553 |
+
que tenemos que ver ahora
|
| 554 |
+
y es cómo podemos llamar
|
| 555 |
+
|
| 556 |
+
08:58.163 --> 09:02.474
|
| 557 |
+
o pasar un argumento por valor
|
| 558 |
+
o por referencia a nuestras funciones,
|
| 559 |
+
|
| 560 |
+
09:02.600 --> 09:04.680
|
| 561 |
+
veremos eso en la próxima clase.
|
subir/Curso de Funciones en C/02-Manejo de funciones en C/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
subir/Curso de Funciones en C/02-Manejo de funciones en C/01-add_c0320bcc-2842-4e74-a4a7-11798f414800.c
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include <stdio.h>
|
| 2 |
+
|
| 3 |
+
int add(int a, int b);
|
| 4 |
+
|
| 5 |
+
int main()
|
| 6 |
+
{
|
| 7 |
+
printf("the result is %d", add(100, 100));
|
| 8 |
+
return 0;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
int add(int a, int b)
|
| 12 |
+
{
|
| 13 |
+
int add;
|
| 14 |
+
add = a + b;
|
| 15 |
+
return add;
|
| 16 |
+
}
|
subir/Curso de Funciones en C/02-Manejo de funciones en C/02-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://platzi.com/clases/algoritmos/
|
subir/Curso de Funciones en C/02-Manejo de funciones en C/02-Paso de Argumentos por Valor en C Conceptos y Ejemplos Prácticos.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ed7768b430de1427f516c39f05ab534c02e5af3f3f063174a9ea1ac783938a1a
|
| 3 |
+
size 131507376
|
subir/Curso de Funciones en C/02-Manejo de funciones en C/02-Paso de Argumentos por Valor en C Conceptos y Ejemplos Prácticos.vtt
ADDED
|
@@ -0,0 +1,791 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:03.001 --> 00:05.768
|
| 4 |
+
En el lenguaje C,
|
| 5 |
+
un tema importantísimo
|
| 6 |
+
|
| 7 |
+
00:05.894 --> 00:08.278
|
| 8 |
+
es que por defecto en las funciones,
|
| 9 |
+
|
| 10 |
+
00:08.404 --> 00:13.764
|
| 11 |
+
siempre que pasamos argumentos,
|
| 12 |
+
estos se pasan o se llaman por valor.
|
| 13 |
+
|
| 14 |
+
00:13.890 --> 00:15.320
|
| 15 |
+
¿Qué quiere decir esto?
|
| 16 |
+
|
| 17 |
+
00:15.320 --> 00:18.409
|
| 18 |
+
Que el compilador crea
|
| 19 |
+
una copia de la variable
|
| 20 |
+
|
| 21 |
+
00:18.535 --> 00:22.128
|
| 22 |
+
que estamos pasándole
|
| 23 |
+
y simplemente en esta copia temporal
|
| 24 |
+
|
| 25 |
+
00:22.254 --> 00:25.771
|
| 26 |
+
se encarga de almacenar el valor
|
| 27 |
+
que estamos pasándole.
|
| 28 |
+
|
| 29 |
+
00:25.897 --> 00:29.460
|
| 30 |
+
Es decir, no modificamos directamente
|
| 31 |
+
la variable original
|
| 32 |
+
|
| 33 |
+
00:29.585 --> 00:32.120
|
| 34 |
+
que tú declaraste al utilizarla
|
| 35 |
+
|
| 36 |
+
00:32.120 --> 00:34.532
|
| 37 |
+
cuando la estás pasando
|
| 38 |
+
como un argumento de una función,
|
| 39 |
+
|
| 40 |
+
00:34.657 --> 00:36.385
|
| 41 |
+
sino que dentro de la función,
|
| 42 |
+
|
| 43 |
+
00:36.511 --> 00:41.730
|
| 44 |
+
dentro de todo el procesamiento,
|
| 45 |
+
se utiliza la copia temporal que se ejecuta
|
| 46 |
+
|
| 47 |
+
00:41.856 --> 00:46.162
|
| 48 |
+
o que se utiliza para poder
|
| 49 |
+
mantener la información clara.
|
| 50 |
+
|
| 51 |
+
00:46.288 --> 00:50.040
|
| 52 |
+
Esto es un poco complejo
|
| 53 |
+
de entender,
|
| 54 |
+
|
| 55 |
+
00:50.040 --> 00:53.596
|
| 56 |
+
sobre todo para programadores
|
| 57 |
+
de otros lenguajes contemporáneos a C,
|
| 58 |
+
|
| 59 |
+
00:53.722 --> 00:55.480
|
| 60 |
+
como podrían ser Fortran,
|
| 61 |
+
|
| 62 |
+
00:55.480 --> 01:01.094
|
| 63 |
+
que de hecho estaban acostumbrados a pasar
|
| 64 |
+
los valores por referencia.
|
| 65 |
+
|
| 66 |
+
01:01.220 --> 01:03.442
|
| 67 |
+
¿Qué significa pasar
|
| 68 |
+
un valor por referencia?
|
| 69 |
+
|
| 70 |
+
01:03.568 --> 01:07.600
|
| 71 |
+
Pasar un valor por referencia
|
| 72 |
+
es ir directamente a la variable
|
| 73 |
+
|
| 74 |
+
01:07.726 --> 01:10.896
|
| 75 |
+
y cambiar el valor ahí.
|
| 76 |
+
Entonces no estabas
|
| 77 |
+
|
| 78 |
+
01:11.022 --> 01:15.141
|
| 79 |
+
pasando solamente el valor,
|
| 80 |
+
estabas pasándole la referencia
|
| 81 |
+
|
| 82 |
+
01:15.267 --> 01:17.178
|
| 83 |
+
de memoria que te daba acceso
|
| 84 |
+
|
| 85 |
+
01:17.304 --> 01:18.957
|
| 86 |
+
a modificar tu variable original.
|
| 87 |
+
|
| 88 |
+
01:19.083 --> 01:23.100
|
| 89 |
+
En C, cuando le pasamos una función,
|
| 90 |
+
esto genera por nosotros,
|
| 91 |
+
|
| 92 |
+
01:23.225 --> 01:26.000
|
| 93 |
+
cuando le pasamos el valor a una función
|
| 94 |
+
|
| 95 |
+
01:26.000 --> 01:29.074
|
| 96 |
+
como su argumento,
|
| 97 |
+
se genera una copia temporal
|
| 98 |
+
|
| 99 |
+
01:29.199 --> 01:32.000
|
| 100 |
+
de este y la que se modifica es la copia.
|
| 101 |
+
|
| 102 |
+
01:32.000 --> 01:34.468
|
| 103 |
+
No se va a la referencia
|
| 104 |
+
de la memoria
|
| 105 |
+
|
| 106 |
+
01:34.593 --> 01:37.060
|
| 107 |
+
y no hace las modificaciones directamente
|
| 108 |
+
|
| 109 |
+
01:37.060 --> 01:39.245
|
| 110 |
+
sobre nuestras variables originales.
|
| 111 |
+
|
| 112 |
+
01:39.371 --> 01:43.046
|
| 113 |
+
Esto es algo muy positivo
|
| 114 |
+
porque C te agrega un nivel de control
|
| 115 |
+
|
| 116 |
+
01:43.172 --> 01:44.456
|
| 117 |
+
que antes no tenías.
|
| 118 |
+
|
| 119 |
+
01:44.582 --> 01:48.295
|
| 120 |
+
Antes tenías que generar una copia
|
| 121 |
+
de la variable tú, etc.
|
| 122 |
+
|
| 123 |
+
01:48.421 --> 01:50.166
|
| 124 |
+
Ahora C lo hace por ti.
|
| 125 |
+
|
| 126 |
+
01:50.291 --> 01:52.720
|
| 127 |
+
¿Qué más hay que tomar en cuenta aquí?
|
| 128 |
+
|
| 129 |
+
01:52.720 --> 01:56.464
|
| 130 |
+
Bueno, los punteros o pointers
|
| 131 |
+
o apuntadores como los conozcas.
|
| 132 |
+
|
| 133 |
+
01:56.611 --> 01:58.280
|
| 134 |
+
El puntero es una forma
|
| 135 |
+
|
| 136 |
+
01:58.280 --> 02:00.718
|
| 137 |
+
de pasar el valor por referencia,
|
| 138 |
+
|
| 139 |
+
02:00.844 --> 02:04.720
|
| 140 |
+
apuntando a la dirección
|
| 141 |
+
de memoria de la variable
|
| 142 |
+
|
| 143 |
+
02:04.720 --> 02:09.214
|
| 144 |
+
para así modificar directamente
|
| 145 |
+
el dato original que ibas a tener.
|
| 146 |
+
|
| 147 |
+
02:09.340 --> 02:11.244
|
| 148 |
+
Vemos un ejemplo de cómo funciona esto
|
| 149 |
+
|
| 150 |
+
02:11.370 --> 02:14.019
|
| 151 |
+
en el código que teníamos
|
| 152 |
+
de clases anteriores.
|
| 153 |
+
|
| 154 |
+
02:14.145 --> 02:18.640
|
| 155 |
+
¿Recuerdas el programa que habíamos hecho
|
| 156 |
+
en clases anteriores en donde te enseñaba
|
| 157 |
+
|
| 158 |
+
02:18.640 --> 02:21.478
|
| 159 |
+
cómo generar una función de una potencia?
|
| 160 |
+
|
| 161 |
+
02:21.816 --> 02:24.187
|
| 162 |
+
Pues mira, acuérdate que utilizábamos
|
| 163 |
+
|
| 164 |
+
02:24.313 --> 02:30.378
|
| 165 |
+
nuestro auxiliar i para saber que fuera
|
| 166 |
+
menor a n, que fuera un valor menor
|
| 167 |
+
|
| 168 |
+
02:30.504 --> 02:33.404
|
| 169 |
+
a lo que nosotros íbamos a tener
|
| 170 |
+
para asegurarnos
|
| 171 |
+
|
| 172 |
+
02:33.530 --> 02:37.330
|
| 173 |
+
de que la potencia se ejecutara
|
| 174 |
+
de forma correcta.
|
| 175 |
+
|
| 176 |
+
02:37.456 --> 02:42.159
|
| 177 |
+
Ahora mira que esto
|
| 178 |
+
lo podemos hacer de manera distinta
|
| 179 |
+
|
| 180 |
+
02:42.606 --> 02:45.298
|
| 181 |
+
y es que nosotros aquí ya tenemos n,
|
| 182 |
+
|
| 183 |
+
02:45.424 --> 02:49.004
|
| 184 |
+
que si recuerdas n era
|
| 185 |
+
el número al que estábamos
|
| 186 |
+
|
| 187 |
+
02:49.130 --> 02:51.680
|
| 188 |
+
elevando nuestra
|
| 189 |
+
potencia, o sea,
|
| 190 |
+
|
| 191 |
+
02:51.680 --> 02:54.758
|
| 192 |
+
teníamos nuestra base, por ejemplo,
|
| 193 |
+
2 y n que era nuestro exponente,
|
| 194 |
+
|
| 195 |
+
02:54.883 --> 02:58.488
|
| 196 |
+
que puede ser 2, 3, 4 o literalmente n,
|
| 197 |
+
|
| 198 |
+
02:58.614 --> 03:02.800
|
| 199 |
+
o sea, cualquier número que quepa
|
| 200 |
+
dentro del tipo de datos integer.
|
| 201 |
+
|
| 202 |
+
03:03.091 --> 03:06.534
|
| 203 |
+
Perfecto, con esto dicho,
|
| 204 |
+
quiero que te quede claro
|
| 205 |
+
|
| 206 |
+
03:06.660 --> 03:09.276
|
| 207 |
+
que cuando nosotros
|
| 208 |
+
le pasamos n a nuestra función,
|
| 209 |
+
|
| 210 |
+
03:09.402 --> 03:15.240
|
| 211 |
+
este programa no va a modificar
|
| 212 |
+
el valor original de n. ¿Por qué?
|
| 213 |
+
|
| 214 |
+
03:15.240 --> 03:17.827
|
| 215 |
+
Porque estamos trabajando
|
| 216 |
+
con el valor, con la copia
|
| 217 |
+
|
| 218 |
+
03:17.953 --> 03:20.453
|
| 219 |
+
que genera del valor
|
| 220 |
+
que teníamos en nuestra variable,
|
| 221 |
+
|
| 222 |
+
03:20.579 --> 03:23.700
|
| 223 |
+
no con la variable original en sí.
|
| 224 |
+
|
| 225 |
+
03:23.894 --> 03:27.240
|
| 226 |
+
Hagamos una modificación
|
| 227 |
+
en el código superbreve,
|
| 228 |
+
|
| 229 |
+
03:27.240 --> 03:29.973
|
| 230 |
+
para empezar voy a eliminar el auxiliar i
|
| 231 |
+
|
| 232 |
+
03:30.706 --> 03:34.680
|
| 233 |
+
y voy a decirle que
|
| 234 |
+
también voy a eliminar
|
| 235 |
+
|
| 236 |
+
03:34.680 --> 03:36.938
|
| 237 |
+
el auxiliar p, ahorita vas a ver por qué,
|
| 238 |
+
|
| 239 |
+
03:37.063 --> 03:39.691
|
| 240 |
+
te lo voy a explicar,
|
| 241 |
+
no te preocupes, y vamos a decir
|
| 242 |
+
|
| 243 |
+
03:39.817 --> 03:43.887
|
| 244 |
+
que p es igual a 1,
|
| 245 |
+
para comenzar, perfecto,
|
| 246 |
+
|
| 247 |
+
03:44.041 --> 03:47.417
|
| 248 |
+
también voy a decir que n,
|
| 249 |
+
|
| 250 |
+
03:48.124 --> 03:50.543
|
| 251 |
+
si n es mayor que 0,
|
| 252 |
+
|
| 253 |
+
03:52.084 --> 03:56.021
|
| 254 |
+
entonces, y aquí mira que esta
|
| 255 |
+
es la nueva condición que estoy utilizando,
|
| 256 |
+
|
| 257 |
+
03:56.147 --> 03:58.111
|
| 258 |
+
¿por qué estoy utilizando la condición n?
|
| 259 |
+
|
| 260 |
+
03:58.236 --> 04:01.310
|
| 261 |
+
Ah, bueno, porque ahora
|
| 262 |
+
voy a hacer la lógica directa, ¿ok?
|
| 263 |
+
|
| 264 |
+
04:01.436 --> 04:05.557
|
| 265 |
+
¿Qué pasaba? Si nos daban un exponente,
|
| 266 |
+
por ejemplo, 3, bueno,
|
| 267 |
+
|
| 268 |
+
04:05.683 --> 04:09.138
|
| 269 |
+
3 es mayor que 0, sí,
|
| 270 |
+
y para que lleguemos
|
| 271 |
+
|
| 272 |
+
04:09.263 --> 04:12.200
|
| 273 |
+
a que se deje de cumplir
|
| 274 |
+
esta condición voy a utilizar
|
| 275 |
+
|
| 276 |
+
04:12.200 --> 04:16.639
|
| 277 |
+
n --. Entonces voy a tomar
|
| 278 |
+
el valor original de n,
|
| 279 |
+
|
| 280 |
+
04:16.765 --> 04:18.720
|
| 281 |
+
que era 3, por poner un ejemplo
|
| 282 |
+
|
| 283 |
+
04:18.720 --> 04:23.087
|
| 284 |
+
para este caso que
|
| 285 |
+
ahorita vamos a declararle,
|
| 286 |
+
|
| 287 |
+
04:24.769 --> 04:27.480
|
| 288 |
+
ok, sí, por ejemplo,
|
| 289 |
+
aquí nos va a aparecer
|
| 290 |
+
|
| 291 |
+
04:27.480 --> 04:31.338
|
| 292 |
+
todo lo que es de 0 a 10, excelente,
|
| 293 |
+
|
| 294 |
+
04:31.476 --> 04:36.539
|
| 295 |
+
de 0 a 9 para ser exactos,
|
| 296 |
+
y eso va a ir pasándose como n, ¿ok?
|
| 297 |
+
|
| 298 |
+
04:36.966 --> 04:39.471
|
| 299 |
+
Cada vez n va a ir pasando
|
| 300 |
+
a nuestro ciclo for
|
| 301 |
+
|
| 302 |
+
04:39.597 --> 04:42.478
|
| 303 |
+
y vamos a hacer toda la lógica
|
| 304 |
+
de potencias que ya te enseñé,
|
| 305 |
+
|
| 306 |
+
04:42.603 --> 04:45.330
|
| 307 |
+
solo que ahora invertí
|
| 308 |
+
la lógica en mi ciclo for.
|
| 309 |
+
|
| 310 |
+
04:45.456 --> 04:47.083
|
| 311 |
+
Recuerda que si tienes dudas con esto
|
| 312 |
+
|
| 313 |
+
04:47.209 --> 04:50.595
|
| 314 |
+
también te recomiendo mucho
|
| 315 |
+
nuestros cursos de algoritmos, ¿perfecto?
|
| 316 |
+
|
| 317 |
+
04:50.721 --> 04:51.837
|
| 318 |
+
Con esto dicho,
|
| 319 |
+
|
| 320 |
+
04:51.963 --> 04:53.660
|
| 321 |
+
vamos a analizar nuestro ciclo for,
|
| 322 |
+
|
| 323 |
+
04:53.786 --> 04:56.835
|
| 324 |
+
p es igual a 1, está bien,
|
| 325 |
+
estamos inicializando p en 1,
|
| 326 |
+
|
| 327 |
+
04:56.961 --> 05:00.040
|
| 328 |
+
lo necesitamos, n mayor que 0, ¿por qué?
|
| 329 |
+
|
| 330 |
+
05:00.040 --> 05:02.391
|
| 331 |
+
Porque ahora en vez
|
| 332 |
+
de hacer ascendente, o sea,
|
| 333 |
+
|
| 334 |
+
05:02.516 --> 05:05.704
|
| 335 |
+
que vaya sumando
|
| 336 |
+
y vamos a ir restándole a n,
|
| 337 |
+
|
| 338 |
+
05:05.830 --> 05:07.414
|
| 339 |
+
hasta que n valga 0,
|
| 340 |
+
|
| 341 |
+
05:07.540 --> 05:12.131
|
| 342 |
+
la condición se deje de cumplir y con eso
|
| 343 |
+
tendríamos nuestra potencia lista.
|
| 344 |
+
|
| 345 |
+
05:12.257 --> 05:15.361
|
| 346 |
+
Por último, voy a agregar
|
| 347 |
+
un print aquí,
|
| 348 |
+
|
| 349 |
+
05:19.166 --> 05:23.727
|
| 350 |
+
mira, el print me va a ir diciendo el valor
|
| 351 |
+
de n cada vez, eso está excelente.
|
| 352 |
+
|
| 353 |
+
05:24.640 --> 05:26.035
|
| 354 |
+
¿Te acuerdas que lo habíamos puesto aquí?
|
| 355 |
+
|
| 356 |
+
05:26.161 --> 05:27.992
|
| 357 |
+
n es igual a, muy bien,
|
| 358 |
+
|
| 359 |
+
05:28.118 --> 05:31.725
|
| 360 |
+
guardamos, compilamos y ejecutamos,
|
| 361 |
+
|
| 362 |
+
05:33.320 --> 05:35.570
|
| 363 |
+
voy a cerrar esto por aquí
|
| 364 |
+
en lo que se compila
|
| 365 |
+
|
| 366 |
+
05:35.696 --> 05:39.350
|
| 367 |
+
y todo está excelente.
|
| 368 |
+
Date cuenta que dice n es 0,
|
| 369 |
+
|
| 370 |
+
05:39.476 --> 05:41.322
|
| 371 |
+
el resultado de la potencia es igual a 1,
|
| 372 |
+
|
| 373 |
+
05:41.448 --> 05:44.379
|
| 374 |
+
n es igual a 1, el resultado
|
| 375 |
+
de la potencia es igual a 2,
|
| 376 |
+
|
| 377 |
+
05:44.505 --> 05:47.250
|
| 378 |
+
tal cual no estamos modificando n
|
| 379 |
+
|
| 380 |
+
05:47.376 --> 05:49.160
|
| 381 |
+
porque dentro de la función se trabaja
|
| 382 |
+
|
| 383 |
+
05:49.160 --> 05:51.246
|
| 384 |
+
con una copia de n,
|
| 385 |
+
|
| 386 |
+
05:51.372 --> 05:58.680
|
| 387 |
+
eso es de lo que se trata trabajar
|
| 388 |
+
por un valor en el lenguaje C.
|
| 389 |
+
|
| 390 |
+
05:58.680 --> 06:00.803
|
| 391 |
+
Para que esto te quede aún más claro,
|
| 392 |
+
|
| 393 |
+
06:00.929 --> 06:03.600
|
| 394 |
+
tengo un ejemplo preparado
|
| 395 |
+
para ti y es que vamos
|
| 396 |
+
|
| 397 |
+
06:03.600 --> 06:06.113
|
| 398 |
+
a utilizar el código de nuestro programa
|
| 399 |
+
|
| 400 |
+
06:06.238 --> 06:09.200
|
| 401 |
+
Function1 que tienes
|
| 402 |
+
en la sección de archivos,
|
| 403 |
+
|
| 404 |
+
06:09.200 --> 06:11.140
|
| 405 |
+
es el que en donde hicimos todo el código
|
| 406 |
+
|
| 407 |
+
06:11.265 --> 06:13.400
|
| 408 |
+
para una potencia.
|
| 409 |
+
Lo primero que voy a hacer
|
| 410 |
+
|
| 411 |
+
06:13.400 --> 06:18.470
|
| 412 |
+
es sacar este print aquí porque lo voy
|
| 413 |
+
a necesitar y vamos a borrar
|
| 414 |
+
|
| 415 |
+
06:18.596 --> 06:22.504
|
| 416 |
+
todo lo que era parte del ciclo for.
|
| 417 |
+
Hagamos justamente eso,
|
| 418 |
+
|
| 419 |
+
06:22.810 --> 06:24.760
|
| 420 |
+
compongamos nuestra
|
| 421 |
+
identación para que
|
| 422 |
+
|
| 423 |
+
06:24.760 --> 06:26.725
|
| 424 |
+
el programa se vea elegible y bonito,
|
| 425 |
+
|
| 426 |
+
06:26.851 --> 06:32.960
|
| 427 |
+
eso es muy importante y listo.
|
| 428 |
+
Tenemos nuestro print,
|
| 429 |
+
|
| 430 |
+
06:32.960 --> 06:36.589
|
| 431 |
+
nuestro return,
|
| 432 |
+
ya no voy a usar el auxiliar i,
|
| 433 |
+
|
| 434 |
+
06:36.715 --> 06:39.792
|
| 435 |
+
voy a poner directamente
|
| 436 |
+
una variable llamada n,
|
| 437 |
+
|
| 438 |
+
06:40.025 --> 06:43.540
|
| 439 |
+
int n, y esta variable int n
|
| 440 |
+
|
| 441 |
+
06:43.666 --> 06:48.021
|
| 442 |
+
va a ser igual a 3, quiero hacer
|
| 443 |
+
la potencia del número 3,
|
| 444 |
+
|
| 445 |
+
06:48.147 --> 06:50.498
|
| 446 |
+
aquí voy a cambiar este i, voy a poner n
|
| 447 |
+
|
| 448 |
+
06:50.623 --> 06:53.680
|
| 449 |
+
y potencia de 2, n que es la variable
|
| 450 |
+
|
| 451 |
+
06:53.680 --> 06:57.878
|
| 452 |
+
que tengo con el número 3,
|
| 453 |
+
es una variable de tipo entero,
|
| 454 |
+
|
| 455 |
+
06:58.003 --> 07:00.306
|
| 456 |
+
entonces es compatible perfectamente
|
| 457 |
+
|
| 458 |
+
07:00.432 --> 07:05.178
|
| 459 |
+
con nuestra función
|
| 460 |
+
que habíamos aquí declarado, perfecto.
|
| 461 |
+
|
| 462 |
+
07:05.591 --> 07:07.760
|
| 463 |
+
Ahora vamos a modificar acá abajo,
|
| 464 |
+
|
| 465 |
+
07:07.760 --> 07:09.380
|
| 466 |
+
ya no necesitaré p
|
| 467 |
+
|
| 468 |
+
07:11.280 --> 07:15.660
|
| 469 |
+
y este ciclo for va
|
| 470 |
+
a ser igual a p igual a 1,
|
| 471 |
+
|
| 472 |
+
07:16.405 --> 07:20.687
|
| 473 |
+
n menor que n mayor que 0,
|
| 474 |
+
|
| 475 |
+
07:24.115 --> 07:26.934
|
| 476 |
+
vamos a quitarle
|
| 477 |
+
ese signo de interrogación,
|
| 478 |
+
|
| 479 |
+
07:27.060 --> 07:32.128
|
| 480 |
+
perfecto, y vamos a ponerle n --,
|
| 481 |
+
|
| 482 |
+
07:33.830 --> 07:39.108
|
| 483 |
+
n --. Ahora, ¿qué estoy haciendo aquí?
|
| 484 |
+
¿por qué cambié esto? ¿qué está pasando?
|
| 485 |
+
|
| 486 |
+
07:39.234 --> 07:43.840
|
| 487 |
+
¿y por qué borré esta p? Bueno,
|
| 488 |
+
primero esta p tiene que estar ahí,
|
| 489 |
+
|
| 490 |
+
07:43.840 --> 07:45.921
|
| 491 |
+
es lo que vamos a utilizar
|
| 492 |
+
como nuestro auxiliar
|
| 493 |
+
|
| 494 |
+
07:46.047 --> 07:49.856
|
| 495 |
+
y esta p la tenemos
|
| 496 |
+
que declarar de tipo entero, int
|
| 497 |
+
|
| 498 |
+
07:51.396 --> 07:54.334
|
| 499 |
+
p, punto y coma, eso es todo.
|
| 500 |
+
|
| 501 |
+
07:54.460 --> 07:58.400
|
| 502 |
+
Ahora, ¿qué está pasando
|
| 503 |
+
en este ciclo for?
|
| 504 |
+
|
| 505 |
+
07:58.400 --> 08:01.876
|
| 506 |
+
Si te das cuenta,
|
| 507 |
+
nosotros estamos declarando que n vale 3,
|
| 508 |
+
|
| 509 |
+
08:02.002 --> 08:06.138
|
| 510 |
+
nuestra llamada a la función power
|
| 511 |
+
le va a pasar el exponente n,
|
| 512 |
+
|
| 513 |
+
08:06.263 --> 08:08.840
|
| 514 |
+
le va a pasar el número 3 y aquí quiero
|
| 515 |
+
|
| 516 |
+
08:08.840 --> 08:10.604
|
| 517 |
+
que te quede claro que estamos pasando
|
| 518 |
+
|
| 519 |
+
08:10.730 --> 08:13.920
|
| 520 |
+
las cosas por valor,
|
| 521 |
+
si tuviéramos que pasarla
|
| 522 |
+
|
| 523 |
+
08:13.920 --> 08:17.729
|
| 524 |
+
por referencia sería un relajo,
|
| 525 |
+
un problema, porque directamente
|
| 526 |
+
|
| 527 |
+
08:17.855 --> 08:22.038
|
| 528 |
+
estaríamos modificando nuestra variable n,
|
| 529 |
+
habría mucho problema
|
| 530 |
+
|
| 531 |
+
08:22.163 --> 08:25.600
|
| 532 |
+
y no queremos eso,
|
| 533 |
+
definitivamente no lo necesitamos,
|
| 534 |
+
|
| 535 |
+
08:25.600 --> 08:27.277
|
| 536 |
+
pero te explico qué está pasando,
|
| 537 |
+
|
| 538 |
+
08:27.403 --> 08:30.059
|
| 539 |
+
al pasarle este argumento
|
| 540 |
+
a nuestra función,
|
| 541 |
+
|
| 542 |
+
08:30.184 --> 08:32.184
|
| 543 |
+
al pasarle este argumento
|
| 544 |
+
a nuestra función,
|
| 545 |
+
|
| 546 |
+
08:32.459 --> 08:37.081
|
| 547 |
+
se genera una copia y solo toma
|
| 548 |
+
el valor que teníamos guardado en n,
|
| 549 |
+
|
| 550 |
+
08:37.207 --> 08:39.942
|
| 551 |
+
ya con este valor n,
|
| 552 |
+
simple y sencillamente
|
| 553 |
+
|
| 554 |
+
08:40.068 --> 08:44.837
|
| 555 |
+
nuestra función dice, 3 es mayor que 0,
|
| 556 |
+
sí, entonces restémosle 1
|
| 557 |
+
|
| 558 |
+
08:44.963 --> 08:49.200
|
| 559 |
+
y hagamos la operación,
|
| 560 |
+
la operación era p es igual a p por base,
|
| 561 |
+
|
| 562 |
+
08:49.326 --> 08:51.486
|
| 563 |
+
o sea, p es igual a 1 por 2,
|
| 564 |
+
|
| 565 |
+
08:51.612 --> 08:54.202
|
| 566 |
+
entonces nos da 2 y así sucesivamente
|
| 567 |
+
|
| 568 |
+
08:54.328 --> 08:57.271
|
| 569 |
+
nos va a dar la potencia
|
| 570 |
+
tal cual como lo hacía.
|
| 571 |
+
|
| 572 |
+
08:57.397 --> 08:58.794
|
| 573 |
+
Quiero agregar algo para que veas
|
| 574 |
+
|
| 575 |
+
08:58.919 --> 09:01.842
|
| 576 |
+
cómo se modifica el valor de n
|
| 577 |
+
dentro de la función,
|
| 578 |
+
|
| 579 |
+
09:01.968 --> 09:04.510
|
| 580 |
+
pero afuera sigue manteniéndose el mismo,
|
| 581 |
+
|
| 582 |
+
09:04.877 --> 09:07.340
|
| 583 |
+
entonces voy a agregar aquí un print,
|
| 584 |
+
|
| 585 |
+
09:08.420 --> 09:12.374
|
| 586 |
+
un print f y dentro de este print
|
| 587 |
+
|
| 588 |
+
09:12.500 --> 09:16.817
|
| 589 |
+
voy a poner el valor temporal de n,
|
| 590 |
+
|
| 591 |
+
09:19.070 --> 09:22.340
|
| 592 |
+
de n es, vamos a ponerle aquí,
|
| 593 |
+
|
| 594 |
+
09:22.466 --> 09:28.600
|
| 595 |
+
se me fue ese espacio, 2 puntos
|
| 596 |
+
%d y un saltito de línea
|
| 597 |
+
|
| 598 |
+
09:28.600 --> 09:31.812
|
| 599 |
+
para que todo se vea lindo,
|
| 600 |
+
vamos a ponerle coma
|
| 601 |
+
|
| 602 |
+
09:31.937 --> 09:35.520
|
| 603 |
+
y nuestra variable n,
|
| 604 |
+
punto y coma para finalizar,
|
| 605 |
+
|
| 606 |
+
09:35.520 --> 09:38.097
|
| 607 |
+
excelente y ahora quiero
|
| 608 |
+
que veas el resultado
|
| 609 |
+
|
| 610 |
+
09:38.222 --> 09:40.680
|
| 611 |
+
de este programa,
|
| 612 |
+
le voy a poner de nombre
|
| 613 |
+
|
| 614 |
+
09:40.680 --> 09:46.586
|
| 615 |
+
function1V2, perfecto,
|
| 616 |
+
|
| 617 |
+
09:48.743 --> 09:53.820
|
| 618 |
+
es del tipo c, vamos a compilar
|
| 619 |
+
y vamos a esperar
|
| 620 |
+
|
| 621 |
+
09:53.820 --> 09:56.354
|
| 622 |
+
el resultado de nuestro código.
|
| 623 |
+
|
| 624 |
+
09:56.480 --> 10:01.180
|
| 625 |
+
Y mira, aquí lo tenemos,
|
| 626 |
+
el valor temporal de n es 3,
|
| 627 |
+
|
| 628 |
+
10:01.180 --> 10:04.258
|
| 629 |
+
¿qué está pasando aquí?
|
| 630 |
+
Entramos al print,
|
| 631 |
+
|
| 632 |
+
10:04.383 --> 10:07.460
|
| 633 |
+
no se imprime esto
|
| 634 |
+
porque se está ejecutando
|
| 635 |
+
|
| 636 |
+
10:07.460 --> 10:10.481
|
| 637 |
+
nuestra función y el print
|
| 638 |
+
sólo se va a imprimir
|
| 639 |
+
|
| 640 |
+
10:10.607 --> 10:12.620
|
| 641 |
+
cuando se termine
|
| 642 |
+
de ejecutar nuestra función
|
| 643 |
+
|
| 644 |
+
10:12.620 --> 10:17.900
|
| 645 |
+
y tengamos el resultado que la función
|
| 646 |
+
nos retorna, entonces dentro de la función,
|
| 647 |
+
|
| 648 |
+
10:17.900 --> 10:20.118
|
| 649 |
+
en cada una de las iteraciones
|
| 650 |
+
de mi ciclo for,
|
| 651 |
+
|
| 652 |
+
10:20.243 --> 10:23.590
|
| 653 |
+
lo que estoy haciendo es que imprimo
|
| 654 |
+
el valor temporal de n,
|
| 655 |
+
|
| 656 |
+
10:23.730 --> 10:25.325
|
| 657 |
+
el valor temporal de n es 3,
|
| 658 |
+
|
| 659 |
+
10:25.451 --> 10:29.409
|
| 660 |
+
el valor temporal de n es 2,
|
| 661 |
+
el valor temporal de n es 1,
|
| 662 |
+
|
| 663 |
+
10:29.535 --> 10:32.486
|
| 664 |
+
se sale del ciclo for, nos retorna p,
|
| 665 |
+
|
| 666 |
+
10:32.612 --> 10:35.255
|
| 667 |
+
eso hace que nuestro print termine
|
| 668 |
+
|
| 669 |
+
10:35.381 --> 10:38.345
|
| 670 |
+
y nuestro print imprime n
|
| 671 |
+
y si te das cuenta,
|
| 672 |
+
|
| 673 |
+
10:38.470 --> 10:40.382
|
| 674 |
+
la n que estaba fuera de la función
|
| 675 |
+
|
| 676 |
+
10:40.508 --> 10:45.486
|
| 677 |
+
siguió siendo 3 aunque la n adentro
|
| 678 |
+
de la función ya era 0.
|
| 679 |
+
|
| 680 |
+
10:45.612 --> 10:47.740
|
| 681 |
+
Solo para que te quede aún más claro,
|
| 682 |
+
|
| 683 |
+
10:47.740 --> 10:52.715
|
| 684 |
+
voy a agregar otro print
|
| 685 |
+
que imprima la n de afuera,
|
| 686 |
+
|
| 687 |
+
10:54.803 --> 11:00.155
|
| 688 |
+
el valor del exponente n afuera,
|
| 689 |
+
|
| 690 |
+
11:01.203 --> 11:04.280
|
| 691 |
+
original para que sea más <i>classy</i>,
|
| 692 |
+
|
| 693 |
+
11:04.406 --> 11:11.227
|
| 694 |
+
original sigue siendo 2 puntos y aquí,
|
| 695 |
+
|
| 696 |
+
11:11.381 --> 11:16.256
|
| 697 |
+
no necesito un salto de línea, no,
|
| 698 |
+
no lo necesito, muy bien,
|
| 699 |
+
|
| 700 |
+
11:16.910 --> 11:20.083
|
| 701 |
+
el valor del exponente original
|
| 702 |
+
sigue siendo
|
| 703 |
+
|
| 704 |
+
11:20.209 --> 11:24.890
|
| 705 |
+
y le vamos a pasar nuestra variable
|
| 706 |
+
que en este caso sería n,
|
| 707 |
+
|
| 708 |
+
11:25.016 --> 11:29.382
|
| 709 |
+
cerramos con un punto y coma,
|
| 710 |
+
guardamos, veamos que compile,
|
| 711 |
+
|
| 712 |
+
11:29.508 --> 11:31.161
|
| 713 |
+
que no nos tire ningún tipo de error
|
| 714 |
+
|
| 715 |
+
11:31.287 --> 11:34.978
|
| 716 |
+
y mira que el valor
|
| 717 |
+
del exponente n original
|
| 718 |
+
|
| 719 |
+
11:35.104 --> 11:38.279
|
| 720 |
+
sigue siendo, claro, nos falta el %d,
|
| 721 |
+
|
| 722 |
+
11:39.019 --> 11:45.757
|
| 723 |
+
vamos a guardar, vamos a volver a compilar
|
| 724 |
+
y ahora nos dice sigue siendo 3
|
| 725 |
+
|
| 726 |
+
11:45.883 --> 11:49.408
|
| 727 |
+
a pesar de que n dentro
|
| 728 |
+
de la función valía 0.
|
| 729 |
+
|
| 730 |
+
11:49.533 --> 11:53.873
|
| 731 |
+
Esto es un ejemplo clarísimo
|
| 732 |
+
de lo que significa pasar por valor,
|
| 733 |
+
|
| 734 |
+
11:53.999 --> 11:55.898
|
| 735 |
+
estamos trabajando adentro de la función
|
| 736 |
+
|
| 737 |
+
11:56.023 --> 11:59.320
|
| 738 |
+
con una copia, ok, no modificamos
|
| 739 |
+
|
| 740 |
+
11:59.320 --> 12:01.605
|
| 741 |
+
nuestro valor original y eso es algo
|
| 742 |
+
|
| 743 |
+
12:01.730 --> 12:03.954
|
| 744 |
+
bien importante que lo sepas
|
| 745 |
+
todo el tiempo,
|
| 746 |
+
|
| 747 |
+
12:04.080 --> 12:07.958
|
| 748 |
+
cuando tú le pasas un argumento
|
| 749 |
+
directo a tu función,
|
| 750 |
+
|
| 751 |
+
12:08.921 --> 12:11.740
|
| 752 |
+
esta genera una
|
| 753 |
+
copia de tu valor original
|
| 754 |
+
|
| 755 |
+
12:11.740 --> 12:16.293
|
| 756 |
+
y esto se llama pasar por valor
|
| 757 |
+
o <i>call by value</i> en inglés.
|
| 758 |
+
|
| 759 |
+
12:16.512 --> 12:18.636
|
| 760 |
+
Solo para que te quede todavía más claro,
|
| 761 |
+
|
| 762 |
+
12:18.762 --> 12:24.992
|
| 763 |
+
pongamos un n más grande, un n,
|
| 764 |
+
no sé, un n12, vamos a guardar,
|
| 765 |
+
|
| 766 |
+
12:25.932 --> 12:29.610
|
| 767 |
+
vamos a ver cómo nos va en el código
|
| 768 |
+
compilando y ejecutando
|
| 769 |
+
|
| 770 |
+
12:29.803 --> 12:34.301
|
| 771 |
+
y mira,
|
| 772 |
+
aquí n fue de 12 hasta 0,
|
| 773 |
+
|
| 774 |
+
12:34.427 --> 12:36.828
|
| 775 |
+
el resultado de la potencia
|
| 776 |
+
seguro está bien,
|
| 777 |
+
|
| 778 |
+
12:36.953 --> 12:40.180
|
| 779 |
+
pero n, el original se mantuvo en 12,
|
| 780 |
+
|
| 781 |
+
12:40.180 --> 12:42.413
|
| 782 |
+
no importa cuántos
|
| 783 |
+
ciclos iteremos,
|
| 784 |
+
|
| 785 |
+
12:42.539 --> 12:46.284
|
| 786 |
+
recuerda que dentro de la función
|
| 787 |
+
estamos trabajando con una copia.
|
| 788 |
+
|
| 789 |
+
12:46.410 --> 12:51.760
|
| 790 |
+
Con esto dicho,
|
| 791 |
+
nos vemos en la próxima clase.
|
subir/Curso de Funciones en C/02-Manejo de funciones en C/02-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
subir/Curso de Funciones en C/02-Manejo de funciones en C/02-powerofintegers2_f852e42a-a15b-4834-a79d-f2ca262c7f5b.c
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include <stdio.h>
|
| 2 |
+
|
| 3 |
+
int power(int base, int n);
|
| 4 |
+
|
| 5 |
+
int main()
|
| 6 |
+
{
|
| 7 |
+
int n;
|
| 8 |
+
n = 3;
|
| 9 |
+
|
| 10 |
+
printf("n = %d resultado de la potencia = %d\n", n, power(2,n));
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
return 0;
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
int power(int base, int n)
|
| 17 |
+
{
|
| 18 |
+
int p;
|
| 19 |
+
for (p = 1; n > 0; n--)
|
| 20 |
+
{
|
| 21 |
+
p = p * base;
|
| 22 |
+
printf("el vaor temporal de n es %d\n", n);
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
return p;
|
| 26 |
+
}
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-Bibliotecas estándar del lenguaje C y sus funciones principales.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:40ffeedf2e7ee6089dc43e7cad349b3ba26a4162ce4d4518400547da3d19fa10
|
| 3 |
+
size 98917222
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-Bibliotecas estándar del lenguaje C y sus funciones principales.vtt
ADDED
|
@@ -0,0 +1,713 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:03.326 --> 00:07.523
|
| 4 |
+
Por defecto, en el lenguaje C
|
| 5 |
+
vamos a tener un set de bibliotecas
|
| 6 |
+
|
| 7 |
+
00:07.649 --> 00:09.480
|
| 8 |
+
o libraries para disponer
|
| 9 |
+
|
| 10 |
+
00:09.480 --> 00:11.960
|
| 11 |
+
de varias funciones que pueden ser útiles
|
| 12 |
+
|
| 13 |
+
00:12.085 --> 00:14.872
|
| 14 |
+
durante tu tiempo
|
| 15 |
+
desarrollando en este lenguaje.
|
| 16 |
+
|
| 17 |
+
00:14.898 --> 00:16.235
|
| 18 |
+
Así que te las quiero mostrar.
|
| 19 |
+
|
| 20 |
+
00:16.261 --> 00:19.480
|
| 21 |
+
Vamos a tener este set
|
| 22 |
+
de bibliotecas estándares,
|
| 23 |
+
|
| 24 |
+
00:19.480 --> 00:22.396
|
| 25 |
+
también se les conoce como librerías,
|
| 26 |
+
pero ese es un error,
|
| 27 |
+
|
| 28 |
+
00:22.522 --> 00:25.748
|
| 29 |
+
igual es un error que ya es tan común
|
| 30 |
+
que es el estándar,
|
| 31 |
+
|
| 32 |
+
00:25.873 --> 00:28.559
|
| 33 |
+
así que les voy a decir bibliotecas
|
| 34 |
+
o librerías, cualquiera de las dos.
|
| 35 |
+
|
| 36 |
+
00:28.685 --> 00:33.040
|
| 37 |
+
Vamos a tener STDIO que es
|
| 38 |
+
una librería estándar de input y output,
|
| 39 |
+
|
| 40 |
+
00:33.040 --> 00:35.588
|
| 41 |
+
aquí tenemos funciones
|
| 42 |
+
para capturar input
|
| 43 |
+
|
| 44 |
+
00:35.713 --> 00:38.260
|
| 45 |
+
desde el teclado del usuario,
|
| 46 |
+
vamos a tener también
|
| 47 |
+
|
| 48 |
+
00:38.260 --> 00:41.214
|
| 49 |
+
funciones para imprimir
|
| 50 |
+
resultados a pantalla
|
| 51 |
+
|
| 52 |
+
00:41.340 --> 00:43.520
|
| 53 |
+
como ya lo hemos hecho con print.
|
| 54 |
+
|
| 55 |
+
00:43.520 --> 00:46.619
|
| 56 |
+
Vamos a tener también CONIO
|
| 57 |
+
que es console input output,
|
| 58 |
+
|
| 59 |
+
00:46.745 --> 00:49.720
|
| 60 |
+
nos sirve para tener entradas y salidas,
|
| 61 |
+
|
| 62 |
+
00:49.720 --> 00:51.860
|
| 63 |
+
comunicarnos directamente en la consola.
|
| 64 |
+
|
| 65 |
+
00:51.985 --> 00:54.840
|
| 66 |
+
Vamos a tener STRING
|
| 67 |
+
que te puede servir bastantísimo
|
| 68 |
+
|
| 69 |
+
00:54.840 --> 00:57.822
|
| 70 |
+
cuando estás trabajando
|
| 71 |
+
con cadenas de caracteres,
|
| 72 |
+
|
| 73 |
+
00:57.947 --> 01:00.680
|
| 74 |
+
desde para copiar strings
|
| 75 |
+
hasta para cortar,
|
| 76 |
+
|
| 77 |
+
01:00.680 --> 01:05.797
|
| 78 |
+
truncar o revisar qué tienes
|
| 79 |
+
de contenido en esas strings.
|
| 80 |
+
|
| 81 |
+
01:05.923 --> 01:09.578
|
| 82 |
+
Así mismo vamos a tener STDELIV,
|
| 83 |
+
esta es la librería estándar,
|
| 84 |
+
|
| 85 |
+
01:09.703 --> 01:12.535
|
| 86 |
+
esta trae varias funciones
|
| 87 |
+
bien importantes como SYSTEM,
|
| 88 |
+
|
| 89 |
+
01:12.661 --> 01:15.331
|
| 90 |
+
SYSTEM nos va a servir para comunicarnos
|
| 91 |
+
|
| 92 |
+
01:15.456 --> 01:18.440
|
| 93 |
+
afuera del programa de C
|
| 94 |
+
con nuestro sistema,
|
| 95 |
+
|
| 96 |
+
01:18.440 --> 01:19.908
|
| 97 |
+
como lo dice su nombre.
|
| 98 |
+
|
| 99 |
+
01:20.034 --> 01:23.760
|
| 100 |
+
También vamos a tener funciones
|
| 101 |
+
como ATOY que nos va a servir bastantísimo
|
| 102 |
+
|
| 103 |
+
01:23.760 --> 01:27.495
|
| 104 |
+
cuando querramos convertir
|
| 105 |
+
un string o cadena de caracteres
|
| 106 |
+
|
| 107 |
+
01:27.621 --> 01:30.120
|
| 108 |
+
a un entero, a un valor numérico,
|
| 109 |
+
|
| 110 |
+
01:30.120 --> 01:32.236
|
| 111 |
+
es decir pasar de algo que el programa
|
| 112 |
+
|
| 113 |
+
01:32.361 --> 01:34.840
|
| 114 |
+
está considerando una cadena
|
| 115 |
+
de caracteres a números,
|
| 116 |
+
|
| 117 |
+
01:34.840 --> 01:38.458
|
| 118 |
+
eso es bastante útil.
|
| 119 |
+
Vamos a tener a TOLL que hace lo mismo
|
| 120 |
+
|
| 121 |
+
01:38.584 --> 01:40.346
|
| 122 |
+
pero en vez de a entero
|
| 123 |
+
lo convierte a LONG,
|
| 124 |
+
|
| 125 |
+
01:40.472 --> 01:43.359
|
| 126 |
+
a TOFF que nos convierte
|
| 127 |
+
a FLOW, entre otras.
|
| 128 |
+
|
| 129 |
+
01:43.485 --> 01:44.520
|
| 130 |
+
Así mismo vamos a tener
|
| 131 |
+
|
| 132 |
+
01:44.520 --> 01:49.258
|
| 133 |
+
la función RAND que nos genera
|
| 134 |
+
números enteros aleatorios
|
| 135 |
+
|
| 136 |
+
01:49.384 --> 01:52.476
|
| 137 |
+
y la función DELAY que es súper importante
|
| 138 |
+
|
| 139 |
+
01:52.602 --> 01:54.124
|
| 140 |
+
cuando necesitas que tu programa
|
| 141 |
+
|
| 142 |
+
01:54.250 --> 01:58.280
|
| 143 |
+
tenga una pequeña
|
| 144 |
+
pausa durante la ejecución
|
| 145 |
+
|
| 146 |
+
01:58.280 --> 02:00.747
|
| 147 |
+
y bueno otras bien
|
| 148 |
+
importantes que, de hecho,
|
| 149 |
+
|
| 150 |
+
02:00.872 --> 02:03.722
|
| 151 |
+
vamos a usar en algunos
|
| 152 |
+
de los cursos a futuro
|
| 153 |
+
|
| 154 |
+
02:03.848 --> 02:06.663
|
| 155 |
+
de este lenguaje C
|
| 156 |
+
que estamos haciendo aquí en Platzi.
|
| 157 |
+
|
| 158 |
+
02:06.789 --> 02:08.720
|
| 159 |
+
Así mismo vamos a tener MAT,
|
| 160 |
+
|
| 161 |
+
02:08.720 --> 02:11.478
|
| 162 |
+
MAT cuenta con funciones
|
| 163 |
+
como SIN, COSIN
|
| 164 |
+
|
| 165 |
+
02:12.176 --> 02:15.165
|
| 166 |
+
que se escriben directamente
|
| 167 |
+
igual que como en tu calculadora,
|
| 168 |
+
|
| 169 |
+
02:15.291 --> 02:18.780
|
| 170 |
+
SIN, COS, COS de H,
|
| 171 |
+
cuestiones de ese estilo
|
| 172 |
+
|
| 173 |
+
02:18.906 --> 02:21.974
|
| 174 |
+
eso existe en nuestra función MAT.
|
| 175 |
+
|
| 176 |
+
02:22.100 --> 02:23.871
|
| 177 |
+
También vienen funciones como FLUR
|
| 178 |
+
|
| 179 |
+
02:23.996 --> 02:26.719
|
| 180 |
+
que ya sabes nos manda
|
| 181 |
+
el entero más cercano,
|
| 182 |
+
|
| 183 |
+
02:26.845 --> 02:30.514
|
| 184 |
+
más bajo y cercano al número
|
| 185 |
+
que le estemos pasando.
|
| 186 |
+
|
| 187 |
+
02:30.640 --> 02:34.040
|
| 188 |
+
Vamos a tener SALE que hace lo mismo
|
| 189 |
+
pero al revés para el número,
|
| 190 |
+
|
| 191 |
+
02:34.040 --> 02:38.114
|
| 192 |
+
para el siguiente
|
| 193 |
+
número entero más próximo.
|
| 194 |
+
|
| 195 |
+
02:38.240 --> 02:40.400
|
| 196 |
+
Entre otras funciones matemáticas
|
| 197 |
+
|
| 198 |
+
02:40.400 --> 02:44.396
|
| 199 |
+
que puedes utilizar,
|
| 200 |
+
una de las más que podría llegar
|
| 201 |
+
|
| 202 |
+
02:44.522 --> 02:46.882
|
| 203 |
+
a usar es SQRT en caso
|
| 204 |
+
de que estés trabajando
|
| 205 |
+
|
| 206 |
+
02:47.008 --> 02:49.826
|
| 207 |
+
con un programa que te pida la raíz.
|
| 208 |
+
|
| 209 |
+
02:49.952 --> 02:53.400
|
| 210 |
+
También vamos a tener TIME.H
|
| 211 |
+
que nos sirve directamente
|
| 212 |
+
|
| 213 |
+
02:53.400 --> 02:56.177
|
| 214 |
+
para cuestiones que tienen
|
| 215 |
+
que ver con fechas
|
| 216 |
+
|
| 217 |
+
02:56.302 --> 02:58.792
|
| 218 |
+
del sistema o tiempos en el sistema.
|
| 219 |
+
|
| 220 |
+
02:58.918 --> 03:02.178
|
| 221 |
+
Siempre que estés trabajando
|
| 222 |
+
con cuestiones que, por ejemplo,
|
| 223 |
+
|
| 224 |
+
03:02.303 --> 03:05.466
|
| 225 |
+
van a ser utilizadas
|
| 226 |
+
en diferentes zonas horarias
|
| 227 |
+
|
| 228 |
+
03:05.592 --> 03:08.194
|
| 229 |
+
esta función va a ser
|
| 230 |
+
esencial pero también toma
|
| 231 |
+
|
| 232 |
+
03:08.320 --> 03:10.946
|
| 233 |
+
en cuenta que tu código
|
| 234 |
+
debe de ser capaz de entender
|
| 235 |
+
|
| 236 |
+
03:11.072 --> 03:13.298
|
| 237 |
+
en qué lugar está para que puedas hacer
|
| 238 |
+
|
| 239 |
+
03:13.423 --> 03:16.440
|
| 240 |
+
los cálculos de forma correcta y mejor
|
| 241 |
+
|
| 242 |
+
03:16.440 --> 03:19.521
|
| 243 |
+
y todavía más importante si estás
|
| 244 |
+
trabajando con servidores
|
| 245 |
+
|
| 246 |
+
03:19.647 --> 03:22.000
|
| 247 |
+
cuando la computadora
|
| 248 |
+
puede estar en el horario
|
| 249 |
+
|
| 250 |
+
03:22.000 --> 03:24.890
|
| 251 |
+
de Australia pero tus
|
| 252 |
+
clientes van a estar
|
| 253 |
+
|
| 254 |
+
03:25.015 --> 03:29.012
|
| 255 |
+
en México por ejemplo,
|
| 256 |
+
no sé, por ponerte un ejemplo extremo,
|
| 257 |
+
|
| 258 |
+
03:29.138 --> 03:30.498
|
| 259 |
+
bueno tienes que ser muy cuidadosa
|
| 260 |
+
|
| 261 |
+
03:30.623 --> 03:32.880
|
| 262 |
+
o cuidadoso porque lo que va a pasar
|
| 263 |
+
|
| 264 |
+
03:32.880 --> 03:36.141
|
| 265 |
+
es que tu servidor les va a mandar
|
| 266 |
+
fechas y horas que no son acordes
|
| 267 |
+
|
| 268 |
+
03:36.267 --> 03:39.000
|
| 269 |
+
a lo que los usuarios están recibiendo
|
| 270 |
+
|
| 271 |
+
03:39.000 --> 03:43.590
|
| 272 |
+
o a la zona horaria real del usuario
|
| 273 |
+
que está recibiendo tu contenido.
|
| 274 |
+
|
| 275 |
+
03:43.716 --> 03:45.060
|
| 276 |
+
Tienes que ser muy cuidadoso
|
| 277 |
+
|
| 278 |
+
03:45.186 --> 03:49.228
|
| 279 |
+
y saber siempre tomar precauciones
|
| 280 |
+
con los tiempos.
|
| 281 |
+
|
| 282 |
+
03:49.855 --> 03:53.083
|
| 283 |
+
Asimismo vamos a tener la función CTYPE.
|
| 284 |
+
|
| 285 |
+
03:53.209 --> 03:55.198
|
| 286 |
+
TYPE viene de como tipo
|
| 287 |
+
|
| 288 |
+
03:55.323 --> 03:59.317
|
| 289 |
+
o sea tiene que ver con todo
|
| 290 |
+
lo que es manejo de caracteres.
|
| 291 |
+
|
| 292 |
+
03:59.443 --> 04:02.520
|
| 293 |
+
Este es para manejo de strings
|
| 294 |
+
o sea cadenas de caracteres.
|
| 295 |
+
|
| 296 |
+
04:02.646 --> 04:05.590
|
| 297 |
+
Esto es para manejo
|
| 298 |
+
de caracteres individuales.
|
| 299 |
+
|
| 300 |
+
04:05.716 --> 04:07.538
|
| 301 |
+
Vamos a tener SIGNAL que nos ayuda
|
| 302 |
+
|
| 303 |
+
04:07.663 --> 04:10.720
|
| 304 |
+
a manejar todo
|
| 305 |
+
lo que tiene que ver con señales
|
| 306 |
+
|
| 307 |
+
04:10.720 --> 04:13.938
|
| 308 |
+
en nuestro programa
|
| 309 |
+
y aquí quizás te preguntas
|
| 310 |
+
|
| 311 |
+
04:14.063 --> 04:16.144
|
| 312 |
+
¿qué tipo de señales?
|
| 313 |
+
|
| 314 |
+
04:16.270 --> 04:18.032
|
| 315 |
+
Que de hecho SIGNAL
|
| 316 |
+
te va a servir mucho
|
| 317 |
+
|
| 318 |
+
04:18.158 --> 04:20.440
|
| 319 |
+
por ejemplo para detectar
|
| 320 |
+
cuestiones por afuera
|
| 321 |
+
|
| 322 |
+
04:20.566 --> 04:23.638
|
| 323 |
+
de la ejecución de tu programa.
|
| 324 |
+
Una señal puede ser un evento
|
| 325 |
+
|
| 326 |
+
04:23.763 --> 04:26.240
|
| 327 |
+
como que alguien está apretando
|
| 328 |
+
una tecla interactiva
|
| 329 |
+
|
| 330 |
+
04:26.240 --> 04:30.109
|
| 331 |
+
en tu teclado o una
|
| 332 |
+
de estas cuestiones específicas
|
| 333 |
+
|
| 334 |
+
04:30.235 --> 04:33.302
|
| 335 |
+
o algo que quieras detectar
|
| 336 |
+
tú para que tu programa
|
| 337 |
+
|
| 338 |
+
04:33.428 --> 04:35.352
|
| 339 |
+
funcione de forma adecuada.
|
| 340 |
+
|
| 341 |
+
04:35.478 --> 04:40.684
|
| 342 |
+
Ahí podrías utilizar esto
|
| 343 |
+
que de hecho puedes utilizar RACE
|
| 344 |
+
|
| 345 |
+
04:40.810 --> 04:43.245
|
| 346 |
+
que nos manda una señal
|
| 347 |
+
de forma artificial
|
| 348 |
+
|
| 349 |
+
04:43.371 --> 04:45.307
|
| 350 |
+
cuando tú lo necesites entre otras cosas.
|
| 351 |
+
|
| 352 |
+
04:45.433 --> 04:49.158
|
| 353 |
+
CTYPE quería comentarte antes de seguir
|
| 354 |
+
que de hecho va a tener
|
| 355 |
+
|
| 356 |
+
04:49.283 --> 04:52.200
|
| 357 |
+
funciones que son bastante
|
| 358 |
+
útiles cuando necesites
|
| 359 |
+
|
| 360 |
+
04:52.200 --> 04:55.553
|
| 361 |
+
detectar por ejemplo
|
| 362 |
+
un espacio en blanco
|
| 363 |
+
|
| 364 |
+
04:55.679 --> 05:00.120
|
| 365 |
+
en una cadena de caracteres
|
| 366 |
+
o en información cuando
|
| 367 |
+
|
| 368 |
+
05:00.120 --> 05:01.884
|
| 369 |
+
estés buscando cuestiones de ese estilo
|
| 370 |
+
|
| 371 |
+
05:02.010 --> 05:07.360
|
| 372 |
+
ahí entraría en funcionamiento
|
| 373 |
+
esta biblioteca CTYPE.
|
| 374 |
+
|
| 375 |
+
05:08.216 --> 05:10.751
|
| 376 |
+
También CTYPE nos va
|
| 377 |
+
a servir para detectar
|
| 378 |
+
|
| 379 |
+
05:10.877 --> 05:14.774
|
| 380 |
+
si un carácter está en minúsculas,
|
| 381 |
+
si un carácter está en mayúsculas,
|
| 382 |
+
|
| 383 |
+
05:14.900 --> 05:16.757
|
| 384 |
+
si es un signo de puntuación,
|
| 385 |
+
|
| 386 |
+
05:16.882 --> 05:19.030
|
| 387 |
+
entre muchas muchas cosas más.
|
| 388 |
+
|
| 389 |
+
05:19.156 --> 05:22.251
|
| 390 |
+
Entonces siempre que necesites cuestiones
|
| 391 |
+
que tienen que ver con caracteres
|
| 392 |
+
|
| 393 |
+
05:22.376 --> 05:25.080
|
| 394 |
+
a mucho detalle vas a poder hacerlo
|
| 395 |
+
|
| 396 |
+
05:25.080 --> 05:28.677
|
| 397 |
+
y vas a poder hacerlo con mucha precisión
|
| 398 |
+
|
| 399 |
+
05:28.803 --> 05:30.880
|
| 400 |
+
eso es bien importante incluyendo
|
| 401 |
+
|
| 402 |
+
05:30.880 --> 05:34.037
|
| 403 |
+
obviamente tu lower,
|
| 404 |
+
tu upper, que te va a servir
|
| 405 |
+
|
| 406 |
+
05:34.163 --> 05:37.116
|
| 407 |
+
para a nivel caracter ir pasando
|
| 408 |
+
|
| 409 |
+
05:37.242 --> 05:40.978
|
| 410 |
+
de mayúscula a minúscula
|
| 411 |
+
de minúscula a mayúscula. ¿Por qué?
|
| 412 |
+
|
| 413 |
+
05:41.103 --> 05:43.210
|
| 414 |
+
Porque recuerda que en programación
|
| 415 |
+
|
| 416 |
+
05:43.336 --> 05:47.098
|
| 417 |
+
tenemos el código ASCII
|
| 418 |
+
y cada carácter es diferente,
|
| 419 |
+
|
| 420 |
+
05:47.224 --> 05:48.885
|
| 421 |
+
cada carácter tiene un código único,
|
| 422 |
+
|
| 423 |
+
05:49.011 --> 05:52.365
|
| 424 |
+
entonces una a mayúscula
|
| 425 |
+
es diferente a una minúscula,
|
| 426 |
+
|
| 427 |
+
05:53.593 --> 05:56.023
|
| 428 |
+
eso es importantísimo que lo tengas claro
|
| 429 |
+
|
| 430 |
+
05:56.149 --> 06:00.927
|
| 431 |
+
y una a mayúscula con acento
|
| 432 |
+
es diferente a una minúscula con acento
|
| 433 |
+
|
| 434 |
+
06:01.053 --> 06:03.899
|
| 435 |
+
entonces a ese nivel tú vas
|
| 436 |
+
a poder tener control
|
| 437 |
+
|
| 438 |
+
06:04.025 --> 06:07.379
|
| 439 |
+
de tus caracteres en código
|
| 440 |
+
y es importante que entiendas
|
| 441 |
+
|
| 442 |
+
06:07.505 --> 06:09.702
|
| 443 |
+
que en lenguajes de programación como C
|
| 444 |
+
|
| 445 |
+
06:09.828 --> 06:13.544
|
| 446 |
+
que son tipados
|
| 447 |
+
y que tienes mucha precisión
|
| 448 |
+
|
| 449 |
+
06:13.670 --> 06:15.831
|
| 450 |
+
en los datos, en los tipos de datos, etc.,
|
| 451 |
+
|
| 452 |
+
06:15.957 --> 06:18.604
|
| 453 |
+
bueno siempre vas a deber tener
|
| 454 |
+
|
| 455 |
+
06:18.730 --> 06:21.560
|
| 456 |
+
diferenciación
|
| 457 |
+
entre una variable que todas
|
| 458 |
+
|
| 459 |
+
06:21.560 --> 06:24.265
|
| 460 |
+
las letras están con mayúsculas,
|
| 461 |
+
una que están con minúsculas,
|
| 462 |
+
|
| 463 |
+
06:24.391 --> 06:26.922
|
| 464 |
+
una cadena de caracteres
|
| 465 |
+
en mayúsculas no va a ser igual
|
| 466 |
+
|
| 467 |
+
06:27.048 --> 06:29.108
|
| 468 |
+
a una cadena de caracteres
|
| 469 |
+
con minúsculas
|
| 470 |
+
|
| 471 |
+
06:29.234 --> 06:31.449
|
| 472 |
+
eso lo debes de tener súper claro
|
| 473 |
+
|
| 474 |
+
06:31.575 --> 06:34.058
|
| 475 |
+
y ahí es donde entran estos
|
| 476 |
+
casos de uso en donde tienes
|
| 477 |
+
|
| 478 |
+
06:34.183 --> 06:36.263
|
| 479 |
+
que convertir todo a mayúsculas,
|
| 480 |
+
por ejemplo,
|
| 481 |
+
|
| 482 |
+
06:36.389 --> 06:38.791
|
| 483 |
+
si tu procesamiento
|
| 484 |
+
tiene que ver con mucho texto
|
| 485 |
+
|
| 486 |
+
06:38.917 --> 06:43.301
|
| 487 |
+
de pronto te serviría, de pronto no,
|
| 488 |
+
si tu procesamiento necesita
|
| 489 |
+
|
| 490 |
+
06:43.427 --> 06:45.520
|
| 491 |
+
que sea sensitivo
|
| 492 |
+
de mayúsculas y minúsculas
|
| 493 |
+
|
| 494 |
+
06:45.646 --> 06:47.177
|
| 495 |
+
entonces no podrías hacer eso
|
| 496 |
+
|
| 497 |
+
06:47.303 --> 06:49.527
|
| 498 |
+
pero si no y pues simple y sencillamente
|
| 499 |
+
|
| 500 |
+
06:49.653 --> 06:52.809
|
| 501 |
+
quieres que lo que un usuario escribe,
|
| 502 |
+
digamos que un usuario escribe
|
| 503 |
+
|
| 504 |
+
06:52.935 --> 06:55.348
|
| 505 |
+
oye, necesito tal cosa y tu programa
|
| 506 |
+
|
| 507 |
+
06:55.474 --> 06:57.101
|
| 508 |
+
va a hacer algo con esa información,
|
| 509 |
+
|
| 510 |
+
06:57.227 --> 07:00.358
|
| 511 |
+
bueno ahí deberías de asegurarte
|
| 512 |
+
de pasarlo a mayúsculas
|
| 513 |
+
|
| 514 |
+
07:00.483 --> 07:03.960
|
| 515 |
+
para que siempre hagas match
|
| 516 |
+
y no tengas que estar validando
|
| 517 |
+
|
| 518 |
+
07:04.086 --> 07:05.318
|
| 519 |
+
dos condiciones, esa es una forma
|
| 520 |
+
|
| 521 |
+
07:05.443 --> 07:08.025
|
| 522 |
+
de atacar el problema,
|
| 523 |
+
también puedes simplemente
|
| 524 |
+
|
| 525 |
+
07:08.151 --> 07:09.838
|
| 526 |
+
validar las dos condiciones,
|
| 527 |
+
lo escriben mayúsculas
|
| 528 |
+
|
| 529 |
+
07:09.963 --> 07:11.774
|
| 530 |
+
lo escriben minúsculas entre otras cosas.
|
| 531 |
+
|
| 532 |
+
07:11.900 --> 07:15.406
|
| 533 |
+
Vamos a tener otras funciones
|
| 534 |
+
como lo que locale.
|
| 535 |
+
|
| 536 |
+
07:15.531 --> 07:19.040
|
| 537 |
+
Lacles es una librería o biblioteca
|
| 538 |
+
bien importante
|
| 539 |
+
|
| 540 |
+
07:19.040 --> 07:22.341
|
| 541 |
+
porque nos ayuda a definir
|
| 542 |
+
cuestiones locales al software
|
| 543 |
+
|
| 544 |
+
07:22.466 --> 07:25.560
|
| 545 |
+
a donde esto te sirve
|
| 546 |
+
para cuestiones como
|
| 547 |
+
|
| 548 |
+
07:25.560 --> 07:29.005
|
| 549 |
+
el formato de la fecha
|
| 550 |
+
o símbolos para la moneda
|
| 551 |
+
|
| 552 |
+
07:29.131 --> 07:30.484
|
| 553 |
+
con la que vas a estar trabajando
|
| 554 |
+
|
| 555 |
+
07:30.610 --> 07:32.512
|
| 556 |
+
en caso de que tu programa lo requiera.
|
| 557 |
+
|
| 558 |
+
07:32.638 --> 07:36.520
|
| 559 |
+
Esto es como una librería más
|
| 560 |
+
o biblioteca específica
|
| 561 |
+
|
| 562 |
+
07:36.520 --> 07:40.232
|
| 563 |
+
a configuraciones que vas
|
| 564 |
+
a requerir cuando necesitas
|
| 565 |
+
|
| 566 |
+
07:40.358 --> 07:42.840
|
| 567 |
+
que tu programa se adapte
|
| 568 |
+
a diferentes locaciones
|
| 569 |
+
|
| 570 |
+
07:42.840 --> 07:46.406
|
| 571 |
+
a diferentes lugares.
|
| 572 |
+
Luego vamos a tener herno
|
| 573 |
+
|
| 574 |
+
07:46.532 --> 07:48.720
|
| 575 |
+
que esta es la librería o
|
| 576 |
+
biblioteca que nos ayuda
|
| 577 |
+
|
| 578 |
+
07:48.720 --> 07:51.138
|
| 579 |
+
a manejar errores,
|
| 580 |
+
esto tiene funciones
|
| 581 |
+
|
| 582 |
+
07:51.263 --> 07:53.382
|
| 583 |
+
que nos van a servir
|
| 584 |
+
para manejo de errores
|
| 585 |
+
|
| 586 |
+
07:53.508 --> 07:56.830
|
| 587 |
+
dentro del programa y por último
|
| 588 |
+
tenemos la biblioteca
|
| 589 |
+
|
| 590 |
+
07:56.955 --> 08:00.640
|
| 591 |
+
hacer que esto nos provee
|
| 592 |
+
un macro no nos provee
|
| 593 |
+
|
| 594 |
+
08:00.640 --> 08:04.469
|
| 595 |
+
funciones sino que nos provee
|
| 596 |
+
una macro que se puede utilizar
|
| 597 |
+
|
| 598 |
+
08:04.595 --> 08:07.053
|
| 599 |
+
para verificar asum asumciones
|
| 600 |
+
|
| 601 |
+
08:07.179 --> 08:11.443
|
| 602 |
+
como cuando asumimos
|
| 603 |
+
que nuestro programa e imprimir
|
| 604 |
+
|
| 605 |
+
08:11.569 --> 08:13.766
|
| 606 |
+
un diagnóstico de lo que está ocurriendo
|
| 607 |
+
|
| 608 |
+
08:13.892 --> 08:16.935
|
| 609 |
+
si no se cumple la condición
|
| 610 |
+
que le estamos pasando.
|
| 611 |
+
|
| 612 |
+
08:17.061 --> 08:19.936
|
| 613 |
+
La verdad es que esto no
|
| 614 |
+
se suele utilizar muchísimo
|
| 615 |
+
|
| 616 |
+
08:20.062 --> 08:22.993
|
| 617 |
+
pero igual cuéntame
|
| 618 |
+
si te gustaría ver de qué
|
| 619 |
+
|
| 620 |
+
08:23.119 --> 08:25.520
|
| 621 |
+
se va a tratar esto
|
| 622 |
+
y yo tengo un ejemplo
|
| 623 |
+
|
| 624 |
+
08:25.520 --> 08:28.303
|
| 625 |
+
que te podría servir, obviamente
|
| 626 |
+
esto lo veríamos en cursos
|
| 627 |
+
|
| 628 |
+
08:28.428 --> 08:31.134
|
| 629 |
+
más avanzados,
|
| 630 |
+
mucho más adelante de la carrera.
|
| 631 |
+
|
| 632 |
+
08:31.561 --> 08:34.501
|
| 633 |
+
Con esto dicho, estas
|
| 634 |
+
son las principales bibliotecas
|
| 635 |
+
|
| 636 |
+
08:34.627 --> 08:37.429
|
| 637 |
+
con las que cuentas en C,
|
| 638 |
+
hay muchas bibliotecas más
|
| 639 |
+
|
| 640 |
+
08:37.555 --> 08:39.638
|
| 641 |
+
que podrías llegar
|
| 642 |
+
a consultar pero ya son
|
| 643 |
+
|
| 644 |
+
08:39.763 --> 08:43.748
|
| 645 |
+
hechas por otras personas o no
|
| 646 |
+
son contenidas dentro del estándar
|
| 647 |
+
|
| 648 |
+
08:43.873 --> 08:46.664
|
| 649 |
+
tradicional del lenguaje que vamos a tener.
|
| 650 |
+
|
| 651 |
+
08:46.790 --> 08:48.209
|
| 652 |
+
Estas son las principales
|
| 653 |
+
|
| 654 |
+
08:48.335 --> 08:51.630
|
| 655 |
+
y estas son las que te van a dar
|
| 656 |
+
muchas funcionalidades bases,
|
| 657 |
+
|
| 658 |
+
08:51.770 --> 08:54.360
|
| 659 |
+
nada muy específico,
|
| 660 |
+
nada muy avanzado,
|
| 661 |
+
|
| 662 |
+
08:54.360 --> 08:57.674
|
| 663 |
+
no hay como o como en javascript,
|
| 664 |
+
por ejemplo,
|
| 665 |
+
|
| 666 |
+
08:57.800 --> 09:00.360
|
| 667 |
+
que tienes una biblioteca
|
| 668 |
+
para hacer front-end,
|
| 669 |
+
|
| 670 |
+
09:00.360 --> 09:01.907
|
| 671 |
+
una biblioteca para hacer back-end,
|
| 672 |
+
|
| 673 |
+
09:02.033 --> 09:04.244
|
| 674 |
+
una biblioteca para montarte tu servidor,
|
| 675 |
+
|
| 676 |
+
09:04.370 --> 09:05.982
|
| 677 |
+
una biblioteca para manejar un chat,
|
| 678 |
+
|
| 679 |
+
09:06.108 --> 09:07.683
|
| 680 |
+
tienes una biblioteca para todo.
|
| 681 |
+
|
| 682 |
+
09:07.808 --> 09:10.921
|
| 683 |
+
En C, por decirlo así, el acercamiento
|
| 684 |
+
es un poquito más genérico,
|
| 685 |
+
|
| 686 |
+
09:11.047 --> 09:12.213
|
| 687 |
+
más general.
|
| 688 |
+
|
| 689 |
+
09:12.339 --> 09:15.477
|
| 690 |
+
Y, si bien, si hay muchas
|
| 691 |
+
bibliotecas desarrolladas,
|
| 692 |
+
|
| 693 |
+
09:15.603 --> 09:17.829
|
| 694 |
+
te toca ir y buscarlas
|
| 695 |
+
y no son tan populares
|
| 696 |
+
|
| 697 |
+
09:17.955 --> 09:21.038
|
| 698 |
+
y no las instalas directamente con npm
|
| 699 |
+
ni nada de eso,
|
| 700 |
+
|
| 701 |
+
09:21.164 --> 09:23.146
|
| 702 |
+
simplemente la metes en tu proyecto
|
| 703 |
+
|
| 704 |
+
09:23.272 --> 09:26.680
|
| 705 |
+
y la llamas con la directiva incluide.
|
| 706 |
+
|
| 707 |
+
09:26.806 --> 09:28.740
|
| 708 |
+
Con esto dicho. nos vemos
|
| 709 |
+
en la siguiente clase
|
| 710 |
+
|
| 711 |
+
09:28.866 --> 09:34.480
|
| 712 |
+
donde te mostraré un par de funciones
|
| 713 |
+
de estas bibliotecas.
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
https://devdocs.io/c/
|
| 2 |
+
https://docs.microsoft.com/en-us/cpp/c-language/c-language-reference?view=vs-2019
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-libraries_52ae0350-75bf-4e6b-a5d7-1b57fd7d6a03.c
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include <stdio.h>
|
| 2 |
+
#include <conio.h>
|
| 3 |
+
#include <string.h>
|
| 4 |
+
#include <stdlib.h>
|
| 5 |
+
#include <math.h>
|
| 6 |
+
#include <time.h>
|
| 7 |
+
#include <ctype.h>
|
| 8 |
+
#include <signal.h>
|
| 9 |
+
#include <locale.h>
|
| 10 |
+
#include <errno.h>
|
| 11 |
+
#include <assert.h>
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-Funciones matemáticas básicas en C con la biblioteca math.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a9f4882afddf10338a4ad6b301bb034c15d3100ef3c766ace9f43e3fd86d7d81
|
| 3 |
+
size 67684695
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-Funciones matemáticas básicas en C con la biblioteca math.vtt
ADDED
|
@@ -0,0 +1,493 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:03.013 --> 00:07.077
|
| 4 |
+
La primera biblioteca
|
| 5 |
+
que vamos a revisar es mat.h,
|
| 6 |
+
|
| 7 |
+
00:07.203 --> 00:08.500
|
| 8 |
+
así que vamos al código.
|
| 9 |
+
|
| 10 |
+
00:08.626 --> 00:11.882
|
| 11 |
+
Obviamente vamos
|
| 12 |
+
a necesitar nuestra amiga,
|
| 13 |
+
|
| 14 |
+
00:12.008 --> 00:13.664
|
| 15 |
+
la biblioteca stdio,
|
| 16 |
+
|
| 17 |
+
00:13.790 --> 00:17.000
|
| 18 |
+
para poder manejar el print.
|
| 19 |
+
|
| 20 |
+
00:17.000 --> 00:20.253
|
| 21 |
+
Y también vamos a necesitar, ahora sí,
|
| 22 |
+
|
| 23 |
+
00:20.379 --> 00:23.348
|
| 24 |
+
incluir a la estrella de esta clase,
|
| 25 |
+
que es mat.h.
|
| 26 |
+
|
| 27 |
+
00:23.474 --> 00:24.765
|
| 28 |
+
Perfecto.
|
| 29 |
+
|
| 30 |
+
00:24.891 --> 00:27.500
|
| 31 |
+
No vamos a hacer nada más,
|
| 32 |
+
vamos a escribir nuestro main.
|
| 33 |
+
|
| 34 |
+
00:27.500 --> 00:29.500
|
| 35 |
+
Muy bien, ya tenemos el main.
|
| 36 |
+
|
| 37 |
+
00:30.128 --> 00:32.885
|
| 38 |
+
Y dentro del main, lo que vamos a colocar
|
| 39 |
+
|
| 40 |
+
00:33.011 --> 00:36.788
|
| 41 |
+
va a ser simple y sencillamente
|
| 42 |
+
un código básico.
|
| 43 |
+
|
| 44 |
+
00:36.914 --> 00:41.103
|
| 45 |
+
Aquí quiero mostrarte una función
|
| 46 |
+
para obtener información del teclado.
|
| 47 |
+
|
| 48 |
+
00:41.229 --> 00:42.500
|
| 49 |
+
Vamos a hacer eso.
|
| 50 |
+
|
| 51 |
+
00:42.500 --> 00:43.500
|
| 52 |
+
print
|
| 53 |
+
|
| 54 |
+
00:45.666 --> 00:46.666
|
| 55 |
+
Ingrese
|
| 56 |
+
|
| 57 |
+
00:48.871 --> 00:50.966
|
| 58 |
+
el valor de x.
|
| 59 |
+
|
| 60 |
+
00:51.299 --> 00:53.990
|
| 61 |
+
Perfecto, entonces aquí tenemos
|
| 62 |
+
ya nuestro print.
|
| 63 |
+
|
| 64 |
+
00:54.116 --> 00:57.311
|
| 65 |
+
Le va a aparecer a la persona,
|
| 66 |
+
ingrese el valor de x.
|
| 67 |
+
|
| 68 |
+
00:57.437 --> 00:59.297
|
| 69 |
+
Vamos a ponerle dos puntos.
|
| 70 |
+
|
| 71 |
+
00:59.443 --> 01:01.601
|
| 72 |
+
Y vamos a dejar un espacio.
|
| 73 |
+
|
| 74 |
+
01:01.727 --> 01:03.749
|
| 75 |
+
Ya, con eso está.
|
| 76 |
+
Punto y coma.
|
| 77 |
+
|
| 78 |
+
01:03.875 --> 01:06.724
|
| 79 |
+
Luego, más abajo,
|
| 80 |
+
vamos a volver a llamar
|
| 81 |
+
|
| 82 |
+
01:06.850 --> 01:10.387
|
| 83 |
+
a otra función de stdio.h,
|
| 84 |
+
|
| 85 |
+
01:10.513 --> 01:13.170
|
| 86 |
+
pero esta función va a ser ahora scanf.
|
| 87 |
+
|
| 88 |
+
01:13.617 --> 01:16.410
|
| 89 |
+
Scanf hace justo lo contrario de print.
|
| 90 |
+
|
| 91 |
+
01:16.536 --> 01:17.878
|
| 92 |
+
Print imprime un valor,
|
| 93 |
+
|
| 94 |
+
01:18.004 --> 01:22.377
|
| 95 |
+
scanf recibe o escanea
|
| 96 |
+
un valor de entrada.
|
| 97 |
+
|
| 98 |
+
01:22.503 --> 01:24.217
|
| 99 |
+
Así que vamos a ponerle,
|
| 100 |
+
|
| 101 |
+
01:24.343 --> 01:26.138
|
| 102 |
+
oye, necesito que te traigas un valor,
|
| 103 |
+
|
| 104 |
+
01:26.264 --> 01:29.500
|
| 105 |
+
va a ser %d, o sea,
|
| 106 |
+
va a ser un número entero.
|
| 107 |
+
|
| 108 |
+
01:30.032 --> 01:33.894
|
| 109 |
+
Y este valor lo vamos a asignar,
|
| 110 |
+
|
| 111 |
+
01:34.020 --> 01:35.737
|
| 112 |
+
esto se escribe de esta forma,
|
| 113 |
+
|
| 114 |
+
01:35.863 --> 01:38.500
|
| 115 |
+
a la variable x.
|
| 116 |
+
|
| 117 |
+
01:40.114 --> 01:42.429
|
| 118 |
+
Hay que declarar la variable x,
|
| 119 |
+
por supuesto,
|
| 120 |
+
|
| 121 |
+
01:42.555 --> 01:44.777
|
| 122 |
+
entonces vamos arriba
|
| 123 |
+
a declarar nuestra variable,
|
| 124 |
+
|
| 125 |
+
01:44.903 --> 01:46.432
|
| 126 |
+
int x, punto y coma,
|
| 127 |
+
|
| 128 |
+
01:46.558 --> 01:48.345
|
| 129 |
+
ya declaramos nuestra variable x.
|
| 130 |
+
|
| 131 |
+
01:48.471 --> 01:50.107
|
| 132 |
+
Y aquí lo que estamos pasando
|
| 133 |
+
|
| 134 |
+
01:50.233 --> 01:53.488
|
| 135 |
+
es que le estamos asignando
|
| 136 |
+
el valor que escaneamos
|
| 137 |
+
|
| 138 |
+
01:53.614 --> 01:55.255
|
| 139 |
+
a nuestra variable x.
|
| 140 |
+
|
| 141 |
+
01:56.709 --> 01:58.277
|
| 142 |
+
Aquí si no es una copia de x,
|
| 143 |
+
|
| 144 |
+
01:58.403 --> 02:01.000
|
| 145 |
+
nada, nada, lo estamos asignando directo,
|
| 146 |
+
|
| 147 |
+
02:01.000 --> 02:03.000
|
| 148 |
+
mandándoselo derechito.
|
| 149 |
+
|
| 150 |
+
02:03.000 --> 02:06.000
|
| 151 |
+
Muy bien, punto y coma, excelente.
|
| 152 |
+
|
| 153 |
+
02:06.000 --> 02:07.500
|
| 154 |
+
Luego, ya que tenemos esto,
|
| 155 |
+
|
| 156 |
+
02:07.500 --> 02:09.254
|
| 157 |
+
probemos nuestro print
|
| 158 |
+
|
| 159 |
+
02:09.380 --> 02:12.000
|
| 160 |
+
para asegurarnos
|
| 161 |
+
de que está funcionando bien.
|
| 162 |
+
|
| 163 |
+
02:12.000 --> 02:15.000
|
| 164 |
+
Vamos a darle el valor ingresado es...
|
| 165 |
+
|
| 166 |
+
02:17.332 --> 02:20.500
|
| 167 |
+
El valor ingresado es dos puntos,
|
| 168 |
+
|
| 169 |
+
02:20.500 --> 02:23.500
|
| 170 |
+
y vamos a imprimir nuestra variable,
|
| 171 |
+
como ya lo sabes hacer,
|
| 172 |
+
|
| 173 |
+
02:23.500 --> 02:25.238
|
| 174 |
+
entonces %d,
|
| 175 |
+
|
| 176 |
+
02:25.364 --> 02:29.500
|
| 177 |
+
y luego le pasamos la variable x
|
| 178 |
+
a través de una coma.
|
| 179 |
+
|
| 180 |
+
02:29.759 --> 02:30.759
|
| 181 |
+
Excelente.
|
| 182 |
+
|
| 183 |
+
02:30.885 --> 02:33.500
|
| 184 |
+
Punto y coma, todo se ve bien
|
| 185 |
+
en nuestro código,
|
| 186 |
+
|
| 187 |
+
02:33.500 --> 02:35.500
|
| 188 |
+
guardemos, imprimamos,
|
| 189 |
+
|
| 190 |
+
02:37.663 --> 02:39.500
|
| 191 |
+
y veamos qué ocurre.
|
| 192 |
+
|
| 193 |
+
02:39.500 --> 02:42.500
|
| 194 |
+
Vamos a compilar
|
| 195 |
+
nuestro código y ejecutarlo.
|
| 196 |
+
|
| 197 |
+
02:43.703 --> 02:45.500
|
| 198 |
+
Dice, ingresa el valor de x,
|
| 199 |
+
|
| 200 |
+
02:45.500 --> 02:47.500
|
| 201 |
+
y mira, nos pide un número,
|
| 202 |
+
|
| 203 |
+
02:47.500 --> 02:49.500
|
| 204 |
+
voy a poner 56, enter.
|
| 205 |
+
|
| 206 |
+
02:49.500 --> 02:52.000
|
| 207 |
+
El valor ingresado es 56.
|
| 208 |
+
|
| 209 |
+
02:52.194 --> 02:53.903
|
| 210 |
+
Todo está funcionando excelente.
|
| 211 |
+
|
| 212 |
+
02:54.029 --> 02:56.500
|
| 213 |
+
Ahora sí, probemos
|
| 214 |
+
nuestras funciones matemáticas.
|
| 215 |
+
|
| 216 |
+
02:56.973 --> 03:00.346
|
| 217 |
+
Para probar nuestras funciones
|
| 218 |
+
matemáticas, lo que voy a hacer es,
|
| 219 |
+
|
| 220 |
+
03:00.472 --> 03:05.402
|
| 221 |
+
pues, obviamente, voy a trabajar con x
|
| 222 |
+
para que sea algo más dinámico,
|
| 223 |
+
|
| 224 |
+
03:05.528 --> 03:07.500
|
| 225 |
+
y te voy a escribir varias
|
| 226 |
+
de las funciones
|
| 227 |
+
|
| 228 |
+
03:07.500 --> 03:09.429
|
| 229 |
+
que están en mat.h,
|
| 230 |
+
|
| 231 |
+
03:09.555 --> 03:13.000
|
| 232 |
+
por ejemplo, sin,
|
| 233 |
+
que es la función del seno.
|
| 234 |
+
|
| 235 |
+
03:14.710 --> 03:16.734
|
| 236 |
+
Esta función tiene un argumento,
|
| 237 |
+
|
| 238 |
+
03:16.860 --> 03:18.500
|
| 239 |
+
que es, hay que pasarle un valor,
|
| 240 |
+
|
| 241 |
+
03:18.500 --> 03:20.737
|
| 242 |
+
y para ser fiel con las matemáticas,
|
| 243 |
+
|
| 244 |
+
03:20.863 --> 03:23.000
|
| 245 |
+
voy a poner seno de x directamente.
|
| 246 |
+
|
| 247 |
+
03:23.000 --> 03:24.500
|
| 248 |
+
Luego, vamos a...
|
| 249 |
+
|
| 250 |
+
03:26.000 --> 03:29.500
|
| 251 |
+
Vamos a guardar esto
|
| 252 |
+
en una variable auxiliar,
|
| 253 |
+
|
| 254 |
+
03:31.808 --> 03:32.820
|
| 255 |
+
int,
|
| 256 |
+
|
| 257 |
+
03:32.946 --> 03:35.946
|
| 258 |
+
y la variable auxiliar
|
| 259 |
+
se va a llamar result.
|
| 260 |
+
|
| 261 |
+
03:36.993 --> 03:38.132
|
| 262 |
+
Perfecto.
|
| 263 |
+
|
| 264 |
+
03:39.305 --> 03:40.614
|
| 265 |
+
Vamos a dejar un espacio acá
|
| 266 |
+
|
| 267 |
+
03:40.740 --> 03:43.500
|
| 268 |
+
para que esté bien bonito
|
| 269 |
+
todo nuestro programa.
|
| 270 |
+
|
| 271 |
+
03:45.000 --> 03:46.000
|
| 272 |
+
Listo.
|
| 273 |
+
|
| 274 |
+
03:46.828 --> 03:50.483
|
| 275 |
+
Y vamos a guardar esto
|
| 276 |
+
en nuestra variable auxiliar.
|
| 277 |
+
|
| 278 |
+
03:51.866 --> 03:52.866
|
| 279 |
+
Result,
|
| 280 |
+
|
| 281 |
+
03:53.880 --> 03:57.470
|
| 282 |
+
result va a ser igual a seno de x.
|
| 283 |
+
|
| 284 |
+
03:57.956 --> 03:59.994
|
| 285 |
+
Todo está excelente por acá.
|
| 286 |
+
|
| 287 |
+
04:00.120 --> 04:01.365
|
| 288 |
+
De hecho, el seno de x,
|
| 289 |
+
|
| 290 |
+
04:01.491 --> 04:03.526
|
| 291 |
+
probablemente vamos a necesitar
|
| 292 |
+
|
| 293 |
+
04:03.652 --> 04:05.496
|
| 294 |
+
que nos dé un resultado en float,
|
| 295 |
+
|
| 296 |
+
04:06.511 --> 04:08.351
|
| 297 |
+
porque estas operaciones suelen darnos
|
| 298 |
+
|
| 299 |
+
04:08.477 --> 04:10.702
|
| 300 |
+
puntitos decimales
|
| 301 |
+
y cuestiones de ese estilo.
|
| 302 |
+
|
| 303 |
+
04:10.828 --> 04:13.112
|
| 304 |
+
Así que hagamos el experimento.
|
| 305 |
+
|
| 306 |
+
04:15.131 --> 04:17.067
|
| 307 |
+
Nada más me falta agregar un print.
|
| 308 |
+
|
| 309 |
+
04:20.340 --> 04:22.198
|
| 310 |
+
Vamos a copiar y pegar el que ya teníamos
|
| 311 |
+
|
| 312 |
+
04:22.324 --> 04:25.146
|
| 313 |
+
para optimizar la escritura del código.
|
| 314 |
+
|
| 315 |
+
04:25.780 --> 04:30.333
|
| 316 |
+
El valor del seno de x es,
|
| 317 |
+
|
| 318 |
+
04:31.102 --> 04:34.286
|
| 319 |
+
%f, porque es un número decimal,
|
| 320 |
+
|
| 321 |
+
04:34.532 --> 04:36.533
|
| 322 |
+
y le vamos a pasar result.
|
| 323 |
+
|
| 324 |
+
04:36.659 --> 04:37.693
|
| 325 |
+
Excelente.
|
| 326 |
+
|
| 327 |
+
04:38.468 --> 04:40.417
|
| 328 |
+
Guardamos, compilamos,
|
| 329 |
+
|
| 330 |
+
04:40.543 --> 04:42.221
|
| 331 |
+
y ejecutamos nuestro código.
|
| 332 |
+
|
| 333 |
+
04:42.760 --> 04:44.434
|
| 334 |
+
Y esperamos a que salga el resultado.
|
| 335 |
+
|
| 336 |
+
04:44.560 --> 04:46.766
|
| 337 |
+
Ingrese el valor de x, 56.
|
| 338 |
+
|
| 339 |
+
04:47.653 --> 04:49.674
|
| 340 |
+
Ah, mira, el valor ingresado es 56.
|
| 341 |
+
|
| 342 |
+
04:49.800 --> 04:53.256
|
| 343 |
+
El valor del seno de x es menos 0.52.
|
| 344 |
+
|
| 345 |
+
04:53.282 --> 04:54.316
|
| 346 |
+
Excelente.
|
| 347 |
+
|
| 348 |
+
04:54.342 --> 04:56.328
|
| 349 |
+
Confío plenamente en que eso está bien,
|
| 350 |
+
|
| 351 |
+
04:56.454 --> 04:58.751
|
| 352 |
+
entonces no hay nada más que hacer.
|
| 353 |
+
|
| 354 |
+
04:58.877 --> 05:00.642
|
| 355 |
+
Ya por último hay que agregar
|
| 356 |
+
|
| 357 |
+
05:00.768 --> 05:02.839
|
| 358 |
+
diagonal invertida n para corregir eso
|
| 359 |
+
|
| 360 |
+
05:02.965 --> 05:04.583
|
| 361 |
+
de que salieron los dos ahí juntitos.
|
| 362 |
+
|
| 363 |
+
05:04.709 --> 05:05.976
|
| 364 |
+
Eso no está bien, nunca.
|
| 365 |
+
|
| 366 |
+
05:06.342 --> 05:08.120
|
| 367 |
+
Entonces, diagonal invertida n,
|
| 368 |
+
|
| 369 |
+
05:08.246 --> 05:09.537
|
| 370 |
+
diagonal invertida n, y listo.
|
| 371 |
+
|
| 372 |
+
05:09.732 --> 05:11.003
|
| 373 |
+
Hagamos más operaciones.
|
| 374 |
+
|
| 375 |
+
05:11.129 --> 05:12.356
|
| 376 |
+
Ya vimos seno.
|
| 377 |
+
|
| 378 |
+
05:12.482 --> 05:14.456
|
| 379 |
+
Hagamos ahora coseno.
|
| 380 |
+
|
| 381 |
+
05:17.000 --> 05:20.176
|
| 382 |
+
Guardamos, compilamos y ejecutamos.
|
| 383 |
+
|
| 384 |
+
05:23.500 --> 05:26.000
|
| 385 |
+
Ingrese el valor de x, menos 1.
|
| 386 |
+
|
| 387 |
+
05:29.000 --> 05:32.000
|
| 388 |
+
El coseno de x es 0.54.
|
| 389 |
+
|
| 390 |
+
05:32.000 --> 05:33.000
|
| 391 |
+
¿Ok?
|
| 392 |
+
|
| 393 |
+
05:33.000 --> 05:35.000
|
| 394 |
+
Ahora hagamos otra operación.
|
| 395 |
+
|
| 396 |
+
05:35.000 --> 05:37.000
|
| 397 |
+
Pero aquí ya básicamente simplemente
|
| 398 |
+
|
| 399 |
+
05:37.000 --> 05:38.000
|
| 400 |
+
estoy cambiando esto.
|
| 401 |
+
|
| 402 |
+
05:38.000 --> 05:40.000
|
| 403 |
+
Ya sabes cómo llamar funciones.
|
| 404 |
+
|
| 405 |
+
05:40.000 --> 05:43.000
|
| 406 |
+
Recuerda que el lenguaje C
|
| 407 |
+
tiene muchísimas,
|
| 408 |
+
|
| 409 |
+
05:43.000 --> 05:45.500
|
| 410 |
+
muchísisísimas funciones matemáticas.
|
| 411 |
+
|
| 412 |
+
05:45.500 --> 05:47.000
|
| 413 |
+
Ya te dije varias de ellas,
|
| 414 |
+
|
| 415 |
+
05:47.000 --> 05:49.000
|
| 416 |
+
pero quiero invitarte a que lo consultes,
|
| 417 |
+
|
| 418 |
+
05:49.000 --> 05:51.132
|
| 419 |
+
a que generes tus propias guías
|
| 420 |
+
de estudio.
|
| 421 |
+
|
| 422 |
+
05:51.258 --> 05:53.500
|
| 423 |
+
Y si de verdad
|
| 424 |
+
vas a estar trabajando con C,
|
| 425 |
+
|
| 426 |
+
05:53.500 --> 05:56.000
|
| 427 |
+
inclusive que le des una leída a el libro
|
| 428 |
+
|
| 429 |
+
05:56.000 --> 05:58.000
|
| 430 |
+
de C Programming Language.
|
| 431 |
+
|
| 432 |
+
05:58.000 --> 06:01.000
|
| 433 |
+
Te voy a dejar el nombre aquí
|
| 434 |
+
en la sección de comentarios.
|
| 435 |
+
|
| 436 |
+
06:01.000 --> 06:02.401
|
| 437 |
+
Y, bueno, le das un corazoncito
|
| 438 |
+
|
| 439 |
+
06:02.527 --> 06:04.500
|
| 440 |
+
para que mi comentario
|
| 441 |
+
se quede arriba.
|
| 442 |
+
|
| 443 |
+
06:04.500 --> 06:06.500
|
| 444 |
+
Con eso ya tú sabrás que, bueno,
|
| 445 |
+
|
| 446 |
+
06:06.500 --> 06:09.000
|
| 447 |
+
ahí puedes consultarlo como una referencia
|
| 448 |
+
|
| 449 |
+
06:09.000 --> 06:11.500
|
| 450 |
+
para que veas todas las funciones que hay.
|
| 451 |
+
|
| 452 |
+
06:11.500 --> 06:15.267
|
| 453 |
+
Ya te dije, está Flour,
|
| 454 |
+
está Seal, está SQRT,
|
| 455 |
+
|
| 456 |
+
06:15.393 --> 06:19.000
|
| 457 |
+
está POU, está LOC, está X, está Tangente,
|
| 458 |
+
|
| 459 |
+
06:19.000 --> 06:23.316
|
| 460 |
+
está todo lo que tendríamos
|
| 461 |
+
como funcionalidades básicas
|
| 462 |
+
|
| 463 |
+
06:23.442 --> 06:25.000
|
| 464 |
+
de una calculadora, por decirlo así.
|
| 465 |
+
|
| 466 |
+
06:25.000 --> 06:27.000
|
| 467 |
+
Obviamente no tenemos suma,
|
| 468 |
+
multiplicación,
|
| 469 |
+
|
| 470 |
+
06:27.000 --> 06:29.500
|
| 471 |
+
porque esas son operaciones
|
| 472 |
+
que ya tenemos
|
| 473 |
+
|
| 474 |
+
06:29.500 --> 06:32.000
|
| 475 |
+
directamente por nuestros
|
| 476 |
+
operadores aritméticos.
|
| 477 |
+
|
| 478 |
+
06:32.000 --> 06:33.500
|
| 479 |
+
Así que no hay problema.
|
| 480 |
+
|
| 481 |
+
06:33.500 --> 06:36.679
|
| 482 |
+
O suma, división, resta,
|
| 483 |
+
multiplicación, etc.
|
| 484 |
+
|
| 485 |
+
06:36.805 --> 06:39.500
|
| 486 |
+
Con esto dicho, bueno,
|
| 487 |
+
ya hicimos nuestra exploración
|
| 488 |
+
|
| 489 |
+
06:39.500 --> 06:42.000
|
| 490 |
+
de esta biblioteca de mat.h.
|
| 491 |
+
|
| 492 |
+
06:42.000 --> 06:47.400
|
| 493 |
+
Nos vemos en la próxima clase.
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://www.tutorialspoint.com/c_standard_library/math_h.htm
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-mathdemo_4d517300-d5e9-4437-82ad-b7fdbe0bc464.c
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include<stdio.h>
|
| 2 |
+
#include<math.h>
|
| 3 |
+
|
| 4 |
+
int x;
|
| 5 |
+
float result;
|
| 6 |
+
|
| 7 |
+
int main()
|
| 8 |
+
{
|
| 9 |
+
printf("ingrese el valor de x: ");
|
| 10 |
+
scanf("%d", &x);
|
| 11 |
+
result = cos(x);
|
| 12 |
+
printf("El valor ingresado es:%d \n", x);
|
| 13 |
+
printf("El valor del seno de X es:%f\n", result);
|
| 14 |
+
|
| 15 |
+
return 0;
|
| 16 |
+
}
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-Lecturas recomendadas.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
https://www.tutorialspoint.com/c_standard_library/string_h.htm
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-Manejo de Strings en C Funciones y Operaciones Básicas.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:42717d56a0fe6c5fab0a03868a919a49f41bcf6337e95e13f405b1b177ed99d4
|
| 3 |
+
size 120827555
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-Manejo de Strings en C Funciones y Operaciones Básicas.vtt
ADDED
|
@@ -0,0 +1,722 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:03.220 --> 00:05.435
|
| 4 |
+
Ahora es momento de trabajar con strings.
|
| 5 |
+
|
| 6 |
+
00:05.561 --> 00:07.797
|
| 7 |
+
Para esto vamos a ir
|
| 8 |
+
a nuestro Visual Studio Code,
|
| 9 |
+
|
| 10 |
+
00:07.823 --> 00:09.047
|
| 11 |
+
creamos un nuevo archivo,
|
| 12 |
+
|
| 13 |
+
00:09.173 --> 00:13.234
|
| 14 |
+
control N y luego lo guardamos,
|
| 15 |
+
le vamos a poner string.c,
|
| 16 |
+
|
| 17 |
+
00:13.360 --> 00:16.661
|
| 18 |
+
excelente, me dice que ya existe, ok, sí,
|
| 19 |
+
|
| 20 |
+
00:16.787 --> 00:19.825
|
| 21 |
+
quiero reemplazarlo y voy a proceder.
|
| 22 |
+
|
| 23 |
+
00:20.048 --> 00:22.808
|
| 24 |
+
Lo primero es agregar nuestras includes,
|
| 25 |
+
|
| 26 |
+
00:22.934 --> 00:27.592
|
| 27 |
+
vamos a decirle tráete stdio.h
|
| 28 |
+
|
| 29 |
+
00:27.718 --> 00:31.560
|
| 30 |
+
y también tráete string.h
|
| 31 |
+
|
| 32 |
+
00:31.560 --> 00:33.775
|
| 33 |
+
que es la estrella de esta clase.
|
| 34 |
+
|
| 35 |
+
00:34.466 --> 00:37.275
|
| 36 |
+
Luego no voy a declarar ninguna
|
| 37 |
+
variable, voy a poner mi main,
|
| 38 |
+
|
| 39 |
+
00:37.401 --> 00:40.568
|
| 40 |
+
int main, abrimos
|
| 41 |
+
y cerramos nuestras llaves,
|
| 42 |
+
|
| 43 |
+
00:42.055 --> 00:44.280
|
| 44 |
+
muy bien, y dentro de mi main voy
|
| 45 |
+
|
| 46 |
+
00:44.280 --> 00:47.345
|
| 47 |
+
a declarar una variable de tipo char,
|
| 48 |
+
|
| 49 |
+
00:47.471 --> 00:49.840
|
| 50 |
+
que en realidad voy a declarar una array
|
| 51 |
+
|
| 52 |
+
00:49.840 --> 00:53.276
|
| 53 |
+
para guardar mi string
|
| 54 |
+
o cadena de caracteres.
|
| 55 |
+
|
| 56 |
+
00:53.476 --> 00:57.600
|
| 57 |
+
String 1 le voy a poner
|
| 58 |
+
y va a ser de máximo,
|
| 59 |
+
|
| 60 |
+
00:57.600 --> 01:02.871
|
| 61 |
+
no sé, unos 60 caracteres,
|
| 62 |
+
60 posiciones en el array.
|
| 63 |
+
|
| 64 |
+
01:04.253 --> 01:05.880
|
| 65 |
+
Muy bien, recuerda que un array
|
| 66 |
+
|
| 67 |
+
01:05.880 --> 01:08.233
|
| 68 |
+
no es más que una forma
|
| 69 |
+
de almacenar información,
|
| 70 |
+
|
| 71 |
+
01:08.358 --> 01:10.560
|
| 72 |
+
es como una variable
|
| 73 |
+
que tiene varias celdas
|
| 74 |
+
|
| 75 |
+
01:10.560 --> 01:13.722
|
| 76 |
+
y simple y sencillamente
|
| 77 |
+
puedes irle poniendo muchos valores.
|
| 78 |
+
|
| 79 |
+
01:13.848 --> 01:15.972
|
| 80 |
+
Cada uno de estos 60 va a ser,
|
| 81 |
+
|
| 82 |
+
01:16.098 --> 01:17.904
|
| 83 |
+
por decirlo así, un carácter,
|
| 84 |
+
|
| 85 |
+
01:18.030 --> 01:20.866
|
| 86 |
+
entonces vamos a tener
|
| 87 |
+
una cadena de caracteres,
|
| 88 |
+
|
| 89 |
+
01:20.992 --> 01:24.281
|
| 90 |
+
de 60 caracteres, perfecto.
|
| 91 |
+
|
| 92 |
+
01:26.024 --> 01:29.005
|
| 93 |
+
Vamos a imprimir, printf
|
| 94 |
+
|
| 95 |
+
01:29.131 --> 01:35.852
|
| 96 |
+
y voy a imprimir un mensaje
|
| 97 |
+
que diga escribe una frase,
|
| 98 |
+
|
| 99 |
+
01:36.198 --> 01:40.528
|
| 100 |
+
una frase, perfecto,
|
| 101 |
+
simple y sencillamente
|
| 102 |
+
|
| 103 |
+
01:40.654 --> 01:43.638
|
| 104 |
+
le vamos a poner diagonal n
|
| 105 |
+
|
| 106 |
+
01:43.844 --> 01:46.595
|
| 107 |
+
y luego vamos a pedir nuestra frase.
|
| 108 |
+
|
| 109 |
+
01:46.721 --> 01:49.240
|
| 110 |
+
Para pedir nuestra frase
|
| 111 |
+
no vamos a utilizar
|
| 112 |
+
|
| 113 |
+
01:49.240 --> 01:51.109
|
| 114 |
+
lo que vimos en la clase
|
| 115 |
+
anterior de math,
|
| 116 |
+
|
| 117 |
+
01:51.235 --> 01:54.314
|
| 118 |
+
en donde utilizamos scam,
|
| 119 |
+
aquí vamos a utilizar
|
| 120 |
+
|
| 121 |
+
01:54.440 --> 01:58.040
|
| 122 |
+
algo que es específico
|
| 123 |
+
para obtener un string
|
| 124 |
+
|
| 125 |
+
01:58.165 --> 02:01.680
|
| 126 |
+
que es gets y este gets
|
| 127 |
+
lo vamos a pasar
|
| 128 |
+
|
| 129 |
+
02:01.680 --> 02:05.277
|
| 130 |
+
a nuestro string 1, perfecto,
|
| 131 |
+
simplemente estamos
|
| 132 |
+
|
| 133 |
+
02:05.402 --> 02:08.760
|
| 134 |
+
diciéndole que la string
|
| 135 |
+
que nos asignemos
|
| 136 |
+
|
| 137 |
+
02:08.760 --> 02:13.108
|
| 138 |
+
lo aguardemos en nuestro string 1,
|
| 139 |
+
perfecto.
|
| 140 |
+
|
| 141 |
+
02:13.234 --> 02:16.760
|
| 142 |
+
Luego vamos a utilizar una función
|
| 143 |
+
|
| 144 |
+
02:16.760 --> 02:19.547
|
| 145 |
+
que es la primera que te quiero
|
| 146 |
+
mostrar de nuestro string.h
|
| 147 |
+
|
| 148 |
+
02:19.673 --> 02:24.673
|
| 149 |
+
que es strreb, sorry que la tengo
|
| 150 |
+
que dar letra a letra
|
| 151 |
+
|
| 152 |
+
02:24.799 --> 02:27.960
|
| 153 |
+
pero si no siempre me confundía
|
| 154 |
+
con esta y a mí me pasaba
|
| 155 |
+
|
| 156 |
+
02:27.960 --> 02:29.859
|
| 157 |
+
que siempre me saltaba una de las r
|
| 158 |
+
|
| 159 |
+
02:29.985 --> 02:34.120
|
| 160 |
+
así que es porque es así
|
| 161 |
+
porque es string str y ref
|
| 162 |
+
|
| 163 |
+
02:34.120 --> 02:37.013
|
| 164 |
+
de reverse.
|
| 165 |
+
Esta función es bien cool
|
| 166 |
+
|
| 167 |
+
02:37.139 --> 02:41.400
|
| 168 |
+
porque nos permite cambiar
|
| 169 |
+
el sentido a nuestro string
|
| 170 |
+
|
| 171 |
+
02:41.400 --> 02:43.967
|
| 172 |
+
y lo ponemos en reversa,
|
| 173 |
+
de hecho voy a buscar
|
| 174 |
+
|
| 175 |
+
02:44.092 --> 02:46.121
|
| 176 |
+
un palíndromo
|
| 177 |
+
para nuestro ejemplo
|
| 178 |
+
|
| 179 |
+
02:46.247 --> 02:48.136
|
| 180 |
+
pero eso lo veremos más adelante.
|
| 181 |
+
|
| 182 |
+
02:48.262 --> 02:52.080
|
| 183 |
+
String ref le pasamos el string
|
| 184 |
+
que vamos a reversar por decirlo
|
| 185 |
+
|
| 186 |
+
02:52.080 --> 02:57.298
|
| 187 |
+
de alguna forma y luego
|
| 188 |
+
vamos a imprimir nuestro string nuevo.
|
| 189 |
+
|
| 190 |
+
02:57.423 --> 03:03.841
|
| 191 |
+
Print, vamos a ponerle
|
| 192 |
+
el string al revés es,
|
| 193 |
+
|
| 194 |
+
03:05.574 --> 03:07.845
|
| 195 |
+
es dos puntos y aquí le hacemos
|
| 196 |
+
|
| 197 |
+
03:07.971 --> 03:10.320
|
| 198 |
+
lo de siempre para pasar una variable
|
| 199 |
+
|
| 200 |
+
03:10.320 --> 03:13.328
|
| 201 |
+
%s porque es un string, le vamos a poner
|
| 202 |
+
|
| 203 |
+
03:13.454 --> 03:15.851
|
| 204 |
+
nuestro salto de línea
|
| 205 |
+
porque es una buena práctica
|
| 206 |
+
|
| 207 |
+
03:15.977 --> 03:20.239
|
| 208 |
+
y le vamos a pasar
|
| 209 |
+
nuestra variable string 1,
|
| 210 |
+
|
| 211 |
+
03:20.365 --> 03:22.640
|
| 212 |
+
dejamos un punto y coma,
|
| 213 |
+
|
| 214 |
+
03:22.640 --> 03:25.916
|
| 215 |
+
ponemos retorno cero
|
| 216 |
+
para que se finalice el programa,
|
| 217 |
+
|
| 218 |
+
03:27.499 --> 03:31.584
|
| 219 |
+
return cero, punto y coma
|
| 220 |
+
y ya estamos del otro lado
|
| 221 |
+
|
| 222 |
+
03:31.710 --> 03:32.908
|
| 223 |
+
con nuestro código.
|
| 224 |
+
|
| 225 |
+
03:33.034 --> 03:36.936
|
| 226 |
+
Excelente, ya tenemos todo listo,
|
| 227 |
+
vamos a ver cómo funciona esto.
|
| 228 |
+
|
| 229 |
+
03:37.062 --> 03:42.032
|
| 230 |
+
Guardo, compilo
|
| 231 |
+
y esperemos a que compile,
|
| 232 |
+
|
| 233 |
+
03:42.158 --> 03:45.600
|
| 234 |
+
no se va a demorar y ahí está,
|
| 235 |
+
dice escribe una frase
|
| 236 |
+
|
| 237 |
+
03:45.726 --> 03:50.878
|
| 238 |
+
Anita lava latina,
|
| 239 |
+
|
| 240 |
+
03:52.237 --> 03:56.786
|
| 241 |
+
el string al revés es Anita lava
|
| 242 |
+
latina, date cuenta cómo
|
| 243 |
+
|
| 244 |
+
03:56.919 --> 03:59.497
|
| 245 |
+
funciona nuestro
|
| 246 |
+
palíndromo pero obviamente
|
| 247 |
+
|
| 248 |
+
03:59.623 --> 04:02.200
|
| 249 |
+
existen los espacios
|
| 250 |
+
eso es lo que me sirve
|
| 251 |
+
|
| 252 |
+
04:02.200 --> 04:05.368
|
| 253 |
+
de evidencia para que tú
|
| 254 |
+
te des cuenta que en efecto
|
| 255 |
+
|
| 256 |
+
04:05.494 --> 04:07.320
|
| 257 |
+
sí lo puso al revés y no solamente
|
| 258 |
+
|
| 259 |
+
04:07.320 --> 04:09.498
|
| 260 |
+
lo copió y lo volvió a imprimir.
|
| 261 |
+
|
| 262 |
+
04:09.623 --> 04:12.134
|
| 263 |
+
Vamos a ver un par de cosas
|
| 264 |
+
más curiosas que se pueden hacer
|
| 265 |
+
|
| 266 |
+
04:12.260 --> 04:15.553
|
| 267 |
+
con esta librería string.
|
| 268 |
+
Ahora tengo otro ejemplo para ti
|
| 269 |
+
|
| 270 |
+
04:15.679 --> 04:17.240
|
| 271 |
+
que va a ser string compare,
|
| 272 |
+
|
| 273 |
+
04:17.240 --> 04:23.867
|
| 274 |
+
str de string y comp
|
| 275 |
+
que lo deletrean como cmp.c,
|
| 276 |
+
|
| 277 |
+
04:23.993 --> 04:26.760
|
| 278 |
+
perfecto, este es el nombre
|
| 279 |
+
de mi programa,
|
| 280 |
+
|
| 281 |
+
04:26.760 --> 04:29.170
|
| 282 |
+
vamos a copiarnos este
|
| 283 |
+
que hicimos acá porque
|
| 284 |
+
|
| 285 |
+
04:29.295 --> 04:32.423
|
| 286 |
+
por favor así nos ahorramos
|
| 287 |
+
un poquitín de código,
|
| 288 |
+
|
| 289 |
+
04:33.387 --> 04:35.854
|
| 290 |
+
vamos a guardar esto, perfecto,
|
| 291 |
+
|
| 292 |
+
04:35.980 --> 04:40.170
|
| 293 |
+
escribe una frase y eso
|
| 294 |
+
lo guardamos en string 1,
|
| 295 |
+
|
| 296 |
+
04:40.296 --> 04:43.680
|
| 297 |
+
voy a copiar este print,
|
| 298 |
+
voy a poner escribe otra frase,
|
| 299 |
+
|
| 300 |
+
04:44.206 --> 04:49.356
|
| 301 |
+
escribe otra frase para comparar,
|
| 302 |
+
|
| 303 |
+
04:50.923 --> 04:53.955
|
| 304 |
+
para comparar eso lo vamos
|
| 305 |
+
a guardar en string 2
|
| 306 |
+
|
| 307 |
+
04:54.081 --> 04:56.753
|
| 308 |
+
que de hecho no lo hemos declarado,
|
| 309 |
+
así que ahorita lo haré,
|
| 310 |
+
|
| 311 |
+
04:57.688 --> 05:00.840
|
| 312 |
+
vamos a pasarnos todas
|
| 313 |
+
nuestras declaraciones afuera del main,
|
| 314 |
+
|
| 315 |
+
05:00.840 --> 05:04.974
|
| 316 |
+
prefiero hacerlo así,
|
| 317 |
+
creo que es todo mucho más claro,
|
| 318 |
+
|
| 319 |
+
05:05.221 --> 05:09.720
|
| 320 |
+
string 1 y string 2, perfecto,
|
| 321 |
+
|
| 322 |
+
05:09.720 --> 05:11.818
|
| 323 |
+
las dos de 60 caracteres, excelente,
|
| 324 |
+
|
| 325 |
+
05:11.943 --> 05:14.509
|
| 326 |
+
escribe una frase, string 1,
|
| 327 |
+
escribe otra frase para comparar,
|
| 328 |
+
|
| 329 |
+
05:14.635 --> 05:18.748
|
| 330 |
+
string 2 y vamos a,
|
| 331 |
+
no voy a usar string reverse
|
| 332 |
+
|
| 333 |
+
05:18.874 --> 05:21.250
|
| 334 |
+
esta vez porque ya no es lo que quiero
|
| 335 |
+
|
| 336 |
+
05:21.376 --> 05:24.148
|
| 337 |
+
y vamos a hacer un pequeño código if.
|
| 338 |
+
|
| 339 |
+
05:25.579 --> 05:27.680
|
| 340 |
+
En este código if la condición va
|
| 341 |
+
|
| 342 |
+
05:28.206 --> 05:34.943
|
| 343 |
+
a ser utilizar nuestra
|
| 344 |
+
función strcmp que en humano
|
| 345 |
+
|
| 346 |
+
05:35.069 --> 05:38.480
|
| 347 |
+
sería string compare, str de string,
|
| 348 |
+
|
| 349 |
+
05:38.480 --> 05:42.720
|
| 350 |
+
cmp de compare, quiero que vayas viendo
|
| 351 |
+
el patrón de cómo decidieron ponerle
|
| 352 |
+
|
| 353 |
+
05:42.720 --> 05:45.071
|
| 354 |
+
estos nombres a nuestras funciones,
|
| 355 |
+
eso te va a servir mucho
|
| 356 |
+
|
| 357 |
+
05:45.196 --> 05:47.840
|
| 358 |
+
para recordarlos y voy a comparar
|
| 359 |
+
|
| 360 |
+
05:47.840 --> 05:53.393
|
| 361 |
+
mi string 1 con mi string 2,
|
| 362 |
+
simplemente se las pasamos
|
| 363 |
+
|
| 364 |
+
05:53.519 --> 05:54.960
|
| 365 |
+
como argumentos de las funciones
|
| 366 |
+
|
| 367 |
+
05:54.960 --> 05:59.624
|
| 368 |
+
que ahora tú ya sabes clarísimo
|
| 369 |
+
qué es un argumento y eso está excelente,
|
| 370 |
+
|
| 371 |
+
05:59.750 --> 06:02.616
|
| 372 |
+
te cuento un poquito más de string
|
| 373 |
+
compare cómo funciona,
|
| 374 |
+
|
| 375 |
+
06:02.741 --> 06:06.661
|
| 376 |
+
es súper simple, esto hace una comparación
|
| 377 |
+
entre las dos cadenas de caracteres
|
| 378 |
+
|
| 379 |
+
06:06.787 --> 06:09.661
|
| 380 |
+
que tú le estás pasando y si te dice
|
| 381 |
+
|
| 382 |
+
06:09.787 --> 06:12.540
|
| 383 |
+
si son iguales entonces te retorna 0,
|
| 384 |
+
|
| 385 |
+
06:12.666 --> 06:17.840
|
| 386 |
+
0 el valor, el dígito
|
| 387 |
+
y si son diferentes entonces
|
| 388 |
+
|
| 389 |
+
06:17.840 --> 06:22.014
|
| 390 |
+
te retorna un 1.
|
| 391 |
+
Con esto dicho hagamos nuestro if
|
| 392 |
+
|
| 393 |
+
06:22.140 --> 06:24.980
|
| 394 |
+
y vamos, ya sabemos
|
| 395 |
+
que si el strcmp me dice
|
| 396 |
+
|
| 397 |
+
06:25.106 --> 06:28.801
|
| 398 |
+
el resultado de la comparación
|
| 399 |
+
fue igual a 0
|
| 400 |
+
|
| 401 |
+
06:28.927 --> 06:32.000
|
| 402 |
+
entonces la persona metió el caracter
|
| 403 |
+
|
| 404 |
+
06:32.000 --> 06:35.105
|
| 405 |
+
igual aquí se me fue
|
| 406 |
+
un paréntesis de más,
|
| 407 |
+
|
| 408 |
+
06:35.230 --> 06:38.720
|
| 409 |
+
listo, y aquí también
|
| 410 |
+
se me fue un paréntesis
|
| 411 |
+
|
| 412 |
+
06:38.720 --> 06:42.520
|
| 413 |
+
de más, excelente, entonces aquí quiero
|
| 414 |
+
que veas esta operación que dice hago
|
| 415 |
+
|
| 416 |
+
06:42.520 --> 06:45.896
|
| 417 |
+
el strcmp esto nos retorna
|
| 418 |
+
un resultado entonces
|
| 419 |
+
|
| 420 |
+
06:46.021 --> 06:48.138
|
| 421 |
+
va a valer 0 o 1 y yo le digo
|
| 422 |
+
|
| 423 |
+
06:48.264 --> 06:52.240
|
| 424 |
+
si eres igual a 0
|
| 425 |
+
estoy haciendo una comparación,
|
| 426 |
+
|
| 427 |
+
06:52.366 --> 06:56.630
|
| 428 |
+
este es un operador de comparación,
|
| 429 |
+
me dice si eres igual a 0 significa que,
|
| 430 |
+
|
| 431 |
+
06:56.756 --> 07:00.780
|
| 432 |
+
entonces va a ir el código
|
| 433 |
+
y aquí voy a imprimir.
|
| 434 |
+
|
| 435 |
+
07:04.358 --> 07:05.498
|
| 436 |
+
print
|
| 437 |
+
|
| 438 |
+
07:06.465 --> 07:12.585
|
| 439 |
+
ingresaste dos strings idénticos
|
| 440 |
+
|
| 441 |
+
07:13.085 --> 07:17.057
|
| 442 |
+
o dos strings idénticos, excelente,
|
| 443 |
+
|
| 444 |
+
07:17.183 --> 07:20.354
|
| 445 |
+
vamos a dejarle su buen
|
| 446 |
+
salto de línea, y ya
|
| 447 |
+
|
| 448 |
+
07:20.693 --> 07:23.680
|
| 449 |
+
punto y coma y en caso de que no,
|
| 450 |
+
|
| 451 |
+
07:23.680 --> 07:26.526
|
| 452 |
+
de hecho como es una sola línea
|
| 453 |
+
de código en el if no necesitamos,
|
| 454 |
+
|
| 455 |
+
07:26.652 --> 07:28.040
|
| 456 |
+
acuérdate que yo te lo enseñé,
|
| 457 |
+
|
| 458 |
+
07:28.040 --> 07:30.318
|
| 459 |
+
no necesitamos las llavecitas,
|
| 460 |
+
|
| 461 |
+
07:30.444 --> 07:35.547
|
| 462 |
+
luego vamos a poner un else
|
| 463 |
+
y dentro del else el código va a ser,
|
| 464 |
+
|
| 465 |
+
07:37.014 --> 07:38.817
|
| 466 |
+
vamos a borrar las llavecitas,
|
| 467 |
+
|
| 468 |
+
07:40.869 --> 07:46.428
|
| 469 |
+
el código dentro del else
|
| 470 |
+
va a ser print ingresaste
|
| 471 |
+
|
| 472 |
+
07:47.935 --> 07:53.567
|
| 473 |
+
dos cosas distintas, excelente,
|
| 474 |
+
|
| 475 |
+
07:53.693 --> 07:59.634
|
| 476 |
+
salto de línea y punto y coma,
|
| 477 |
+
bueno estamos listos
|
| 478 |
+
|
| 479 |
+
07:59.760 --> 08:05.083
|
| 480 |
+
para probar el código voy
|
| 481 |
+
a borrar este print y guardamos,
|
| 482 |
+
|
| 483 |
+
08:05.209 --> 08:07.960
|
| 484 |
+
ya que guardamos simplemente
|
| 485 |
+
compilemos y ejecutemos,
|
| 486 |
+
|
| 487 |
+
08:08.086 --> 08:11.381
|
| 488 |
+
ya sabes, si no sabes cómo lo programamos
|
| 489 |
+
|
| 490 |
+
08:11.507 --> 08:14.684
|
| 491 |
+
ve el primer curso de toda
|
| 492 |
+
esta serie de cursos de C,
|
| 493 |
+
|
| 494 |
+
08:14.810 --> 08:16.739
|
| 495 |
+
ahí te enseño cómo configurar tu entorno,
|
| 496 |
+
|
| 497 |
+
08:16.865 --> 08:20.174
|
| 498 |
+
primero nos dice VS code,
|
| 499 |
+
escribe una frase,
|
| 500 |
+
|
| 501 |
+
08:20.561 --> 08:24.811
|
| 502 |
+
hola platzi,
|
| 503 |
+
escribe otra frase para comparar,
|
| 504 |
+
|
| 505 |
+
08:24.937 --> 08:28.263
|
| 506 |
+
hola platzI,
|
| 507 |
+
|
| 508 |
+
08:28.858 --> 08:31.391
|
| 509 |
+
ingresaste dos cosas distintas,
|
| 510 |
+
|
| 511 |
+
08:31.517 --> 08:34.280
|
| 512 |
+
¿qué? pero si escribí lo mismo,
|
| 513 |
+
bueno recuerda
|
| 514 |
+
|
| 515 |
+
08:34.280 --> 08:38.680
|
| 516 |
+
lo que ya te había enseñado en C importa
|
| 517 |
+
y son caracteres diferentes la I mayúscula
|
| 518 |
+
|
| 519 |
+
08:38.680 --> 08:42.071
|
| 520 |
+
y la I minúscula,
|
| 521 |
+
probemos de nuevo nuestro programa,
|
| 522 |
+
|
| 523 |
+
08:42.681 --> 08:45.511
|
| 524 |
+
dice escribe una frase, hola,
|
| 525 |
+
|
| 526 |
+
08:45.637 --> 08:50.840
|
| 527 |
+
escribe otra frase para comparar,
|
| 528 |
+
hola, ya ingresastedos strings idénticos,
|
| 529 |
+
|
| 530 |
+
08:50.966 --> 08:53.243
|
| 531 |
+
si te das cuenta nuestro string compare
|
| 532 |
+
|
| 533 |
+
08:53.369 --> 08:54.485
|
| 534 |
+
está funcionando a la perfección
|
| 535 |
+
|
| 536 |
+
08:54.610 --> 08:56.800
|
| 537 |
+
y la última función que te quiero enseñar
|
| 538 |
+
|
| 539 |
+
08:56.800 --> 08:59.159
|
| 540 |
+
recuerda que hay más,
|
| 541 |
+
te reto a que las revises,
|
| 542 |
+
|
| 543 |
+
08:59.285 --> 09:00.640
|
| 544 |
+
a que investigues todas las que hay
|
| 545 |
+
|
| 546 |
+
09:00.640 --> 09:02.978
|
| 547 |
+
y que me las dejes
|
| 548 |
+
en la sección de comentarios,
|
| 549 |
+
|
| 550 |
+
09:03.103 --> 09:07.141
|
| 551 |
+
la última que quiero
|
| 552 |
+
mostrarte es el comando string concat,
|
| 553 |
+
|
| 554 |
+
09:07.267 --> 09:10.022
|
| 555 |
+
entonces cuando quiero
|
| 556 |
+
que cuando sean diferentes,
|
| 557 |
+
|
| 558 |
+
09:10.148 --> 09:13.672
|
| 559 |
+
o sea en mi else y aquí sí
|
| 560 |
+
voy a necesitar mis llaves,
|
| 561 |
+
|
| 562 |
+
09:13.797 --> 09:16.613
|
| 563 |
+
quiero que cuando sean
|
| 564 |
+
diferentes las strings las concatene
|
| 565 |
+
|
| 566 |
+
09:16.739 --> 09:18.989
|
| 567 |
+
en una nueva y única string,
|
| 568 |
+
|
| 569 |
+
09:19.352 --> 09:22.320
|
| 570 |
+
es decir vamos a agarrar
|
| 571 |
+
dos strings de caracteres
|
| 572 |
+
|
| 573 |
+
09:22.320 --> 09:27.920
|
| 574 |
+
y las vamos a juntar en una, esto se llama
|
| 575 |
+
concatenar, no necesariamente en strings,
|
| 576 |
+
|
| 577 |
+
09:27.920 --> 09:29.640
|
| 578 |
+
tú puedes concatenar varias cosas
|
| 579 |
+
|
| 580 |
+
09:29.766 --> 09:33.800
|
| 581 |
+
pero vamos a analizar
|
| 582 |
+
la concatenación de strings,
|
| 583 |
+
|
| 584 |
+
09:33.800 --> 09:37.761
|
| 585 |
+
es como encadenar, ok,
|
| 586 |
+
es agarrar una y le pego la otra
|
| 587 |
+
|
| 588 |
+
09:37.887 --> 09:39.304
|
| 589 |
+
y todo esto se va a guardar
|
| 590 |
+
|
| 591 |
+
09:39.430 --> 09:42.570
|
| 592 |
+
en la primera string
|
| 593 |
+
que le pasemos a nuestra función,
|
| 594 |
+
|
| 595 |
+
09:42.696 --> 09:45.651
|
| 596 |
+
vamos a ver cómo
|
| 597 |
+
sería esto en la práctica,
|
| 598 |
+
|
| 599 |
+
09:46.840 --> 09:49.021
|
| 600 |
+
básicamente lo que vamos
|
| 601 |
+
a hacer ahora es,
|
| 602 |
+
|
| 603 |
+
09:49.147 --> 09:53.320
|
| 604 |
+
en caso de que no ingresaste
|
| 605 |
+
dos cosas distintas,
|
| 606 |
+
|
| 607 |
+
09:53.320 --> 09:57.332
|
| 608 |
+
si las unimos el resultado es
|
| 609 |
+
|
| 610 |
+
10:00.465 --> 10:04.960
|
| 611 |
+
y aquí tenemos que hacer la concatenación
|
| 612 |
+
de nuestras strings,
|
| 613 |
+
|
| 614 |
+
10:04.960 --> 10:07.079
|
| 615 |
+
para esto vamos a utilizar la función
|
| 616 |
+
|
| 617 |
+
10:07.205 --> 10:12.760
|
| 618 |
+
strcat de string concatenation
|
| 619 |
+
y esta función strcat
|
| 620 |
+
|
| 621 |
+
10:12.760 --> 10:15.546
|
| 622 |
+
requiere dos argumentos
|
| 623 |
+
que son las dos strings
|
| 624 |
+
|
| 625 |
+
10:15.672 --> 10:19.880
|
| 626 |
+
que vamos a concatenar,
|
| 627 |
+
string1, string2
|
| 628 |
+
|
| 629 |
+
10:19.880 --> 10:22.920
|
| 630 |
+
y lo cool es que todo lo guarda
|
| 631 |
+
en la primera que le pases,
|
| 632 |
+
|
| 633 |
+
10:23.046 --> 10:24.930
|
| 634 |
+
así que si como le estamos pasando
|
| 635 |
+
|
| 636 |
+
10:25.056 --> 10:27.498
|
| 637 |
+
primero string1,
|
| 638 |
+
ya solamente vamos
|
| 639 |
+
|
| 640 |
+
10:27.623 --> 10:30.520
|
| 641 |
+
a tener que imprimir
|
| 642 |
+
string1 % string
|
| 643 |
+
|
| 644 |
+
10:30.520 --> 10:37.057
|
| 645 |
+
y vamos a pasarle la
|
| 646 |
+
variable string1, excelente,
|
| 647 |
+
|
| 648 |
+
10:37.730 --> 10:40.000
|
| 649 |
+
guardamos, esto debería estar haciendo
|
| 650 |
+
|
| 651 |
+
10:40.000 --> 10:46.906
|
| 652 |
+
la concatenación, es súper simple de hacer
|
| 653 |
+
y vamos a compilar nuestro código,
|
| 654 |
+
|
| 655 |
+
10:47.499 --> 10:50.038
|
| 656 |
+
y bien me dice escribe una frase,
|
| 657 |
+
|
| 658 |
+
10:50.164 --> 10:52.436
|
| 659 |
+
la frase que voy a poner va a ser
|
| 660 |
+
|
| 661 |
+
10:52.562 --> 10:58.229
|
| 662 |
+
al principio el lenguaje de programación,
|
| 663 |
+
|
| 664 |
+
11:02.219 --> 11:07.140
|
| 665 |
+
escribe otra frase, C es el mejor, punto,
|
| 666 |
+
|
| 667 |
+
11:07.868 --> 11:10.240
|
| 668 |
+
ingresaste dos cosas distintas,
|
| 669 |
+
|
| 670 |
+
11:10.240 --> 11:14.353
|
| 671 |
+
si las unimos el resultado es el lenguaje
|
| 672 |
+
de programación C,
|
| 673 |
+
|
| 674 |
+
11:14.479 --> 11:17.873
|
| 675 |
+
mira que aquí hace la unión, es el mejor
|
| 676 |
+
|
| 677 |
+
11:17.999 --> 11:21.103
|
| 678 |
+
bien ya aprendiste cómo
|
| 679 |
+
concatenar caracteres,
|
| 680 |
+
|
| 681 |
+
11:21.229 --> 11:23.138
|
| 682 |
+
recuerda que está haciéndolo
|
| 683 |
+
|
| 684 |
+
11:23.264 --> 11:25.928
|
| 685 |
+
de una forma en la que no le pusimos
|
| 686 |
+
|
| 687 |
+
11:26.054 --> 11:28.160
|
| 688 |
+
ningún espacio
|
| 689 |
+
a la segunda frase al inicio,
|
| 690 |
+
|
| 691 |
+
11:28.160 --> 11:30.478
|
| 692 |
+
así que lo ignora, todo lo hace perfecto,
|
| 693 |
+
|
| 694 |
+
11:30.603 --> 11:32.920
|
| 695 |
+
con esto dicho,
|
| 696 |
+
te reto, como ya te dije,
|
| 697 |
+
|
| 698 |
+
11:32.920 --> 11:36.192
|
| 699 |
+
que me dejes en los comentarios
|
| 700 |
+
qué otras funciones ves de strings
|
| 701 |
+
|
| 702 |
+
11:36.318 --> 11:39.170
|
| 703 |
+
y, ¿por qué no?
|
| 704 |
+
que practiques con tus propios códigos,
|
| 705 |
+
|
| 706 |
+
11:39.295 --> 11:41.760
|
| 707 |
+
tienes todo lo que necesitas
|
| 708 |
+
para ponerlas a pruebas,
|
| 709 |
+
|
| 710 |
+
11:41.886 --> 11:46.084
|
| 711 |
+
ya viste cómo yo combino ifs,
|
| 712 |
+
elses que vimos en cursos anteriores
|
| 713 |
+
|
| 714 |
+
11:46.210 --> 11:47.800
|
| 715 |
+
con cuestiones que estamos aprendiendo
|
| 716 |
+
|
| 717 |
+
11:47.800 --> 11:52.080
|
| 718 |
+
en este curso y así sucesivamente vamos
|
| 719 |
+
a seguir aprendiendo todo sobre C.
|
| 720 |
+
|
| 721 |
+
11:52.206 --> 11:57.406
|
| 722 |
+
Nos vemos en la próxima clase.
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-Resumen.html
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-strcmp_249b729e-6242-41e0-83ce-fcbc7d8c1537.c
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include <stdio.h>
|
| 2 |
+
#include <string.h>
|
| 3 |
+
|
| 4 |
+
char string1[60];
|
| 5 |
+
char string2[60];
|
| 6 |
+
|
| 7 |
+
int main()
|
| 8 |
+
{
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
printf("Escribe una frase\n");
|
| 12 |
+
gets(string1);
|
| 13 |
+
printf("Escribe otra frase para comparar\n");
|
| 14 |
+
gets(string2);
|
| 15 |
+
|
| 16 |
+
if (strcmp(string1, string2) == 0)
|
| 17 |
+
printf("Ingresaste dos strings identicos\n");
|
| 18 |
+
else
|
| 19 |
+
{
|
| 20 |
+
strcat(string1, string2);
|
| 21 |
+
printf("Ingresaste dos cosas distintas, si las unimos el resultado es> %s\n", string1);
|
| 22 |
+
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
return 0;
|
| 27 |
+
}
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/04-Manejo de tiempo en C con la biblioteca timeh.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:40d516a472ba8ea5119064d6478035ee3f342a812f34406a012f81c858f1f3c6
|
| 3 |
+
size 116796302
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/04-Manejo de tiempo en C con la biblioteca timeh.vtt
ADDED
|
@@ -0,0 +1,718 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
WEBVTT
|
| 2 |
+
|
| 3 |
+
00:03.273 --> 00:04.767
|
| 4 |
+
Hablemos de time.h.
|
| 5 |
+
|
| 6 |
+
00:04.893 --> 00:08.040
|
| 7 |
+
Lo primero que te quiero contar es un
|
| 8 |
+
dato curioso y es que no sé si conoces
|
| 9 |
+
|
| 10 |
+
00:08.040 --> 00:11.722
|
| 11 |
+
el Epoch Time de Unix.
|
| 12 |
+
Bueno, esto es una fecha
|
| 13 |
+
|
| 14 |
+
00:11.848 --> 00:14.726
|
| 15 |
+
que se decidió de forma
|
| 16 |
+
arbitraria pero que ha servido
|
| 17 |
+
|
| 18 |
+
00:14.852 --> 00:16.691
|
| 19 |
+
muchísimo para que todos
|
| 20 |
+
los programas puedan
|
| 21 |
+
|
| 22 |
+
00:16.817 --> 00:20.000
|
| 23 |
+
seguir un estándar de fecha y hora.
|
| 24 |
+
|
| 25 |
+
00:20.000 --> 00:23.358
|
| 26 |
+
Y es que el Epoch Time se toma
|
| 27 |
+
como que las horas
|
| 28 |
+
|
| 29 |
+
00:23.483 --> 00:29.737
|
| 30 |
+
o el tiempo que ha pasado en segundos
|
| 31 |
+
desde el 1/1/1970
|
| 32 |
+
|
| 33 |
+
00:29.863 --> 00:32.249
|
| 34 |
+
a las 0 horas con 0 minutos.
|
| 35 |
+
|
| 36 |
+
00:32.375 --> 00:35.440
|
| 37 |
+
Simplemente es un punto
|
| 38 |
+
en el tiempo que,
|
| 39 |
+
|
| 40 |
+
00:35.440 --> 00:37.425
|
| 41 |
+
como lo sabes, el tiempo es relativo.
|
| 42 |
+
Nosotros los humanos
|
| 43 |
+
|
| 44 |
+
00:37.551 --> 00:41.080
|
| 45 |
+
decidimos guardarlo
|
| 46 |
+
en horas, días, años,
|
| 47 |
+
|
| 48 |
+
00:41.080 --> 00:43.646
|
| 49 |
+
pero pues en computo se guarda en ciclos
|
| 50 |
+
|
| 51 |
+
00:43.772 --> 00:45.613
|
| 52 |
+
de procesamiento, por decirlo
|
| 53 |
+
de alguna forma,
|
| 54 |
+
|
| 55 |
+
00:45.739 --> 00:48.786
|
| 56 |
+
y tenemos nuestros propios reloj
|
| 57 |
+
en los CPUs.
|
| 58 |
+
|
| 59 |
+
00:48.912 --> 00:51.954
|
| 60 |
+
Estos reloj hacen que cada instrucción
|
| 61 |
+
tome un tiempo
|
| 62 |
+
|
| 63 |
+
00:52.080 --> 00:54.503
|
| 64 |
+
y con eso tú puedes calcular
|
| 65 |
+
tiempo específico
|
| 66 |
+
|
| 67 |
+
00:54.629 --> 00:57.646
|
| 68 |
+
en mundo de procesamiento
|
| 69 |
+
y en mundo de cómputo y programación.
|
| 70 |
+
|
| 71 |
+
00:57.772 --> 01:00.152
|
| 72 |
+
Ahora, para no meternos
|
| 73 |
+
y no hacernos bolas,
|
| 74 |
+
|
| 75 |
+
01:00.278 --> 01:03.176
|
| 76 |
+
solo quiero contarte eso.
|
| 77 |
+
El Epoch Time es la fecha
|
| 78 |
+
|
| 79 |
+
01:03.302 --> 01:08.051
|
| 80 |
+
que se definió para comenzar a tomar
|
| 81 |
+
el tiempo en programación.
|
| 82 |
+
|
| 83 |
+
01:08.177 --> 01:10.223
|
| 84 |
+
Vamos a nuestro VS Code,
|
| 85 |
+
|
| 86 |
+
01:10.349 --> 01:16.173
|
| 87 |
+
vamos a abrir un nuevo archivo, vamos
|
| 88 |
+
a guardarlo y vamos a ponerle time.c.
|
| 89 |
+
|
| 90 |
+
01:16.422 --> 01:23.416
|
| 91 |
+
No, vamos a guardar otra vez file,
|
| 92 |
+
save as, time.c.
|
| 93 |
+
|
| 94 |
+
01:24.436 --> 01:28.862
|
| 95 |
+
Ahora sí, todo está excelente.
|
| 96 |
+
Lo primero que voy a mostrarte es,
|
| 97 |
+
|
| 98 |
+
01:28.988 --> 01:31.383
|
| 99 |
+
bueno, lo primero en verdad
|
| 100 |
+
que voy a hacer
|
| 101 |
+
|
| 102 |
+
01:31.509 --> 01:33.687
|
| 103 |
+
es incluir STDIO como siempre,
|
| 104 |
+
|
| 105 |
+
01:33.813 --> 01:38.386
|
| 106 |
+
nuestra confiable
|
| 107 |
+
biblioteca para input-output.
|
| 108 |
+
|
| 109 |
+
01:38.512 --> 01:40.640
|
| 110 |
+
Luego también vamos
|
| 111 |
+
a incluir a la estrella
|
| 112 |
+
|
| 113 |
+
01:40.640 --> 01:44.233
|
| 114 |
+
de esta clase que es time.h.
|
| 115 |
+
Excelente.
|
| 116 |
+
|
| 117 |
+
01:44.359 --> 01:49.551
|
| 118 |
+
Vamos a declarar una variable
|
| 119 |
+
que va a ser de tipo time
|
| 120 |
+
|
| 121 |
+
01:49.711 --> 01:52.494
|
| 122 |
+
y esta variable se va a llamar seconds,
|
| 123 |
+
|
| 124 |
+
01:54.541 --> 01:58.840
|
| 125 |
+
seconds de segundos, punto y coma,
|
| 126 |
+
y luego, bueno,
|
| 127 |
+
|
| 128 |
+
01:58.840 --> 02:01.438
|
| 129 |
+
ya con esto hecho
|
| 130 |
+
vamos a hacer nuestro main.
|
| 131 |
+
|
| 132 |
+
02:01.563 --> 02:06.247
|
| 133 |
+
Int main. Esto se pone en un
|
| 134 |
+
color verde porque es un type def,
|
| 135 |
+
|
| 136 |
+
02:06.373 --> 02:09.251
|
| 137 |
+
es un type definition, ok.
|
| 138 |
+
Estamos definiendo
|
| 139 |
+
|
| 140 |
+
02:09.376 --> 02:12.208
|
| 141 |
+
un tipo específico de información
|
| 142 |
+
|
| 143 |
+
02:12.334 --> 02:16.472
|
| 144 |
+
y va a ser time-t, el tipo específico
|
| 145 |
+
que estamos trabajando.
|
| 146 |
+
|
| 147 |
+
02:16.598 --> 02:19.858
|
| 148 |
+
Esto nos da una
|
| 149 |
+
estructura de tipo long, long,
|
| 150 |
+
|
| 151 |
+
02:19.984 --> 02:24.252
|
| 152 |
+
y nos da los segundos, ok.
|
| 153 |
+
Eso es todo lo que estamos haciendo ahí.
|
| 154 |
+
|
| 155 |
+
02:24.378 --> 02:28.010
|
| 156 |
+
Segundos es el nombre que yo le puse,
|
| 157 |
+
como a cualquier variable.
|
| 158 |
+
|
| 159 |
+
02:28.135 --> 02:32.827
|
| 160 |
+
Vamos a tener nuestro main, excelente.
|
| 161 |
+
Abrimos y cerramos nuestras llaves.
|
| 162 |
+
|
| 163 |
+
02:32.953 --> 02:34.286
|
| 164 |
+
Antes de que se nos olvide,
|
| 165 |
+
|
| 166 |
+
02:34.412 --> 02:37.844
|
| 167 |
+
escribimos nuestro return,
|
| 168 |
+
cero, punto y coma,
|
| 169 |
+
|
| 170 |
+
02:37.970 --> 02:41.015
|
| 171 |
+
y estamos listos para
|
| 172 |
+
meterle todo el código.
|
| 173 |
+
|
| 174 |
+
02:41.402 --> 02:45.646
|
| 175 |
+
Lo primero que voy a hacer
|
| 176 |
+
es guardar el current time en epoch.
|
| 177 |
+
|
| 178 |
+
02:45.772 --> 02:48.973
|
| 179 |
+
Esto lo vamos a poner seconds,
|
| 180 |
+
|
| 181 |
+
02:49.780 --> 02:51.020
|
| 182 |
+
seconds,
|
| 183 |
+
|
| 184 |
+
02:52.980 --> 02:57.154
|
| 185 |
+
igual a time, que ya es una función
|
| 186 |
+
|
| 187 |
+
02:57.280 --> 03:03.337
|
| 188 |
+
de nuestra biblioteca time.h,
|
| 189 |
+
y le vamos a pasar el argumento null.
|
| 190 |
+
|
| 191 |
+
03:03.650 --> 03:05.773
|
| 192 |
+
Muy bien, punto y coma.
|
| 193 |
+
|
| 194 |
+
03:05.899 --> 03:10.981
|
| 195 |
+
Luego de esto vamos a hacer
|
| 196 |
+
un print y le voy a decir que
|
| 197 |
+
|
| 198 |
+
03:12.702 --> 03:14.135
|
| 199 |
+
el número
|
| 200 |
+
|
| 201 |
+
03:16.988 --> 03:18.340
|
| 202 |
+
de horas
|
| 203 |
+
|
| 204 |
+
03:19.752 --> 03:21.899
|
| 205 |
+
desde epoch,
|
| 206 |
+
|
| 207 |
+
03:22.936 --> 03:28.054
|
| 208 |
+
que es 1/1/1970
|
| 209 |
+
|
| 210 |
+
03:28.180 --> 03:32.086
|
| 211 |
+
a las 00, es,
|
| 212 |
+
|
| 213 |
+
03:34.816 --> 03:36.621
|
| 214 |
+
muy bien, ya lo tenemos acá.
|
| 215 |
+
|
| 216 |
+
03:36.747 --> 03:39.526
|
| 217 |
+
Ahora voy a dejar,
|
| 218 |
+
voy a poner las variables
|
| 219 |
+
|
| 220 |
+
03:39.652 --> 03:43.314
|
| 221 |
+
que voy a pasarle a esto,
|
| 222 |
+
que va a ser %d.
|
| 223 |
+
|
| 224 |
+
03:45.327 --> 03:49.488
|
| 225 |
+
Excelente. Y luego vamos a, de hecho,
|
| 226 |
+
|
| 227 |
+
03:49.614 --> 03:52.298
|
| 228 |
+
no es %d, es %ld, porque es un long
|
| 229 |
+
|
| 230 |
+
03:52.423 --> 03:56.491
|
| 231 |
+
y está en enteros.
|
| 232 |
+
Le voy a pasar luego
|
| 233 |
+
|
| 234 |
+
03:56.617 --> 04:00.867
|
| 235 |
+
diagonal n para un salto
|
| 236 |
+
de línea y vamos a agarrar
|
| 237 |
+
|
| 238 |
+
04:00.993 --> 04:02.710
|
| 239 |
+
nuestra variable de seconds
|
| 240 |
+
|
| 241 |
+
04:03.660 --> 04:05.796
|
| 242 |
+
y los vamos a dividir entre
|
| 243 |
+
|
| 244 |
+
04:08.235 --> 04:10.569
|
| 245 |
+
3600
|
| 246 |
+
|
| 247 |
+
04:10.695 --> 04:16.410
|
| 248 |
+
para pasarlo a horas.
|
| 249 |
+
Muy bien, punto y coma.
|
| 250 |
+
|
| 251 |
+
04:16.536 --> 04:20.594
|
| 252 |
+
Guardamos, compilamos
|
| 253 |
+
y veamos qué ocurre con nuestro programa.
|
| 254 |
+
|
| 255 |
+
04:23.614 --> 04:24.747
|
| 256 |
+
Y aquí está.
|
| 257 |
+
|
| 258 |
+
04:25.366 --> 04:28.921
|
| 259 |
+
Nos dice, oye,
|
| 260 |
+
el número de horas desde epoch,
|
| 261 |
+
|
| 262 |
+
04:29.047 --> 04:35.997
|
| 263 |
+
que es 1/1/1970 a las 00,
|
| 264 |
+
han sido 442,162.
|
| 265 |
+
|
| 266 |
+
04:36.921 --> 04:43.681
|
| 267 |
+
Ya por último, para compilar
|
| 268 |
+
que en efecto son 442,169 horas sin epoch,
|
| 269 |
+
|
| 270 |
+
04:43.807 --> 04:47.074
|
| 271 |
+
veamos en una página que se
|
| 272 |
+
llama timeanddate.com
|
| 273 |
+
|
| 274 |
+
04:47.200 --> 04:49.118
|
| 275 |
+
y sí, en efecto, desde esa fecha
|
| 276 |
+
|
| 277 |
+
04:49.244 --> 04:55.528
|
| 278 |
+
han pasado 18,423 días,
|
| 279 |
+
442,160 horas
|
| 280 |
+
|
| 281 |
+
04:55.654 --> 04:58.400
|
| 282 |
+
y estos minutos
|
| 283 |
+
y estos segundos que no pienso leer
|
| 284 |
+
|
| 285 |
+
04:58.400 --> 05:01.488
|
| 286 |
+
porque están demasiado largos.
|
| 287 |
+
Entonces ya vimos
|
| 288 |
+
|
| 289 |
+
05:01.614 --> 05:04.820
|
| 290 |
+
que nuestro epoch funciona,
|
| 291 |
+
todo está bien en nuestro sistema.
|
| 292 |
+
|
| 293 |
+
05:04.946 --> 05:07.078
|
| 294 |
+
Ahora vamos a hacer otro ejemplo con time.
|
| 295 |
+
|
| 296 |
+
05:07.203 --> 05:10.905
|
| 297 |
+
Vamos a crear un nuevo archivo,
|
| 298 |
+
nuevo archivo
|
| 299 |
+
|
| 300 |
+
05:11.031 --> 05:13.481
|
| 301 |
+
y quiero mostrarte
|
| 302 |
+
cómo obtener la fecha
|
| 303 |
+
|
| 304 |
+
05:13.607 --> 05:17.923
|
| 305 |
+
y la hora de tu computadora.
|
| 306 |
+
Bueno, como siempre,
|
| 307 |
+
|
| 308 |
+
05:18.049 --> 05:21.469
|
| 309 |
+
vamos a reutilizar
|
| 310 |
+
el código anterior, control C,
|
| 311 |
+
|
| 312 |
+
05:21.595 --> 05:24.041
|
| 313 |
+
control C, vamos a nuestra nueva pestaña,
|
| 314 |
+
|
| 315 |
+
05:24.167 --> 05:28.403
|
| 316 |
+
control V, vamos a guardar esto
|
| 317 |
+
como time div.
|
| 318 |
+
|
| 319 |
+
05:28.529 --> 05:30.720
|
| 320 |
+
Quiero mostrarte un ejemplo
|
| 321 |
+
de cómo puedes tomar
|
| 322 |
+
|
| 323 |
+
05:30.720 --> 05:33.998
|
| 324 |
+
la diferencia de tiempo
|
| 325 |
+
entre un punto y otro.
|
| 326 |
+
|
| 327 |
+
05:34.123 --> 05:37.400
|
| 328 |
+
Y bueno, aquí vamos
|
| 329 |
+
a guardar dos variables
|
| 330 |
+
|
| 331 |
+
05:37.400 --> 05:41.171
|
| 332 |
+
que van a ser de tipo tiempo,
|
| 333 |
+
begin y end.
|
| 334 |
+
|
| 335 |
+
05:41.625 --> 05:45.198
|
| 336 |
+
Este caso de uso lo podrías tomar,
|
| 337 |
+
por ejemplo, cuando estás haciendo
|
| 338 |
+
|
| 339 |
+
05:45.324 --> 05:48.859
|
| 340 |
+
un análisis de quieres saber cuánto
|
| 341 |
+
se demoró tu código en ejecutarse,
|
| 342 |
+
|
| 343 |
+
05:48.985 --> 05:51.082
|
| 344 |
+
cuánto se tardó tu programa
|
| 345 |
+
en hacer una tarea
|
| 346 |
+
|
| 347 |
+
05:51.208 --> 05:53.515
|
| 348 |
+
y justo te voy a mostrar
|
| 349 |
+
cómo puedes hacer eso.
|
| 350 |
+
|
| 351 |
+
05:53.781 --> 05:56.341
|
| 352 |
+
Así que vamos a agarrar nuestro,
|
| 353 |
+
|
| 354 |
+
05:56.467 --> 05:58.631
|
| 355 |
+
vamos a crear una auxiliar i,
|
| 356 |
+
|
| 357 |
+
05:58.757 --> 06:01.520
|
| 358 |
+
este auxiliar va a ser de tipo long
|
| 359 |
+
porque aquí
|
| 360 |
+
|
| 361 |
+
06:01.520 --> 06:04.251
|
| 362 |
+
sí que estamos trabajando
|
| 363 |
+
con cantidades grandes de números,
|
| 364 |
+
|
| 365 |
+
06:04.376 --> 06:06.827
|
| 366 |
+
de ciclos, de cifras, etc.
|
| 367 |
+
|
| 368 |
+
06:06.953 --> 06:09.503
|
| 369 |
+
Vamos a,ya declaré mi auxiliar
|
| 370 |
+
long,
|
| 371 |
+
|
| 372 |
+
06:09.629 --> 06:13.896
|
| 373 |
+
excelente y ahora vamos
|
| 374 |
+
a agarrar el tiempo actual.
|
| 375 |
+
|
| 376 |
+
06:14.022 --> 06:17.411
|
| 377 |
+
Recuerda que si tú usas esto,
|
| 378 |
+
no lo dije en la clase anterior,
|
| 379 |
+
|
| 380 |
+
06:17.537 --> 06:20.528
|
| 381 |
+
pero aprovecho a decirte ahorita,
|
| 382 |
+
si tú pones time y agarras null,
|
| 383 |
+
|
| 384 |
+
06:20.654 --> 06:22.689
|
| 385 |
+
te da el tiempo a la fecha,
|
| 386 |
+
|
| 387 |
+
06:22.814 --> 06:26.000
|
| 388 |
+
el tiempo actual
|
| 389 |
+
en tu sistema que tenemos,
|
| 390 |
+
|
| 391 |
+
06:26.000 --> 06:28.541
|
| 392 |
+
obviamente en epoch.
|
| 393 |
+
Vamos a poner begin,
|
| 394 |
+
|
| 395 |
+
06:28.667 --> 06:30.720
|
| 396 |
+
es igual a time
|
| 397 |
+
y esto es lo que nos va a servir
|
| 398 |
+
|
| 399 |
+
06:30.720 --> 06:35.407
|
| 400 |
+
es para almacenar en qué momento
|
| 401 |
+
empezó nuestro programa a ejecutarse.
|
| 402 |
+
|
| 403 |
+
06:35.674 --> 06:37.151
|
| 404 |
+
Ahora voy a escribir un ciclo for
|
| 405 |
+
|
| 406 |
+
06:37.277 --> 06:39.724
|
| 407 |
+
para que sea nuestro consumidor,
|
| 408 |
+
|
| 409 |
+
06:39.850 --> 06:42.054
|
| 410 |
+
por decirlo así, de recursos.
|
| 411 |
+
|
| 412 |
+
06:42.306 --> 06:46.124
|
| 413 |
+
Es en donde se va a ir todo el tiempo
|
| 414 |
+
de ejecución de este programa
|
| 415 |
+
|
| 416 |
+
06:46.250 --> 06:52.405
|
| 417 |
+
i igual a cero, sí,
|
| 418 |
+
i menor a count, i menor que count
|
| 419 |
+
|
| 420 |
+
06:52.531 --> 06:54.537
|
| 421 |
+
y le voy a poner una cantidad grande
|
| 422 |
+
|
| 423 |
+
06:54.663 --> 06:57.645
|
| 424 |
+
para que se demore la ejecución,
|
| 425 |
+
de verdad grande,
|
| 426 |
+
|
| 427 |
+
06:57.771 --> 07:01.253
|
| 428 |
+
vamos a ponerle unos 15,
|
| 429 |
+
muchos ceros,
|
| 430 |
+
|
| 431 |
+
07:01.419 --> 07:05.925
|
| 432 |
+
ahí está y vamos a ponerle nuestro
|
| 433 |
+
incrementador de uno en uno.
|
| 434 |
+
|
| 435 |
+
07:05.951 --> 07:06.958
|
| 436 |
+
Excelente.
|
| 437 |
+
|
| 438 |
+
07:06.984 --> 07:11.040
|
| 439 |
+
El código que voy a hacer,
|
| 440 |
+
pues nada, en realidad solo quiero
|
| 441 |
+
|
| 442 |
+
07:11.040 --> 07:13.298
|
| 443 |
+
que este ciclo for nos robe tiempo,
|
| 444 |
+
|
| 445 |
+
07:13.423 --> 07:16.622
|
| 446 |
+
así que ni siquiera voy a molestarme
|
| 447 |
+
en imprimir absolutamente nada
|
| 448 |
+
|
| 449 |
+
07:16.748 --> 07:18.615
|
| 450 |
+
y ya cuando termine el ciclo for,
|
| 451 |
+
|
| 452 |
+
07:18.741 --> 07:21.160
|
| 453 |
+
que de hecho como se va
|
| 454 |
+
a ejecutar y no hay más código,
|
| 455 |
+
|
| 456 |
+
07:21.160 --> 07:25.098
|
| 457 |
+
le ponemos un punto y coma
|
| 458 |
+
y cuando termine el ciclo for
|
| 459 |
+
|
| 460 |
+
07:25.224 --> 07:28.876
|
| 461 |
+
vamos a utilizar nuestro end para sacar
|
| 462 |
+
|
| 463 |
+
07:29.002 --> 07:31.495
|
| 464 |
+
otro snapshot del tiempo ahora.
|
| 465 |
+
|
| 466 |
+
07:31.621 --> 07:33.820
|
| 467 |
+
Time, null,
|
| 468 |
+
|
| 469 |
+
07:35.020 --> 07:36.060
|
| 470 |
+
muy bien,
|
| 471 |
+
|
| 472 |
+
07:36.399 --> 07:37.997
|
| 473 |
+
vamos a ponerle punto y coma
|
| 474 |
+
|
| 475 |
+
07:38.123 --> 07:42.312
|
| 476 |
+
vamos a imprimir el resultado.
|
| 477 |
+
Ya tengo aquí un print,
|
| 478 |
+
|
| 479 |
+
07:42.438 --> 07:46.246
|
| 480 |
+
lo voy a reutilizar,
|
| 481 |
+
el número de horas desde epoch, no
|
| 482 |
+
|
| 483 |
+
07:46.752 --> 07:47.812
|
| 484 |
+
el tiempo
|
| 485 |
+
|
| 486 |
+
07:49.889 --> 07:54.210
|
| 487 |
+
el tiempo que duró nuestro for es
|
| 488 |
+
|
| 489 |
+
07:55.148 --> 07:59.107
|
| 490 |
+
y bueno vamos a utilizar igual el %,
|
| 491 |
+
|
| 492 |
+
07:59.233 --> 08:01.628
|
| 493 |
+
uy no, bueno aquí va a ser %F
|
| 494 |
+
|
| 495 |
+
08:01.754 --> 08:04.641
|
| 496 |
+
porque estoy tomando
|
| 497 |
+
mis segundos directamente,
|
| 498 |
+
|
| 499 |
+
08:04.767 --> 08:09.420
|
| 500 |
+
vamos a ponerlo así,
|
| 501 |
+
to complete, ok y la variable
|
| 502 |
+
|
| 503 |
+
08:09.546 --> 08:12.239
|
| 504 |
+
que le voy a pasar
|
| 505 |
+
es el diferencial del tiempo,
|
| 506 |
+
|
| 507 |
+
08:12.365 --> 08:15.638
|
| 508 |
+
así que aquí voy a ejecutar mi función,
|
| 509 |
+
div time,
|
| 510 |
+
|
| 511 |
+
08:16.917 --> 08:19.628
|
| 512 |
+
vamos a ponerle end,
|
| 513 |
+
que es el primer parámetro,
|
| 514 |
+
|
| 515 |
+
08:19.754 --> 08:23.529
|
| 516 |
+
luego begin, es decir,
|
| 517 |
+
al tiempo final le vamos a restar
|
| 518 |
+
|
| 519 |
+
08:23.655 --> 08:28.234
|
| 520 |
+
el tiempo inicial para obtener en segundos
|
| 521 |
+
cuántos segundos
|
| 522 |
+
|
| 523 |
+
08:28.360 --> 08:32.546
|
| 524 |
+
se demoró la ejecución de mi código,
|
| 525 |
+
perfecto.
|
| 526 |
+
|
| 527 |
+
08:33.032 --> 08:35.326
|
| 528 |
+
Vamos a dejar aquí un espacio,
|
| 529 |
+
excelente,
|
| 530 |
+
|
| 531 |
+
08:35.452 --> 08:40.037
|
| 532 |
+
guardamos y ejecutamos
|
| 533 |
+
el programa a ver qué salida nos da.
|
| 534 |
+
|
| 535 |
+
08:42.534 --> 08:46.904
|
| 536 |
+
Se está ejecutando, si te das cuenta
|
| 537 |
+
no ha terminado y sigue ejecutándose,
|
| 538 |
+
|
| 539 |
+
08:47.364 --> 08:49.649
|
| 540 |
+
oh my god, puede
|
| 541 |
+
que me haya pasado de ceros,
|
| 542 |
+
|
| 543 |
+
08:53.027 --> 08:55.574
|
| 544 |
+
vamos a esperar a que termine de hacer
|
| 545 |
+
la ejecución.
|
| 546 |
+
|
| 547 |
+
08:56.973 --> 08:59.949
|
| 548 |
+
Ahora en mi caso
|
| 549 |
+
se demoró un par de minutos
|
| 550 |
+
|
| 551 |
+
09:00.075 --> 09:02.677
|
| 552 |
+
y no ha terminado,
|
| 553 |
+
así que tenemos que seguir grabando,
|
| 554 |
+
|
| 555 |
+
09:02.870 --> 09:04.881
|
| 556 |
+
quiero mostrarte
|
| 557 |
+
el administrador de tareas
|
| 558 |
+
|
| 559 |
+
09:05.007 --> 09:07.458
|
| 560 |
+
y si aquí buscamos nuestro
|
| 561 |
+
programa que estamos ejecutando
|
| 562 |
+
|
| 563 |
+
09:07.584 --> 09:11.679
|
| 564 |
+
que es time diff, está consumiendo
|
| 565 |
+
todo un núcleo de mi cpu,
|
| 566 |
+
|
| 567 |
+
09:12.005 --> 09:14.648
|
| 568 |
+
zoom meetings que es otro
|
| 569 |
+
programa bastante pesado,
|
| 570 |
+
|
| 571 |
+
09:14.774 --> 09:17.602
|
| 572 |
+
hace video llamadas en internet,
|
| 573 |
+
|
| 574 |
+
09:17.852 --> 09:19.930
|
| 575 |
+
está consumiendo sólo el 20%,
|
| 576 |
+
|
| 577 |
+
09:20.056 --> 09:23.757
|
| 578 |
+
o sea time diff está consumiendo lo
|
| 579 |
+
mismo que zoom que está procesando video,
|
| 580 |
+
|
| 581 |
+
09:23.984 --> 09:26.743
|
| 582 |
+
nada más para que te des cuenta
|
| 583 |
+
que básicamente lo que hicimos
|
| 584 |
+
|
| 585 |
+
09:26.869 --> 09:30.789
|
| 586 |
+
fue poner un hilo de mi cpu
|
| 587 |
+
que es de varios núcleos,
|
| 588 |
+
|
| 589 |
+
09:31.029 --> 09:33.318
|
| 590 |
+
un núcleo está única y exclusivamente
|
| 591 |
+
|
| 592 |
+
09:33.443 --> 09:35.812
|
| 593 |
+
trabajando en este programa de C
|
| 594 |
+
|
| 595 |
+
09:36.032 --> 09:40.558
|
| 596 |
+
que no tiene mucho sentido,
|
| 597 |
+
así que bueno quería mostrarte eso,
|
| 598 |
+
|
| 599 |
+
09:40.684 --> 09:42.719
|
| 600 |
+
es curioso, no le pongas
|
| 601 |
+
un número tan grande,
|
| 602 |
+
|
| 603 |
+
09:43.019 --> 09:47.131
|
| 604 |
+
aquí dice mi cpu pues es
|
| 605 |
+
un cpu de bajo consumo energético
|
| 606 |
+
|
| 607 |
+
09:47.257 --> 09:50.120
|
| 608 |
+
pero aún así tiene su buen poder
|
| 609 |
+
|
| 610 |
+
09:50.120 --> 09:54.627
|
| 611 |
+
y bueno vamos a terminar
|
| 612 |
+
la ejecución de este programa,
|
| 613 |
+
|
| 614 |
+
09:54.753 --> 09:57.240
|
| 615 |
+
voy a simplemente darle en borrar
|
| 616 |
+
|
| 617 |
+
09:57.240 --> 10:00.556
|
| 618 |
+
y vamos a reducir esto
|
| 619 |
+
porque 15 billones no fue buena idea,
|
| 620 |
+
|
| 621 |
+
10:00.682 --> 10:02.364
|
| 622 |
+
le voy a quitar tres ceros,
|
| 623 |
+
|
| 624 |
+
10:02.490 --> 10:05.720
|
| 625 |
+
vamos a ponerle guardar
|
| 626 |
+
y vamos a volver a ejecutarlo
|
| 627 |
+
|
| 628 |
+
10:05.932 --> 10:09.091
|
| 629 |
+
para ver cuánto se demora,
|
| 630 |
+
de hecho le voy a quitar un cero más
|
| 631 |
+
|
| 632 |
+
10:09.957 --> 10:13.816
|
| 633 |
+
y vamos a guardar,
|
| 634 |
+
ejecutar y veamos qué pasa,
|
| 635 |
+
|
| 636 |
+
10:15.896 --> 10:18.823
|
| 637 |
+
el tiempo que duró nuestro for es 0.00,
|
| 638 |
+
|
| 639 |
+
10:19.010 --> 10:22.881
|
| 640 |
+
ahora fue demasiado rápido,
|
| 641 |
+
vamos a ponerle un cero,
|
| 642 |
+
|
| 643 |
+
10:23.007 --> 10:24.486
|
| 644 |
+
vamos a esperar a que demore más,
|
| 645 |
+
|
| 646 |
+
10:26.699 --> 10:29.847
|
| 647 |
+
vamos a compilar,
|
| 648 |
+
ejecutar y sigue siendo 0,
|
| 649 |
+
|
| 650 |
+
10:29.973 --> 10:32.497
|
| 651 |
+
qué está pasando,
|
| 652 |
+
vamos a ponerle uno más,
|
| 653 |
+
|
| 654 |
+
10:38.356 --> 10:44.674
|
| 655 |
+
ahí está, ya se demoró un segundo,
|
| 656 |
+
entonces por fin aparece y como te decía,
|
| 657 |
+
|
| 658 |
+
10:44.800 --> 10:47.798
|
| 659 |
+
este fue el sweet spot que encontramos,
|
| 660 |
+
|
| 661 |
+
10:47.923 --> 10:52.985
|
| 662 |
+
a ver cuántos ceros le puse,
|
| 663 |
+
1, 2, 3, 4, 5, 6, 150 millones,
|
| 664 |
+
|
| 665 |
+
10:53.111 --> 10:56.251
|
| 666 |
+
a ver pongámosle unos 60 millones,
|
| 667 |
+
|
| 668 |
+
10:56.377 --> 10:59.731
|
| 669 |
+
a ver cómo cambia la 600 millones,
|
| 670 |
+
|
| 671 |
+
11:00.324 --> 11:02.172
|
| 672 |
+
veamos cómo cambia
|
| 673 |
+
el tiempo de ejecución,
|
| 674 |
+
|
| 675 |
+
11:02.298 --> 11:05.320
|
| 676 |
+
deberían ser unos 4 segundos de pronto,
|
| 677 |
+
|
| 678 |
+
11:07.247 --> 11:09.498
|
| 679 |
+
mira fueron 2 segundos, excelente,
|
| 680 |
+
|
| 681 |
+
11:09.624 --> 11:11.834
|
| 682 |
+
ya te diste cuenta
|
| 683 |
+
cómo está funcionando esto,
|
| 684 |
+
|
| 685 |
+
11:12.061 --> 11:15.342
|
| 686 |
+
siempre que quieras saber cuánto
|
| 687 |
+
se demoró alguna parte de la ejecución,
|
| 688 |
+
|
| 689 |
+
11:15.669 --> 11:17.712
|
| 690 |
+
puedes utilizar esta funcionalidad,
|
| 691 |
+
|
| 692 |
+
11:17.838 --> 11:21.289
|
| 693 |
+
ahí te dejo esta última
|
| 694 |
+
utilidad de time.h,
|
| 695 |
+
|
| 696 |
+
11:21.529 --> 11:24.896
|
| 697 |
+
el mismo reto que en la clase anterior,
|
| 698 |
+
cuéntame qué otras funciones
|
| 699 |
+
|
| 700 |
+
11:25.021 --> 11:27.128
|
| 701 |
+
te parecen interesantes de time.h,
|
| 702 |
+
|
| 703 |
+
11:27.254 --> 11:30.205
|
| 704 |
+
aquí en la sección de comentarios
|
| 705 |
+
y te reto a que hagas un programa
|
| 706 |
+
|
| 707 |
+
11:30.331 --> 11:32.379
|
| 708 |
+
que te diga la fecha, la hora y el día
|
| 709 |
+
|
| 710 |
+
11:32.626 --> 11:35.699
|
| 711 |
+
y me dejes el screenshot
|
| 712 |
+
justamente aquí al lado,
|
| 713 |
+
|
| 714 |
+
11:35.960 --> 11:37.500
|
| 715 |
+
con esto dicho nos vemos
|
| 716 |
+
|
| 717 |
+
11:37.626 --> 11:44.626
|
| 718 |
+
en la próxima clase de este curso.
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/04-time_b57bea89-545a-4dd2-aa58-9ee4ebf6dbb8.c
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include <stdio.h>
|
| 2 |
+
#include <time.h>
|
| 3 |
+
|
| 4 |
+
time_t seconds;
|
| 5 |
+
|
| 6 |
+
int main()
|
| 7 |
+
{
|
| 8 |
+
|
| 9 |
+
seconds = time( NULL);
|
| 10 |
+
printf("El numero de horas desde EPOCH 1ro de Enero de 1970 a las 00:00 es:%ld \n", seconds/3600);
|
| 11 |
+
return 0;
|
| 12 |
+
}
|
subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/04-timediff_73766468-af49-4500-94ef-07de638bb8c2.c
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#include <stdio.h>
|
| 2 |
+
#include <time.h>
|
| 3 |
+
|
| 4 |
+
time_t begin, end;
|
| 5 |
+
|
| 6 |
+
int main()
|
| 7 |
+
{
|
| 8 |
+
long i;
|
| 9 |
+
begin = time(NULL);
|
| 10 |
+
for (i = 0; i < 600000000; i++);
|
| 11 |
+
end = time(NULL);
|
| 12 |
+
printf("El tiempo que duro nuestro for es: %f \n", difftime(end, begin));
|
| 13 |
+
return 0;
|
| 14 |
+
}
|