TEMA 8. Arrays. Array. Contenidos. 8.1 El concepto de array. Los datos pueden ser:

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

Download "TEMA 8. Arrays. Array. Contenidos. 8.1 El concepto de array. Los datos pueden ser:"

Transcripción

1 TEMA 8 Arrays 81 El concepto de array Los datos pueden ser: Simples: cada identificador representa una dirección de memoria donde guardar un valor escalar, pe un único valor de una variable: Datos de los tipos entero, real, carácter o lógico Compuestos: cada identificador representa una dirección de memoria a partir de la cual se guardan varios valores Guardan varios valores bajo un mismo identificador Registros: contienen varios datos que pueden ser de distinto tipo Arrays: contienen varios datos todos del mismo tipo Contenidos 81 El concepto de array 82 Arrays unidimensionales 83 Arrays bidimensionales 84 Arrays en expresiones 85 Lectura y escritura de arrays 86 Arrays dinámicos Array Es una colección de datos todos del mismo tipo y agrupados bajo el mismo identificador (nombre del array) Los datos o elementos de un array pueden ser de tipo: INTEGER REAL CHARACTER LOGICAL REGISTRO Según su dimensión, los arrays se clasifican en: Arrays unidimensionales (también llamados vectores o listas) Arrays bidimensionales (también llamados matrices o tablas)

2 Arrays unidimensionales Sólo tienen una dimensión Consisten en una lista de variables todas del mismo tipo Se accede a cada una mediante una expresión que viene dada por el nombre del array y entre paréntesis, un índice (su posición en el array): Nombre_array(índice) Identificador Expresión entera índice 1 2 i A Acceso a las componentes A(1) A(2) A(i) A(8) A(10) Array unidimensional cuyo nombre es AContiene 10 elementos reales Utilidad de los Arrays Son útiles (y en muchas ocasiones imprescindibles) cuando en un programa hay varios elementos del mismo tipo y que se procesan igual: si se realiza una misma instrucción (u operación) sobre cada elemento, basta con escribir dicha instrucción una sola vez y repetirla para cada elemento (mediante una instrucción de repetición) Ejemplo: Dado un programa que maneje los 100 salarios de 100 empleados Con datos simples tendríamos que utilizar 100 variables reales: REAL::salario1,salario2,,salario100 Con arrays bastaría con declarar 1 único vector o array de 100 elementos reales, que contenga los 100 salarios Si hay que calcular un incremento del salario del 4% para cada empleado, en lugar de realizar 100 veces el mismo cálculo, repito 100 veces la instrucción (que escribo una sola vez) mediante una instrucción de repetición Arrays bidimensionales Tienen dos dimensiones (fila y columna) Consisten en una matriz de variables todas de un mismo tipo Se accede a cada una mediante una expresión que viene dada por el nombre del array, y entre paréntesis y separados por coma, dos índices (el de fila y el de columna), que indican su posición en el array: Nombre_array(índice_fila, índice_col) Identificador Expresión entera Expresión entera Índice de Índice columna de fila 1 2 i B 1 j 5 Acceso a las B(6,1) componentes: B(i,j) B(2,1) Array bidimensional B, de 7x5 elementos reales Utilidad de los arrays 1 salarios salarios(1) 2 i salarios(2) salarios(i) salarios(100)

3 Utilidad de los arrays Ejemplo: Una constructora construye un bloque de 7 plantas y en cada planta 3 viviendas (Vivienda vendida: TRUE / Vivienda no vendida: FALSE) Con datos simples tendríamos que utilizar 7*3=21 identificadores diferentes Con arrays bastaría con declarar un array 7 x 3 de dimensión 2 82 Arrays unidimensionales (Declaración, acceso a las componentes y recorrido) Filas: Columnas: Utilidad de los arrays Ejemplo: array bidimensional de 7x3 Componentes denominado CasasVendidas true false true true false true true true false true false false false true true true false true true true false CasasVendidas(5,3) Indice de fila Indice de col Declaración La sintaxis general de declaración de un array unidimensional es: TIPO, DIMENSION(num_componentes):: nombre_array TIPO: Es el tipo de los datos que contiene el array (INTEGER, REAL, CHARACTER, LOGICAL o REGISTRO) num_componentes : es la longitud del vector, el número máximo de datos que caben en el array Debe ser una expresión entera Indica el espacio que hay que reservar en la memoria principal para albergar el vector Nombre_array : es el identificador o nombre del array Debe ser un identificador válido de Fortran

4 Ejemplos de declaración!declaración de un tipo: TYPE tipo_persona INTEGER:: dni CHARACTER (LEN = 30):: nombre CHARACTER:: nacionalidad END TYPE tipo_persona!ejemplos de declaración de arrays REAL, DIMENSION(3) :: u, v!reserva espacio en la memoria!para dos arrays de 3 reales!cada uno LOGICAL, DIMENSION(7) :: CasasVendidas INTEGER, DIMENSION(20) :: Notas!contiene 20 elem enteros CHARACTER(len=20),DIMENSION(30)::nombre CHARACTER(len=20),DIMENSION(30)::apellido1 TYPE (tipo_persona), DIMENSION(100)::alumnos El acceso a los elementos de un array sirve para poder usar cada elemento como si fuera una variable, y puede hacerse en cualquier expresión del programa Ejemplos: 1 Asignación del resultado de una expresión a un elemento de un array: nombre_array(índice) = expresión 2 Lectura de un elemento de un array Read*, nombre_array(índice) 2 Uso de un elemento de in array en una expresión: nombre_var = nombre_array(índice) Ejemplo: character(len = 30), dimension(11)::nombres_jugadores character(len=30):: nombre_descalificado nombres_jugadores(7) = Raúl!Escritura en el array nombre_descalificado = nombres_jugadores(7)!lectura del array Acceso a los elementos de un array Se accede a los diferentes elementos de un array a través del nombre del array seguido de un número entero entre paréntesis llamado índice que indica la posición a la que se quiere acceder: Ejemplo: u(1) = 30 índice u 30 u(3) = u(1)* a = 2!a es variable entera u(2*a-2) = 45 El índice puede venir dado por cualquier expresión entera 1 Recorrido por los elementos de un array 1D Se realiza un recorrido por los elementos de un array para procesarlos realizando la misma operación repetidamente con todos o con algunos de sus elementos, por ejemplo para: Leer de teclado el valor de cada elemento Escribir cada elemento en la pantalla Utilizar cada elemento en una expresión Procesar cada elemento, Buscar un elemento en un array Buscar la posición de un elemento en un array Sumar los elementos de un array Contar el número de veces que aparece un elemento en un array, etc Para recorrer un array se utiliza una instrucción de repetición en la que se repite una instrucción donde variando el índice (posición del elemento en el array) en cada repetición, se recorre el array pasando por los elementos deseados

5 Recorrido por los elementos de un array 1D INTEGER:: indice INTEGER, DIMENSION(15) :: vector Ejemplo: lectura de los elementos del vector elemento a elemento, pe para cuando el usuario escribe cada uno en una línea distinta y hay que usar un read para leer cada elemento: PRINT*, Teclee 15 datos, cada uno en una línea DO indice = 1, 15 READ*,vector(indice)!Con cada read hay salto de línea NOTA: Los elementos de un array también se pueden leer sin realizar un recorrido por todos ellos, pe cuando el usuario los introduce a través de teclado todos en la misma línea y separados por espacios o por comas En este caso todos los elementos pueden leerse con un único read: PRINT*, Teclee 15 datos en la misma línea READ*, vector Recorrido por los elementos de un array 1D Media de los elementos almacenados en un array de longitud 10: Ejercicio: Modifíquelo para que la lectura de los elem se realice en una subrutina Recorrido por los elementos de un array 1D Ejemplo: calcular la nota media a partir de dos parciales para todos los alumnos de una clase de 80 alumnos Las notas de cada parcial se hallan en sendos arrays nota1 y nota2 de 80 elementos Guárdense las notas finales en el array final de 80 elementos INTEGER, PARAMETER::NUM_ALUMNOS=80 REAL, DIMENSION(NUM_ALUMNOS)::nota1,nota2,final INTEGER:: i! Se asignan valores a nota1 y nota2! Se recorren los arrays variando el índice desde la posición 1 hasta la! posición NUM_ALUMNOS para procesar cada elemento: DO i = 1,NUM_ALUMNOS final(i) = (nota1(i)+nota2(i))/2 Ejemplo Programa que pregunta las bases y las alturas de 10 rectángulos y las guarda en sendos arrays Posteriormente calcula las superficies de los rectángulos, las guarda en un array, y las escribe en la pantalla PROGRAM areas_rectangulos IMPLICIT NONE INTEGER, PARAMETER:: NUM_RECTANGULOS = 10 REAL, DIMENSION(NUM_RECTANGULOS):: bases, alturas, areas CALL leer_lados(bases, alturas, NUM_RECTANGULOS) CALL calcular_areas_rectangulos(bases, alturas, areas, NUM_RECTANGULOS) CALL escribir resultados(areas, NUM_RECTANGULOS) END PROGRAM areas_rectangulos

6 SUBROUTINE leer_lados(bases, alturas, N) IMPLICIT NONE INTEGER, INTENT(in):: N!Debe declararse antes de usarlo en la siguiente declarac REAL, DIMENSION(N), INTENT(out):: bases, alturas INTEGER::i DO i=1,n PRINT*, Escriba la base y la altura del rectángulo, i, : READ*, bases(i), alturas(i) END SUBROUTINE leer_lados!************************************************************** SUBROUTINE calcular_areas_rectangulos(bases, alturas, areas, N) IMPLICIT NONE INTEGER, INTENT(in):: N REAL, DIMENSION(N), INTENT(in):: bases, alturas REAL, DIMENSION(N), INTENT(out):: areas INTEGER::i DO i=1,n areas(i) = bases(i)*alturas(i) END SUBROUTINE calcular_areas_rectangulos!************************************************************** SUBROUTINE escribir resultados(areas, N) IMPLICIT NONE INTEGER, INTENT(in):: N REAL, DIMENSION(NUM_RECTANGULOS):: bases, alturas, areas INTEGER::i DO i=1,n PRINT*, El área del rectángulo, i, es:, areas(i) Acceso a los elementos de un array de registros (continúa):!lectura de nombres y salarios DO i=1, 100 PRINT*, Escriba el nombre y el salario del empleado, i READ*, empleados(i)%nombre, empleados(i)%salario!subida del salario un 4% a todos los empleados DO i=1, 100 empleados(i)%salario = empleados(i)%salario + & & empleados(i)%salario *4 / 100 END SUBROUTINE escribir_resultados Acceso a los elementos de un array de registros!declaración de tipo TYPE tipo_persona CHARACTER(LEN=50):: nombre CHARACTER:: nacionalidad REAL:: salario END TYPE tipo_persona!declaración de un array de elementos de tipo tipo_persona TYPE(tipo_persona), dimension(100):: empleados!inicialización de la nacionalidad de los 10 primeros! empleados a e (española): DO i = 1, 10 empleados(i)%nacionalidad = e Búsqueda de un elemento en un array INTEGER FUNCTION posicion_elemento (A, num_elementos, elemento) IMPLICIT none! Función que busca un elemento entero en un array Si lo encuentra, devuelve como! resultado la 1ª posición donde lo halla, y si no encuentra el elemento en el! array, da como resultado cero (0)! Declaración de argumentos: INTEGER, INTENT(IN):: num_elementos!número de elementos del array A INTEGER, INTENT(IN), DIMENSION(num_elementos)::A!array INTEGER, INTENT(IN):: elemento!elemento a buscar en el array!declaración de variables locales LOGICAL:: encontrado! Indica si se encuentra el elemento INTEGER:: i encontrado = false! Se inicializa a false (todavía no lo ha encontrado) posicion_elemento = 0! Cuando encuentre el elemento tomará el valor de la! posición donde se halla i=1 DO WHILE ((NOTencontrado)and (i<=num_elementos)) IF (A(i) == elemento) THEN encontrado = true posicion_elemento = i END IF i = i+1 END FUNCTION posicion_elemento

7 83 Arrays bidimensionales (Declaración, acceso a las componentes y recorridos) Ejemplos de declaración (2D) REAL, DIMENSION(3,3) :: matriz1, matriz2 LOGICAL, DIMENSION(7,3):: CasasVendidas INTEGER, DIMENSION(20,3) :: Notas CHARACTER(len=20),DIMENSION(30,5)::nombres!Array para guardar 6 medidas de contaminación!cada mes del año: REAL, DIMENSION(12,6)::medidas!reserva espacio para 12x !reales medidas(2,6) Declaración La sintaxis general de declaración de arrays bidimensionales es: TIPO,DIMENSION(numfilas,numcolumnas)::nombrearray TIPO: Es el tipo de datos que contendrá el array (INTEGER, REAL, CHARACTER, LOGICAL o REGISTRO) numfilas, numcolumnas : son el número de filas y de columnas de datos que contendrá el array, respectivamente Deben ser expresiones enteras nombrearray : es el identificador de la colección o array Debe ser identificador válido en Fortran 90 Acceso a los elementos de un array (2D) Se accede a los diferentes elementos de un array a través del nombre de la colección seguido de dos números enteros entre paréntesis que indican la fila y columna del elemento al que se quiere acceder: Ejemplo: velocidades velocidades(1,1) = 3 velocidades (2,3) = 55 velocidades (3,2) =

8 Acceder a una posición de un array (2D) Acceso a elementos de un array como si fueran variables: 1 Asignación del resultado de una expresión al elemento de un array de la fila fil y columna col: nombre_array(fil,col) = expresion Ej: medidas(2,6)= 63 2 Lectura de un elemento del array procedente del teclado: READ*, nombre_array(fil, col) 2 Asignación de un valor guardado en la fila fil y columna col, a una variable de nombre nombre_var: nombre_var = nombre_array(fil,col) Ej: real:: medida medida = medidas(2,6) Recorrido por los elementos de un array 2D Recorridos por columnas: DO col=1,numero_columnas DO fil=1,numero_filas nombre_array(fil,col) Se fija el número de columna y se recorren todas las filas Se repite esta operación para cada columna Ejemplo: Leer 12 elem y almacenarlos en el array A en el orden que resulta al recorrer el array por columnas: INTEGER, DIMENSION(3,4)::a PRINT*, Escriba 12 elem de la matriz, cada uno en una línea, por orden de columnas DO j = 1,4 DO i = 1,3 READ*, a(i,j)!el usuario escribe cada elemento en una línea Recorrido por los elementos de un array 2D Recorridos por filas: DO fil=1,numero_filas DO col=1,numero_columnas nombre_array(fil,col) Se fija el número de fila y se recorren todas las columnas Se repite esta operación para cada fila Ejemplo: Leer 12 elem y almacenarlos en el array A en el orden que resulta al recorrer el array por filas: PRINT*, Escriba 12 elem de la matriz, cada uno en una línea y por orden de filas DO i = 1,3 DO j = 1,4 READ*, a(i,j)!el usuario escribe cada elemento en una línea Recorrido por los elementos de un array 2D Ejemplos de recorridos: imprimir por pantalla los elementos de una matriz 3x6 por orden de filas INTEGER i,j INTEGER, DIMENSION(3,6) :: matriz! Imprimimos matriz por pantalla DO i = 1,3 DO j = 1,6 Print*, Elemento fila,i, columna,j, Print*,matriz(i,j)

9 Recorrido por los elementos de un array 2D Arrays en expresiones Ejemplos de recorridos: pedir por teclado los elementos de una matriz siguiendo el orden de las filas: DO i=1,n_filas print*, fila:,i DO j=1,n_columnas print*, dame el elemento de la fila:, i, columna:,j read*,b(i,j) Cualquier expresión en Fortran puede contener arrays como operandos, si estos tienen el mismo tamaño Ejemplo: si definimos a, b y c así: REAL, DIMENSION(20):: A, B, C INTEGER, DIMENSION(3,4):: E, F Son expresiones válidas: -A + 30*B 20*E - 50*F Asignación a matrices Las expresiones anteriores pueden asignarse a otros arrays, siempre que tengan el mismo tamaño 84 Arrays en expresiones Ejemplo 1: si definimos A, B y C así: real, dimension(20)::a, B, C DO i=1,20 c=-a+30*b*c equivale a: c(i)=-a(i)+30*b(i)*c(i) A = 8!Los 20 elem de A toman valor 8 B = 0!Todos los elem de B toman valor 0

10 Asignación a matrices Ejemplo: REAL, DIMENSION(10, 5):: a, b INTEGER:: i, j b = 300!Asigna a todos los elem de b el valor 300!La instrucción: a = sin(b)! asigna a cada elemento de a el seno de su! correspondiente elemento en b 85 Lectura y escritura de arrays! Es equivalente a: DO i=1,10 DO j=1,5 a(i,j)= sin(b(i,j)) Submatrices Es posible tratar submatrices como si fueran matrices, en expresiones Se denotan mediante el nombre de la matriz a la que pertenecen, y entre paréntesis y separados por comas, los rangos del índice de fila y del índice de columna que abarca la submatriz en la matriz, respectivamente El rango de variación de un índice se denota mediante el valor inicial del índice, seguido de dos puntos y del valor final Los índices inicial y final vienen dados por expresiones enteras Integer, parameter:: long =, long1 =, long2 = Integer, dimension(long):: vector Integer, dimension(long1, long2):: matriz Integer:: n1, n2, m1, m2 Vector(n1:n2)!Es el subvector contenido en el vector, que n1 n2!va de las posiciones n1 a la n2 del vector y!cuya longitud es n2-n1+1 Se puede tratar en!expresiones como si fuese un vector Matriz(n1:n2, m1:m2)!es la submatriz contenida en la m1 m2! matriz que va desde las filas n1 a la! n2 y desde las columnas m1 a la m2! Se puede tratar en expresiones como n1! si fuese una matriz n2 Disposición de los arrays en la memoria Arrays 1D: sus elementos se almacenan de forma consecutiva, por orden de su posición en el array: Ej: integer, dimension(5):: A A Array A(1) A(2) A(3) A(4) A(5) Dirección MP A A(1) A(2) A(3) A(4) A(5) Disposición en MP Arrays 2D: sus elementos se almacenan de forma consecutiva, siguiendo orden por columnas: Ej: Integer, dimension(2,3)::b dirección MP B B(1,1) B(1,2) B(1,3) B(2,1) B(2,2) B(2,3) Array B B(1,1) B(2,1) B(1,2) B(2,2) B(1,3) B(2,3) Disposición en MP

11 Lectura y escritura de arrays 1D Integer, dimension(n):: vector LECTURA DE UN ARRAY 1D MEDIANTE UNA INSTRUCCIÓN SIMPLE read*, vector!lee los n primeros elementos que!se introducen desde teclado y los!almacena en las n posiciones de la MP a!partir del array, es decir, los almacena!por ese orden en el array Se pueden introducir los n elementos en la misma línea separados por comas o blancos ESCRITURA DE UN ARRAY 1D MEDIANTE UNA INSTRUCCIÓN SIMPLE print*, vector!escribe los n elementos del array en la misma!línea en el orden en que están almacenados en MP También podemos leer y escribir elemento a elemento, en cuyo caso habrá que construir una estructura de repetición Ejemplos Pedir al usuario que teclee los elementos de una matriz B, 3x4 por columnas, y calcular la suma de los elementos de la columna 2: INTEGER, DIMENSION(3,4):: b INTEGER:: i, j, suma PRINT*, Teclee los elementos de B en una fila y por columnas READ*, b suma = 0 j = 2 DO i = 1, 3 suma = suma + b(i,j) PRINT*, La suma de los elementos de la columna, j, es: suma Lectura y escritura de arrays 2D Integer, dimension(n,m):: matriz LECTURA DE UN ARRAY 2D MEDIANTE UNA INSTRUCCIÓN SIMPLE read*, matriz!lee los nxm primeros elementos que!se introducen desde teclado y los!almacena en las nxm posiciones de la MP a!partir del array, es decir, los almacena!por orden de columnas en el array Conviene decir al!usuario que introduzca los elementos de la matriz por!columnas Se pueden introducir los nxm elementos en la misma línea separados por comas o blancos ESCRITURA DE UN ARRAY 2D MEDIANTE UNA INSTRUCCIÓN SIMPLE print*, matriz!escribe los nxm elementos del array en la misma!línea en el orden en que están almacenados en MP, es decir,!por columnas También podemos leer y escribir elemento a elemento, en cuyo caso habrá que construir una estructura de repetición Ejemplos Sumar todos los elementos de una fila cuyo índice se pregunta al usuario: INTEGER, DIMENSION(3,4):: b INTEGER:: i, j, suma PRINT*, Teclee los elementos de B en una fila y por columnas READ*, b PRINT*, De qué fila desea calcular la suma? READ*, i Suma = 0 DO j = 1, 4 suma = suma + b(i, j)

12 Ejemplos integer, parameter::n = 3 integer, parameter::m = 2 Ejemplos Sumar todos los elementos de la matriz: INTEGER, DIMENSION(3,4):: b INTEGER:: i, j, suma PRINT*, Teclee los elementos de B en una fila y por columnas READ*, b suma = 0 DO i = 1, 3 DO j = 1, 4 suma = suma + b(i, j) integer, dimension(n)::lista real, dimension(n,m)::tabla Print*, Escriba los, n, elementos de la lista Read*, lista Print*, Escriba los,n*m, elementos de la tabla por columnas Read*, tabla Print*, Lista: Print*, lista Print*, tabla: Print*, tabla Ejemplo de ejecución: Escriba los 3 elementos de la lista Escriba los 6 elementos de la tabla por columnas Lista: Tabla: lista 6 tabla Ejemplos integer, parameter:: n = 3 integer, parameter:: m = 2 integer, dimension(n):: lista real, dimension(n,m):: tabla integer::i,j Ejemplos Suma de los elementos de cada fila de una matriz: INTEGER, DIMENSION(3,4):: b INTEGER:: i, j, suma PRINT*, Teclee los elementos de B en una fila y por columnas READ*, b DO i = 1,3 suma_fila = 0 DO j = 1,4 suma_fila = suma_fila + b(i,j) PRINT*, La suma de los elementos de la fila, i, es:, suma_fila!lectura de los elementos cada uno en una línea Print*, Escriba los, n, elementos de la lista, cada uno en una línea Do i=1,n Read*, lista(i) End do!lectura de los elementos de la matriz con cada uno en una línea Print*, Escriba los,n*m, elementos de la tabla por filas cada uno en una línea do i=1,n do j=1,m Read*, tabla(i,j) end do end do!lectura de los elementos de la matriz con cada uno en una línea Print*, Escriba los,n*m, elementos de la tabla por columnas do j=1,m do i=1,n Read*, tabla(i,j) end do end do!escritura de los elementos de la lista con cada uno en una línea: Do i=1,n print*, lista(i) End do!escritura de los elementos de la tabla por filas con cada uno en una línea do i=1,n do j=1,m print*, tabla(i,j) end do end do

13 Consejos para la programación con arrays Escritura de los elementos de una matriz con todos los elementos de cada fila en una línea: integer, dimension(n, m):: matriz integer::i,j do i = 1, n print*, matriz(i, 1:m)!Acceso a subtablas end do Salida por pantalla: Es conveniente declarar las dimensiones del array con una constante no literal Ejemplo: INTEGER, PARAMETER::long = 80 REAL, DIMENSION(long)::nota1,nota2,final integer, dimension(4,3):: a integer:: i, j Print*, Escriba cada fila de la matriz en una línea! pej: <INTRO>! <INTRO>! <INTRO>! <INTRO> DO i = 1, 4 READ*, a(i,1:3)!mediante acceso a subtablas Arrays como argumentos! Al enviar un array como argumento a un subprograma, conviene enviar además otro argumento:! el tamaño del array Ejemplo: INTEGER, PARAMETER:: NUM_ELEMENTOS = 100, F=30, C=2 REAL, DIMENSION(NUM_ELEMENTOS):: a REAL, DIMENSION(F,C):: b CALL leer_datos(a, NUM_ELEMENTOS, b, F, C)!********************************************* SUBROUTINE leer_datos(lista, longitud, matriz, num_filas, num_columnas) INTEGER, INTENT(IN):: longitud, num_filas, num_columnas! Antes de declarar los arrays deben estar declarados los tamaños, para que estos sean! conocidos a la hora de usarlos: REAL, DIMENSION(longitud), INTENT(OUT):: lista REAL, DIMENSION(num_filas, num_columnas), INTENT(OUT):: matriz! Así conseguiremos que el subprograma que recibe el array pueda reutilizarse para arrays de! cualquier tamaño! Del mismo modo, también es útil enviar como argumento la longitud de las cadenas de! caracteres

14 Ejemplo Programa que calcula la traza de una matriz 3x3 (suma de los elementos de la diagonal principal): PROGRAM ej_traza IMPLICIT NONE INTEGER, PARAMETER:: N = 3 INTEGER, DIMENSION(N, N):: matriz REAL, EXTERNAL:: traza INTEGER::i DO i=1, n PRINT*, fila: : i READ*, matriz(i, 1:n) PRINT*, La traza es:, traza(matriz, n) END PROGRAM ej_traza! REAL FUNCTION traza(matriz, lado) Implicit none INTEGER, INTENT(IN):: lado INTEGER, DIMENSION(lado, lado), INTENT(IN):: matriz INTEGER::contador REAL:: suma suma = 00 DO contador = 1, lado suma = suma + matriz(contador, contador) traza = suma END FUNCTION traza Arrays dinámicos Los arrays con los que hemos trabajado hasta ahora son arrays estáticos: su tamaño se fija en tiempo de compilación (o diseño) y no varía a lo largo de la ejecución del programa (utilización estática de la memoria) Ejemplo: real, dimension (20)::notas Si se declaran arrays de un número fijo de elementos se tienen los siguientes inconvenientes: Si en algún momento en la ejecución del programa hay más elementos, no hay espacio reservado para almacenarlos Si hay menos, se está desaprovechando memoria 86 Arrays dinámicos Arrays dinámicos Fortran 90 permite reservar memoria de forma dinámica, es decir, en tiempo de ejecución, en función de las necesidades que surgen a lo largo de la ejecución Para ello debemos utilizar arrays dinámicos, siguiendo estos 3 pasos: 1 Se declara el array con el atributo ALLOCATABLE, sin dar información sobre su tamaño, que se definirá más tarde Sintaxis:!Array dinámico 1D: Tipo, dimension(:), ALLOCATABLE:: nombre_vector!array dinámico 2D: Tipo, dimension(:,:), ALLOCATABLE:: nombre_matriz

15 DEALLOCATE 2 Se utiliza la sentencia ALLOCATE dentro del programa para definir el tamaño deseado para el array Se debe realizar este paso antes de trabajar con el array Sintaxis: ALLOCATE(nombre_vector(longitud)) ALLOCATE(nombre_matriz(num_filas, num_columnas)) 3 Una vez se ha utilizado un array dinámico, si ya no se necesita más, se puede liberar la memoria que ocupa mediante la sentencia DEALLOCATE Sintaxis: DEALLOCATE(nombre_vector) DEALLOCATE(matriz) Arrays dinámicos 2D REAL, DIMENSION(:,:), ALLOCATABLE::matriz INTEGER::n,m! Durante el programa: print*, Filas de la matriz: read*,n print*, Columnas de la matriz: read*,m ALLOCATE(matriz(n,m))! Luego n es el tamaño de nombre_vector DEALLOCATE(matriz) Arrays dinámicos 1D REAL, DIMENSION(:), ALLOCATABLE::nombre_vector INTEGER::n! Durante el programa: print*, Indique el tamaño del vector read*,n ALLOCATE(nombre_vector(n))! Luego n es el tamaño de nombre_vector DEALLOCATE(numbre_vector) Ejemplo Programa que calcula la traza de una matriz cuadrada cuyo tamaño se pide al usuario (suma de los elementos de la diagonal principal): PROGRAM ej_traza IMPLICIT NONE INTEGER, DIMENSION(:,:), ALLOCATABLE:: matriz REAL, EXTERNAL:: traza INTEGER::i, n PRINT*, Cuál es número de filas de la matriz cuadrada? READ*, n ALLOCATE(matriz(n,n)) DO i=1, n PRINT*, fila: : i READ*, matriz(i, 1:n) PRINT*, La traza es:, traza(matriz, n) DEALLOCATE(matriz) END PROGRAM ej_traza! REAL FUNCTION traza(matriz, lado) Implicit none INTEGER, INTENT(IN):: lado INTEGER, DIMENSION(lado, lado), INTENT(IN):: matriz INTEGER::contador REAL:: suma suma = 00 DO contador = 1, lado suma = suma + matriz(contador, contador) traza = suma END FUNCTION traza

16 Ejemplo Cálculo de la media de los elementos de un vector a cuyo tamaño n se pregunta al usuario PROGRAM media_reales IMPLICIT none REAL, DIMENSION(:), ALLOCATABLE:: a INTEGER:: n REAL, EXTERNAL:: media PRINT*, Cuántos elementos tiene el vector? READ*, n ALLOCATE(a(n))!reserva n celdas en la MP para n reales CALL leer_vector(a, n) PRINT*, La media de los elementos del vector es:, media(a,n) DEALLOCATE(a)!libera la memoria ocupada por el vector a END PROGRAM media_reales!***************************************************************************** SUBROUTINE leer_vector(a, n) IMPLICIT NONE INTEGER, INTENT(IN):: n REAL, DIMENSION(n), INTENT(OUT):: a PRINT*, Introduzca, n, números reales separados por blancos o por comas READ*, a END SUBROUTINE leer_vector!***************************************************************************** REAL FUNCTION media(a, n) IMPLICIT NONE INTEGER, INTENT(IN):: n REAL, DIMENSION(n), INTENT(IN):: a INTEGER:: i, suma suma = 0 DO i=1, n suma = suma + a(i) media = suma/n END FUNCTION media

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas

Capítulo 4. Vectores y matrices. 4.1 Declaración de tablas. 4.2 Declaración estática de tablas Capítulo 4 Vectores y matrices En FORTRAN se puede utilizar un tipo especial de variable que sirve, en particular, para almacenar vectores y matrices. De esta forma, se utiliza un sólo nombre para referirse

Más detalles

Introducción al tipo de dato ARRAY

Introducción al tipo de dato ARRAY CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción

Más detalles

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio Arreglos Un arreglo es un tipo de datos que contiene varios elementos de un mismo tipo. Cada elemento tiene asociado un índice, y puede ser tratado como si fuera una variable. La cantidad de elementos

Más detalles

Academia técnica de computación A.T.C.

Academia técnica de computación A.T.C. Academia técnica de computación A.T.C. Free Pascal (FPC) El Free Pascal es un compilador Pascal portable, libre y de código abierto, que representa una alternativa a los productos comerciales Turbo Pascal

Más detalles

ESTRUCTURA DE DATOS: ARREGLOS

ESTRUCTURA DE DATOS: ARREGLOS ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción

Más detalles

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN 2.1.- EJEMPLO DE UN PROGRAMA FORTRAN Con el presente apartado comenzaremos a conocer cómo se escribe un programa en lenguaje FORTRAN bajo el entorno de programación FORTRAN. En primer lugar conozcamos

Más detalles

Sobre la lectura y escritura de datos en FORTRAN.

Sobre la lectura y escritura de datos en FORTRAN. Sobre la lectura y escritura de datos en FORTRAN. 1. Las sentencias READ /WRITE Uno de los elementos básicos de la programación e cualquier lenguaje es la lectura y/o escritura de datos. En el lenguaje

Más detalles

PRACTICA 6. VECTORES Y MATRICES.

PRACTICA 6. VECTORES Y MATRICES. PRACTICA 6. VECTORES Y MATRICES. 1. Introducción. Los vectores y matrices son uno de los medios principales para el almacenamiento de los datos en un programa. En esta práctica veremos todos los conceptos

Más detalles

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS

GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS 1.- PLANTILLA DE PUBLICACIONES En este maestro crearemos la publicación base sobre la cual el programa generará

Más detalles

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

Más detalles

Algorítmica y Lenguajes de Programación. Ordenación (i)

Algorítmica y Lenguajes de Programación. Ordenación (i) Algorítmica y Lenguajes de Programación Ordenación (i) Ordenación. Introducción A lo largo del curso hemos visto distintas formas de almacenar datos: Vectores. Matrices. Ficheros Listas (pilas y colas)

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

11. Algunas clases estándar de Java (II)

11. Algunas clases estándar de Java (II) 122 A. García-Beltrán y J.M. Arranz 11. Algunas clases estándar de Java (II) Objetivos: a) Presentar la clase predefinida en Java para trabajar con arrays b) Interpretar el código fuente de una aplicación

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

Tema 9. Vectores y Matrices

Tema 9. Vectores y Matrices Tema 9. Vectores y Matrices OBJETIVO En temas anteriores hemos declarado variables simples de tipo int, float, o de cualquier otro tipo simple. A menudo necesitaremos declarar una colección de variables,

Más detalles

Arrays y Cadenas en C

Arrays y Cadenas en C Arrays y Cadenas en C Los arrays son variables estructuradas, donde cada elemento se almacena de forma consecutiva en memoria. Las cadenas de caracteres son declaradas en C como arrays de caracteres y

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Tema 7: Programación con Matlab

Tema 7: Programación con Matlab Tema 7: Programación con Matlab 1. Introducción Matlab puede utilizarse como un lenguaje de programación que incluye todos los elementos necesarios. Añade la gran ventaja de poder incorporar a los programas

Más detalles

Vectores. 27/05/05 Programación Digital I 1

Vectores. 27/05/05 Programación Digital I 1 Vectores Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación

Más detalles

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1

Cómo?: Resolviendo el sistema lineal homógeneo que satisfacen las componentes de cualquier vector de S. x4 = x 1 x 3 = x 2 x 1 . ESPACIOS VECTORIALES Consideremos el siguiente subconjunto de R 4 : S = {(x, x 2, x 3, x 4 )/x x 4 = 0 x 2 x 4 = x 3 a. Comprobar que S es subespacio vectorial de R 4. Para demostrar que S es un subespacio

Más detalles

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA ARREGLOS EN JAVA I I N T R O D U C C I Ó N En las sesiones anteriores, los datos manejados en los programas han sido datos simples (carácter, entero, reales) En un gran número de problemas es necesario

Más detalles

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03. INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados

Más detalles

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario Empleo de módulos y Procedimientos Procedimientos definidos por el usuario Según lo que hemos visto hasta ahora, Visual Basic, almacena el código en módulos. Hay tres clases de módulos: formularios (.frm),

Más detalles

Estructura de datos (arreglos) Vectores y Matrices

Estructura de datos (arreglos) Vectores y Matrices Apunte del curso PROGRAMACIÓN (FI-UBA,, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez Estructura de datos (arreglos) Hasta aquí se han visto distintos tipos de estructuras

Más detalles

Fundamentos de la Programación

Fundamentos de la Programación Fundamentos de la Programación El Software Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software. Dos grandes grupos de software

Más detalles

GUÍA DE TRABAJO N 2 ARREGLOS EN C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8. Tema: ARREGLOS (ARRAYS) LENGUAJE C#

GUÍA DE TRABAJO N 2 ARREGLOS EN C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8. Tema: ARREGLOS (ARRAYS) LENGUAJE C# Página 1 de 8 Tema: ARREGLOS (ARRAYS) LENGUAJE C# Objetivo: Conocer el concepto, clasificación e implementación de los arreglos en el lenguaje de programación C# en un proyecto tipo consola. INTRODUCCIÓN

Más detalles

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la

Más detalles

Hoja de problemas Estructuras de Control

Hoja de problemas Estructuras de Control Departamento de Estadística, I.O. y Computación Ingeniería Técnica Industrial - Electrónica Industrial Fundamentos de Informática Hoja de problemas Estructuras de Control 1. Cuál es el efecto de las siguientes

Más detalles

Ejercicio 1 (2 puntos. Tiempo: 25 minutos)

Ejercicio 1 (2 puntos. Tiempo: 25 minutos) Fecha de publicación de notas: jueves 18 de Julio. Fecha de revisión: viernes 19 de Julio a las 10:00h. Despacho C-209. Ejercicio 1 (2 puntos. Tiempo: 25 minutos) Se desea desarrollar un programa en C

Más detalles

EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO)

EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO) EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO) Luis José Sánchez 1. Realiza un programa que sume los 100 números siguientes a un número entero y positivo introducido por teclado. Se debe

Más detalles

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES

3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES 3 ESTRUCTURAS DE CONTROL REPETITIVAS. BUCLES 3.1 Estructuras de repetición Una estructura de repetición, también llamada lazo o bucle, hace posible la ejecución repetida de secciones específicas de código.

Más detalles

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. 1.) (HOLUB). Escribir un traductor que reconozca definiciones de C siguiendo el estilo antiguo, tal como: prueba(uno, dos, tres, cuatro,

Más detalles

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0

Más detalles

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

Definición 1.1.1. Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas. Tema 1 Matrices Estructura del tema. Conceptos básicos y ejemplos Operaciones básicas con matrices Método de Gauss Rango de una matriz Concepto de matriz regular y propiedades Determinante asociado a una

Más detalles

PRÁCTICA 1: INTRODUCCIÓN A LA ALGORÍTMICA BOLETIN DE PROBLEMAS RESUELTOS. (Curso 03-04)

PRÁCTICA 1: INTRODUCCIÓN A LA ALGORÍTMICA BOLETIN DE PROBLEMAS RESUELTOS. (Curso 03-04) PRÁCTICA 1: INTRODUCCIÓN A LA ALGORÍTMICA BOLETIN DE PROBLEMAS RESUELTOS. (Curso 03-04) EJERCICIOS DE ESTRUCTURAS ALTERNATIVAS : 1.- Haga el algoritmo en pseudo código que, dada una variable cuyo valor

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

Funciones y subrutinas

Funciones y subrutinas Funciones y subrutinas Introducción En lecciones anteriores se ha descrito el concepto de diseño descente; esta técnica permite desarrollar algoritmos que resuelvan un problema mediante un proceso de reamiento

Más detalles

SOLUCIÓN CASO GESTIÓN DE COMPRAS

SOLUCIÓN CASO GESTIÓN DE COMPRAS SOLUCIÓN CASO GESTIÓN DE COMPRAS Comenzamos por abrir un libro de trabajo y lo guardaremos con el nombre Compras. 1) En primer lugar resolveremos el primer apartado en la hoja 1 del libro de trabajo procediendo

Más detalles

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES CASO PRÁCTICO DISTRIBUCIÓN DE COSTES Nuestra empresa tiene centros de distribución en tres ciudades europeas: Zaragoza, Milán y Burdeos. Hemos solicitado a los responsables de cada uno de los centros que

Más detalles

Herramientas computacionales para la matemática MATLAB: Otros tipos de datos

Herramientas computacionales para la matemática MATLAB: Otros tipos de datos Herramientas computacionales para la matemática MATLAB: Otros tipos de datos Verónica Borja Macías Mayo 2012 1 Otros tipos de datos La especialidad de MATLAB es trabajar con vectores y matrices, pero MATLAB

Más detalles

Curso 0 de Informática

Curso 0 de Informática Curso 0 de Informática 2015-2016 Tema 1: Introducción a la Informática y Conceptos básicos 1 Motivación (I): En los procesos industriales, cada vez es mayor el uso de sistemas informáticos para: Monitorización,

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle: PL/SQL (Procedural Language/Structured Query Language) PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los

Más detalles

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control 1er curso de Ingeniería Industrial: Ingeniería de Control Práctica 1ª: Introducción a Matlab Departamento de Ingeniería electrónica, Telecomunicación y Automática. Área de Ingeniería de Sistemas y Automática

Más detalles

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1 Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Máquina Expendedora (3.5 ptos.)... 1 1.2 Ejercicio 2: Clase Circulo (1.0 pto.)... 3 1.3 Ejercicio

Más detalles

Sintaxis y Convenciones de Java. M. en C. Erika Vilches

Sintaxis y Convenciones de Java. M. en C. Erika Vilches Sintaxis y Convenciones de Java M. en C. Erika Vilches Estructura del Código en Java Hay una clase en un archivo fuente Hay métodos en una clase Hay enunciados en un método Anatomía de una Clase Cuando

Más detalles

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido Tema 3 Medidas de tendencia central Contenido 31 Introducción 1 32 Media aritmética 2 33 Media ponderada 3 34 Media geométrica 4 35 Mediana 5 351 Cálculo de la mediana para datos agrupados 5 36 Moda 6

Más detalles

Cómo nombrar variables ( 2&

Cómo nombrar variables ( 2& &'()*+,, *)-.&'*/0+!" #$ # http://www.escet.urjc.es/~aiiq/ Introducción a Visual Studio.NET Aprendiendo el IDE de Visual Basic.NET Elementos del lenguaje. Variables y estructuras de datos Introducción

Más detalles

Introducción al lenguaje JAVA

Introducción al lenguaje JAVA Universidad Autónoma de Tlaxcala Introducción al lenguaje JAVA M.C.. José Juan Hernández ndez Mora Segunda Sesión 1. Arreglos 2. Matrices 3. Clases en Java 4. Clases de Usuario en Java 5. Objetos definidos

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10 CONCEPTOS BASICOS Febrero 2003 Página - 1/10 EL ESCRITORIO DE WINDOWS Se conoce como escritorio la zona habitual de trabajo con windows, cuando iniciamos windows entramos directamente dentro del escritorio,

Más detalles

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II)

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II) Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II) Verónica Borja Macías Mayo 2012 1 La línea H1 y las líneas de texto de ayuda La línea H1 y las líneas

Más detalles

MANUAL DE PRACTICUM12 PARA CENTROS EDUCATIVOS ÁMBITO MÁSTER

MANUAL DE PRACTICUM12 PARA CENTROS EDUCATIVOS ÁMBITO MÁSTER MANUAL DE PRACTICUM12 PARA CENTROS EDUCATIVOS ÁMBITO MÁSTER Centros educativos de la Comunidad de Madrid que deseen ser centros de prácticas de los alumnos del Máster en Profesorado de ESO y Bachillerato,

Más detalles

EJERCICIOS SOBRE : DIVISIBILIDAD

EJERCICIOS SOBRE : DIVISIBILIDAD 1.- Múltiplo de un número. Un número es múltiplo de otro cuando lo contiene un número exacto de veces. De otra forma sería: un número es múltiplo de otro cuando la división del primero entre el segundo

Más detalles

Herencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases

Herencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases Herencia 3.- Herencia La herencia nos permite definir datos y métodos que son generales (comunes a distintas clases) por separado de las que son particulares a cada clase. Esto se logra definiendo lo que

Más detalles

15 CORREO WEB CORREO WEB

15 CORREO WEB CORREO WEB CORREO WEB Anteriormente Hemos visto cómo funciona el correo electrónico, y cómo necesitábamos tener un programa cliente (Outlook Express) para gestionar los mensajes de correo electrónico. Sin embargo,

Más detalles

Bases de datos en Excel

Bases de datos en Excel Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Bases de datos en Excel Hojas de cálculo Tema 5 Bases de datos en Excel Hasta ahora hemos usado Excel básicamente para realizar cálculos

Más detalles

Diseño de algoritmos.

Diseño de algoritmos. TEMA 5 Diseño de algoritmos. Elementos de Programación I Contenido del Tema T E M A 5 5.1.- Programación Modular y desarrollo de Programas 5.2.- Diseño de interfaces. 5.3.- Notación algorítmica. Elementos

Más detalles

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8 TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 1.1 VECTORES O ARRAYS UNIDIMENSIONALES 2 1.2 ARRAYS MULTIDIMENSIONALES 3 1.3 INICIALIZACIÓN DE ARRAYS 4 1.3.1 INICIALIZACIÓN DE ARRAYS SIN

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

Programación: QBASIC

Programación: QBASIC 1. QBASIC Programación: QBASIC Guía del alumno Qbasic es una versión moderna del lenguaje BASIC. Se trata de un lenguaje de alto nivel. En un lenguaje de alto nivel las instrucciones tienen un formato

Más detalles

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h>

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h> Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en

Más detalles

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín TEMA 4: EMPEZANDO A ESCUELA UNIVERSITARIA DE INFORMÁTICA NAVEGAR Raúl Martín Martín SERVICIOS DE INTERNET SERVICIOS DE INTERNET Las posibilidades que ofrece Internet se denominan servicios. Hoy en día,

Más detalles

Estructuras Repetitivas: SENTENCIA WHILE EN MATLAB INFORMÁTICA T2 INGENIERÍA INDUSTRIAL JORNADA ESPECIAL

Estructuras Repetitivas: SENTENCIA WHILE EN MATLAB INFORMÁTICA T2 INGENIERÍA INDUSTRIAL JORNADA ESPECIAL Estructuras Repetitivas: SENTENCIA WHILE EN MATLAB INFORMÁTICA T2 INGENIERÍA INDUSTRIAL JORNADA ESPECIAL Significado La sentencia while (mientras que) se usa para que MATLAB repita un bloque de instrucciones

Más detalles

TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras CONTENIDOS

TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras CONTENIDOS ESTRUCTURAS CONTENIDOS 1. Concepto de estructura 2. Definición del tipo de dato estructura 3. Declaración de variables de tipo estructura 4. Inicialización de variables de tipo estructura 5. Acceso a los

Más detalles

7. Manejo de Archivos en C.

7. Manejo de Archivos en C. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de

Más detalles

EDWIN KÄMMERER ORCASITA INGENIERO ELECTRÓNICO

EDWIN KÄMMERER ORCASITA INGENIERO ELECTRÓNICO Identifica los tipos de datos y funciones - Tipos de Datos: Excel soporta 5 tipos de datos, estos son: a) Numéricos: Están formados por cualquiera de los 10 dígitos (del 0 al 9) y pueden estar acompañados

Más detalles

CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS

CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS Nuestra empresa es una pequeña editorial que maneja habitualmente su lista de ventas en una hoja de cálculo y desea poder realizar un análisis de sus

Más detalles

Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A)

Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A) aprenderaprogramar.com Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro

Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro USAR MYSQL EN PHP PHP tiene una librería de funciones nativas para conectarse a las base de datos MySQL. Por un lado reconoce la librería mysql y por otro mysqli. Se recomienda el uso de mysqli dado que

Más detalles

SMS Gestión. manual de uso

SMS Gestión. manual de uso SMS Gestión manual de uso índice qué es SMS Gestión 2 acceso al servicio 3 01 acceso con la clave de servicios de Orange 4 02 acceso personalizado 6 02.1 cómo personalizar su acceso a la aplicación 7 02.2

Más detalles

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS Una subconsulta es una consulta que aparece dentro de otra consulta o subconsultas, en

Más detalles

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

E 1 E 2 E 2 E 3 E 4 E 5 2E 4 Problemas resueltos de Espacios Vectoriales: 1- Para cada uno de los conjuntos de vectores que se dan a continuación estudia si son linealmente independientes, sistema generador o base: a) (2, 1, 1, 1),

Más detalles

Estructuras de datos: Proyecto 2

Estructuras de datos: Proyecto 2 Estructuras de datos: Proyecto 2 28 de mayo de 2013 Instrucciones Enviar las soluciones por email a los ayudantes, con copia a la profesora. Plazo de entrega: 16 de junio (durante todo el día). Se debe

Más detalles

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos. Qué es PHP? PHP (Hypertext Preprocessor). Es un lenguaje de programación: De código

Más detalles

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación. Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden

Más detalles

Comenzando con MATLAB

Comenzando con MATLAB ÁLGEBRA LINEAL INGENIERÍA INFORMÁTICA Curso 08/09 PRÁCTICA 1 Comenzando con MATLAB 1 Funcionamiento de Matlab MATLAB es un sistema interactivo basado en matrices para cálculos científicos y de ingeniería.

Más detalles

col 1 2 1 5 9 ----------------------------------------------- 3 Type mismatch cadena vacía fila 1 z + i 4 1 fila 2

col 1 2 1 5 9 ----------------------------------------------- 3 Type mismatch cadena vacía fila 1 z + i 4 1 fila 2 Nombre y Apellidos: Especialidad y Grupo: FUNDAMENTOS DE INFORMÁTICA 22-enero-2002 CUESTIÓN de Estructuras repetitivas y alternativas (1.5 puntos) 1. Suponiendo que el usuario teclea los datos 1, 2, 3,

Más detalles

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS CONTENIDOS 1. Introducción a las cadenas 2. Definición 3. Declaración de cadenas 4. Inicialización de cadenas 5. Escritura y Lectura de datos tipo cadena 6. Funciones de manipulación de cadenas 7. Arrays

Más detalles

COMANDOS EN LENGUAJE DE PROGRAMACIÓN BASIC

COMANDOS EN LENGUAJE DE PROGRAMACIÓN BASIC COMANDOS EN LENGUAJE DE PROGRAMACIÓN BASIC COMANDO FUNCIÓN EJEMPLO BORRA LA PANTALLA Borra la pantalla ESCRIBE TEXTO O GRÁFICOS EN PRINT HOLA Escribe HOLA en pantalla LA PANTALLA. PRINT PRINT a Escribe

Más detalles

MANUAL DE AYUDA MODULO TALLAS Y COLORES

MANUAL DE AYUDA MODULO TALLAS Y COLORES MANUAL DE AYUDA MODULO TALLAS Y COLORES Fecha última revisión: Enero 2010 Índice TALLAS Y COLORES... 3 1. Introducción... 3 CONFIGURACIÓN PARÁMETROS TC (Tallas y Colores)... 3 2. Módulos Visibles... 3

Más detalles

GENERACIÓN DE TRANSFERENCIAS

GENERACIÓN DE TRANSFERENCIAS GENERACIÓN DE TRANSFERENCIAS 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de transferencias permite generar fácilmente órdenes para que la Caja efectúe transferencias, creando una base

Más detalles

Tema 4: Empezando a trabajar con ficheros.m

Tema 4: Empezando a trabajar con ficheros.m Tema 4: Empezando a trabajar con ficheros.m 1. Introducción Como ya se comentó en el punto 3 del tema1, en Matlab tienen especial importancia los ficheros M de extensión.m. Contienen conjuntos de comandos

Más detalles

1. Manejo de memoria estática 2. Manejo de memoria dinámica

1. Manejo de memoria estática 2. Manejo de memoria dinámica 1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS.

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS. UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS. 5.1.- SECUENCIA En este caso, las instrucciones se ejecutan una después de la otra sin omitir ninguna de ellas. La sintaxis para

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Combinación de funciones y fórmulas =SI(Y(...)...) o =Si(O(...)...) En secciones anteriores vimos que la función SI() debía cumplir una condición, como por ejemplo, controlar si en una celda determinada

Más detalles

Fortran tiene dos tipos diferentes de subprogramas, las funciones y las subrutinas.

Fortran tiene dos tipos diferentes de subprogramas, las funciones y las subrutinas. PROGRAMACION MODULAR: La programación modular es un método de diseño que permite resolver un problema mediante su descomposición en problemas más simples o módulos que se pueden analizar, programar y poner

Más detalles

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO Fecha última revisión: Junio 2011 INDICE DE CONTENIDOS HERRAMIENTA DE APROVISIONAMIENTO... 3 1. QUÉ ES LA HERRAMIENTA DE APROVISIONAMIENTO... 3 HERRAMIENTA

Más detalles

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico.

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico. 1 Primeros pasos en R. Al iniciarse R (ver Figura 16), R espera la entrada de órdenes y presenta un símbolo para indicarlo. El símbolo asignado, como puede observarse al final, es > Figura 16. Pantalla

Más detalles

Curso PHP Módulo 1 R-Luis

Curso PHP Módulo 1 R-Luis Lenguaje PHP Introducción Archivos HTML y PHP: Crear un archivo php es tan sencillo como cambiarle la extensión a un archivo html, por ejemplo podemos pasar de index.html a index.php sin ningún inconveniente.

Más detalles

Manual para la utilización de PrestaShop

Manual para la utilización de PrestaShop Manual para la utilización de PrestaShop En este manual mostraremos de forma sencilla y práctica la utilización del Gestor de su Tienda Online mediante Prestashop 1.6, explicaremos todo lo necesario para

Más detalles

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases. BASES Y DIMENSIÓN Definición: Base. Se llama base de un espacio (o subespacio) vectorial a un sistema generador de dicho espacio o subespacio, que sea a la vez linealmente independiente. β Propiedades

Más detalles

8.1. Introducción... 1. 8.2. Dependencia/independencia estadística... 2. 8.3. Representación gráfica: diagrama de dispersión... 3. 8.4. Regresión...

8.1. Introducción... 1. 8.2. Dependencia/independencia estadística... 2. 8.3. Representación gráfica: diagrama de dispersión... 3. 8.4. Regresión... Tema 8 Análisis de dos variables: dependencia estadística y regresión Contenido 8.1. Introducción............................. 1 8.2. Dependencia/independencia estadística.............. 2 8.3. Representación

Más detalles

Definición de vectores

Definición de vectores Definición de vectores Un vector es todo segmento de recta dirigido en el espacio. Cada vector posee unas características que son: Origen: O también denominado Punto de aplicación. Es el punto exacto sobre

Más detalles

Análisis de los datos

Análisis de los datos Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Análisis de los datos Hojas de cálculo Tema 6 Análisis de los datos Una de las capacidades más interesantes de Excel es la actualización

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles