Arreglos. H. Tejeda. Marzo Declaración de arreglos Inicialización de arreglos Uso de subíndices variables en un arreglo 5

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Arreglos. H. Tejeda. Marzo Declaración de arreglos Inicialización de arreglos Uso de subíndices variables en un arreglo 5"

Transcripción

1 Arreglos H. Tejeda Marzo 2016 Índice 1. Declaración de arreglos 2 2. Inicialización de arreglos 4 3. Uso de subíndices variables en un arreglo 5 4. Declaración y uso de arreglos de objetos 8 5. Búsqueda y uso de arreglos paralelos Paso y devolución de arreglos en métodos 16 Para guardar un valor y usarlo se usan variables. Cuando se usan ciclos las variables se reciclan porque son usadas varias veces; ya que después de haber creado una variable, asignarle un valor, usar éste, y luego, en iteraciones sucesivas del ciclo se modifica la variable. Al reusar la variable da la apariencia de que esta guarda valores diferentes. En ocasiones se tienen situaciones en las cuales guardar un solo valor a la vez en memoria no es suficiente. Por ejemplo, un supervisor de ventas que vigila 20 empleados podría querer determinar si cada empleado ha hecho ventas por encima, o por debajo, del promedio. Con el valor de las ventas del primer empleado ingresado en una aplicación, no se puede determinar si está por encima, o por debajo, porque todavía no se sabe el promedio hasta que se tengan los 20 valores. Desafortunadamente, si se intenta asignar 20 valores de venta a la misma variable, cuando se asigne el valor para el segundo empleado, esta reemplaza el valor del primer empleado. Una solución posible es crear 20 variables de ventas de empleados separadas, cada una con un nombre único, para poder guardar todas las ventas hasta que se pueda calcular el promedio. 1

2 Una desventaja es que se ocupan 20 nombres de variables diferentes para asignar los valores y 20 sentencias de asignación diferentes. Para los nombres de las 20 variables diferentes la sentencia que calcula el total de la venta será compleja, quedando como: total = primeracant + segundacant + terceracant +... La sentencia anterior trabajaría para 20 vendedores, pero qué sucedería si se tienen 5,000 vendedores? 1. Declaración de arreglos La mejor solución al problema de la sección anterior, el de los 5,000 vendedores, es creando un arreglo. Un arreglo es una lista de datos con nombre teniendo todos ellos el mismo tipo. Cada dato es un elemento del arreglo. Se declara una variable arreglo de la misma forma como se declara una variable simple, pero se inserta un par de corchetes después del tipo. Por ejemplo, para declarar un arreglo de valores double para guardar las ventas, se puede escribir lo siguiente: double [] ventas; Nota. Se puede declarar una variable arreglo en Java poniendo los corchetes después del nombre del arreglo, como en double ventas[];. Este formato es empleado en C y C++, pero el formato preferido entre los programadores de Java es poniendo los corchetes después del tipo de la variable y antes del nombre de la variable. Se puede dar cualquier identificador legal que se quiera para un arreglo, pero los programadores de Java nombran los arreglos siguiendo las mismas reglas usadas para variables, el nombre inicia con minúscula y letras mayúsculas iniciando palabras subsecuentes. Adicionalmente, varios programadores observan una de las siguientes convenciones para hacer más énfasis que el nombre representa un grupo de datos: Los arreglos son nombrados frecuentemente usando un sujeto plural como ventas. Los arreglos son nombrados frecuentemente combinando una palabra que implique un grupo, como listaventas, tablaventas, o arregloventas. Después de crear una variable arreglo, se necesita reservar espacio de memoria. Se usa el mismo procedimiento para crear un arreglo que el empleado para crear un objeto. Para declarar un arreglo y reservar memoria para este se hace en dos procesos distintos. Para reservar localidades de memoria para 20 valores de ventas, se declara la variable arreglo y luego se crea el arreglo mediante dos sentencias como sigue: 2

3 double [] ventas; ventas = new double [20]; Al igual que con los objetos, se puede declarar y crear un arreglo en una sola sentencia con lo siguiente: double [] ventas = new double [20]; Con la sentencia anterior se reservan 20 localidades de memoria para 20 valores double. Se puede distinguir cada dato ventas de los otros con un subíndice. Un subíndice es un entero contenido dentro de corchetes que especifica uno de los elementos del arreglo. Cualquier arreglo de elementos en Java está numerado iniciando con cero, así que se pueden usar correctamente subíndices de 0 hasta 19 al trabajar con un arreglo de 20 elementos. Es decir, el primer elemento del arreglo ventas es ventas[0], y el último elemento es ventas[19]. En otros lenguajes de programación el primer elemento del arreglo es el elemento uno, lo cual es un error común al olvidar que en Java el primer elemento en un arreglo es el elemento cero. También lo anterior hace que se olvide que el subíndice del último elemento es uno menos que el tamaño del arreglo y no el tamaño de este. Para no olvidar el uso correcto se puede pensar que el subíndice de un elemento indica la cantidad de elementos que le preceden. Si se emplea un subíndice que es negativo, o igual a, o mayor que el tamaño del arreglo, el subíndice está fuera de límites y un mensaje de error es generado. Cuando se trabaja con algún elemento del arreglo, se emplea de igual forma como se hace con una variable. Por ejemplo, para asignar un valor al primer elemento de ventas en un arreglo, se usa una sentencia de asignación simple, tal como la siguiente: ventas[0] = ; Para mostrar el último elemento del arreglo ventas de tamaño 20, se escribe: System.out.println(ventas[19]); Cuando se declara o accesa un arreglo, se puede usar cualquier expresión para indicar el tamaño, siempre y cuando esta dé un entero. Para declarar un arreglo double llamado valoresmoneda, se podría usar cualquiera de las siguientes: Una constante literal entera double [] valoresmoneda = new double [10]; Una constante con nombre entera 3

4 double [] valoresmoneda = new double [CANT ELEMS]; Una variable entera double [] valoresmoneda = new double [cantelems]; Un cálculo que involucre variables con enteros, o que dé un entero double [] valoresmoneda = new double [x + y * z]; Un valor entero devuelto por un método double [] valoresmoneda = new double [getelementos()]; 2. Inicialización de arreglos Una variable que tiene un tipo primitivo, como un int, guarda un valor. Una variable con un tipo referencia, como un arreglo, guarda una dirección de memoria donde un valor está guardado. Los nombres de arreglos contienen referencias, al igual como todos los objetos Java. No se asigna dirección de memoria cuando se declara un arreglo usando sólo un tipo de dato, corchetes, y un nombre. El nombre de la variable arreglo tiene el valor especial null, que significa que el identificador no está asociado con alguna dirección, como sucede con el valor de numeros que es null en la siguiente declaración: int [] numeros; Al emplear la palabra reservada new para definir un arreglo, el nombre arreglo recibe el valor de una dirección de memoria, como se hace en la siguiente sentencia al definir numeros int [] numeros = new int [10]; En esta declaración numeros tiene una dirección, pero cada elemento de numeros tiene el valor de cero porque es un arreglo de enteros. Los elementos en un arreglo float o double tienen asignado 0.0. Por defecto, los elementos de un arreglo char tienen asignado \u0000, el cual es el valor Unicode para el carácter null, y los elementos de un arreglo boolean tienen asignado false. En arreglos de objetos, incluyendo String, cada elemento tiene asignado null por defecto. Además de asignar un valor a un elemento de un arreglo, como en: 4

5 numeros[0] = 45; Se pueden también asignar valores diferentes al valor por defecto a los elementos de un arreglo en la creación. Para inicializar un arreglo, se usa una lista de inicialización de valores separados por comas y encerrados entre llaves. Dando valores para todos los elementos en un arreglo también es llamado poblar un arreglo. Por ejemplo, si se quiere crear un arreglo llamado multiplosdiez y guardar los primeros seis múltiplos de diez en el arreglo, se puede declarar como sigue: int[] multiplosdiez = {10, 20, 30, 40, 50, 60}; Observar el punto y coma al final de la sentencia. Cuando se pueble un arreglo en la creación dando una lista de inicialización, no se da el tamaño del arreglo, el tamaño es asignado de acuerdo a la cantidad de valores que se pongan en la lista de inicialización. Por ejemplo, el arreglo multiplosdiez definido previamente tiene tamaño seis. También, cuando se inicializa un arreglo, no se requiere usar la palabra reservada new, la nueva memoria es asignada de acuerdo al tamaño de la lista dada. No se puede directamente inicializar una parte de un arreglo en Java. En caso de que se requiera se deberá hacer individualmente, una vez que se haya creado el arreglo usando la palabra reservada new. 3. Uso de subíndices variables en un arreglo Si se trata cada elemento de un arreglo como una entidad individual, no hay ventaja en declarar un arreglo respecto a variables individuales de tipos primitivos. El poder de los arreglos se da cuando se usan subíndices que son variables, en vez de subíndices que sean valores constantes. Suponer que se declara un arreglo de cinco enteros para manejar igual cantidad de puntuaciones, como se muestra enseguida: int [] arreglopunt = {13, 23, 54, 79, 95}; Luego se quiere realizar la misma operación con cada elemento del arreglo, tal como incrementar cada puntuación por una cantidad constante. Para incrementar cada elemento de arreglopunt por tres puntos, por ejemplo, se puede escribir lo siguiente: final int INCREMENTO = 3; 5

6 arreglopunt[0] += INCREMENTO; arreglopunt[1] += INCREMENTO; arreglopunt[2] += INCREMENTO; arreglopunt[3] += INCREMENTO; arreglopunt[4] += INCREMENTO; Con un arreglo pequeño, la tarea es manejable, requiriendo solo cinco sentencias. Sin embargo, se puede reducir la cantidad de código necesario usando una variable como subíndice. Entonces, se puede usar un ciclo para realizar la aritmética con cada elemento, como en el siguiente ejemplo: final int INCREMENTO = 3; for (int sub = 0; sub < 5; ++sub) arreglopunt[sub] += INCREMENTO; La variable sub es puesta a cero, y entonces es comparado a cinco. Como el valor de sub es menor que cinco, el ciclo se ejecuta y tres es agregado a arreglopunt[0]. Luego, la variable sub es incrementada y se hace uno, que sigue siendo menor que cinco, así que el ciclo se ejecuta nuevamente, arreglopunt[1] es incrementado por tres, y así sucesivamente. Un proceso que toma cinco sentencias ahora toma solamente una. Considerar lo que sucedería si el arreglo hubiese tenido 100 elementos, habría requerido 95 sentencias adicionales, pero el único cambio requerido, usando el segundo método, es el cambio del tamaño del arreglo a 100 en la segunda parte del ciclo for. Cuando una aplicación contiene un arreglo y se quiere usar cada elemento del arreglo en alguna tarea, se sugiere usar ciclos que varíen la variable de control del ciclo desde cero hasta uno menos que el tamaño del arreglo. Estas tareas pueden ser el alterar cada valor en el arreglo, sumar todos los valores en el arreglo, o mostrar cada elemento en el arreglo. En una aplicación que incluya un arreglo es conveniente declarar una constante simbólica igual al tamaño del arreglo y usar la constante simbólica como un valor límite en cada ciclo que procese el arreglo. De esta forma, si el tamaño del arreglo cambia más adelante, sólo se necesita modificar el valor guardado en la constante simbólica, para no tener que buscar y modificar el valor límite en cada ciclo que procesa el arreglo. Un ejemplo sería como el siguiente: int [] arreglopunt = {13, 23, 54, 79, 95}; final int INCREMENTO = 5; final int CANT DE PUNT = 5; for (int sub = 0; sub < CANT DE PUNT; ++sub) arreglopunt[sub] += INCREMENTO; Este formato tiene dos ventajas, primero, el uso de la constante simbólica, CANT DE PUNT, el lector entiende que se está procesando cada elemento del arreglo por el tamaño del arreglo entero. Segundo, si el tamaño del arreglo cambia porque se agregaron o quitaron puntuaciones, sólo se ocupa cambiar el valor de la constante simbólica una sola vez. 6

7 Una segunda opción, es usar un campo, variable de instancia, al que es asignado automáticamente un valor para cada arreglo que es creado; el campo length contiene la cantidad de elementos en el arreglo. El siguiente ejemplo repite el código previo mostrando como se usa este campo como valor límite en la parte central del ciclo for. int [] arreglopunt = {13, 23, 54, 79, 95}; final int INCREMENTO = 3; for (int sub = 0; sub < arreglopunt.length; ++sub) arreglopunt[sub] += INCREMENTO; Un error frecuente del programador es intentar usar length como un método del arreglo, escribiendo arreglopunt.length(), en vez de usarlo como un campo. Una variable de instancia o campo objeto como length es también llamada una propiedad del objeto. Java también soporta un ciclo for mejorado. Este ciclo permite recorrer un arreglo sin indicar los puntos de inicio y terminación para la variable de control del ciclo. Para mostrar cada elemento del arreglo llamado arreglopuntos con el ciclo avanzado se hace así: for (int valor : arreglopuntos) System.out.println(valor); valor es definido del mismo tipo que el arreglo nombrado que está después de los dos puntos. Dentro del ciclo, valor adquiere, uno a la vez, cada dato del arreglo. Se puede leer como, Para cada valor en arreglopuntos, mostrar valor. El ciclo for avanzado es conocido también como ciclo foreach Uso de una parte del arreglo En ocasiones no se quiere usar cada valor en un arreglo. Por ejemplo, suponer que se escribe un programa que permite a un estudiante meter hasta 10 puntuaciones y luego calcular y mostrar el promedio. Para permitir 10 puntuaciones, se crea un arreglo que puede guardar 10 valores, pero como el estudiante podría meter menos de 10 valores, se podría usar una parte del arreglo, como se muestra en la clase PromedioFlexible, código 1. 7

8 1 import java. u t i l. ; 2 public class PromedioFlexible { 3 public static void main ( S t r i n g [ ] args ) { 4 int [ ] puntuaciones = new int [ 1 0 ] ; 5 int puntuacion = 0 ; 6 int cuenta = 0 ; 7 int t o t a l = 0 ; 8 f i n a l int SALIR = 999; 9 f i n a l int MAX = 1 0 ; 10 Scanner entrada = new Scanner ( System. in ) ; 11 System. out. p r i n t ( Entrar puntuación : ) ; 12 puntuacion = entrada. nextint ( ) ; 13 while ( cuenta < MAX && puntuacion!= SALIR) { 14 i f ( puntuacion!= SALIR) { 15 puntuaciones [ cuenta ] = puntuacion ; 16 t o t a l += puntuaciones [ cuenta ] ; 17 System. out. p r i n t ( I n g r e s a r s i g u i e n t e puntuación o + 18 SALIR + para s a l i r : ) ; 19 puntuacion = entrada. nextint ( ) ; 20 } 21 cuenta++; 22 } 23 System. out. p r i n t l n ( Las puntuaciones dadas son : ) ; 24 for ( int x = 0 ; x < cuenta ; ++x ) 25 System. out. p r i n t ( puntuaciones [ x ] + ) ; 26 System. out. p r i n t l n ( \n El promedio es + ( t o t a l 1. 0 / cuenta ) ) ; 27 } 28 } Código 1: Aplicación PromedioFlexible. La aplicación PromedioFlexible declara un arreglo que puede guardar diez puntuaciones. Al usuario se le pide la primera puntuación; luego, en ciclo while la puntuación es puesta en el arreglo puntuaciones. Luego la puntuación es agregada a un total, y al usuario se le pide ingresar otra puntuación o un valor de 999 para salir de la petición de números. En el ciclo while se revisa para que hasta diez puntuaciones sean ingresadas y el usuario no quiera salir. Después de cada puntuación entrada, la variable cuenta es incrementada, y sirve para dos propósitos: para indicar el elemento donde la siguiente puntuación deberá ser guardada, y para cuando el ciclo termina, saber la cantidad de puntuaciones dadas. La variable cuenta luego es usada para controlar la salida del ciclo for y para el cálculo del promedio. 4. Declaración y uso de arreglos de objetos Se pueden declarar arreglos que guarden elementos de cualquier tipo, incluyendo objetos. Por ejemplo, suponer que se ha creado la clase Asalariado, código 2, la cual incluye dos 8

9 campos de datos, numero y salario, un constructor, y métodos accesores para cada campo. 1 public class Asalariado { 2 private int numero ; 3 private double s a l a r i o ; 4 Asalariado ( int n, double s ) { 5 numero = n ; 6 s a l a r i o = s ; 7 } 8 public int getnumero ( ) { 9 return numero ; 10 } 11 public int g e t S a l a r i o ( ) { 12 return s a l a r i o ; 13 } 14 } Código 2: La clase Asalariado. Se pueden crear objetos individuales Asalariado con nombres únicos, como los siguientes: Asalariado pintor, electricista, plomero; Asalariado trabajador1, trabajador2, trabajador3; En varios programas puede ser más conveniente crear un arreglo de objetos Asalariado. Un arreglo llamado plantilla que guarde siete objetos Asalariado se define como: Asalariado[] plantilla = new Asalariado[7]; La sentencia reserva suficiente memoria para siete objetos Asalariado llamados plantilla[0] hasta plantilla[6]. La sentencia no construye los objetos Asalariado, por lo tanto se requerirá llamar al constructor siete veces. Se quiere númerar a los trabajadores empezando en 500 y con un salario de $1,200, y como el constructor de la clase Asalariado requiere dos argumentos, número del asalariado y salario, el siguiente ciclo construye los siete objetos: final int NUM INICIAL = 500; final double SALARIO = ; for (int x = 0; x < plantilla.length; ++x) plantilla[x] = new Asalariado(NUM INICIAL + x, SALARIO); Como x varía desde 0 hasta 6, cada uno de los siete objetos plantilla es construido con un número de empleado que es 500 más que x, y con el mismo salario de $1,200.00, como se asigna por la constante SALARIO. 9

10 Otras clases contienen solo el constructor por defecto, el cual es dado automáticamente cuando no hay ningún constructor escrito en la clase. Para construir un arreglo de objetos usando un constructor por defecto, también se debe llamar al constructor usando la palabra reservada new para cada elemento declarado del arreglo. Por ejemplo, suponer que se ha creado una clase llamado ArticuloInventario sin haber escrito un constructor. Para crear un arreglo de 1,000 objetos ArticuloInventario, se podría hacer así: final int CANT ARTS = 1000; ArticuloInventario[] articulos = new ArticuloInventario[CANT ARTS]; for (int x = 0; x < CANT ARTS; ++x) articulos[x] = new ArticuloInventario(); Para usar un método que pertenece a un objeto que es parte de un arreglo, se inserta la notación subíndice apropiada después del nombre arreglo y antes del punto que precede al nombre del método. Por ejemplo, para mostrar los datos de los siete asalariados guardados en el arreglo plantilla, se puede escribir lo siguiente: for (int x = 0; x < plantilla.length; ++x) System.out.println(plantilla[x].getNumero() + " " + plantilla[x].getsalario()); La colocación del subíndice entre corchetes es después de plantilla para indicar que el método pertenece a un elemento particular de la plantilla Uso de ciclos for avanzados con objetos Se puede emplear el ciclo for avanzado para recorrer un arreglo de objetos. Para mostrar los datos de los siete asalariados guardados en el arreglo plantilla, se puede hacer de esta forma: for (Asalariado trabajador : plantilla) System.out.println(trabajador.getNumero() + " " + trabajador.getsalario()); En este ciclo, trabajador es una variable local que representa cada elemento de plantilla en turno. Usando el ciclo for avanzado se evita usar un valor limitante para el ciclo y de usar un subíndice siguiendo a cada elemento. 10

11 4.2. Manipulación de arreglos String Como con cualquier otro objeto, se puede crear un arreglo de objetos String. Por ejemplo, se puede guardar los nombres de los departamentos de una empresa como sigue: String[] departnombres = {"Contabilidad", "Recursos Humanos", "Ventas"}; Se acceden los nombres de los departamentos como otros arreglos objeto. Por ejemplo, se puede usar el siguiente código para mostrar la lista de String guardadas en el arreglo departnombres: for (int a = 0; a < departnombres.length; ++a) System.out.println(departNombres[a]); 5. Búsqueda y uso de arreglos paralelos Suponer que una empresa manufactura diez artículos. Cuando un cliente pone una orden se necesita determinar si la clave del artículo es válida. Cuando se desea determinar si una variable tiene uno de varios valores válidos y estos son secuenciales, por ejemplo entre 201 y 220, la siguiente sentencia if, que usa el operador lógico Y, puede hacer la revisión para poner la bandera a true si el artículo es válido. final int INF = 201; final int SUP = 220; boolean articulovalido = false; if (articuloordenado >= INF && articuloordenado <= SUP) articulovalido = true; Cuando los valores válidos no son secuenciales, por ejemplo, 101, 108, 201, 213, 266, 304, etc., se puede codificar la siguiente sentencia if anidada profundamente o una comparación O larga para determinar la validez. if (articuloordenado == 101) articulovalido = true; else if (articuloordenado == 108) articulovalido = true; else if (articuloordenado == 201) articulovalido = true; // y así sucesivamente 11

12 Otra solución elegante y compacta es comparando la variable articuloordenado con una lista de valores en un arreglo, un proceso llamado búsqueda en un arreglo. Se inicializa el arreglo con los valores válidos y luego se emplea la sentencia for para recorrer el arreglo, poniendo una variable booleana a true cuando un apareamiento es encontrado. int [] valoresvalidos = {101, 108, 201, 213, 266, 304, 311, 409, 411, 412}; for (int x = 0; x < valoresvalidos.length; ++x) if (articuloordenado == valoresvalidos[x]) articulovalido = true; El uso del ciclo for en esta solución permite revisar cualquier cantidad de valores válidos sin tener que modificar ninguna parte, ya que valoresvalidos.length tiene el tamaño actual del arreglo Uso de arreglos paralelos Cuando se tienen dos arreglos con la misma cantidad de elementos y sus elementos se relacionan entre ellos por la posición, entonces se puede usar simultáneamente el mismo subíndice en ambos arreglos. Un arreglo paralelo es uno con la misma cantidad de elementos como otro y para el cual los valores en los elementos correspondientes están relacionados. Suponiendo que para el código mostrado previamente se configura un arreglo que tenga los precios de los artículos, entonces estos precios deberán aparecer en el mismo orden que sus correspondientes números de artículo en el arreglo valoresvalidos. El ciclo for que encuentra el número válido de artículo también encuentra el precio, como se muestra en la aplicación EncontrarPrecio, código 3. 12

13 1 import javax. swing. JOptionPane ; 2 public class EncontrarPrecio { 3 public static void main ( S t r i n g [ ] args ) { 4 int [ ] v a l o r e s V a l i d o s = {101, 108, 201, 213, 266, 5 304, 311, 409, 411, 412}; 6 double [ ] p r e c i o s = { , , , , , , , , , } ; 8 S t r i n g a r t i c u l o S t r ; 9 int articuloordenado ; 10 double p r e c i o A r t i c u l o = 0. 0 ; 11 boolean a r t i c u l o V a l i d o = f a l s e ; 12 a r t i c u l o S t r = JOptionPane. showinputdialog ( null, 13 I n g r e s a r e l número de a r t ículo que q u i e r e ordenar ) ; 14 articuloordenado = I n t e g e r. p a r s e I n t ( a r t i c u l o S t r ) ; 15 for ( int i =0; i <v a l o r e s V a l i d o s. l ength ; ++i ) 16 i f ( articuloordenado == v a l o r e s V a l i d o s [ i ] ) { 17 a r t i c u l o V a l i d o = true ; 18 p r e c i o A r t i c u l o = p r e c i o s [ i ] ; 19 } 20 i f ( a r t i c u l o V a l i d o ) 21 JOptionPane. showmessagedialog ( null, El p r e c i o d e l a r t ículo + 22 articuloordenado + es $ + p r e c i o A r t i c u l o ) ; 23 else 24 JOptionPane. showmessagedialog ( null, 25 Lo s i e n t o!, a r t ículo i n g r e s a d o no vá l i d o ) ; 26 } 27 } Código 3: La aplicación EncontrarPrecio que accede información en arreglos paralelos. Nota. En lugar de arreglos paralelos conteniendo números de artículos y precios, se puede crear una clase llamada Articulo conteniendo dos campos, articuloordenado y precioarticulo. Luego se crea un arreglo simple de objetos que encapsulan los números y los precios. En el código 3 se compara articuloordenado con cada uno de los diez valoresvalidos. No importa, que por ejemplo, articuloordenado sea igual al primer valor, se terminan haciendo nueve comparaciones extras, y estas serán siempre falsas. Tan pronto como un apareamiento para articuloordenado es encontrado, es más eficiente forzar la salida temprana del ciclo for. Una forma fácil de lograrlo es poner x a un valor alto dentro del bloque de sentencias ejecutadas cuando hay un apareamiento. Enseguida se muestra la forma como se puede hacer. También considerar para una mayor eficiencia poner los artículos más comunes al inicio. for (int x = 0; x < CANTIDAD DE ARTICULOS; ++x) if (articuloordenado == valoresvalidos[x]) { 13

14 } articulovalido = true ; precioarticulo = precios[x]; x = CANTIDAD DE ARTICULOS; Algunos programadores consideran inapropiado modificar la variable de control de ciclo dentro del cuerpo del ciclo for; porque consideran que sólo se debe hacer en la tercera sección del ciclo for. Por lo que la salida forzada del ciclo la realizan con otra expresión booleana en la sección central del ciclo for, de esta forma, como se muestra enseguida, x deberá estar entre el rango antes de cada iteración y articulovalido no deberá estar puesta a true. for (int x = 0; x < CANTIDAD DE ARTICULOS &&!articulovalido; ++x) if (articuloordenado == valoresvalidos[x]) { articulovalido = true ; precioarticulo = precios[x]; } 5.2. Búsqueda en un arreglo por un rango de apareamiento Suponer ahora que una empresa da descuentos a sus clientes de acuerdo a la cantidad de artículos ordenados. El cuadro 1 muestra el descuento ofrecido dependiendo de la cantidad ordenada. Cantidad ordenada Descuento 1 a 12 Ninguno 13 a % 50 a % 100 a % 200 o más 20 % Cuadro 1: Tabla de descuentos Una opción de programación ineficiente es crear un arreglo simple para guardar los descuentos. Se podría usar una variable llamada cantarts como subíndice en el arreglo, pero el arreglo podría requerir cientos de entradas, como se muestra enseguida: double [] descuentos = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.10, 0.10, 0.10,...}; En el arreglo descuentos se requieren trece ceros, porque el primer elemento del arreglo tiene un subíndice cero y representa un descuento de cero para cero artículos y los siguientes 14

15 12 descuentos también son cero para manejar desde un artículo hasta 12. Después el arreglo guardará 37 copias de 0.10 para 13 artículos y hasta 49. El arreglo será necesariamente grande para guardar un valor exacto para cada posible cantidad ordenada. Una mejor opción es crear dos arreglos correspondientes y realizar un apareamiento de rango, en el cual se compara un valor con los extremos de los rangos numéricos para encontrar la categoría a la cual el valor pertenece. Por ejemplo, un arreglo puede tener los cinco descuentos, y el otro arreglo puede tener los cinco límites inferiores de los rangos de descuento, como se muestra enseguida: int [] limitesinferiores = {1, 13, 50, 100, 200}; double [] descuentos = {0, 0.1, 0.14, 0.18, 0.2}; Empezando con el último elemento del arreglo limitesinferiores, para cualquier cantordenada mayor que, o igual a limitesinferiores[4], el descuento es descuentos[4]. Si cantordenada es menor que limitesinferiores[4], se deberá decrementar el subíndice y buscar en un rango inferior. En la aplicación EncontrarDescuento, código 4, se muestra el uso de los arreglos paralelos anteriores. 1 import javax. swing. JOptionPane ; 2 public class EncontrarDescuento { 3 public static void main ( S t r i n g [ ] args ) { 4 f i n a l int CANT RANGOS = 5 ; 5 int [ ] l i m i t e s I n f e r i o r e s = { 1, 13, 50, 100, 200}; 6 double [ ] descuentos = { 0, 0. 1, , , 0. 2 } ; 7 double d e s c u e n t o C l i e n t e ; 8 S t r i n g strcantordenada ; 9 int cantordenada ; 10 int sub = CANT RANGOS 1 ; 11 strcantordenada = JOptionPane. showinputdialog ( null, 12 Cuántos a r t í c u l o s ha ordenado? ) ; 13 cantordenada = I n t e g e r. p a r s e I n t ( strcantordenada ) ; 14 while ( sub >= 0 && cantordenada < l i m i t e s I n f e r i o r e s [ sub ] ) 15 sub ; 16 d e s c u e n t o C l i e n t e = descuentos [ sub ] ; 17 JOptionPane. showmessagedialog ( null, El descuento para + 18 cantordenada + a r t í c u l o s es + d e s c u e n t o C l i e n t e ) ; 19 } 20 } Código 4: La aplicación EncontrarDescuento. Nota. En la aplicación EncontrarDescuento, código 4, se require que sub sea mayor que, o igual a cero antes de evaluar la expresión booleana cantordenada<limitesinferiores[sub]. Es un buen hábito de programación asegurarse que un subíndice para un arreglo no caiga por debajo de cero, ya que causará un error en tiempo de ejecución. 15

16 6. Paso y devolución de arreglos en métodos Se puede usar cualquier elemento de un arreglo de la misma forma como se usa cualquier variable del mismo tipo. De igual forma, se puede pasar un elemento de un arreglo a un método de la misma forma como se pasa una variable. La aplicación PasarElementoArreglo, código 5, crea un arreglo de cuatro enteros y los muestra. La aplicación llama el método obtenerunentero() cuatro veces, pasando un elemento a la vez. El método muestra el número, cambia el número a 999, y luego muestra el número otra vez. Finalmente, de regreso en el método main(), los cuatro números son mostrados otra vez. 1 public class PasarElementoArreglo { 2 public static void main ( S t r i n g [ ] args ) { 3 int [ ] numeros = {10, 20, 30, 40}; 4 System. out. p r i n t ( Al i n i c i o de main : ) ; 5 for ( int n : numeros ) 6 System. out. p r i n t ( + n ) ; 7 System. out. p r i n t l n ( ) ; 8 for ( int i =0; i <numeros. length ; ++i ) 9 obtenerunentero ( numeros [ i ] ) ; 10 System. out. p r i n t ( Al f i n a l de main : ) ; 11 for ( int n : numeros ) 12 System. out. p r i n t ( + n ) ; 13 System. out. p r i n t l n ( ) ; 14 } 15 public s t a t i c void obtenerunentero ( int uno ) { 16 System. out. p r i n t ( Al i n i c i o d e l método uno es : + uno ) ; 17 uno = 9 99; 18 System. out. p r i n t l n ( y a l f i n a l d e l método uno es : + uno ) ; 19 } 20 } Código 5: La aplicación PasarElementoArreglo. Al ejecutar la aplicación PasarElementoArreglo, se puede ver que los cuatro números pasados fueron cambiados en el método obtenerunentero() permanecen sin cambio de regreso en main() después de la ejecución del método. La variable llamada uno es local al método obtenerunentero, y cualquier cambio a variables pasadas en el método no son permanentes y no son reflejados en el arreglo en el método main(). Cada variable llamada uno en el método obtenerunentero guarda una sola copia del elemento del arreglo pasado al método. Los elementos individuales del arreglo son pasados por valor; es decir, una copia del valor es hecha y usada dentro del método receptor. Cuando cualquier tipo primitivo, boolean, char, byte, short, int, long, float, o double, es pasado a un método, el valor es pasado. Los arreglos, como todos los objetos no primitivos, son tipos de referencia, esto es, el objeto guarda una dirección de memoria donde los valores están guardados. Como un arreglo 16

17 es una referencia, no se puede asignar otro arreglo a este usando el operador =, ni se pueden comparar dos arreglos usando el operador ==. Cuando se pasa un arreglo, se pasa su nombre, a un método, el método receptor obtiene una copia de la dirección de memoria actual del arreglo. Por lo tanto el método receptor tiene acceso a los valores originales del arreglo de elementos del método llamador. La clase PasarArreglo, código 6, crea un arreglo de cuatro enteros. Después que los enteros son mostrados, el nombre del arreglo, su dirección, es pasado a un método llamado obtienearreglo(). Dentro del método, los números son mostrados, para observar que estos retienen sus valores desde main(), luego el valor 888 está asignado a cada número. A pesar de que obtienearreglo() es un método void, no devuelve nada al método main(), cuando el método main() muestra el arreglo por segunda ocasión, todos los valores han sido cambiados a 888. Ejecutar la aplicación PasarArreglo para comprobar lo comentado. Como el método recibe una referencia del arreglo, el método obtienearreglo() sabe la dirección del arreglo declarado en main() y hace sus cambios directamente al arreglo original. 1 public class PasarArreglo { 2 public static void main ( S t r i n g [ ] args ) { 3 int [ ] numeros = {10, 20, 30, 40}; 4 System. out. p r i n t ( Al i n i c i o de main : ) ; 5 for ( int n : numeros ) 6 System. out. p r i n t ( + n ) ; 7 System. out. p r i n t l n ( ) ; 8 o b t i e n e A r r e g l o ( numeros ) ; 9 System. out. p r i n t ( Al f i n a l de main : ) ; 10 for ( int n : numeros ) 11 System. out. p r i n t ( + n ) ; 12 System. out. p r i n t l n ( ) ; 13 } 14 public static void o b t i e n e A r r e g l o ( int [ ] a r r ) { 15 System. out. p r i n t ( Al i n i c i o d e l método a r r t i e n e : ) ; 16 for ( int n : a r r ) 17 System. out. p r i n t ( + n ) ; 18 System. out. p r i n t l n ( ) ; 19 for ( int i =0; i <a r r. l e ngth ; ++i ) 20 a r r [ i ] = 888; 21 System. out. p r i n t ( Al f i n a l d e l método a r r t i e n e : ) ; 22 for ( int n : a r r ) 23 System. out. p r i n t ( + n ) ; 24 System. out. p r i n t l n ( ) ; 25 } 26 } Código 6: La aplicación PasarArreglo. Nota. En otros lenguajes, como C, C++, y C#, se puede escoger pasar variables a métodos por valor o referencia. No se puede escoger en Java. Las variables tipo primitivo son siempre 17

18 pasadas por valor. Cuando se pasa un objeto, una copia de la referencia al objeto es siempre pasada Regresar un arreglo desde un método Un método puede regresar una referencia arreglo. Cuando un método regresa una referencia arreglo, se deben incluir corchetes con el tipo regresado en la cabecera del método. En el siguiente código se muestra el método getarreglo() que regresa un arreglo de int declarado localmente. Los corchetes son usados como parte del tipo regresado; la sentencia return devuelve el nombre del arreglo sin ningún corchetes. public static int [] getarreglo() { int [] puntuaciones = {98, 74, 69, 89}; return puntuaciones; } Cuando se llama al método getarreglo() que se muestra previamente, se puede guardar su valor devuelto en cualquier referencia arreglo entero. Por ejemplo, se podría declarar un arreglo y hacer la llamada del método en la siguiente sentencia: int [] puntuacionesrecibidas = getarreglo(); 18

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Métodos, clases, y objetos

Métodos, clases, y objetos Métodos, clases, y objetos H. Tejeda Febrero 2016 Índice 1. Llamada a métodos y colocación 2 2. Diseño de un método 3 3. Parámetros en los métodos 4 4. Métodos que devuelven un valor 6 5. Clases y objetos

Más detalles

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs. Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola) Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma

Más detalles

Java para programadores

Java para programadores Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Variables. Tipos

Más detalles

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Tema 7.- Fundamentos de la Programación Orientada a Objetos Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

Más detalles

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES. APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación

Más detalles

Arreglos Unidimensionales En este tipo de arreglo se hace uso de un índice solamente para hacer referencia a una posición particular del arreglo.

Arreglos Unidimensionales En este tipo de arreglo se hace uso de un índice solamente para hacer referencia a una posición particular del arreglo. Arreglos (Arrays) en Java Definición: Un arreglo es un objeto contenedor que consiste de una cantidad fija de posiciones o celdas para almacenar valores del mismo tipo en ellas. Cada posición o celda del

Más detalles

4. Operadores Operador asignación

4. Operadores Operador asignación Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre

Más detalles

LENGUAJE. Tema 2 Elementos de un programa

LENGUAJE. Tema 2 Elementos de un programa LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar

Más detalles

Modulo 11. Clases y Objetos en Java

Modulo 11. Clases y Objetos en Java El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.

Más detalles

Introducción a C++ y Code::Blocks

Introducción a C++ y Code::Blocks Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Fundamentos de JAVA. Angel Kuri Enero, /2/2006

Fundamentos de JAVA. Angel Kuri Enero, /2/2006 Fundamentos de JAVA Angel Kuri Enero, 2006 Enunciados y Expresiones Los siguientes son enunciados sencillos: int i = 1 import java.awt.font System.out.println( Esta moto es una + color + + marca); m.enginestate

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles

Ficha de Aprendizaje N 13

Ficha de Aprendizaje N 13 Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que

Más detalles

Programación. Test Autoevaluación Tema 3

Programación. Test Autoevaluación Tema 3 Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A. SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:

Más detalles

Estatutos de Control C# Estatutos de Decisión (Selección)

Estatutos de Control C# Estatutos de Decisión (Selección) SELECCIÓN Estatutos de Control C# Estatutos de Decisión (Selección) IF Condición THEN Estatuto1 ELSE Estatuto2 Estatuto1 Statement Condición... Antes de ver esta presentación: Lee el Capítulo correspondiente

Más detalles

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.

Más detalles

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC. Programación n Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño o Vargas MsC. Variables y expresiones aritméticas Variables Conceptos de Memoria Una variable es un espacio en la memoria

Más detalles

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables Conceptos de Memoria Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo, un tamaño y un valor

Más detalles

Clase adicional 2. Estructuras básicas de control. Temas

Clase adicional 2. Estructuras básicas de control. Temas Clase adicional 2 Temas Estructuras de control Sentencia condicional Iteración Clases Definir una clase Crear una instancia de una clase Campos estáticos Problemas de la clase adicional Problema de diseño

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos Construyendo clases nuevas La forma más simple de una clase en Java es: Class Nombre_de_la_Clase { } /* constructores */ /* métodos

Más detalles

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * / undamentos de sintaxis en algunas instrucciones de C#.Net Dr. Ramón Roque Hernández Identificadores Un identificador le da nombre único a un elemento en un programa (ariables, procedimientos, etc.). No

Más detalles

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas Unidad II Fundamentos de programación en Java Ing. José Luis Llamas Cárdenas En java para poder escribir se emplea el objeto System.out, t pero para leer del teclado es necesario emplear System.in Et Este

Más detalles

El lenguaje C. 1. Identificadores, constantes y variables

El lenguaje C. 1. Identificadores, constantes y variables Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 3. Identificadores, palabras clave y tipos de datos Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Distinguir i entre modificadores d válidos y no válidos. Enumerar

Más detalles

Sintaxis básica, variables y 7pos

Sintaxis básica, variables y 7pos Contenidos Sintaxis básica, variables y 7pos Curso de Programación en Java! Sintaxis básica! Variables y 7pos! Entrada/Salida básica! Operadores y expresiones Jesús Montes Sánchez jmontes@fi.upm.es Estructura

Más detalles

Instrucciones de control

Instrucciones de control Instrucciones de control Instrucciones de control de flujo C# ofrece un conjunto de sentencias similar al de C, C++ o Java. A continuación se estudian muy brevemente cada una de ellas. if if se utiliza

Más detalles

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A) aprenderaprogramar.com Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029 Autor: Mario R. Rancel

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Variables y Tipos de Datos PRÁCTICA NÚM. [ 1 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL Ciclos Fundamentos de Programación Recordando Estructuras de Control Básicas: Una secuencia es una serie de estatutos que se ejecutan uno después de otro. Selección (condición) ejecuta diferentes estatutos

Más detalles

Fundamentos de programación

Fundamentos de programación Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador

Más detalles

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario

Más detalles

2.2 Nombres, Ligado y Ámbito

2.2 Nombres, Ligado y Ámbito 2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el

Más detalles

Tema: Clases y Objetos en C#. Parte II.

Tema: Clases y Objetos en C#. Parte II. Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y

Más detalles

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Sintaxis de Java Sintaxis Define las reglas que determinar el uso de palabras clave, operadores y variables para construir y evaluar expresiones.

Más detalles

Clases en Java. Declaración de clases en Java 02/09/16. Ing. Roberto Martínez Román - public class Alumno { private int matricula;

Clases en Java. Declaración de clases en Java 02/09/16. Ing. Roberto Martínez Román - public class Alumno { private int matricula; Clases en Java ESCRIBIENDO CLASES rmroman@itesm.mx Declaración de clases en Java public class Alumno private int matricula; public void mostrardatos() System.out.println("Matrícula: " + matricula); Firma

Más detalles

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo

Más detalles

5. Sentencias selectivas o condicionales

5. Sentencias selectivas o condicionales 60 A. García-Beltrán y J.M. Arranz 5. Sentencias selectivas o condicionales Objetivos: a) Describir el funcionamiento de las sentencias selectivas o condicionales (if-else y switch) b) Interpretar el resultado

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

Datos y tipos de datos

Datos y tipos de datos Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

Guía práctica de estudio 05: Diagramas de flujo

Guía práctica de estudio 05: Diagramas de flujo Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de

Más detalles

Guía - Taller # 2 (JAVA)

Guía - Taller # 2 (JAVA) CEET - Distrito Capital Programa de Formación: ADSI 150752 TRIMESTRE VI Conocimiento de Conocimiento: Aplicar diversos estilos de Programación usando herramientas para Desarrollo Web Instructor: Ing. Espec.

Más detalles

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL 1 TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL TECNOLOGÍA DE LA COMPUTADORA FACILITADOR: PARTICIPANTE: DAVID, CHIRIQUÍ 2015 2 Qué es un programa? Un programa informático es un conjunto

Más detalles

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 MI PRIMER PROYECTO

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 MI PRIMER PROYECTO Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 MI PRIMER PROYECTO El NetBeans es un entorno de desarrollo integrado que permite crear aplicaciones

Más detalles

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando

Más detalles

PROGRAMACION / Clave: 11214

PROGRAMACION / Clave: 11214 PRACTICA 10. Programas en DevC++ 1.- Programa que imprima las tablas de multiplicar del 1 al 10, se deberá hacer una pausa entre tabla y tabla de multiplicar. 2.- Programa que se repita N cantidad de veces

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

WorkManager E.D. Manual guía de usuario Diseñador de formularios

WorkManager E.D. Manual guía de usuario Diseñador de formularios WorkManager E.D. Manual guía de usuario Diseñador de formularios En esta sección se crean y diseñan formularios. Para ingresar, clic en el menú Configuración/ Diseñador de formularios. Lista de formularios

Más detalles

Apunte JAVA + SVN. Emi Höss

Apunte JAVA + SVN. Emi Höss Apunte JAVA + SVN Emi Höss Instalando Eclipse y Java VM Eclipse es la IDE que utilizaremos para programar los TP s de la materia. Puede descargarse de la siguiente página: https://www.eclipse.org/downloads/index.php

Más detalles

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C. El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos

Más detalles

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto Programación Orientada a Objetos con Java Rafael Rivera López Elementos Básicos del Lenguaje Java II Ingeniería en Sistemas Computacionales Agosto-Diciembre de 24 Veracruz, Ver. Creación de un objeto Una

Más detalles

Curso de Programación Avanzada en C

Curso de Programación Avanzada en C Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados

Más detalles

Universidad de Managua

Universidad de Managua Universidad de Managua Introducción a la Programación Tema 7 Introducción a la programación en lenguaje C# Objetivos - Describir la estructura básica de un programa en Lenguaje C# - Explicar las estructuras

Más detalles

USO DEL OBJETO JTABLE

USO DEL OBJETO JTABLE USO DEL OBJETO JTABLE Objeto de Control JTable Como programadores, sabemos muy bien que la presentación de datos tabulados es una de las tareas más comunes que se presentan al momento de crear interfaces

Más detalles

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga Programación orientada a objetos Resumen de Temas Unidad 4: Sobrecarga 4.1 Conversión de tipos (1) Conversiones implícitas: La conversión entre tipos primitivos se realizan de modo automático de un tipo

Más detalles

TEMA 4. ESTRUCTURAS DE CONTROL

TEMA 4. ESTRUCTURAS DE CONTROL M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...

Más detalles

Algoritmos y Programación I

Algoritmos y Programación I Algoritmos y Programación I ARREGLOS Y ESTRUCTURAS EN C Arreglos Un arreglo o vector es un conjunto de datos del mismo tipo, almacenados de forma contigua (es decir uno al lado del otro) en memoria principal.

Más detalles

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten

Más detalles

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

Ejercicios de Programación Tema 7. Programación Orientada a Objetos

Ejercicios de Programación Tema 7. Programación Orientada a Objetos Ejercicios de Programación Tema 7. Programación Orientada a Objetos 22 de diciembre de 2013 1. Haz una clase llamada Agenda para manejar una agenda de teléfonos. Los objetos instanciados a partir de esa

Más detalles

Apuntadores (Punteros)

Apuntadores (Punteros) Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable

Más detalles

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,

Más detalles

Se guardan en archivos con extencion c y los cabezales con extension h

Se guardan en archivos con extencion c y los cabezales con extension h Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767

Más detalles

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos Contenido Introducción...1 Objeto...2 Atributo...2 Métodos...2 Clase...3

Más detalles

fundamentos de programación (unidad 4) programación estructurada en Java

fundamentos de programación (unidad 4) programación estructurada en Java fundamentos de programación (unidad 4) programación estructurada en Java Para ver una copia completa de la licencia, acudir a la dirección http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

PROGRAMACION ORIENTADA A OBJETOS EN C++ PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje

Más detalles

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Objetivos Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa

Más detalles

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 2 Expresiones, operadores y estructuras de control Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo Fundamentos de Informática. Departamento de Ingeniería

Más detalles

REFERENCIA DEL LENGUAJE

REFERENCIA DEL LENGUAJE REFERENCIA DEL LENGUAJE Sesión 07 Mg. Cadenas de caracteres Una cadena de caracteres es un arreglo de caracteres. Los caracteres son letras, números y signos de puntuación. Cuando un número se usa como

Más detalles

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Métodos que devuelven valor Dado el siguiente triángulo rectángulo: Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán

Más detalles

Programación Orientada a Objetos

Programación Orientada a Objetos Programación Orientada a Objetos Sentencias Java Parte II Ing. Julio Ernesto Carreño Vargas MsC. while y do while Sentencia while Ciclo mientras que Repite una acción mientras su condición de ciclo se

Más detalles

Introducción al Lenguaje de Programación C

Introducción al Lenguaje de Programación C Introducción al Lenguaje de Programación C Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Lenguaje de Programación C Fue diseñado

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

Metodología y Tecnología de la Programación

Metodología y Tecnología de la Programación Tema 4. Abstracción procedimental y de datos 1. Cuál es el error del siguiente programa? import java.util.scanner; class Respuesta{ static Scanner leer=new Scanner(System.in); int valor = lectura(); System.out.println(valor);

Más detalles

Procesos e Hilos en C

Procesos e Hilos en C Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.

Más detalles

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1. Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;

Más detalles

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( "\nla temperatura media es %f\n", media );

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( \nla temperatura media es %f\n, media ); Arrays en el lenguaje C Introducción Una posible definición de array sería: Un conjunto de datos del mismo tipo, identificados por el mismo nombre, y que se pueden distinguir mediante un número de índice.

Más detalles

TIPOS DE DATOS BASICOS EN LENGUAJE C

TIPOS DE DATOS BASICOS EN LENGUAJE C TIPOS DE DATOS BASICOS EN LENGUAJE C TIPO char int float double void ANCHO EN BIT 64 0 TIPOS DE DATOS RANGO EN PC -12 a 127 3.4E-3 a 3.4E+3 1.7E-30 a 1.7E+30 sin valores TIPO ANCHO EN BIT RANGO EN PC char

Más detalles

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación 1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Estructuras de decisión PRÁCTICA NÚM. [ 5 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Introducción a Java LSUB. 30 de enero de 2013 GSYC Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial

Más detalles

Manual de turbo pascal

Manual de turbo pascal Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de

Más detalles

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo) . Sobrecarga de operadores. unarios Operador de incremento (prefijo). Devolución de objetos en los métodos. Retorno por referencia Sobrecarga de operadores Los operadores aceptan uno o varios operandos

Más detalles