Fundamentos de Programación

Documentos relacionados
Fundamentos de Programación

Examen escrito de Programación 1

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.

int[] nombrearray1; int nombrearray2[];

Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Examen Teórico Convocatoria de Junio de 2012

Tema 2.- Objetos y mensajes

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

Índice. Estructuras de datos en Memoria Principal: Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa:

Fundamentos de Programación

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

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

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

CLASE ARRAYS DEL API JAVA. MÉTODOS PARA ARRAYS EQUALS (COMPARAR), COPYOF (COPIAR), FILL (RELLENAR). EJEMPLOS. (CU00676B)

Estructura de datos y Programación

Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java

Java para programadores

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Nombre-Apellidos:

Tema 2. El lenguaje JAVA

LENGUAJES DE PROGRAMACIÓN. Solución al Ejercicio de Autocomprobación 1

Fundamentos de Programación

TEMA. Vectores y Matrices. Dept. Ciencias de la Computación e I.A. Universidad de Granada

Unidad 4. Arreglos y Cadenas

Trabajo Práctico Nº 06

UNIVERSIDAD DE ALCALÁ

Soluciones. boolean pruebaiteraseriegeometrica () { Serie s= new SerieGeometrica (1, 2); return (s.iterator() instanceof IteraSerieGeometrica); }

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS

Fundamentos de Informática

Práctica 5c. Práctica 5c. José M. Ordax

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Nombre:... Apellidos:...

Bloque II. Elementos del lenguaje de programación Java

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez

Identidad, igualdad y equivalencia

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

1. (0.5 puntos) Indicar y justificar claramente cuál es el valor final de los datos miembro x, y, z.

PROGRAMACIÓN GENÉRICA

Construcciones del Lenguaje Java

En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo.

k. Son métodos de la clases y respectivamente, que analiza un para devolver un entero con

Introducción a la Programación V

Introducción a la Programación V

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

1. (1 punto) Dado el siguiente fragmento en Java:

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE

Ejercicio de Programación Orientada a Objetos Curso 2016/2017 Exámenes

Prueba N o 1. Programación II

Arrays. Programación. Licenciatura de Lingüística y Nuevas Tecnologías

Programación de sistemas Listas enlazadas

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1

Examen de Programación (Grados en Física y Matemáticas)

Identidad, igualdad y equivalencia. Introducción a la programación orientada a objetos

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

8. Vectores (arrays)

HERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.

Examen Teórico. Convocatoria de Julio de 2015

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

LENGUAJES DE PROGRAMACIÓN. Solución al examen de Junio 2017, Primera Semana

UNADM. Estructura de datos. Guillermo Duran Garcia AL Actividad 2. Identificación de errores en métodos de ordenación

FUNDAMENTOS DE INFORMÁTICA

<tipo> Tipo de dato de los elementos del vector

Indique la veracidad o falsedad de cada una de las afirmaciones siguientes, explicando detalladamente en cada caso el motivo de su respuesta.

Datos Elementales y formato de un programa en Java

Programación de sistemas Recursión

Introducción a C++ Algoritmos y Estructuras de datos II Dra. Carmen Mezura Godoy. Febrero 2009

Arrays, Cadenas y Vectores Tipos Genéricos

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Sólo una opción es correcta en cada pregunta. Cada respuesta correcta suma 1 4. puntos. Cada respuesta incorrecta resta 1 12

Programación 1 Tema 5. Instrucciones simples y estructuradas

Programación de Ordenadores

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

Bloque II. Elementos del lenguaje de programación Java

LENGUAJES DE PROGRAMACIÓN. Solución al examen de Junio 2016, Primera Semana

ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

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

Prefacio 25 Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes... 27

Java Básico. Estructuras de Datos 1. Copyright

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

Búsqueda y ordenamiento

Principal material bibliográfico utilizado

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Introducción al Análisis del Coste de Algoritmos

Tema 8 Vectores y Matrices

FUNDAMENTOS DE PROGRAMACIÓN - Septiembre 2010

Soluciones al Examen de Fundamentos de Computadores y Lenguajes

Solución al Examen de Fundamentos de Computadores y Lenguajes

Programación Tema 3: Tipos y expresiones simples. Programación DIT-UPM

Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2

Lenguaje de Programación MSc. Daniel Alejandro Yucra Sotomayor

Variables y tipos básicos 1. Definir una variable de tipo char. Convertirla a una variable de tipo entera e imprimir su valor asociado.

Informática Ingeniería en Electrónica y Automática Industrial

Transcripción:

Fundamentos de Programación Arrays 18.10.2010 José A. Mañas <jmanas@dit.upm.es> Dpto. de Ingeniería de Sistemas Telemáticos http://www.dit.upm.es/~pepe/doc/fprg/

Arrays Cuando tenemos N datos del mismo tipo arrays de tipo T T[] Operaciones acceder al elemento n-ésimo para leer: conocer el valor para escribir: imponer un valor recorrer los elementos 16.10.2010 2

Arrays 1. Declaración es un array de tantas dimensiones y de tal tipo 2. Creación (o ubicación de RAM) es un array de tal tamaño 3. Inicialización opcional: carga valores iniciales si no: todos los elementos están a 0 4. Uso lectura de un elemento escritura de un elemento 16.10.2010 3

Ejemplo Constructor debe determinar el tamaño del array public class Polinomio { private double[] coef; public Polinomio(double a, double b, double c, double d) { coef = new double[4]; 16.10.2010 4

Valor inicial Hasta que se inicializa: null int[] vector; System.out.print (vector); // null Si simplemente se hace new X[]... enteros: 0 reales: 0.0 char: \u0000 boolean: false clases: null arrays: null 16.10.2010 5

Creación con inicialización int[] primos= { 2, 3, 5, 7, 11, 13, 17 }; int[][] matriz= { { 1, 2, 3 }, { 4, 5, 6 } }; Se puede inicializar con cualquier expresión int[] cuadrados= { 1*1, 2*2, 3*3, 4*4 }; 16.10.2010 6

Ejemplo Cuántos elementos hay? public int grado() { return coef.length; } 16.10.2010 7

Ejemplo Acceso al elemento n-ésimo cuenta empezando en 0 para leerlo (getter) public double getcoeficiente(int n) { return coef[n] ; } para cargar un valor (setter) public void setcoeficiente(int n, double v) { coef[n] = v; } 16.10.2010 8

Ejemplo Procesamos todos los términos iteración: for each public double f(double x) { double fx = 0; for (double c : coef) fx = fx * x + c; return fx; } 16.10.2010 9

Ejemplo Procesamos todos los términos bucle con contador public double f(double x) { double fx = 0; for (int i= 0; i < coef.length; i++) fx = fx * x + coef[i]; return fx; } de forma similar while (i < coef.length) { } do { } while (i < coef.length); 16.10.2010 10

Número variable de argumentos Métodos con un número indefinido de argumentos es como si recibiera un array public Polinomio(double... cc) { coef = new double[cc.length]; for (int i = 0; i < cc.length; i++) coef[i] = cc[i]; } 16.10.2010 11

Contenido compartido Podemos compartir contenido int[] v2 = v1; v1 1 2 3 4 v2 16.10.2010 => paso de referencia en llamada a métodos 12

Copia del contenido Podemos hacer una copia independiente T[] v2= new T[v1.length]; for (int i= 0; i < v1.length; i++) v2[i] = v1[i]; T[] v2= new T[v1.length]; System.arraycopy(v1, 0, v2, 0, v1.length); 16.10.2010 13

Igualdad TRUE si se trata del mismo array v1 == v2 Para comparar contenidos boolean compara(int[] v1, int[] v2) { if (v1 == null v2 == null) return false; if (v1.length!= v2.length) return false; for (int i= 0; i < v1.length; i++) if (v1[i]!= v2[i]) return false; return true; } 16.10.2010 14

java.util.arrays static void fill(t[] array, T valor) llena el array con el valor indicado: todos los elementos iguales static boolean equals(t[] a1, T[] a2) chequea si los arrays son idénticos, comprobando valores primitivos (==) y referencias (con equals) static boolean deepequals(object[] a1, Object[] a2) chequea si los arrays son idénticos, comprobando valores primitivos (==) y referencias (con equals). Además, si el array es multidimensional, profundiza en las sucesivas dimensiones static String tostring(t[] datos) genera una cadena para impresión static String deeptostring(t[] datos) genera una cadena para impresión, incluso si se trata de un array multidimensional. 16.10.2010 15

ejemplo crear un array para los 100 primeros enteros positivos y cargarlo con el cuadrado de cada uno [ 0, 1, 4, 9, 16, 25, 36, 49,... ] 16.10.2010 16

ejemplo crear un array de boolean para los 100 primeros enteros positivos, siendo true si es impar [ false, true, false, true, false, true,... ] 16.10.2010 17

ejemplo crear un array de boolean para los 100 primeros enteros positivos, y llenarlo de números aleatorios entre 0 y 1000 [ 30, 17, 514, 216, 701, 0,... ] 16.10.2010 18

ejemplo escriba un método que recibe un array y un número y los multiplica [ 30, 17, 514, 216, 701, 0,... ] * 2 [ 60, 34, 1028, 432, 1402, 0,... ] 16.10.2010 19

ejemplo escriba un método que recibe un array y devuelve el valor mínimo [ 30, 17, 514, 216, 701, 0 ] 0 algo similar, devolviendo la posición del mínimo 5 16.10.2010 20

ejemplo dado un array, calcular la suma de sus valores [ 30, 17, 514, 216, 701, 0 ] 1478 16.10.2010 21

ejemplo dado un array [ 30, 17, 514, 216, 701, 0 ] invertir sus términos de orden [ 0, 701, 216, 514, 17, 30 ] de dos formas: generando otro array reordenar en el mismo array 16.10.2010 22

ejemplo dado un array [ 30, 17, 514, 216, 701, 0 ] permutarlo aleatoriamente [ 0, 701, 17, 514, 30, 216 ] 16.10.2010 23

ejemplo dado un array [ 30, 17, 514, 216, 701, 0 ] escribir un método que devuelve el valor medio 246.33 16.10.2010 24

ejemplo escribir un método que determine si un array está en orden creciente o no 10 4 0 1-3 -3 0 0 1 10 false true 16.10.2010 25

ejemplo escribir un método para sumar 2 arrays donde cada array es una serie de números entre 0 y 10 2 0 0 5 7 7 0 2 0 8 2 16.10.2010 26

ejemplo escriba un método que recibe 2 arrays de letras, cada uno ordenado, y devuelve un array que combina ambos respetando el orden [ a, e, i, o, u ] [ d, m, y, z ] [ a, d, e, i, m, o, u, y, z ] 16.10.2010 27

ejemplo escriba un método que recibe una String y devuelve un array contando las vocales Estaba el Señor Don Gato sentadito en su tejado [ 5, 6, 1, 5, 1 ] 16.10.2010 28

ejemplo escriba un método que recibe una String y devuelve un array de substrings partidas por blancos Estaba el Señor Don Gato sentadito en su tejado [ Estaba, el, Señor, Don, Gato, sentadito, en, su, tejado ] 16.10.2010 29

búsqueda int busca (int x, int[] tabla) devuelve i, tal que x == tabla[i] devuelve 1, si no está búsqueda lineal sobre cualquier array búsqueda binaria sobre arrays ordenados 16.10.2010 30

ejemplo escriba un método que recibe un array y lo ordena [ 5, 6, 1, 5, 1 ] [ 1, 1, 5, 5, 6 ] 16.10.2010 31

ordenación sort (int[] tabla) Algoritmos selección voy seleccionando el menor inserción voy insertando en su lugar burbuja (bubble sort) voy permutando hasta que se esté quieto 16.10.2010 32

ordenación: selección Barremos el array en cada pasada se selecciona el menor se coloca en su sitio ordenado? 16.10.2010 33

ordenación: inserción Barremos el array en cada pasada cogemos el elemento siguiente lo insertamos en su sitio ordenado? 16.10.2010 34

ordenación: burbuja Barremos el array permutando los elementos en orden incorrecto hasta que no haya nada que permutar? 16.10.2010 35

ejemplo escriba un método que devuelve una matriz de N x N donde tabla[i][j] = i * j 16.10.2010 36

ejemplo escriba un método que devuelve el triángulo de Pascal de N líneas [ 1, 1 ] [ 1, 2, 1 ] [ 1, 3, 3, 1 ] [ 1, 4, 6, 4, 1 ] t[i][j] = t[i-1][j-1] + t[i-1][j] imprima el triángulo como arriba 16.10.2010 37

ejemplo escriba un método que recibe una matriz bidimensional y devuelve un array con tantas posiciones como la primera dimensión de la matriz, y como valor la suma de valores de la fila [ 1, 1 ] [ 1, 2, 1 ] [ 1, 3, 3, 1 ] [ 1, 4, 6, 4, 1 ] [ 2, 4, 8, 16 ] 16.10.2010 38