lectura 1 - arreglos matrices y cadenas de texto

8
Adrian Nicolás Malaver Barrera 11. Arreglos, matrices y cadenas de texto Los arreglos y las matrices, como veremos, permiten la representación de conjuntos de datos del mismo tipo. Estos conjuntos de datos facilitan operaciones como sumatorias o promedios de datos usando ciclos y otras estructuras del lenguaje. 11.1 ¿Qué son los arreglos? En algunos casos es requerido el análisis de conjuntos de datos para hacer operaciones como promedios o cálculos estadísticos. Como se ha visto hasta ahora, estos conjuntos de datos podrían representarse con un conjunto de igual tamaño de variables. Por ejemplo, si se quisiera almacenar las notas de 10 estudiantes, sería necesario pensar en definir diez variables, una para cada estudiante, de la siguiente manera: n1, n2, n3, n4, n5, n6, n7, n8, n9, n10 : Real Por otro lado, una operación como un promedio se vería como sigue: Promedio (n1+n2+n3+n4+n5+n6+n7+n8+n9+n10) / 10 Esto funciona. Sin embargo, surgen dos preguntas: ¿Qué pasaría si se quisiera calcular el promedio de 11 datos? Debemos entonces agregar una nueva variable, y además modificar la forma en la que se calcula el promedio. ¿Qué pasaría si ahora fueran mil notas y no diez? Definir tantas variables de forma independiente no sería eficiente, y hacer cualquier operación con los datos, sería muy tedioso. Como respuesta a estas y otras situaciones, se crearon los arreglos. Un arreglo es entonces un conjunto de datos lineal que almacena datos del mismo tipo. Esto quiere decir que los datos se almacenan uno detrás de otro, como en una lista, y en cada posición será posible almacenar elementos solamente del tipo definido. 11.2 Definición y uso de arreglos Un arreglo se define de la misma forma en la que se define una variable; solo es necesario POLITÉCNICO GRANCOLOMBIANO EN ALIANZA CON WHITNEY INTERNATIONAL UNIVERSITY SYSTEM

Upload: david-avila

Post on 24-Jan-2016

216 views

Category:

Documents


0 download

DESCRIPTION

java

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).