Lectura 1 | Pràctica1 | Exemple1 | Pràctica2 | Exemple2 | Pràctica3 | Exemple3 | Model imprimible en PDF |
Objectius
En acabar la pràctica l'alumnat ha de ser capaç de :
Leer y recordar |
Las estructuras de bucle permiten ejecutar un grupo de ordenes de forma repetitiva hasta (until) o mientras (While) que una condición sea falsa o cierta o bien se repite un numero fijo de veces o una cantidad de veces a determinar por el usuario. En VBScript hay cuatro tipos de bucles; a continuación se describe la sintaxis de cada uno de ellos. La orden intermedia Exit proporciona una salida alternativa del bucle y normalmente se controla mediante una sentencia condicional If...then. Se pueden a hacer muchos niveles de anidamiento. Do [{While | Until} condición ] [Sentencias] [Exit Do] [Sentencias] Loop (El While y el Until en el Do son opcionales) Do [Sentencias] [Exit Do] [Sentencias] Loop [{While | Until} condición ] (El While y el Until en el Do son opcionales)
While condición[Sentencias] [Exit While] [Sentencias] Wend
For contador=incio To final [Step paso] [Sentencias] [Exit For] [Sentencias] Next
Sintaxis InputBox(indicador[, título][, defecto][, xpos][, ypos][, fichero de ayuda, contexto]) Hace que aparezca en pantalla una ventanita en la cual el usuario puede introducir una frase o número que después el programa puede utilizar. Es decir permite que usuario introduzca datos al programa. Indicador es una frase que indica al usuario lo que tiene que hacer. Título aparece en la parte superior de la ventanilla después de VBScript. defecto es el valor que se tomará si el usuario no entra nada. Xpos y Ypos indica la posición de la ventanilla en la pantalla. También es posible tener un fichero de ayuda y decirle donde está mediante el contexto.
InStr([comienzo, ]cadena1, cadena[, tipo de comparación]) Devuelve la posición de la primera ocurrencia de la cadena 2 dentro de la cadena1. El parámetro comienzo indica a partir de que carácter se empieza a hacer las comparaciones (si se omite se comienza desde el primer carácter). La comparación puede ser 0 o 1 según que se trate de una comparación binaria o bien de una comparación de texto (el valor por omisión es 1). Left (cadena, longitud)Devuelve una subcadena de la cadena dada con la longitud (en caracteres) espcificada y comenzando por el primer carácter de la izquierda. |
Practica |
1 Este programa es un ejemplo de bucle Do Until .... Loop y simula el lanzamiento de un dado.
Copia le siguiente texto y registralo con el nombre vbscript04.htm. Hazlo funcionar con el navegador y observa que aparece una imagen como la de la figura <HTML> <HEAD><TITLE> Bucle Do Until ...Loop </TITLE> <SCRIPT LANGUAGE="VBScript"> Sub LanzarDado() Dim NumObtenido, Resultado, QuieresLanzar, Frase Do Until QuieresLanzar=vbNo NumObtenido=Int(Rnd*6+1) Frase=NumObtenido & " ¿Volver a lanzar?" QuieresLanzar=MsgBox(Frase,vbYesNo) Resultado = Resultado & NumObtenido & "-" Loop Frase="Resultados: " & Resultado hbucle1.style.color="#0000" & Hex(Int(Rnd*240+16)) Hbucle1.InnerText=Frase & "Clic para jugar" End Sub </SCRIPT></HEAD> <BODY > <H2 ID=Hbucle1 OnClick="LanzarDado()"> Lanzamiento de un dado - Clic para comenzar </H2><HR> </BODY></HTML> Preguntas: Qué valores contienen las variables del sistema vbNo, vbYes y vbYesNo. De donde salen dichos valores ( ayuda: Utilizar una ventana de mensajes MsgBox dentro del bucle).
|
Lee y practica |
2. El programa calcula el MCD y el MCM de dos números utilizando el algoritmo de Euclides. Es un ejemplo de bucle Do...Loop Until
Copia le siguiente texto y regístralo con el nombre vbscript04_2.htm. Hazlo funcionar con el navegador y observa que aparece una imagen como la de la figura <HTML><HEAD> <TITLE>MCD y MCM de dos números</TITLE> <SCRIPT LANGUAGE="VBScript"> Sub McdYMcm n=CInt(document.Formulario1.Valor1.value) m=CInt(document.Formulario1.Valor2.value) ' Aplicamos el algoritmo de Euclides a los números n y m. Do r = n Mod m : n = m : m=r Loop Until r = 0 ' Observar que el bucle se ejecuta al menos una vez mcd.InnerText = n x=CInt(document.Formulario1.Valor1.value) y=CInt(document.Formulario1.Valor2.value) x = x*y/n : mcm.InnerText = x End Sub </SCRIPT></HEAD> <Body> <! El Formulario1 consta de dos finestres de text i un botó> <center> <h3> Cálculo del máximo común divisor y mínimo común múltiplo de dos números</h3> <FORM NAME="Formulario1"> <Table border=2> <tr><td>Número1</td><td>Número 2</td> <td> MCD </td> <td> MCM </td> <td> <INPUT TYPE="button" onClick="McdYMcm()" value = "Calcular MCD y MCM"> </tr><tr> <td><INPUT TYPE="text" NAME="Valor1" size=5 value="12"></td> <td><INPUT TYPE="text" NAME="Valor2" size=5 value="42"></td> <td id=mcd> </td><td id=mcm> </td><td>Entrar números y Clicar</td> </tr></table></form> </center> </Body> <HTML>
|
Practica |
3. El siguiente programa hace lo siguiente: permite entrar una frase y una letra y cuenta las veces que la letra aparece en la frase y en que lugares de la frase está situada la letra.
Copia le siguiente texto y regístralo con el nombre vbscript04.htm. Hazlo funcionar con el navegador y observa que aparece una imagen como la de la figura <HTML> <HEAD> <TITLE>¿Cuantas veces aparece un caracter? </TITLE> <Style type ="text/css"> TD {text-align:center} </style> <SCRIPT LANGUAGE="VBScript"> 'Para entrar una secuencia de caracteres o texto Sub EntrarFrase() texto=InputBox("Entrar una frase",,"frase por defecto") frase.InnerText=texto End Sub 'Para entrar la letra a cuantificar Sub EntrarCaracter() caracter=InputBox("Entrar una letra",,"a") letra.InnerText=Left(caracter,1) End Sub ' Cuenta la cantidad veces que se repite una letra y dónde Function ContarLetras() Cadena=frase.InnerText Caracter=letra.InnerText Cuantos = 0 'Inicializa la suma 'evita que entre, si no hay nada que buscar If (IsNull(Cadena) Or IsNull(Caracter) Or Len(Cadena) = 0 Or Len(Caracter)= 0) Then Exit Function Inicio=1 'localizamos la 1ª coincidencia Resultado = InStr(Inicio, Cadena, Caracter) Posiciones ="Caracteres: " 'Bucle que funciona hasta que Resultado es <= 0 Do While Resultado > 0 Posiciones = Posiciones & Resultado & " " Cuantos = Cuantos + 1 Inicio = Resultado + 1 Resultado = InStr(Inicio, Cadena, Caracter) Loop respuesta.InnerText= Cuantos respuesta1.InnerText= Posiciones End Function </SCRIPT></HEAD> <Body><center> <h3> Cálculo de las veces que un caracter aparece en una frase</h3> <FORM> <Table border=2> <tr><td><INPUT TYPE="button" onClick="EntrarFrase()" value="Frase"></td> <td><INPUT TYPE="button" onClick="EntrarCaracter()" value="Letra"> </td>
<td><INPUT TYPE="button" onClick="ContarLetras()" value="¿Cuántas?"></td> <td>¿Dónde están?</td> </tr> <tr> <td id=frase>Esta es la frase por defecto</td> <td id=letra>a</td> <td id=respuesta> </td> <td id=respuesta1> </td> </tr> </table></form></center></Body><HTML>
Ejercicio 3.1 Modifica el programa de manera que marque la letra escogida con otro color dentro de la misma frase.
|