Sunteți pe pagina 1din 15

ESTRUCTURAS DE DATOS

Lenguaje de Programación

ARREGLOS

Conjunto finito y ordenado de elementos homogéneos

Homogéneo Todos los elementos son del mismo tipo

Ordenado Se puede identificar cualquier elemento del arreglo

Nombre Todos los elementos tienen el mismo nombre

Variables simples Arreglo (vector)

Test1 5.3 nota(1) 5.3

Test2 4.7 nota(2) 4.7


.
.

Lab1 2.1 nota(i) 2.1


.
.
Lab12 6.0 nota(n) 6.0

1/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Operación de lectura

Memoria

Notas
(1) 5.3
Notas(1)=input(‘……’);
Notas(2)=input(‘……’);
(2) 4.7
.
. for i=1:n
Notas(i)=input(‘……’);
(i) 2.1 end
.
.
(n) 6.0

2/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Operación de escritura

Memoria Pantalla
Lab 1 = 5.3
Notas Lab 2 = 4.7

(1) 5.3 fprintf(1,’\n Lab 1 = %3.1f’,Notas(1));


fprintf(1,’\n Lab 2 = %3.1f’,Notas(2));
(2) 4.7
.
.

(i) 2.1
.
.
(n) 6.0

Pantalla
Lab 1 = 5.3
Lab 2 = 4.7
.
for i=1:n .
fprintf(1,’\n Lab %2.0f = %3.1f’,i,Notas(i)); Lab i = 2.1
.
end .
Lab n = 6.0

3/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Operación de asignación

Memoria

(1) 5.3
Pantalla
(2) 4.7 Promedio = 4.9
P=0;
. for k=1:n
. P=P+Notas(k);
end
(i) 2.1
P=P/n;
. fprintf(1,’\n Promedio = %3.1f’,P);
.
(n) 6.0

4/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Ejemplo

clear all
clc Memoria Pantalla
% Ingrese N° de notas: _
n=input(‘Ingrese N° de notas: ’); Notas Ingrese Nota 1: _
Ingrese Nota 2: _
for i=1:n (1) .
5.3
fprintf(1,’\n Ingrese Nota %0.0f: ’,i); .
.
Notas(i)=input(‘’); (2) 4.7 Ingrese Nota n: _
end
% (3) 5.7
P=0;
for k=1:n Pantalla
(4) 2.1
P=P+Notas(k); Promedio = 5.6
end
(5) 4.1
P=P/n;
%
(6) 6.0
clc
fprintf(1,’\n Promedio = %3.1f’,P);
close all

5/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Ejemplo

PROBLEMA

Utilizando diagrama de flujo, diseñe un algoritmo


que ordene de manera creciente las componentes
de un arreglo unidimensional A.
Utilizar el mismo arreglo para almacenar las componentes ordenadas.

Traducir el algoritmo generado a un programa en


Lenguaje Matlab.

6/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Ejemplo

PROBLEMA

Utilizando diagrama de flujo, desarrollar un algoritmo que


permita ingresar un número entero positivo,
correspondiente a una cantidad de dinero
y calcule e imprima el desglose de moneda.
Monedas disponibles: 20000, 10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1.

Traducir el algoritmo generado a un programa en


Lenguaje Matlab.

7/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES

Arreglo (matriz): Temp

(08:00) (10:00) . . . (16:00) .. ... .. (20:00)


(1,1) (1,2) (1,5) (1,7)
Rancagua
21 20 21 18
(2,1) (2,2) (2,5) (2,7)
Talca
23 23 20 15
.
.

(k,1) (k,2) (k,5) (k,7)


Concepción
17 19 20 20
.
.
(n,1) (n,2) (n,5) (n,7)
Temuco
15 18 23 18

8/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES

clear all for i=1:Nciud


clc Prom(i)=0;
% for j=1:Nvm
Nvm=7; Prom(i)=Prom(i)+Temp(i,j);
Nciud=5; end
% Prom(i)=Prom(i)/Nvm;
H(1)=8; end
for i=2:Nvm %
H(i)=H(i-1)+2; clc
end fprintf(1,’\n Ciudad ...
% Temp. Promedio’);
Ciudad(1,1:10)=‘Concepcion‘; for i=1:Nciud
Ciudad(2,1:10)=‘Penco ‘; fprintf(1,’\n %10s ...
Ciudad(3,1:10)=‘Lirquen ‘; %4.1f’,Ciudad(i,1:10),Prom(i));
Ciudad(4,1:10)=‘Tome ‘; end
Ciudad(5,1:10)=‘Dichato ‘; close all
%
for i=1:Nciud
for j=1:Nvm
Pantalla
Temp(i,j)=input(‘…’);
Ciudad Temp.Promedio
end Concepcion 20.2
end Penco 19.8
Lirquen 18.5
Tome 17.7
Dichato 19.3

9/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES: Ejemplo

PROBLEMA

Desarrollar un algoritmo, utilizando diagrama de flujo,


que permita sumar dos matrices conocidas
A y B de orden nxm.

10/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES: Ejemplo

PROBLEMA

Se dispone en memoria de una matriz A de


orden nxm.

Se requiere desarrollar un algoritmo que:

- Determine el promedio de cada fila


y los almacene en el vector F.

- Determine el promedio de cada columna


y los almacene en el vector C.

11/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Ejemplo

PROBLEMA

Diseñar un programa que lea desde consola un cierta


Cantidad de datos numéricos, hasta que se ingrese el
Valor 9999 el cual no debe ser procesado.

Se requiere determinar el valor máximo de los promedios


Correspondientes a parejas de valores sucesivos.

12/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS UNIDIMENSIONALES: Ejemplo

PROBLEMA

En un ensayo de tracción de probetas de acero,


se debe registrar la fuerza aplicada a la probeta
(variable independiente) y el alargamiento que
sufre ésta (variable dependiente).
Durante el ensayo el alargamiento se incrementa
gradualmente hasta que la probeta se rompe.

Diseñar un programa que permita leer los valores


de alargamiento y fuerza y calcule e imprima el
intervalo en el que la pendiente de la curva,
fuerza- alargamiento, es máxima.

13/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES: Ejemplo

PROBLEMA

Diseñar un programa en Matlab que permita ingresar


una matriz de orden nxm y que realice las siguientes
operaciones, según lo requiera el usuario:

Ingresar la matriz
Imprimir la matriz en pantalla
Desplazar todas las columnas una posición hacia la derecha
Desplazar todas las filas una posición hacia abajo
Desplazar todas columnas hacia la derecha y todas las filas hacia abajo

El desplazamiento es circular, es decir, a la derecha


de la última columna corresponde la primera columna
y debajo de la última fila corresponde la primera fila.

14/15
ESTRUCTURAS DE DATOS
Lenguaje de Programación

ARREGLOS BIDIMENSIONALES: Ejemplo

PROBLEMA

Diseñar un programa en Matlab que genere un cuadrado mágico de


orden n impar y lo muestre en pantalla.

Un cuadrado mágico se compone de los números enteros comprendidos


entre 1 y n2, tal que la suma de los términos que figuran en cada fila,
columna y diagonal son iguales.

Un método de generación consiste en situar el número 1 en el centro


de la primera fila, el número siguiente en la casilla situada por encima
y a la derecha y así sucesivamente. El cuadrado es circular, es decir,
la fila encima de la primera es la última y la columna a la derecha de
la última es la primera. En el caso que el número generado deba
situarse en un lugar ya ocupado, se debe posicionar debajo del
último número generado.

15/15

S-ar putea să vă placă și