Arreglos (vectores, matrices, ….)

Slides:



Advertisements
Presentaciones similares
Arreglos.
Advertisements

Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
IBD Curso 2007 Clase 2.
Introducción al lenguaje C
IND560 Presentación del producto Memoria, tablas, SmartTrac.
PROGRAMACION ESTRUCTURADA
Abstracción de Datos Arrays.
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
ESTRUCTURA DE DECISION LOGICA
Asignatura: Introducción a la programación
Estructuras de Datos (ARRAYS)
Programación I Teoría III
INFORMÁTICA PROGRAMACIÓN.
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
Variables Prof. Gonzalo Pastor.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
MANEJO DE ARRAYS EN C.
INFORMATICA I Arreglos 1 CLASE 17.
INFORMATICA I Arreglos 2 CLASE 18.
FORTRAN 90 arreglos.
FORTRAN 90 CONCEPTOS BÁSICOS.
FORTRAN 90 Subprogramas.
FORTRAN 77 y Cómputo Científico
Objetos de un programa Datos: Se denomina dato a toda aquella información característica de una entidad y que es susceptible de tratamiento en un programa.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Teoría de lenguajes y compiladores
Arreglos Ing. Nahiby Castillo.
VECTORES.
ARREGLOS Estructuras de datos.
Unidad 3 Punteros.
ESCUELA: NOMBRES: LÓGICA DE LA PROGRAMACIÓN UNIDAD 2: Naturaleza de los Datos FECHA: Ing. Patricio Abad Espinoza OCTUBRE 2009 – FEBRERO Ciencias.
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Vectores en java.
MÓDULO DE PROCEDIMIENTOS Los módulos también pueden contener subrutinas y funciones → MÓDULO DE PROCEDIMIENTOS  PROCEDIMIENTOS → son compilados como parte.
ALGORITMOS Y ESTRUCTURA DE DATOS
Diseño descendente Diseño descendente, top-down, que consiste en dividir el problema en subproblemas más pequeños, que se pueden tratar de forma separada.
TRAMPAS EN EL DISEÑO DE LENGUAJES CON RELACIÓN A LOS NOMBRES - REGLAS DE ALCANCE - COMPILACIÓN POR SEPARADO CONTROL DE FLUJO - EVALUACIÓN DE EXPRESIONES.
READ (*, *) WRITE(*; *) Formato libre Format → se utiliza para especificar la forma en que las variables son impresas o leídas en un programa. WRITE(*,
Fundamentos de Programación
Arrays (introducción)
Diseño de diagramación Diagrama: es una representación gráfica del flujo información de y el proceso de ejecución del programa. Plateo del problema en.
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Programación en Matlab
UNIDAD V Arreglos y Cadenas
Clase 10: Estructuras de datos y arreglos.
Programación en Pascal
El lenguaje de programación C - Vectores y matrices -
1Hacer in programa que lea un número desconocido de datos reales de un disco y detecte el final de los datos en el archivo 2Definir entradas y salidas.
Ciclos (Loops, Repeticiones) Permiten ejecutar una secuencia de sentencias mas de una vez. Hay 2 tipos de loops:  WHILE repite la acción un número indefinido.
Teoría – Alejandro Gonzalez
Unidad II Introducción a la programación en C++
Programación en C para electrónicos
Tipo de dato Arreglo en C Uso del for con arreglos
Definir un vector Forma general Variable=[tipo]*tamaño Tipo: es el valor inicial con el cual quedarán llenas todas las posiciones creadas del vector. Tamaño:
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Inicialización de arreglos de 2 variables INTEGER, DIMENSIÓN (4, 3) : : ini DO i=1, 4 DO j= 1,3 ini(i, j) = j END DO i=1123 i=2123 i=3123 i=4123 j=1j=2j=3.
Vectores y Matrices.
Unidad II Aplicaciones con Arreglos en Java y C++
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose.
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Al finalizar el curso el alumno será capaz de: Diseñar algoritmos utilizando estructuras estáticas de datos y programación modular.
Computación I. CI-2125 Tema VII
Programación de Computadores
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
MC. J. D. Pope S. ITD Unidad II. Introducción a la programación 2.1 Ejemplo de programas 2.2 Identificadores, constantes y variables 2.3 Tipos de datos:
Entrada/Salida : I/O FORTRAN 90/95 MC. Pope ITD. Entrada y Salida (I/O) Fortran proporciona dos tipos de declaraciones para entrada y salida de datos.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
Transcripción de la presentación:

Arreglos (vectores, matrices, ….) Un arreglo es un grupo de variables o constantes, todas del mismo tipo referenciadas con un mismo nombre. …. a(1) a(2) a(3) a(4) a(5) a(6) ….. arreglo Cada valor individual se llama elemento El subíndice indica la posición particular dentro del arreglo. El subíndice es un ENTERO. Es útil para aplicar un algoritmo a un gran número de datos a través de ciclos Ej DO i=1,100 a(i)=sqrt(a(i)) END DO

Declaración de los Arreglos Los arreglos tienen que ser declarados antes de ser utilizados para que el compilador guarde lugar en la memoria según el tipo y número de elementos que contiene. Ej REAL, DIMENSION (100) : : a Cuando se define la variable CHARACTER se tiene que tener en cuenta la longitud de caracteres y elemento:s Ej CHARACTER(10), DIMENSION (12) : : mes Los arreglos pueden ser declarados con más de un subíndice , por lo tanto pueden tener 2 o más dimensiones. El número de dimensiones se llama rango (rank). El número de elementos de cada dimensión se llama extensión (extent). La combinación del rango y la dimensión se llama forma (sharp) . El número de elementos declarados en el arreglo tamaño (size) Arreglos constantes: sus elementos son ctes. Pueden definirse entre / Ej: (/1, 2, 3, 4, 5/)

Arreglos

Inicialización de los arreglos Los elementos de los arreglos son variables ordinarias y tienen que ser inicializadas antes de ser usadas. Si no se la inicializa su valor es indefinido. Pueden ser inicializados: 1. Sentencias de asignación elemento por elemento Ej de esta forma de inicialización: REAL, DIMENSION(10) : : arreglo DO i=1,10 arreglo(i) = REAL(i) END DO arreglo=(/1., 2., 3., 4., 5., 6., 7., 8., 9., 10./) arreglo=0. ! todos los elementos iguales INTEGER, DIMENSION(10) : : num, cuad num(i)=i+i cuad(i)= num(i)**2

2. Inicialización por sentencias de declaración Ej de esta forma de inicialización: INTEGER, DIMENSION (5) : : arreglo = (/1, 2, 3, 4, 5 /) INTEGER, DIMENSION (5) : : arreglo = (/(i, i=1,5)/) INTEGER, DIMENSION (25) : : arreglo = (/((0, i=1,4), 5*j, j=1,5) /) 0, 0, 0, 0, 5, 0, 0, 0, 0, 10, 0, 0, 0, 0, 15, 0, 0, 0, 0, 20, 0, 0, 0, 0, 25 REAL, DIMENSION (100) : : arreglo =1.0 Inicialización de arreglos con READ Valores de borde de los arreglos Normalmente se usan valores de 1 a N Ej: REAL, DIMENSION (3) : : arr ⇒ arr(1), arr(2), arr(3) pero muchas veces resulta útil que los subíndices tomen otros valores. Para definir los: REAL, DIMENSION (imin, imax) : : arr Ej: REAL, DIMENSION (5) aa REAL, DIMENSION (-2 : 2) : : bb REAL, DIMENSION ( 7:11) : : cc Los 3 arreglos tienen la misma forma (igual dimensión e igual número de elementos

! Controlar que el índice se encuentre dentro de los límites del arreglo B(1) B(2) B(3) B(4) …… Arreglo B Arreglo A Si se utiliza el A(6) puede conducir a errores. Los compiladores FORTRAN tienen opción bounds cheking para controlar los valores que toma el índice Las constantes con nombre y la declaración de arreglos Se utiliza para cambiar de manera simple el tamaño de los arreglos. Ej: INTEGER, PARAMETER : : tama=1000 REAL : : arre1(tama) REAL : : arre2(2*tama) REAL : : arre3(tama,tama)

Usando arreglos completos o un subconjunto a b c Buena costumbre: declarar el tamaño de los arreglos usando PARAMETER y realizar cambios rápidamente. Usando arreglos completos o un subconjunto a VALOR a(1) 1. a(2) 2. a(3) 3. a(4) 4. b VALOR b(1) 5. b(2) 6. b(3) 7. b(4) 8. c VALOR c(1) 6. c(2) 8. c(3) 10. c(4) 12. a + b = c PROGRAM suma_arreglos IMPLICIT NONE ! INTEGER : : i

REAL, DIMENSION (4) : : a=(/ 1., 2., 3., 4./) REAL, DIMENSION (4) : : b=(/ 5., 6., 7., 8./) REAL, DIMENSION (4) : : c, d ! ! Elemento por elemento DO i=1,4 c(i)= a(i)+b(i) END DO ! Suma en forma conjunta todos los elementos de los arreglos d= a+b ! Escribo los resultados WRITE(*,*) “c” WRITE(*,*) c(i) WRITE(*,*) “d”, d END PROGRAM suma_arreglos

Impresión c 6.0 8.0 10.0 12.0 d 6.0 8.0 10.0 12.0 ! La operación puede hacerse si y solo si ambos arreglos tienen la misma forma (igual número de dimensiones y el mismo número de elementos en cada dimensión, (igual rango e igual extensión))⇒ conforme Los escalares son conformes con los arreglos: REAL, DIMENSION (4) : : a=(/1., 2., 3., 4./), c REAL : : b=10 c=b*a El arreglo c será 10., 20., 30., 40. También se puede realizar estas operaciones con funciones intrínsecas elementales. Las más comunes: ABS, SIN, COS, EXP y LOG REAL, DIMENSION (4) : : a=(/-1., 2., -3., 4./), c c= ABS(a) El arreglo c será 1., 2., 3., 4.

Subconjunto de un arreglo Para utilizar una sección del arreglo se especifican los índices : inicio:fin:incremento subíndice triple Ej : INTEGER, DIMENSION : : arre(/1, 2, 3, 4, 5, 6, 7, 8, 9, 10/) El subconjunto arre( 1:10: 2) arre(1), arre(3), arre(5), arre(7) y arre(9) 1, 3, 5, 7 y 9 inicio valor del índice inicial del subconjunto fin valor del índice final del subconjunto Incremento incremento a través de los índices del arreglo. Si falta: inicio → 1 fin → fin del arreglo incremento → 1 Ej: INTEGER :: i=3, j=7 REAL, DIMENSION (10) :: a (/1., -2., 3., -4., 5., -6., 7., -8., 9., -10./) a(:) → todos los elementos a( i: j) → del tercer elemento al séptimo ( 3., -4., 5., -6., 7) a(i: j: i) → del tercer elemento al séptimo saltando de a 3 (3., -6.) a(i: j: j) → del tercer elemento al séptimo saltando de a 7 (3.) a(i:) → del tercer elemento al final (3., -4., 5., -6., 7., -8., 9., -10) a(j:) → del séptimo elemento al final (7., -8., 9., -10) a(: : i) → todos los elementos saltando 3 (1., -4., 7., -10.)

Subindice vector especifica uno a uno los elementos del arreglo a ser usados en el cálculo. Ej: INTEGER, DIMENSION (5): : vec =(/1, 6, 4, 1, 9/) REAL, DIMENSION (10) : : a (/1., -2., 3., -4., 5., -6., 7., -8., 9., -10./) a(vec ) → es el arreglo [1., -6., -4., 1., 9.] Entradas y salidas WRITE( *, *) a(1), a(2), a(3), a(4) Con DO implícito WRITE( *, *) (a(i), i=1,4) Imprime los valores de a(1), a(2), a(3) y a(4) En general: WRITE( unidad , format) (var1, var2, …. Indice= icomienzo, ifin. incre) READ ( unidad , format) (var1, var2, …. Indice= icomienzo, ifin. incre) Dentro del write se pueden incluir tareas Ej: WRITE( *, * ) (i, 2*i, 3*i, i= 1,3) Imprime 1 2 3 2 4 6 3 6 9

Ciclos anidados WRITE(*,*) ((i, j, j= 1, 3), i= 1, 3) Primero varia j y luego i 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 Los DO implícitos son muy importantes cuando se trabaja con arreglos que tienen dos o mas dimensiones.