Sie sind auf Seite 1von 7

Ingeniera de Sistemas UNSCH

Estructura de datos IS241


LABORATORIO 01
ESTRUCTURA DE DATOS INTERNAS ESTATICAS PRIMITIVAS
Tipos de datos
Las aplicaciones normalmente deben de manipular datos en combinaciones con algunas
operaciones vlidas que dichos datos deben de soportar. El lenguaje java contiene un
grupo definido tipos de datos. Un tipo de datos determina las operaciones que se puedan
realizar con los datos. Existen dos categoras de datos principales en el lenguaje java.
Tipo primitivos: Existen 8 tipos de datos primitivos que se pueden clasificar en: tipos
numricos y el tipo boolean. Los tipos primitivos (simples o bsicos) son:
Tipos de datos
Enteros
Byte
8 bits
Short
16 bits
Int
32 bits
Long
64 bits
Char
16 bits
Tipo de datos reales( de punto flotante)
Float

32 bits

Doubl

64 bits

Rango
-128 a +127
-32767 a + 32766
-2147483648 a +

Nmero real de precisin


simple
Nmero real de precisin
doble

Tipo de dato Lgico


Boolean

Solo se acepta valores true


y false
Tipos de datos referenciales: Existen tres tipos de datos referenciales: clases, interfaces
y arrays
Ejercicios01: ejecute el programa y capture la imagen de salida y explique
package TiposDeDatos;public class Ejercicio01 { public static void main(String[] args)
{ int entero; System.out.println("valor inicializado"+entero); }}
Respuesta

Ing. Elinar Carrillo Riveros


Ing. Jennifer Roco Pillaca De La Cruz
Semester 2015-I

Pgina 1

Ingeniera de Sistemas UNSCH


Estructura de datos IS241
Despus de ejecutar el programa, aparece un error porque no se ha declarado
ni inicializado la variable entero con su respectivo tipo.

Ejercicio02 : Cuanto espacio de memoria est ocupando con respecto a la declaracin


de tipos de dato. Ejecute el programa y capture la imagen de salida y explique
package TiposDeDatos; public class Ejercicio02 { public static void main(String[]
args) { int n=100;
byte m=1;
char l='a'; System.out.println(n+m+l); }}
Respuesta

El programa realiza una suma de n que vale 100, m que vale 1 y l que en este caso
tomara el valor de la posicin que se encuentran la letra a, que es 97 por lo tanto la
suma de (n+m+l) resultara 198.

Ejercicio03: Ejecute y capture la imagen de salida y explique


package TiposDeDatos;public class Ejercicio03 { public static void main(String[] args)
{ for(int i=97; i<123; ++i)
{char letra=(char)i; System.out.println(letra); }}}
Respuesta

Este programa utiliza un for para imprimir los nmeros desde el 97 hasta el 123, pero
se hace un cambio de tipo de enteros (int) a carcter(char), por lo tanto se imprime las
letras que corresponden a los nmeros que en este caso son desde la letra a a la z.

Ing. Elinar Carrillo Riveros


Ing. Jennifer Roco Pillaca De La Cruz
Semester 2015-I

Pgina 2

Ingeniera de Sistemas UNSCH


Estructura de datos IS241
Ejercicio04: Implemente un programa para imprimir en forma inversa el
abecedario en maysculas utilizando do while
Respuesta
public class Ejercicio04 {
public static void main(String[] args) {
int i=90;
do {
char l= (char) i;
i--;
System.out.println(l);
}
while ( i >= 65 );
}
}
Mtodos Recursivos
Recursividad directa: es aquella en cuya definicin slo aparece una llamada
recursiva.
Ejercicio 01
Implemente un mtodo recursivo de la serie fibonnaci
Respuesta
int fib( int n ) {
if(n <= 1) return 1;
return(fib(n-1) + fib(n-2));
}

Ejercicio02
Implemente un mtodo recursivo para encontrar el factorial de un nmero
Ing. Elinar Carrillo Riveros
Ing. Jennifer Roco Pillaca De La Cruz
Semester 2015-I

Pgina 3

Ingeniera de Sistemas UNSCH


Estructura de datos IS241
Respuesta
public static int factorial(int n){
if(n==0) return 1;
return n*factorial(n-1);
}

Ejercicio03
Implemente un mtodo recursivo para encontrar la sumatoria de dgitos de un nmero
Respuesta
public static int Sumdig(int n){
if (n==0) return 0;
else
return Sumdig(n/10)+ (n%10);
}

Recursividad anidada: llamada recursiva hay una nueva llamada a s misma.


Ejercicio 01
Ejecute la funcin Ackerman y explique la funcionalidad
int ack( int n, int m )
{
if(n==0 ) return(m+1);
else if(m==0) return(ack(n-1,1));
return(ack(n-1, ack(n,m-1)));
}

Ejercicio 02
Ing. Elinar Carrillo Riveros
Ing. Jennifer Roco Pillaca De La Cruz
Semester 2015-I

Pgina 4

Ingeniera de Sistemas UNSCH


Estructura de datos IS241
Ejecute la funcin Morris y explique la funcionalidad
long mor(int n,m)
{if (n==m)
return (m+1);
else
return mor(n,mor(n-1,m+1));
}
Respuesta

Recursividad cruzada o indirecta: Son algoritmos donde una funcin provoca una
llamada a s misma de forma indirecta, a travs de otras funciones.
Ejercicio 01
Ejecute la funcin recursiva y explique su funcionalidad
int par( int nump )
{if(nump==0) return(1);
return( impar(nump-1));}
int impar( int numi )
{if(numi==0) return(0);
return( par(numi-1));}
Respuesta
El programa luego de ejecutase devuelve un 0 cuando el numero ingresado es par, u
devolver 1 si el numero ingresado es impar.

Ejercicios para investigar


Mtodos recursivos:
Ing. Elinar Carrillo Riveros
Ing. Jennifer Roco Pillaca De La Cruz
Semester 2015-I

Pgina 5

Ingeniera de Sistemas UNSCH


Estructura de datos IS241
1. Investigar las funciones recursivas del Triangulo de pascal,
conversin de decimal a binario, potencia.
Triangulo de pascal.
public static int comb(int n,int m){
if ((n==0)||(m==0)) return 1;
else
return comb(n-1, m-1)+ comb(n-1, m);
}

Conversin de decimal a binario.


public static String bina(int n){
if (n>0)
return bina(n/2) + (n%2);
else
return "";

}
Funcin potencia.
public static int pot(int b, int e){
if (e==0) return 1;
else
return b* pot(b, e-1);
}
2. Investigar 2 funciones recursivas anidadas
3. Investigar 2 funciones recursivas cruzadas o indirectas.
4. Trabajo:
Ing. Elinar Carrillo Riveros
Ing. Jennifer Roco Pillaca De La Cruz
Semester 2015-I

Pgina 6

Ingeniera de Sistemas UNSCH


Estructura de datos IS241
a. Crear un men
b. Factorial
c. Sumatoria
d. Cambio base
e. Fibonacci
f. Primo

Ing. Elinar Carrillo Riveros


Ing. Jennifer Roco Pillaca De La Cruz
Semester 2015-I

Pgina 7