La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Parte 3. Descripción del código de una función 1.

Presentaciones similares


Presentación del tema: "Parte 3. Descripción del código de una función 1."— Transcripción de la presentación:

1 Parte 3. Descripción del código de una función 1

2 Parte 3. Descripción del código de una función 2 Como ejemplo se escribirá el código de una función para encontrar el diámetro exterior de una cañería de acero al carbono, con input del diámetro nominal en pulgadas.

3 Parte 3. Descripción del código de una función 3 Como ejemplo se escribirá el código de una función para encontrar el diámetro exterior de una cañería de acero al carbono, con input del diámetro nominal en pulgadas. El nombre de la función será

4 Parte 3. Descripción del código de una función 4 "Pipe_Imp_CS_Dext_dn_sch" Como ejemplo se escribirá el código de una función para encontrar el diámetro exterior de una cañería de acero al carbono, con input del diámetro nominal en pulgadas. El nombre de la función será

5 Parte 3. Descripción del código de una función 5 "Pipe_Imp_CS_Dext_dn_sch" Como ejemplo se escribirá el código de una función para encontrar el diámetro exterior de una cañería de acero al carbono, con input del diámetro nominal en pulgadas. El nombre de la función será Esta función se basa en los diámetros exteriores definidos en la norma ASME B36.10M

6 Parte 3. Descripción del código de una función 6 "Pipe_Imp_CS_Dext_dn_sch" Como ejemplo se escribirá el código de una función para encontrar el diámetro exterior de una cañería de acero al carbono, con input del diámetro nominal en pulgadas. El nombre de la función será Esta función se basa en los diámetros exteriores definidos en la norma ASME B36.10M Una tabla con los diámetros exteriores dext [mm] correspondientes a los diámetros nominales dn [in], se debe incluir en una hoja del archivo Excel. La función leerá la información desde esta hoja.

7 7 La tabla que sigue entrega los diámetros exteriores y espesores para cañerías de acero carbono de diferentes diámetros nominales y cédulas, de acuerdo a la norma ASME B36. 10

8 8

9 9 Código de la función para el diámetro exterior

10 10 Código de la función para el diámetro exterior Según se explicó en la Parte 1, el código se inicia definiendo el nombre de la función y Visual Basic agrega el End Function.

11 11 Código de la función para el diámetro exterior Según se explicó en la Parte 1, el código se inicia definiendo el nombre de la función y Visual Basic agrega el End Function. Function Pipe_Imp_CS_Dext_dn(Dn) End Function

12 12 El diámetro exterior depende sólo del diámetro nominal (Dn) y se encuentra en la tercera columna de la tabla.

13 13

14 14 El código empieza definiendo la matriz C que contiene las filas 1 a la 36 y las columnas 1 a 3.

15 15

16 16 Matriz C, en cuya tercera columna, desde las filas 7 a la 36 se encuentran los diámetros exteriores Dext [mm]

17 17 A continuación se definirá en el código, la dimensión de la matriz C

18 18 Dim C(36, 3) Function Pipe_Imp_CS_Dext_dn(Dn) End Function

19 19 Dim C(36, 3) Function Pipe_Imp_CS_Dext_dn(Dn) End Function La matriz C se ha definido con 36 columnas y 3 filas

20 20 Lectura de la tabla

21 21 Lectura de la tabla Para leer la información de la tabla, se usa una estructura llamada For -next

22 22 Lectura de la tabla Para leer la información de la tabla, se usa una estructura llamada For -next El For-next indica que se debe repetir una operación que depende de un índice m y se indican los valores inicial y final de m.

23 23 Lectura de la tabla Para leer la información de la tabla, se usa una estructura llamada For -next El For-next indica que se debe repetir una operación que depende de un índice m y se indican los valores inicial y final de m. For m = 1 To 36

24 24 Lectura de la tabla Para leer la información de la tabla, se usa una estructura llamada For -next El For-next indica que se debe repetir una operación que depende de un índice m y se indican los valores inicial y final de m. For m = 1 To 36 En este espacio se indican las operaciones que se deben efectuar, las que dependen del valor del momento del índice m

25 25 Lectura de la tabla Para leer la información de la tabla, se usa una estructura llamada For -next El For-next indica que se debe repetir una operación que depende de un índice m y se indican los valores inicial y final de m. For m = 1 To 36 En este espacio se indican las operaciones que se deben efectuar, las que dependen del valor del momento del índice m Next m Las operaciones con el índice m terminan con

26 26 Lectura de la tabla Para leer la información de la tabla, se usa una estructura llamada For -next El For-next indica que se debe repetir una operación que depende de un índice m y se indican los valores inicial y final de m. For m = 1 To 36 En este espacio se indican las operaciones que se deben efectuar, las que dependen del valor del momento del índice m Next m Las operaciones con el índice m terminan con El loop termina después que m toma el valor 36

27 27 El For-next se programa como sigue

28 28 El For-next se programa como sigue

29 29 El For-next se programa como sigue Aquí se indica que se deben leer las celdas de la columna 3, desde la fila 1 a la 36.

30 30 El For-next se programa como sigue Aquí se indica que se deben leer las celdas de la columna 3, desde la fila 1 a la 36.

31 31 El For-next se programa como sigue Aquí se indica que se deben leer las celdas de la columna 3, desde la fila 1 a la 36. El valor leído se asigna al elemento (m,3) de la matriz C

32 32 El For-next se programa como sigue Aquí se indica que se deben leer las celdas de la columna 3, desde la fila 1 a la 36. El valor leído se asigna al elemento (m,3) de la matriz C

33 33 El For-next se programa como sigue Aquí se indica que se deben leer las celdas de la columna 3, desde la fila 1 a la 36. La lectura se hace en la hoja que se ha nombrado 6.CS_Imp El valor leído se asigna al elemento (m,3) de la matriz C

34 34 El For-next se programa como sigue Aquí se indica que se deben leer las celdas de la columna 3, desde la fila 1 a la 36. La lectura se hace en la hoja que se ha nombrado 6.CS_Imp El valor leído se asigna al elemento (m,3) de la matriz C

35 35 El For-next se programa como sigue Aquí se indica que se deben leer las celdas de la columna 3, desde la fila 1 a la 36. La lectura se hace en la hoja que se ha nombrado 6.CS_Imp El valor leído se asigna al elemento (m,3) de la matriz C En la hoja 6.CS_Imp, se lee el contenido de la celda (m,3)

36 36 Resumen de los pasos de programación dados

37 37 Resumen de los pasos de programación dados Function

38 38 Resumen de los pasos de programación dados Function Pipe_Imp_CS_Dext_dn(Dn)

39 39 Resumen de los pasos de programación dados Function Pipe_Imp_CS_Dext_dn(Dn) End Function

40 40 Resumen de los pasos de programación dados Function Pipe_Imp_CS_Dext_dn(Dn) End Function

41 41 Resumen de los pasos de programación dados Function Pipe_Imp_CS_Dext_dn(Dn) End Function Dim C(36, 3)

42 42 Resumen de los pasos de programación dados Function Pipe_Imp_CS_Dext_dn(Dn) End Function Dim C(36, 3) For m = 1 To 36

43 43 Resumen de los pasos de programación dados Function Pipe_Imp_CS_Dext_dn(Dn) End Function Dim C(36, 3) For m = 1 To 36 C(m, 3) = thisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value

44 44 Resumen de los pasos de programación dados Function Pipe_Imp_CS_Dext_dn(Dn) End Function Dim C(36, 3) For m = 1 To 36 C(m, 3) = thisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value Next m

45 45 Identificación de la fila en que se encuentra cada diámetro nominal

46 46 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación en la fila de todos los datos correspondientes a ese diámetro.

47 47

48 48 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea

49 49 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea If Dn = 0.5 Then x = 7

50 50 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea If Dn = 0.5 Then x = 7 Cuyo significado es Si Dn tiene el valo 0.5 [in] entonces se trata de la fila 7

51 51 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea If Dn = 0.5 Then x = 7 Cuyo significado es Si Dn tiene el valo 0.5 [in] entonces se trata de la fila 7 La siguiente línea es

52 52 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea ElseIf Dn = 0.75 Then x = 8 If Dn = 0.5 Then x = 7 Cuyo significado es Si Dn tiene el valo 0.5 [in] entonces se trata de la fila 7 La siguiente línea es

53 53 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea Cuyo significado es O Si Dn tiene el valor 0.75 [in], se trata de la fila 8 ElseIf Dn = 0.75 Then x = 8 If Dn = 0.5 Then x = 7 Cuyo significado es Si Dn tiene el valo 0.5 [in] entonces se trata de la fila 7 La siguiente línea es

54 54 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea Cuyo significado es O Si Dn tiene el valor 0.75 [in], se trata de la fila 8 ElseIf Dn = 0.75 Then x = 8 If Dn = 0.5 Then x = 7 Y así sucesivamente hasta identificar todas las filas Cuyo significado es Si Dn tiene el valo 0.5 [in] entonces se trata de la fila 7 La siguiente línea es

55 55 Identificación de la fila en que se encuentra cada diámetro nominal Al asociar el diámetro nominal del caso a su fila en la matriz, se conoce la ubicación de la fila de todos los datos correspondientes a ese diámetro. En el código se agrega la siguiente línea Cuyo significado es O Si Dn tiene el valor 0.75 [in], se trata de la fila 8 ElseIf Dn = 0.75 Then x = 8 If Dn = 0.5 Then x = 7 Y así sucesivamente hasta identificar todas las filas Con estas dos nuevas líneas, el código se ve así Cuyo significado es Si Dn tiene el valo 0.5 [in] entonces la fila es la fila 7 La siguiente línea es

56 56 Function Pipe_Imp_CS_Dext_dn(Dn) Dim C(36, 3) For m = 1 To 36 C(m, 3) = ThisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value Next m If Dn = 0.5 Then x = 7 ElseIf Dn = 0.75 Then x = 8 End Function

57 57 Y con todas las filas identificadas, el código se ve así

58 58 Function Pipe_Imp_CS_Dext_dn(Dn) Dim C(36, 3) For m = 1 To 36 C(m, 3) = ThisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value Next m If Dn = 0.5 Then x = 7 ElseIf Dn = 0.75 Then x = 8 ElseIf Dn = 1 Then x = 9 ElseIf Dn = 1.5 Then x = 10 ElseIf Dn = 2 Then x = 11 ElseIf Dn = 3 Then x = 12 ElseIf Dn = 4 Then x = 13 ElseIf Dn = 5 Then x = 14 ElseIf Dn = 6 Then x = 15 ElseIf Dn = 8 Then x = 16 ElseIf Dn = 10 Then x = 17 ElseIf Dn = 12 Then x = 18 ElseIf Dn = 14 Then x = 19 ElseIf Dn = 16 Then x = 20 ElseIf Dn = 18 Then x = 21 ElseIf Dn = 20 Then x = 22 ElseIf Dn = 22 Then x = 23 ElseIf Dn = 24 Then x = 24 ElseIf Dn = 26 Then x = 26 ElseIf Dn = 28 Then x = 26 ElseIf Dn = 30 Then x = 27 ElseIf Dn = 32 Then x = 28 ElseIf Dn = 34 Then x = 29 ElseIf Dn = 36 Then x = 30 ElseIf Dn = 38 Then x = 31 ElseIf Dn = 40 Then x = 32 ElseIf Dn = 42 Then x = 33 ElseIf Dn = 44 Then x = 34 ElseIf Dn = 46 Then x = 35 ElseIf Dn = 48 Then x = 36 ' If the Dn-value is not within the given values, ' The function returns Dext = "N/A" Else Pipe_Imp_CS_Dext_dn = "N/A" Exit Function End If

59 59 Function Pipe_Imp_CS_Dext_dn(Dn) Dim C(36, 3) For m = 1 To 36 C(m, 3) = ThisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value Next m If Dn = 0.5 Then x = 7 ElseIf Dn = 0.75 Then x = 8 ElseIf Dn = 1 Then x = 9 ElseIf Dn = 1.5 Then x = 10 ElseIf Dn = 2 Then x = 11 ElseIf Dn = 44 Then x = 34 ElseIf Dn = 46 Then x = 35 ElseIf Dn = 48 Then x = 36 ' If the Dn-value is not within the given values, ' The function returns Dext = "N/A" Else Pipe_Imp_CS_Dext_dn = "N/A" Exit Function End If Esta parte de la función termina diciendo, Else = esto es, en otro caso, si el diámetro nominal recibido como input no es ninguno de los revisados, entonces el input es erróneo. La función termina entregando como respuesta un No Aplica (N/A)

60 60 Si el valor del diámetro nominal corresponde a alguno de los valores definidos en la estándar, significa que en el examen recién realizado se ha encontrado la línea correspondiente al diámetro nominal recibido. Esto es, se conoce el valor de x

61 61 Si el valor del diámetro nominal corresponde a alguno de los valores definidos en la estándar, significa que en el examen recién realizado se ha encontrado la línea correspondiente al diámetro nominal recibido. Esto es, se conoce el valor de x Conocida la fila de la matriz en la que se encuentra el diámetro exterior buscado (fila x), y como se sabe que este diámetro está en la columna 3, el elemento de la matriz con el valor buscado es el elemento (x,3)

62 62 Si el valor del diámetro nominal corresponde a alguno de los valores definidos en la estándar, significa que en el examen recién realizado se ha encontrado la línea correspondiente al diámetro nominal recibido. Esto es, se conoce el valor de x Conocida la fila de la matriz en la que se encuentra el diámetro exterior buscado (fila x), y como se sabe que este diámetro está en la columna 3, el elemento de la matriz con el valor buscado es el elemento (x,3) Así, el valor de la función buscada es

63 63 Si el valor del diámetro nominal corresponde a alguno de los valores definidos en la estándar, significa que en el examen recién realizado se ha encontrado la línea correspondiente al diámetro nominal recibido. Esto es, se conoce el valor de x Pipe_Imp_CS_Dext_dn = C(x, 3) Conocida la fila de la matriz en la que se encuentra el diámetro exterior buscado (fila x), y como se sabe que este diámetro está en la columna 3, el elemento de la matriz con el valor buscado es el elemento (x,3) Así, el valor de la función buscada es

64 64 Si el valor del diámetro nominal corresponde a alguno de los valores definidos en la estándar, significa que en el examen recién realizado se ha encontrado la línea correspondiente al diámetro nominal recibido. Esto es, se conoce el valor de x Pipe_Imp_CS_Dext_dn = C(x, 3) Conocida la fila de la matriz en la que se encuentra el diámetro exterior buscado (fila x), y como se sabe que este diámetro está en la columna 3, el elemento de la matriz con el valor buscado es el elemento (x,3) Así, el valor de la función buscada es Con esto, la función queda terminada.

65 65 Si el valor del diámetro nominal corresponde a alguno de los valores definidos en la estándar, significa en el examen recién realizado se ha encontrado la línea correspondiente al diámetro nominal recibido. Esto es, se conoce el valor de x Pipe_Imp_CS_Dext_dn = C(x, 3) Conocida la fila de la matriz en la que se encuentra el diámetro exterior buscado (fila x), y como se sabe que este diámetro está en la columna 3, el elemento de la matriz con el valor buscado es el elemento (x,3) Así, el valor de la función buscada es Con esto, la función queda terminada El código completo es

66 66 Function Pipe_Imp_CS_Dext_dn(Dn) Dim C(36, 3) As Variant For m = 1 To 36 C(m, 3) = ThisWorkbook.Worksheets("6.CS_Imp").Cells(m, 3).Value Next m x = 7 ElseIf Dn = 0.75 Then x = 8 ElseIf Dn = 1 Then x = 9 ElseIf Dn = 1.5 Then x = 10 ElseIf Dn = 2 Then x = 11 ElseIf Dn = 3 Then x = 12 ElseIf Dn = 4 Then x = 13 ElseIf Dn = 5 Then x = 14 ElseIf Dn = 6 Then x = 15 ElseIf Dn = 8 Then x = 16 ElseIf Dn = 10 Then x = 17 ElseIf Dn = 12 Then x = 18 ElseIf Dn = 14 Then x = 19 ElseIf Dn = 16 Then x = 20 ElseIf Dn = 18 Then x = 21 ElseIf Dn = 20 Then x = 22 ElseIf Dn = 22 Then x = 23 ElseIf Dn = 24 Then x = 24 ElseIf Dn = 26 Then x = 26 ElseIf Dn = 28 Then x = 26 ElseIf Dn = 30 Then x = 27 ElseIf Dn = 32 Then x = 28 ElseIf Dn = 34 Then x = 29 ElseIf Dn = 36 Then x = 30 ElseIf Dn = 38 Then x = 31 ElseIf Dn = 40 Then x = 32 ElseIf Dn = 42 Then x = 33 ElseIf Dn = 44 Then x = 34 ElseIf Dn = 46 Then x = 35 ElseIf Dn = 48 Then x = 36 Else Pipe_Imp_CS_Dext_dn = "N/A" Exit Function End If Pipe_Imp_CS_Dext_dn = C(x, 3) End Function

67 67 Fin de la Parte 3 Nota. En el archivo de la página web piping-tools.net, Pipe_dimensions_and_friction_factor.xlsm se encuentran las tres funciones (diámetro exterior, diámetro interior y espesor) con su código completo.


Descargar ppt "Parte 3. Descripción del código de una función 1."

Presentaciones similares


Anuncios Google