Você está na página 1de 8

UNIVERSIDADPRIVADAANTENORORREGO INGENIERADECOMPUTACINYSISTEMAS INTRODUCCINALAPROGRAMACIN

WALTERLAZOAGUIRRE ARREGLOSMTODOS

ARREGLOSYMTODOS PASODEPARMETROSAUNMTODO a)Porvalor Cuandosepasaunparmetroporvalor,soloseleenvaalafuncininvocadaunacopia del valor que tiene la variable enviada. De esta forma la funcin invocada no puede modificarelvalordelavariablequesepasacomoparmetro. b)Porreferencia

En este caso se enva a la funcin invocada , la referencia (direccin de memoria) de la variable que se pasa como parmetro. De esta forma, la funcin que es llamada, puede modificarelvalorrealdelavariableenviadacomoparmetro. Esposibleenviarunarreglocomoargumentodeunafuncin. Alpasarunarregloaunafuncin,generalmentetambinsepasasucantidaddedatos,para queelmtodosepacuantosdatosdebeprocesar. Cuandosepasaunarregloaun mtodoofuncin, java lohaceenviandounareferencia, entonces la funcin llamada puede modificar los valores de los elementos originales del arreglo. Esimportantetenerencuentaquelosarreglosnoseretornan. El nombre del arreglo es la direccin (de memoria) del primer elemento. El mtodo o funcininvocadaloquehaceesmodificarelcontenidodelaslocalidadesdememoriaque correspondenalarreglo. Ejemplo1: Escribirunprogramaque:Leennmerosenterosy: a)Reportatodoslosdatosingresados. b)Calculayreportalasumadetodoslosnmeros. c)Encuentraelnmeromayor d)Indicacuantasvecesserepitenmeromayor.

UNIVERSIDADPRIVADAANTENORORREGO INGENIERADECOMPUTACINYSISTEMAS INTRODUCCINALAPROGRAMACIN

WALTERLAZOAGUIRRE ARREGLOSMTODOS

UNIVERSIDADPRIVADAANTENORORREGO INGENIERADECOMPUTACINYSISTEMAS INTRODUCCINALAPROGRAMACIN

WALTERLAZOAGUIRRE ARREGLOSMTODOS

CODIFICACIN importjava.io.* publicclassarreglos_metodos1 { static BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)) /************************************/ publicstaticvoidmain(String[]args) throwsIOException { intn,sum,may,cmay intMAX=100 intnum[]=newint[MAX] n=leenum() ingresar_datos(num,n) mostrar_datos(num,n) sum=sumar_datos(num,n) may=maximo(num,n) cmay=repetidos(num,n,may) System.out.println("\nLasumadelosdatoses="+sum) System.out.println("\nElnumeromayores="+may) System.out.println("\nElNo.mayorserepite"+cmay+"veces\n\n") } /**********************************/ staticintleenum()throwsIOException { intn do{System.out.print("Ingresenumerodedatos:") n=Integer.parseInt(br.readLine()) } while(n<=0||n>100) returnn } /************************************/ staticvoidingresar_datos(intnum[],intn)throwsIOException {inti System.out.println("INGRESODEDATOS") for (i=0i<ni++) {System.out.print("numero["+i+"]:") num[i]=Integer.parseInt(br.readLine()) } return }

/************************************/

UNIVERSIDADPRIVADAANTENORORREGO INGENIERADECOMPUTACINYSISTEMAS INTRODUCCINALAPROGRAMACIN

WALTERLAZOAGUIRRE ARREGLOSMTODOS

staticvoidmostrar_datos(intnum[],intn)throwsIOException {inti System.out.println("REPORTEDETODOSLOSDATOS") for(i=0i<ni++) {System.out.println("numero["+i+"]:"+num[i]) } return } /************************************/ staticintsumar_datos(intnum[],intn)throwsIOException { inti,sum=0 for(i=0i<ni++) {sum=sum+num[i] } returnsum } /************************************/ staticintmaximo(intnum[],intn)throwsIOException { inti,may may=num[0] for(i=0i<ni++) { if(num[i]>may) { may=num[i] } } returnmay } /************************************/ staticintrepetidos(intnum[],intn,intmay)throwsIOException { inti,cont=0 for(i=0i<ni++) { if(num[i]==may) { cont++ } } returncont } } Nota: 1.Observarquelasecuenciadeinstruccionesnecesariaparapoderingresarlosdatospor teclado, se debe escribir al inicio, agregndole la palabra reservada static, para que puedaserutilizadaporlosmtodosquelorequieran: static BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)) 4

UNIVERSIDADPRIVADAANTENORORREGO INGENIERADECOMPUTACINYSISTEMAS INTRODUCCINALAPROGRAMACIN

WALTERLAZOAGUIRRE ARREGLOSMTODOS

Ejemplo2: Escribirunprogramaque,leeunamatrizdenmerosenterospositivos,defil filasycolcolumnasyluego: a.Muestraloselementosdelamatriz. b.Escribesolamenteloselementosdeladiagonal. c.Calculalasumadetodosloselementosdelamatriz DiagramaNS Inicio Variablesmat[20][20],fil,col fil =leenum() col=leenum() ingresar_datos(mat,fil,col) mostrar_datos(mat,fil,col) diagonal(mat,fil,col) sumar_datos(mat,fil,col) Fin leenum() Variables n

Leer n n 0 V n>20 retornar n

UNIVERSIDADPRIVADAANTENORORREGO INGENIERADECOMPUTACINYSISTEMAS INTRODUCCINALAPROGRAMACIN

WALTERLAZOAGUIRRE ARREGLOSMTODOS

CODIFICACIN importjava.io.* publicclassarreglos_metodos2 { staticBufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)) /************************************/ publicstaticvoidmain(String[]args)throwsIOException {intfil,col intmat[][]=newint[20][20] fil =leenum("Filas") col=leenum("Columnas") ingresar_datos(mat,fil,col) mostrar_datos(mat,fil,col) diagonal(mat,fil,col) sumar_datos(mat,fil,col) } /************************************/ staticintleenum(Stringmensaje)throwsIOException {intn do{System.out.print("Ingresenumerode"+mensaje+":") n=Integer.parseInt(br.readLine()) } while(n<=0||n>20) returnn } staticvoidingresar_datos(intmat[][],intfil,intcol)throwsIOException

UNIVERSIDADPRIVADAANTENORORREGO INGENIERADECOMPUTACINYSISTEMAS INTRODUCCINALAPROGRAMACIN

WALTERLAZOAGUIRRE ARREGLOSMTODOS

{ inti,j System.out.println("\nINGRESODEDATOS\n") for(i=0i<fili++) { for(j=0j<colj++) {System.out.print("numero["+i+"]["+j+"]:") mat[i][j]=Integer.parseInt(br.readLine()) } } return } /************************************/ staticvoidmostrar_datos(intmat[][],intfil,intcol)throwsIOException { inti,j System.out.println("\nREPORTEDELAMATRIZ\n") for(i=0i<fili++) {for(j=0j<colj++) {System.out.print(mat[i][j]+"\t") } System.out.println("") } return } /************************************/ staticvoiddiagonal(intmat[][],intfil,intcol)throwsIOException { inti,j if(fil==col) {System.out.println("LOSELEMENTOSDELADIAGONAL\n") for(i=0i<fili++) { for(j=0j<colj++) { if(i==j) {System.out.print(mat[i][j]+"\t") } else{System.out.print("\t") } } System.out.println("") } } else{System.out.println("Noesunamatrizcuadrada") } return } staticvoidsumar_datos(intmat[][],intfil,intcol)throwsIOException 7

UNIVERSIDADPRIVADAANTENORORREGO INGENIERADECOMPUTACINYSISTEMAS INTRODUCCINALAPROGRAMACIN

WALTERLAZOAGUIRRE ARREGLOSMTODOS

{ inti,j,sum=0 System.out.println("SUMADELOSDATOSDELAMATRIZ\n") for(i=0i<fili++) {for(j=0j<colj++) {sum=sum+mat[i][j] } } System.out.println("suma="+sum) } } //llavefindelaclase : Notas 1.Observarqueal mtodoleenum(),se lepuedeenviarcomoparmetrounacadenade caracteres,paraquepuedaimprimirunmensajequenospermitasabereldatoqueseva aingresar.En estecasocuandoseinvocaalmtodoleenum() : LaprimeravezseleenvacomoparmetroactuallacadenaFilas,paraqueseescriba: IngreseNmerodeFilas, La segunda vez se le enva como parmetro actual la cadena Columnas para que se escriba: IngreseNmerodeColumnas. Tambinsedebeconsiderarquesiaunmtodoseleenvacomoparmetroactualuna cadena de caracteres el mtodo debe estar preparado para recibir esta cadena de caracteresensusparmetrosformales,especficamenteenunavariabledetipoString. 2. Observar que la forma de utilizar la secuencia de instrucciones necesaria para poder ingresarlosdatosporteclado,esescribindolasunasolavez.Estosehacefueradetodos los mtodos, en la parte superior, inmediatamente despus de la llave de inicio de la clase,delasiguienteforma: static BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)) Sehacedeestaformaparaquepuedaserreconocidayutilizadaportodoslosmtodos. 3.Otraopcinserahacerestadeclaracin: BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)) encadamtodoenelquesedeseeingresardatosporteclado.

Você também pode gostar