VBParte4 - Gobierno de Canarias

Anuncio
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Estructura para la toma de decisiones
Los procedimientos de Visual Basic pueden probar condiciones y, dependiendo de
los resultados, realizar diferentes operaciones. Entre las estructuras de decisión
que acepta Visual Basic se incluyen las siguientes:
™ If...Then
ƒ
ƒ
If condición Then Sentencias
If condición Then
Sentencias
End If
™ If...Then...Else
If condición1 Then
[bloque de sentencias 1]
Else
…
[bloque de sentencias n]]
End If
™ If...Then...ElseIf…Then
If condición1 Then
[bloque de sentencias 1]
Elseif condición2 Then
[bloque de sentencias 2]
…
Else
[bloque de sentencias n]]
End If
™ La estructura Select Case funciona con una única expresión de prueba que se
evalúa una vez solamente, al principio de la estructura. Visual Basic compara el
resultado de esta expresión con los valores de cada Case de la estructura. Si hay
una coincidencia, ejecuta el bloque de sentencias asociado a ese Case:
Selec Case expresión_prueba
Case lista_expresiones1
[bloque de sentencias 1]
….
[Case Else
[bloque de sentencias n]]
End Select
‘Si no es ninguna de las anteriores
La lista de expresiones asociada a cada Case en esta estructura estará separada por
comas y podrá tener alguno de los siguientes formatos:
☺ Expresión.
☺ ExpresiónMenor To ExpresiónMayor.
☺ Is OperadorComparación Expresión.
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Práctica estructuras de decisiones
1. Crear un nuevo proyecto de tipo consola denominado “TomaDecisiones”.
a. Pedir un número por pantalla. Si el número introducido es igual a 5
incrementarlo en 10 y mostrarlo. En caso contrario mostrar 777.
b. Pedir un número por pantalla. Si el número es igual a 5 incrementarlo en
10; si es mayor que 100 sumarle 200; si es menor que 1 mostrar -8 y en
caso contrario mostrar 777.
c. Pedir un número por pantalla. Si el número es 5, mostrarlo. Si es 120 o 250
indicar que el valor puede ser cualquiera de estos dos números; Si está
entre 3000 y 4000 mostrar el mensaje de que el número está comprendido
entre 3000 y 4000; si es menor que 10, mostrar el mensaje de que el
número es menor de 10. Si no se cumplen ninguna de las condiciones
previas mostrar el número tal como el usuario lo ha introducido.
Estructuras repetitivas
Las estructuras de repetición o bucle permiten ejecutar una o más líneas de código
repetidamente. Las estructuras de repetición que acepta Visual Basic son:
™ While…End While
Se trata del tipo más sencillo, ejecuta las líneas de código que contiene, mientras
que la expresión situada junto a While devuelva Verdadero.
While condición
Sentencias
End While
™ Do...Loop
Utilizamos el bucle Do para ejecutar un bloque de sentencias un número indefinido
de veces. Hay algunas variantes en la sentencia Do...Loop, pero cada una evalúa
una condición numérica para determinar si continúa la ejecución. Como ocurre con
If...Then, la condición debe ser un valor o una expresión que dé como resultado
False (cero) o True (<> cero). En el siguiente ejemplo de Do...Loop, las
sentencias se ejecutan siempre y cuando condición sea True:
Do While condición
Sentencias
Loop
Otra variante de la instrucción Do...Loop ejecuta las sentencias primero y prueba
la condición después de cada ejecución. Esta variación garantiza al menos una
ejecución de sentencias:
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Do
Sentencias
Loop While condición
Hay otras dos variantes análogas a las dos anteriores, excepto en que repiten el
bucle siempre y cuando condición sea False en vez de True.
Hace el bucle cero o más veces
Do Until condición
Sentencias
Loop
Hace el bucle al menos una vez
Do
Sentencias
Loop Until condición
™ For...Next
Cuando se sabe que se va a ejecutar las sentencias un número determinado de
veces, es mejor elegir el bucle For...Next. A diferencia del bucle Do, el bucle For
utiliza una variable llamada contador que incrementa o reduce su valor en cada
repetición del bucle. La sintaxis es la siguiente:
For contador = iniciar To finalizar [Step incremento]
Sentencias
Next [contador]
Los argumentos contador, iniciar, finalizar e incremento son todos numéricos.
El argumento incremento puede ser positivo o negativo. Si incremento es positivo, iniciar
debe ser menor o igual que finalizar o no se ejecutarán las sentencias del bucle. Si
incremento es negativo, iniciar debe ser mayor o igual que finalizar para que se ejecute
el cuerpo del bucle. Si no se establece Step, el valor predeterminado de incremento es 1.
™ For Each...Next
El bucle For Each...Next es similar al bucle For...Next, pero repite un grupo de
sentencia por cada elemento de una colección de objetos o de una matriz en vez de
repetir las sentencias un número especificado de veces. Esto resulta especialmente
útil si no se sabe cuántos elementos hay en la colección.
For Each elemento In grupo
Sentencias
Next elemento
Salir de una estructura de control
La instrucción Exit permite salir directamente de un bucle For o de un bucle Do. La
sintaxis de la sentencia Exit es sencilla: Exit For puede aparecer tantas veces
como sea necesario dentro de un bucle For y Exit Do puede aparecer tantas veces
como sea necesario dentro de un bucle Do.
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Práctica Estructuras de Repetición
1. Crear un nuevo proyecto denominado “EstructurasRepeticion”.
2. En cada uno de los ejercicios que se piden a continuación hemos de utilizar una
estructura de repetición diferente.
a. Pedir un número por pantalla y a continuación mostrar los números que
van desde el 1 hasta el número introducido.
b. Pedir un número por pantalla, mientras el número no sea 200,
seguiremos pidiéndole al usuario que introduzca un número.
c. Pedir una palabra por pantalla, mientras la palabra no sea coche,
seguiremos pidiéndole al usuario que introduzca una palabra.
d. Pedir un número por pantalla, mientras el número no sea 200 y el
usuario lleve menos de 5 intentos, mostraremos el número introducido y
el número de intento. Al llegar a 5 intentos, aunque el usuario no haya
introducido el número 200 terminaremos la ejecución del bucle e
indicaremos a través de mensajes de consola que la ejecución ha
terminado.
e. Pedir un número por pantalla, si el número es mayor que 400 terminar
la ejecución del bucle y mostrarlo. En caso contrario seguimos pidiendo
un número por pantalla.
3. En los ejercicios que se piden a continuación hemos de utilizar bucles for.
a. Crear un bucle que vaya del 1 al 10 y muestre el contador en cada
iteración.
b. Idem que el anterior pero al llegar al valor 7 del contador terminar el
bucle.
c. Pedir un número por pantalla que será el límite superior de nuestro
bucle. A continuación ejecutar un bucle for que vaya desde el 1 hasta el
límite que haya introducido el usuario con un paso o incremento de 4.
Mostrar en cada iteración el valor del contador.
4. Crear una colección de colores usando arrays que contendrá los colores “azul”,
“verde”, “rojo”, “amarillo” y “blanco”. Recorrer el array usando For each .. in y
mostrar el contenido del elemento seleccionado en cada momento.
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Organización del proyecto en ficheros y módulos de código
La plataforma .NET Framework nos permite una gran flexibilidad para ordenar el
código de nuestro proyecto, que debemos organizar en contenedores físicos y lógicos
de código. Un contenedor físico no es otra cosa que un fichero con extensión .VB;
estos ficheros son los que la plataforma reconoce como ficheros con código VB.NET.
Podemos tener uno o varios dentro de un proyecto. Un contenedor lógico es aquel
elemento en el entorno de .NET que nos permite escribir en su interior declaraciones y
procedimientos, que serán accesibles desde otros elementos dentro del proyecto o
ensamblado actual, o bien desde otros ensamblados, en función de su ámbito o
accesibilidad.
El CLR dispone de varios tipos de contenedores lógicos, entre los que se encuentran los
módulos, clases, interfaces, estructuras, etc. Los espacios de nombres (namespaces)
son un tipo de contenedor lógico especial, cuya misión consiste en albergar al resto de
contenedores lógicos; una especie de metacontenedor.
Agregar un nuevo módulo: Opción Proyecto Î Agregar módulo
Crear un nuevo módulo dentro de un fichero existente: En esta situación
solamente debemos escribir la declaración del módulo dentro del fichero de código,
utilizando las palabras clave Module...End Module. Debemos tener en cuenta que no es
posible anidar módulos, es decir, no podemos declarar un módulo dentro de la
declaración de un módulo ya existente.
Cambiar el nombre de un fichero de código: Si no queremos que el nombre de un
fichero de código sea igual que alguno de los módulos que contiene, debemos abrir la
ventana Explorador de soluciones, hacer clic derecho sobre el nombre del fichero de
código, y elegir la opción Cambiar nombre.
Añadir al proyecto un fichero de código: Opción Proyecto Î Agregar elemento
existente.
Excluir y eliminar ficheros de un proyecto: Si no queremos que un determinado
fichero (con el módulo o módulos que incluye) siga formando parte del proyecto,
podemos separarlo del mismo abriendo la ventana Explorador de soluciones, y
haciendo clic derecho sobre el nombre del procedimiento, elegir la opción de menú
Excluir del proyecto. Esta acción quita el fichero del proyecto pero no lo elimina
físicamente.
Para eliminar físicamente el fichero de código, debemos realizar la misma operación
descrita antes, pero seleccionando en este caso en el menú contextual, la opción
Eliminar.
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Alcance de los procedimientos
Los procedimientos (funciones) pueden declararse como Private o Public y la sintaxis
sería: ModificadorÁmbito Sub | Function NombreProcedimiento([ListaParámetros])
Los procedimientos Private sólo pueden llamarlos otros procedimientos
ubicados en ese formulario, módulo o clase. En el siguiente código se muestra
como declarar un procedimiento privado:
Los procedimientos Public de un formulario se convierten en métodos del
formulario. Se puede llamar al procedimiento desde cualquier punto de la
aplicación especificando el nombre del formulario y el nombre del
procedimiento. Los procedimientos públicos de un módulo están disponibles en
toda la aplicación y se les puede llamar con sólo especificar el nombre del
procedimiento.
Es posible escribir varios procedimientos con el mismo nombre y ámbito
público en distintos módulos. Cuando esto ocurra, al llamar al procedimiento se
ejecutará por defecto el que más próximo esté desde el módulo que ha sido
llamado. En el caso de que necesitemos ejecutar el procedimiento que se
encuentre en otro módulo deberemos hacer la llamada escribiendo el nombre
del módulo, un punto, y el nombre del procedimiento.
Práctica alcance de los procedimientos
1. Analiza el siguiente código e indica si existen errores de ámbito de
procedimientos o si por el contrario todo funciona correctamente. Implementar
la solución aportada (AlcanceProcedimientos).
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Ámbito de las variables
El ámbito y la visibilidad de una variable determinan dónde y cuándo se
reconoce. Asimismo, la ubicación en la que se declara la variable (un
procedimiento, un formulario o un módulo) y el modo cómo se realiza la
declaración (Public o Private) determina el ámbito de la variable.
Variables en un procedimiento
Las variables declaradas en los procedimientos sólo se reconocen dentro del
procedimiento en el que se declaran.
Variables en un bloque
Una variable declarada dentro de una estructura de control se dice que tiene
ámbito local a nivel de bloque, siendo accesible sólo dentro del código que está
contenido en la estructura.
Variables en un módulo
Las variables declaradas en la sección de declaraciones generales de un módulo
pueden ser Private o Public.
Las variables Private están disponibles sólo para el módulo.
Las variables Public están disponibles para todo el proyecto. Puede tener
acceso a una variable pública del módulo especificando únicamente el nombre
de la misma.
Public nTest As Integer
'Declarar variable en módulo
nTest = 5
'Utilizar variable fuera del módulo
‘Debemos indicar explícitamente el módulo si utilizamos el mismo nombre
‘ de variable en varios módulos
module1.giTest = 5
Duración o periodo de vida de las variables
La duración de una variable se refiere al tiempo que dicha variable está
disponible. Dicha duración viene determinada por la ubicación en la que se ha
declarado (procedimiento o módulo) y cómo se ha realizado la declaración
(Static o no Static, que veremos a continuación).
☺ Ámbito de bloque. El periodo de vida de estas variables se desarrolla desde el
momento en que son declaradas dentro del bloque y hasta que dicho bloque
finaliza.
☺ Ámbito de procedimiento. Para estas variables, su periodo de vida está
comprendido entre el momento en que son declaradas y hasta que la ejecución
del procedimiento termina.
☺ Ámbito a nivel de módulo y proyecto. En este caso, el periodo de vida de la
variable va desde el comienzo de la ejecución de la aplicación y hasta que esta
termina.
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Variables Static
Este tipo de variables se caracterizan por el hecho de que retienen su valor al finalizar
el procedimiento en el que han sido declaradas. Se deben declarar utilizando la palabra
clave Static, pudiendo opcionalmente omitir la palabra clave Dim.
Cuando declaramos una variable normal dentro de un procedimiento, cada vez que
llamamos al procedimiento, dicha variable es inicializada.
Las variables Static por lo tanto, tienen un periodo de vida que abarca todo el tiempo
de ejecución del programa, mientras que su ámbito es a nivel de procedimiento o
bloque, ya que también pueden crearse dentro de una estructura de control.
Práctica Variables Static
1. Llevar a cabo la implementación de los siguientes códigos y comprobar las
semejanzas y diferencias. Se denominarán Variables y VariablesStatic.
Código 1
Código 2
2. Se debe adjuntar a la práctica un fichero donde se indiquen los comentarios.
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Convención de notación
Las convenciones de notación consisten en una serie de normas no oficiales a la hora
de declarar elementos en el código, que facilitan su interpretación y mantenimiento. Si
bien esto no es inicialmente necesario, ni la herramienta de programación obliga a ello,
en la práctica se ha demostrado que una serie de normas a la hora de escribir el
código redundan en una mayor velocidad de desarrollo y facilidad de mantenimiento de
la aplicación. Siendo útil no sólo en grupos de trabajo, sino también para
programadores independientes.
Variables: <Ámbito><Tipo de Dato><Nombre>
Posibles valores para el Ámbito
Posibles valores para el tipo de datos
Por ejemplo, para declarar una variable local y de tipo integer usaría el siguiente
nombre: liCodAcceso (l = local; i = integer; CodAcceso = Nombre)
Constantes: En este caso seguiremos el mismo formato de notación que para las
variables en lo que respecta al ámbito y tipo de dato. El cuerpo de la constante sin
embargo, deberemos escribirlo en mayúsculas, y separar las distintas palabras
utilizando el carácter de guión bajo.
Por ejemplo, para declarar una constante a nivel de proyecto y de tipo String usaría el
siguiente nombre: psCOLOR_INICIAL
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Funciones de comprobación del tipo de datos
☺ IsNumeric():Esta función devuelve un valor lógico indicando si la expresión
que pasamos como parámetro contiene un número o una cadena que pueda ser
convertida a número.
☺ IsDate():Esta función devuelve un valor lógico indicando si la expresión que
pasamos como parámetro contiene una fecha o una cadena que pueda ser
convertida a fecha.
☺ IsArray( ). Esta función devuelve un valor lógico indicando si la expresión que
pasamos como parámetro contiene un array.
Práctica Comprobación Tipos de Datos
1.
2.
3.
4.
5.
Crear un nuevo proyecto denominado “ComprobacionTipoDatos”.
En la declaración de las variables se usarán los convenios de notación.
Se pedirá por pantalla la introducción de un dato numérico.
a. Si el dato en numérico, se incrementará en 100 y se mostrará.
b. Si no es numérico, se mostrará un mensaje indicándolo.
Se pedirá de nuevo otro dato por pantalla, en este caso, una fecha.
a. Si la información introducida corresponde con una fecha, se mostrará.
b. En caso contrario, se indicará que el valor introducido no es una fecha.
Crearemos un nuevo procedimiento dentro de nuestro módulo denominado Verificar. Su
cabecera sería la siguiente: Public Sub Verificar(ByVal ValorPasado As Object)
a. En este procedimiento se comprobará si el campo “ValorPasado” es de tipo Array
mostrándose un mensaje diciendo si es un array o no.
b. En el procedimiento principal, declararemos una variable de tipo Array, que
contendrá tres colores y llamaremos al procedimiento Verificar, pasándole esta
variable. A continuación, volveremos a llamar al procedimiento Verificar,
pasándole como parámetro la siguiente cadena: “pepe”. ¿Qué ocurre?
Funciones del lenguaje
Numéricas
☺ Int(Número), Fix(Número). Estas funciones devuelven la parte entera del
parámetro Número. La diferencia entre ambas reside en que cuando el
parámetro pasado es negativo, Int() devuelve el entero negativo menor o igual
que Número, mientras que Fix( ) devuelve el entero negativo mayor o igual que
Número.
☺ Randomize([Número]). Inicializa el generador de números aleatorios, que
utilizaremos posteriormente en la función Rnd( ). Opcionalmente recibe un
número como parámetro que sirve al generador como valor inicial o semilla para
la creación de estos números.
☺ Rnd([Número]). Devuelve un número aleatorio de tipo Single, que será menor
que 1, pero mayor o igual a cero.
Si necesitamos un número aleatorio
comprendido entre dos números enteros usaremos la siguiente fórmula:
Int((LímiteSuperior - LímiteInferior + 1) * Rnd() + LímiteInferior).
Práctica Funciones Numéricas
1.
2.
3.
Crear un nuevo proyecto denominado “FuncionesNuméricas”.
Pedir un número decimal por pantalla y mostrar el resultado de las funciones Int y Fix.
¿Qué ocurre si introducimos el número 66.87? ¿y su negativo?
Se han de generar y mostrar 10 número aleatorios comprendidos entre el 7 y el 12.
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Cadenas
☺ Len(Cadena). Devuelve un número con la longitud de la cadena pasada como
parámetro.
☺ Space(Número). Devuelve una cadena de espacios en blanco, de una longitud
igual al número pasado como parámetro.
☺ InStr([Comienzo, ]CadenaBuscar, CadenaBuscada [, TipoComparación]).
Busca dentro de CadenaBuscar la cadena contenida en el parámetro
CadenaBuscada. Opcionalmente podemos establecer en Comienzo, la posición
en la que comienza la búsqueda y el tipo de comparación (texto, binaria) en el
parámetro TipoComparación.
☺ Left(Cadena, Longitud). Esta función extrae, comenzando por la parte
izquierda de Cadena, una subcadena de Longitud de caracteres.
☺ Right(Cadena, Longitud). Esta función extrae, comenzando por la parte
derecha de Cadena, una subcadena de Longitud de caracteres.
☺ Mid(Cadena, Inicio [, Longitud]). Extrae de Cadena, comenzando en la
posición Inicio, una subcadena. Opcionalmente podemos utilizar el parámetro
Longitud, para indicar el largo de la subcadena. En caso de no utilizar este
último parámetro, la subcadena se obtendrá hasta el final.
☺ Replace(Cadena,CadOrigen,CadNueva [,Inicio] [,Sustituciones] [,TipoComparación])
Esta función toma la cadena situada en el primer parámetro y busca la cadena
CadOrigen, sustituyendo las ocurrencias encontradas por la cadena CadNueva.
Opcionalmente, el parámetro Inicio especifica la posición en la que comenzará
la sustitución; el parámetro Sustituciones indica el número de sustituciones a
realizar; y TipoComparación indica como se realizarán las comparaciones
(texto, binaria).
☺ LTrim(Cadena), RTrim(Cadena), Trim(Cadena). Estas funciones eliminan de
una cadena, los espacios en blanco a la izquierda en el caso de LTrim( ); los
espacios en blanco a la derecha en el caso de RTrim(); o los espacios en blanco
a ambos lados Trim( ).
☺ UCase(Cadena), LCase(Cadena). Estas funciones, convierten la cadena
pasada como parámetro a mayúsculas y minúsculas respectivamente.
☺ Format(Expresión [,CadenaFormato] [,PrimerDíaSemana] [,PrimeraSemanaAño]).
Formatea la expresión pasada en el primer parámetro, empleando de forma
opcional una cadena para especificar el tipo de formateo a realizar. Si el valor a
formatear es una fecha, podemos utilizar los dos últimos parámetros para
especificar el primer día de la semana y la primera semana del año; estos dos
últimos
parámetros
son
enumeraciones,
cuyos
valores
aparecen
automáticamente al asignar su valor.
Como cadena de formato, podemos utilizar los nombres predefinidos de
formato, o una serie de caracteres especiales, tanto para formateo de números
como de fechas. En lo que respecta a los nombres predefinidos, a continuación
incluyo una tabla en la que se muestran los más usados:
Nombre formato
Descripción
General Date
Short Date
Short Time
Standard
Muestra una fecha con el formato largo.
Muestra una fecha con el formato corto.
Muestra un valor horario con el formato corto.
Muestra un número utilizando los caracteres de separador de miles
y decimales.
Muestra un número con los caracteres correspondientes a la
moneda establecida en la configuración regional del sistema.
Muestra un número multiplicado por 100 y con el carácter de %.
Currency
Percent
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
La siguiente tabla muestra la notación usada para los caracteres especiales:
Carácter formato
Descripción
:
/
d
dd
ddd
dddd
M
MM
MMM
MMMM
yy
Yyyy
H
HH
m
mm
s
ss
0
#
,
.
Separador de hora
Separador de fecha
Visualiza el número de día sin cero a la izquierda
Visualiza el número de día con cero a la izquierda
Visualiza el nombre del día abreviado
Visualiza el nombre del día completo
Visualiza el número de mes sin cero a la izquierda
Visualiza el número de mes con cero a la izquierda
Visualiza el nombre del mes abreviado
Visualiza el nombre del mes completo
Visualiza el año con 2 cifras
Visualizar el año con 4 cifras
Visualiza la hora sin cero a la izquierda
Visualiza la hora con cero a la izquierda
Visualiza los minutos sin cero a la izquierda
Visualiza los minutos con cero a la izquierda
Visualiza los segundos sin cero a la izquierda
Visualiza los segundos con cero a la izquierda
En valores numéricos, muestra un dígito o 0
En valores numéricos, muestra un dígito o nada
Separador de millar
Separador decimal
☺ StrConv(Cadena, TipoConversión [,IDLocal]). Realiza una conversión de la
cadena pasada como parámetro, utilizando algunos de los valores de la
enumeración TipoConversión. Opcionalmente podemos pasar también un valor
correspondiente al identificador local del sistema.
Práctica Funciones Cadenas
1. Crear un nuevo proyecto denominado “FuncionesCadenas”.
2. Pedir al usuario que introduzca una cadena por pantalla y a continuación
mostrar el tamaño de la cadena por pantalla.
3. Pedir al usuario que introduzca un número de espacios en blanco y crear una
cadena de ese tamaño. Mostrarla por pantalla, indicando donde comienza y
donde acaba con alguna marca concatenada.
4. Pedir al usuario que introduzca una cadena y la subcadena a buscar en ella. Se
mostrará por pantalla la posición de comienzo de la cadena encontrada.
5. Pedir al usuario que introduzca una palabra.
a. Mostrar los 3 primeros caracteres.
b. Mostrar los 3 últimos caracteres.
c. Mostrar los caracteres que van desde la posición número 2 a la 4.
d. Mostrarla en mayúscula y minúscula.
6. Imaginamos que tenemos la siguiente cadena almacenada en una variable:
“Este coche es especial”. Tenemos que sustituir todas las apariciones de “es”
por “xx” y mostrar la nueva cadena por pantalla.
7. Pedir al usuario que introduzca la fecha de hoy, a continuación la mostraremos
en los formatos largo, corto y “<nombre del día> <día>/<mes corto>/<año 4
cifras>”.
8. Pedir al usuario que introduzca la hora y los minutos, a continuación la
mostraremos en el formato corto y “<hora 2 cifras>:<minutos 2 cifras>”.
9. Pedir al usuario que introduzca un número, lo mostraremos en los formatos
estándar, moneda, porcentaje y usando los separadores de millares y
decimales.
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Fecha y Hora
☺ Now( ). Devuelve un valor de tipo Date con la fecha y hora del sistema.
☺ DateAdd(TipoIntervalo, ValorIntervalo, Fecha). Suma o resta a una fecha,
un intervalo determinado por el parámetro TipoIntervalo. El intervalo a utilizar
pueden ser días, semanas, meses, etc. Para determinar si se realiza una suma o
resta, ValorIntervalo deberá ser positivo o negativo respectivamente.
☺ DateDiff(TipoIntervalo,
FechaPrimera,
FechaSegunda).
Calcula
la
diferencia existente entre dos fechas. En función de TipoIntervalo, la diferencia
calculada serán días, horas, meses, años, etc.
☺ DatePart(TipoIntervalo, Fecha). Extrae la parte de una fecha indicada en
TipoIntervalo. Podemos obtener, el día, mes, año, día de la semana, etc
TipoIntervalo será de tipo DateInterval y puede contener valores diversos. Por
ejemplo: DateInterval.Month, DateInterval.Day, DateInterval.Year, etc.
Práctica Funciones Fecha y Hora
1. Crear un nuevo proyecto denominado “FuncionesFechaHora”.
2. Mostrar por pantalla lo siguiente:
a. La fecha actual más dos meses.
b. La diferencia entre la fecha actual y la mostrada en el apartado a.
c. Mostrar el año de la fecha actual.
Crear múltiples entradas al programa mediante distintos Main()
Cuando creamos una aplicación de tipo consola, por defecto se crea un módulo con el
nombre Module1, que contiene un Main() vacío, y en las propiedades del proyecto, el
objeto inicial es dicho Module1. Si añadimos nuevos módulos al proyecto, bien en
ficheros separados, o agrupando varios módulos en un mismo fichero, podemos
escribir un procedimiento Main( ) para cada uno de los módulos de nuestro proyecto.
Por defecto, y ya que así se establece al crear el proyecto, la ejecución comenzará por
el Main( ) del módulo Module1. Pero podemos hacer que el procedimiento de inicio sea
el Main( ) que está en el módulo Module2, abriendo la ventana de propiedades del
proyecto y seleccionando como objeto inicial dicho módulo.
Práctica Múltiples entradas al programa
1. Crear un nuevo proyecto denominado “MultiplesMain”.
2. Crearemos dos módulos dentro del mismo fichero. El primero se llamará
Module1 y el segundo Module2. En cada uno de ellos tendremos una función
main distinta.
a. En la función Main del Module1 mostraremos por pantalla: Se está
ejecutando el main del Module1.
b. En la función Main del Module2 mostraremos por pantalla: Se está
ejecutando el main del Module2.
3. Ejecutaremos nuestro proyecto a ver que es lo que ocurre. ¿Cuál de los dos
Main ejecuta?
4. A continuación, modificaremos las propiedades del proyecto para que sea la
función main del segundo módulo la que se ejecute.
Desarrollo de Aplicaciones Informáticas – Diseño y realización de servicios de presentación en entornos gráficos
Cómo se acopla el diseño al proceso de la programación
Cuando se crea un programa es importante tomar un enfoque estructurado. Se deben
cumplir ciertos pasos en un cierto orden:
1. Planificar las tareas del programa (cómo debe funcionar)
2. Diseñar la interfaz de usuario (qué aspecto debe tener)
3. Escribir el código del programa (implementar los pasos 1 y 2)
4. Probar y depurar el programa
5. Documentar y distribuir el programa.
Diseño de programas en una palabra
Cuando se empieza un nuevo proyecto, resulta tentador sentarse y empezar a escribir
código. Un buen programa empieza por un diseño sólido. Puede que no sea necesario
disponer de un organigrama en profundidad para proyectos de pequeña escala, pero
por otro lado siempre resulta conveniente empezar por un plan. El proceso de diseño
deberá producir los resultados siguientes:
1. Una lista concisa de las tareas que deben ser acometidas por el programa
2. Plazos de finalización de tareas determinadas.
3. Clarificación de la dependencia de una de las partes del programa a otra.
4. Los criterios de prueba del programa.
Descargar