Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Programacion en Java

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 58

Introduccin a la programacin en Java

Msc. Ebert San Roman

Introduccin a la programacin en Java


Dato
Representacin formal de hechos, conceptos o instrucciones adecuadas para su comunicacin, interpretacin y procesamiento por seres humanos o mdios automticos.

Introduccin a la programacin en Java


Tipo de dato
Especificacin de un dominio (rango de valores) y de un conjunto vlido de operaciones a los que normalmente los traductores asocian un esquema de representacin interna propio.

Clasificacin de los tipos de datos


En funcin de quin los define:
Tipos de datos estndar Tipos de datos definidos por el usuario

En funcin de su representacin interna:


Tipos de datos escalares o simples Tipos de datos estructurados

Codificacin de los datos en el ordenador


En el interior del ordenador, los datos se representan en binario.

En general, con N bits podemos codificar 2N valores diferentes.


Si queremos representar X valores diferentes, necesitaremos N bits, donde N es el menor entero mayor o igual que log2 X Para 20 datos sale log2 X = 4.32 por tanto necesitamos 5 bits

Representacin de datos de tipo numrico


NMEROS ENTEROS
Ejemplo: Si utilizamos 32 bits para representar nmeros enteros, disponemos de 232 combinaciones diferentes de 0s y 1s: 4 294 967 296 valores. Como tenemos que representar nmeros negativos y el cero,el ordenador ser capaz de representar del 2 147 483 648 al +2 147 483 647. Con 32 bits no podremos representar nmeros ms grandes. 2 147 483 647 + 1 = 2 147 483 648 !!!

Representacin de datos de tipo numrico


La notacin cientfica, es usada para representar nmeros reales. Siendo r es el nmero real a representar, la representacin en notacin cientfica est compuesta de tres partes:

c. El coeficiente, conformado por un nmero real con un solo dgito entero seguido de una coma (o punto) y de varios dgitos fraccionarios. b. La base, que en nuestro sistema decimal es 10, y en el sistema binario de los computadores es 2. e. El exponente entero, el cual eleva la base a una potencia

Representacin de datos de tipo numrico


NMEROS REALES (en notacin cientfica)

(+|) mantisa x 2exponente


El ordenador slo puede representar un subconjunto de los nmeros reales (nmeros en coma flotante) Las operaciones aritmticas con nmeros en coma flotante estn sujetas a errores de redondeo.

Representacin de datos de tipo numrico


Estndar IEEE 754

Precisin sencilla
(bit de signo + 8 bits exponente + 23 bits mantisa)

Precisin doble
(bit de signo + 11 bits exponente + 52 bits mantisa)

Representacin de datos de tipo numrico


En la representacin binaria de coma flotante, el bit de mayor peso define el valor del signo, 0 para positivo, 1 para negativo. Le siguen una serie de bits que definen el exponente. El resto de bits son la parte significativa. Revisaremos varios ejemplos para describir la notacin de coma flotante. Abajo tenemos 3 nmeros en una representacin de coma flotante de 16 bits. El bit de la izquierda es el signo, luego hay 6 bits para el exponente, seguidos de 9 bits para la parte significativa:

Representacin de datos de tipo numrico

Signo El signo es expresado por el bit de la izquierda, con 0 indicando que el nmero es positivo y 1 indicando que el nmero es negativo. En los ejemplos de arriba, el primer nmero es negativo y los dos siguientes son positivos

Representacin de datos de tipo numrico 2,71828 x 10 representa al nmero real 0,0271828


-2

2,71828 x 10-1 representa al nmero real 0,271828 2,71828 x 10 0 representa al nmero real 2,71828 (el exponente cero indica que la coma no se desplaza) 2,71828 x 10 2 representa al nmero real 271,828 2,71828 x 10 1 representa al nmero real 27,1828

Exponente El exponente indica que tanto se debe desplazar hacia la derecha o hacia la izquierda la coma binaria de la parte significativa. En este caso, el exponente ocupa 6 bits capaces de representar 64 valores diferentes, es decir, es un exponente binario (de base 2) que va desde -31 a +32, representando potencias de 2 entre 2-31 y 2+32, indicando que la coma binaria se puede desplazar en hasta 31 dgitos binarios hacia la izquierda (un nmero muy cercano a cero), y hasta 32 dgitos binarios hacia la derecha (un nmero muy grande).

Representacin de datos de tipo numrico

Pero el exponente no se almacena como un nmero binario con signo (desde -31 hasta +32) sino como un entero positivo equivalente que va entre 0 y 63. Para ello, al exponente se le debe sumar un desplazamiento (bias), que en este caso de exponente de 6 bits (64 valores), es 31 (31 es la mitad de los 64 valores que se pueden representar, menos 1), y al final, el rango del exponente de 31 a +32 queda representado internamente como un nmero entre 0 y 63, donde los nmeros entre 31 y 63 representan los exponentes entre 0 y 32, y los nmeros entre 0 y 30 representan los exponentes entre -31 y -1 respectivamente:

Representacin de datos de tipo numrico


1 1 1

Parte significativa La parte significativa, en este caso, est formada por 10 dgitos binarios significativos, de los cuales tenemos 9 dgitos explcitos ms 1 implcito que no se almacena. Esta parte significativa generalmente est normalizada y tendr siempre un 1 como el bit ms significativo. Debido a que, salvo ciertas excepciones, el bit ms significativo del significante siempre es 1, para ahorrar espacio y para aumentar la precisin en un bit, este bit no se almacena, y por ello se denomina bit oculto o implcito, sin embargo, antes de realizar los clculos este bit implcito debe convertirse en un bit explcito.

Representacin de datos de tipo numrico

La notacin genrica para la coma flotante descrita arriba, representa respectivamente los siguientes nmeros reales (expresados en binario). El color rojo indica el bit ms significativo, que cuando se almacena es implcito pero cuando se hacen los clculos, o cuando se muestra la informacin se vuelve explcito:

Representacin de textos
Se escoge un conjunto de caracteres: alfabticos, numricos, especiales (separadores y signos de puntuacin), grficos y de control (por ejemplo, retorno de carro). Se codifica ese conjunto de caracteres utilizando n bits. Por tanto, se pueden representar hasta 2n smbolos distintos. Ejemplos de cdigos normalizados ASCII (American Standard Code for Information Interchange) - ANSI X3.4-1968, 7 bits (128 smbolos) - ISO 8859-1 = Latin-1, 8 bits (256 smbolos)

ASCII (American Standard Code for Information Interchange)

Representacin de textos

Tipos de datos primitivos en Java


El lenguaje Java define 8 tipos de datos primitivos:

Byte , short, int, long, Float, double, char, boolean

Representacin de datos de tipo numrico


Nmeros enteros byte, short, int, long 4 tipos bsicos para representar nmeros enteros (con signo):

Operaciones con nmeros enteros


Desbordamiento Si sobrepasamos el valor mximo que se puede representar con un tipo de dato entero, nadie nos avisa de ello: en la ejecucin de nuestro programa obtendremos un resultado incorrecto.

Operaciones con nmeros enteros


Divisin por cero
Si dividimos un nmero entero por cero, se produce un error en tiempo de ejecucin:

Exception in thread "main" java.lang.ArithmeticException: / by zero at


La ejecucin del programa termina de forma brusca al intentar hacer la divisin por cero.

Operaciones con nmeros enteros


Nmeros en coma flotante: float, double
Segn el estndar IEEE 754-1985

Por defecto, los literales reales representan valores de tipo double Para representar un valor de tipo float, hemos de usar el sufijo f o F: 123.45F 0.0f .001f

Operaciones con nmeros enteros


Operaciones con nmeros en coma flotante Las operaciones aritmticas en coma flotante no generan excepciones, aunque se realicen operaciones ilegales:
Cuando el resultado de una operacin est fuera de rango, se obtiene +Infinity o Infinity (infinito). Cuando el resultado de una operacin est indeterminado, se obtiene NaN (Not a Number)

Operaciones con nmeros enteros


Operadores aritmticos
Java incluye cinco operadores para realizar operaciones aritmticas:

Operaciones con nmeros enteros


Operadores aritmticos
Si los operandos son enteros, se realizan operaciones enteras. En cuanto uno de los operandos es de tipo float o double, la operacin se realiza en coma flotante. - No existe un operador de exponenciacin: para calcular xa hay que utilizar la funcin Math.pow(x,a)

Operaciones con nmeros enteros


Divisin (/)
Si se dividen enteros, el resultado es entero y el resto se pierde.
- Una divisin entera por cero produce una excepcin. - Una divisin por cero, en coma flotante, produce Infinite o NaN.

Operaciones con nmeros enteros


Divisin (/)

Mdulo (%): Resto de dividir

Operaciones con nmeros enteros


Expresiones aritmticas
Se pueden combinar literales y operadores para formar expresiones complejas. Ejemplo

En Java se escribira as: (3+4*x)/5 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y)

Operaciones con nmeros enteros


Expresiones aritmticas
(3+4*x)/5 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y)
Las expresiones aritmticas se evalan de izquierda a derecha. Los operadores aritmticos mantienen el orden de precedencia habitual (multiplicaciones y divisiones antes que sumas y restas). Para especificar el orden de evaluacin deseado, se utilizan parntesis. NOTA: Es recomendable utilizar parntesis para eliminar interpretaciones errneas y posibles ambigedades

Operaciones con nmeros enteros


Precisin
Las operaciones en coma flotante no son exactas debido a la forma en que se representan los nmeros reales en el ordenador.

Expresin: Construccin que se evala para devolver un valor

Caracteres, el tipo char


Literales de tipo carcter Valores entre comillas simples
a b c 1 2 3 *

Cdigos UNICODE (en hexadecimal): \u????


\u000a (avance de lnea) \u000d (retorno de carro)

Caracteres, el tipo char


Secuencias para representar caracteres especiales:

Caracteres, el tipo char


La clase Character define funciones (mtodos estticos) para trabajar con caracteres: isDigit(), isLetter(), isLowerCase(), isUpperCase() toLowerCase(), toUpperCase()

Cadenas de caracteres, la clase String


String no es un tipo primitivo, sino una clase predefinida Una cadena (String) es una secuencia de caracteres Las cadenas de caracteres, en Java, son inmutables: no se pueden modificar los caracteres individuales de la cadena.
Texto entra comillas dobles
Esto es una cadena Esto tambin es una cadena

Las secuencias de escape son necesarias para introducir determinados caracteres dentro de una cadena:
\Esto es una cadena entre comillas\

Cadenas de caracteres, la clase String


Concatenacin de cadenas de caracteres El operador + sirve para concatenar cadenas de caracteres.

Si cualquier operando es un String, toda la operacin se convierte en una concatenacin de cadenas. En Java, cualquier cosa puede convertirse automticamente en una cadena de caracteres (un objeto de tipo String)

Datos de tipo booleano


Representan algo que puede ser verdadero (true) o falso (false).

Expresiones de tipo booleano Se construyen a partir de expresiones de tipo numrico con operadores relacionales. Se construyen a partir de otras expresiones booleanas con operadores lgicos o booleanos.

Datos de tipo booleano


Operadores relacionales Operadores de comparacin vlidos para nmeros y caracteres Generan un resultado booleano

Datos de tipo booleano


Operadores lgicos/booleanos
Operandos booleanos. Tienen menos precedencia que los operadores de comparacin.

Datos de tipo booleano

Datos de tipo booleano


Ejemplos
Nmero x entre 0 y 10 (0 <= x) && (x <= 10)

Nmero x fuera del intervalo [0,10] !((0 <= x) && (x <= 10)) o bien (0 > x) || (x > 10)

Datos de tipo booleano


Operadores a nivel de bits

Se pueden utilizar a nivel de bits con nmeros enteros. No se pueden usar con datos de otro tipo (p.ej. reales).
Los operadores NOT (~), AND (&), OR(|) y XOR (^) Si alguno de los operandos es de tipo long, el resultado es long. Si no, el resultado es del tipo int.

Datos de tipo booleano


Operadores a nivel de bits

NOT (~) realiza el complemento a 1 de un nmero entero: Cambia los 0s por 1s y viceversa
AND(&), OR(|) y XOR(^) funcionan a nivel de bits como los operadores booleanos AND (&&), OR(||) y XOR (^), respectivamente.

Datos de tipo booleano


-f5

Datos de tipo booleano


Los operadores de desplazamiento <<, >> y >>> - El operador de desplazamiento a la izquierda (<<) desplaza los bits del primer operando tantas posiciones a la izquierda como indica el segundo operando. Los nuevos bits se rellenan con ceros. - El operador de desplazamiento a la derecha con signo (>>) desplaza los bits del primer operando tantas posiciones a la derecha como indica el segundo operando. Los nuevos bits se rellenan con unos (si el primer operando es negativo) y con ceros (si es positivo). - El operador de desplazamiento a la derecha sin signo (>>>) desplaza los bits del primer operando tantas posiciones a la derecha como indica el segundo operando. Los nuevos bits se rellenan siempre con ceros. Se pierde el signo del nmero

Datos de tipo booleano


Los operadores de desplazamiento <<, >> y >>>

Variables
Una variable no es ms que un nombre simblico que identifica una direccin de memoria:

Declaracin de variables
Para usar una variable en un programa hay que declararla. El ordenador conoce as cmo codificar la informacin que se va a almacenar en la posicin de memoria correspondiente. Al declarar una variable, se reserva el espacio de memoria necesario para almacenar un valor del tipo de la variable. El identificador asociado a la variable se puede utilizar para acceder al dato almacenado en memoria y para modificarlo.

Declaracin de variables en Java


<tipo> identificador; <tipo> lista de identificadores; Las variables se han de declarar antes de poder usarlas. Los identificadores de las variables son los nombres que utilizaremos para referirnos a ellas. Al declarar una variable, hay que definir su tipo: la variable slo admitir valores del tipo especificado. En una misma declaracin se pueden declarar varias variables, siempre que sean del mismo tipo. En este caso, los identificadores de las variables se separan por comas.

Variables
Ejemplos
// Declaracin una variable entera x de tipo int int x;
// Declaracin de una variable real r de tipo double double r; // Declaracin de una variable c de tipo char char c;

// Mltiples declaraciones en una sola lnea int i, j, k;

Variables
Identificadores en Java El primer smbolo del identificador ser un carcter alfabtico (a, , z, A, , Z, _, $) pero no un dgito. Despus de ese primer carcter, podremos poner caracteres alfanumricos (a, , z) y (0, 1, , 9), signos de dlar $ o guiones de subrayado _. Los identificadores no pueden coincidir con las palabras reservadas, que ya tienen significado en Java:

Palabras reservadas en Java

Variables
Las maysculas y las minsculas se consideran diferentes. $ y _ se interpretan como una letra ms. $ no se suele utilizar en la prctica (lo usa el compilador). Ejemplos vlidos a, pepe, r456, tu_re_da, AnTeNa, antena, usd$

Ejemplos no vlidos 345abc, mi variable, Nombre.Largo, caada, camin

Variables
Convenciones
Los identificadores deben ser descriptivos: deben hacer referencia al significado de aquello a lo que se refieren.
int n1, n2; // MAL int anchura, altura; // BIEN

Los identificadores asociados a las variables se suelen poner en minsculas.


int CoNTaDoR; // MAL int contador; // BIEN

Variables
Convenciones
Cuando el identificador est formado por varias palabras, la primera palabra va en minsculas y el resto de palabras se inician con una letra mayscula.
int mayorvalor; // MAL int mayor_valor; // ACEPTABLE int mayorValor; // MEJOR

Inicializacin de las variables


En una declaracin, las variables se pueden inicializar:
int i = 0; float pi = 3.1415927f; double x = 1.0, y = 1.0;

NOTA: La inicializacin puede consistir en una expresin compleja que se evala cuando se ejecuta el programa

Definicin de constantes en Java


Una constante hace referencia a un valor que no puede modificarse final <tipo> identificador = <valor>; Las constantes se definen igual que cuando se declara una variable y se inicializa su valor. Con la palabra reservada final se impide la modificacin del valor almacenado

Definicin de constantes en Java


Convenciones Los identificadores asociados a las constantes se suelen poner en maysculas.
final double PI = 3.141592;

Si el identificador est formado por varias palabras, las distintas palabras se separan con un guin de subrayado
final char RETORNO_DE_CARRO = \n; final double ELECTRONIC_CHARGE = 1.6E-19;

También podría gustarte