Ejemplo % Script Productos Cruzados

July 13, 2017 | Autor: Lina Bechara | Categoría: Lenguajes De Programacion
Share Embed


Descripción

Tema 6. Estructuras de datos 6.1 Introducción 6.2 Vector 6.3 Cadena 6.4 Matriz 6.5 Registro 6.6 Aplicaciones 1

6.1 Introducción Colección de datos que se caracterizan por su organización y las operaciones definidas sobre ella. Datos simples

entero, real, carácter, booleano

Datos estructurados

vector, cadena, matriz, registro, conjunto, lista, árbol, grafo, ...

elementos

Un solo identificador permite representar múltiples datos individuales, que también són accessibles independientemente. 2

1

6.2 Vector (array) Colección finita y ordenada de elementos homogéneos Cada elemento puede ser identificado por su posición (índice) en el vector

del mismo tipo

Ejemplo: vector v de 7 elementos enteros 23 9 -5 0 117 -1 -80 v(1) v(2) v(3) v(4) v(5) v(6) v(7) Sólo el vector completo tiene nombre. Se accede a los elementos por medio del índice (posición) de cada uno.

3

Sintaxis Definición: v = [23,9,-5,0, 117,-1,-80];

Acceso a los elementos:nombre(índice) v(1) = v(2) - 30; v(i) = v(i+3) / 1.2;

● En MATLAB se puede operar con el vector completo ● En muchos otros lenguajes, NO. 4

2

Ejemplo % % % %

Script Cuadrados Calcula los cuadrados de los 20 primeros naturales y los guarda en un vector

for i = 1:20 q(i) = i * i; end

5

Ejemplo de función function s = suma(v) % suma(v) % Calcula la suma de los elementos de % un vector de enteros v n = length(v); s = 0; for i = 1:n s = s + v(i); end

6

3

6.3 Cadena (string) Secuencia finita de caracteres

Vector de caracteres

cad = ‘valor inicial’; 13 caracteres

valor inicial 7

Ejemplo function d = invertir (c) % invertir(c) % Invierte la cadena c. n = length(c); pos = n; for i=1:n d(i) = c(pos); pos = pos – 1; end

8

4

Versión alternativa function d = invertir (c) % invertir(c) % Invierte la cadena c. n = length(c); for i=1:n d(i) = c(n-i+1); end

9

6.4 Matriz (matrix) Vector

1 dimensión

1 índice

Matriz

2 dimensiones

2 índices

n dimensiones

n índices

Ejemplo: matriz m de 3x4 elementos enteros 1 2 3

1 34 8 41

2 -56 12 0

m(1,3)

3 45 74 -7

4 1 -3 90

m(3,4)

10

5

Sintaxis Definición:

m = [34,-56,45,1; 8,12,74,-3; 41,0,-7,90];

Acceso a los elementos:

nombre(ind1,ind2)

m(1,3) = m(2,1) - 30; m(i,j) = m(i+3,j-1) / 1.2; 11

Ejemplo

% Script Productos Cruzados % Calcula en una matriz los productos cruzados % [1,15] x [1,10]

for i = 1:15 for j = 1:10 M(i,j) = i * j; end end

12

6

Ejemplo de función function s = suma(M) % suma(m) % Calcula la suma de los elementos % de una matriz de enteros m [f,c] = size(M); s = 0; for i = 1:f for j = 1:c s = s + M(i,j); end end

13

6.5 Registro • Colección de elementos del mismo o diferente tipo • Los elementos se denominan campos del registro • Cada campo tiene un nombre para referenciarlo Ejemplo: registro alumno con los campos siguientes nombre edad nif direccion nota 14

7

Sintaxis Definición: » al = struct('nombre','Josep Pérez Pérez', 'edad', 21,'nif','12345678X', 'direccion', 'Calle Mayor, 1','nota',7.5) al = nombre: edad: nif: direccion: nota:

'Josep Pérez Pérez' 21 '12345678X' 'Carrer Major, 1' 7.5

» 15

Acceso a los elementos nombre.campo Ejemplo:

al.edad = 21; disp(al.nif);

● NO se puede operar con el registro completo ● Sí puede ser el parametro de una función 16

8

Aplicación: autómata celular 2D function n = vida(m) % % % % %

Juego de la Vida Autómata de Conway: en un mundo 2D una célula nace si tiene 3 vecinos (de 8), sobrevive si tiene 2 o 3, o muere en caso contrario.

[f,c] = size(m); ...

17

function n = vida(m) [f,c] = size(m); for i=1:f for j=1:c switch vecinos(m,i,j) case 2 n(i,j) = m(i,j); case 3 n(i,j) = 1; otherwise n(i,j) = 0; end end end 18

9

function v = vecinos(m, i, j) [f,c] = size(m); v = 0; fsup = mayor(1, i-1); finf = menor(f, i+1); cizq = mayor(1, j-1); cdrc = menor(c, j+1); for x = fsup:finf for y = cizq:cdrc if m(x,y) == 1 v = v + 1; end end end if m(i,j) == 1 v = v - 1; end 19

Bibliografia

• L. Joyanes. Fundamentos de Programaciónn: Algoritmos y Estructuras de Datos. McGraw-Hill, 1992. Capítulos 6 y 7. • G. Clavel, J. Biondi. Introducciónn a la Programaciónn 2. Masson, 1985. Capítulos 3 y 4. • J. García de Jalón y otros. Aprenda Matlab 5.3 como si estuviera en primero. Madrid, Febrero 2001.

20

10

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.