Arreglos. H. Tejeda. Marzo Declaración de arreglos Inicialización de arreglos Uso de subíndices variables en un arreglo 5
|
|
- Raquel Nieves Peralta Rivero
- hace 7 años
- Vistas:
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
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 detallesDesde 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 detallesTema 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 detallesINTRODUCCIó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 detallesMé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 detallesVariables. 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 detallesTodo 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 detallesUnidad 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 detallesElementos 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 detallesObjetivos 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 detallesJava 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 detallesTema 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 detallesPROGRAMACIÓ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 detallesPrincipios 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 detallesCurso 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 detallesArreglos 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 detalles4. 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 detallesLENGUAJE. 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 detallesModulo 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 detallesIntroducció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 detallesRESUMEN 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 detallesFundamentos 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 detallesPara 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 detallesFicha 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 detallesProgramació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 detallesTest : 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 detallesEstatutos 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 detallesUNIVERSIDAD 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 detallesProgramació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 detallesProgramació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 detallesClase 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 detallesElementos 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 detallesClases 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 detallesUn 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 detallesUnidad 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 detallesEl 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 detallesCONCEPTOS 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 detallesObjetivo 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 detallesSintaxis 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 detallesInstrucciones 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 detallesArrays 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 detallesFACULTAD 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 detallesCiclos. 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 detallesFundamentos 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 detallesProgramació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 detallesPrincipios 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 detalles2.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 detallesTema: 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 detallesIntroducció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 detallesClases 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 detallesJava 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 detalles5. 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 detallesTema 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 detallesDatos 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 detallesProgramació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 detallesGuí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 detallesGuí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 detallesTECNICO 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 detallesUniversidad 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 detallesTEMA 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 detallesPROGRAMACION / 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 detallesModulo 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 detallesWorkManager 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 detallesApunte 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 detallesEn 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 detallesProgramació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 detallesCurso 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 detallesUniversidad 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 detallesUSO 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 detallesProgramació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 detallesTEMA 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 detallesCentro 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 detallesAlgoritmos 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 detallesAlgoritmos. 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 detallesJava 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 detallesEjercicios 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 detallesApuntadores (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
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 detallesSe 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 detallesPRÁ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 detallesfundamentos 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 detallesPROGRAMACION 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 detallesLenguaje 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 detallesLaboratorio 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 detallesFUNDAMENTOS 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 detallesREFERENCIA 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 detallesMé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 detallesProgramació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 detallesIntroducció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 detalleswww.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 detallesMetodologí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 detallesProcesos 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 detallesPartes 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 detallesmedia = ( 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 detallesTIPOS 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 detallesCaracteres 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 detallesFACULTAD 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 detallesIntroducció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 detallesManual 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 detalles1. 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