martes, 17 de junio de 2014

Ejemplos matrices y un ejemplo utilizando el comando do while

Ejemplo 1
import java.util.Scanner;
public class diagonalmatriz{
public static void main (String [] arg){

int [][] matriz=new int [3][3];
int sum=0;
byte i,j;
Scanner w=new Scanner(System.in);
for(i=0; i<=2; i++){
for(j=0; j<=2; j++){
System.out.print("Dame un numero: ");
matriz[i][j]=w.nextInt ();
if (i==j){
sum=sum+matriz[i][j];
}
}
}
for(i=0; i<=2; i++)
for(j=0; j<=2; j++)
System.out.println("Los numeros son: "+matriz[i][j]);

System.out.println("La suma total de la diagonal principal es: "+sum);
}

}
Ejemplo 2
import java.util.Scanner;
public class negativos{
public static void main ( String [] arg){
int []num=new int[10];
int i,neg=0,pos=0;
Scanner w=new Scanner(System.in);

for(i=0; i<10; i++) {
System.out.print("Escribe un numero: ");
num[i]=w.nextInt ();
if (num[i]>=0){
pos=pos+1;
}
else{
neg=neg+1;
}
}
System.out.println("Hay "+pos+" numeros positivos");
System.out.println("Hay "+neg+" numeros negativos");
}

}

Ejemplo 3
import java.util.Scanner;
public class sumaarreglos {
public static void main (String [] arg){
int []num=new int[10];
int i,total=0;
Scanner w=new Scanner(System.in);
for(i=0; i<10; i++){
System.out.print("Escribe un numero: ");
num[i]=w.nextInt (); //lectura del arreglo
total=total+num[i];
}
for(i=9; i>=0; i--)
System.out.println("num["+i+"]="+num[i]);
System.out.println("El total es: "+total);
}

}

Ejemplo 4
import java.util.Scanner;
public class sumarenglones{
public static void main (String [] arg){

int [][] matriz=new int [3][3];
byte i,j;
int sum=0,sumaren=0;
Scanner w=new Scanner(System.in);
for (i=0; i<=2; i++){
for (j=0; j<=2; j++){
System.out.print("Escribe un valor ["+i+"]["+j+"]: ");
matriz[i][j]=w.nextInt();
sumaren=sumaren+matriz[i][j];
sum=sum+matriz[i][j];
}
System.out.println("La suma del renglon "+i+" es "+sumaren);
sumaren=0;
}
System.out.println("La suma es: "+sum);
for (i=0; i<=2; i++)
for (j=0; j<=2; j++)
System.out.println("Valor ["+i+"]["+j+"]: "+matriz[i][j]);
}

}
Ejemplo do while
import java.util.Scanner;
class dowhile {
public static void main (String [] arg) {
short A,B,R,opcion;
float Res;
Scanner w= new Scanner(System.in);
do{
System.out.println("Escribe un numero");
A= w.nextShort ();
System.out.println("Escribe otro numero");
B= w.nextShort ();
System.out.println("Que deseas hacer: "+"\n"+"1.- Sumar"+"\n"+"2.- Restar"+"\n"+"3.- Multiplicar"+"\n"+"4.- Dividir"+"\n"+"5.- Salir");
opcion= w.nextShort ();
if (opcion>4) {
System.out.println("FIN");
break;
}
switch (opcion){
case 1: R=(short) (A+B);
System.out.println("La suma es: "+R);
break;
case 2: R=(short) (A-B);
System.out.println("La resta es: "+R);
break;
case 3: R=(short) (A*B);
System.out.println("La multiplicacion es: "+R);
break;
case 4: Res=(float) A/B;
System.out.println("La division es: "+Res);
break;
default: System.out.println("Error en la opcion");
}
}while (opcion<5);
}
}

Pilas en estructuras de datos

ÍNDICE

Introducción
¿Qué es una pila “LIFO” ¿
Aplicaciones de las pilas
Operaciones Básicas con Pilas
Conclusión



INTRODUCCIÓN

En este trabajo se hablara sobre las pilas que están regidas por el principio LIFO ((Last
Input Firt Output) es similar al de colas que se trabajan con los elementos del principio y del final se me hace un tema muy interesante por investigar para lograr mas conocimientos acerca del tema.



QUE ES UNA PILA LIFO

Una pila es una lista ordenada o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el área de informática debido a su simplicidad y ordenación implícita de la propia estructura.
Para el manejo de los datos se cuenta con dos operaciones básicas: apilar (push), que coloca un objeto en la pila, y su operación inversa,retirar (o desapilar, pop), que retira el último elemento apilado.
En cada momento sólo se tiene acceso a la parte superior de la pila, es decir, al último objeto apilado (denominado TOS, Top of Stack en inglés). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS.



Aplicaciones de las Pilas.

Los navegadores de Internet almacenan las direcciones visitadas recientemente. Cada vez que el usuario visita una página, su dirección es almacenada en una pila, de forma que cada vez que el usuario hace click en back se retira el último elemento insertado en la pila, esto es, se muestra en pantalla la última página visitada.

Implementación


Un requisito típico de almacenamiento de una pila de n elementos es O(n). El requisito típico de tiempo de O(1) las operaciones también son fáciles de satisfacer con un array o con listas enlazadas simples.
La biblioteca de plantillas de C++ estándar proporciona una "pila" clase templated que se limita a sólo apilar/desapilar operaciones. Java contiene una biblioteca de la clase Pila que es una especialización de Vector. Esto podría ser considerado como un defecto, porque el diseño heredado get () de Vector método LIFO ignora la limitación de la Pila.
Estos son ejemplos sencillos de una pila con las operaciones descritas anteriormente (pero no hay comprobación de errores).




OPERACIONES BASICAS CON PILAS

Operaciones

Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen añadir más de uso habitual.
·         Crear: se crea la pila vacía. (constructor)
·         Tamaño: regresa el número de elementos de la pila. (size)
·         Apilar: se añade un elemento a la pila.(push)
·         Desapilar: se elimina el elemento frontal de la pila.(pop)
·         Cima: devuelve el elemento que esta en la cima de la pila. (top o peek)
·         Vacía: cierto si la pila está vacía o falso en caso contrario (empty).

CONCLUSIÓN
Fue muy interesante esta investigación en el sentido de una perspectiva distinta a la de colas, como era que los datos solo salen por el ultimo cuando entra uno.


Se me hizo muy interesante este tema y espero poder aplicarlo de ahora en adelante.

Estructura de datos

ÍNDICE

Introducción
Estructura de Datos
Clasificación de Datos
Operaciones Básicas de Estructuras de Datos
Conclusión



INTRODUCCIÓN
El presente trabajo consiste en definir que es la estructura de datos, además de las utilizaciones que se tienen para poder facilitar trabajos.
La comprensión adecuada del tema es de mucha importancia en esta clase de programación.
Se hablara acerca de cómo está conformada una Estructura de datos, quienes la componen y para que nos sirve. En programación, este término es muy utilizado, ya que ayuda a los programadores, a  manipular y organizar,  ciertos objetivos.



ESTRUCTURA DE DATOS
Las estructuras de datos determinan la conexión lógica entre los datos y afectan el procesamiento físico de los datos. Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella. Algunas veces a estas estructuras se les llama tipos de datos, así mismos estos  se pueden definir como, una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen en ella.
Las estructuras de datos son muy importantes en los sistemas de computadora y en las áreas de programación.  Los tipos de datos más frecuentes y  utilizados en los diferentes lenguajes de programación son los siguientes:




CLASIFICACION DE DATOS
Dependiendo del tipo de datos tratados, es decir, de la naturaleza de la información con la que se trabaje, los datos deberán acogerse a unas medidas mínimas y concretas de seguridad clasificadas en distintos niveles:
Nivel Básico: Datos de carácter meramente identificativo tales como nombre, apellidos, DNI, edad, etc.

Nivel Medio: Podemos clasificarlo en:
a) Datos relativos a la comisión de infracciones administrativas o penales.
b) Aquellos relativos a los ficheros las empresas que prestan servicios de solvencia patrimonial y crédito (art. ,29 de la LOPD).
c) Aquellos de los que sean responsables Administraciones tributarias y se relacionen con el ejercicio de sus potestades tributarias.
d) Aquellos de los que sean responsables las entidades financieras para las finalidades relacionadas con la prestación de servicios financieros.
e) Aquellos de los que sean responsables las entidades gestoras y de servicios comunes de la seguridad social y ser relacionen con el ejercicio de sus competencias. También aquellos de los que sean responsables las mutuas de accidentes de trabajo y enfermedades profesionales de la seguridad social.
f) Aquellos que contengan un conjunto de datos de carácter personal que ofrezcan una definición de las características o la personalidad de los ciudadanos y que permitan evaluar determinados aspectos de la personalidad o el comportamiento de los mismos.

Nivel Alto: Datos especialmente protegidos.                             
a) Datos relativos a ideología, afiliación sindical, religión, creencias, origen racial, salud o vida sexual.
b) Datos recabados con fines policiales sin consentimiento de las personas afectadas.
c) Aquellos que contengan datos derivados de actos de violencia de género.
OPERACIONES BÁSICAS DE ESTRUCTURAS DE DATOS

Otras operaciones básicas en programación son:
Ø Alta, adicionar un nuevo valor a la estructura.
Ø Baja, borrar un valor de la estructura.
Ø Búsqueda, encontrar un determinado valor en la estructura para realizar una operación con este valor, en forma secuencial o binario (siempre y cuando los datos estén ordenados).

Otras operaciones que se pueden realizar son:
Ø  Ordenamiento, de los elementos pertenecientes a la estructura.
Ø  Apareo, dadas dos estructuras originar una nueva ordenada y que contenga a las apareadas.



CONCLUSIÓN
Fue muy importante esta investigación para conocer mas de estructuras de datos, pues es algo que debemos de dominar.
Una estructura de datos se clasifica por las diferentes tipos de operación que en esta se realizan, eso nos ayudan a organizar mejor nuestros productos o nuestros elementos de cada estructura de datos.
También conocimos que los datos se clasifican en dos, datos simples y datos estructurados los cual cada uno de ellos tiene sus propias características. En los simples podemos observar que los define como, los datos que son primitivos y que no están compuestos con otras estructuras de datos, si no que mantienen su origen. Estos pueden ser estándar o no estándar, ya que pueden ser manejados por un programador.


Colas de estructura de datos

Índice


Introducción

Definicion de cola en estructura de datos

Aplicacion de las colas  en estructuras de datos

Operaciones Básicas y auxiliares de las “colas” en estructura de datos

Representación de las “colas” en estructura de datos

TIPOS DE COLAS EN ESTRUCTURA DE DATOS

1.COLA CIRCULAR O ANILLO

2. DOBLE COLA (BICOLA)

Conclusión











INTRODUCCION

En este tema se abordara y se explicara de que consiste la cola en estructura de datos, definiéndola, mostrando sus características y la utilidad que tienen al dia a dia.
Tambien se darán ejemplos para que el tema quede mejor expuesto, se habla también sobre los tipos de colas que hay.



Definicion de cola en estructura de datos
A la cola se le considera un primo cercano de la pila. La cola puede definirse como un contenedor de datos que funciona de acuerdo al principio FIFO (First Input First Output) porque el primer elemento que entra a la cola es el primero que sale. En una cola los datos entran por un extremo llamado final (rear) y se insertan por el otro extremo llamado frente (front). Una buena analogía de esta estructura de datos es un grupo de personas esperando en línea para entrar al cine
La particularidad de una estructura de datos de cola es el hecho de que sólo podemos acceder al primer y al último elemento de la estructura. Así mismo, los elementos sólo se pueden eliminar por el principio y sólo se pueden añadir por el final de la cola.

Ejemplos de colas en la vida real serían: personas comprando en un supermercado, esperando para entrar a ver un partido de béisbol, esperando en el cine para ver una película, una pequeña peluquería, etc. La idea esencial es que son todos líneas de espera.
Aplicaciones de las colas.
Esta estructura de datos se usa en muchos sistemas operativos, por ejemplo Unix, para llevar el control de la ejecución de procesos, cada proceso en el sistema es almacenado en una lista y esta se va recorriendo, dándole un pequeño tiempo del microprocesador a cada proceso, durante la fracción de segundo de cada proceso este asume que tiene el control total del procesador.



 Operaciones con colas

Crear: se crea la cola vacía.
Encolar (añadir, entrar, insertar): se añade un elemento a la cola. Se añade al final de esta.
Desencolar (sacar, salir, eliminar): se elimina el elemento frontal de la cola, es decir, el primer elemento que entró.
Frente (consultar, front): se devuelve el elemento frontal de la cola, es decir, el primer elemento que entró.
Otras mas son        

Operaciones Básicas
Insertar. Agregar un elemento al final de la cola
Remover. Remover el primer elemento de la cola.

Operaciones Auxiliares
Llena: Regresa verdadero cuando la cola esta llena.
Vacía: Regresa verdadero cuando la cola esta llena.





Implementacion de colas en java
import java.io.*;
import java.lang.*;
class ColaEstatica
{ int frente, fin, capacidad;
 private int elementos[];
 public ColaEstatica(int cap) {capacidad=cap; elementos=new int[capacidad]; frente=-1; fin=0;}

 public boolean vacia() {return (fin==0) ? true : false;}
 public boolean llena() {return (fin==capacidad)? true : false;}

 public void insertar(int objeto){
 try { if (!llena()) {elementos[fin]=objeto; fin++; }
 else{ System.out.println("Pila Llena"); new Teclado().espera(); }
 }
 catch (java.lang.ArrayIndexOutOfBoundsException Error) { System.out.println("Desborde de Cola"); }
 }

 public int remover() { int x=elementos[0];
 for(int i=0; i<fin-1;i++)
 elementos[i]=elementos[i+1];
 fin--;
 return(x);
 }
 }
 public class pruebaColaEstatica{
 public static void main(String arg[]) throws IOException{
 ColaEstatica cola=new ColaEstatica(5);
 int obj1,opcion;
 Integer cadena=new Integer(0);
 Teclado keyboard = new Teclado();
 do{
 Teclado.clrscr();
 System.out.println("1) Insertar dato");
 System.out.println("2) Remover dato");
 System.out.println("3) Fin de Programa");
 System.out.println("Opcion: "); opcion=cadena.parseInt(keyboard.leer() );
 switch(opcion)
 { case 1: if (!cola.llena() ){System.out.println("Escribe un numero: ");
 cola.insertar(cadena.parseInt(keyboard.leer()) );
 }
 else{ System.out.println("Cola Llena");
 keyboard.espera();
 }
 break;
 case 2:if (!cola.vacia())
 System.out.println("Dato sacado " + cola.remover() );
 else
 System.out.println("Cola Vacia");
 keyboard.espera();
 break;
 case 3: break;
 }
 } while(opcion!=3);
 }
 }
TIPOS DE COLAS EN ESTRUCTURA DE DATOS
COLA CIRCULAR O ANILLO:
Una cola circular o anillo es una estructura de datos en la que los elementos están de forma circular y cada elemento tiene un sucesor y un predecesor. Los elementos pueden consultarse, añadirse y eliminarse únicamente desde la cabeza del anillo que es una posición distinguida. Esta avanza en el sentido de las agujas del reloj. En la figura mostrada muestra una cola circular con un solo dato almacenado. La variable “final” es la posición en donde se hizo la última inserción. Después que se ha producido una inserción, final se mueve circularmente a la derecha.




DOBLE COLA (BICOLA)
Es un tipo de cola especial que permiten la inserción y eliminación de elementos de ambos extremos de la cola. Puede representarse a partir de un vector y dos índices, siendo su representación más frecuente una lista circular doblemente enlazada. Todas las operaciones de este tipo de datos tienen coste constante. Existen dos tipos de la doble cola: · Doble cola de entrada restringida: acepta inserciones solo al final de la cola. · Doble cola de salida restringida: acepta eliminaciones solo al frente de la cola.
 



Conclusión


Llegue a la conclusión de que las colas pueden llegar a ser muy útiles en la organización de la información pero no tanto a la manera de querer ingresar nuevos datos es ahí entonces donde presentan un gran problema ya que solo aceptan información al final o inicio de la cola no al intermedio.