0% encontró este documento útil (0 votos)
13 vistas10 páginas

Arreglos y Matrices

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas10 páginas

Arreglos y Matrices

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 10

Arreglos (M atrices)

Son un tipo especi al de variabl es que pueden almacenar tempo ralmen te uno o varios datos
de un mismo
tipo. Una variab le de arreglo o vector puede conten er al mismo tiempo diferen tes valore
s bajo un mismo
nombr e.

Tambi én podem os decir que un arreglo es una estruct ura de datos o un espaci o de memo
ria que permite
almac enar una colecc ión de elemen tos, dados del mismo tipo.
:::»L.
. .
arreglo com o una sec
Podemos imaginarnos a un .
uenc1a contigua de celdas (espacios en memoria) 0
cas il-
se puede gu ard ar u
las, en cada una de las cuales I
n e emento de la colección .

o 2 3 4 5 6 7 8 9

d
arr eg lo de 10 casillas cada util'izar para guardar un
Esta figura rep res en ta un una e 1as cuales se puede
res , etc.
dato como: edades, no mb
illas f
en sió n o tam añ o de un arr eg lo es el nú me ro de cas que Io con arman. Como podemos observar
La dim
n lO.
. de a un arr eg lo de dimensió
la figura an ter ior co rre sp on
ores como: Una lista de
un es en pro gra ma ció n es trabajar con listas de val
Uno de los tra ba jos más com trabajadores de una empresa.
el su pe rm erc ad o o los números de identidad de los
artículos a co mp rar en
ácter destructivo;
pu ed en ma ne jar listas de valores ya que tienen car
tiv o no
Las variables de tip o pri mi ro y mantiene el nuevo.
ble tie ne un val or y se le asigna otro, pierde el prime
ria
esto implica qu e si un a va
hace refer-
Sy stem.A rra y, es una colección de objetos a la cual se
lo se de riv an de
Las variables de tip o arr eg os en un arreglo
ne do r y del índ ice de ubi cación. Los datos almacenad
de l co nte
encia a tra vés de l no mb re s mediante el índice.
mi na r y ha cer ref ere nci a a cada uno de los elemento
eli
se pu ed en buscar, ord en ar,
Y así suce-
ice O, la seg und a tie ne índice 1, la tercera índice 2
l arr eg lo tie ne índ
En C# la pri me r casilla de casilla tiene
en cue nta qu e un arr egl os de dimensión N, la última
nte tom ar
siv am en te . Es mu y im po rta
índice N-1.

Ilustración de un arreglo
.... Casillas
3---r--:-l4:--r-:;-15~1 ~16~1,,-...
2 . - -,-:--
.--,-1- ~ -,-
2 3 4 5
o 1
Indices

ce
de sus casillas se le recono
. bl e de arreglo a cada una con
crea un a vana ramador especificar la casilla
Co mo he mo s ob se rva
°
d o cua n d se
.
.
, d' e, este val or pe rm ite
a 1 pro g
se le de no mi na in ic
po r un nú me ro al qu e
• u1e• n te for ma to ··
ba jar , us an do e 1 s1g
la qu e des ea tra
.
e] 1
No mb re_ de _a rre glo [ín dic e indica la casilla con a
·able e índice es un val or qu
bre de 1a van
eg lo, es e 1 no m
En do nd e no mb re de arr
cada ins tan te. Eje mp lo:
qu e se desea tra ba jar ~n . . , n ha cie nd o referencia en
nuestra imagen
.
0
bic ad o en la qu int a pos1c1
A[4] -+ hace referencia al elemento u
an ter ior al va lor 15.
atrices
. 5 ¡0 nes de M . es pe cif ica ció n de los ele
o,men de va ria r 1a me nto s de u
. ión en la qu e pu e , na t'l"\ .
. , es una d1recc d de tod os los d1as de l me
una dimens1on atr icu la os s tie ne una d' ªtr1z.
. 1tot al de Alu mn os m
. ue cont1ene e t s po r de pa rta me nto de irnen ·.
Una matriz q I tot al de ve n a tod os los día d s1or1
atriz que co nti en e e s e\ l't'\
(el día del mes). un a m el día de l me s). El nú me
, me ro del de pa rta me nto ro de dimensio ~s
tiene dos dimensiones (el y
nu nes %e
. e denomina Rango.
tiene una matriz s , .
. e un índ ice o un su bm
na ma triz , pro po rc1 on d1 ce pa ra cada una d
Para espec1 c
·t; ar un ele me nto de u . , , . , . , e sus
nti gu os a lo lar go d e c ad a dim en s1 on de l ind ice O al ind ice mas
dimensiones. Los elementos alt
son co o Para
esa dimensión.
. .
. . ue str an nc ep tua l de ma tric es co
Las ilustraciones s1gu1entes la es tru ctu ra co n ran go s diferentes. Cad
m d 'nd ice qu e tie ne n ac
.
elemento de las 1lu st racion
· es mu es tra los va lor es e 1 ce so a él. Po r ejemplo, PUe a
d
fila de la ma triz . . , e
tener acceso al pri me r eleme bid im en sio na l es pe cif ica nd
nto de la segunda o los indices ll,O].

Una Dimensión
.
A las matric es de una so 1a d.1mens1on
·,
s
e les lla ma arr eg los de tip
o lis ta o ve cto res Y alm ac
en an datos de un
mismo tip o organizados en
una sola co lum na y un a o
má s fila s.
La declaración de una ma triz
de una dim en sió n se ha ce
de la sig uie nte ma ne ra:
Tipo[ J nombre;
Donde "tip o" indica el tip o
de los ele me nto s qu e co
nte nd rá la ma tri z y "n om
que nombra a la matriz. Los br e" es un identificador
corchetes mo dif ica n la de
fin ici ón no rm al de l ide
int erp ret ad o po r el co mp ila nti fic ad or para que sea
do r co mo una ma triz .

Las siguientes líneas de cód


igo son eje mp los de de cla
rac ion es de ma tric es :
lnt [ Jedad;

Float[ J sueldo;

String[ J nombre·
I

Muchas matrices tie ne n sól


o una dim .,
declara una variable para qu ens1on co mo el n,
' . te
e co nte ng um er o un a lis ta de ed ad ¡gu1en
de O a SO edades . a un a ma tr"12 . . es . El eje mp 10 5
un idi me ns ion al de re cu
en tos de ed ad , pa ra alrna cenar
Ejemplo:

lnt[J edad= new int[SOJ;


oos Dimensiones
. .
A los arreglos de más de una dimen sión se les llama arre glo s de tipo tabla o simple mente matrices que
. d d .
,
almacenan un conJunto e atos del mismo tipo organizados en dos o mas columnas y uno o más arreglos.

Un arreglo de tipo tabla puede almac enar el númer o de 1


. . , . , a umnos por cada aula de un institut o. La
especificacIon requie re conoc er el numer o de aulas y el núm d
ero e a1umnos en cada aula.
. t e manera:
Para declarar una matriz de dos dimen siones se realiza de la s·ig uIen

Tipo[, J nombre;
el ·d ti"fi d b •
Donde "tipo" indica el tipo de datos que almace nará y "nomb re" es 1 en ca or que nom ra a 1a matriz.
s de dos dimens iones:
Las siguientes líneas de código son ejemp los de declara ciones de matrice

int[,J edado rden;

string[ , J Datosp;
matriz bidime nsiona l que recuen ta el
El ejempl o siguien te declar a una variab le que puede conten er una
aula.
númer o de aulas en el institu to de O a 20 y de O a 40 alumno s por

long [, J Alumn osPorA ula = new long[2 0, 40];


pero por lo genera l no se
Nota: Una matriz puede tener hasta un máxim o de 32 dimens iones,
utilizan más de tres.

Crear una Matriz

constr uirla; crear una matriz signific a


Después de declar ar una matriz , el siguien te paso es crearla o
eleme ntos y asigna r al nombr e de la
reservar _la cantid ad de memo ria necesa ria para conten er todos sus
te maner a:
matriz una referen cia a ese bloque . Para crearla se realiza de la siguien

nombr e= new tipo[ta maño] ;


declar ado Y "tipo" repres enta el tipo de
Donde "nomb re" repres enta el nombr e de la matriz previa mente
positiv a.
datos que almace nará la matriz y tamañ o es una expres ión entera

Ejemplos:

a realiza por cada día del mes


l. Se desea realiza r el seguim iento del númer o de tareas que una person
con 31 eleme ntos, uno por cada día
actual. En este caso podem os utiliza r una matriz unidim ension al
del mes.

long[ J Activid ades;

Activid ades= new long[3 1];


-~\v-
/¡SU ~ t y
- l 'ndice empieza en OY de O a 30 hay
erde que e 1 .. , 31
r
N-1 esto signrficana 31- 1 que sería ig elern ent~..
1
31 porque recu
declara con , to se hace con ,
El arreglo se . 1 , ltirno elernen Llal a 3o •,
f rencIa a u %~
pero la re e . rnás alto.
representaría el índice
14 15 16 17 18 19 20 21 22 23 24 25 26
13
10 11 12 S 16 17 18 19 20 21 22 23 24 25 26 2
2 13 14 1
Indice
o·'ª 5 del Mes
. . to de la misma in · f ·'
. r el segu1m1en ormac1on no sólo Pa
nga que desea realiza ra todo
2. Ahora supo d I año En este caso se puede crear una rnat.
. , ara cada mes e . Slos
, d I rnes sino tarnb1en P , nz de do
d1as e 31 colum nas para los d1as. s
fil para los meses y
dimensiones con 12 as,

g[ 12, 31];
long [ , ] Actividades == new on
1

l 12 l3 14 15 16 17 18 19 20 21 22 23 24 25
6 7 8 9 10 1 26 27 28
o 1 2 3 4 5 2
indice 0,13
-..2~
Coordenadas de cada elemento O 0,0
- ,_t--.
1
2
1,0
- ...
..... ~

3
-t--.
4
5
6
4,0

6,15
-
....
7 -
8
u1in¡:
9
u~n¡:
10
u1in¡:
u1in¡I
11
1 u1in¡I
Para recorrer todos los elementos de la tabla se nece
sita dos ciclos far, uno exte rno para controlar el 1Bin¡I
reng-
lón y uno interno para controlar cada columna. IBIBj\
u1in¡I
u1in¡I

El hecho de utilizar el operador new, esto indica que


C# impl eme nta las matr ices como objetos, porlo
tanto serán tratadas como cualquier otro objeto.
iuoli.
[
Iniciar una Matriz Ion
Ion,

Una matriz es un objeto· por I t


0
. , . ' anto cua nd o se crea, sus elem ento s son auto máti .. 5·1a M
matriz es numenca, sus elementos son . . . cam ente iniciados. 1
. e·ern·
[
plo: los caracteres . .. in1c1ados a O; s1 no es num érica a un valo r análo
son 1n1cIados al valor '\ , go al O; por l Ir
a null. u0OO' un elem ento bool eano a false y las refer . bjetol l
enciasª 0

Si lo que deseamos es iniciar u .


h l
acerlo de la siguiente manera: na matriz con otros I
va ores difer ente s a los predeterminados, PodeJ110
int[] edad = { 10, 20 30 3 6
' , , , 8, 9 }·1
string[] nombre = { "Al .
e1andro" "Al .
' e1andra" "M
, aría',, "Miguel1'};
Ejemplos:
as y mu est re en un list Bo x todos
apl ica ció n que per mit a agr ega r las edades de 10 person
1. Crear una
los dat os de la ma triz .

er la siguiente apariencia:
• pro yec to con el nom bre de "Pr ime rAr reg lo", debe ten
cre ar un


ti9 Forml 1 t19 Prueba de arreglos ~00~
Usta1 Usta2

label1 C7 Edad: LJ
Número de veces que
label2
apresionado el bóton
Agregar

label3
·--
--- -- Mostrar datos 1 Mostrar datos
Agregar_ J1 mediante Far
button1 r- :on2 - button2 - meiante Far
1 1 E.ach
-- -

to
Código Co mp let o del Proyec

.
using System;
tion s.G ene nc;
using System.Collec
l;
using System.ComponentMode
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PrimerArreglo
{
m
public partial class Fo rm l : For
//M triz de 10 ele me nto s
{ lon g[~ O]; . e ª
util izará para representar
long[] edad = new iab le~
long indiceEdad = O; //E sta var
d
//e l índ ice de la ma triz eda
public For ml( )
{
Je lnitializeComponent();
}

. t sen der' EventArgs e)


. (obJec
private void BtnAgregar_Cllck
· (. diceEd ad + 1); a 10 entonces se
{ nve rt.T oSt nng in d . al
LblNClick.T ext = Co Eda es 1gu
Si· ·
in d'
,ce
if (indiceEdad.Equals(lO)) //
{
1
t
/ / Mostrará
MessageB el siguiente
ox.ShoW(" mensaje:
EI ultimo valor no se agrego porque llego al limite");
return; //finaliza la acción y sale del evento chck

}
edad[indiceEdad] = Convert.Tolnt32(TxtEdad.Text); //Agrega el valor d T
indiceEdad += 1; //Aument a en uno la variable indiceEda d. e xtEdad a la m .
TxtEdad.Clear(); //Limpia el TextBoX TxtEdad atr,¡
TxtEdad.Focus(); //Devuelv e el foco a TxtEdad

rvate void BtnForEach_Click(object sender, EventArgs e)

foreach (long ListaEdades in edad)


{
} liS!a l .ltems.Add( lista Edad es .ToStri ng());

{private void BtnFor- cr,e k( obJect


. sender, EventArgs e)

{for (long listaEdades=O·' listªEd ªdes< 10; listaEdades++)


} Lista2.ltems.Add( edad [lista Edades]);

Resultados

Prueba d e ar-r egos


1 □ .

Edad : 111

ad Prueba d . · Número de v
e arreglos a presionadoe~ebs.que
ll- , oton
n,irega,
Edad: 11
12
13
¡,, ·---
Número d 14
a pre . e veces qu
__ --=-=----
.
s1onado I b • e r -·
" e óton
¡;¡;¡regar
15
16 [ ~-~ Most; r d~o -
mediante
-
Fo; , Mostrar datos
17 -
r 10___ _ •- ~ ch ¡ meiar~e For
18
1 - 19 . - . -
J-º 1
. .A9regar Mostra- ; d-- - / El ultim --- -
med· se agrego p arque
ates
1ante For I o val er no
llego al li mit e
Ea ch
2. se necesita una aplicación que alm acene los datos person
• Crear un proyec to con el ales de un alumno.
. . nombr e "DatosP
s1gu1ente aparien cia·· ersonalesMatrices"' la interfaz d eb e tener la

•fil Prueba con Matrices ,


c;;Joo ~ ·
Codigo :

Nombre : _r [
_Nu;o
Guardar
·~
]
1

¡
Edad :

Sexo :
Numero de Registros , - - - - -

UsCodigo UsNombres UsEdad UsSexo

--_ -_ -_ __¡
r - - - - ',- -
Mostrar Nombres Edad ] j Sexo 1

Programación

public partial class Forml : Form


{
string[,] DatosP=new string[2 0,4];
int fila = O;
int conteo = 1;

privar void BtnNue vo_Clic k(objec t sender, EventArgs e)

foreach (Contro l Limpia r in this .Controls)


{ .
//Contr ol Limpia r;
if (Limpiar is TextBox)
{
Limpiar.Text = '"';
}
}
//' Devuelve el foco al TxtCodigo
TxtCodigo.Focus(); //Perm ite saber si se presionó el botón nuevo.
BtnNuevo.Tag = true; //Activa el botón guardar.
BtnGuardar.Enabled = true;
BtnNuevo.Enabled = false;

foreach (Contro l bloque ar in this.Co ntrols)


{
if (bloque ar is TextBox)
{
bloque ar.Ena bled = true;
}
}
}
En las tres primeras lineas de código que · orrn"
' siguen a "public parcial class For ml
variables DatosP que es una variable de mat . Fe
riz con 20 filas Y 4 columnas y que pue ser •'•n
d ero (O) se decl=- c1 d~
cualquier procedimiento o evento del form st
ulario; fila de tipo int, se inicializa con
. c manipulad tr,,
utilizará para llevar el control de cada fila Y tam b"
al momento de recorrer la matriz (Da 'ble
. tosP
iza) con 'e a var¡ sq~
manipulada desde cualquier parte del form e ed~
ulario; conteo es de tipo int y se iniciar__ ero (O).
ien Pu s~r ½ \,
pnv •t void BtnGuardar_Click(object sender, !
EventArgs e)
1

if (fila>= O&& fila<= 19)

{
DatosP[fila, O] = TxtCodigo.Text;
DatosP[fila, 1] = TxtNombre.Text;
DatosP[fila, 2] = TxtEdad.Text;
DatosP[fila, 3] = TxtSexo.Text;
BtnNuevo.Tag = false;
LblConteo.Text = Convert.ToString(conteo);

conteo+= 1;
fila+=l·J

else

) MessageBox.Sho
w{"lmposibl e guardar este registro", "M atnz
. llena");

BtnGuardar.Enabled = false·
BtnNuevo.Enabled = true· ,
{foreach {Control blo quear, .m this.Controls)

if (bloquear is TextBox)
{
} bloquear.Enabled -- fa1se;

príva{te void Forml Lo d(


- a object sender E
BtnG ' ventArgs e)
uardar.Enabled -
foreach (C
{ . ontrol bl - false·,
oquear in th'
is.Controls)
1f (bloqu ear .is TextB
{ ox)

} bloquear.Enabled -- false· J
k(o bje ct sender, EventArgs e)
-;ri vate void BtnCodigo Clic
{
+)
for (int fil = O; fil <= fila - 1; fil+
[fil, O]);
LisC odi go. ltem s.A dd( Dat osP
}

lick (ob jec t sender, EventArgs e)


prívate void Btn MN om bre s_C
{
+)
for (int fil = O; fil <= fila - 1; fil+
[fil, 1]);
Lis Nom bre s.lt em s.A dd( Dat osP
}

jec t sender, EventArgs e)


prívate void Btn Eda d_C lick (ob
{
+)
for (int fil= O; fil< = fila - 1; fil+
2]);
LisEdad .lte ms .Ad d(D ato sP[ fil,

jec t sen der , EventArgs e)


prívate voi d Btn Sex o_C lick (ob
{
fil+ +)
for (int fil= O; fil< = fila - 1;
3]);
LisS exo .lte ms .Ad d(D ato sP[ fil,
}

Resultados

Pnieba con Matnces


Prueba con Matrt 1f
Código [1 _ _
-
Nombre · 1Uz ~~ Valeria~

Nombre 25_
Edad· ¡'- _ _ Guardar

Edad Sexo · IC J Numero de rog,stros: r-


Numero de registws
Sexo

_J
Edad Sexo
-- --- -- _l Mostrar nombres
- - Sexo
Código
s Edad
_ CódJgo_ _, __ _ Mostrar nombre
- □
Prueba con Matrices
~
Código · 6 r Nuevo

Nombre · 0oir~11a Ló;:,ez ! 1a:d~nado

Edad: f>
Numero de registros : f 7
Sexo F
25 F
40 M
Uz .AJexand@ Valeriana
15 M
Marco Antonro López
20 M
Miguel Angel Beltran M
Arturo Roberto Suazo 30
Conradlflo Suazo Velásquez 24 F
Neysys .Aleyda Hemandez B~ F
Oomitila l.ópez Maldonado

Edad
Código

También podría gustarte