B4A en español - Juan Antonio Villalpando
(BASIC4Android)
-- Tutorial de B4A --
Volver al índice del tutorial
____________________________
56B- Programas básicos II. Multiplicar. Media.
Aquí voy a exponer una serie de programa básicos y sencillos de entender, posiblemente esta página podría estar en el comienzo del tutorial, pero ha quedado en un lugar más avanzado.
- Tabla de multiplicar.
- Media aritmética.
- Cuenta letras.
__________________________
1.- Tabla de multiplicar.
Escribimos un número y nos realiza la tabla de multiplicar de ese número.
Si el número que introducimos no está comprendido entre el 1 y el 20 nos sale un mensaje de error.
Designer |
|
Mediante el Designer creamos un "Layout" con
Label1 ......Text.... Introduce un número del 1 al 20
EditText1
Button1.... Text... Pulsa
Label2, este Label lo agrandamos bastante como indica la figura de la izquierda.
|
Copia y pega este código en un nuevo proyecto |
Sub Process_Globals
' Juan Antonio Villalpando
' juana1991@yahoo.com
' abril 2013
End Sub
Sub Globals
Dim Label2 As Label
Dim EditText1 As EditText
Dim resultado, multiplicando, multiplicador As Int
Dim todo As String
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout") End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Button1_Click
multiplicando = EditText1.text
If multiplicando > 20 OR multiplicando < 1 Then
Msgbox("El multiplicando no está entre los límites deseados.", "Error")
Else
For multiplicador = 1 To 10
resultado = multiplicando * multiplicador
todo = todo & multiplicando & " X" & multiplicador & " = " & resultado & CRLF
Next
Label2.text = todo
End If
End Sub
|
- Comprobamos si el número está entre los límites:
If multiplicando > 20 OR multiplicando < 1 Then
- En caso que esté entre los límites entra en un bucle For
Desde que multiplicador es 1 Hasta que sea 10
realiza el resultado de multiplicando por multiplicador
guarda en todo el contenido anterior del todo y agrégale multiplicando & " X" & multiplicador & " = " & resultado & CRLF
CRLF significa cambio de línea
Cuando termine de realizar todas las multiplicaciones en todo tendremos todo el proceso.
Presentamos todo en el Label2.
________________________________________________
2.- Media aritmética.
Escribimos números y nos va calculando la media aritmética.
Designer |
|
Mediante el Designer creamos un "Layout" con
Label1 ......Text.... Introduce un número
EditText1
Button1.... Text... Pulsa
Button2.... Text... Borrar todo
Label2
Label3
Label4
Label5
|
Copia y pega este código en un nuevo proyecto |
Sub Process_Globals
' Juan Antonio Villalpando
' juana1991@yahoo.com
' abril 2013
End Sub
Sub Globals
Dim numero, elementos, suma As Int
Dim media As Float
Dim todos As String
Dim EditText1 As EditText
Dim Label2, Label3, Label4, Label5 As Label
numero = 0: elementos = 0: suma = 0
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout")
' Número en la derecha del EditText
EditText1.Gravity = Gravity.RIGHT
' Focus en el EditText
EditText1.RequestFocus
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Button1_Click
If EditText1.Text = "" Then
Msgbox("No has introducido ningún número.", "Error")
Else
numero = EditText1.Text
' Se van acumulando todos los números introducidos
todos = todos & numero & " - "
Label2.Text = todos
elementos = elementos + 1
suma = suma + numero
media = suma / elementos
Label3.Text = "Elementos = " & elementos
Label4.Text = "Suma = " & suma
Label5.Text = "Media = " & Round2(media, 3) ' Con tres decimales.
End If
EditText1.Text = ""
End Sub
Sub Button2_Click
EditText1.Text = ""
elementos = 0
suma = 0
media = 0
todos = ""
Label2.Text = ""
Label3.Text = "Elementos = "
Label4.Text = "Suma = "
Label5.Text = "Media = "
End Sub
|
_______________________
- Comentarios.
- Se pueden poner varias instrucciones en un mismo renglón separado por :
numero = 0: elementos = 0: suma = 0
Label2.Text = "" : Label3.Text = "Elementos = " : Label4.Text = "Suma = " : Label5.Text = "Media = "
- Se puede borrar el contenido de una cadena (String) mediante ""
Label2.Text = ""
- Focus significa el elemento que está preparado para recibir un evento (un número, una pulsación...)
________________________________________________
3.- Cuenta letras.
Escribimos un texto en el EditText1 y un carácter en el EditText2, que se encuentre en el texto anterior,
cuando pulsemos el Button1 nos contará la cantidad de ese caracter que exista en el texto.
Designer |
|
Mediante el Designer creamos un "Layout" con
Label1 ......Text.... Escribe un texto
EditText1
Label2 ......Text.... Escribe un carácter del texto anterior
EditText1
Button1.... Text... Pulsa
Button2.... Text... Borrar todo
Label3
En el TextBox1 he puesto:
Vertical Alignement: TOP para que se empiece a escribir desde arriba
Single Line: False para que permita varios renglones.
|
Copia y pega este código en un nuevo proyecto |
Sub Process_Globals
' Juan Antonio Villalpando
' juana1991@yahoo.com
' abril 2013
End Sub
Sub Globals
Dim texto, letra, caracter As String
Dim EditText1, EditText2 As EditText
Dim Label3 As Label
Dim longitud, c As Int
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout")
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Button1_Click
texto = EditText1.Text
letra = EditText2.Text
longitud=texto.Length
For n = 1 To longitud
caracter = texto.SubString2(n-1,n)
If caracter=letra Then
c = c + 1
End If
Next
Label3.text = "El texto anterior tiene " & c & " carácteres " & letra
End Sub
Sub Button2_Click
EditText1.Text=""
EditText2.Text=""
c=0
Label3.Text=""
End Sub
|
________________________________________________
- Comentarios
- caracter = texto.SubString2(n-1,n) Con esta línea vamos tomando carácter a carácter.
- Cada vez que tomamos un carácter del texto lo compramos con la letra escrita en el TextBox2.
- En caso que sean iguales, se acumula la cuenta.
________________________________________________
4.- Velocidad, espacio y tiempo.
Escribimos
Designer |
|
Mediante el Designer creamos un "Layout" con
Label1 ......Text.... Distancia
SeekBar1
Label2 ......Text.... Tiempo
SeekBar1
Label3 ......Text.... Velocidad
SeekBar1
|
Copia y pega este código en un nuevo proyecto |
Sub Process_Globals
' Juan Antonio Villalpando
' juana1991@yahoo.com
' abril 2013
End Sub
Sub Globals
Dim velocidad, espacio, tiempo As Float
Dim SeekBar1, SeekBar2, SeekBar3 As SeekBar
Dim Label1, Label2, Label3 As Label
velocidad = 50 : espacio = 50 : tiempo = 50
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout")
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Button1_Click
espacio = SeekBar1.Value
tiempo = SeekBar2.Value
velocidad = SeekBar3.Value
velocidad = espacio / tiempo
Label1.Text = "Distancia = " & espacio & " km"
Label2.Text = "Tiempo = " & espacio & " horas"
Label3.Text = "Velocidad = " & espacio & " km/h"
End Sub
Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)
espacio = SeekBar1.Value
velocidad = espacio / tiempo
tiempo = espacio / velocidad
Label1.Text = "Distancia = " & Round2(espacio,2) & " km"
Label2.Text = "Tiempo = " & Round2(tiempo,2) & " horas"
Label3.Text = "Velocidad = " & Round2(velocidad,2) & " km/h"
' Calculo
End Sub
Sub SeekBar2_ValueChanged (Value As Int, UserChanged As Boolean)
tiempo = SeekBar2.Value / 60
espacio = velocidad * tiempo
velocidad = espacio / tiempo
Label1.Text = "Distancia = " & Round2(espacio,2) & " km"
Label2.Text = "Tiempo = " & Round2(tiempo,2) & " horas"
Label3.Text = "Velocidad = " & Round2(velocidad,2) & " km/h"
' Calculo
End Sub
Sub SeekBar3_ValueChanged (Value As Int, UserChanged As Boolean)
velocidad = SeekBar3.Value
espacio = velocidad * tiempo
tiempo = espacio / velocidad
Label1.Text = "Distancia = " & Round2(espacio,2) & " km"
Label2.Text = "Tiempo = " & Round2(tiempo,2) & " horas"
Label3.Text = "Velocidad = " & Round2(velocidad,2) & " km/h"
' Calculo
End Sub
Sub Calculo
' espacio = SeekBar1.Value
'tiempo = SeekBar2.Value
'velocidad = SeekBar3.Value
velocidad = espacio / tiempo
espacio = velocidad * tiempo
tiempo = espacio / velocidad
Label1.Text = "Distancia = " & Round2(espacio,2) & " km"
Label2.Text = "Tiempo = " & Round2(tiempo,2) & " horas"
Label3.Text = "Velocidad = " & Round2(velocidad,2) & " km/h"
End Sub
|
________________________________
|