Aplicación en Android

68
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

Transcript of Aplicación en Android

Page 1: 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

Page 2: Aplicación en Android

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

Page 3: Aplicación en Android

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.

Page 4: Aplicación en Android

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)

Page 5: Aplicación en Android

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:

Page 6: Aplicación en Android

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.

Page 7: Aplicación en Android

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:

Page 8: Aplicación en Android

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.

Page 9: Aplicación en Android

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

Page 10: Aplicación en Android

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":

Page 11: Aplicación en Android

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.

Page 12: Aplicación en 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"

Page 13: Aplicación en Android

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...):

Page 14: Aplicación en Android

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.

Page 15: Aplicación en 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.

Page 16: Aplicación en Android

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

Page 17: Aplicación en Android

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.

Page 18: Aplicación en Android

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.

Page 19: Aplicación en Android

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.

Page 20: Aplicación en Android

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).

Page 21: Aplicación en Android

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ú.

Page 22: Aplicación en Android

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 :

Page 23: Aplicación en Android

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

Page 24: Aplicación en Android

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>

Page 25: Aplicación en Android

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);}

Page 26: Aplicación en Android

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="" />

Page 27: Aplicación en Android

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);

Page 28: Aplicación en Android

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(); } }

Page 29: Aplicación en Android

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" />

Page 30: Aplicación en Android

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");

Page 31: Aplicación en Android

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) {

Page 32: Aplicación en Android

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(); } }

Page 33: Aplicación en Android

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]; }

Page 34: Aplicación en Android

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); } }

Page 35: Aplicación en Android

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++)

Page 36: Aplicación en Android

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;

Page 37: Aplicación en Android

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; } }

Page 38: Aplicación en Android

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" />

Page 39: Aplicación en Android

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>

Page 40: Aplicación en Android

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" />

Page 41: Aplicación en Android

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>

Page 42: Aplicación en Android

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>

Page 43: Aplicación en Android

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) {

Page 44: Aplicación en Android

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>

Page 45: Aplicación en Android

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" />

Page 46: Aplicación en Android

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>

Page 47: Aplicación en Android

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" />

Page 48: Aplicación en Android

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>

Page 49: Aplicación en Android

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)

Page 50: Aplicación en Android

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);

Page 51: Aplicación en Android

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" />

Page 52: Aplicación en Android

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>

Page 53: Aplicación en Android

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) { } } }

Page 54: Aplicación en Android

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.

Page 55: Aplicación en Android

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.

Page 56: Aplicación en Android

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á.

Page 57: Aplicación en Android

57 | P á g i n a

Pedir datos del conjunto

El usuario introducirá los valores del conjunto a evaluar.

Page 58: Aplicación en Android

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.

Page 59: Aplicación en Android

59 | P á g i n a

Desplegar resultados para el conjunto

Finalmente muestra al usuario el resultado del conjunto de valores que ingresó.

Page 60: Aplicación en Android

60 | P á g i n a

Pantalla principal (2 conjuntos)

Page 61: Aplicación en Android

61 | P á g i n a

Pedir el numero de datos que contendrá cada conjunto (X,Y)

Page 62: Aplicación en Android

62 | P á g i n a

Pedir datos del conjunto X

Page 63: Aplicación en Android

63 | P á g i n a

Pedir datos del conjunto Y

Page 64: Aplicación en Android

64 | P á g i n a

Desplegar resultados para el conjunto X

Page 65: Aplicación en Android

65 | P á g i n a

Desplegar resultados para el conjunto Y

Page 66: Aplicación en Android

66 | P á g i n a

Desplegar resultados conjuntos de X,Y

Page 67: Aplicación en Android

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.

Page 68: Aplicación en Android

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/