You are on page 1of 8

11.

Arreglos,matricesycadenasdetexto

Losarreglosylasmatrices,comoveremos,permitenlarepresentacindeconjuntosde
datosdelmismotipo.Estosconjuntosdedatosfacilitanoperacionescomosumatoriaso
promediosdedatosusandociclosyotrasestructurasdellenguaje.

11.1

Qusonlosarreglos?

Enalgunoscasosesrequeridoelanlisisdeconjuntosdedatosparahaceroperaciones
comopromediosoclculosestadsticos.Comosehavistohastaahora,estosconjuntosde
datospodranrepresentarseconunconjuntodeigualtamaodevariables.Porejemplo,si
sequisieraalmacenarlasnotasde10estudiantes,seranecesariopensarendefinirdiez
variables,unaparacadaestudiante,delasiguientemanera:
n1, n2, n3, n4, n5, n6, n7, n8, n9, n10 : Real

Porotrolado,unaoperacincomounpromedioseveracomosigue:
Promedio (n1+n2+n3+n4+n5+n6+n7+n8+n9+n10) / 10

Estofunciona.Sinembargo,surgendospreguntas:

Qupasarasisequisieracalcularelpromediode11datos?Debemosentonces
agregarunanuevavariable,yademsmodificarlaformaenlaquesecalculael
promedio.
Qupasarasiahorafueranmilnotasynodiez?Definirtantasvariablesdeforma
independientenoseraeficiente,yhacercualquieroperacinconlosdatos,seramuy
tedioso.

Comorespuestaaestasyotrassituaciones,secrearonlosarreglos.
Unarregloesentoncesunconjuntodedatoslinealquealmacenadatosdelmismotipo.
Estoquieredecirquelosdatossealmacenanunodetrsdeotro,comoenunalista,yen
cadaposicinserposiblealmacenarelementossolamentedeltipodefinido.

11.2

Definicinyusodearreglos

Unarreglosedefinedelamismaformaenlaquesedefineunavariable;soloesnecesario
POLITCNICO GRANCOLOMBIANO EN ALIANZA CON WHITNEY INTERNATIONAL UNIVERSITY SYSTEM

AdrianNicolsMalaverBarrera

definireltamaoquedichoconjuntodedatostendr.Porejemplo,sisequieredefinirun

arregloparaalmacenarlasnotasdelos10estudiantes,podemoshacerlodelasiguiente
forma:notas[10] : Real
Tabla1.Ejemplosderepresentacindeinformacinenarreglos.

Quinformacinquieroalmacenar?
Lasedadesde25personas
Lascoordenadasdeunpuntoenelespacio
Diezvaloresenterosdeunasucesin
10resultadosdeunaencuestaconrespuesta(s,no)
Lasprimerasletrasdelosdasdelasemana

Cmorepresentarla?
edades[25] : Entero
coordenadas[3] : Real
sucesion[10] : Real;
resultados[10] : Booleano
das[7] : Carcter

Paraaccederalasposicionesdeunarregloloquesedebehacereslosiguiente:
Usodeposicionesdeunarregloenexpresionesocomoparmetrosdemtodos
Enestecasoesnecesariodefiniraquposicinsehacereferencia.Sedefinequelas
posicionesdeunarreglovande0aN1,dondeNeseltamaodefinidoparaelarreglo.
Porejemplo,enelarreglo"semana[] : int"esposibleusarlas7posiciones:
0,1,2,3,4,5y6.Siseusanposicionesnegativasoposicionesqueestnmsalldelvalor
mximo,habrunerroralimplementarelcdigodelalgoritmo.Veamosalgunos
ejemplos:
Tabla2.Ejemplosdeusodearreglos.

Dado:

Sisequiereleerunaposicinespecfica

notas[10] : Real
resultados[5] : Real
decisiones[8] : Booleano

x 18.654 + notas[0] + notas[2]


MostrarInformacion(resultados[3], 10)
si(decisiones[4] = F) entonces

Paraescribirenposicionesespecficasdeunarreglo
Paraescribirenunaposicindeterminada,usamosasignaciones,delamismaformaenla
quesehacaparavariables,soloquesedefinelaposicindelarregloquesequiere
asignar:"notas[2] 4.4"asignaunvalorde4.4altercerestudiantedelalista.
Veamosotrosejemplos:
Tabla3.Ejemplosdemodificacindevaloresdearreglos.

AdrianNicolsMalaverBarrera

Dado:

Sisequiereescribirunaposicinespecfica

valores[100] : Entero
resultados[50] : Real
decisiones[8] : Booleano

valores[45] 134
resultados[30] 4.56
Decisiones[0] (x < 47) Y (x > 10)

11.3

Matricesyarreglosmultidimensionales

Esposibledefinirarreglosquerepresentenconjuntoslinealesdedatosperoahora,enms
deunadimensin.Qusignificaradecirunarreglodearreglos?Seraalgocomoun
arreglo,donde,encadaposicinsealmacenaraundatoquecorrespondeaunarreglo
Veamos:

Enestecasosedefineunamatrizdetresfilasydos
columnas,queesequivalenteadecirquesedefini
unarreglodetresposiciones,dondecadaposicin
esunarreglodedosposiciones

Estosepodradefinircomo:matriz[3][2] : Real
Laformadeleeryescribirlosdatosenunamatrizeslamisma,soloquehayquedefinir
unaposicinencadadimensin:
Tabla4.Ejemplosdeusodematrices.

Dado:

Sisequiereescribirunaposicinespecfica

tabla[10][5] : Entero
matriz[3][2] : Real
notas[3][10] : Real

tabla[9][1] 546
matriz[2][1] -8.34
notas[2][1] 3.45

Parareferirnosaunaceldaespecficaenunamatriz,usamosposicioneshorizontalesy
verticales.Lascolumnassonverticales,comolascolumnasdeunedificio;lasfilasson
horizontales.Porejemplo,veamoslamatrizA:

0
1
2
3
4
5

Fila0,Columna4
0

Fila2,Columna2
1

Fila1,Columna0
2

Fila3,Columna5
3

Fila3,Columna0

AdrianNicolsMalaverBarrera

Alhacerreferenciaaunaceldaespecfica,escribimosprimerolafila,yluegolacolumna.
Porejemplo,parahacerreferenciaalasposicionesdelamatrizA:

Fila0,Columna4 A[0][4]

Fila2,Columna2 A[2][2]

Fila1,Columna0 A[1][0]

Fila3,Columna5 A[3][4]

Fila3,Columna0 A[3][0]

Siserequierealmacenardatosenmsdimensiones,puedehacerse;tododependedeluso
queselequieradaralaestructuradefinida.Porejemplo,siserequiereguardarunalista
de10matricesde5x4querepresentanposibilidadesdesistemasdeecuacionesque
constituyenunproblema,laestructurapodraser:"matrices[10][5][4] : Real".
Laclaveesnoperderdevistaelusoqueseledaalndicedecadadimensin.
Unndiceesunvalornumricoenteroquerepresentaunaposicinenunadelas
dimensionesdeunarreglo.Estendicepuedevariarentre0yN1,siendoNeltamao
definidoparaladimensinasociadaalndice.
Unejemplodetalladosobreelusodeciclospararecorrerarreglosymatrices
dinmicamentesepresentaenlaslecturasdelasemanaprxima;sinembargo,dentrodel
temaquesepresentaacontinuacin,semuestralaaplicacinconcretadeestos
elementos.

11.4

Cadenasdetexto

Lascadenasdetextosonuntipodedatomuytil,nosoloparapresentarinformacinal
usuariosinotambinporqueatravsdesuanlisisymanipulacinesposiblecomprender
laestructuradelenguajesescritos,clasificarycodificarinformacin,comprenderel
sentidoquetieneunconjuntodecaracteresenundocumento,entreotrasmuchas
aplicaciones.Enprogramacin,representamoslascadenascomoarreglosdecaracteres
detexto,donde,encadaposicinsealmacenauncarcter.Unacadenasepuede
representarcomopalabra: Cadena o palabra: Cadena[16] (Enelprimer
casosedefineunacadenavacaquepodrserinicializadaposteriormenteconunacadena
especfica;enelsegundocaso,sedefineunacadenade16caracteres,loscualespodrn
sermodificadosdespus).Tambincontaremosconlaposibilidaddedefinirunvalorpara
variablesdeestetipo,usandoasignaciones:
AdrianNicolsMalaverBarrera

Cadena1 3456
cadena2 Hoy es jueves
cadena3[1] 5

Enestecasosecolocaelsmbolo5enlasegundaposicinde
lacadena.Notequelacadenadebetenerporlomenosdos
posiciones,porhabersidodefinidaconuntamaoconstante
mayoroigualadosoporhabersidoinicializadapreviamente
conunapalabradelongitudmayoroigualados.

Usamoscomillasdoblesparadefinircadenasdecaracteresycomillassencillaspara
definircaracteresindependientes.
Paraleeroparaescribirunvalorenunaposicinespecficadeunarreglo,usamosla
mismanotacindefinidaparalosarreglos:

Cadena1[1] '7'

Si cadena2[2] = 'y' entonces

Enestecaso,sivariablecadenafue
inicializadaconlacadena"3456",despus
delaasignacinseconvertiren"3756"
(Recordemosquelasposicionesdelos
arregloscomienzanen1).
Enestecasoseconstruyeunacondicin
queinvolucraqueunaposicindela
cadenatengaunvalorespecfico.

Definiremosotrasoperacionesbsicasentrecadenasquefacilitansuanlisisy
manipulacin.

11.4.1 Longitud
Esposibleconocerlalongituddeunacadenadetextodelasiguienteforma:sipor
ejemplopalabra esunavariabledeltipoCadena,longitud(palabra)permite
conocerunvalorenterocorrespondientealnmerodecaracteresquecontienedicha
variable.Porejemplo:
palabra "castillo de naipes"

n longitud(palabra)

AdrianNicolsMalaverBarrera

Enestecaso,lavariableenteranalmacenarunvalor
numricocorrespondientealtotaldecaracteresde
textocontenidosenlavariablepalabra,eneste
caso18.Secuentan,porsupuesto,losespacios

presenteseneltexto.
Entonces,elresultadodeevaluarlalongituddeunacadenadetexto,serunvalorentero
mayoroigualacero.
11.4.2 Concatenacin:
Laconcatenacindecadenasdecaracterespermiteunirlainformacindedoscadenasen
una,atravsdelusodeloperador'+'.Porejemplo,dadaslascadenasdetexto:
nombre1 "Csar"
nombre2 "Julio"
apellido1 "Hernndez"
apellido2 "Martnez"
Esposibleformarcadenasdecaracterescomosumadealgunasdeellas:
cadena nombre1 + " " apellido1 "Csar Hernndez"
cadena nombre2 + " " nombre1 + "Julio Csar Martnez"
" " + apellido2
Notelanecesidaddelusodelacadena""alconcatenarlainformacindelasanteriores
variablesparapresentaradecuadamentelainformacin.

Veamosunejemplosencillodeldiseodeunalgoritmoqueanalizaunacadenadetexto:
Serequierecontarelnmerodecaractereso,seguidosdecaracteresnenunacadena
detexto.Enestecaso,eldesarrollodelalgoritmosebasaenrecorrertodaslasposiciones
posiblesdelacadenadetexto,paraanalizarsicumplenconelcriteriodefinido.Si
cumplenconestecriterio,sellevarlacuenta.Hayquetenerpresenteque,comose
tienenencuentaencadamomentodosposicionesdelacadena,lalongitudmnima
requeridaes2,yelnmerodeiteracionesarealizarserN1,dondeNeslalongituddela
cadena.Veamoslaimplementacindelquerecibelacadenayentregaelnmerode
posicionesquecumplenelcriterio:
Algoritmo
Conteo
Entradas

palabra : Cadena

Pre:

{longitud(palabra) >= 2}

Inicio

conteo 0
N longitud(palabra)

AdrianNicolsMalaverBarrera

para i 0 hasta N-2 hacer


si palabra[i] = 'o' Y palabra[i+1] = 'n' entonces
conteo conteo + 1
fin_si
fin_para
retorne conteo

Fin
Salidas

conteo : Entero

Pos:{conteo >= 0}
EnestecasoseusauncicloquesemueveporN-1posicionesdeunarreglo(aquesuna
cadenadetexto)paraverificarunacondicinconcreta.Estamismaestrategiapuedeser
usadapararesolvertodotipodeproblemasquesebasanenlainformacindeconjuntos
dedatosdelmismotipo.

Enresumen
Losarreglospermitenrepresentarconjuntoslinealesdedatosdelmismotipo.Adems,
esposiblerepresentarestructurasdemsdeunadimensincomomatricesoestructuras
dedimensionesytamaosarbitrarios.Paraaccederoasignarvaloresalasposicionesde
losarreglos,esnecesariodefinirvaloresparalosndicesdacadadimensin.Estose
puedehacerusandovaloresconstantes,parareferirseaunaposicinespecfica,o
usandovariablesenteras,paraafectarunsubconjuntodelarreglousandociclos.
Lascadenasdecaracteressepresentancomounnuevotipodedatosorientadoalanlisis
ytransformacindevariablesquealmacenantexto.Estascadenassecomportancomo
arreglosdecaracteresdetexto,queademscuentanconlaformadeconocersulongitud
ydeserconcatenadasconotrasvariablesdelmismotipo.

Paratenerencuenta:

Esimportanteconoceryrespetarloslmitesdefinidosporlostamaosdelosarreglos,
paraevitarerroresdedesbordamiento.

Lasposicionesvlidasdelosarreglosvande0hastaN1,dondeNeseltamao
definidoinicialmenteparaelarreglo.

Ladefinicindecadenasdetextosehaceatravsdelusodecomillasdobles("Este
es un texto")yladefinicindecaracteresindependientessehaceconcomillas
sencillas('a').

Unadelasaplicacionesmscomunesdelusodeciclosyarreglos,eselordenamiento

AdrianNicolsMalaverBarrera

deconjuntosdedatos.Alrespecto,serecomiendaallectorlarevisindelos
algoritmosdeordenamientodeburbuja,seleccineinsercin.Estosalgoritmosson
ineficientes,peronosayudanaentenderlosprocesosdediseodealgoritmoscon
ciclosyarreglos.Estassonalgunasreferenciasinteresantesalrespecto:
(http://es.wikipedia.org/wiki/Ordenamiento_de_burbuja,
http://es.wikipedia.org/wiki/Ordenamiento_por_seleccin,
http://es.wikipedia.org/wiki/Ordenamiento_por_insercin).

AdrianNicolsMalaverBarrera

You might also like