marfonline@gmail.com                     UGB San Miguel                     Lic. Marvin Romero               Universidad C...
marfonline@gmail.com                 UGB San Miguel                   Lic. Marvin Romero                                  ...
marfonline@gmail.com                  UGB San Miguel                     Lic. Marvin Romero   realizado. en la solución (o...
marfonline@gmail.com                  UGB San Miguel                  Lic. Marvin Romero                                  ...
marfonline@gmail.com                   UGB San Miguel                     Lic. Marvin Romero5. Para construir únicamente u...
marfonline@gmail.com                   UGB San Miguel                      Lic. Marvin Romero   La misma mecánica se segui...
marfonline@gmail.com                   UGB San Miguel                  Lic. Marvin Romero                                 ...
marfonline@gmail.com                  UGB San Miguel                     Lic. Marvin Romero4. Construya la solución (oprim...
marfonline@gmail.com                  UGB San Miguel                 Lic. Marvin Romero8. Comprobación de shadowing. Ya vi...
marfonline@gmail.com                 UGB San Miguel                   Lic. Marvin Romero9. Modifique la línea 21, sustituy...
Upcoming SlideShare
Loading in …5
×

Guia3 funciones byval byref, alcance de variables

1,650 views

Published on

Guia3 funciones byval byref, alcance de variables

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,650
On SlideShare
0
From Embeds
0
Number of Embeds
124
Actions
Shares
0
Downloads
90
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Guia3 funciones byval byref, alcance de variables

  1. 1. marfonline@gmail.com UGB San Miguel Lic. Marvin Romero Universidad Capitán General Gerardo Barrios, SM. Guía Nº 3 Asignatura: Programación Computacional I Docente: Lic. Marvin Antonio Romero FloresObjetivo:- Demostrar las formas más comunes de declarar variables y constantes, así como la realización de conversiones.- Demostrar el alcance de las variables y la forma en que preservan los valores.Para la realización de esta guía se necesitará lo siguiente: igu ro 1. Guía de Práctica No. 1 y Nº 2 M ome 2. Computadora con software Microsoft Visual Basic. el an R , S vin GB ar U M c. Li www.miceminfo.net Busca en FB como CEMINFO Blog, Foros, y más...
  2. 2. marfonline@gmail.com UGB San Miguel Lic. Marvin Romero Parte I: Demostración del alcance de las variables y la forma en que preservan valores (I)En este ejercicio se comprobara la forma en que funcionan los alcances de variables en Visual Basic yla forma en que podemos aprovechar su manejo para preservar valores en memoria con eficiencia.1. Cree una solución en Blanco, llamada con su nombre Apellidos primero y Nombres después, seguido de las palabras GUIA3, así: “romero flores marvin antonio Guia3”2. Agregue a su solución un proyecto Windows – Aplicación de Consola, llamado ValRef.3. Edite el programa de tal forma que aparezca como sigue: igu ro M ome el an R , S vin GB ar U M c. Li4. Construya la solución (oprima las teclas Ctrl-Mayus-B, ó Clic Derecho sobre la solución y seleccione Generar). Establezca el nuevo proyecto como proyecto de inicio (Clic derecho sobre el proyecto, opción Establecer como Proyecto de inicio) y guarde todos los cambios que ha www.miceminfo.net Busca en FB como CEMINFO Blog, Foros, y más...
  3. 3. marfonline@gmail.com UGB San Miguel Lic. Marvin Romero realizado. en la solución (oprima las teclas Ctrl-Mayus-S). Inicie la depuración para comprobar el comportamiento de su programa (Oprima F5).5. Este programa es type safe, dado que todas las variables deberán declararse antes de ser utilizadas (Option Explicit) y las conversiones tienen que hacerse de forma explícita (Option Strict).6. El programa declara una variable de memoria, llamada Texto, que se verá sometida a modificaciones en su contenido (línea 7); de initio, se le asigna un valor de Texto original, mismo que es mostrado en la consola (línea 8). La variable será proporcionada como argumento a dos procedimientos, uno de los cuales tratara el dato como valor (líneas 17 a la 20), y otro como referencia (líneas 22 a la 25).7. Uso del dato como tipo valor. En la línea 9 se proporciona la variable como argumento de un procedimiento llamado Valor; dicho procedimiento recibe el valor y le da trata-miento como tipo valor. En la línea 18 se modifica el valor de Texto, por Texto Valor, y se muestran los efectos del cambio en la línea 19. Después de ejecutar Valor (), se muestra el contenido de la variable Texto igu ro (línea 10); es posible observar que, aunque se modificó el valor de la variable en el procedimiento, M ome el valor original no se modifico en lo absoluto. Esto se debe a que el dato fue manejado como tipo valor, lo que provoca que el argumento genere su propia copia del dato, dejan-do al dato original el intacto. an R8. Uso del dato como tipo referencia. En la línea 11 se proporciona la variable como argumento de , S vin un procedimiento llamado Referencia; dicho procedimiento recibe el valor y le da tratamiento como tipo referencia. En la línea 23 se modifica el valor de Texto, por Texto Referencia, y se GB ar muestran los efectos del cambio en la línea 24. U MDespués de ejecutar Referencia, se muestra el contenido de la variable Texto (línea 12); es posiblenotar que el valor original se modifico. Esto se debe a que el dato fue manejado como tipo referencia, c.lo que provoca que el argumento no genere su propia copia del dato, sino que utilice para el manejo Lide información la misma position de memoria que el valor original.Si todo ocurre de la forma esperada, obtendremos la siguiente salida: FIN DE LA PARTE I www.miceminfo.net Busca en FB como CEMINFO Blog, Foros, y más...
  4. 4. marfonline@gmail.com UGB San Miguel Lic. Marvin Romero Parte II:Declaración más común de variables y Constantes, y realización de conversionesEn este ejercicio se utilizará una aplicación de consola para comprobar la declaración y uso devariables en un proceso.1. Abra la solución que creo en el ejercicio anterior.2. Agregue a su solución un proyecto de tipo Consola, llamado AreaRectangulo. igu ro3. Edite el programa de tal forma que aparezca como sigue. M ome el an R , S vin GB ar U M c. Li Construcción de un solo proyecto4. Al agregar éste, se tendrán dos proyectos en la solución. En ocasiones, cuando las soluciones son muy grandes, reconstruir una completamente para saber si se tienen problemas en el proyecto que se está desarrollando puede implicar un consumo innecesario de recursos de procesamiento. www.miceminfo.net Busca en FB como CEMINFO Blog, Foros, y más...
  5. 5. marfonline@gmail.com UGB San Miguel Lic. Marvin Romero5. Para construir únicamente un proceso, y no todos los de la solución, basta con seleccionar el proyecto en Explorador de Soluciones, desplegar el menú contextual y seleccionar la opción Generar. De esa forma se construirá sólo el proyecto seleccionado.6. Seleccione en Explorador de Soluciones el proyecto; para ello coloque el puntero sobre el nombre del proyecto AreaRectangulo, haga clic con el botón derecho del ratón para desplegar el menú contextual y seleccione Generar. igu ro M ome el an R , S vin7. Vea en Salida (Lista de errores) cómo se procesa solamente el proyecto recién desarrollado. GB ar Cuando su proyecto ya no presente errores, podrá construirse la solución, y ejecutarse con U M confianza.8. Construya la solución (oprima las teclas Ctrl-Mayús-B). Establezca el nuevo proyecto como c. proyecto de inicio (Proyecto de inicio) y guarde todos los cambios que haya realizado en la Li solución (oprima las teclas Ctrl-Mayús-S). Inicie la depuración para comprobar el comportamiento de su programa (F5).9. La línea 4 declara una constante, a la cual se le asigna como valor el mensaje que ha de aparecer como encabezado del programa (línea 9); en la línea 5 se muestra una declaración de variable en su forma más sencilla; en la línea 6 se comprueba que es posible asignar un valor inicial al momento de la declaración; en la línea 7 se comprueba la posibilidad de declarar múltiples variables de múltiples tipos en una misma línea (aunque esta práctica no se recomienda porque podría hacer perder claridad al código).10. En la línea 9 se muestra el título del programa en la consola, en la 10 se muestra el mensaje que pregunta la base del rectángulo y en la 11 se asigna a la variable Entrada el valor que el usuario ingresa desde la consola.11. Como el dato se recibe en formato String desde la consola, la línea 12 se encarga de convertirlo en Integer, utilizando para ello la función específica Clnt; el resultado es asignado a la variable Base. www.miceminfo.net Busca en FB como CEMINFO Blog, Foros, y más...
  6. 6. marfonline@gmail.com UGB San Miguel Lic. Marvin Romero La misma mecánica se seguirá para preguntar y convertir la altura del rectángulo, con la diferencia de que se utilizará para la conversión la función genérica CType.12. La línea 17 calcula el área del rectángulo, asignando el valor a la variable Resultado. Como Resultado es de tipo Single, posee de forma intrínseca el método ToString, que es utilizado en la línea 18 para mostrar los resultados.13. Todas las conversiones que realizamos en este programa pudieron haberse obviado, dado que el programa no es ‘type safe, es decir, el CLR hubiera realizado la conversión cast en caso de que nosotros no la hubiéramos llevado a cabo de manera explícita.14. Proporcione un valor de 10 para la base y 15 para la altura, y vea los resultados . Si todo ocurre como se espera, obtendremos lo siguiente: igu ro M ome el an R , S vin FIN DEL EJERCICIO GB ar U M c. Li www.miceminfo.net Busca en FB como CEMINFO Blog, Foros, y más...
  7. 7. marfonline@gmail.com UGB San Miguel Lic. Marvin Romero Parte III: Demostración del alcance de las variables y la forma en que preservan valores (II)En este ejercicio se comprobará la forma en que funcionan los alcances de variables en Visual Basic yla forma en que podemos aprovechar su manejo para preservar valores en memoria con eficiencia.1. Abra la solución que creo al inicio de esta guía n° 2.2. Agregue a su solución un proyecto Windows - Consola, llamado Alcance.3. Edite el programa de tal forma que aparezca como sigue: igu ro M ome el an R , S vin GB ar U M c. Li www.miceminfo.net Busca en FB como CEMINFO Blog, Foros, y más...
  8. 8. marfonline@gmail.com UGB San Miguel Lic. Marvin Romero4. Construya la solución (oprima las teclas Ctrl-Mayús-B). Establezca el nuevo proyecto como proyecto de inicio (Proyecto de Inicio) y guarde todos los cambios que haya realizado en la solución (oprima las teclas Ctrl-Mayús-S). Inicie la depuración para comprobar el comportamiento de su programa (Oprima F5).5. Este programa es type safe, dado que todas las variables deberán declararse antes de ser utilizadas (Option Explicit) y las conversiones tienen que hacerse de forma explícita (Option Strict) (líneas 1 y 2).6. Se declaran variables con diferente alcance en las líneas 5, 9 y 12. En la línea 5 se declara la variable Texto1; ésta tiene un alcance a nivel módulo, debido a que se declara dentro del módulo, fuera de cualquier procedimiento. Esta variable podrá ser utilizada por todos los procedimientos del módulo, es decir, Main(), Procedimiento1() y Procedimiento2(); esto se comprueba en la líneas 8 y 29, pues se despliega en igu ro la consola una variable no definida en esos procedimientos. M ome En la línea 9 se declara la variable Texto2, que tiene un alcance a nivel procedimiento, por estar declarada dentro de un procedimiento específico, pero fuera de un bloque de código; por esa el razón se trata de una variable local. Esta variable estará disponible sólo para Main (), pero no para an R otros procedimientos. , S vin En la línea 12 se declara la variable Texto3, que tiene un alcance a nivel bloque de código y estará disponible desde que se declara (línea 12) hasta que se encuentre el estatuto que marca el final GB ar del bloque de código (en este caso End If, en la línea 14). U M Si se trata de utilizar la variable Texto3 después de la línea 14, pensando que es una variable local (de alcance a nivel procedimiento), nuestro programa generará error, ya que la variable sólo c. existe declarada para el bloque en que se declara. Li7. Comprobación de la variable estática. En la línea 15 se manda ejecutar Procedimiento1 (); en dicho procedimiento se define una variable estática llamada Texto4 (línea 25). Esta variable tendrá un tiempo de vida que excede el tiempo de vida del procedimiento que la declara, ya que por ser estática, mantendrá los valores en memoria aun después de concluida la ejecución del procedimiento. En la línea 26 se asigna a Texto4 la constante String Valor + que se concatenará con el valor que tenga la misma Texto4; en virtud de que la variable es estática, el valor que va adoptando se comporta como un acumulador, que nunca pierde el valor que tenía, obtenido de procesamientos anteriores. Las líneas 16 y 17 mandan ejecutar Procedimiento1 (), a fin de que se compruebe que efectivamente la variable mantiene su valor al correr de las múltiples ejecuciones del procedimiento. www.miceminfo.net Busca en FB como CEMINFO Blog, Foros, y más...
  9. 9. marfonline@gmail.com UGB San Miguel Lic. Marvin Romero8. Comprobación de shadowing. Ya vimos que en la línea 5, Texto 1 se definió con un alcance a nivel módulo y, al momento de declarar la variable, se le asignó el valor Alcance módulo. En Procedimiento2(), se vuelve a definir la variable Textol (línea 37) y se le asigna al momento de declaración el valor Shadow.a) ¿Qué alcance tiene la variable Texto1, declarada en la línea 37?______________________________________________________________________________________________________________________________________________________________________b) ¿Qué valor posee Texto1 cuando es desplegada en la consola en la línea 38?______________________________________________________________________________________________________________________________________________________________________ igu roc) ¿Qué valor posee Texto1 cuando es desplegada en la consola en la línea 40? M ome______________________________________________________________________________________________________________________________________________________________________ el an RComo podrá darse cuenta, el programa no genera conflicto con la doble declaración de la variable;simplemente utiliza aquella que tenga menor alcance. , S vinSi todo ocurrió como se esperaba, la salida será la siguiente: GB ar U M c. Li www.miceminfo.net Busca en FB como CEMINFO Blog, Foros, y más...
  10. 10. marfonline@gmail.com UGB San Miguel Lic. Marvin Romero9. Modifique la línea 21, sustituyendo el estatuto de declaración Static por Dim. Ejecute el programa nuevamente, y explique qué sucede.____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ igu ro___________________________________________________________________________________ M ome______________________________________________________________________________________________________________________________________________________________________ el___________________________________________________________________________________ an R , S vin FIN DEL EJERCICIO. GB ar U M c. Li www.miceminfo.net Busca en FB como CEMINFO Blog, Foros, y más...

×