Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PROGRAMACION
UNIDAD 6
FUNCIONES
MAESTRA: SALAZAR DIVES LILIANA
ALUMNO: ZAMARRON CADENA PEDRO
NATANAEL
N CONTROL: 14071472
HORA: 1:00 2:00 PM
6.1 Introduccin
Subalgoritmo.
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.
Las variables locales: se declaran dentro de un mdulo o Subalgoritmo 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 Subalgoritmo 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.
Una funcin puede llamarse mltiples veces e incluso llamarse a s misma (funcin
recurrente).
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.
Ejemplo:
Dim cadena As String
cadena = "HOLA MUNDO"
'Convertimos
cadena = LCase(cadena)
'La variable cadena ahora vale "hola mundo"
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)
La Funcin Trim elimina todos los espacios vacos de ambos lados de la cadena.
Ejemplo:
Pais = " Argentina
Pas = Trim(Pais)
"
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 InsTr
La funcin InStr se utiliza para buscar una cadena o parte de una cadena dentro
de otra cadena.
Si la funcin encuentra la cadena a buscar devuelve un nmero que representa la
posicin donde encontr la cadena, si no la encuentra devuelve un 0.
Los parmetros que lleva esta funcin son:
InStr (comienzo, Cadena donde buscar, La Cadena a buscar)
Como esta funcin devuelve un nmero debemos almacenarla en una variable de
tipo numrica para utilizarla.
Ejemplo:
Dim posicion As Integer
posicion = InStr("Estoy tomando mate", "mate")
En este ejemplo la funcin encontr la cadena "mate" en la posicin 15, o sea que
la variable posicin pasa a valer 15.
Si observamos bien, la funcin en el primer parmetro, denominado comienzo, nos
pide que le digamos desde que posicin comenzar a buscar. En nuestro ejemplo,
este parmetro lo obviamos, esto quiere decir que comenzar desde la posicin 0
de la cadena a buscar. Pero podramos especificar una posicin en particular, por
ejemplo desde la 5 , 10 etc..., segn lo que necesitemos hacer.
Otro ejemplo de InsTr :
Este ejemplo, muestra como buscar dentro de un control TextBox, el cual tiene dos
opciones, un botn para buscar la primera frase, y otro que sigue buscando a
partir de donde est ubicda la seleccin.
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 pocicin
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: tambin hay una funcin similar a Instr llamada InstrRev , y lo que hace es
devolver la posicin de la primera concurrencia de una cadena dentro de otra
cadena, pero comenzando por el extremo derecho de la misma.
10
Funcin Right:
Es igual que la funcin Left pero comienza a extraer caracteres desde el lado
derecho de la cadena.
La funcin Mid:
Tiene la misma funcin que las anteriores pero posee tres parmetros. Su sintaxis
es:
Mid (cadena, inicio, longitud)
El parmetro cadena es la cadena a extraer caracteres. El parmetro Inicio es
donde comenzar y el parmetro 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 sera igual a: "perdi"
11
Este Otro ejemplo usa la funcin Mid para realizar un simple efecto tipo mquina
de escribir.
Colocar en un formulario un CommandButton y el siguiente cdigo 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 <= LenFrase
Destino.Cls
DoEvents
i=i+1
' Obtiene el siguiente caracter
12
Caracter = Mid(Frase, i, 1)
' texto actual
texto = texto & Caracter
Destino.Print texto ' Imprimi e/ dibuja el texto
' pausa o delay
Pausa Segundos
DoEvents
Loop
End Sub
Private Sub Form_Load()
Me.FontSize = 12
Me.Font.Bold = True
Me.ForeColor = vbRed
Command1.Caption = " Efecto de texto con mid "
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
13
Funcin Round
La funcin Round se utiliza para redondear un nmero decimal, devolviendo un
nmero entero.
Ejemplo:
Dim Mimumero As Long
Minumero = Round(245.8) '(La funcin devuelve 246)
Minumero = Round(245.3) '(La funcin devuelve 245)
Minumero = Round(245.5) '(La funcin devuelve 245)
Round posee un parmetro opcional por si queremos incluir los dgitos decimales.
14
Funciones de formato
Visual Basic posee varias funciones para darle formato a distintos tipos de datos e
informacin. A continuacin se ve algunos ejemplos de las principales funciones:
Resultado
=
FormatPercent(321)
'devuelve:
"32.100,00%"
Resultado
=
FormatCurrency(3)
'devuelve:
"$3,00"
Resultado = FormatDateTime("6-8-1978") 'La funcin devolvera: "06/08/1978"
16
Cdigo en el formulario:
Private Sub Form_Load()
Option1.Caption = " vbGeneralDate "
Option2.Caption = " vbLongDate "
Option3.Caption = " vbShortDate "
Option4.Caption = " vbLongTime "
Option5.Caption = " vbShortTime "
End Sub
Private Sub Option1_Click()
Me.Caption = FormatDateTime(Now, vbGeneralDate)
End Sub
Private Sub Option2_Click()
Me.Caption = FormatDateTime(Now, vbLongDate)
End Sub
Private Sub Option3_Click()
Me.Caption = FormatDateTime(Now, vbShortDate)
End Sub
Private Sub Option4_Click()
Me.Caption = FormatDateTime(Now, vbLongTime)
End Sub
Private Sub Option5_Click()
Me.Caption = FormatDateTime(Now, vbShortTime)
17
End Sub
Funcin Format:
La funcin Format es mas completa que las anteriores funciones, porque puede
manejar mas tipos de datos, y no devuelve solo cadenas, esta tambin puede
devolver nmeros y fechas.
La funcin Format posee dos parmetros:
Format (Expresin, formato)
Ejemplo:
cadena = Format(75, "Currency") ' Devolvera: "$75,00"
Entrada de datos
InputBox
InputBox presenta un mensaje al usuario, permitindole ingresar un valor en una
caja de texto:
El aspecto mas importante de InputBox es que nos devuelve una cadena con lo
que haya ingresado el usuario en la caja de texto. Luego podemos realizar una
tarea especfica dependiendo del valor devuelto.
Ejemplo:
MsgBox
La funcin MsgBox, que ya se vi varias veces en distintos ejemplos, es muy fcil
de usar y se utiliza para mostrar distintos tipos de mensajes.
Ejemplos de mensajes o cajas de texto con la funcin MsgBox que podemos
mostrar:
20
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). Su sintaxis es
objeto.Print lista_de_expresiones
21
Puede crear la funcin una vez, almacenarla en la base de datos y llamarla desde
el programa tantas vecescomo desee. Las funciones definidas por el usuario se
pueden modificar, independientemente del cdigo de origen del programa.
Permiten una ejecucin ms rpida.
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. Las funciones Transact-SQL se adecuan mejor a la lgica intensiva
del acceso a datos.
Pueden reducir el trfico de red.
23
24
En Visual Basic 6.0, para mostrar una fecha en formato corto o largo, utiliza el
especificador de formato "ddddd" o "dddddd". Los especificadores DayOfWeek
("w") y WeekOfYear ("ww") muestran el primer da de la semana y la primera
semana del ao, respectivamente. El carcter en minscula "m" muestra el mes
con un nmero sin cero a la izquierda. El especificador Quarter ("q") muestra el
trimestre del ao con un nmero del 1 al 4.
Para mostrar los minutos como un nmero con o sin ceros iniciales, utiliza el
especificador de formato "Nn" o "N". Los caracteres "Hh" muestran la hora como
un nmero con ceros iniciales, y "ttttt" muestra la hora completa. Para mostrar las
letras "A" o "P" en mayscula o minscula con una hora anterior o posterior al
medioda, utiliza "AM/PM", "am/pm", "A/P", "a/p" o "AMPM.".
El especificador de fecha y hora abreviado ("c") muestra una fecha y hora en el
formato "ddddd ttttt".
En Visual Basic 6.0, la funcin Format convierte las cadenas en nmeros, si es
necesario, antes de asignarles un formato. Format muestra un separador decimal
final si no hay parte fraccionaria.
Visual Basic 6.0 admite cuatro secciones en la cadena de formato. Estas
secciones estn separadas mediante puntos y coma (;) y especifican el formato de
los valores positivos, negativos, cero y nulos, respectivamente. Los nmeros
negativos con una seccin negativa vaca en la cadena de formato muestran una
cadena vaca.
El formato de notacin cientfica permite que se incluyan los marcadores de
posicin de dgitos "0" y "#" despus del exponente.
En Visual Basic 6.0, puede crear expresiones para las cadenas de formato
definidas por el usuario con los especificadores @, &, <, > y !.
25
Cdigo:
Private Sub cmdregre_Click()
Unload Me
End Sub
Sub sumar(ByVal Valor As Long)
Valor = Valor + 100
End Sub
Private Sub cmdByVal_Click()
Dim Un_Valor As Long
26
Un_Valor = 100
Call sumar(Un_Valor)
MsgBox Un_Valor
End Sub
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
6.7 Punteros
Al declarar una variable estamos diciendo al ordenador que reserve una parte de
la memoria RAM para almacenarla. Cada vez que ejecutemos el programa la
variable se almacenar en un sitio diferente; eso no lo podemos controlar pues
depende de la memoria que est disponible en el momento en que ejecutamos el
programa.
La variable se almacena en un lugar determinado de la memoria y ese lugar no
cambia mientras se ejecuta el programa.
Cuando finaliza el programa todo el espacio reservado queda libre.
Tamao de almacenamiento
28
Definicin de puntero
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)
29
Memoria
Declaracin de variables
Numero=43 punt=00003
Cuando un puntero tiene la direccin de una variable se dice que ese puntero
apunta a esa variable. La declaracin de un puntero depende del tipo de dato al
que queramos apuntar. En general, la declaracin es: tipo_de_dato
*nombre_del_puntero
30
31
programacin estructurada
programacin modular
programacin orientada a objetos (POO)
programacin declarativa
Compilacin
El programa escrito en un lenguaje de programacin (fcilmente comprensible
por el programador) es llamado programa fuente y no se puede ejecutar
directamente en una computadora. La opcin ms comn es compilar el programa
obteniendo un mdulo objeto, aunque tambin puede ejecutarse en forma ms
directa a travs de un intrprete informtico.
El cdigo fuente del programa se debe someter a un proceso de traduccin para
convertirlo en lenguaje mquina, cdigo ste directamente ejecutable por el
procesador. A este proceso se le llama compilacin.
Normalmente la creacin de un programa ejecutable (un tpico.exe para Microsoft
Windows o DOS) conlleva dos pasos. El primer paso se llama compilacin
(propiamente dicho) y traduce el cdigo fuente escrito en un lenguaje de
programacin almacenado en un archivo a cdigo en bajo nivel (normalmente en
cdigo objeto, no directamente a lenguaje mquina). El
segundo paso se llama enlazado en el cual se enlaza el cdigo de bajo nivel
generado de todos los ficheros y subprogramas que se han mandado compilar y
se aade el cdigo de las funciones que hay en las bibliotecas del compilador para
que el ejecutable pueda comunicarse directamente con el sistema operativo,
32
}
/* Ahora podemos llamar de forma segura a foo()
ya que $haceralgo se evalu como verdadero */
if ($haceralgo) foo();
function bar()
{
echo "Existo desde el momento inmediato que comenz el programa.\n";
}
?>
35
Ejemplo #5
#include <iostream.h>
#include <stdlib.h>
double square(double numero);
/* Prototipo de la funcion*/
int main()
{
/* Este programa es solo un ejemplo de la definicion y uso
de una funcion definida por el programador*/
double x,y,z;
cin>>x>>y;
z = square(x);
z = z * y;
/* Llamado a la funcion*/
36
cout<<"\n";
cout<<z;
cout<<"\n";
system("PAUSE");
return 0;
}
/* Esta funcion calcula el cuadrado de un numero*/
double square(double numero)
{
double cuadrado;
cuadrado = numero * numero;
return cuadrado;
}
Bibliografa
http://www.scribd.com/doc/75420482/UNIDAD-6
https://sites.google.com/site/algoritmosgonzalezsamaniego/unidad-6-funciones
https://docs.google.com/viewer?
a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxwcm9ncmFtYWNpb25lZGdhcnp1
bmlnYXxneDo0MWI4YzQ1NDQyNWU2MWE1
https://sites.google.com/site/algoritmosy/unidad
37
https://docs.google.com/viewer?
a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxjYXJsb3NwYWxtZXJpbjIwfGd4Oj
M0NjdhNzg5MDY2YjMwMDU
http://lenguajecmasmas.wordpress.com/2007/10/01/creacion-de-funcionesdefinidad-por-el-usuario/
http://www.php.net/manual/es/functions.user-defined.php
38