Datos personales

miércoles, 21 de marzo de 2012

COLAS

es simplemente un lugar para almacenar cosas, donde esas cosas se insertan una detrás de otra y para extraer siempre se lo hace por adelante de la cola donde se encuentra el primer elemento. Una cola funciona como una fila o cola de personas, que esperan su turno para ser atendidas, la primera persona atendida es siempre la primera de la fila y cuando llega una persona y queremos incorporarla a cola o adicionarla debemos hacerlo por detrás de la ultima persona en la cola.
larga fila de personas
Con fines educativos una cola se la puede representar gráficamente así:
colas


n
retorna verdad si es que la cola esta llena, pasa cuando se ha llenado todo el vector, la cantidad de elemento que permite la cola lo determina la variable MAXIMO.
adicionar(int a)
adiciona un nuevo elemento a la cola, para esto solo se incrementa la variable fin y se coloca el elemento en esa posición.
eliminar() : int
extrae el primer elemento de la cola, para esto se retorna la posición inicio + 1 del vector y se incrementa inicioen 1.
tamanio() : int
retorna la cantidad de elementos que tiene la cola, para realizar esto se realiza la resta fin - inicio.
copiar(Cola B)
copia tal cual la cola B a la cola destino, al finalizar cola B queda totalmente vacía. Este método es muy útil al momento de hacer operaciones con colas.


ejemplo:


package cola;

/**
 *
 * @author PC-135-23
 */
import java.util.Scanner; 
public class colas { 
 public static void main(String[]args){
          int dato; 
          int inicio; 
          int cola[]=new int[5]; 
           Scanner teclado=new Scanner(System.in);
           for(int fin=0;fin<=5;fin++){ 
                System.out.println("Proporciona datos para la cola"); 
        dato=teclado.nextInt(); 
        cola[fin]=dato; 
         } 
    for(int fin=0;fin>=5;fin--)
        System.out.println("La cola tiene los siguientes datos:"+cola[fin]); 
    } 
}

PILAS

En palabras sencillas es un lugar donde se almacenan datos, al igual que en un Array, pero una Pila tiene una filosofía de entrada y salida de datos, esta filosofía es la LIFO (Last In First Out, en español, ultimo en entrar, primero en salir). 



 Pilas

 Los métodos principales de una Pila son:

esVacia()
retorna verdad o falso si la Pila esta vacía, es decir que no tiene ningún elemento, retorna unboolean.

apilar(int a)
adiciona el elemento a en la Pila.

desapilar()
elimina el elemento de la cima de la pila.

vaciar(Pila B)
vacía todo el contenido de la Pila B en la Pila, dejando a B vacía.

tamanio()
retorna cuantos elementos tenemos en la Pila.

cima()
retorna el elemento de la cima sin eliminarlo de la Pila.

mostrar()
muestra todos los elementos de la Pila en modo Consola.


Siguiendo la filosofía se adicionar elementos apilando uno debajo de otro.

Pilas apilar
Para eliminar un elemento, se extrae o desapila un elemento por la cima.

pilas desapilar
Otro método que necesita explicación es el método vaciar, un método muy útil que también utilizamos para mostrar la Pila es el vaciar.

pilas vaciar
Luego la Pila principal queda vacía y la pila B queda así:

pilas vaciada
ejemplo de pila:

package pila
/**
 *
 * @author PC-135-23
 */
import java.util.Scanner;
public class PilaEstatica { 
public static void main(String[]args){
    int dato;  
    int pila[]=new int[5];  
     Scanner teclado=new Scanner(System.in);
    for(int tope=0;tope<=4;tope++){  
        System.out.println("Proporciona datos para la pila"); 
        dato=teclado.nextInt(); 
        pila[tope]=dato; 
   
    for(int tope=4;tope>=0;tope--)
        System.out.println("La pila tiene los siguientes datos:"+pila[tope]);
    } 

lunes, 5 de marzo de 2012

MATRICES

DEFINICION DE UNA MATRIZ

La definicion de una matriz numerica multidimensional se hace de esta forma:


tipo[][]...nombrematriz=new|tipo[s1][s2]...


Tipo no es mas que el tipo de elementos (enteros, reales...)


El numero de elementos de la matriz biene dado por el producto de s1 por s2 (s1 filas, s2 columnas)


Un ejemplo concreto:


int[][]m=new int[2][7]




ejemplos de la clase



package matrizunidadapp;

/**

*

* @author PC135-23

*/

public class MatrizUnidadApp {

public static void main (String[] args) {

double[][] mUnidad= new double[4][4];

for (int i=0; i < mUnidad.length; i++) {

for (int j=0; j < mUnidad[i].length; j++) {

if (i == j) {

mUnidad[i][j]=1.0;

}else {

mUnidad[i][j] = 0.0;

}

}

}

for (int i=0; i < mUnidad.length; i++) {

for (int j=0; j < mUnidad[i].length; j++) {

System.out.print(mUnidad[i][j]+"\t");

}

System.out.println("");

}

}

}



otro ejemplo de la clase



package matrizcalif;

import java.util.Scanner;

/**

*

* @author PC135-23

*/

public class MatrizCalif {

public static void main (String args []) {

int i,j;

double suma, promedio,parcial;

double calif [][]=new double[22][5];

Scanner captura= new Scanner(System.in);

for(i=0; i<22; i++)//las filas

{

suma=0;

System.out.println("Ingrese las calificaciones:");

for(j=0; j<5; j++)//columnas

{

parcial=captura.nextDouble();

calif[i][j]=parcial;

suma=suma+calif[i][j];

}

promedio=suma/5;

System.out.println( "El alumno, tiene un promedio de: "+promedio);

}

}

}




Programa que genera una matriz de dos dimensiones con letras del alfabeto, mostrándola posteriormente en pantalla.
01.public static void main(String[] args) {
02.final int FILAS = 3;
03.final int COLUMNAS = 5;
04.char letras[][] = new char[FILAS][COLUMNAS];
05.char letraQueToca = 'A';
06. 
07.//Carga las letras en la matriz
08.for(int f=0; f<FILAS; f++) {
09.for(int c=0; c<COLUMNAS; c++) {
10.letras[f][c] = letraQueToca;
11.letraQueToca++;
12.}
13.}
14. 
15.//Mostrar en pantalla la matriz
16.for(int f=0; f<FILAS; f++) {
17.for(int c=0; c<COLUMNAS; c++) {
18.System.out.print(letras[f][c]+" ");
19.}
20.System.out.println();
21.}
22.}
Programa que genera una matriz representando un triángulo invertido alineado a la derecha realizado con asteriscos, cuyo tamaño será especificado por el usuario. La matriz será mostrada en pantalla finalmente. Por ejemplo, si se indica el tamaño 5 deberá aparecer:
*****
 ****
  ***
   **
    *

01.public static void main(String[] args) {
02.final int TAM = 5;
03.char triangulo[][] = new char[TAM][TAM];
04. 
05.//Cargar matriz con el dibujo
06.for(int f=0; f<TAM; f++) {
07.//Bucle para mostrar espacios
08.for(int c=0; c<f; c++)
09.triangulo[f][c] = ' ';
10.//Bucle para mostrar asteriscos
11.for(int c=f; c<TAM; c++)
12.triangulo[f][c] = '*';
13.}
14. 
15.//Mostrar matriz en pantalla
16.for(int f=0; f<TAM; f++) {
17.for(int c=0; c<TAM; c++)
18.System.out.print(triangulo[f][c]);
19.System.out.println();
20.}
21.}

jueves, 1 de marzo de 2012

ARREGLOS

Un  array  o arreglo  es una  secuencia  de datos  del mismo tipo. Los datos  se llaman  elementos  del  array  y se  numeran  consecutivamente 0,1,2,3…


• El nombre de un array es un valor constante que representa la dirección del primer elemento del array.
Para acceder a un elemento especifico del array, se utiliza el nombre de éste seguido por uno o más “índices” (donde cada uno representa una dimensión del arreglo o array) encerrado entre corchetes. Supongamos que tenemos un arreglo unidimensional llamado X con un tamaño de “n” elementos, su esquema grafico es el siguiente:



Como puede verse en el esquema, aunque el arreglo es de “n” elementos, en realidad tienen “n-1” elementos porque comienzan a enumerarse desde cero.
EJEMPLO:
package pesojugador;
import java.util.Scanner;
/**
 *
 * @author PC135-23
 */
public class Pesojugador {
    private static int[][] Pesojugador;
public static void main(String[]args) {
    int NUM =10;
    Double peso[]=new Double[NUM];
    Double pesos;
    System.out.println("Por favor introduzca el peso de los jugadores:");
    for(int j=0; j<=NUM; j++)
    {
       Scanner teclado= new Scanner (System.in);
       pesos=teclado.nextDouble();
      peso[j]= pesos/2;
    }
       for(int i=0; i< NUM;i++)
       {
        System.out.print("Peso de Jugadores en kilos");
        System.out.print(" "+peso[i]);
        }
    }

}




Ejemplo 2: 
Elabore un programa que permita leer una lista de números en un arreglo, calcule la suma, promedio, cuadrado , cubo y desviación estándar de los mismos:
#include stdio.h>
#include stdlib.h>
#include conio.h>
#include math.h>
#define tam 4
/* programa para calcular la suma, promedio, cuadrado, cubo y desviación
estandar de una serie de números */
main ( )
{
double vector[tam],cuadrado, cubo;
float prom, desv,suma=0;
int i, j;

system("cls" );
printf ("PROGRAMA PARA CALCULAR \n");
printf(" PROMEDIO, SUMA, CUADRADO, CUBO Y DESV. EST.\n\n") ;
//Captura de valores y suma de los mismos
for(i = 0 ; i < tam ; ++i)
{
printf ("num [%d] = " , i) ;
scanf ("%lf" , &vector[i]) ;
suma+= vector[i] ;
}
prom = suma / tam ;
printf (" \n El promedio de los numeros es: %4.2f\n ", prom) ;
//Calculo e impresión de cuadrado, cubo y desviación estandar
printf(" \n \n NUMERO CUADRADO CUBO DESV. EST.\n");
for( i = 0 ; i < tam ; ++i )
{
cuadrado = vector[i] * vector[i] ;
cubo = pow (vector[i], 3) ;
desv = vector [i] - prom ;
printf ("%.2lf", vector[i] ) ;
printf (" \t%.2lf", cuadrado) ;
printf (" \t%.2lf", cubo) ;
printf (" \t%.2f\n", desv) ;
}
system("pause");
return(0);
}

Nota que los valores fueron declarados de tipo double no enteros, por el tamaño de los valores que se generan en los cálculos.