Transcript
Page 1: Lectura 1 - Arreglos Matrices y Cadenas de Texto

AdrianNicolásMalaverBarrera

11. Arreglos,matricesycadenasdetexto

Losarreglosylasmatrices,comoveremos,permitenlarepresentacióndeconjuntosdedatosdelmismotipo.Estosconjuntosdedatosfacilitanoperacionescomosumatoriasopromediosdedatosusandociclosyotrasestructurasdellenguaje.

11.1 ¿Quésonlosarreglos?

Enalgunoscasosesrequeridoelanálisisdeconjuntosdedatosparahaceroperacionescomopromediosocálculosestadísticos.Comosehavistohastaahora,estosconjuntosdedatospodríanrepresentarseconunconjuntodeigualtamañodevariables.Porejemplo,sisequisieraalmacenarlasnotasde10estudiantes,seríanecesariopensarendefinirdiezvariables,unaparacadaestudiante,delasiguientemanera:

n1, n2, n3, n4, n5, n6, n7, n8, n9, n10 : Real

Porotrolado,unaoperacióncomounpromedioseveríacomosigue:

Promedio ← (n1+n2+n3+n4+n5+n6+n7+n8+n9+n10) / 10

Estofunciona.Sinembargo,surgendospreguntas:

• ¿Quépasaríasisequisieracalcularelpromediode11datos?Debemosentoncesagregarunanuevavariable,yademásmodificarlaformaenlaquesecalculaelpromedio.

• ¿Quépasaríasiahorafueranmilnotasynodiez?Definirtantasvariablesdeformaindependientenoseríaeficiente,yhacercualquieroperaciónconlosdatos,seríamuytedioso.

Comorespuestaaestasyotrassituaciones,secrearonlosarreglos.

Unarregloesentoncesunconjuntodedatoslinealquealmacenadatosdelmismotipo.Estoquieredecirquelosdatossealmacenanunodetrásdeotro,comoenunalista,yencadaposiciónseráposiblealmacenarelementossolamentedeltipodefinido.

11.2 Definiciónyusodearreglos

Unarreglosedefinedelamismaformaenlaquesedefineunavariable;soloesnecesario

POLITÉCNICO GRANCOLOMBIANO EN ALIANZA CON WHITNEY INTERNATIONAL UNIVERSITY SYSTEM

Page 2: Lectura 1 - Arreglos Matrices y Cadenas de Texto

AdrianNicolásMalaverBarrera

definireltamañoquedichoconjuntodedatostendrá.Porejemplo,sisequieredefinirun

arregloparaalmacenarlasnotasdelos10estudiantes,podemoshacerlodelasiguienteforma:notas[10] : Real

Tabla1.Ejemplosderepresentacióndeinformaciónenarreglos.

¿Quéinformaciónquieroalmacenar? ¿Cómorepresentarla?Lasedadesde25personas edades[25] : Entero

Lascoordenadasdeunpuntoenelespacio coordenadas[3] : Real

Diezvaloresenterosdeunasucesión sucesion[10] : Real;

10resultadosdeunaencuestaconrespuesta(sí,no) resultados[10] : Booleano

Lasprimerasletrasdelosdíasdelasemana días[7] : Carácter

Paraaccederalasposicionesdeunarregloloquesedebehacereslosiguiente:

Usodeposicionesdeunarregloenexpresionesocomoparámetrosdemétodos

Enestecasoesnecesariodefiniraquéposiciónsehacereferencia.Sedefinequelasposicionesdeunarreglovande0aN‐1,dondeNeseltamañodefinidoparaelarreglo.Porejemplo,enelarreglo"semana[] : int"esposibleusarlas7posiciones:

0,1,2,3,4,5y6.Siseusanposicionesnegativasoposicionesqueesténmásalládelvalormáximo,habráunerroralimplementarelcódigodelalgoritmo.Veamosalgunosejemplos:

Tabla2.Ejemplosdeusodearreglos.

Dado: Sisequiereleerunaposiciónespecífica…notas[10] : Real x ← 18.654 + notas[0] + notas[2] resultados[5] : Real MostrarInformacion(resultados[3], 10) decisiones[8] : Booleano si(decisiones[4] = F) entonces…

Paraescribirenposicionesespecíficasdeunarreglo

Paraescribirenunaposicióndeterminada,usamosasignaciones,delamismaformaenlaquesehacíaparavariables,soloquesedefinelaposicióndelarregloquesequiereasignar:"notas[2] ← 4.4"asignaunvalorde4.4altercerestudiantedelalista.Veamosotrosejemplos:

Tabla3.Ejemplosdemodificacióndevaloresdearreglos.

Page 3: Lectura 1 - Arreglos Matrices y Cadenas de Texto

AdrianNicolásMalaverBarrera

Dado: Sisequiereescribirunaposiciónespecífica…valores[100] : Entero valores[45] ← 134 resultados[50] : Real resultados[30] ← 4.56 decisiones[8] : Booleano Decisiones[0] ← (x < 47) Y (x > 10)

11.3 Matricesyarreglosmultidimensionales

Esposibledefinirarreglosquerepresentenconjuntoslinealesdedatosperoahora,enmásdeunadimensión.¿Quésignificaríadecir“unarreglodearreglos”?Seríaalgocomounarreglo,donde,encadaposiciónsealmacenaríaundatoquecorrespondeaunarreglo…

Veamos:

=

Enestecasosedefineunamatrizdetresfilasydoscolumnas,queesequivalenteadecirquesedefinióunarreglodetresposiciones,dondecadaposiciónesunarreglodedosposiciones…

Estosepodríadefinircomo:matriz[3][2] : Real

Laformadeleeryescribirlosdatosenunamatrizeslamisma,soloquehayquedefinirunaposiciónencadadimensión:

Tabla4.Ejemplosdeusodematrices.

Dado: Sisequiereescribirunaposiciónespecífica…tabla[10][5] : Entero tabla[9][1] ← 546 matriz[3][2] : Real matriz[2][1] ← -8.34 notas[3][10] : Real notas[2][1] ← 3.45

Parareferirnosaunaceldaespecíficaenunamatriz,usamosposicioneshorizontalesyverticales.Lascolumnassonverticales,comolascolumnasdeunedificio;lasfilassonhorizontales.Porejemplo,veamoslamatrizA:

0 1 2 3 4 50 1 2 3

Fila0,Columna4 Fila2,Columna2 Fila1,Columna0 Fila3,Columna5 Fila3,Columna0

Page 4: Lectura 1 - Arreglos Matrices y Cadenas de Texto

AdrianNicolásMalaverBarrera

Alhacerreferenciaaunaceldaespecífica,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]

Siserequierealmacenardatosenmásdimensiones,puedehacerse;tododependedelusoqueselequieradaralaestructuradefinida.Porejemplo,siserequiereguardarunalistade10matricesde5x4querepresentanposibilidadesdesistemasdeecuacionesqueconstituyenunproblema,laestructurapodríaser:"matrices[10][5][4] : Real".Laclaveesnoperderdevistaelusoqueseledaalíndicedecadadimensión.

Uníndiceesunvalornuméricoenteroquerepresentaunaposiciónenunadelasdimensionesdeunarreglo.Esteíndicepuedevariarentre0yN‐1,siendoNeltamañodefinidoparaladimensiónasociadaalíndice.

Unejemplodetalladosobreelusodeciclospararecorrerarreglosymatricesdinámicamentesepresentaenlaslecturasdelasemanapróxima;sinembargo,dentrodeltemaquesepresentaacontinuación,semuestralaaplicaciónconcretadeestoselementos.

11.4 Cadenasdetexto

Lascadenasdetextosonuntipodedatomuyútil,nosoloparapresentarinformaciónalusuariosinotambiénporqueatravésdesuanálisisymanipulaciónesposiblecomprenderlaestructuradelenguajesescritos,clasificarycodificarinformación,comprenderelsentidoquetieneunconjuntodecaracteresenundocumento,entreotrasmuchasaplicaciones.Enprogramación,representamoslascadenascomoarreglosdecaracteresdetexto,donde,encadaposiciónsealmacenauncarácter.Unacadenasepuederepresentarcomopalabra: Cadena o palabra: Cadena[16] (Enelprimer

casosedefineunacadenavacíaquepodráserinicializadaposteriormenteconunacadenaespecífica;enelsegundocaso,sedefineunacadenade16caracteres,loscualespodránsermodificadosdespués).Tambiéncontaremosconlaposibilidaddedefinirunvalorparavariablesdeestetipo,usandoasignaciones:

Page 5: Lectura 1 - Arreglos Matrices y Cadenas de Texto

AdrianNicolásMalaverBarrera

Cadena1 ← “3456”

cadena2 ← “Hoy es jueves”

cadena3[1] ← ‘5’ Enestecasosecolocaelsímbolo‘5’enlasegundaposicióndelacadena.Notequelacadenadebetenerporlomenosdosposiciones,porhabersidodefinidaconuntamañoconstantemayoroigualadosoporhabersidoinicializadapreviamenteconunapalabradelongitudmayoroigualados.

Usamoscomillasdobles“”paradefinircadenasdecaracteresycomillassencillas‘’paradefinircaracteresindependientes.

Paraleeroparaescribirunvalorenunaposiciónespecíficadeunarreglo,usamoslamismanotacióndefinidaparalosarreglos:

Cadena1[1] ← '7'

Enestecaso,sivariablecadenafueinicializadaconlacadena"3456",despuésdelaasignaciónseconvertiráen"3756"(Recordemosquelasposicionesdelosarregloscomienzanen1).

Si cadena2[2] = 'y' entonces…Enestecasoseconstruyeunacondiciónqueinvolucraqueunaposicióndelacadenatengaunvalorespecífico.

Definiremosotrasoperacionesbásicasentrecadenasquefacilitansuanálisisymanipulación.

11.4.1 Longitud

Esposibleconocerlalongituddeunacadenadetextodelasiguienteforma:siporejemplopalabra esunavariabledeltipoCadena,longitud(palabra)permite

conocerunvalorenterocorrespondientealnúmerodecaracteresquecontienedichavariable.Porejemplo:

palabra ← "castillo de naipes"

n ← longitud(palabra)

Enestecaso,lavariableenteranalmacenaráunvalornuméricocorrespondientealtotaldecaracteresdetextocontenidosenlavariablepalabra,enestecaso18.Secuentan,porsupuesto,losespacios

Page 6: Lectura 1 - Arreglos Matrices y Cadenas de Texto

AdrianNicolásMalaverBarrera

presenteseneltexto.

Entonces,elresultadodeevaluarlalongituddeunacadenadetexto,seráunvalorenteromayoroigualacero.

11.4.2 Concatenación:

Laconcatenacióndecadenasdecaracterespermiteunirlainformacióndedoscadenasenuna,atravésdelusodeloperador'+'.Porejemplo,dadaslascadenasdetexto:

nombre1 ← "César" nombre2 ← "Julio" apellido1 ← "Hernández" apellido2 ← "Martínez" Esposibleformarcadenasdecaracterescomosumadealgunasdeellas:

cadena ← nombre1 + " " apellido1 "César Hernández" cadena ← nombre2 + " " nombre1 + " " + apellido2

"Julio César Martínez"

Notelanecesidaddelusodelacadena""alconcatenarlainformacióndelasanterioresvariablesparapresentaradecuadamentelainformación.

Veamosunejemplosencillodeldiseñodeunalgoritmoqueanalizaunacadenadetexto:“Serequierecontarelnúmerodecaracteres‘o’,seguidosdecaracteres‘n’enunacadenadetexto”.Enestecaso,eldesarrollodelalgoritmosebasaenrecorrertodaslasposicionesposiblesdelacadenadetexto,paraanalizarsicumplenconelcriteriodefinido.Sicumplenconestecriterio,sellevarálacuenta.Hayquetenerpresenteque,comosetienenencuentaencadamomentodosposicionesdelacadena,lalongitudmínimarequeridaes2,yelnúmerodeiteracionesarealizarseráN‐1,dondeNeslalongituddelacadena.Veamoslaimplementacióndelquerecibelacadenayentregaelnúmerodeposicionesquecumplenelcriterio:

AlgoritmoConteoEntradaspalabra : Cadena Pre:{longitud(palabra) >= 2}Inicio conteo ← 0 N ← longitud(palabra)

Page 7: Lectura 1 - Arreglos Matrices y Cadenas de Texto

AdrianNicolásMalaverBarrera

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 FinSalidasconteo : EnteroPos:{conteo >= 0}

EnestecasoseusauncicloquesemueveporN-1posicionesdeunarreglo(aquíesunacadenadetexto)paraverificarunacondiciónconcreta.Estamismaestrategiapuedeserusadapararesolvertodotipodeproblemasquesebasanenlainformacióndeconjuntosdedatosdelmismotipo.

EnresumenLosarreglospermitenrepresentarconjuntoslinealesdedatosdelmismotipo.Además,esposiblerepresentarestructurasdemásdeunadimensióncomomatricesoestructurasdedimensionesytamañosarbitrarios.Paraaccederoasignarvaloresalasposicionesdelosarreglos,esnecesariodefinirvaloresparalosíndicesdacadadimensión.Estosepuedehacerusandovaloresconstantes,parareferirseaunaposiciónespecífica,ousandovariablesenteras,paraafectarunsubconjuntodelarreglousandociclos.Lascadenasdecaracteressepresentancomounnuevotipodedatosorientadoalanálisisytransformacióndevariablesquealmacenantexto.Estascadenassecomportancomoarreglosdecaracteresdetexto,queademáscuentanconlaformadeconocersulongitudydeserconcatenadasconotrasvariablesdelmismotipo.

Paratenerencuenta:• Esimportanteconoceryrespetarloslímitesdefinidosporlostamañosdelosarreglos,

paraevitarerroresdedesbordamiento.

• Lasposicionesválidasdelosarreglosvande0hastaN‐1,dondeNeseltamañodefinidoinicialmenteparaelarreglo.

• Ladefinicióndecadenasdetextosehaceatravésdelusodecomillasdobles("Este

es un texto")yladefinicióndecaracteresindependientessehaceconcomillassencillas('a').

• Unadelasaplicacionesmáscomunesdelusodeciclosyarreglos,eselordenamiento

Page 8: Lectura 1 - Arreglos Matrices y Cadenas de Texto

AdrianNicolásMalaverBarrera

deconjuntosdedatos.Alrespecto,serecomiendaallectorlarevisióndelosalgoritmosdeordenamientodeburbuja,seleccióneinserción.Estosalgoritmossonineficientes,peronosayudanaentenderlosprocesosdediseñodealgoritmosconciclosyarreglos.Estassonalgunasreferenciasinteresantesalrespecto:(http://es.wikipedia.org/wiki/Ordenamiento_de_burbuja,http://es.wikipedia.org/wiki/Ordenamiento_por_selección,http://es.wikipedia.org/wiki/Ordenamiento_por_inserción).


Top Related