Support.ebsco.com Aplicación de Android para EBSCOhost Tutorial.
Aplicación en Android
-
Upload
jazpek-cobain-albarran -
Category
Documents
-
view
83 -
download
0
Transcript of Aplicación en Android
Unidad Profesional Interdisciplinaria de Ingenieria
y Ciencias Sociales y Administrativas
UNIDAD DE APRENDIZAJE:
Diseño de ambientes ubicuos
PROYECTO:
Aplicación para el calculo de Estadistica Básica
ES
TA
DIS
TIC
A
Ap
licació
n e
n A
nd
roid
8-J
un
io-2
012
2 | P á g i n a
ÍNDICE:
Introducción……………………………………..…….3
Consideraciones Teóricas……………………..…….4
Desarrollo………………………………………..…….9
Pruebas y ajustes…………………………..………..54
Observaciones………………………..………………67
Conclusiones…………………………..……………..68
Bibliografia………………………………..…………..68
3 | P á g i n a
INTRODUCCION:
El siguiente documento muestra el desarrollo y documentación la
aplicación “Nombre” para Android, la cual realiza cálculos básicos de
estadística descriptiva.
La aplicación cuenta con dos opciones dentro de su menú, en la
primera trabajaremos con un único conjunto de datos del cual
calcularemos moda, media, mediana, varianza insesgada, varianza
sesgada, desviación estándar, desviación media, media armónica,
media geométrica,cuantiles y rango mientras que la segunda opción
realizará las mismas operaciones para los 2 conjuntos además de
covarianza y correlación, las cuales únicamente se pueden calcular
contando con 2 conjuntos de valores.
Esta aplicación busca ser de gran utilidad para comprobar resultados o
también facilitar el calculo de estas operaciones estadísticas. Cabe
decir que la utilidad que el usuario le dé es totalmente su
responsabilidad.
4 | P á g i n a
CONSIDERACIONES TEÓRICAS
ESTADISTICA DESCRIPTIVA
La estadística descriptiva es la rama de las Matemáticas que recolecta, presenta y caracteriza
un conjunto de datos (por ejemplo, edad de una población, altura de los estudiantes de una
escuela, temperatura en los meses de verano, etc.) con el fin de describir apropiadamente las
diversas características de ese conjunto.
MEDIDAS DE TENDENCIA CENTRAL
MEDIA
La media de n valores, es igual a la suma de todos ellos dividida
entre n. Se denota por x. Esto es:
MEDIANA
Es el valor que separa por la mitad las observaciones
ordenadas de menor a mayor, de tal forma que el 50%
de estas son menores que la mediana y el otro 50% son
mayores. Si el número de datos es impar la mediana
será el valor central, si es par tomaremos como mediana
la media aritmética de los dos valores centrales.
MEDIA ARMÓNICA
La media armónica , representada por H, de una cantidad finita de números es igual al
recíproco, o inverso, de la media aritmética de los recíprocos de dichos números
Así, dados los números a1,a2, … , an, la media armónica será igual a:
H = n / (1/a1 + 1/a2 ……+ 1/ an)
5 | P á g i n a
MEDIA GEOMÉTRICA
La ‘media geométrica’ de una cantidad finita de números (digamos ‘n’ números) es la raíz n-
ésima del producto de todos los números.
Por ejemplo, la media geométrica de 2 y 18 es
Otro ejemplo, la media de 1, 3 y 9 seria
MODA
Es el valor de la variable que más veces se repite, es decir, aquella cuya frecuencia absoluta
es mayor. No tiene por qué ser única.
MEDIDAS DE DISPERSIÓN
VARIANZA MUESTRAL
La varianza es la media aritmética del cuadrado de las desviaciones respecto a la media de
una distribución estadística. La varianza se representa
por:
6 | P á g i n a
RANGO
El rango de una distribución es la diferencia entre el valor máximo (M) y el valor mínimo (m) de
la variable estadística. Para su cálculo, basta con ordenar los valores de menor a mayor m de
M.
DESVIACION MEDIA
La desviación media es la división de la sumatoria del
valor absoluto de las distancias existentes entre cada
dato y su media aritmética y el número total de datos:
DESVIACION ESTANDAR
La desviación estándar o desviación típica se define como la raíz
cuadrada de los cuadrados de las desviaciones de los valores de
la variable respecto a su media. Esto es:
La desviación estándar es una medida estadística de la dispersión
de un grupo o población. Una gran desviación estándar indica que
la población esta muy dispersa respecto de la media. Una
desviación estándar pequeña indica que la población está muy compacta alrededor de la
media.
COEFICIENTE DE VARIACION
Cuando se quiere comparar el grado de dispersión de dos distribuciones que no vienen dadas
en las mismas unidades o que las medias no son iguales se utiliza el coeficiente de variación
de Pearson que se define como el cociente entre la desviación estándar y el valor absoluto de
la media aritmética:
COVARIANZA La covarianza es una medida de la
asociación lineal entre dos variables que resume la
información existente en un gráfico de dispersión.
7 | P á g i n a
Es un indicador de si los valores están relacionados entre sí, se simboliza por σ xy y se calcula
por medio de: Esta medida, refleja la relación lineal que existe entre dos variables.
El resultado numérico fluctúa entre los rangos de [−∞,∞].
Al no tener unos límites establecidos no puede determinarse el grado de relación lineal que
existe entre las dos variables, sólo es posible ver la tendencia.
• Una covarianza positiva significa que existe una relación lineal positiva entre las dos
variables. Es decir, los valores bajos de la variable x se asocian con los valores bajos de la
variable y, mientras los valores altos de x se asocian con los valores altos de la variable y.
• Una covarianza de negativa significa que existe una relación lineal inversa (negativa) entre las
dos variables. Lo que significa que los valores bajos en x se asocian con los valores altos en
y, mientras los valores altos en x se asocian con los valores bajos en y.
• Una covarianza de cero se interpreta como la no existencia de una relación lineal entre las
dos variables estudiadas.
CORRELACIÓN
Es frecuente que se estudie sobre una misma población los valores de dos variables
estadísticas distintas, con el fin de ver si existe alguna relación entre ellas, es decir, si los
cambios en una de ellas influyen en los valores de la otra. Si ocurre esto se dice que las
variables están correlacionadas o bien que hay correlación entre ellas.
La apreciación visual de la existencia de correlación no es suficiente. Así que se define como
coeficiente de correlación de Pearson al índice estadístico que
mide la relación lineal entre dos variables cuantitativas. Se
denota por r:
8 | P á g i n a
Este coeficiente de correlación lineal divide la covarianza por el producto de las desviaciones
estándar de ambas variables. A diferencia de la covarianza, la correlación de Pearson es
independiente de la escala de medida de las variables.
El valor del índice de correlación varía en el intervalo [-1, 1] y se interpreta de la siguiente
forma:
• Si r = 0, no existe ninguna correlación. El índice indica, por lo tanto, una independencia total
entre las dos variables, es decir, que la variación de una de ellas no influye en absoluto en el
valor que pueda tomar la otra.
• Si r = 1, existe una correlación positiva perfecta. El índice indica una dependencia total entre
las dos variables denominada relación directa: cuando una de ellas aumenta, la otra también lo
hace en idéntica proporción.
• Si 0 < r < 1, existe una correlación positiva.
• Si r = -1, existe una correlación negativa perfecta. El índice indica una dependencia total entre
las dos variables llamada relación inversa: cuando una de ellas aumenta, la otra disminuye en
idéntica proporción.
• Si -1 < r < 0, existe una correlación negativa.
9 | P á g i n a
DESARROLLO
*Instalación de las herramientas necesarias para el desarrollo y pruebas de la
aplicación.
1 - Primero debemos instalar el compilador de Java y la máquina virtual:
Java SE Development Kit (JDK).
2 - El segundo paso es la descarga del editor Eclipse:
Eclipse IDE for Java Developers.
3 - El tercer paso es descargar el SDK Android:
SDK de Android
El archivo que descargaremos es el zip: android-sdk_rxx-windows.zip
(donde xx es el número de la última versión) Descomprimimos el archivo y lo ubicamos en la
raíz de la unidad C\: , luego de descomprimir tenemos una carpeta llamada:
C:\android-sdk-windows
10 | P á g i n a
4 - El cuarto paso es ejecutar el programa: C:\android-sdk-windows\SDK Manager.exe que se
encuentra en la carpeta que acabamos de descomprimir el SDK de Android. Aparece esta
ventana (presionamos cancelar con el objetivo de seleccionar una AVD (Android Virtual Device)
y no tener que esperar una eternidad descargando todas las versiones de AVD):
Instalaremos en primera instancia la
versión del SDK 2.3.3 (la línea 2 está
orientada al desarrollo de aplicaciones
para celulares y la línea 3 está
orientada a tablet). Seleccionamos
Available packages y luego del lado
derecho solo dejamos tildado la
versión del SDK 2.3.3 (más adelante
podemos instalar otras versiones de
Android) Por último procedemos a
presionar el botón "Install Selected":
11 | P á g i n a
Aparece un diálogo donde nos informa el progreso de instalación:
Ahora ya podemos
cerrar la aplicación del
SDK Manager.exe
5 - Instalación del
plugin de Eclipse para
trabajar con Android.
12 | P á g i n a
Para instalar el plugin ingresamos al entorno Eclipse. Luego desde el menú de opciones: Help-
> Install New Software, aparece el siguiente diálogo, presionamos el botón add y disponemos
la url donde se encuentra el plugin:
En Location disponemos la url: https://dl-ssl.google.com/android/eclipse/
Tildamos "Developer Tools", presionamos seguidamente el botón "Next" dos veces hasta que
aparece la ventana donde tenemos que aceptar los "Términos y Condiciones" y presionamos el
botón "Finish"
Al finalizar la instalación del plugin se reinicia el Eclipse para que se instale completamente.
6 - El siguiente paso que
debemos efectuar para poder
empezar a desarrollar
aplicaciones para Android es
configurar el SDK:
Para esto nos dirigimos a la
opción Windows ->
Preferences donde aparece el
siguiente diálogo:
Seleccionamos la carpeta donde descomprimimos SDK de Android y presionamos el botón
"Apply"
13 | P á g i n a
7 - Por último debemos crear el AVD (Android Virtual Device) para ello nos dirigimos a la
opción Window -> Android SDK and AVD Manager.
En este diálogo debemos crear el emulador de Android (presionamos el botón New...):
14 | P á g i n a
En este diálogo asignamos un nombre a nuestro AVD, lo enlazamos con la versión de SDK
respectivo, fijamos un tamaño al SD Card:
Ya tenemos todo configurado para el desarrollo de aplicaciones Android.
15 | P á g i n a
*Desarrollo del diseño de la aplicación.
Ya que se ha instalado y vinculado ECLIPSE con ANDROID procedemos a realizar la
aplicación.
1. Generamos un nuevo proyecto dando clic en el botón de NEW o también Desde el menú
de opciones: File -> New -> Android Project.
2. Nos aparecerá una ventana que nos mostrará todo lo que podemos realizar y que en
este caso seleccionaremos la opción de Android Project.
16 | P á g i n a
3. Seleccionaremos el SDK con el que vamos a trabajar en esta situación trabajaremos con
Android 2.3.3 API 10.
4. Por ultimo nos pedirá escribir el nombre del paquete ( todo será en nimusculas y
separado por un punto.
Android.estadisticas
17 | P á g i n a
5. Nos dirigimos a la pestaña Project Explorer, seleccionamos la carpeta res y finalmente a
la carpeta layout donde encontraremos el main.xml el cual vamosa modificar para crear
nuestra aplicación.
6. De acuerdo a el diseño que le vamos a
implementar , depende también lo que
vayamos a ocupar en este caso
utilizamos la herramienta TextView un
RadioGroup y Button.
18 | P á g i n a
7. Cabe mencionar que por cada herramienta que utilizemos y que consideremos que
tenemos que hacer una programación de ellas, es preciso agregarles un ID para que la
programación sea mas fácil de detectar hacia que herramienta nos estamos dirigiendo.
8. Después de terminar con nuestra primer pantalla vamos a realizar otra la cual crearemos
de la siguiente forma:
-Nos dirigimos a la carpeta layout y enseguidadaremos clic derecho donde nos vamos a
New / other../Android XML File. Y damos clic en next.
19 | P á g i n a
9. Enseguida escribiremos el nombre del
nuevo archivo y el tipo de herramienta que
será, como se observa para agregar otro
layout seleccionamos el LinearLayout y
finalizamos.
20 | P á g i n a
10. Haremos este procedimiento continuamente y cada que realicemos un nuevo archivo
haremos las modificaciones pertinentes entre ellas la modificación del ID.
11. En esta pantalla, la acción
que realizará será pedir al
usuario los valores del
conjunto y es por ello que i
va cambiar por (1,2,3…n).
21 | P á g i n a
12. En esta pantalla se
mostrarán los
resultados de lo que el
usuario pidió si
seleccionó la primera
opción del Menú. Y
para alinearlos,
utilizamos un
TableLayout. Y en los
TextView se
mostrarán los valores.
13. Continuaremos
creando la
siguiente pantalla
que mostrará lo
mismo que en la
pantalla anterior
solo que esta
aparecerá como
conjunto X que
pertenece a la
segunda opción del
Menú.
22 | P á g i n a
14. En esta pantalla mostrará
los resultados del conjunto Y
de la opción 2 del Menú de
opciones.
15. Por último si seleccionó
el usuario los resultados
de dos conjuntos de
valores, también contará
con el resultado de dos
operaciones que
requieren de algunos
elementos del conjunto X
y de Y es por eso que
sugerimos que estos
datos fueran en otra
pantalla :
23 | P á g i n a
*Código de la aplicación.
ID TIPO PANTALLA ID TIPO PANTALLA
tv1 TextView Main.xml tv4…tv14 TextView
Aceptarventana4a
Aceptarventana4b
Sigventana4c
r1
RadioButton Main.xml mediar TextView
Aceptarventana4a
Aceptarventana4b
Sigventana4c Un conjunto
r2
RadioButton Main.xml modar TextView
Aceptarventana4a
Aceptarventana4b
Sigventana4c Dos conjuntos
button1
Button Main.xml medianar TextView
Aceptarventana4a
Aceptarventana4b
Sigventana4c Aceptar
button2
Button Main.xml mediaar TextView
Aceptarventana4a
Aceptarventana4b
Sigventana4c Salir
tv2 TextView Aceptarventana2 mediagr TextView
Aceptarventana4a
Aceptarventana4b
Sigventana4c
t1 TextField Aceptarventana2 varmr TextView
Aceptarventana4a
Aceptarventana4b
Sigventana4c
button3
Button Aceptarventana2 varinr TextView
Aceptarventana4a
Aceptarventana4b
Sigventana4c Continuar
button4
Button Aceptarventana2 desvar TextView
Aceptarventana4a
Aceptarventana4b
Sigventana4c Salir
tv3 TextView Aceptarventana3 desvmr TextView Aceptarventana3
t2 TextField Aceptarventana3 ranr TextView Aceptarventana3
button5
Button Aceptarventana3 cofvar TextView
Aceptarventana4a
Aceptarventana4b
Sigventana4c Aceptar
button6
Button Aceptarventana3 corr TextView Sigventanaxy
Cancelar
button7
Button
Aceptarventana4a
Aceptarventana4b
Aceptarventana4c
covr TextView Sigventanaxy Menu Principal(4a)
Siguiente(4b,4c)
button8
Button Aceptarventana4c button9 button Sigventanaxy
Menu principal
24 | P á g i n a
PANTALLA PRINCIPAL
Documento XML
main.XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal|left|right" android:orientation="vertical" > <ImageView android:id="@+id/imageView1" android:layout_width="269dp" android:layout_height="147dp" android:layout_gravity="center_horizontal" android:src="@drawable/ic_launcher2" /> <TextView android:id="@+id/tv1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="60dp" android:text="Calcular datos estadísticos de:" android:textSize="24sp" /> <RadioGroup android:id="@+id/radioGroup1" android:layout_width="match_parent" android:layout_height="wrap_content" android:baselineAligned="true" android:orientation="vertical" > <RadioButton android:id="@+id/r1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="left" android:checked="true" android:text=" Un conjunto de datos" /> <RadioButton android:id="@+id/r2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="left" android:text=" Dos conjuntos de datos" /> </RadioGroup>
25 | P á g i n a
<Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:onClick="aceptar" android:text="Aceptar" /> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="cerrar" android:text="Salir" /> </LinearLayout>
EstadisticaActivity.java
package android.estadistica; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.RadioButton; public class EstadisticaActivity extends Activity { private RadioButton r1,r2; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); r1=(RadioButton)findViewById(R.id.r1); r2=(RadioButton)findViewById(R.id.r2); } public void aceptar(View view) { try { if (r1.isChecked()==true) { Intent i = new Intent(this, AceptarV2.class ); i.putExtra("des", 0); startActivity(i); } else if (r2.isChecked()==true) { Intent i = new Intent(this, AceptarV2.class ); i.putExtra("des", 1); startActivity(i);}
26 | P á g i n a
} catch(Exception e) { finish(); } } public void cerrar(View view) { finish(); } }
PANTALLA CANTIDAD DE ELEMENTOS EN EL(LOS) CONJUNTO(S)
aceptarventana2.XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tv2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:text="Ingrese el número de elementos que contendrá el conjunto:" android:textSize="24sp" /> <EditText android:id="@+id/t1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:ems="10" android:inputType="number" > <requestFocus /> </EditText> <TextView android:id="@+id/tv30" android:layout_width="266dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="100dp" android:layout_weight="0.08" android:text="" />
27 | P á g i n a
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:gravity="right" > <Button android:id="@+id/button3" android:layout_width="100dp" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:onClick="continuar" android:text="Continuar" /> <Button android:id="@+id/button4" android:layout_width="100dp" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:onClick="cerrar" android:text="Regresar" /> </LinearLayout> </LinearLayout>
AceptarV2.java
package android.estadistica; import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class AceptarV2 extends Activity { int des; private TextView tv2,tv30; private EditText t1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.aceptarventana2); tv2=(TextView)findViewById(R.id.tv2); tv30=(TextView)findViewById(R.id.tv30);
28 | P á g i n a
t1=(EditText)findViewById(R.id.t1); Bundle bundle=getIntent().getExtras(); des = bundle.getInt("des"); if(des == 0) { tv2.setText("Ingrese el número de elementos que contendrá el conjunto: "); }else if(des ==1) { tv2.setText("Ingrese el número de elementos que contendrán los conjuntos X,Y :"); } } public void continuar(View view) { try { String valor1=t1.getText().toString(); int nro1=Integer.parseInt(valor1); Intent i = new Intent(this, AceptarV3.class ); i.putExtra("tam", nro1); i.putExtra("des", des); startActivity(i); } catch(Exception e) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Error!"); builder.setMessage("Ingrese únicamente números!"); builder.setPositiveButton("OK",null); builder.create(); builder.show(); } } public void cerrar(View view) { finish(); } }
29 | P á g i n a
PANTALLA CARGAR ELEMENTOS EN EL(LOS) CONJUNTO(S)
aceptarventana3.XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="40dp" android:text="Introduce el i valor :" android:textSize="24sp" /> <EditText android:id="@+id/t2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:ems="10" android:inputType="number" > <requestFocus /> </EditText> <TextView android:id="@+id/tv20" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:baselineAligned="false" android:gravity="center|right" > <Button android:id="@+id/button5" android:layout_width="100dp" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginTop="40dp" android:layout_weight="0.26" android:onClick="aceptar" android:text="Aceptar" />
30 | P á g i n a
</LinearLayout> <Button android:id="@+id/button12" android:layout_width="316dp" android:layout_height="wrap_content" android:layout_marginBottom="40dp" android:layout_weight="0.05" android:onClick="siguiente" android:text="Siguiente" android:visibility="invisible" /> </LinearLayout>
AceptarV3.java
package android.estadistica; import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class AceptarV3 extends Activity { float med=0,modaf=0,mediana=0,medar=0,medge=0,varmu=0,varin=0,desves=0,desvmu=0,ran=0,coefv=0,cov=0,corr=0; private EditText t2; private TextView tv20,tv3; private Button b5,b20; int arr[],t,i=0,des; int arrx[],arry[]; float sol1[] = new float[11]; float sol2[] = new float [11]; char xy; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.aceptarventana3); t2=(EditText)findViewById(R.id.t2); tv3=(TextView)findViewById(R.id.tv3); tv20=(TextView)findViewById(R.id.tv20); b5=(Button)findViewById(R.id.button5); b20=(Button)findViewById(R.id.button12); Bundle bundle=getIntent().getExtras(); des = bundle.getInt("des"); t = bundle.getInt("tam");
31 | P á g i n a
arr = new int[t]; //tv3.setText("Tamaño: "+t); if(des==0) { tv3.setText("Introduce el "+(i+1)+" valor :"); }else if(des==1) { xy='X'; arrx = new int[t]; arry = new int[t]; tv3.setText("Introduce el "+(i+1)+" valor de "+xy+": "); } //tv3.setText("Introduce el "+(i+1)+" valor :"); } public void aceptar(View view) { try { if(des==0) { if(i<t) { String valor1=t2.getText().toString(); int nro=Integer.parseInt(valor1); arr[i] = nro; t2.setText(""); //tv20.setText(arr[i]); i++; tv3.setText("Introduce el "+(i+1)+" valor :"); } if(t==i) { tv3.setText("Éxito"); tv20.setText("Datos: "); for(int j=0;j<t;j++) { String tt=""+arr[j]; tv20.append("\n"+(j+1)+": "+tt); } t2.setVisibility(t2.INVISIBLE); b5.setVisibility(b5.INVISIBLE); b20.setVisibility(b20.VISIBLE); des=0; } }else if(des==1) {
32 | P á g i n a
if(i<t) { String valor1=t2.getText().toString(); int nro=Integer.parseInt(valor1); arr[i] = nro; t2.setText(""); //tv20.setText(arr[i]); i++; tv3.setText("Introduce el "+(i+1)+" valor de "+xy+":"); } if(t==i) { tv3.setText("Éxito"); t2.setVisibility(t2.INVISIBLE); b5.setVisibility(b5.INVISIBLE); b20.setVisibility(b20.VISIBLE); } }else if(des==2) { if(i<t) { String valor1=t2.getText().toString(); int nro=Integer.parseInt(valor1); arr[i] = nro; t2.setText(""); //tv20.setText(arr[i]); i++; tv3.setText("Introduce el "+(i+1)+" valor de "+xy+":"); } if(t==i) { tv3.setText("Éxito"); t2.setVisibility(t2.INVISIBLE); b5.setVisibility(b5.INVISIBLE); b20.setVisibility(b20.VISIBLE); } } } catch(Exception e) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Error!"); builder.setMessage("Ingrese únicamente números!"); builder.setPositiveButton("OK",null); builder.create(); builder.show(); } }
33 | P á g i n a
public void siguiente(View view) { try { if(des==0) { calculos(); Intent i = new Intent(this, AceptarVa4.class ); i.putExtra("med", med); i.putExtra("modaf", modaf); i.putExtra("mediana", mediana); i.putExtra("medar", medar); i.putExtra("medge", medge); i.putExtra("varmu", varmu); i.putExtra("varin", varin); i.putExtra("desves", desves); i.putExtra("desvmu", desvmu); i.putExtra("ran", ran); i.putExtra("coefv", coefv); startActivity(i); }else if(des==1) { for(int h=0;h<t;h++) { arrx[h]=arr[h]; } calculos(); sol1[0] = med; sol1[1] = modaf; sol1[2] = mediana; sol1[3] = medar; sol1[4] = medge; sol1[5] = varmu; sol1[6] = varin; sol1[7] = desves; sol1[8] = desvmu; sol1[9] = ran; sol1[10] = coefv; t2.setVisibility(t2.VISIBLE); b5.setVisibility(b5.VISIBLE); b20.setVisibility(b20.INVISIBLE); des=2; i=0; xy='y'; arr = new int[t]; tv3.setText("Introduce el "+(i+1)+" valor de "+xy+": "); }else if(des==2) { for(int h=0;h<t;h++) { arry[h]=arr[h]; }
34 | P á g i n a
calculos(); sol2[0] = med; sol2[1] = modaf; sol2[2] = mediana; sol2[3] = medar; sol2[4] = medge; sol2[5] = varmu; sol2[6] = varin; sol2[7] = desves; sol2[8] = desvmu; sol2[9] = ran; sol2[10] = coefv; des=1; //Covarianza for(int i=0; i<t; i++) { cov=cov + (arrx[i]*arry[i]); } cov=(float) (cov/(1.0*t)); cov=cov-(sol1[0]*sol2[0]); //************************************************** //Correlacion corr=(cov)/(sol1[7]*sol2[7]); //**************************************************/ Intent i = new Intent(this, AceptarVb4.class ); i.putExtra("tam", t); i.putExtra("medx", sol1[0]); i.putExtra("modafx", sol1[1]); i.putExtra("medianax", sol1[2]); i.putExtra("medarx", sol1[3]); i.putExtra("medgex", sol1[4]); i.putExtra("varmux", sol1[5]); i.putExtra("varinx", sol1[6]); i.putExtra("desvesx", sol1[7]); i.putExtra("desvmux", sol1[8]); i.putExtra("ranx", sol1[9]); i.putExtra("coefvx", sol1[10]); i.putExtra("medy", sol2[0]); i.putExtra("modafy", sol2[1]); i.putExtra("medianay", sol2[2]); i.putExtra("medary", sol2[3]); i.putExtra("medgey", sol2[4]); i.putExtra("varmuy", sol2[5]); i.putExtra("variny", sol2[6]); i.putExtra("desves2", sol2[7]); i.putExtra("desvmuy", sol2[8]); i.putExtra("rany", sol2[9]); i.putExtra("coefvy", sol2[10]); i.putExtra("cov", cov); i.putExtra("corr", corr); i.putExtra("des", 1); startActivity(i); } }
35 | P á g i n a
catch(Exception e) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Error!"); builder.setMessage("Ingrese únicamente números!"); builder.setPositiveButton("OK",null); builder.create(); builder.show(); } } public void calculos() { //Media en x for(int j=0; j<t; j++) { med=med+arr[j]; } med=(float)(med/(t)); //varianza insesgada en x for(int j=0; j<t; j++) { varin=varin + ((arr[j]- med)*(arr[j] - med)); } varin=varin/(t-1); //varianza muestral en x for(int j=0; j<t; j++) { varmu=varmu + ((arr[j]- med)*(arr[j] - med)); } varmu=varmu/(t); //Desviacion Media en x for(int j=0; j<t; j++) { desvmu=desvmu + Math.abs(arr[j]- med); } desvmu=desvmu/(t); //Desviacion Estandar en x for(int j=0; j<t; j++) { desves=desves + ((arr[j]- med)*(arr[j] - med)); } desves=desves/(t); desves=(float) Math.sqrt(desves); //Coeficiente de variacion en x coefv=desves/med; //Rango //Ordenar valores int temp; for(int j=0;j<t;j++) { for(int y=0;y<t;y++)
36 | P á g i n a
{ if(arr[j]<arr[y]) { temp=arr[j]; arr[j]=arr[y]; arr[y]=temp; } } } //Calcular rango ran=arr[t-1]-arr[0]; //MODA modaf = hallarModa(arr,0,arr.length-1); //MEdiana mediana = (float) getMediana(arr,arr.length); //Media Geometrica medge = (float) mediaGeometrica(arr); //Media Armonica medar = mediaArmonica(arr); } public static int hallarModa (int a[], int prim, int ult) { int i, frec, maxfrec, moda; if (prim == ult) return a[prim]; moda = a[prim]; maxfrec = Frecuencia(a, a[prim], prim, ult); for (i = prim + 1; i<=ult; i++) { frec = Frecuencia (a, a[i], i, ult); if (frec > maxfrec) { maxfrec = frec; moda = a[i]; } } return moda; } /** * Metodo para calcular el numero de veces que se repite un elemento * Utilizado por el metodo hallarModa */ public static int Frecuencia (int a[], int p, int prim, int ult) { int i, suma; if (prim > ult) return 0; suma = 0; for (i = prim; i<= ult; i++) if(a[i] == p) suma++; return suma;
37 | P á g i n a
} public static double getMediana(int valores[],int longitud){ try{ if(longitud%2 == 0){ double x1 = valores[longitud/2]; double x2 = valores[(longitud-2)/2]; return ((x1+x2)/2); } else{ double x = valores[(longitud-1)/2]; return x; } } catch (java.lang.NullPointerException exc){ return 0.0; } } public static double mediaGeometrica (int v[]) { double producto =1.0; for (int i=0; i<v.length; i++) { producto*=v[i]; } return Math.sqrt(producto); } public static float mediaArmonica (int v[]) { float producto =0; for (int j=0; j<v.length; j++) { producto=(float) ((1.0)*(producto + (1/v[j]))); } producto=v.length/producto; return producto; } }
38 | P á g i n a
PANTALLAS MOSTRAR RESULTADOS
Aceptarventana4a.XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" > <TextView android:id="@+id/tv4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Media" android:textSize="18sp" /> <TextView android:id="@+id/mediar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Moda" android:textSize="18sp" />
39 | P á g i n a
<TextView android:id="@+id/modar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Mediana" android:textSize="18sp" /> <TextView android:id="@+id/medianar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Media Armónica" android:textSize="18sp" /> <TextView android:id="@+id/mediaar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow>
40 | P á g i n a
<TableRow android:id="@+id/tableRow5" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Media Geométrica" android:textSize="18sp" /> <TextView android:id="@+id/mediagr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow6" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Varianza muestral" android:textSize="18sp" /> <TextView android:id="@+id/varmr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow7" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Varianza Insesgada" android:textSize="18sp" />
41 | P á g i n a
<TextView android:id="@+id/varinr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow8" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Desviación estandar" android:textSize="18sp" /> <TextView android:id="@+id/desver" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow9" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv12" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Desviación media" android:textSize="18sp" /> <TextView android:id="@+id/desvmr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow>
42 | P á g i n a
<TableRow android:id="@+id/tableRow10" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv13" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Rango" android:textSize="18sp" /> <TextView android:id="@+id/ranr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow11" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv14" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Coef. de variación" android:textSize="18sp" /> <TextView android:id="@+id/cofvar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> </TableLayout> <Button android:id="@+id/button7" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:onClick="menu" android:text="Menú principal" /> </LinearLayout>
43 | P á g i n a
AceptarV4.java
package android.estadistica; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class AceptarVa4 extends Activity { private TextView mediar,modar,medianar,mediaar,mediagr,varmr,varinr,desver,desvmr,ranr,cofvar; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.aceptarventana4a); mediar=(TextView)findViewById(R.id.mediar); modar=(TextView)findViewById(R.id.modar); medianar=(TextView)findViewById(R.id.medianar); mediaar=(TextView)findViewById(R.id.mediaar); mediagr=(TextView)findViewById(R.id.mediagr); varmr=(TextView)findViewById(R.id.varmr); varinr=(TextView)findViewById(R.id.varinr); desver=(TextView)findViewById(R.id.desver); desvmr=(TextView)findViewById(R.id.desvmr); ranr=(TextView)findViewById(R.id.ranr); cofvar=(TextView)findViewById(R.id.cofvar); Bundle bundle=getIntent().getExtras(); mediar.setText(""+bundle.getFloat("med")); modar.setText(""+bundle.getFloat("modaf")); medianar.setText(""+bundle.getFloat("mediana")); mediaar.setText(""+bundle.getFloat("medar")); mediagr.setText(""+bundle.getFloat("medge")); varmr.setText(""+bundle.getFloat("varmu")); varinr.setText(""+bundle.getFloat("varin")); desver.setText(""+bundle.getFloat("desves")); desvmr.setText(""+bundle.getFloat("desvmu")); ranr.setText(""+bundle.getFloat("ran")); cofvar.setText(""+bundle.getFloat("coefv")); } public void menu(View view) {
44 | P á g i n a
try { Intent i = new Intent(this, EstadisticaActivity.class ); startActivity(i); } catch(Exception e) { } } }
aceptarventana4b.XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" <TextView android:id="@+id/tv50" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="Resultados del conjunto x " android:textAppearance="?android:attr/textAppearanceLarge" /> <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" > <TextView android:id="@+id/tv4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Media" android:textSize="18sp" /> <TextView android:id="@+id/mediar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow>
45 | P á g i n a
<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Moda" android:textSize="18sp" /> <TextView android:id="@+id/modar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Mediana" android:textSize="18sp" /> <TextView android:id="@+id/medianar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Media Armónica" android:textSize="18sp" />
46 | P á g i n a
<TextView android:id="@+id/mediaar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow5" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Media Geométrica" android:textSize="18sp" /> <TextView android:id="@+id/mediagr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow6" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv9" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Varianza muestral" android:textSize="18sp" /> <TextView android:id="@+id/varmr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow>
47 | P á g i n a
<TableRow android:id="@+id/tableRow7" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Varianza Insesgada" android:textSize="18sp" /> <TextView android:id="@+id/varinr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow8" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv11" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Desviación estandar" android:textSize="18sp" /> <TextView android:id="@+id/desver" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow9" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv12" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Desviación media" android:textSize="18sp" />
48 | P á g i n a
<TextView android:id="@+id/desvmr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow10" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv13" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Rango" android:textSize="18sp" /> <TextView android:id="@+id/ranr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow11" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv14" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Coef. de variación" android:textSize="18sp" /> <TextView android:id="@+id/cofvar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:text="TextView" /> </TableRow> </TableLayout>
49 | P á g i n a
<Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:onClick="siguiente" android:text="Siguiente" /> </LinearLayout>
AceptarVb4.java
package android.estadistica; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.TextView; public class AceptarVb4 extends Activity{ private TextView tv50,mediar,modar,medianar,mediaar,mediagr,varmr,varinr,desver,desvmr,ranr,cofvar; int t,des; float sol2[] = new float[11],cov,corr; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.aceptarventana4b); Bundle bundle=getIntent().getExtras(); des = bundle.getInt("des"); cov= bundle.getFloat("cov"); corr= bundle.getFloat("corr"); tv50=(TextView)findViewById(R.id.tv50); mediar=(TextView)findViewById(R.id.mediar); modar=(TextView)findViewById(R.id.modar); medianar=(TextView)findViewById(R.id.medianar); mediaar=(TextView)findViewById(R.id.mediaar); mediagr=(TextView)findViewById(R.id.mediagr); varmr=(TextView)findViewById(R.id.varmr); varinr=(TextView)findViewById(R.id.varinr); desver=(TextView)findViewById(R.id.desver); desvmr=(TextView)findViewById(R.id.desvmr); ranr=(TextView)findViewById(R.id.ranr); cofvar=(TextView)findViewById(R.id.cofvar); if(des==1)
50 | P á g i n a
{ mediar.setText(""+bundle.getFloat("medx")); modar.setText(""+bundle.getFloat("modafx")); medianar.setText(""+bundle.getFloat("medianax")); mediaar.setText(""+bundle.getFloat("medarx")); mediagr.setText(""+bundle.getFloat("medgex")); varmr.setText(""+bundle.getFloat("varmux")); varinr.setText(""+bundle.getFloat("varinx")); desver.setText(""+bundle.getFloat("desvesx")); desvmr.setText(""+bundle.getFloat("desvmux")); ranr.setText(""+bundle.getFloat("ranx")); cofvar.setText(""+bundle.getFloat("coefvx")); sol2[0]=bundle.getFloat("medy"); sol2[1]=bundle.getFloat("modafy"); sol2[2]=bundle.getFloat("medianay"); sol2[3]=bundle.getFloat("medary"); sol2[4]=bundle.getFloat("medgey"); sol2[5]=bundle.getFloat("varmuy"); sol2[6]=bundle.getFloat("variny"); sol2[7]=bundle.getFloat("desvesy"); sol2[8]=bundle.getFloat("desvmuy"); sol2[9]=bundle.getFloat("rany"); sol2[10]=bundle.getFloat("coefvy"); } } public void siguiente(View view) { try { if(des==1) { des=2; tv50.setText("Resultados del conjunto y "); mediar.setText(""+sol2[0]); modar.setText(""+sol2[1]); medianar.setText(""+sol2[2]); mediaar.setText(""+sol2[3]); mediagr.setText(""+sol2[4]); varmr.setText(""+sol2[5]); varinr.setText(""+sol2[6]); desver.setText(""+sol2[7]); desvmr.setText(""+sol2[8]); ranr.setText(""+sol2[9]); cofvar.setText(""+sol2[10]); }else if(des==2) { Intent i = new Intent(this, SigVxy.class ); i.putExtra("cov", cov);
51 | P á g i n a
i.putExtra("corr", corr); startActivity(i); } } catch(Exception e) { System.out.println(e); } } }
sigventanaXY.XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="60dp" android:gravity="center" android:text="Covarianza y correlación del conjunto x , y" android:textAppearance="?android:attr/textAppearanceLarge" /> <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" > <TextView android:id="@+id/tv16" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="30dp" android:text="Correlación" android:textSize="18sp" />
52 | P á g i n a
<TextView android:id="@+id/corr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="40dp" android:layout_marginTop="30dp" android:text="TextView" /> </TableRow> <TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView android:id="@+id/tv15" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="30dp" android:text="Covarianza" android:textSize="18sp" /> <TextView android:id="@+id/covr" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="40dp" android:layout_marginTop="30dp" android:text="TextView" /> </TableRow> </TableLayout> <Button android:id="@+id/button9" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="30dp" android:onClick="menu" android:text="Menú Principal" /> </LinearLayout>
53 | P á g i n a
SigVxy.Java
package android.estadistica; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.TextView; public class SigVxy extends Activity { private TextView covr,corr; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sigventanaxy); covr=(TextView)findViewById(R.id.covr); corr=(TextView)findViewById(R.id.corr); Bundle bundle=getIntent().getExtras(); covr.setText(""+bundle.getFloat("cov")); corr.setText(""+bundle.getFloat("corr")); } public void menu(View view) { try { Intent i = new Intent(this, EstadisticaActivity.class ); startActivity(i); } catch(Exception e) { } } }
54 | P á g i n a
PRUEBAS Y AJUSTES
Finalizada nuestra aplicación así es como luce desde la perspectiva de un Emulador y que
posteriormente será en un celular.
55 | P á g i n a
Pantalla principal
Agregamos una imagen en el diseño del menú, la cual en un principio no se había incorporado.
56 | P á g i n a
Pedir número de datos para un solo conjunto
Esta pantalla se mostrará si el usuario seleccionó la opción 1 del Menú anterior y en base al numero
que ingrese se determinará el espacio en el arreglo para realizar las operaciones pertinentes. Si el
usuario desea agregar un dato de signo negativo, símbolo o letra , la aplicación no lo permitirá, no lo
aceptará.
57 | P á g i n a
Pedir datos del conjunto
El usuario introducirá los valores del conjunto a evaluar.
58 | P á g i n a
Cálculo de datos estadísticos
Esta pantalla fue agregada para mostrarle al usuario los datos que ingresó con éxito.
59 | P á g i n a
Desplegar resultados para el conjunto
Finalmente muestra al usuario el resultado del conjunto de valores que ingresó.
60 | P á g i n a
Pantalla principal (2 conjuntos)
61 | P á g i n a
Pedir el numero de datos que contendrá cada conjunto (X,Y)
62 | P á g i n a
Pedir datos del conjunto X
63 | P á g i n a
Pedir datos del conjunto Y
64 | P á g i n a
Desplegar resultados para el conjunto X
65 | P á g i n a
Desplegar resultados para el conjunto Y
66 | P á g i n a
Desplegar resultados conjuntos de X,Y
67 | P á g i n a
OBSERVACIONES
La herramienta Eclipse y Android 2.3.3 son muy accesibles para cuando uno es principiante sin
embargo nos dimos cuenta que si no se siguen las instrucciones adecuadamente, puede
producir error. La instalación de Android 2.3.3 es un poco tardada y abarca bastante memoria
en Disco Duro.
Durante el diseño de nuestra aplicación encontramos :
o Hay variedad de atributos con las que nuestra aplicación puede contar.
o No solo podemos cambiar o agregar atributos en la codificación si no también de forma
grafica y esto nos ayuda a distribuirlos a nuestra disposición.
o Para modificar algún atributo tenemos que accesar al código ya que de forma grafica
puede ser menos fácil.
o Para mover de posición algún atributo ( button,radiobutton,textview etc) de manera que
queramos no es muy fácil y tenemos que ingeniarnos de que manera colocarlo.
En la programación observamos :
o Al momento de llevar a cabo la programación, se nota que el entorno Android está
basado en Java, toda la potencia de java puede ser usada en el desarrollo de estas
aplicaciones.
o Hacer pruebas muy seguido podría resultar tedioso debido al tiempo de carga del
emulador, así que es más recomendable, a nuestra experiencia, hacer cambios
significativos en cada iteración.
o Llevar a cabo cambios en el diseño después de comenzar con la programación, resulta
difícil ya que es complicado obtener el resultado deseado, debido a que se involucran
mucho los Layouts y su manejo resulta algo difícil cuando no se tiene experiencia, como
en este caso.
Es preciso apoyarse de libros o tutoriales cuando se tiene un primer y hasta segundo contacto
con el desarrollo de aplicaciones para Android, ya que el configurar las herramientas y nuevas
clases (java y XML) no es muy intuitivo, pero es de suma importancia para el funcionamiento
de la aplicación.
68 | P á g i n a
CONCLUSIONES
Las experiencias obtenidas en el análisis, diseño, desarrollo e implementación de la aplicación,
son de las más enriquecedoras en toda nuestra vida estudiantil. Las razones por las que
afirmamos esto son simples, Android es hoy por hoy, un sistema operativo de primera calidad,
principal competidor de iOS, y el cuál crece a pasos agigantados, ya en ocasiones colocando
se por encima del principal proveedor, Apple. Las tecnologías usadas hoy en día en
smartphones y tablets sin duda es Android, el futuro con el que cuenta es mucho, sin duda
crecerá, y se espera a un ritmo mayor del actual. Todos estos datos, nos permiten darnos
cuenta de lo importante que es aprender a programar en este lenguaje, sin duda será un
requisito y una parte que exalte nuestro curriculum y sobre todo que nos posicionará por
encima del promedio.
Estamos consientes que aún somos novatos dentro de este lenguaje, pero lo que nos motiva y
alienta a seguir son los beneficios obtenidos por exprimir una plataforma tan rica en
oportunidades y que nos permita echar a volar la imaginación y hacer, incluso, nuestras propias
aplicaciones. Sin duda el empezar a usar Android y estar aprendiendo del mismo, nos abre
muchas puertas que aprovecharemos en un futuro.
BIBLIOGRAFIA
http://www.fca.unam.mx/docs/apuntes_matematicas/34.%20Estadistica%20Descriptiva.pdf
http://www.tuveras.com/estadistica/estadistica02.htm
http://developer.android.com/index.html
http://www.iconshock.com/android-icons/?prd=affcomm63789
http://www.edu4java.com/