Algoritmos Trabajo Unidad 6

Materia: Algoritmos y lenguajes de programación. Tema unidad 6: Funciones Catedrático: Ing. Guillermo barragán Jiménez

Views 264 Downloads 0 File size 425KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

  • Author / Uploaded
  • luz
Citation preview

Materia: Algoritmos y lenguajes de programación.

Tema unidad 6: Funciones

Catedrático: Ing. Guillermo barragán Jiménez

Elaboro: luz fernanda martinez cruz fecha:

24/ENE./19 Vo.Bo.

Temario: 6 FUNCIONES. 6.1 Introducción. 6.2 Funciones Estándar.

6.3 Entrada y salida de datos. 6.4 Funciones definidas por el usuario.

6.5 Pase por valor. 6.6 Pase por referencia.

6.7 Elaboración de programas.

6.1 INTRODUCCION. Sub-algoritmo. Se le llama así a cada una de las partes de un algoritmo más general que resuelve cada una de las tareas particulares necesarias para que dicho algoritmo general alcance el objetivo para el que fue diseñado, es decir resolver un problema. Las variables locales: se declaran dentro de un módulo o Subalgoritmo y sólo tienen utilidad dentro de ese módulo, no se podrá acceder a ellas desde otros módulos. Pueden existir variables locales con el mismo nombre siempre que estén en módulos diferentes. Las variables globales: son declaradas de forma que puedan ser utilizadas (consultada y/o modificada) desde cualquiera de los módulos que forman el programa. En este caso, no puede haber dos variables globales con el mismo nombre, ya que esto produciría una ambigüedad que el compilador no podría resolver. Función. También conocido como una subrutina o subprograma, como idea general, se presenta como un Subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea específica. Algunos lenguajes de programación, como Visual Basic .NET o Fortran, utilizan el nombre función para referirse a subrutinas que devuelven un valor. Una subrutina al ser llamada dentro de un programa hace que el código principal se detenga y se dirija a ejecutar el código de la subrutina, en cambio cuando se llama a una macro, el compilador toma el código de la macro y lo implanta donde fue llamado, aumentando así el código fuente y por consiguiente el objeto. Una función puede llamarse múltiples veces e incluso llamarse a sí misma (función recurrente).

Elementos de la declaración de una subrutina. Las declaraciones de subrutinas generalmente son especificadas por: Un nombre único en el ámbito: nombre de la función con el que se identifica y se distingue de otras. Un tipo de dato de retorno: tipo de dato del valor que la subrutina devolverá al terminar su ejecución. Una lista de parámetros: especificación del conjunto de argumentos (pueden ser cero, uno o más) que la función debe recibir para realizar su tarea. El código u órdenes de procesamiento: conjunto de órdenes y sentencias que debe ejecutar la subrutina

Las funciones en programación generalmente son las que realizan los cálculos para retornar el valor correspondiente a una función matemática. Por ejemplo, un seudocodigo puede ser: Private Sub cmdregre_Click() (programa principal) Unload Me End Sub Sub Sumar(ByRef Valor As Long) Valor = Valor + 100 End Sub Private Sub cmdByRef_Click() Dim Un_Valor As Long Un_Valor = 100 Call Sumar(Un_Valor) MsgBox Un_Valor, vbInformation, "Modifica la variable" End Sub ( fin del programa) Donde se puede ver claramente donde inicia la función del programa y donde termina.

6.2.- FUNCIONES ESTANDAR. También conocido como una subrutina o subprograma, como idea general, se presenta como un Subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea específica. Algunos lenguajes de programación, como Visual Basic .NET o Fortran, utilizan el nombre función para referirse a subrutinas que devuelven un valor. Una subrutina al ser llamada dentro de un programa hace que el código principal se detenga y se dirija a ejecutar el código de la subrutina, en cambio cuando se llama a una macro, el compilador toma el código de la macro y lo implanta donde fue llamado, aumentando así el código fuente y por consiguiente el objeto. Las funciones son casi exactamente iguales que los procedimientos con respecto a la forma en que se los llama y se los crea o declara en el código, en cómo se le pasa los parámetros etc... La diferencia fundamental con respecto a los procedimientos o subrutinas es que estos, luego de ejecutar el código que tengan en su interior, al final retornan un valor, y este valor luego lo podemos utilizar para una determinada tarea. En cambio, los procedimientos, solo ejecutan el código que contienen y luego mueren por decirlo de alguna manera.

Para declarar o crear una función podríamos escribir lo siguiente: Private Function Total (Valor1 As Integer, Valor2 As Integer) As Long Total = Valor1 + Valor2 End Function

Seguramente notaste que declaramos la función llamada Total, y al final de los parámetros dice As Long , esto es por que como dijimos las funciones retornan o devuelven un valor, o sea que en este caso la función es de tipo Long, o mejor dicho devolverá un valor de tipo Long., y luego ese valor devuelto lo podemos utilizar en otra parte del programa. Las Funciones pueden retornar casi cualquier tipo de datos, como números, cadenas, fechas, arreglos y vectores Para llamar a la función anterior podríamos hacerlo de la siguiente manera:

Label1.caption = Total 502, 1478

En este caso el control Label1 llamaría a la función Total , la función realizaría la suma de los valores pasados como parámetros y por último el valor final de la suma se lo asignaría al control label1.

Funciones para el tratamiento de cadenas Las funciones de cadena, como su nombre lo indica, se utilizan para trabajar y tratar las cadenas de caracteres. A continuación las más importantes de ellas.

Función Lcase y Ucase Estas dos funciones se utilizan para convertir cadenas de texto a minúscula y mayúscula. La función Lcase cambia o convierte una cadena de texto a minúscula y un ejemplo de como utilizarla sería así: Lcase (cadena que queremos convertir a minúsculas)

Ejemplo: Dim cadena As String cadena = "HOLA MUNDO" 'Convertimos cadena = LCase(cadena) 'La variable cadena ahora vale "hola mundo"

La función Ucase funciona de la misma manera que Lcase pero convierte el contenido de una cadena a mayúsculas. Por ejemplo, si tenemos un control Label1 que contiene un texto que dice: "Porcentaje de sueldos", escribiendo la siguiente línea:

Label1 = Ucase (Label1)

El control Label1 pasaría a mostrar o mejor dicho contener en su propiedad caption:"PORCENTAJE DE SUELDOS".

Función Trim, LTrim y RTrim Estas tres funciones se utilizan para eliminar los espacios vacíos de una cadena. LTrim elimina los espacios vacíos de la parte izquierda de la cadena, RTrim de la parte derecha y Trim de ambas partes. Ejemplos: Tenemos una variable llamada ciudad con el valor " Barcelona". Para eliminar los espacios vacíos de la izquierda haríamos lo siguiente:

ciudad = LTrim(ciudad)

Si en un TextBox quisieramos borrar todos los espacios vacíos de la parte derecha de la cadena:

MiText = RTrim(MiText)

La Función Trim elimina todos los espacios vacíos de ambos lados de la cadena. Ejemplo:

Pais = " Argentina País = Trim(Pais)

"

Ahora el valor de País es igual a: "Argentina".

Función Len La función Len nos permite conocer la cantidad de caracteres que tiene una determinada cadena. O sea que esta función nos devuelve un número. Ejemplo:

Len (Aquí va la cadena que queremos averiguar su tamaño)

Como la función Len devuelve un número debemos asignar ese número devuelto en una variable de tipo numérica. Ejemplo:

Dim TamanoCadena As Long Dim MiCadena As String MiCadena = "Me Llamo Eustaquio" TamanoCadena = Len(MiCadena) El valor de la variable TamanoCadena pasaría a valer 18. Hay que tener en cuenta que la función Len también toma en cuenta los espacios vacíos.

Función Asc y Chr La función Asc nos permite obtener el código ASCII de un de terminado caracter. Ejempos: Si queremos obtener el código ASCII del caracter "a", que es el número 97 podríamos hacer lo siguiente:

Dim num As Integer num = Asc("a") En definitiva, la función Asc lleva un solo parámetro de tipo String del cual queremos obtener dicho número. La Función Chr actúa a la inversa de la función Asc, esto quiere decir, que a partir de un determinado número nos devolverá el caracter ASCII. Obviamente que en vez de pasarle a la función un parámetro String es decir la letra, debemos pasarle un número ASCII y nos devolverá el carácter asociado. Ejemplo:

Dim letra As String letra = Chr(97)

La variable pasa a valer en este caso el caracter "a"

Función InsTr La función InStr se utiliza para buscar una cadena o parte de una cadena dentro de otra cadena. Si la función encuentra la cadena a buscar devuelve un número que representa la posición donde encontró la cadena, si no la encuentra devuelve un 0. Los parámetros que lleva esta función son:

InStr (comienzo, Cadena donde buscar, La Cadena a buscar) Como esta función devuelve un número debemos almacenarla en una variable de tipo numérica para utilizarla.

Ejemplo:

Dim posicion As Integer posicion = InStr("Estoy tomando mate", "mate")

En este ejemplo la función encontró la cadena "mate" en la posición 15, o sea que la variable posición pasa a valer 15. Si observamos bien, la función en el primer parámetro, denominado comienzo, nos pide que le digamos desde que posición comenzar a buscar. En nuestro ejemplo, este parámetro lo obviamos, esto quiere decir que comenzará desde la posición 0 de la cadena a buscar. Pero podríamos especificar una posición en particular, por ejemplo desde la 5 , 10 etc..., según lo que necesitemos hacer. Otro ejemplo de InsTr : Este ejemplo, muestra como buscar dentro de un control TextBox, el cual tiene dos opciones, un botón para buscar la primera frase, y otro que sigue buscando a partir de donde esté ubicda la selección. Para armar el ejemplo colocar un Textbox llamado Text_Buscar que es donde se ingresará la frase y otro TextBox llamado Text1 que tendrá el texto. Este último con la propiedad Multiline en True. También colocar dos CommandButtonCommand1 y Command2

Colocar el siguiente código fuente en el formulario:

Option Explicit Private m_Pos As Integer Sub buscar_cadena(ByVal Posicion As Integer) Dim p As Integer, Frase As String Frase = txt_Buscar p = InStr(Posicion, Text1, Frase) If p > 0 Then m_Pos = p With Text1 .SelStart = m_Pos - 1 .SelLength = Len(Frase) .SetFocus End With Else MsgBox "No se encontró la frase", vbInformation Text1.SetFocus End If End Sub Private Sub Command1_Click() 'Busca a pratir de la primera pocición Call buscar_cadena(1) End Sub Private Sub Command2_Click() 'Busca a partir del valor que tenga m_Pos Call buscar_cadena(m_Pos + 1) End Sub Private Sub Form_Load() Command1.Caption = "Buscar" Command2.Caption = "Buscar siguiente" Me.Caption = "Ejemplo de InStr " End Sub Nota: también hay una función similar a Instr llamada InstrRev , y lo que hace es devolver la posición de la primera concurrencia de una cadena dentro de otra cadena, pero comenzando por el extremo derecho de la misma.

Función Left, Right y Mid Estas funciones son utilizadas para extraer partes de una cadena. La función Left: tiene 2 parámetros: El primero es la cadena de la cual se extraerán caracteres, y el segundo un número desde el cual comenzar a extraer caracteres desde la parte izquierda. Ejemplo:

Dim Cadena As String Cadena = Left("Ya es la madrugada", 9) 'Cadena, que es un string, sería igual a: "Ya es la"

Función Right: Es igual que la función Left pero comienza a extraer caracteres desde el lado derecho de la cadena. La función Mid: Tiene la misma función que las anteriores pero posee tres parámetros. Su sintaxis es: Mid (cadena, inicio, longitud) El parámetro cadena es la cadena a extraer caracteres. El parámetro Inicio es donde comenzar y el parámetro longitud, es la cantidad de caracteres a extraer de la cadena de caracteres Ejemplos:

Dim nombre As String nombre = Mid("River perdió la copa", 7, 6) 'La variable nombre sería igual a: "perdió"

Este Otro ejemplo usa la función Mid para realizar un simple efecto tipo máquina de escribir.

Colocar en un formulario un CommandButton y el siguiente código fuente en el form.

Option Explicit Sub Pausa(Segundos As Double) Dim inicio As Double ' Devuelve la cantidad de segundos desde que inicio windows inicio = Timer Do While (Timer - inicio) < Segundos ' pausa DoEvents Loop End Sub Private Sub Command1_Click() Dim texto As String texto = "... Hola mundo --->>> " Call MostrarTexto(texto, 0.1, Me) End Sub Private Sub MostrarTexto(Frase As String, _ Segundos As Double, _ Destino As Object) Dim LenFrase As Integer Dim i As Integer Dim Caracter As String Dim texto As String LenFrase = Len(Frase) Do While i