EJERCICIOS
EJERCICIOS RESUELTOSRESUELTOS 1.
1. LeerLeer unauna matrizmatriz dede nn XX mm elementoselementos yy calcularcalcular lala sumasuma dede cadacada unauna dede sussus filasfilas yy columnas,columnas, dejando
dejando dichosdichos resultadosresultados enen dosdos vectores,vectores, unouno dede lala sumasuma dede filasfilas yy otrootro dede columnas.columnas. p
packackagage e ejej ercierci cici osposprr opopuuestos;estos; ii mmppoort rt jj aavava.. uutt ii ll .. SScacannnneerr ;; p
puubbll ii c c clcl ass ass EEjj ercierci cici oosPsPrr ooppuueestst os os {{ p
puubbll ii c s t a t ic s t a t i c vc vooii d d ll eeeer Mr Maatt r ir i z ( iz ( i nnt t AA[[ ]] [[ ]] , , SSc ac annnneer r ll eeeer )r ) {{ ff oor(r( ii nnt t ii ==00; ; ii <<AA.. ll eennggtt hh; ; ii ++++)) {{
ff oor(r( ii nnt t jj ==00; ; jj <<AA[[ 00]] .. ll eennggtt hh; ; jj ++++)) {{ S
Systemystem.. oouutt .. ff oorr mmat(at( "I"I nnggrr ese ese elel ememenentt o [%o [%dd]] [[ %%dd]] : : ", ", ii , , jj )) ;; A A[ i[ i ] [] [ jj ] =] =ll eeeer .r . nneexxt It I nnt (t ( ) ;) ; } } } } } } p
puubbll ii c static stati c vc vooii d d pprr eesesenntt aaDDoobbll ee(( ii nnt t AA[[ ]] [[ ]] )) {{ ff oor(r( ii nnt t ii ==00; ; ii <<AA.. ll eennggtt hh; ; ii ++++)) {{
ff oor(r( ii nnt t jj ==00; ; jj <<AA[[ 00]] .. ll eennggtt hh; ; jj ++++)) {{ S
Syystst eemm.. oouutt .. ff oorr mmaatt (( AA[[ ii ]] [[ jj ]] ++" ")" ") ;; } } S Syys t e ms t e m.. oouutt .. ppr ir i nntt (( " \" \ nn" )" ) ;; } } } } p
puubbll ii c sc st a t it a t i c vc vooii d d c ac all c uc ull aar (r ( ii nnt t AA[ ][ ] [[ ]] , , ii nnt t ff ii ll aas [ ]s [ ] , , ii nnt t c oc oll uummnnaas [ ]s [ ] ) {) { ff oor(r( ii nnt t ii ==00; ; ii <<AA.. ll eennggtt hh; ; ii ++++)) {{
ff oor(r( ii nnt t jj ==00; ; jj <<AA[[ 00]] .. ll eennggtt hh; ; jj ++++)) {{ f i
f i ll aass[ i[ i ] =] =f if i ll aass[ i[ i ] +] +AA[ i[ i ] [ j] [ j ] ;] ; co
coll uummnnasas[[ jj ]] ==cocoll uummnnasas[[ jj ]] ++AA[[ ii ]] [[ jj ]] ;; } } } } } } p
puubbll ii c stc st aatt ii c vc vooii d d pprr eesesenntt aasisi mmppll ee(( ii nnt t XX[[ ]] )) {{ ff oor(r( ii nnt t ii ==00; ; ii <<XX.. ll eennggtt hh; ; ii ++++)) {{
S
Systemystem.. ououtt .. ff ormormat(at( XX[[ ii ]] ++" ")" ") ;; }
} } } p
puubbll ii c statc stat ii c vc vooii d d mmaaii nn(( SStt riri nngg[[ ] ] aargs) {rgs) { ii nnt t nnuummFiFi ll , , nnuummCColol ;;
ii nnt t mmaat rt r ii z [ ]z [ ] [ ][ ] ; ; ii nnt t s us ummFFii ll [ ][ ] ; ; ii nnt t s us ummCCooll [ ][ ] ;; Sca
Scannnner ler l eer = eer = nenew w ScanScannenerr (( SySystst emem.. ii n)n) ;; S
Systemystem.. ououtt .. pprr ii nntt (( "I"I nnggrr eese se el el nnuummero ero dde e ff ii ll as as ddeel l aarr rr eeggll o o : : ")") ;; n
nuummFiFi l l = = ll eeeer.r. nneextIxtI nntt (( )) ;; S
Systyst emem.. ououtt .. pprr ii nntt (( "I"I nnggrr ese ese el el nnuummero dero de ce colol uummnnas das del el arrarr egegll o : o : ")") ;; n
nuummCCool l = = ll eeeerr .. nneextIxtI nntt (( )) ;; m
matat rr ii z = z = nnew ew ii nt[nt[ nnuummFiFi ll ]] [[ nnumumCColol ]] ;; su
summFiFi l l = = nnew ew ii nntt [[ nnuummFiFi ll ]] ;; sum
sumCCol ol = = new new ii ntnt [[ nunummCColol ]] ;; ll eeeer Mr Maat rt r ii z ( mz ( maat rt r ii z , z , ll eeeer )r ) ;; p
prr eseesenntt aDaDobobll e(me(matratr ii z)z) ;; ca
call cucull aarr (( mmaatt riri z, z, susummFiFi ll , , susummCCooll )) ;; S
Syys t e ms t e m.. oouutt .. ppr ir i nntt (( " \" \ nn" )" ) ;; p
prr eesesenntt asasii mmppll ee(( susummFiFi ll )) ;; S
Syys t e ms t e m.. oouutt .. ppr ir i nntt (( " \" \ nn" )" ) ;; p
prr eseesentasintasi mmplpl e(e( sumsumCColol )) ;; ll eeeer .r . c lc l oos es e( )( ) ;; } } } } 2.
package ej erci ci ospr opuestos; i mport j ava. ut i l . Scanner ;
publ i c cl ass Ej erci ci osPr opuest os {
publ i c st at i c voi d l eerArr egl o( i nt A[ ] , Scanner l eer ) { f or( i nt i =0; i <A. l engt h; i ++) {
System. out . f ormat( "I ngr ese el ement o [ %d] : ", i ) ; A[ i ] =l eer . next I nt ( ) ;
} }
publ i c st at i c voi d pr esent a( i nt A[ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
Syst em. out . pr i nt ( A[ i ] +" "); }
Sys t e m. out . pr i nt ( " \ n" ) ; }
publ i c st at i c voi d c al c ul ar ( i nt A[ ] ) { i nt cont P=0, cont N=0, cont 0=0; f or( i nt i =0; i <A. l engt h; i ++) {
i f ( A[ i ] <0) cont N++; el s e i f ( A[ i ] >0) cont P++; el se cont 0++; }
Syst em. out . f ormat ( "Tenemos %d el ement os posi t i vos \ n", cont P) ; Syst em. out . f ormat ( "Tenemos %d el ement os negat i vos \ n", cont N) ; Syst em. out . f ormat ( "Tenemos %d el ement os i gal es a cer o \ n" , cont 0); }
publ i c stat i c voi d mai n( St ri ng[ ] args) { i nt l i m;
i nt Ar r egl o[ ] ;
Scanner l eer = new Scanner ( Syst em. i n) ;
Syst em. out . pr i nt ( "I ngr ese el numero de el ement os del arr egl o : ") ; l i m = l eer . next I nt ( ) ;
Ar r egl o = new i nt [ l i m] ; l eer Ar r egl o( Ar r egl o, l eer ) ; pr esent a( Ar r egl o) ;
c al c ul ar ( Ar r egl o) ; l eer . c l os e( ) ; }
}
3. Escriba un programa que me permita almacenar en un arreglo B el factorial de 10 números almacenados previamente en un arreglo A.
package ej erci ci ospr opuestos; i mport j ava. ut i l . Scanner ;
publ i c cl ass Ej erci ci osPr opuest os {
publ i c st at i c voi d l eerArr egl o( i nt A[ ] , Scanner l eer ) { f or( i nt i =0; i <A. l engt h; i ++) {
System. out . f ormat( "I ngr ese el ement o [ %d] : ", i ) ; A[ i ] =l eer . next I nt ( ) ;
} }
publ i c stat i c voi d pr esent a( i nt A[ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
Syst em. out . pr i nt ( A[ i ] +" "); } Sys t e m. out . pr i nt ( " \ n" ) ; } publ i c s t at i c i nt f ac ( i nt X) { i nt f =1; f or( i nt i =1; i <=X; i ++) { f =f * i ; } r e t ur n f ; }
publ i c s t at i c voi d gener a r ( i nt A[ ] , i nt B[ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
B[ i ] =f ac ( A[ i ] ) ; }
}
publ i c stat i c voi d mai n( St ri ng[ ] args) { i nt l i m;
i nt Ar r egl o[ ] ; i nt Fact o r i al es [ ] ;
Scanner l eer = new Scanner ( Syst em. i n) ;
Syst em. out . pr i nt ( "I ngr ese el numero de el ement os del arr egl o : ") ; l i m = l eer . next I nt ( ) ;
Ar r egl o = new i nt [ l i m] ; Fac t o r i al es = new i nt [ l i m] ; l eer Ar r egl o( Ar r egl o, l eer ) ; pr esent a( Ar r egl o) ;
generar( Arr egl o, Factori al es) ; pr esent a( Factori al es) ;
l eer . c l os e( ) ; }
}
4. Calcular la suma de los elementos de la diagonal principal de una matriz den Xn. package ej erci ci ospr opuestos;
i mport j ava. ut i l . Scanner ;
publ i c cl ass Ej erci ci osPr opuest os {
publ i c s t a t i c voi d l eer Mat r i z ( i nt A[ ] [ ] , Sc anner l eer ) { f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A. l engt h; j ++) {
System. out . f or mat( "I ngr ese el ement o [%d] [ %d] : ", i , j ) ; A[ i ] [ j ] =l eer . next I nt ( ) ;
} } }
publ i c s t a t i c voi d pr e sent a( i nt A[ ] [ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A. l engt h; j ++) { Syst em. out . f or mat ( A[ i ] [ j ] +" ") ; }
} }
publ i c s t at i c voi d c al c ul ar ( i nt A[ ] [ ] ) { i nt s=0;
f or( i nt i =0; i <A. l engt h; i ++) { s =s +A[ i ] [ i ] ;
}
Syst em. out . f ormat( "La suma de l a di agonal pr i nci pal es : %d \ n", s) ; }
publ i c stat i c voi d mai n( St ri ng[ ] args) { i nt l i m;
i nt mat r i z [ ] [ ] ;
Scanner l eer = new Scanner ( Syst em. i n) ;
System. out . pr i nt ( "I ngr ese el numero de f i l as y col umnas del arr egl o : ") ; l i m = l eer . next I nt ( ) ;
mat r i z = new i nt [ l i m] [ l i m] ; l eer Mat r i z ( mat r i z , l eer ) ; pr esent a(matr i z) ;
c al c ul ar ( mat r i z ) ; l eer . c l os e( ) ; }
}
5. Se dispone de un arreglo T de n números diferentes de 0, (puede ser llenada por un procedimiento que genere números aleatorios distintos de cero); crear un nuevo arreglo en el que todos sus elementos resulten de dividir los elementos del arreglo T por el elemento T[i], siendo i un valor leído por teclado.
package ej erci ci ospr opuestos; i mport j ava. ut i l . Scanner ;
publ i c cl ass Ej erci ci osPr opuest os {
publ i c st at i c voi d l eer Ar r egl o( f l oat A[ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
A[ i ] =( i nt ) ( Math. r andom( ) *15 + 1) ; }
}
publ i c st at i c voi d pr esent a( f l oat A[ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
Syst em. out . pr i nt ( A[ i ] +" "); }
Sys t e m. out . pr i nt ( " \ n" ) ; }
publ i c s t a t i c voi d gener a r ( f l oat A[ ] , f l oat B[ ] , Sc anner l eer ) { i nt mul ;
Syst em. out . pri nt ( "I ngr ese el i ndi ce para l a oper aci on : ") ; mul = l eer. next I nt ( ) ;
f or( i nt i =0; i <A. l engt h; i ++) { B[ i ] =( A[ i ] / A[ mul ] ) ;
} }
publ i c stat i c voi d mai n( St ri ng[ ] args) { i nt l i m;
f l oat Ar r egl o[ ] ; f l oat Li st a[ ] ;
Scanner l eer = new Scanner ( Syst em. i n) ;
Syst em. out . pr i nt ( "I ngr ese el numero de el ement os del arr egl o : ") ; l i m = l eer . next I nt ( ) ;
Ar r egl o = new f l oat [ l i m] ; Li s t a = new f l oat [ l i m] ; l eer Ar r egl o( Ar r egl o) ; pr esent a( Ar r egl o) ;
gener a r ( Ar r egl o, L i s t a , l eer ) ; pr e s ent a( L i s t a ) ;
l eer . c l os e( ) ; }
}
6. Se dispone de un arreglo de n elementos. Se desea diseñar un algoritmo que permita insertar el valor x en la posición k
‐
ésima de la lista, debiendo desplazarse los elementos hacia la derecha para dar lugar al nuevo elemento y desechando el último elemento sobrante.package ej erci ci ospr opuestos; i mport j ava. ut i l . Scanner ;
publ i c cl ass Ej erci ci osPr opuest os {
publ i c s t at i c voi d l eer Ar r egl o( i nt A[ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
A[ i ] =( i nt ) ( Math. r andom( ) *15 + 1) ; }
}
publ i c st at i c voi d pr esent a( i nt A[ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
Syst em. out . pr i nt ( A[ i ] +" "); }
Sys t e m. out . pr i nt ( " \ n" ) ; }
publ i c st at i c voi d i nser t a( i nt A[ ] , Scanner l eer) { i nt num, donde;
System. out . pr i nt ( "I ngr ese el numero a i nser t ar : ") ; num = l eer . next I nt ( ) ;
Syst em. out . pri nt ( "I ngr ese l a posi ci on a i nser t ar : ") ; donde = l eer . next I nt ( ) ;
f or ( i nt i =A. l engt h- 1; i >donde; i - - ) { A[ i ] =A[ i - 1] ;
}
A[ donde] =num; }
publ i c stat i c voi d mai n( St ri ng[ ] args) { i nt l i m;
i nt Ar r egl o[ ] ;
Scanner l eer = new Scanner ( Syst em. i n) ;
Syst em. out . pr i nt ( "I ngr ese el numero de el ement os del arr egl o : ") ; l i m = l eer . next I nt ( ) ;
Ar r egl o = new i nt [ l i m] ; l eer Ar r egl o( Ar r egl o) ; pr esent a( Ar r egl o) ; i ns er t a( Ar r egl o, l eer ) ;
pr esent a( Ar r egl o) ; l eer . c l os e( ) ; }
}
7. Escribir un programa que permita calcular el cuadrado de los 100 primeros números enteros y a continuación escribir un arreglo que contenga dichos resultados.
package ej erci ci ospr opuestos; i mport j ava. ut i l . Scanner ;
publ i c cl ass Ej erci ci osPr opuest os { publ i c st at i c voi d gener ar ( i nt A[ ] ) {
f or( i nt i =0; i <100; i ++) { A[ i ] =( i +1) *( i +1) ; }
}
publ i c st at i c voi d pr esent a( i nt A[ ] ) { f or( i nt i =0; i <100; i ++) {
Syst em. out . pr i nt ( A[ i ] +" "); }
Sys t e m. out . pr i nt ( " \ n" ) ; }
publ i c stat i c voi d mai n( St ri ng[ ] args) { i nt l i m;
i nt Ar r egl o[ ] ;
Ar r egl o = new i nt [ 100] ; generar( Arr egl o) ;
pr esent a( Ar r egl o) ; }
}
8. Dada una listaL den Xm elementos, diseñar un programa que calcule la suma de números pares e impares contenidos en ella.
package ej erci ci ospr opuestos; i mport j ava. ut i l . Scanner ;
publ i c cl ass Ej erci ci osPr opuest os {
publ i c s t a t i c voi d l eer Mat r i z ( i nt A[ ] [ ] , Sc anner l eer ) { f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) {
System. out . f or mat( "I ngr ese el ement o [%d] [ %d] : ", i , j ) ; A[ i ] [ j ] =l eer . next I nt ( ) ;
} } }
publ i c s t a t i c voi d pr e sent ar ( i nt A[ ] [ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) { Syst em. out . f or mat ( A[ i ] [ j ] +" ") ; }
Sys t e m. out . pr i nt ( " \ n" ) ; }
}
publ i c s t at i c voi d c al c ul ar ( i nt A[ ] [ ] ) { i nt sumP=0, sumI =0;
f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) { i f ( A[ i ] [ j ] %2 == 0)
sumP=sumP+A[ i ] [ j ] ; el se
sumI =sumI +A[ i ] [ j ] ; }
}
Syst em. out . f or mat ( " La suma de par es es : %d \ n", sumP) ; Syst em. out . f or mat ( " La suma de i mpar es es : %d \ n", sumI ) ; }
publ i c stat i c voi d mai n( St ri ng[ ] args) { i nt numFi l , numCol ;
i nt mat r i z [ ] [ ] ;
Scanner l eer = new Scanner ( Syst em. i n) ;
System. out . pr i nt ( "I ngr ese el numero de f i l as del ar r egl o : ") ; numFi l = l eer. nextI nt ( ) ;
Syst em. out . pr i nt ( "I ngr ese el numero de col umnas del arr egl o : ") ; numCol = l eer . nextI nt ( ) ;
mat r i z = new i nt[ numFi l ] [ numCol ] ; l eer Mat r i z ( mat r i z , l eer ) ;
pr esent ar( mat ri z) ; c al c ul ar ( mat r i z ) ; l eer . c l os e( ) ; }
}
9. Se desea realizar un programa que permita controlar las reservas de plazas de un vuelo Quito
‐
Loja, de acuerdo con las siguientes normas de la compañía aérea.a. Número de plazas del avión: 100.
b. Plazas numeradas del 1 al 30: fumadores. c. Plazas numeradas del 31 al 100: no fumadores.
Se desea realizar la reserva a petición del pasajero y cerrar la reserva cuando no haya plazas libres o el avión esté próximo a despegar. Como ampliación de este algoritmo, considere la opción de anulaciones imprevistas de reservas.
(Considere la utilización de un menú por pantalla para representar cada uno de los estados).
10. Cada alumno de una clase de 20 estudiantes tiene notas correspondientes a 5 asignaturas diferentes, pudiendo no tener calificación en alguna asignatura. A cada asignatura le corresponde un determinado coeficiente. Escribir un programa que permita:
a. Calcular la media de cada alumno b. Media general de la clase
c. Media de la clase en cada asignatura
d. Porcentaje de faltas (no presentado a examen)
package ej erci ci ospr opuestos; i mport j ava. ut i l . Scanner ;
publ i c cl ass Ej erci ci osPr opuest os {
publ i c st at i c voi d l eerCur so( i nt A[ ] [ ] , St ri ng N[ ] , Scanner l eer) { Syst em. out . pri nt ( " I NGRESO DE ESTUDI ANTES \ n\ n") ;
f or( i nt j =0; j <A[ 0] . l engt h; j ++) {
System. out . f ormat( "I ngr ese est udi ant e [ %d] : ", j +1) ; N[ j ] =l eer . next ( ) ;
f or( i nt i =0; i <A. l engt h; i ++) {
Syst em. out . f ormat( "I ngr ese nota de mater i a [ %d] de "+N[ j ] +" : ", i +1) ; A[ i ] [ j ] =l eer . next I nt ( ) ;
} } }
publ i c s t at i c voi d pr e sent ar ( St r i ng N[ ] , i nt A[ ] [ ] ) { f or( i nt j =0; j <A[ 0] . l engt h; j ++) {
Sys t e m. out . pr i nt ( N[ j ] +" : " ) ; f or( i nt i =0; i <A. l engt h; i ++) {
Sys t e m. out . pr i nt ( " " +A[ i ] [ j ] ) ; }
Sys t e m. out . pr i nt ( " \ n" ) ; }
}
publ i c s t a t i c voi d c al c ul aes t ( St r i ng N[ ] , i nt A[ ] [ ] , Sc anner l eer ) { St r i ng nombre;
i nt i ndi ce=- 1, cont =0; f l oat prom=0, S=0;
System. out . pr i nt ( "I ngr ese est udi ant e a buscar : ") ; nombr e = l eer . next ( ) ;
f or( i nt i =0; i <N. l engt h; i ++) { i f ( N[ i ] . equal s(nombr e) ) { i ndi c e=i ; i =N. l engt h; } } i f ( i ndi ce>=0) { f or( i nt j =0; j <5; j ++) { i f ( A[ j ] [ i ndi ce] ! =0)
S=S+A[ j ] [ i ndi ce] ; el se
cont ++; pr om=S/ ( 5- cont ) ; }
Syst em. out . pr i nt ( "El pr omedi o del estudi ant e "+N[ i ndi ce]+" es : " +prom+" \ n") ;
}el se{
Syst em. out . pr i nt ( "El est udi ant e no exi st e \ n") ; }
}
publ i c s t a t i c voi d c al c ul agen( i nt A[ ] [ ] ) { i nt cont =0;
f l oat prom=0, S=0;
f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) { i f ( A[ i ] [ j ] ! =0) S=S+A[ i ] [ j ] ; el se cont ++; } }
Syst em. out . f ormat( "El pr omedi o general es : %f \ n", pr om) ; }
publ i c s t a t i c voi d c al c ul aas i ( i nt A[ ] [ ] , Sc anner l eer ) { i nt i ndi ce=- 1, cont =0;
f l oat prom=0, S=0;
System. out . pr i nt ( "I ngr ese i ndi ce de materi a : ") ; i ndi c e = l eer . next I nt ( ) ;
f or( i nt i =0; i <A[ 0] . l engt h; i ++) { i f ( A[ i ndi ce] [ i ] ! =0)
S=S+A[ i ndi ce] [ i ] ; el se
cont ++; }
pr om=S/ ( A[ 0] . l engt h- cont ) ;
Syst em. out . f ormat( "El pr omedi o de l a mater i a %d es: %f \ n", i ndi ce, pr om) ; }
publ i c st a t i c voi d c al c ul af al ( i nt A[ ] [ ] ) { i nt cont =0;
f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) { i f ( A[ i ] [ j ] ==0)
cont ++; }
}
Syst em. out . f ormat( "El pr ocent aj e de f al t as es de %d por ci ent o \ n", cont ) ; }
publ i c stat i c voi d menu( St ri ng N[ ] , i nt A[ ] [ ] , Scanner l eer) { i nt o p;
do{
System. out . pr i nt ( "Cal cul ar l a medi a de un est udi ant e [ 1] : \ n") ; System. out . pr i nt ( "Cal cul ar medi a gener al de l a cl ase [ 2] : \ n") ; System. out . pr i nt ( "Cal cul ar medi a de cl ase por asi gnat ur a [3] : \ n") ; Syst em. out . pr i nt ( "Porcent aj e de f al t as de l a cl ase [ 4] : \ n") ; Sys t em. out . pr i nt ( " Sal i r [ 5] : \ n" ) ; op = l eer. nextI nt ( ) ;
swi t ch ( op) {
c as e 1: c al c ul aes t ( N, A, l eer ) ; br eak;
case 2: cal cul agen( A) ; br eak;
c as e 3: c al c ul aas i ( A, l eer ) ; br eak;
c as e 4: c al c ul af al ( A) ; br eak;
def aul t : break; }
}whi l e(op! =5) ; }
publ i c stat i c voi d mai n( St ri ng[ ] args) { St r i ng nombr es[] ;
i nt not a s[ ] [ ] ;
Scanner l eer = new Scanner ( Syst em. i n) ; nombr es = new St r i ng[ 20] ;
not as = new i nt [ 5] [ 20] ;
l eer Cur so( notas, nombr es, l eer) ; pr esent ar( nombr es, notas) ;
l eer . c l os e( ) ; }
}
11. Una empresa tiene diez almacenes y desea un programa que lea sus ventas mensuales, calcule la media de las ventas y obtener un listado de los almacenes cuyas ventas mensuales son superiores a la media.
package mas. ej erci ci os;
i mport j ava. ut i l . Scanner ; publ i c cl ass MasEj erci ci os {
publ i c st at i c voi d l eerAl macenes( St r i ng A[ ] , i nt V[ ] , Scanner l eer) { Syst em. out . pri nt ( " I NGRESO DE ALMACENES \ n\ n") ;
f or( i nt i =0; i <A. l engt h; i ++) {
Syst em. out . f ormat( "I ngr ese al macen [%d] : ", i +1) ; A[ i ] =l eer . next ( ) ;
System. out . pr i nt ( "I ngr ese sus vent as : ") ; V[ i ] =l eer . next I nt ( ) ;
} }
publ i c s t a t i c voi d pr e sent ar ( St r i ng A[ ] , i nt V[ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
Syst em. out . pr i nt ( A[ i ] +" : "+V[ i ] +"\ n") ; }
Sys t e m. out . pr i nt ( " \ n" ) ; }
publ i c st at i c voi d c al c ul ar ( St r i ng A[ ] , i nt V[ ] ) { f l oat prom=0, S=0;
f or( i nt i =0; i <A. l engt h; i ++) { S=S+V[ i ] ;
}
prom=S/ V. l engt h;
Syst em. out . pri nt( "El promedi o de ventas de l os al macenes es : "+pr om+" \ n" ) ; Syst em. out . pr i nt ( " LOS ALMACENES QUE SUPERAN EL PROMEDI O SON : \ n") ;
f or( i nt j =0; j <V. l engt h; j ++) { i f ( V[ j ] >=pr om) {
Syst em. out . pr i nt ( A[ j ] +" : "+V[ j ] +"\ n") ; }
} }
publ i c stat i c voi d mai n( St ri ng[ ] args) { St r i ng al macenes[ ] ;
i nt vent as [ ] ;
Scanner l eer = new Scanner ( Syst em. i n) ; al macenes = new St r i ng[ 5] ;
vent as = new i nt[ 5] ;
l eer Al macenes(al macenes, vent as, l eer ) ; pr esent ar( al macenes, vent as);
cal cul ar ( al macenes, vent as) ; l eer . c l os e( ) ;
} }
12. Se dispone de una lista den nombres de alumnos. Escribir un programa que solicite el nombre de un alumno y busque en la lista si el nombre está o no.
package mas. ej erci ci os;
i mport j ava. ut i l . Scanner ; publ i c cl ass MasEj erci ci os {
publ i c st ati c voi d l eer Nombr es( St r i ng N[ ] , Scanner l eer ) { Syst em. out . pri nt ( " I NGRESO DE NOMBRES \ n\ n") ;
f or( i nt j =0; j <N. l engt h; j ++) {
Syst em. out . f ormat( "I ngr ese nombr e [ %d] : ", j +1) ; N[ j ] =l eer . next ( ) ;
} }
publ i c stati c voi d pr esent ar ( St ri ng N[ ] ) { f or( i nt i =0; i <N. l engt h; i ++) {
Syst em. out . pr i nt ( " "+N[ i ] ) ; }
Sys t e m. out . pr i nt ( " \ n" ) ; }
publ i c st at i c voi d buscar( St ri ng N[ ] , Scanner l eer) { St r i ng nombre;
i nt i ndi ce=- 1;
Syst em. out . pr i nt ( "I ngr ese nombr e a buscar : ") ; nombr e = l eer . next ( ) ;
f or( i nt i =0; i <N. l engt h; i ++) { i f ( N[ i ] . equal s(nombr e) ) { i ndi c e=i ; i =N. l engt h; } } i f ( i ndi ce>=0) {
Syst em. out . pr i nt ( "El nombr e buscado est a en l a posi ci ón : "+i ndi ce+"\ n") ; }el se{
Syst em. out . pr i nt ( "El nombr e buscado no exi st e \ n") ; }
}
publ i c stat i c voi d mai n( St ri ng[ ] args) { i nt num;
St r i ng nombr es[] ;
Scanner l eer = new Scanner ( Syst em. i n) ; Syst em. out . pr i nt ( "numero de el ement os : ") ; num = l eer . next I nt ( ) ;
nombr es = new St r i ng[ num] ; l eer Nombres( nombr es, l eer ) ; pr esentar ( nombr es) ;
buscar( nombr es, l eer ) ; l eer . c l os e( ) ;
} }
13. Realice un programa que me permita realizar (según un menú presentado al usuario): a. La multiplicación de dos matrices bidimensionales.
b. Suma de matrices. c. Resta de matrices.
d. Multiplicación por un escalar e. Traspuesta de una matriz
(Considérese las restricciones necesarias para cada operación).
package ej erci ci ospr opuestos; i mport j ava. ut i l . Scanner ;
publ i c s t a t i c voi d l eer Mat r i z ( i nt A[ ] [ ] , Sc anner l eer ) { f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) {
System. out . f or mat( "I ngr ese el ement o [%d] [ %d] : ", i , j ) ; A[ i ] [ j ] =l eer . next I nt ( ) ;
} } }
publ i c stati c voi d pr esent aDobl e( i nt A[ ] [ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) { Sys t e m. out . pr i nt ( A[ i ] [ j ] +" " ) ; }
Sys t e m. out . pr i nt ( " \ n" ) ; }
}
publ i c s t at i c voi d i ni c i al i z aDobl e( i nt A[ ] [ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) { A[ i ] [ j ] =0;
} } }
publ i c st a t i c voi d pr o duc t o( i nt A[ ] [ ] , i nt B[ ] [ ] , i nt C[ ] [ ] ) { f or( i nt k=0; k<B[ 0] . l engt h; k++) {
f or( i nt i =0; i <A. l engt h; i ++) {
f or ( i nt j =0; j <A[ 0] . l engt h; j ++) { C[ i ] [ k] =C[ i ] [ k] +( A[ i ] [ j ] * B[ j ] [ k] ) ; } } } }
publ i c stati c voi d mul t i pl i ca( Scanner l eer ) { i nt n, m, l ;
i nt A[ ] [ ] , B[ ] [ ] , C[ ] [ ] ;
System. out . pr i nt ( "I ngr ese el numero de fi l as de l a mat r i z A : ") ; m = l eer . next I nt ( ) ;
Syst em. out . pr i nt ( "I ngr ese el numero de col umnas de l a matr i z A : ") ; n = l eer . next I nt ( ) ;
Syst em. out . pr i nt ( "I ngr ese el numero de col umnas de l a matr i z B : ") ; l = l eer . next I nt ( ) ;
A = new i nt [ m] [ n] ; B = new i nt [ n] [ l ] ; C = new i nt [ m] [ l ] ; l eer Mat r i z ( A, l eer ) ; l eer Mat r i z ( B, l eer ) ; i ni c i al i z aDobl e( C) ; pr oduct o(A, B, C) ; pr esent aDobl e(C) ; }
publ i c st ati c voi d suma(Scanner l eer ) { i nt n, m;
i nt A[ ] [ ] , B[ ] [ ] , C[ ] [ ] ;
System. out . pr i nt ( "I ngr ese el numero de f i l as de l as matr i ces : ") ; m = l eer . next I nt ( ) ;
Syst em. out . pr i nt ( "I ngr ese el numero de col umnas de l as matr i ces : ") ; n = l eer . next I nt ( ) ;
A = new i nt [ m] [ n] ; B = new i nt [ m] [ n] ; C = new i nt [ m] [ n] ; l eer Mat r i z ( A, l eer ) ; l eer Mat r i z ( B, l eer ) ; i ni c i al i z aDobl e( C) ;
f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) { C[ i ] [ j ] =A[ i ] [ j ] +B[ i ] [ j ] ; }
}
pr esent aDobl e(C) ; }
publ i c st ati c voi d menu( Scanner l eer ) { i nt o p;
do{
Syst em. out . pr i nt ( "Mul t i pl i caci ón de mat ri ces [ 1] : \ n") ; System. out . pr i nt ( "Suma de matr i ces [ 2] : \ n") ; Syst em. out . pr i nt ( "Di f er enci a de mat r i ces [ 3] : \ n") ; Syst em. out . pr i nt ( "Mul t i pl i caci ón por un escal ar [ 4] : \ n") ; Syst em. out . pr i nt ( "Traspuesta de l a mat r i z [ 5] : \ n") ; Sys t em. out . pr i nt ( " Sal i r [ 6 ] : \ n" ) ; op = l eer. nextI nt ( ) ;
swi t ch ( op) {
c as e 1: mul t i pl i c a( l eer ) ; br eak;
case 2: suma(l eer ) ; br eak;
case 3: Syst em. out . pr i nt( " Es l a mi sma f unci ón de sumar, sol o cambi amos es si gno \ n") ;
br eak;
case 4: Syst em. out . pr i nt ( "Ya f ue r evi sada pr evi ament e en cl ases \ n") ; br eak;
case 5: Syst em. out . pr i nt ( "Ya f ue r evi sada pr evi ament e en cl ases \ n") ; br eak;
def aul t : break; }
}whi l e(op! =6) ; }
publ i c stat i c voi d mai n( St ri ng[ ] args) { Scanner l eer = new Scanner ( Syst em. i n) ; menu( l eer ) ;
l eer . c l os e( ) ; }
}
14. Realice un programa que me permita realizar el ordenamiento de una matriz bidireccional (el ordenamiento debe ser realizado en la misma matriz)
package ej erci ci ospr opuestos; i mport j ava. ut i l . Scanner ;
publ i c cl ass Ej erci ci osPr opuest os {
publ i c s t a t i c voi d l eer Mat r i z ( i nt A[ ] [ ] , Sc anner l eer ) { f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) {
System. out . f or mat( "I ngr ese el ement o [%d] [ %d] : ", i , j ) ; A[ i ] [ j ] =l eer . next I nt ( ) ;
} } }
publ i c stati c voi d pr esent aDobl e( i nt A[ ] [ ] ) { f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) { Sys t e m. out . pr i nt ( A[ i ] [ j ] +" " ) ; }
Sys t e m. out . pr i nt ( " \ n" ) ; }
}
publ i c s t a t i c voi d or d ena( i nt A[ ] [ ] ) { i nt b, c , aux;
f or( i nt i =0; i <A. l engt h; i ++) {
f or( i nt j =0; j <A[ 0] . l engt h; j ++) { i f ( j == A[ 0] . l engt h- 1) { b=i +1; c=0; } el se{ b=i ; c=j +1; }
f or( i nt k=b; k<A. l engt h; k++) { f or ( i nt l =c; l <A[ 0] . l engt h; l ++) { i f ( A[ i ] [ j ] >A[ k ] [ l ] ) { aux=A[ i ] [ j ] ; A[ i ] [ j ] =A[ k] [ l ] ; A[ k][ l ] =aux; } } c=0; } } } }
publ i c stat i c voi d mai n( St ri ng[ ] args) { i nt numFi l , numCol ;
i nt numeros[] [ ] ;
Scanner l eer=new Scanner ( Syst em. i n) ;
Sys t e m. out . pr i nt f ( " I ngr e se f i l as de l a mat r i z : " ) ; numFi l =l eer . nextI nt ( ) ;
System. out . pr i nt f ( "I ngr ese col umnas de l a mat r i z : ") ; numCol =l eer . nextI nt ( ) ;
numer os = new i nt [ numFi l ] [ numCol ] ; l eer Mat r i z( numeros, l eer ) ;
pr esentaDobl e( numeros) ; or dena( numer os) ;
pr esentaDobl e( numeros) ; l eer . c l os e( ) ;
} }