You are on page 1of 6

Fundamentos de Informtica

2005-2006
Laboratorio 10:
Bucles: funciones y procedimientos

Programa de demostracin del uso de las sentencias repetitivas
Interfaz:
Figura 1. Objetos presentes en la interfaz: botones caja de dibujo
Funcionamiento general:
1! "ada ejercicio tendr un bot#n de ejecuci#n propio $cmd%j1& cmd%j2& !!!& cmd%j5'!
2! (l )acer clic sobre cada bot#n& borraremos inicialmente el contenido de la caja de
dibujo $*icture+o,' del resultado& pctRes! -tilizaremos para ello la funci#n ls
$pct.es!"ls'!
/! (l )acer clic en el bot#n !alir& el programa finalizar"!
0! 1e proporciona un modelo de pro2rama ejecutable para clarificar los enunciados!
#jercicio 1: invertir n$mero positivo no terminado en % &resolucin'
Funcionamiento:
Llamaremos cmd#j1 al bot#n asociado al ejercicio 1! "uando el usuario pulse el bot#n
eti3uetado 41: Invertir& el pro2rama pedir un n5mero positi6o 3ue no termine en 0 mediante
una instrucci#n InputBox mostrar en la caja de dibujo $PictureBox' mediante una sentencia
Print $pct.es!*rint' este mismo n5mero in6ertido& tal como se ejemplifica en la Fi2ura 1!
1 de 6
(bjetivos:
)ise*o de dia2ramas de flujo con funciones procedimientos
odificacin de funciones procedimientos en 7isual +asic
Llamada a subpro2ramas propias del sistema!
Fundamentos de Informtica
2005-2006
Laboratorio 10:
Bucles: funciones y procedimientos

+lgoritmo:
Figura ,. 8ia2rama de flujo del ejercicio 1
Figura -. 8ia2rama de flujo de la funci#n In6ertir9umero del ejercicio 1
Pasos a seguir:
1! "rearemos los objetos del tipo forma mostrados en la Fi2ura 1! :uardaremos todo!
2 de 6
#j1
num: entero
in6: entero
#scribe
num ; < in6ertido es < ; in6
Fin
in6 = Invertir.umero$num'
#scribe <Introduce un nmero<
/ee num
Invertir.umero
s0
num: entero entero
in6: entero
di2: entero
in6 = 0
num >
0
di2 = num ?od 10
in6 = in6 @ 10 ; di2
num = num A 10
no
In6ertir9umero = in6
Fin
Fundamentos de Informtica
2005-2006
Laboratorio 10:
Bucles: funciones y procedimientos

2! (Badir el c#di2o a los e6entos& es decir& la car2a del formulario el clic sobre los botones:
Cdigo del botn 1: Invertir: es el procedimiento o subprograma asociado al
evento clic, como hemos venido haciendo. Ntese que llama a la funcin
InvertirNumero.
Private Sub cmdEj1_Click()
Dim num As Integer
Dim inv As Integer
pctResCls
num ! Input"#$(%Intr#duce un n&mer# p#sitiv# 'ue n# termine en (%)
inv ! Invertir)umer#(num)
pctResPrint num * % invertid# es % * inv
End Sub
Habr que definir igualmente (normalmente a continuacin) la funcin nueva:
Private +uncti#n InvertirNumero(",-al num As Integer) As Integer
Dim dig As Integer
Dim inv As Integer
inv ! (
./ile num 0 (
dig ! num 1#d 1(
inv ! inv 2 1( 3 dig
num ! num 4 1(
.end
InvertirNumero ! inv
End +uncti#n
Cdigo del botn Salir:
Private Sub cmdSalir_Click()
End
End Sub
#jercicio ,: valor absoluto de un n$mero
8iseBa los diagramas de flujo escribe un procedimiento 3ue lea un n5mero calcule su
valor absoluto& mostrando el resultado en el cuadro de dibujo! -tiliza para ello una funcin 3ue
calcule el 6alor absoluto de un n5mero:
Figura 1. "abecera de la funci#n 3ue calcula el 6alor absoluto
/ de 6
2al+bs num: entero
entero
Fundamentos de Informtica
2005-2006
Laboratorio 10:
Bucles: funciones y procedimientos

#jercicio -: n$meros capic$as
8iseBa los diagramas de flujo escribe un procedimiento 3ue lea un n5mero muestra en
el cuadro de dibujo si es capic$a! -tiliza para ello la funcin %s"apicua 3ue llame a la funci#n
In6ertir9umero 6ista en el ejercicio 1!
Figura 3. "abecera de la funci#n 3ue dice si un n5mero es capic5a
#jercicio 1: conversor de euros a pesetas
8iseBa los diagramas de flujo escribe un procedimiento 3ue pida una cantidad en euros
nos muestre su 6alor en pesetas& sabiendo 3ue 1 C son 166&/D6 pesetas!
Figura 4. "abecera de la funci#n 3ue con6ierte euros a pesetas
#jercicio 3: mostrar una fec5a
8iseBa los diagramas de flujo escribe el procedimiento 3ue pida un d0a& mes a*o
$mediante tres llamadas a la funci#n Input+o,' muestre la cadena de la fec5a con el si2uiente
formato: da de mes de ao& por ejemplo 421 de Eunio de 2006F! *ara obtener la cadena del mes
utilizar una funci#n especGfica "adena?es! %sta funci#n no 6erifica si el dGa& mes aBo se
corresponden con una fec)a correcta& por ejemplo: 40 de 9o-mes de -12/F!
Figura 6. "abecera de la funci#n 3ue obtiene la cadena de una fec5a
Figura 7. "abecera de la funci#n 3ue obtiene la cadena de un mes
0 de 6
#sapicua num: entero
booleano
#urosPtas num: doble
doble
adenaFec5a
dia: entero
mes: entero
aBo: entero
cadena
adena8es mes: entero
cadena
Fundamentos de Informtica
2005-2006
Laboratorio 10:
Bucles: funciones y procedimientos

#jercicio 4: mostrar la fec5a del sistema
8iseBa los diagramas de flujo escribe un procedimiento 3ue muestre la fec)a del sistema!
*ara ello )ar uso de las funciones del sistema 3ue se estimen necesarias de la tabla 1!
Figura 9. "abecera de la funci#n 3ue obtiene la cadena de la fec)a del sistema
5 de 6
ad:oy cadena
Fundamentos de Informtica
2005-2006
Laboratorio 10:
Bucles: funciones y procedimientos

Sqr (ByVal num As Double) As Double
.aGz cuadrada de num
Fix (ByVal num As Double) As Integer
*arte entera del num
Int (ByVal num As Double) As Long
*arte entera del num& ajustndolo a la baja
Rnd (5ByVal num As Double6) As Double
95mero aleatorio 0 Rnd H 1
Randomize (5ByVal num As Double6)
"ambia el 6alor de la semilla
Mid (ByVal cad As String7 ByVal ini As Long7
5ByVal lon As Long6) As String
1ubcadena desde ini )asta la lon2itud indicada
Rigt (ByVal str As String7 ByVal len As
Integer)
Le!t(ByVal str As String7ByVal len As
Integer)
1ubcadena con el n5mero de caracteres indicado en
len empezando por la iz3uierda o derec)a
Len (ByVal exp As 8Boolean9Double9Integer9
Long9Single9String:) As Integer
Lon2itud de exp
Instr (ByVal pos As Integer7 ByVal Str1 As
String7 ByVal Str2 As String) As Integer
*osici#n de la primera ocurrencia de Str2 en la
cadena Str1& a partir de la posici#n pos!
Str (ByVal num As Double) As String
"on6ierte num en cadena! 1uele dejar un espacio en
blanco en la parte iz3uierda de la cadena!
Val (ByVal exp As String) As Double
"on6ierte la exp en n5mero! La con6ersi#n termina
cuando encuentra el primer carcter no numIrico!
"#ase (ByVal exp As String) As String
L#ase (ByVal exp As String) As String
"on6ierte la exp a ?a5sculas o ?in5sculas!
Ltrim (ByVal exp As String) As String
Rtrim (ByVal exp As String) As String
$rim (ByVal exp As String) As String
"adena sin espacios en blanco por la iz3uierda &
derec)a o cual3uier blanco!
String (ByVal num As Integer7 ByVal exp As
String) As String
"adena& con num 6eces el contenido de exp
Bee% ()
1aca un sonido
Date () As Date
Fec)a actual del sistema 88J??J((((
Day (ByVal dat As Date) As Integer
8Ga de una fec)a
Mont (ByVal dat As Date) As Integer
?es de una fec)a
&ear (ByVal dat As Date) As Integer
(Bo de una fec)a
$ime () As String
Kora del sistema KK:??:11
$imer () As String
Kora en forma de se2undos milise2undos
11111&??
Sgn (ByVal num As Double9Long)
1i2no de num como 1 o -1
Tabla 1. Lista de funciones tpicas de Visual Basic
6 de 6

You might also like