2999a commited on
Commit
27f70f5
·
verified ·
1 Parent(s): a41ad04

Upload via hfc (batch)

Browse files

Uploaded using hfc tool

This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +11 -0
  2. subir/Curso de Control de Flujo en C/04-Uso de las instrucciones break y continue/03-Resumen.html +0 -0
  3. subir/Curso de Control de Flujo en C/05-Cierre/01-Ejercicios Prácticos de Programación para Reforzar Conocimientos.mhtml +0 -0
  4. subir/Curso de Control de Flujo en C/05-Cierre/02-Estructuras de Control de Flujo en C.mp4 +3 -0
  5. subir/Curso de Control de Flujo en C/05-Cierre/02-Estructuras de Control de Flujo en C.vtt +248 -0
  6. subir/Curso de Control de Flujo en C/05-Cierre/02-Lecturas recomendadas.txt +4 -0
  7. subir/Curso de Control de Flujo en C/05-Cierre/02-Resumen.html +0 -0
  8. 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
  9. 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
  10. subir/Curso de Funciones en C/01-Introducción a las funciones en C/01-Lecturas recomendadas.txt +2 -0
  11. subir/Curso de Funciones en C/01-Introducción a las funciones en C/01-Resumen.html +0 -0
  12. 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
  13. 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
  14. subir/Curso de Funciones en C/01-Introducción a las funciones en C/02-Resumen.html +0 -0
  15. subir/Curso de Funciones en C/01-Introducción a las funciones en C/02-function_0343da15-da02-412b-8715-bf15e00c974b.c +11 -0
  16. 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
  17. 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
  18. subir/Curso de Funciones en C/01-Introducción a las funciones en C/03-Lecturas recomendadas.txt +1 -0
  19. subir/Curso de Funciones en C/01-Introducción a las funciones en C/03-powerofintegers_a2741312-e4b5-409e-b3ec-6a2e15a430b8.c +26 -0
  20. subir/Curso de Funciones en C/01-Introducción a las funciones en C/04-Resumen.html +0 -0
  21. 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
  22. 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
  23. 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
  24. 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
  25. subir/Curso de Funciones en C/02-Manejo de funciones en C/01-Resumen.html +0 -0
  26. subir/Curso de Funciones en C/02-Manejo de funciones en C/01-add_c0320bcc-2842-4e74-a4a7-11798f414800.c +16 -0
  27. subir/Curso de Funciones en C/02-Manejo de funciones en C/02-Lecturas recomendadas.txt +1 -0
  28. 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
  29. 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
  30. subir/Curso de Funciones en C/02-Manejo de funciones en C/02-Resumen.html +0 -0
  31. subir/Curso de Funciones en C/02-Manejo de funciones en C/02-powerofintegers2_f852e42a-a15b-4834-a79d-f2ca262c7f5b.c +26 -0
  32. 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
  33. 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
  34. subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-Lecturas recomendadas.txt +2 -0
  35. subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-Resumen.html +0 -0
  36. subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/01-libraries_52ae0350-75bf-4e6b-a5d7-1b57fd7d6a03.c +11 -0
  37. 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
  38. 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
  39. subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-Lecturas recomendadas.txt +1 -0
  40. subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-Resumen.html +0 -0
  41. subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/02-mathdemo_4d517300-d5e9-4437-82ad-b7fdbe0bc464.c +16 -0
  42. subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-Lecturas recomendadas.txt +1 -0
  43. 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
  44. 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
  45. subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-Resumen.html +0 -0
  46. subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/03-strcmp_249b729e-6242-41e0-83ce-fcbc7d8c1537.c +27 -0
  47. 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
  48. 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
  49. subir/Curso de Funciones en C/03-Bibliotecas estándar de funciones/04-time_b57bea89-545a-4dd2-aa58-9ee4ebf6dbb8.c +12 -0
  50. 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
+ }