43
Computación Avanzada Computación Avanzada Profesor: María Fátima De Abreu Período Lectivo 1-2005 Universidad de Carabobo. Facultad de Ingeniería. Dpto. de Computación

Computación Avanzada

  • Upload
    dalit

  • View
    63

  • Download
    0

Embed Size (px)

DESCRIPTION

Computación Avanzada. Profesor: María Fátima De Abreu Período Lectivo 1-2005 Universidad de Carabobo. Facultad de Ingeniería. Dpto. de Computación. El lenguaje Java. - PowerPoint PPT Presentation

Citation preview

Page 1: Computación Avanzada

Computación AvanzadaComputación Avanzada

Profesor: María Fátima De AbreuPeríodo Lectivo 1-2005

Universidad de Carabobo. Facultad de Ingeniería. Dpto. de Computación

Page 2: Computación Avanzada

El lenguaje JavaEl lenguaje Java

Java es un lenguaje de programación orientado a objetos diseñado para ser portable en diversas plataformas y sistemas operativos. Desarrollado por Sun Microsystems en 1995.

Es orientado a objetos Es independiente de la plataforma Es Seguro Es Robusto Es confiableEs fácil de aprender Se ajusta a Internet Es gratuito

Page 4: Computación Avanzada

Elementos del LenguajeElementos del Lenguaje

ComentariosUna sola línea

int maxEcua = 4; // máximo número de ecuaciones

Varias líneas/* Programa que determina la solución de un sistema

de ecuaciones utilizando el método de Gauss Jordan*/

Convenciones de codificación

Page 5: Computación Avanzada

Tipos de DatosTipos de Datos

PrimitivosUna variable de tipo primitivo contiene un valor simple : un número, un carácter o un valor booleano

Referencia (apuntador)Un dato cuyo valor es una dirección de memoria

Page 6: Computación Avanzada

Conversión de tiposConversión de tipos

Conversión de tipos (casting) Se permite entre tipos numéricos. Se puede convertir de carácter a

entero y viceversa. No se puede convertir booleanos a números y viceversa.

Conversión de un dato de un tipo menor a uno mayor (Conversión automática) double < float < long < int < short < byte 

Ejemplo:long sumaEdades;short edad = 15;sumaEdades = edad; //convierte automaticamente short a long 

Conversión de un dato de un tipo mayor a uno menor :  (tipo_dato) expresión_a_convertir

 Ejemplo:float kilogramos, resultado;double calculo, valor;// casting kilogramos = (float)(calculo * 1.2); resultado = (float) valor;

Page 7: Computación Avanzada

VariablesVariables

Declaración de variablestipo identificador;int x;

short diaSemana;

Inicialización de variablesfloat sueldo = 12.45;int a, b, c;long z, y;z = y = a = b = c = 0;

Si no se inicializan las variables Java asignará cero a las variables de tipo numérico (enteros y reales), false a las de tipo bolean, \u0000 a las de tipo char.

Los nombres de variables deben comenzar con una letra en minúscula. Si el nombre se deriva de una combinación de palabras las subsiguientes palabras deben comenzar con una letra mayúscula. Puede ser nombres cortos pero con significado, de modo que cualquier lector infiera su uso a partir de su nombre.

Page 8: Computación Avanzada

ConstantesConstantes

Declaración de constantesfinal tipo identificador = valor;

final float ACELERACION = 9.8;

La palabra final es un modificador de acceso que indica que ese es el valor final del lugar de memoria y que evita que su valor pueda ser modificado

Page 9: Computación Avanzada

Diferenciación de mayúsculas y Diferenciación de mayúsculas y minúsculasminúsculas

Al escribir identificadores, por ejemplo el identificador Sueldo es diferente del identificador sueldo. Todas las sentencias de Java deben escribirse en minúsculas, por ejemplo al escribir la sentencia if else, el compilador generaría un error si no se escriben en minúsculas.

Page 10: Computación Avanzada

Operadores de un solo operandoOperadores de un solo operando

Operadores unariosoperador operando //notación de prefijoEjemplo:

y = -x;

--z;

operando operador //notación de postfijoEjemplo:

x++;

Page 11: Computación Avanzada

Operadores de dos operandosOperadores de dos operandos

Operadores binariosop1 operador op2 //notación de infijo

Ejemplo: y = a + b;

z = (a + b)* y;

int x = (int)(Math.random()*10);

Page 12: Computación Avanzada

Operadores de tres operandosOperadores de tres operandos

Operadores ternariosop1 ? op2 : op3 //notación de infijo

Ejemplo:boolean z = (a+b>0)? true :false;

Page 13: Computación Avanzada

Operadores AritméticosOperadores Aritméticos

Operadores aritméticos Prioridad de los operadores aritméticosgrupo 0: ( ) (paréntesis)grupo 1: ++ -- + (unario) – (unario)grupo 2: * / %

Los paréntesis se utilizan para especificar el orden en que deben ejecutarse las operaciones:

Page 14: Computación Avanzada

Operadores AritméticosOperadores Aritméticos

Operadores de incremento y decremento

Ejemplo:int y, x = 10;

y = x++ + 5; //al evaluar; y = 15, x = 11

y = ++x + 5; //al evaluar; y = 17, x = 12

y = x-- + 5; //al evaluar; y = 17, x = 11

y = --x + 5; //al evaluar; y = 15, x = 10

Page 15: Computación Avanzada

Operadores RelacionalesOperadores Relacionales

Operadores relacionales

¿Cómo comparar valores de punto flotante?

Page 16: Computación Avanzada

Operadores Lógicos y de Operadores Lógicos y de desplazamiento de bitsdesplazamiento de bits

Operadores lógicos

Operadores lógicos a nivel de bits

Operadores de desplazamiento de bits

Page 17: Computación Avanzada

Otros OperadoresOtros Operadores

Operador condicional ternarioif (mes == 2)ultimoDia = (anho % 4 == 0)? 29 : 28;

Operador new (pedir memoria)int arreglo1[] = new int[100]; Circulo obj = new Circulo();

Resumen Prioridad de Operadores

Page 18: Computación Avanzada

Salida por ConsolaSalida por Consola

System.out.println(e);

Donde e son elementos a escribir concatenados con el operador +

Ejemplo:float s = 123.456789;System.out.println(“Suma = ” + s + “\n”);System.out.println((int)(s*1000)/1000.0);

Page 19: Computación Avanzada

Asignación Asignación

Asignación sencillavariable = expresión;

temperatura = 25.5;

Escritura de expresiones de asignación muy frecuentes

Page 20: Computación Avanzada

Estructuras SelectivasEstructuras Selectivas

Selectiva simple

if (condicion) {// bloque de sentencias

}

if (edad > 18) sumaMayor++;

if (edad > 18){sumaMayor++;contador++;

}

Page 21: Computación Avanzada

Estructuras SelectivasEstructuras Selectivas

Selectiva doble

if (condicion) {

// bloque de sentencias

}

else{

// bloque de sentencias

}

if (edad > 18) sumaMayor++;else

sumaMayor--;

if (edad > 18){sumaMayor++;contador++;

}else{sumaMayor--;contador--;

}

Page 22: Computación Avanzada

Estructuras SelectivasEstructuras Selectivas

Selectiva múltiple if else if

if (condicion1){//bloque de sentencias 1

}else if (condicion2){//bloque de sentencias 2

else{//bloque de sentencias

}

if (nota >= 9)calificacion = “SB”;

else if (nota >= 7)calificacion = 'N';

else if (nota >= 5)calificacion = 'A';

else calificacion = 'S';

Page 23: Computación Avanzada

Estructuras SelectivasEstructuras Selectivas

Pérdida del elseif (temperatura > 37)

if (tensionArterial > 12)

contadorEnfermo++;

else contadorSaludable++;

el else está asociado al if inmediatamente anterior  

if (temperatura > 37) { if (tensionArterial > 12) contadorEnfermo++;}else contadorSaludable++;

Page 24: Computación Avanzada

Estructuras SelectivasEstructuras Selectivas

Selectiva Múltipleswitch (expresión){case constante1: sentencia; break;case constante1: sentencia; break;....default: sentencia; break;

} switch (califLetra){ case 'A': puntos = 20; break; case 'B': puntos = 12; break; case 'C': puntos = 8; break; default : puntos = 0; break;}

Page 25: Computación Avanzada

Estructuras RepetitivasEstructuras Repetitivas

Mientraswhile (condición){ // bloque de sentencias

}

raiz = 1;while ((raiz * raiz) < x) raiz++;

raiz = 1;while ((raiz * raiz) < x){ System.out.println(“raiz: ”+raiz); raiz++; }

Page 26: Computación Avanzada

Estructuras RepetitivasEstructuras Repetitivas

Hacer mientrasdo{ // bloque de sentencias}while (condición);

raiz = 0;do{ raiz++;}while((raiz * raiz) < x));

Page 27: Computación Avanzada

Estructuras RepetitivasEstructuras Repetitivas

Desde o Parafor ( iniciaVarControl; condición; incremento ){// bloque de sentencias

}

suma = 0; for(int i = 1; i <= n; i++) suma += i; for(float r = 0.0; r <= 15.0; r += 0.1) System.out.println("Valor: " + r) ;

for( int i = 100; i >= 5; i -= 5 ) System.out.println("Valor: " + i); boolean encontrado = false:for( ; !encontrado; ){ // bloque de sentencias}

for( int i = 1, multiplo3 = 1; i <= 5; i++, multiplo3 += 2 ) System.out.println("Valor: " + multiplo3) ;

Page 28: Computación Avanzada

MétodosMétodos

Método con resultado tipo_a_retornar identificador( lista

de parametros formales){ //bloque de sentencias return valor_ a_retornar ;}

El valor a retornar puede ser un valor de tipo primitivo o una referencia

Las variables locales no se inicializan por defecto

double cubo( float x ){ return x*x*x;}

Page 29: Computación Avanzada

MétodosMétodos

Método tipo void void identificador( lista de parametros formales){ // bloque de sentencias}

void inicializa( float r, float l ){radio = r;longitud = l;

}

void mensaje(){ System.out.println("Hola amigos");}

Page 30: Computación Avanzada

Llamada a un métodoLlamada a un método

x += cubo(3);

System.out.println(cubo(3));

inicializa(2.5, 2);

inicializa(r, l);

mensaje();

En Java el pase de parámetros es por valor

Page 31: Computación Avanzada

MétodosMétodos

Sobrecarga de métodos (polimorfismo en la sobrecarga)

class Desarmadores{ int tamanhoPunta( float ancho, float espesor,

float altura ){ // bloque de sentencias }

int tamanhoPunta( float ancho ){ // bloque de sentencias } int tamanhoPunta(int indiceEstandard){ // bloque de sentencias }

}

Page 32: Computación Avanzada

Arreglos Unidimensonales (Vectores)Arreglos Unidimensonales (Vectores)

Declaración y Creación tipo[] nomVector = new tipo[numElementos];

tipo nomVector[] = new tipo[numElementos];

al crear un arreglo de objetos, Java lo inicializa en null, indicando que el arreglo aún no contiene objetos

int[] edades = new int[20];String[] ciudades = new String[50]; int edades[] = new int[20]; Date fiestas[] = new Date[16];

Los índices van desde 0 hasta numElementos-1

Page 33: Computación Avanzada

Arreglos Unidimensonales (Vectores)Arreglos Unidimensonales (Vectores)

Creación e inicialización char vocales [] = {'a', 'e', 'i', 'o', 'u'};

boolean [] respuestas = { true, false, true, true};

long cont[] = {10, 15, 20, 25};

Page 34: Computación Avanzada

Arreglos Unidimensonales (Vectores)Arreglos Unidimensonales (Vectores)

Acceso a los elementos nomVector[índice]

Recorrido

int a[] = {1,2,3,4,5};

for (int k = 0; k < a.length; k++){ System.out.println( a[k] );}

Page 35: Computación Avanzada

Arreglos Unidimensonales (Vectores)Arreglos Unidimensonales (Vectores)

Como parámetros de métodos

void ordenar( int x[], int n ){…}

final int N = 100;int a[] = new int[N];ordenar(a, N);

En la llamada se pasa la referencia al arreglo

Page 36: Computación Avanzada

Arreglos Unidimensonales (Vectores)Arreglos Unidimensonales (Vectores)

Asignación de arreglos

final int N = 100;

int a[] = new int[N];int b[] = new int[20];

a = b;

En a se copia la referencia al arreglo b de tal modo que las dos variables (a y b) referencian al arreglo b

Page 37: Computación Avanzada

Arreglos Bidimensonales Arreglos Bidimensonales (Matrices)(Matrices)

Declaración y Creación tipo nomMatriz[][] = new tipo[numFilas][numColumnas]; tipo[][] nomMatriz = new tipo[numFilas][numColumnas];

int ventas[][] = new int[20][12];

String [ ][ ] calendario = new String[5][7];

Page 38: Computación Avanzada

Arreglos Bidimensonales Arreglos Bidimensonales (Matrices)(Matrices)

Creación e inicialización tipo nomMatriz[ ][ ] =  {{lista de valores de la fila 0}, {lista de valores de la fila 1},..};

int matriz [][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

Page 39: Computación Avanzada

Arreglos Bidimensonales Arreglos Bidimensonales (Matrices)(Matrices)

Acceso a los elementos nomMatriz [indFila] [indColumna]

Recorrido

int ventas[][] = new int[20][12];

for (int i = 0; i < ventas.length; i++) for (int j = 0; j < ventas[i].length; j++){ ventas[i][j] = (i*10 + k); System.out.println(ventas[i][j]);}

Page 40: Computación Avanzada

Arreglos Bidimensonales Arreglos Bidimensonales (Matrices)(Matrices)

Como parámetros de métodos

void ordenar( int x[][], int m, int n ){…}

final int N = 100;int a[][] = new int[N][N];ordenar(a, N, N);

En la llamada se pasa la referencia al arreglo

Page 41: Computación Avanzada

Arreglos Bidimensonales Arreglos Bidimensonales (Matrices)(Matrices)

Asignación de arreglos

final int N = 100;

int a[][] = new int[N][20];int b[][] = new int[20][N];

a = b;

En a se copia la referencia al arreglo b de tal modo que las dos variables (a y b) referencian al arreglo b

Page 42: Computación Avanzada

Arreglos MultidimensionalesArreglos Multidimensionales

El número de corchetes requeridos varía de acuerdo a la dimensión del arreglo.

String [ ][ ][ ] arregloMulti = new String [10][5][3];

Page 43: Computación Avanzada

FinFin