Llicència
Pots copiar i redistribuir aquest material seguint la llicència Attribution-NonCommercial-ShareAlike 4.0 International CC BY-NC-SA 4.0, indicant-ne autors originals, l'origen (aquesta web), sense fins comercials i mantenint-ne aquesta la llicència
Autors:
Exercicis Programació funcional
- Usa el mateix projecte que l'usat als exercicis
- Crea un package cat.itb.elteuusuari(*).dam.m03.uf5.exercices.func
- La classe de cada exercici ha de ser el nom de l'exercici
(*) elteuusuari correspon a la direcció de correu eltectrònic del centre, sense punts, fins a @itb.cat
Sumari
Exercicis
Introducció
LamdaSample
Usant lambdes, llegeix una llista d'enters usant IntegerLists.readIntegerList.
Donats els enters, elimina els que acaben amb 3, ordena'ls de major a menor, i imprimieix-los per pantalla.
Input
43 65 2 75 1 54 73 23 33 65 25 73 425432 65 34 2 -1
Output
425432
75
65
65
65
54
34
25
2
2
1
MethodReferenceSample
Usant referencies a mètodes, llegeix una llista d'enters usant IntegerLists.readIntegerList.
Donats els enters, elimina els que acaben amb 3, ordena'ls de major a menor, i imprimieix-los per pantalla.
FilterEmpoyeeById
Usa la classe Employee de l'exercici EmpoyeeById, llegeix una llista (List) d'empleats per pantalla (primer s'introduirà el número d'empleats).
Elimina els empleats que tenen un DNI amb la lletra A i imprimeix la llista resultant.
Input
2
12345678Z
Mar
Puig
Av. Pi 42
87654321A
Ot
Pi
C. Mar 33
Output
Ot Pi - 87654321A, C. Mar 33
Comparator
SortByLastDigit
Donada la següent llista d'enters
List<Integer> list = Arrays.asList(253,432,65,234,43,16,28,432,34,65,312,34,2134,76,2,76,23,67,27,8,54235256,4560,7431);
Imprimeix-la ordenada per l'ultim digit de cada número.
[4560, 7431, 432, 432, 312, 2, 253, 43, 23, 234, 34, 34, 2134, 65, 65, 16, 76, 76, 54235256, 67, 27, 28, 8]
MostExpensiveProduct
Usa les classes i funcions de l'exercici UF2.MultiProductNiceInfoPrinter, llegeix un conjunt de productes, i imprimeix per pantalla el més car
Input
<<<<<<< HEAD
Taula 232,32 Cadira 90,90 Bolígraf 76,22 END
=======
3
Taula
232.32
Cadira
90.90
Bolígraf
76.22
>>>>>>> b6f6e67be60d7a963edfb9c467cd197e10549ea4
Output
El producte Taula val 232.32€
Streams
MetersToCentimeters
Llegeix una llista de distàncies per la consola (en format enter, usant IntegerLists.readIntegerList). Converteix cada una de les distàncies a cm i imprimeix-les per pantalla.
Input
43 65 3246 54329 43 5423 54 -1
Output
43000
65000
3246000
54329000
43000
5423000
54000
CountryDataSortByName
D'un païs ens en volem guardar la següent informació.
- nom, capital, superfície(km2), densitat (hab./km2)
Imprimeix els països de més de amb una densitat superior a 5hab/km2, ordenats per ordre alfabètic.
L'usuari primer introduirà la quantitat de països a llegir.
Imprimeix els paisos ordenats per ordre alfabètic.
Input
5
Peru Lima 1285216 24
Australia Canberra 7702466 3
Marroc Casablanca 446650 66
Russia Moscou 17098242 8
Islandia Reikiavik 102800 3
FigurePainterNotGreen
Donades les següents figures:
List<Figure> figures = new ArrayList<>();
figures.add(new RectangleFigure(ConsoleColors.RED, 4, 5));
figures.add(new LeftPiramidFigure(ConsoleColors.YELLOW, 3));
figures.add(new RectangleFigure(ConsoleColors.GREEN, 3, 5));
figures.add(new RectangleFigure(ConsoleColors.BLUE, 1, 1));
figures.add(new LeftPiramidFigure(ConsoleColors.YELLOW, 4));
figures.add(new RectangleFigure(ConsoleColors.GREEN, 10, 5));
figures.add(new LeftPiramidFigure(ConsoleColors.YELLOW, 8));
Imprimeix per pantalla només les que no siguin verdes.
CountryDataSortAveragePopulation
Imprimeix la mitjana de població dels països de menys de 1200000 km2.
Input
5
Peru Lima 1285216 24
Australia Canberra 7702466 3
Marroc Casablanca 446650 66
Russia Moscou 17098242 8
Islandia Reikiavik 102800 3
FromAvgSallaryInfoStream
Fes l'exercici UF2.FromAvgSallaryInfo (pots usar les classes ja fetes), però fes els càlculs (mitjana i filtre) usant streams
CountryDataUpdateNames
Llegeix per pantalla una llista de països, modifica'n el nom i la capital per a que estiguin escrites en majúscules i imprimeix-los.
Input
5
Peru Lima 1285216 24
Australia Canberra 7702466 3
Marroc Casablanca 446650 66
Russia Moscou 17098242 8
Islandia Reikiavik 102800 3
Output
PERU LIMA 1285216 24
AUSTRALIA CANBERRA 7702466 3
MARROC CASABLANCA 446650 66
RUSSIA MOSCOU 17098242 8
ISLANDIA REIKIAVIK 102800 3
EmbassatorsByBiggestCountry
Ens volem guardar la informació de diferents embaixadors que hi ha a la nostre ciutat. Cada enbaixador ho és d'un país determinat.
Llegeix els països i els embaixadors.
Imprimeix per pantalla els diferents embaixadors ordenats per la mida del païs que representen (el més gran primer). En cas d'empat per ordre alfabètic dels cognoms i en cas d'empat per ordre alfabètic del nom.
Input
3
Peru Lima 1285216 24
Australia Canberra 7702466 3
Marroc Casablanca 446650 66
4
Mar
Pi
Peru
Ot
Om
Australia
Ona
Puig
Peru
Iun
Puig
Peru
NearestTo100
Llegeix una llista d'enters usant IntegerLists.readIntegerList.
Imprimeix per pantalla el número més pròxim a 100, i el més llunyà.