Professional Documents
Culture Documents
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
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'
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
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