La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Subrutinas y Funciones Leonel Morales Díaz Ingeniería Simple Disponible en: Copyright.

Presentaciones similares


Presentación del tema: "Subrutinas y Funciones Leonel Morales Díaz Ingeniería Simple Disponible en: Copyright."— Transcripción de la presentación:

1 Subrutinas y Funciones Leonel Morales Díaz Ingeniería Simple leonel@ingenieriasimple.com Disponible en: http://www.ingenieriasimple.com/introprogra Copyright 2008 by Leonel Morales Díaz – Ingeniería Simple. Derechos reservados

2 Problema Construya un programa que: Dibuje una tabla de 10x12 Luego una tabla de 8x11 Luego otra más de 15x10 3 tablas de diferente tamaño ¿Y si fueran 5? ¿7? ¿10?

3 Algoritmo Tradicional Dibujar la tabla de 10x12 Dibujar 10 filas En cada fila dibujar 12 celdas Dibujar la tabla de 8x11 Dibujar 8 filas En cada fila dibujar 11 celdas Dibujar la tabla de 15x10 Dibujar 15 filas En cada fila dibujar 10 celdas

4 Programa Dim i,j Document.Write For i = 1 To 10 Document.Write For j = 1 To 12 Document.Write * Next Document.Write Next Document.Write For i = 1 To 8 Document.Write For j = 1 To 11 Document.Write * Next Document.Write Next Document.Write For i = 1 To 15 Document.Write For j = 1 To 10 Document.Write * Next Document.Write Next Document.Write

5 3 2 3 Iteraciones Dim i,j Document.Write For i = 1 To 10 Document.Write For j = 1 To 12 Document.Write * Next Document.Write Next Document.Write For i = 1 To 8 Document.Write For j = 1 To 11 Document.Write * Next Document.Write Next Document.Write For i = 1 To 15 Document.Write For j = 1 To 10 Document.Write * Next Document.Write Next Document.Write 1

6 3 2 Parámetros 1 Dim i,j Document.Write For i = 1 To 10 Document.Write For j = 1 To 12 Document.Write * Next Document.Write Next Document.Write For i = 1 To 8 Document.Write For j = 1 To 11 Document.Write * Next Document.Write Next Document.Write For i = 1 To 15 Document.Write For j = 1 To 10 Document.Write * Next Document.Write Next Document.Write

7 Transformarlo a Subrutina Sub DibujaTabla(Filas,Columnas) Dibuja una tabla Dim i,j Document.Write For i = 1 To Filas Document.Write For j = 1 To Columnas Document.Write * Next Document.Write Next Document.Write End Sub Llamadas a la subrutina DibujaTabla 10,12 DibujaTabla 8,11 DibujaTabla 15,10

8 Subrutina Sub DibujaTabla(Filas,Columnas) Dibuja una tabla Dim i,j Document.Write For i = 1 To Filas Document.Write For j = 1 To Columnas Document.Write * Next Document.Write Next Document.Write End Sub Encabezado Final Sub DibujaTabla(Filas,Columnas) Nombre de la Subrutina Parámetros Los parámetros son como variables

9 Subrutinas Procedimientos o agrupaciones de instrucciones Que realizan una tarea concreta Que varía por los parámetros Puede que no lleve parámetros Tiene sus propias variables

10 En el código Dibuja varias tablas con subrutinas En esta página se dibujan varias tablas mediante el uso de subrutinas. Option Explicit Sub DibujaTabla(Filas,Columnas) Dibuja una tabla Dim i,j Document.Write For i = 1 To Filas Document.Write For j = 1 To Columnas Document.Write * Next Document.Write Next Document.Write End Sub Llamadas a la subrutina DibujaTabla 10,12 DibujaTabla 8,11 DibujaTabla 15,10 Este texto estará al final de las tres tablas ej048.html

11 3 2 Parámetros 1 Dim i,j Document.Write For i = 1 To 10 Document.Write For j = 1 To 12 Document.Write * Next Document.Write Next Document.Write For i = 1 To 8 Document.Write For j = 1 To 11 Document.Write * Next Document.Write Next Document.Write For i = 1 To 15 Document.Write For j = 1 To 10 Document.Write * Next Document.Write Next Document.Write

12 Más Parámetros Relleno Sub DibujaTabla(Filas,Columnas,Relleno) Dibuja una tabla Dim i,j Document.Write For i = 1 To Filas Document.Write For j = 1 To Columnas Relleno Document.Write & Relleno & Next Document.Write Next Document.Write End Sub

13 Más Parámetros Borde Sub DibujaTabla(Filas,Columnas,Relleno,Borde) Dibuja una tabla Dim i,j Borde Document.Write For i = 1 To Filas Document.Write For j = 1 To Columnas Document.Write & Relleno & Next Document.Write Next Document.Write End Sub

14 Múltiples Llamadas Sub DibujaTabla(Filas,Columnas) Dibuja una tabla Dim i,j Document.Write For i = 1 To Filas Document.Write For j = 1 To Columnas Document.Write * Next Document.Write Next Document.Write End Sub Llamadas múltiples Dim i,j j = 3 For i = 1 To 10 DibujaTabla i,j j = j + 5 Next ej049.html

15 Múltiples Llamadas Sub DibujaTabla(Filas,Columnas) Dibuja una tabla Dim i,j Document.Write For i = 1 To Filas Document.Write For j = 1 To Columnas Document.Write * Next Document.Write Next Document.Write End Sub Llamadas múltiples Dim i,j j = 3 For i = 1 To 10 DibujaTabla i,j j = j + 5 Next ej049.html

16 Múltiples Llamadas Sub DibujaTabla(Filas,Columnas) Dibuja una tabla Dim i,j Document.Write For i = 1 To Filas Document.Write For j = 1 To Columnas Document.Write * Next Document.Write Next Document.Write End Sub Llamadas múltiples Dim i,j j = 3 For i = 1 To 10 DibujaTabla i,j j = j + 5 Next Diferente Ámbito ej049.html

17 Múltiples Llamadas Sub DibujaTabla(Filas,Columnas) Dibuja una tabla Dim i,j Document.Write For i = 1 To Filas Document.Write For j = 1 To Columnas Document.Write * Next Document.Write Next Document.Write End Sub Llamadas múltiples Dim i,j Document.Write For i = 1 To 10 Document.Write For j = 1 To 5 Document.Write DibujaTabla 3,3 Document.Write Next Document.Write Next Document.Write ej050.html

18 Convertir a Binario 1. Se divide la entrada entre 2 2. Si es el primer residuo solo se coloca 3. De lo contrario 1. Se coloca el residuo a la izquierda del residuo anterior 4. Si el resultado es mayor o igual que 2 1. Tomarlo como entrada y volver a paso 1 5. De lo contrario 1. Colocar el resultado a la izquierda del residuo anterior 2. Fin del algoritmo

19 Subrutina 1. Se divide la entrada entre 2 2. Si es el primer residuo solo se coloca 3. De lo contrario 1. Se coloca el residuo a la izquierda del residuo anterior 4. Si el resultado es mayor o igual que 2 1. Tomarlo como entrada y volver a paso 1 5. De lo contrario 1. Colocar el resultado a la izquierda del residuo anterior 2. Fin del algoritmo ¿Nombre? ¿Parámetros? ¿Variables locales?

20 Subrutina 1. Se divide la entrada entre 2 2. Si es el primer residuo solo se coloca 3. De lo contrario 1. Se coloca el residuo a la izquierda del residuo anterior 4. Si el resultado es mayor o igual que 2 1. Tomarlo como entrada y volver a paso 1 5. De lo contrario 1. Colocar el resultado a la izquierda del residuo anterior 2. Fin del algoritmo Sub CambiaBase(UnNumero,LaBase) Dim Resu,Resi,Salida Resu = UnNumero\LaBase Resi = UnNumero Mod LaBase Salida = & Resi Do While Resu >= LaBase Resi = Resu Resu = Resu\LaBase Resi = Resi Mod LaBase Salida = Resi & Salida Loop Salida = Resu & Salida Document.Write Salida: & Salida & End Sub ej051.html

21 Funciones Tienen Nombre Parámetros Variables locales Igual que una subrutine Devuelven un valor A = F(X,Y)

22 Comparación Sub CambiaBase(UnNumero,LaBase) Dim Resu,Resi,Salida Resu = UnNumero\LaBase Resi = UnNumero Mod LaBase Salida = & Resi Do While Resu >= LaBase Resi = Resu Resu = Resu\LaBase Resi = Resi Mod LaBase Salida = Resi & Salida Loop Salida = Resu & Salida Document.Write Salida: & Salida & End Sub Function CambiaBase(UnNumero,LaBase) Dim Resu,Resi,Salida Resu = UnNumero\LaBase Resi = UnNumero Mod LaBase Salida = & Resi Do While Resu >= LaBase Resi = Resu Resu = Resu\LaBase Resi = Resi Mod LaBase Salida = Resi & Salida Loop Salida = Resu & Salida CambiaBase = Salida End Function

23 Llamadas a Funciones Function CambiaBase(UnNumero,LaBase) Dim Resu,Resi,Salida Resu = UnNumero\LaBase Resi = UnNumero Mod LaBase Salida = & Resi Do While Resu >= LaBase Resi = Resu Resu = Resu\LaBase Resi = Resi Mod LaBase Salida = Resi & Salida Loop Salida = Resu & Salida CambiaBase = Salida End Function Dim i Document.Write Número Base 2 Base 5 Base 8 Base 16 For i = 1 To 30 Document.Write & i & & CambiaBase(i,2) & & CambiaBase(i,5) & & CambiaBase(i,8) & & CambiaBase(i,16) & Next Document.Write ej052.html

24 Utilización en Formularios Al crear un botón: Sub SalirPrograma Window.Close End Sub

25 Utilización en Formularios En un hipervínculo: Parece que va a ej040.html pero sale del programa. Sub SalirPrograma Window.Close End Sub ej053.html

26 Eventos Cosas que pasan Que le pasan a los objetos A las ventanas: Las abren, las cierran A los documentos: Los cargan A los botones e hipervínculos: Les dan click

27 Ejercicio Hacer un formulario que cargue la página que dibuja tablas de Fils x Cols


Descargar ppt "Subrutinas y Funciones Leonel Morales Díaz Ingeniería Simple Disponible en: Copyright."

Presentaciones similares


Anuncios Google