Clase 6 COMPUTACION 2009 C lase 8 Tipos de Datos PASCAL Estructurados Simples Primitivos No primitivos Integer Real Char Boolean String Archivos Registros.

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

2.1.1 Definición. Un arreglo puede definirse como un grupo o una colección finita, homogénea y ordenada de elementos. Los arreglos pueden ser de los siguientes.
Programación de Computadores
Sesión 13 Tipos de datos Estruturados Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Programación de Computadores
2 Estructuras lineales.. Qué es una estructura? La estructura es una manera de conectar los valores y de manera automática conectarlos de manera que tengan.
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Estructuras de Datos (ARRAYS)
Programación I Teoría III
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.
MANEJO DE ARRAYS EN C.
FORTRAN 90 arreglos.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Estructuras de datos M.I.A Daniel Alejandro García López.
C lase 10 COMPUTACION /17/2014Computacion - Fac. Ingeniería2  Ademas de los ya vistos (tipos simples), puede usarse como parámetros variables.
Vectores en java.

Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Clase 12 COMPUTACION 2009 Tipos de Datos PASCAL Estructurados Simples Primitivos No primitivos Estáticos Integer Real Char Boolean String Archivos Registros.
Departamento de Informática Universidad Técnica Federico Santa María Capítulo 2 “Subprogramas/Funciones - Arreglos” Arreglos-Arrays.
Arrays (introducción)
Informática empresarial
Matrices Es una estructura homogénea, compuesta por varios elementos, todos del mismo tipo y almacenados consecutivamente en memoria A cada elemento se.
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
ARREGLOS BIDIMENSIONALES
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I.
ESTRUCTURA DE DATOS EN JAVA
COMPUTACION 2009 Clase 6 Clase 7.
Clase 10: Estructuras de datos y arreglos.
Agosto 2010Programación I - Tipo de Datos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Universidad Nacional de Luján Licenciatura en Sistemas.
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Programación en Pascal
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.
Aplicación de estructuras de datos
Programación I Arreglos II- Matrices.
75.40 Algoritmos y Programación I
Matrices Conceptos generales
Fundamentos de Programación
Vectores y Matrices.
Departamento de Informática Universidad Técnica Federico Santa María Programación de Computadores (IWI-131) Luis Pizarro Q.
Programación I Arreglos. Los elementos de un arreglo son todos del mismo tipo de dato (todos integer o real o char o registros o aún arreglos)
Programación en C para electrónicos
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:
Tema 8: Tipos de Datos Estructurados I
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Vectores y Matrices.
COMPUTACION 2009 Clase 6 Clase 6.
Departamento de Informática Universidad Técnica Federico Santa María Temas 2,3,4: Estructura de un Programa Pascal Declaraciones Tipos de Datos Simples.
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.
Matrices Prof. Flor Narciso Departamento de Computación
Vectores y Matrices.
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.
Estructura de datos I CIS - UABJB.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Arreglos: Vectores Departamento de Computación
Computación I. CI-2125 Tema VII
Programación de Computadores
Arreglos: Vectores Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
ARREGLOS BIDIMENSIONALES MATRICES Son un espacio de almacenamiento continuo, que contiene una serie de elementos del mismo tipo de datos. Desde el punto.
Matrices.
MATRICES.
Algorítmica y Programación
ESTRUCTURAS DE DATOS “Conceptualización de estructuras de datos” Por: Eduardo Robayo.
Después de completar esta lección, debe ser capaz de:  Crear registro definidos por el usuario.  Crear un registro con el atributo %ROWTYPE.  Crear.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 5.
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:

Clase 6 COMPUTACION 2009 C lase 8

Tipos de Datos PASCAL Estructurados Simples Primitivos No primitivos Integer Real Char Boolean String Archivos Registros Arreglos Vectores Matrices N-dimensionales

6/27/2015Fac. Ingeniería3 ´Tabla’ ‘Retiro’‘Lujan’‘Lanus’‘Const.’ ’10.00 hs’‘disponible’‘no disponible’‘disponible’ ’15.30 hs’‘no disponible’‘disponible’‘no disponible’‘disponible’ Tabla de disponiblidad de colectivos a distintas ciudades según horario

6/27/2015Fac. Ingeniería4 TRUEFALSE TRUE FALSETRUE FALSE TRUEFALSE Tabla de valores lógicos

6/27/2015Fac. Ingeniería Tabla de valores numéricos

6/27/2015Fac. Ingeniería6 Arreglos bidimensionales Las tablas de los tres ejemplos anteriores pueden ser almacenadas en una estructura de datos denominada arreglos bidimensionales o matrices Recordar que todas las componentes tienen el mismo tipo

6/27/2015Fac. Ingeniería7 Propiedades 1.Estos arreglos poseen dos dimensiones y se los llama arreglos bidimensionales o matrices. 2.Cada componente de un arreglo bidimensional se denota explícitamente, y es accedida directamente, mencionando su nombre seguido de dos subíndices encerrados entre corchetes..

6/27/2015Fac. Ingeniería8 Propiedades 3. Cada una de las dimensiones tienen límites inferior y superior. Estos límites determinan la extensión de los valores que son usados como subíndices para la dimensión. Los límites de cada dimensión se definen en una especificación de arreglo.

6/27/2015Fac. Ingeniería9 Propiedades 4. El tamaño de un arreglo (esto es, el número de componentes) se indica cuando se define el arreglo y queda invariable a partir de ese momento. El cálculo del número de componentes se logra multiplicando entre si la cantidad de elementos que el arreglo posee en cada una de las dos dimensiones. 5. Todas las componentes poseen el mismo tipo de dato.

6/27/2015Fac. Ingeniería10 Ejemplo Si deseamos manipular la siguiente matriz algebraica veamos diferentes formas de almacenamiento:

Puede almacenarse en un arreglo lineal donde cada elemento es otro vector. En este caso cada vector es una columna.

Puede almacenarse en un arreglo lineal donde cada elemento es otro vector. En este caso cada vector es una fila.

En los dos casos anteriores usamos vectores y vimos que cada componentes es otro vector. Si se desea referenciar cada elemento simple de la matriz debemos indicar su posición usando dos subíndices (mediante la fila y columna donde se halla, en forma similar a las matrices algebraicas). Matriz A Fila 1 Fila 2 Fila 3 Fila 4 Columna 1 Columna 2 Columna 3 A 23 A 42

6/27/2015Fac. Ingeniería14 Arreglos bidimensionales componentes Estructura donde almacenamos los datos simples, indicando su posición con fila/columna Los componentes se asignan a cada lugar de memoria a ij

6/27/2015Fac. Ingeniería15  La matriz se estructura como un vector de vectores TYPE MATRIZ = array[1..4] of array[1..3] of real; arreglo lineal arreglo lineal de vectores de reales Declaración de tipo de una matriz: ejemplo Extensión de la primera dimensión: cantidad de filas Extensión de la segunda dimensión: cantidad de columnas

6/27/2015Fac. Ingeniería16 En la declaración de tipo de un arreglo bidimensional se pone de manifiesto la existencia de los dos subíndices mediante dos subrangos indicando los límites de la extensión de cada una de las dimensiones. TYPE MATRIZ = array[1..4,1..3] of real; Identificador de tipo Tipo indice Tipo base Declaración de tipo de una matriz: ejemplo  Resulta conveniente usar esta notación, mas compacta. Extensión de la primera ddimension Extensión de la segunda dimensión

6/27/2015Fac. Ingeniería17 TYPE MAT = array[1..7,1..5] of real; VAR A,B:MAT; BEGIN …………. Declaración de variables con estructura de matriz: ejemplo Cuando se declara variables de un tipo estructurado, se le indica al sistema que reserve espacio en memoria, para cada una de ellas. Para A se reserva 35 posiciones reales. Lo mismo para B.

6/27/2015Fac. Ingeniería18 TYPE MATRIX = array[-8..8,0..3] of integer; VAR W:MATRIX; BEGIN …………. Declaración de variables con estructura de matriz: ejemplo Cuando se declara variables de un tipo estructurado, se le indica al sistema que reserve espacio en memoria, para cada una de ellas. Para W se reserva 68 posiciones enteras.

6/27/2015Fac. Ingeniería19  Para acceder (o extraer) los elementos de esta estructura lo hacemos a través del nombre del vector seguido por los subíndices entre corchetes.  En nuestro ejemplo, los accedemos así: A[1,1], A[1,2], , A[4,3] Y usamos a cada componente como variables de tipo real: X:= A[1,1]+A[4,1] * 3.4; A[2,3]:= SIN(A[3,3]); Arreglos bidimensionales: acceso

6/27/2015Fac. Ingeniería20 Arreglos unidimensionales: acceso  Los subíndices son computables, i.e., pueden ser expresiones (de un tipo escalar u ordinal) mas complejas que una constante o variable. X:= A[I+1,3*J]-A[2,J-2]; S:=0; FOR I:=1 TO 3 DO S:=S+A[I,I]; {calculo de la traza}

6/27/2015Fac. Ingeniería21 Arreglos unidimensionales: almacenamiento  A través de la lectura de una matriz (o secciones) podemos almacenar valores en las componentes: FOR J:= 1 TO 3 DO READLN(A[1,J]); {lectura de la primera fila}

6/27/2015Fac. Ingeniería22 Arreglos unidimensionales: almacenamiento  Igualmente mediante la asignación directa : A[4,1]:= 18; FOR I:=1 TO 3 DO A[I,I]:=0.10; {todas las componentes de la diagonal principal toman el valor 0.10}

6/27/2015Fac. Ingeniería23 Manipulación de subíndices de una matriz: ejemplos  Ejemplo 1: manipulación de filas; cada fila puede ser vista como un vector con componentes del tipo base. 1) Una fila fija. Por ejemplo la fila 3:el indice de la fila permanece fijo y el indice de la columna varía. FOR col:=1 to 3 DO A[3,col]:=1;{su manipulacion es similar a un vector.Toda la fila 3 toma 1}

6/27/2015Fac. Ingeniería24 Manipulación de subíndices de una matriz: ejemplos 2) Una fila cualquiera. Similar a 1) pero elegimos la fila mediante una variable fila:=cualq; FOR col:=1 to 3 DO A[fila,col]:=1;{es similar a un vector cuando fila toma un valor }

6/27/2015Fac. Ingeniería25 Manipulación de subíndices de una matriz: ejemplos  Ejemplo 2: manipulación de columnas; cada columna puede ser vista como un vector con componentes del tipo base. 1) Una columna fija. Por ejemplo la 2:el indice de la columna permanece fijo y el indice de la fila varía. FOR fila:=1 to 3 DO A[fila,2]:=1;{su manipulacion es similar a un vector.Toda la col. 2 toma 1}

6/27/2015Fac. Ingeniería26 Manipulación de subíndices de una matriz: ejemplos 2) Una columna cualquiera. Similar a 1) pero elegimos la columna mediante una variable col:=cualq; FOR fila:=1 to 3 DO A[fila,col]:=1;{su manipulacion es similar a un vector}

6/27/2015Fac. Ingeniería27 Manipulación de subíndices de una matriz: ejemplos  Ejemplo 3: manipulación de diagonal principal; puede ser vista como un vector con componentes del tipo base y con índice coincidentes. FOR i:=1 DO 3 DO A[i,i]:=A[i,i]/2; {es un vector!}

6/27/2015Fac. Ingeniería28 Subíndices de una matriz  Los límites de la extensión de cada dimensión pueden tomar cualquier valor de tipo escalar. Por ejemplo: TYPE meses=(enero,febrero,marzo,abril,mayo,junio,julio,agosto,setiembre,octubre,noviembre,diciembre); items=(seguro,cable,telefono,edea); gastos=array[meses,items] of real; VAR a:gastos; BEGIN a[abril,seguro]:=120.08;

6/27/2015Fac. Ingeniería29 Cantidad de componentes a partir de los limites de las extensiones Cantidad de filas: cota superior - cota inferior + 1 Cantidad de columnas: cota superior - cota inferior + 1 1) MAT = array[1..7,1..5] of real; Cantidad de filas:7-1+ 1=7 Cantidad de columnas: =5 Cantidad de componentes: 7*5=35 2) CUALQ = array[-3..1,-5..0] of integer; Cantidad de filas:1-(-3)+1= 5 Cantidad de columnas: 0-(-5)+1=6 Cantidad de componentes: 5*6=30

6/27/2015Fac. Ingeniería30 Cantidad de componentes a partir de los limites de las extensiones Cantidad de filas: cota superior - cota inferior + 1 Cantidad de columnas: cota superior - cota inferior + 1 3) gastos=array[meses,items] of real; Cantidad de filas:11-0+1=12 (Recordar que enero tiene ordinalidad 0) Cantidad de columnas: 3-0+1=4 Cantidad de componentes: 12*4=36 4)MATRIX = array[-8..8,0..3 ] of integer, Cantidad de filas:8-(-8)+1= 17 Cantidad de columnas: 3-(0)+1=4 Cantidad de componentes: 17 * 4= 68

6/27/2015Fac. Ingeniería31 Arreglos n-dimensionales  Se puede especificar n subíndices. En este caso se dice que el arreglo es n- dimensional, y cada componente se denota mediante n índices.  Por ejemplo Z[i,j,k] menciona un elemento de un arreglo tri-dimensional (pueden pensarse como grupos de matrices). Array[0..4] Array[0..3;0..4] Array[0..2,0..3,0..4] n=1 n=2 n=3

6/27/2015Fac. Ingeniería32 Arreglos unidimensionales: almacenamiento memoria

6/27/2015Fac. Ingeniería33 Lectura de una matriz por filas  Un arreglo bi-dimensional es una estructura lógica y teniendo en cuenta que la memoria almacena los datos como hileras de caracteres (una dimensión), se necesita decidir cómo guardar un estructura lógica de más de una dimensión.  Veremos el caso de una matriz almacenada por filas.

Program lect_mat; Type Matriz=array[1..10,1..10] of real; Var M,N,i,j:integer; A:matriz; Begin WRITE('Ingrese cantidad de filas <=10'); READLN(M); WRITE('Ingrese cantidad de columnas <=10'); READLN(N); FOR i:=1 TO M DO {fila i-esima} FOR j:=1 TO N DO {Col. J-esima} Begin WRITE('A(',i,',',j,')='); READLN(a[i,j]) End; End.

6/27/2015Fac. Ingeniería35 Programa para calcular y escribir el elemento máximo de una matriz (1) program matmax; type mat=array[1..10,1..10] of real; var a:mat; maximo:real; i,j,n,m:integer; begin {Codigo del ingreso de la matriz}

6/27/2015Fac. Ingeniería36 Programa para calcular y escribir el elemento máximo de una matriz (2) {Calculo del maximo} maximo:=a[1,1]; FOR i:=1 TO m DO FOR j:=1 TO n DO IF a[i,j]>maximo THEN maximo:=a[i,j]; {Fin del calculo} WRITELN('El valor del maximo',maximo:3:2); end.

6/27/2015Fac. Ingeniería37 Programa para Intercambiar las filas k y l en la matriz A. Program intercam; Type Matriz=array[1..10,1..10] of real; Var M,N,i,j,k,l:integer; A:matriz; Aux:real; Begin {Ingreso de matriz A de M filas y N columnas} WRITE('Ingrese valor de k y l '); READLN(k,l);

6/27/2015Fac. Ingeniería38 Programa para intercambiar las filas k y l en la matriz A. IF (k>=1) and (k =1) and (l<=M) THEN FOR i:=1 TO N DO {son N cols} Begin Aux:=a[k,i]; a[k,i]:=a[l,i]; a[l,i]:=aux End ELSE WRITE('Ingreso datos incorrectos') End.

6/27/2015Fac. Ingeniería39 Ejercicio  1) Dada una matriz y un vector, calcular su producto  2) Hacer el producto de dos matrices