1
00:00:04,920 --> 00:00:09,140
Bueno y tocó el turno de hablar de rutinas y funciones.

2
00:00:09,140 --> 00:00:18,020
Para eso lo que he hecho es abrir el Visual Studio donde generalmente se programa ensillar en Visual

3
00:00:18,050 --> 00:00:27,320
Basic punto net para mostrarles el código y para mostrarles la teoría de cómo esto funciona.

4
00:00:27,500 --> 00:00:32,890
Ya no vamos a trabajar más con block clip vamos a ir viendo ejemplos ya reales.

5
00:00:33,010 --> 00:00:39,360
He hecho un pequeño programita una pequeña ventana para probar rutinas y probar funciones.

6
00:00:39,470 --> 00:00:42,270
Vamos a ver cuál es el primero la diferencia.

7
00:00:42,890 --> 00:00:50,870
Ambos son un conjunto de instrucciones separados por un párrafo por un nombre al cual le vamos a asignar

8
00:00:50,870 --> 00:00:56,130
nosotros de acuerdo a lo que haga esa rutina o lo que haga esa función.

9
00:00:56,240 --> 00:01:03,650
Pero la gran diferencia entre ambos es que las funciones devuelven valores a donde son llamados y las

10
00:01:03,650 --> 00:01:09,650
rutinas no ejecutan lo que nosotros coloquemos dentro pero no devuelven ningún valor.

11
00:01:09,650 --> 00:01:18,560
Vamos a ver un ejemplo aquí nosotros tenemos una función voy a explicarles esto no se preocupen y aquí

12
00:01:18,560 --> 00:01:20,770
lo que tenemos es una rutina.

13
00:01:20,950 --> 00:01:23,480
Fíjense cuál es la diferencia.

14
00:01:23,480 --> 00:01:25,910
Nosotros tenemos primero.

15
00:01:25,910 --> 00:01:32,810
Esto es propio de los lenguajes de algunos lenguajes donde declaramos que lo que estamos declarando

16
00:01:32,810 --> 00:01:37,970
es privado no va a ser visible desde otro punto del desarrollo.

17
00:01:37,970 --> 00:01:46,070
Luego indicamos que el nombre es si es una subrutina que es otra de las maneras en las que se le mencionan

18
00:01:46,310 --> 00:01:47,610
a las rutinas.

19
00:01:47,630 --> 00:01:53,430
Los sinónimos son subrutina método todo tiene que ver con rutina.

20
00:01:53,450 --> 00:02:00,530
Cuando ustedes escuchen la palabra método vamos a estar hablando de una rutina cuando ustedes vean el

21
00:02:00,710 --> 00:02:07,670
prefijo sub significa subrutina y a mi rutina la he llamado rutina aquí podría ponerle.

22
00:02:07,820 --> 00:02:15,590
Mi rutina es lo mismo es un nombre nombre declarativo que lo van a colocar ustedes y dentro van a ir

23
00:02:15,590 --> 00:02:17,780
una serie de instrucciones.

24
00:02:17,900 --> 00:02:24,910
En este caso la única instrucción que he colocado yo es para mostrar por pantalla un mensaje mesas Box

25
00:02:25,100 --> 00:02:32,570
sirve para mostrar por pantalla en modo de una ventana un mensaje es lo único que va a ser mi rutina.

26
00:02:32,720 --> 00:02:37,190
Luego aquí tenemos la declaración del botón del botón que tengo aquí.

27
00:02:37,190 --> 00:02:45,110
Este es un botón esto que vemos aquí es un botón y la declaración que hace para el evento clic o sea

28
00:02:45,110 --> 00:02:53,300
cuando el usuario haga clic en ese botón con el mouse va a ejecutar que un llamado a rutina ese botón

29
00:02:53,300 --> 00:02:55,570
es el botón que me va a llamar a la rutina.

30
00:02:55,580 --> 00:03:03,920
Muy bien hay un segundo botón llamado botón función que es este botón que es lo que va a hacer es ejecutar

31
00:03:03,920 --> 00:03:13,310
el llamado a una función fíjense que en ésta que es la función ahora me va a permitir jugar con el valor

32
00:03:13,310 --> 00:03:14,780
que la función me devuelve.

33
00:03:14,780 --> 00:03:15,890
Por qué.

34
00:03:15,890 --> 00:03:22,820
Porque la función se llama el número par y va a recibir un parámetro todo lo que está entre paréntesis

35
00:03:23,060 --> 00:03:24,550
son parámetros.

36
00:03:24,590 --> 00:03:31,310
Si tuviera más de un parámetro lo separaría por comas y colocaría una lista de parámetros el parámetro

37
00:03:31,310 --> 00:03:40,190
es un valor que recibe la función y a su vez la función me va a devolver un dato un valor ese valor

38
00:03:40,280 --> 00:03:44,360
me lo va a devolver en un tipo de dato llamado booleano.

39
00:03:44,390 --> 00:03:52,100
Este dato Juliano lo único que admite es un Tru o Fours un verdadero o falso lo que estoy haciendo con

40
00:03:52,100 --> 00:04:00,760
esta función es recibir un número hago una cuenta matemática para detectar si el número es verdadero

41
00:04:00,830 --> 00:04:07,880
si el CI es un número par y devuelve fold si el número que recibió no es un número par.

42
00:04:08,210 --> 00:04:15,850
Este es un algoritmo muy usado para saber si los números son pares a la parte entera de número dividido

43
00:04:15,850 --> 00:04:21,920
2 el número que recibo lo comparo si es lo mismo que número dividido 2.

44
00:04:22,070 --> 00:04:26,330
Al ser par la parte entera va a ser igual a esta división.

45
00:04:26,330 --> 00:04:34,580
En cambio si recibiera por ejemplo un 3 la parte entera de números 2 me va a dar 1 porque va a haber

46
00:04:34,580 --> 00:04:42,050
una parte decimal porque la cuenta me va a dar 1,5 la parte entera me va a dar 1 que no va a ser lo

47
00:04:42,050 --> 00:04:44,830
mismo que 1,5.

48
00:04:44,900 --> 00:04:52,880
Por eso aquí me va a devolver un fouls si lo que detecta es un número impar pero a lo que nos preocupa

49
00:04:52,880 --> 00:05:02,910
ahora es cómo funcionan las funciones y cómo funcionan las subrutinas muy bien Fíjense que aquí no hay

50
00:05:02,910 --> 00:05:12,750
ninguna instrucción retar en Visual Basic las instrucciones retan son las usadas para devolver un valor

51
00:05:13,020 --> 00:05:14,120
de funciones.

52
00:05:14,490 --> 00:05:21,120
Entonces yo entro en mi función hago los cálculos que tenga que hacer o los chequeos que tenga que hacer

53
00:05:21,380 --> 00:05:22,290
y voy a devolver.

54
00:05:22,290 --> 00:05:29,660
En este caso entro o voy a devolver un Fours si aquí en lugar de bullían hubiera un integrar.

55
00:05:29,730 --> 00:05:32,520
O sea que voy a devolver un valor entero.

56
00:05:32,640 --> 00:05:38,930
Aquí ya no me sirve devolver un from Monfort tendría que devolver un número entero.

57
00:05:39,060 --> 00:05:46,110
También puedo devolver una string y demás pero no estamos aquí para hablar de tipos de datos en funciones

58
00:05:46,890 --> 00:05:52,380
sino que estamos para probar cómo funcionan estas funciones funcionan muy bien.

59
00:05:52,380 --> 00:05:59,490
Vamos a ejecutar el programita para que ustedes lo vean digamos en tiempo real.

60
00:05:59,490 --> 00:06:04,860
Si yo hago clic en probar rutinas recuerden que probar rutinas lo único que tenía era un mensaje en

61
00:06:04,860 --> 00:06:05,800
pantalla.

62
00:06:05,940 --> 00:06:13,590
Hago clic y aparece el mensaje que dice Hola soy una rutina muy bien ahora funciona lo que va a hacer

63
00:06:13,590 --> 00:06:15,780
es tomar este dato.

64
00:06:15,850 --> 00:06:24,900
Este campo este campo de texto numérico se llama txt número y le estoy enviando a la función a la función

65
00:06:25,320 --> 00:06:34,920
el txt número el parámetro valor digamos la propiedad el valor que tiene Bayou se llama en inglés la

66
00:06:34,920 --> 00:06:41,160
propiedad valio que tiene ese control txt número y eso es lo que va a recibir.

67
00:06:41,190 --> 00:06:43,950
Nuestra función es número par.

68
00:06:44,190 --> 00:06:51,290
Como va a recibir este número que es el número 2 en este caso va cerró la cuenta y va a devolver un

69
00:06:51,290 --> 00:06:52,050
Tru.

70
00:06:52,070 --> 00:06:53,560
Ahora qué hace.

71
00:06:53,660 --> 00:07:00,050
La rutina que llama a la función la rutina que llama la función lo que está haciendo es evaluar cuál

72
00:07:00,050 --> 00:07:02,360
es el valor que devolvió la función.

73
00:07:02,420 --> 00:07:04,580
Esto es lo potente de las funciones.

74
00:07:04,700 --> 00:07:12,980
Entonces primero en la misma línea se unum un llamado a la función y en la misma línea evalúa cuál es

75
00:07:13,250 --> 00:07:18,640
el valor que retornó a la función entonces pregunta si es número par.

76
00:07:18,650 --> 00:07:21,970
Dónde envío un valor es igual a cero.

77
00:07:21,980 --> 00:07:24,910
O sea que me devolvió la función.

78
00:07:25,040 --> 00:07:30,090
Voy a mostrar este mensaje de que el número es un número par.

79
00:07:30,170 --> 00:07:32,430
Ahora si se va por él.

80
00:07:32,480 --> 00:07:36,830
Recuerden los bloques de decisión que vimos en Brooklyn.

81
00:07:36,830 --> 00:07:43,040
Si se va por él significa que no es un número par y me va a mostrar el otro mensaje.

82
00:07:43,100 --> 00:07:51,440
Vamos a probarlo vamos a enviar me dice que dos es un número par y si yo aquí coloco tres me va a decir

83
00:07:51,440 --> 00:07:54,100
que tres no es un número par.

84
00:07:54,110 --> 00:07:58,600
Esto es lo que ustedes tienen que entender de funciones.

85
00:07:58,670 --> 00:08:02,050
Cuáles son las diferencias con una subrutina.

86
00:08:02,120 --> 00:08:11,120
La rutina no me devuelve valores y las funciones fueron creadas para procesar cosas o parámetros que

87
00:08:11,120 --> 00:08:12,140
yo les envié.

88
00:08:12,140 --> 00:08:18,470
Inclusive puede haber funciones que no tengan parámetros sino que tomen datos de otro lado quizás una

89
00:08:18,470 --> 00:08:24,530
función se conecte a la base de datos y busque información y me va a devolver un valor.

90
00:08:24,530 --> 00:08:30,320
O sea que no es necesario que una función reciba un un parámetro.

91
00:08:30,320 --> 00:08:34,970
Esto podría no tener parámetros y podemos probarlo.

92
00:08:35,090 --> 00:08:43,940
Podemos hacer que aquí txt número 1 Roballo lo reemplace lo reemplazamos directamente para que no tengamos

93
00:08:43,940 --> 00:08:49,700
que enviar este número como parámetro no es lo aconsejable.

94
00:08:49,700 --> 00:08:58,280
Las buenas prácticas dicen que hay que tratar de abstraer el funcionamiento de las funciones y los métodos

95
00:08:58,600 --> 00:09:03,620
y hay que hacerlos lo más abstractos posibles porque qué sucede aquí.

96
00:09:03,620 --> 00:09:09,650
Esta función solo me va a servir para esta parte del programa porque si yo quiero usar esta función

97
00:09:09,650 --> 00:09:15,470
en otro programa donde no tenga ese control llamado txt número aquí me daría un error.

98
00:09:15,800 --> 00:09:24,860
Entonces lo ideal es recibir un parámetro numérico que va a venir de cualquier control o inclusive de

99
00:09:24,860 --> 00:09:29,670
una base de datos procesar ese parámetro numérico y devolver un valor.

100
00:09:29,840 --> 00:09:36,560
Pero para que ustedes vean que esto funciona lo que voy a hacer aquí es quitar el parámetro y lo vamos

101
00:09:36,560 --> 00:09:38,840
a ejecutar nuevamente.

102
00:09:38,840 --> 00:09:45,770
Vamos a probar función dos el número par y si yo coloco tres tres no es número par fíjense que ahora

103
00:09:45,770 --> 00:09:50,640
yo ya no he enviado ningún parámetro a la función.

104
00:09:50,820 --> 00:09:56,950
Y sin embargo ha funcionado devolviendo un valor por Tru o por fours.

105
00:09:57,050 --> 00:10:03,800
Espero que hayan entendido esta diferencia entre funciones y métodos y vamos a ir al próximo capítulo

106
00:10:03,800 --> 00:10:11,870
a seguir aprendiendo a programar básico a los conocimientos básicos para luego entender cualquier lenguaje

107
00:10:11,870 --> 00:10:12,990
de programación.

108
00:10:13,040 --> 00:10:14,720
Nos vemos en el próximo capítulo.
