Anda di halaman 1dari 21

Institut

UNIDAD VI. Funciones


o
CARRERA Materia:
CLAVE
ASIGNATURA
DE NOMBRE DE LA UNIDAD Tecnol
Algoritmo yINC-1005
lenguaje de
gico
INGENIERIA FUNCIONES
INDUSTRIAL
Programacin
PRACTICA Superio
DURACIO
N
Trabajo:
r De
Investigacin unidad 6 Autnomo

Investigacin
Unidad VI
1. INTRODUCCION.
Panuco
Funciones
Investigacin de unidad VI, el alumno deber investiga el tema arreglos y archivos.

6. Funciones.
6.1 Introduccin. Docente: Ext. El
Lic. Diana Lizbeth Lara Cruz
6.2 Funciones estndar.
6.3 Entrada y salida de datos. Higo,
Alumno:
6.4 Funciones definidas por el usuario.
6.5 Pase por valor. Ver
Luis Salvador
6.6 Pase por referencia. Hernndez
6.7 Punteros.
Semestre/ grupo:
2. OBJETIVO (COMPETENCIA)

Cuarto 412
Con esta actividad el alumno:
- Investigar y organizara informacin y datos.
- Interpretar, analizara, integrara y evaluara informacin y datos.
- Usar software bsico y aplicado a Ingeniera.
- Se comunicara en forma oral, grfica y escrita.
- Trabajar en equipo.

1
UNIDAD VI. Funciones

INDICE

Unidad V

Funciones

2
UNIDAD VI. Funciones

6.1 Introduccin----------------------------------------------------------

6.2 Funciones estndar.-------------------------------------------------

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 Punteros.---------------------------------------------------------------

6.1 Introduccin.
Sub-algoritmo.

Se le llama as a cada una de las partes de un algoritmo ms general que resuelve cada una
de las tareas particulares necesarias para que dicho algoritmo general alcance el objetivo
para el que fue diseado, es decir resolver un problema.
3
UNIDAD VI. Funciones

Las variables locales: se declaran dentro de un mdulo o Sub-algoritmo y slo tienen utilidad
dentro de ese mdulo, no se podr acceder a ellas desde otros mdulos. Pueden existir
variables locales con el mismo nombre siempre que estn en mdulos diferentes.

Las variables globales: son declaradas de forma que puedan ser utilizadas (consultada y/o
modificada) desde cualquiera de los mdulos que forman el programa. En este caso, no
puede haber dos variables globales con el mismo nombre, ya que esto producira una
ambigedad que el compilador no podra resolver.

Funcin.

Tambin conocido como una subrutina o subprograma, como


idea general, se presenta como un Sub-algoritmo que forma
parte del algoritmo principal, el cual permite resolver una
tarea especfica. Algunos lenguajes de programacin, como
Visual Basic .NET o Fortran, utilizan el nombre funcin para
referirse a subrutinas que devuelven un valor.

Una subrutina al ser llamada dentro de un programa hace


que el cdigo principal se detenga y se dirija a ejecutar el
cdigo de la subrutina, en cambio cuando se llama a una macro, el compilador toma el cdigo
de la macro y lo implanta donde fue llamado, aumentando as el cdigo fuente y por
consiguiente el objeto.

Elementos de la declaracin de una subrutina.


Las declaraciones de subrutinas generalmente son especificadas por:
Un nombre nico en el mbito: nombre de la funcin 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
ejecucin.

Una lista de parmetros: especificacin del conjunto de argumentos (pueden ser cero, uno o
ms) que la funcin debe recibir para realizar su tarea.

El cdigo u rdenes de procesamiento: conjunto de rdenes y sentencias que debe ejecutar la


subrutina.

Por ejemplo un seudocdigo puede ser


Private Sub cmdregre_Click () (programa principal)
Unload Me
End Sub

4
UNIDAD VI. Funciones

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 funcin del programa y donde termina.

6.2 Funcin Estndar

Tambin conocido como una subrutina o subprograma, como idea general, se presenta como
un Sub-algoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea
especfica. Algunos lenguajes de programacin, como Visual Basic .NET o Fortran, utilizan el
nombre funcin para referirse a subrutinas que devuelven un valor.

Una subrutina al ser llamada dentro de un programa hace que el cdigo principal se detenga y
se dirija a ejecutar el cdigo de la subrutina, en cambio cuando se llama a una macro, el
compilador toma el cdigo de la macro y lo implanta donde fue llamado, aumentando as el
cdigo 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 cdigo, en cmo se le pasa los parmetros
etc...

La diferencia fundamental con respecto a los procedimientos o subrutinas es que estos, luego
de ejecutar el cdigo 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
cdigo que contienen y luego mueren por decirlo de alguna manera.

Para declarar o crear una funcin podramos escribir lo siguiente:

Private Function Total (Valor1 As Integer, Valor2 As Integer) As Long

Total=Valor1+Valor2

End Function

5
UNIDAD VI. Funciones

Seguramente notaste que declaramos la funcin llamada Total, y al final de los parmetros
dice As Long , esto es por que como dijimos las funciones retornan o devuelven un valor, o
sea que en este caso la funcin 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 nmeros, cadenas, fechas,
arreglos y vectores

Para llamar a la funcin anterior podramos hacerlo de la siguiente manera:

Label1.caption = Total 502, 1478

En este caso el control Label1 llamara a la funcin Total, la funcin realizara la suma de los
valores pasados como parmetros y por ltimo el valor final de la suma se lo asignara 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 continuacin las ms importantes de ellas.

Funcin Lcase y Ucase

Estas dos funciones se utilizan para convertir cadenas de texto a minscula y mayscula.
La funcin Lcase cambia o convierte una cadena de texto a minscula y un ejemplo de cmo
utilizarla sera as:

Lcase (cadena que queremos convertir a minsculas)

Ejemplo:

Dim cadena As String

cadena="HOLAMUNDO"

'Convertimos
cadena=LCase(cadena)

6
UNIDAD VI. Funciones

'La variable cadena ahora vale "hola mundo"

La funcin Ucase funciona de la misma manera que Lcase pero convierte el contenido de una
cadena a maysculas.

Por ejemplo, si tenemos un control Label1 que contiene un texto que dice: "Porcentaje de
sueldos", escribiendo la siguiente lnea:

Label1 = Ucase (Label1)

El control Label1 pasara a mostrar o mejor dicho contener en su propiedad


caption:"PORCENTAJE DE SUELDOS".

Funcin Trim, LTrim y RTrim

Estas tres funciones se utilizan para eliminar los espacios vacos de una cadena.

LTrim elimina los espacios vacos 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
vacos de la izquierda haramos lo siguiente:

Ciudad = LTrim(ciudad)

Si en un TextBox quisiramos borrar todos los espacios vacos de la parte derecha de la


cadena:

MiText = RTrim(MiText)

La Funcin Trim elimina todos los espacios vacos de ambos lados de la cadena.

Ejemplo:

Pas=" Argentina "


Pas = Trim(Pas)
7
UNIDAD VI. Funciones

Ahora el valor de Pas es igual a: "Argentina".

Funcin Len

La funcin Len nos permite conocer la cantidad de caracteres que tiene una determinada
cadena. O sea que esta funcin nos devuelve un nmero.

Ejemplo:

Len (Aqu va la cadena que queremos averiguar su tamao)

Como la funcin Len devuelve un nmero debemos asignar ese nmero devuelto en una
variable de tipo numrica.

Ejemplo:

Dim TamanoCadena As Long

Dim MiCadena As String

MiCadena = "Me Llamo Eustaquio"

TamanoCadena = Len(MiCadena)

El valor de la variable TamanoCadena pasara a valer 18.

Hay que tener en cuenta que la funcin Len tambin toma en cuenta los espacios vacos.

Funcin Asc y Chr

La funcin Asc nos permite obtener el cdigo ASCII de un de terminado caracter.

Ejempos:

Si queremos obtener el cdigo ASCII del caracter "a", que es el nmero 97 podramos hacer
lo siguiente:

Dim num As Integer

num = Asc("a")

En definitiva la funcin Asc lleva un solo parmetro de tipo String del cual queremos obtener
dicho nmero.
8
UNIDAD VI. Funciones

La Funcin Chr acta a la inversa de la funcin Asc, esto quiere decir, que a partir de un
determinado nmero nos devolver el caracter ASCII.

Obviamente que en vez de pasarle a la funcin un parmetro String es decir la letra, debemos
pasarle un nmero ASCII y nos devolver el carcter asociado.

Ejemplo:

Dim letra As String

letra = Chr(97)

6.3 Entrada y salida de datos.

La entrada de datos consiste en colocar en la memoria principal datos provenientes desde


algn dispositivo de entrada (teclado, disco, etc.) para que la computadora, de acuerdo a un
programa, realice una tarea.
La salida de datos consiste en enviar datos (que, generalmente, son el resultado de un
procesamiento) desde la memoria principal hacia un dispositivo de salida (pantalla,
impresora, disco, etc.).
La siguiente figura muestra un esquema conceptual del equipo de cmputo.

o Esquema conceptual del equipo de cmputo La consola

o En los albores de la computacin, el teclado y la pantalla formaban la consola.

o En la actualidad, a la combinacin de teclado y pantalla se les sigue considerando


como a la antigua consola.

o En C#, la entrada y la salida de datos se pueden manejar a travs de los mtodos


de la clase Console.

Entrada de datos desde el teclado


Para la entrada de datos por medio del teclado se pueden utilizar los mtodos Read ( ) y
ReadLine ( ) de la clase Console.

Ejemplos:

o System.Console.Read( ) ; // Lee el siguiente carcter desde el flujo de la entrada


9
UNIDAD VI. Funciones

estndar.

o System.Console.ReadLine( ) ; // Lee la siguiente lnea de caracteres desde el flujo


de la entrada estndar.
Salida de datos hacia la pantalla

o La salida de datos hacia la pantalla se puede realizar utilizando los mtodos Write
y WriteLine( ) de la clase Console.

Ejemplos:

o System.Console.Write( ) ; // Escribe el siguiente carcter en el flujo de la salida


estndar (la pantalla).

o System.Console.WriteLine( ) ; // Escribe la siguiente lnea de caracteres en el flujo


de la salida estndar.

Cuadro de Mensaje

Muestra un mensaje en un cuadro de dilogo, espera a que el usuario haga clic en un botn.
Si se emplea como funcin, devuelve un tipo Integer correspondiente al botn elegido por el
usuario.

La sintaxis es:

MsgBox (mensaje [, botones] [, ttulo] [, archivo Ayuda, contexto])

Cuando MsgBox se emplea como funcin, devuelve un tipo Integer


correspondiente al botn elegido por el usuario.

Visual-Basic tiene una serie de constantes memo-tcnicas que permiten fcilmente recordar
las opciones posibles.

Funcin InputBox

El InputBox o cuadro de entrada es otro de los cuadros de dilogos utilizados para la


interaccin del usuario con la aplicacin. El InputBox permite mostrar un cuadro de dilogo
donde el usuario pasar un parmetro, valor o dato para que el programa lo trate y lo ejecute.
El mensaje que quiere que aparezca se realiza de forma casi idntica al MsgBox.
10
UNIDAD VI. Funciones

La sintaxis es:

InputBox (mensaje [, ttulo][, estndar] [, posx][,posy][,


archivo Ayuda , contexto])

Salida de datos

Segn hemos visto, el mtodo Print visualiza datos en


un formulario (objeto Form). As mismo, permite visualizar datos en la ventana inmediato (a
travs del objeto Debug), en una caja de imagen (Control PictureBox) o en una impresora
(utilizando el objeto Printer).

6.4 Funciones definidas por el usuario.


Son funciones que el usuario crea para cubrir necesidades que estn fuera del alcance de las
funciones estndar. Cada funcin tiene una misin muy concreta, de modo que nunca tiene un
nmero de lneas excesivo y siempre se mantiene dentro de un tamao manejable. Es muy
frecuente que al hacer una modificacin para aadir una funcionalidad o corregir un error, se
introduzcan nuevos errores en partes del programa que antes funcionaban correctamente.

Adems, una misma puede ser llamada muchas veces en un mismo programa, e incluso
puede ser reutilizada por otros programas. Una funcin es capaz de mantener una gran
independencia con el resto del programa.

Las funciones siempre devuelven un valor al programa que las invoc.

Para llamar a un procedimiento se escribe su nombre en el cuerpo del programa, y si los


necesita, se incluyen los parmetros entre parntesis. Para invocar una funcin es necesario
hacerlo en una expresin.

Existen cuatro formas de pasar un argumento a una funcin (subrutina) o procedimiento: por
valor, por referencia, por valor-resultado y por nombre.

Ventajas de las funciones definidas por el usuario

Las ventajas de utilizar las funciones definidas por el usuario en SQL Server son:
Permiten una programacin modular.
Puede crear la funcin una vez, almacenarla en la base de datos y llamarla desde el
programa tantas veces como desee. Las funciones definidas por el usuario se pueden
modificar, independientemente del cdigo de origen del programa.
Permiten una ejecucin ms rpida.

11
UNIDAD VI. Funciones

Al igual que los procedimientos almacenados, las funciones definidas por el usuario Transact-
SQL reducen el costo de compilacin del cdigo Transact-SQL almacenando los planes en la
cach y reutilizndolos para ejecuciones repetidas. Esto significa que no es necesario volver a
analizar y optimizar la funcin definida por el usuario con cada uso, lo que permite obtener
tiempos de ejecucin mucho ms rpidos.
Las funciones CLR ofrecen una ventaja de rendimiento importante sobre las funciones
Transact-SQL para tareas de clculo, manipulacin de cadenas y lgica
empresarial. Transact-SQL se adecuan mejor a la lgica intensiva del acceso a datos.
Pueden reducir el trfico de red.
Una operacin que filtra datos basndose en restricciones complejas que no se puede
expresar en una sola expresin escalar se puede expresar como una funcin. La funcin se
puede invocar en la clusula WHERE para reducir el nmero de filas que se envan al cliente.

Tipos de funciones

o Funcin escalar:
Las funciones escalares definidas por el usuario devuelven un nico valor de datos del tipo
definido en la clusula RETURNS. En una funcin escalar insertada no hay cuerpo de la
funcin; el valor escalar es el resultado de una sola instruccin. Para una funcin escalar de
varias instrucciones, el cuerpo de la funcin, definido en un bloque BEGIN...END, contiene
una serie de instrucciones de Transact-SQL que devuelven el nico valor. El tipo devuelto
puede ser de cualquier tipo de datos excepto text, ntext, image, cursor y timestamp.
Funciones con valores de tabla
Las funciones con valores de tabla definidas por el usuario devuelven un tipo de
datos table. Las funciones insertadas con valores de tabla no tienen cuerpo; la tabla es el
conjunto de resultados de una sola instruccin SELECT.

o Funciones del sistema

SQL Server proporciona numerosas funciones del sistema que se pueden usar para realizar
diversas operaciones. No se pueden modificar. Para obtener ms informacin, vea Funciones
integradas (Transact-SQL), Funciones almacenadas del sistema (Transact-SQL) y Funciones
y vistas de administracin dinmica (Transact-SQL).
[Top]

12
UNIDAD VI. Funciones

6.5 Pase por valor.

Pasar por valor implica crear una nueva variable dentro de la funcin y pasarle una copia del
valor de la variable externa. Si se modifica el valor de la variable copia, la variable original
queda inalterada.

Los tipos de valor incluyen lo siguiente:

Todos los tipos de datos numricos

Boolean, Char y Date

Todas las estructuras, incluso si sus miembros son tipos de referencia

Las enumeraciones, ya que su tipo subyacente es siempre SByte, Short, Integer, Long, Byte,
UShort, UInteger o ULong

Pasando datos de tipo bsico

Sea la funcin

void funcion (int x){


x=5;
System.out.println("dentro de la funcin: a="+x);
}

Sea la variable a que toma inicialmente el valor de 3. Cul ser el valor de a despus de la
llamada a la funcin funcion?

int a=3;
funcion(a);
System.out.println("despus de la llamada: a="+a);

En primer lugar, recordaremos que la funcin denominada funcion tiene un nico parmetro x,
cuyo alcance es desde la llave de apretura hasta la llave de cierre de la funcin. La
variable x deja de existir una vez que la funcin retorna.

Vamos a ver en este ejemplo el significado de "paso por valor". La variable a toma el valor
inicial de 3. Cuando se llama a la funcin se pasa el valor de a en su nico argumento, el valor
de a se copia en el parmetro x, la variable x toma el valor de 3. En el curso de la llamada a la
13
UNIDAD VI. Funciones

funcin, el valor de x cambia a 5, pero cuando la funcin retorna, la variable x ha dejado de


existir. La variable a no se ha modificado en el curso de la llamada a la funcin, y sigue
valiendo 3.

Durante el curso de la llamada a la funcin funcin, existe la variable a y su copia x, pero son
dos variables distintas, aunque inicialmente guarden el mismo valor.

Pasando objetos

Creamos una clase Entero muy sencilla que tiene como miembro dato un nmero
entero valor, y un constructor que inicializa dicho miembro pblico al crearse un objeto de la
clase Entero.

public class Entero {


public int valor;
public Entero(int valor){
this.valor=valor;
}
}

El valor devuelto por new al cear un objeto es una referencia a un objeto en memoria, que
hemos denominado objeto. Creamos un objeto aInt de la clase Entero para guardar el nmero
tres.

Entero aInt=new Entero(3);


funcion(aInt);

El valor devuelto por new lo guardamos en aInt, y se lo pasamos a la funcin


denominada funcion.

void funcin(Entero xInt){


xInt.valor=5;
}

Dentro de la funcin denominada funcin disponemos en xInt de la referencia al objeto aInt.


Como el argumento aInt y el parmetro xInt guardan la referencia al mismo objeto, es posible
modificar dicho objeto en el curso de la llamada a la funcin, accediendo a sus miembros
pblicos. Desde xInt accedemos al miembro pblico valor para modificarlo. Cuando la funcin
retorna, el objeto aInthabr modificado su estado.

14
UNIDAD VI. Funciones

public class ValorApp2 {


public static void main(String[] args) {
Entero aInt=new Entero(3);
System.out.println("Antes de llamar a la funcin");
System.out.println("objeto.miembro "+aInt.valor);
funcion(aInt);
System.out.println("Despus de llamar a la funcin");
System.out.println("objeto.miembro "+aInt.valor);
}

public static void function(Enter xInt){


xInt.valor=5;
}
}

Estos dos ejemplos, nos ponen de manifiesto el significado de la frase "pasar por valor un
dato a una funcin", y el distinto comportamiento de los tipos bsicos de datos, que no se
pueden modificar en el curso de la llamada a la funcin, de los objetos que si se pueden
modificar. La referencia a un objeto se pasa por valor a la funcin. Dentro de la funcin, desde
esta referencia podemos acceder a los miembros pblicos de dicho objeto para modificar su
estado. Cuando la funcin retorna el objeto estar modificado.

6.6 Pase por Referencia


El paso de parmetros por referencia consiste en proporcionar a la subrutina a la que se le
quiere pasar el argumento la direccin de memoria del dato. En este caso se tiene un nico
valor referenciado (o apuntado) desde dos puntos diferentes, el programa principal y la
subrutina a la que se le pasa el argumento, por lo que cualquier accin sobre el parmetro se
realiza sobre la misma posicin de memoria.

15
UNIDAD VI. Funciones

En los parmetros enviados por Referencia, lo que se hace es enviar un puntero de la variable
original. Entonces, si en la funcin o procedimiento se cambia el valor de la variable, el
cambio seguir mantenindose una vez que finalice la ejecucin del procedimiento o funcin.

Ejemplo de envo de parmetros por Referencia ( ByRef )

Este ejemplo es igual que el anterior, pero en la Sub sumar, la variable Valor se declara con
ByRef (por Referencia)

Cdigo:

Private Sub Command1_Click()


Dim Un_Valor As Long
Un_Valor = 100
'Se enva la variable por Referencia ( ByRef ) con el valor 100
Call Sumar(Un_Valor)
'Muestra el valor que ahora es 200, ( ya que se modific en la Sub Sumar)
MsgBox Un_Valor
End Sub
Sub Sumar(ByRef Valor As Long)
'Modifica la variable
Valor = Valor + 100
End Sub

Ejemplo pase por referencia:

16
UNIDAD VI. Funciones

Cdigo:

Private Sub cmdregre_Click()

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

17
UNIDAD VI. Funciones

6.7 Punteros.
Un puntero es un tipo simple que siempre est asociado a otro tipo (punteros a enteros, a
reales, a registros, etc.)

Se pueden ver los punteros como variables que almacenan direcciones de memoria; de aqu
se deduce:

Un puntero es un medio para acceder al contenido real apuntado por la variable. La


declaracin de un puntero no implica que exista contenido apuntado por el misma. Es
necesario crear y destruir explcitamente el contenido apuntado por punteros. Se puede
establecer una analoga entre los punteros y las direcciones postales: Una direccin postal
permite acceder al lugar fsico indicado.

El hecho de disponer de una direccin postal no garantiza que el lugar exista. Para declarar
variables de tipo puntero en la notacin algortmica se utiliza la sintaxis siguiente: variable
puntero a tipo

Por ejemplo:

Puntero a real

Una vez se declara un puntero pueden llevarse a cabo dos acciones bsicas sobre el mismo:
Asignarle memoria para almacenar un dato del tipo al que apunta:

Crear

Eliminar la memoria que tiene asignada y con ella el dato apuntado:

Destruir

Crear (variable puntero)

Destruir (variable puntero)

Es posible asignar a un puntero el contenido de


otro; para hacer Esto es necesario que la variable
a la que vamos a asignar un Valor no apunte a
ningn dato pues en ese caso el dato original
Quedara inaccesible. As pues, slo deberamos
asignar un puntero a otro si el Puntero asignado
no tiene memoria reservada.

18
UNIDAD VI. Funciones

19
UNIDAD VI. Funciones

20
UNIDAD VI. Funciones

21

Anda mungkin juga menyukai