Sie sind auf Seite 1von 8

Universidad Politcnica de Victoria

Computo en dispositivos mviles

Dr. Marco Aurelio Nuo Maganda

Practica 01 Suma y multiplicacin de nmeros complejos

Alumno(a): Daiana Aholibama Soto Ibarra Matricula: 1030176

Introduccin El siguiente documento muestra el proceso para la creacin de la Practica 01, la cual consiste en desarrollar una aplicacin en Android que implementa Java. Objetivo Obtener dos nmeros complejos introducidos por el usuario y efectuar la suma y multiplicacin de los mismos. Un numero complejo es la combinacin entre un nmero real y uno imaginario. Sumar y multiplicar Para sumar dos nmeros complejos sumamos las dos partes por separado (a,b) + (c,d) = (a+c, b+d) Y para multiplicarlos: (a,b)(c,d) = (ac-bd, ad+bc) Desarrollo En primer instancia generaremos nuestro entorno grafico en nuestro archivo activity_main.xml que se encuentra en la carpeta layout, este documento se puede generar de manera automtica al ir agregando elementos en nuestro modo grfico.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <EditText android:id="@+id/etDos" android:layout_width="60dp" android:layout_height="40dp" android:layout_alignBaseline="@+id/etUno" android:layout_alignBottom="@+id/etUno" android:layout_alignParentRight="true" android:layout_marginRight="40dp" android:ems="10" android:inputType="number" /> <EditText android:id="@+id/etTres" android:layout_width="60dp" android:layout_height="40dp" android:layout_alignLeft="@+id/etUno" android:layout_below="@+id/etUno" android:layout_marginTop="44dp" android:ems="10" android:inputType="number" />

<EditText android:id="@+id/etCuatro" android:layout_width="60dp" android:layout_height="40dp" android:layout_alignBaseline="@+id/etTres" android:layout_alignBottom="@+id/etTres" android:layout_alignLeft="@+id/etDos" android:ems="10" android:inputType="number" > </EditText> <EditText android:id="@+id/etUno" android:layout_width="60dp" android:layout_height="40dp" android:layout_alignParentTop="true" android:layout_marginRight="14dp" android:layout_marginTop="40dp" android:layout_toLeftOf="@+id/Spinner2" android:ems="10" android:inputType="number" > <requestFocus /> </EditText> <Spinner android:id="@+id/spinner1" android:layout_width="40dp" android:layout_height="40dp" android:layout_above="@+id/etTres" android:layout_toLeftOf="@+id/etUno" android:entries="@array/signos" /> <Spinner android:id="@+id/Spinner2" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignTop="@+id/etDos" android:layout_toLeftOf="@+id/etDos" android:entries="@array/signos" /> <Spinner android:id="@+id/Spinner3" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignLeft="@+id/spinner1" android:layout_alignTop="@+id/etTres" android:entries="@array/signos" />

<TextView android:id="@+id/tv3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/spinner1" android:layout_marginBottom="15dp" android:text="Numero complejo a:" android:textSize="17dp" /> <TextView android:id="@+id/tv4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/etUno" android:layout_marginTop="14dp" android:text="Numero complejo b:" android:textSize="17dp" /> <TextView android:id="@+id/tvl3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/etTres" android:layout_below="@+id/btnCalcular" android:layout_marginRight="14dp" android:text="Resultados:" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/tvl3" android:layout_below="@+id/tvl3" android:layout_marginTop="15dp" android:clickable="false" android:ems="10" > </EditText> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText1" android:layout_below="@+id/editText1" android:clickable="false" android:ems="10" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/etDos" android:layout_alignBottom="@+id/etDos" android:layout_toRightOf="@+id/etCuatro" android:text="i" android:textSize="20dp" />

<Spinner android:id="@+id/Spinner4" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignTop="@+id/etCuatro" android:layout_toRightOf="@+id/etUno" android:entries="@array/signos" /> <TextView android:id="@+id/TextView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/etCuatro" android:layout_alignBottom="@+id/etCuatro" android:layout_toRightOf="@+id/textView1" android:text="i" android:textSize="20dp" /> <Button android:id="@+id/btnCalcular" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/TextView2" android:layout_centerVertical="true" android:text="Calcular" /> </RelativeLayout>

Este diseo cuenta con un spinner para cada editText que recibe un numero para que el Usuario pueda seleccionar si es un numero negativo o positivo. Un botn calcular para desencadenar los mtodos de nuestro programa y dos editText mas para mostrar los resultados. Modo grfico:

El siguiente paso es declarar cada uno de los componentes que se usaran, esto se hace en nuestro archivo llamado MainActivity.java
public class MainActivity extends Activity { EditText numeroUno; EditText numeroDos; EditText numeroTres; EditText numeroCuatro; Spinner spUno; Spinner spDos; Spinner spTres; Spinner spCuatro; Button calcular; EditText suma; EditText mult;

En la funcin OnCreate que ser el evento que se lanza al cargarse la clase Activity, inicializaremos nuestras variables.
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); numeroUno = (EditText)findViewById(id.etUno); numeroDos = (EditText)findViewById(id.etDos); numeroTres = (EditText)findViewById(id.etTres); numeroCuatro = (EditText)findViewById(id.etCuatro); spUno = (Spinner)findViewById(id.spinner1); spDos = (Spinner)findViewById(id.Spinner2); spTres = (Spinner)findViewById(id.Spinner3); spCuatro = (Spinner)findViewById(id.Spinner4); calcular = (Button)findViewById(id.btnCalcular); suma = (EditText)findViewById(id.editText1); mult = (EditText)findViewById(id.editText2); calcular.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub int a = getIntValue(numeroUno.getText().toString()); int b = getIntValue(numeroDos.getText().toString()); int c = getIntValue(numeroTres.getText().toString()); int d=getIntValue(numeroCuatro.getText().toString()); String sa = spUno.getSelectedItem().toString(); String sb = spDos.getSelectedItem().toString(); String sc = spTres.getSelectedItem().toString(); String sd = spCuatro.getSelectedItem().toString(); if (sa.equals("-")){ a*=-1; } if (sb.equals("-")){ b*=-1; }if (sc.equals("-")){ c*=-1; }

if (sd.equals("-")){ d*=-1; } sumCompNum(a,b,c,d); mulCompNum(a, b, c, d); suma.setText("Suma: "+sumCompNum(a, b, c, d)); mult.setText("Mult: "+mulCompNum(a, b, c, d)); } }); }

Agregamos un evento llamado OnClickListener a nuestro botn calcular; este desencadenara los siguientes mtodos :
getIntValue //Es un mtodo en el cual el string obtenido se maneja para obtener un Int (ejemplo: si nosotros introducimos un numero 63 este mtodo lo invertir y ser 36 posteriormente tomara el primer carcter en este caso 3 y le asignara su valor en cdigo ascii en este caso 51 al cual le restara -48 ya que en el cdigo ascii 48 = 0 y nos dar como resultado 3 y este se almacenara en una variable tipo int, cada que entre a este siclo for nuestra variable numVal que es la que da el valor de las unidades decenas centenas etc se multiplicara por 10 y la variable intValue sumara cada uno de los valores que resulten. getSelectedItem //Identifica la opcin seleccionada por el usuario, en el spinner

Agregamos el signo negativo en caso de haber sido seleccionado por el usuario


if (sa.equals("-")){ a*=-1; }

Si el string almacenado en sa (ejemplo) es igual a el smbolo de negativo a que contiene nuestro nmero obtenido del editText ser multiplicado por -1 para otorgarle el valor negativo a nuestro nmero, si no es asi ser positivo Posteriormente manda llamar a dos mtodos
public String sumCompNum(int a, int b, int c, int d) { // (a + bi) + (c + di) = (a+c) + (b+d)i int numReal = (a + c); int numImg = (b + d); String output = numReal + " + " + numImg + "i"; return output; }

public String mulCompNum(int a, int b, int c, int d) { // (a + bi) . (c + di) = (ac-bd) + (ad+bc)i int numReal = (a * c) - (b * d); int numImg = (a * d) + (b * c); String output = numReal + " + " + numImg + "i"; return output; }}

El mtodo sumCompNum recibe cuatro variables de tipo int y posteriormente efecta la suma de nmeros complejos como lo indica la frmula:
(a + bi) + (c + di) = (a+c) + (b+d)i

almacenando en dos variables los nmeros reales numReal y nmeros imaginarios numImg; enviando un string de salida concatenado con el ambas variables como resultado. El mtodo mulCompNum igualmente recibe cuatro variables tipo int y efecta la multiplicacin de nmeros complejos como lo indica la formula:
(a + bi) . (c + di) = (ac-bd) + (ad+bc)i

almacenando en dos variables los nmeros reales numReal y nmeros imaginarios numImg enviando un string de salida concatenado con el ambas variables como resultado. Resultados

Das könnte Ihnen auch gefallen