You are on page 1of 5

INGENIERIA INFORMÁTICA – PROGRAMACIÓN I ING.

EVANS BALCAZAR

* Layout / Formulario
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout 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="bo.edu.uagrm.ficct.inf120.pcadena.Fcadena">

<TextView
android:id="@+id/L1"
android:layout_x="0dp"
android:layout_y="0dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Cadena de Caracteres"
android:textSize="22sp"
android:textStyle="bold" />

<TextView
android:id="@+id/L2"
android:layout_x="0dp"
android:layout_y="30dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="{ }"
android:textSize="22sp"
android:textStyle="bold" />

<EditText
android:id="@+id/ele"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_x="0dp"
android:layout_y="70dp"
android:ems="60"
android:inputType="text"
android:hint="Caracter..."/>
<EditText
android:id="@+id/pos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_x="0dp"
android:layout_y="110dp"
android:ems="2"
android:inputType="number"
android:hint="Posicion..."/>

<Button
android:id="@+id/B1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_x="0dp"
android:layout_y="150dp"
INGENIERIA INFORMÁTICA – PROGRAMACIÓN I ING. EVANS BALCAZAR

android:text="Crear"
android:onClick="eCrear" />
<Button
android:id="@+id/B2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_x="0dp"
android:layout_y="190dp"
android:text="Adicionar Caracter"
android:onClick="eAddChar" />
<Button
android:id="@+id/B3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_x="0dp"
android:layout_y="230dp"
android:text="Fijar Caracter"
android:onClick="eSetChar" />
<Button
android:id="@+id/B4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_x="0dp"
android:layout_y="270dp"
android:text="Obtener Caracter"
android:onClick="eGetChar" />
<Button
android:id="@+id/B5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_x="0dp"
android:layout_y="310dp"
android:text="Remover Caracter"
android:onClick="eRemChar" />
<Button
android:id="@+id/B6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_x="0dp"
android:layout_y="340dp"
android:text="Salir"
android:onClick="eSalir" />

</AbsoluteLayout>
* Clase Cadena

public class Cadena {


public Context ctx;
final int MAX_C=1000;
private char elem[] = new char[MAX_C];
private int dim;
private Conjunto May,Min,Dig,Sep;
Cadena(){
dim=-1;
for (int i = 0; i < MAX_C ; i++)
elem[i]=(char)(0);
May=new Conjunto();//'A'..'Z'
for (int i = 0; i < 26 ; i++)
May.agregar((char)(65+i));
Min=new Conjunto();//'a'..'z'
INGENIERIA INFORMÁTICA – PROGRAMACIÓN I ING. EVANS BALCAZAR

for (int i = 0; i < 26 ; i++)


Min.agregar((char)(97+i));
Dig=new Conjunto();//'0'..'9'
for (int i = 0; i <= 9 ; i++)
Dig.agregar((char)(48+i));
Sep=new Conjunto();//' ','_','-','.',':',',',';'
Sep.agregar(' ');
Sep.agregar('_');
Sep.agregar('-');
Sep.agregar('.');
Sep.agregar(':');
Sep.agregar(',');
}
public int getDim(){
return dim+1;
}
public void addChar(char ele){
if(dim<MAX_C){
dim++;
elem[dim]=ele;
}else
ShowMessage("Almac. Lleno");
}
public void setChar(int pos,char ele){
pos--;
if((pos>=0)&&(pos<=dim))
elem[pos]=ele;
else
ShowMessage("Fuera de Rango...");
}
public char getChar(int pos){
pos--;
if((pos>=0)&&(pos<=dim))
return elem[pos];
else
return (char)(0);
}
public void remChar(int pos){
pos--;
if((pos>=0)&&(pos<=dim)){
for (int i = pos; i < dim ; i++)
elem[i]=elem[i+1];
dim--;
}
else
ShowMessage("Fuera de Rango...");
}
public void ShowMessage(String msg){
Toast.makeText(ctx,msg,Toast.LENGTH_LONG).show();
}
}

* Clase Conjunto

public class Conjunto {


final static int MAX_E=256;
private char elem[] = new char[256];
private int dim;
Conjunto(){
dim=-1;
INGENIERIA INFORMÁTICA – PROGRAMACIÓN I ING. EVANS BALCAZAR

for (int i = 0; i <MAX_E ; i++)


elem[i]=(char)(0);
}
public boolean pertenece(char ele){
int i=0;
boolean sw=false;
while((i<dim)&&(! sw)){
if(ele==elem[i])
sw=true;
i++;
}
return sw;
}
public void agregar(char ele){
if(!pertenece(ele)){
dim++;
elem[dim]=ele;
}
}
}

* Eventos
public class Fcadena extends AppCompatActivity {
EditText ele,pos;
TextView L2;
Cadena C;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fcadena);
ele = (EditText)findViewById(R.id.ele);
pos = (EditText)findViewById(R.id.pos);
L2 = (TextView)findViewById(R.id.L2);
}
public void eCrear(View view){
C = new Cadena();
actualizarCad();
ShowMessage("Objeto Creado...");
}
public void eAddChar(View view){
C.addChar(ele.getText().charAt(0));
actualizarCad();
ShowMessage("Adicion Caracter...");
}
public void eSetChar(View view){
int p=Integer.parseInt(pos.getText().toString());
char e=ele.getText().charAt(0);
C.setChar(p,e);
actualizarCad();
ShowMessage("Fijar Caracter...");
}
public void eGetChar(View view){
int p=Integer.parseInt(pos.getText().toString());
char car=C.getChar(p);
ele.setText(car);
actualizarCad();
ShowMessage("Obtener Caracter...");
}
public void eRemChar(View view){
int p=Integer.parseInt(pos.getText().toString());
C.remChar(p);
INGENIERIA INFORMÁTICA – PROGRAMACIÓN I ING. EVANS BALCAZAR

actualizarCad();
ShowMessage("Eliminar Caracter...");
}
public void ShowMessage(String msg){
Toast.makeText(this,msg,Toast.LENGTH_LONG).show();
}
public void actualizarCad(){
L2.setText("{ ");
for (int i = 1; i <=C.getDim() ; i++)
L2.append(C.getChar(i)+" ");
L2.append(" }");
}

You might also like