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 de Funcions estàtiques i data classes
- Usa el mateix projecte que l'usat als exercicis
- Crea un package cat.itb.elteuusuari(*).dam.m03.uf2.classfun
- 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
RightTriangleSize
Volem fer un programa que ens digui l'àrea i el perímetre d'una llista de triangles rectangles
- L'usuari indrodueix el número de triangles
- L'usuari entra la base i l'altura del triangle
- Imprimeix la superfície i el perímetre dels diferents triangles.
Nota: No pots imprimir els triangles fins a que s'hagin llegit tots.
Input
2
2.0 4.0
3.5 5.4
Output
Un triangle de 2.0 x 4.0 té 4.0 d'àrea i XX de perímetre.
Un triangle de 3.5 x 5.4 té 9.45 d'àrea i XX de perímetre.
Lamp
Implementa un programa que simuli una làmpara, amb les accions:
- TURN ON: Encén la làmpara
- TURN OFF: Apaga la làmpara
- TOGGLE: Canvia l'estat de la làmpara
Després de cada acció mostra si la làmpara està encesa.
Exemple
Les línies que comencen per > són el què ha escrit l'usuari
> TURN OFF
false
> TURN ON
true
> TURN OFF
false
> TOGGLE
true
> TOGGLE
false
> END
CampSiteOrganizer
Volem fer un petit programa per gestionar un càmping. Volem tenir controlat quantes parcel·les tenim plenes i quanta gent tenim.
Quan s'ocupi una parcel·la l'usuari introduirà el número de persones i el nom de la reserva
ENTRA 2 Maria
Quan es buidi una parcel·la l'usuari introduirà el nom de la reserva
MARXA Maria
Per tancar el programa l'usuari introduirà el nom END
Cada cop que marxi algú, imprimeix el número total de persones que hi ha, i el número de parcel·les plenes.
Exemple
Les línies que comencen per > són les que ha escrit l'usuari
> ENTRA 2 Maria
parcel·les: 1
persones: 2
> ENTRA 5 Mar
parcel·les: 2
persones: 7
> MARXA Maria
parcel·les: 1
persones: 5
> END
BasicRobot
Fes un programa que permeti moure un robot en un pla 2D.
El robot ha de guardar la seva posició (X, Y) i la velocitat actual. Per defecte, la posició serà (0, 0) i la velocitat és 1. La velocitat indica la distància que recorre el robot en cada acció.
El robot té les següents accions:
- DALT: El robot és mou cap a dalt (tenint en compte la velocitat).
- BAIX: El robot és mou cap a baix (tenint en compte la velocitat).
- DRETA: El robot és mou cap a la dreta (tenint en compte la velocitat).
- ESQUERRA: El robot és mou cap a la esquerra (tenint en compte la velocitat).
- ACCELERAR: El robot augmenta en 0.5 la velocitat. La velocitat màxima és 10.
- DISMINUIR: El robot augmenta en 0.5 la velocitat. La velocitat mínima és 0.
- POSICIO: El robot imprimeix la seua posició.
- VELOCITAT: El robot imprimeix la seua velocitat.
El programa acaba amb l'acció END.
Exemple
Les línies que comencen per > són el que ha escrit l'usuari
> POSICIO
La posició del robot és (0.0, 0.0)
> DALT
> DALT
> ESQUERRA
> POSICIO
La posició del robot és (-1.0, 2.0)
> ACCELERAR
> VELOCITAT
La velocitat del robot és 1.5
> DALT
> POSICIO
La posició del robot és (-1.0, 3.5)
> END
ThreeInARow
Fes un programa que permeti a dos jugador jugar al tres en ratlla.
Es juga amb un taulell de 3x3. Cada jugador col·loca una peça al taulell alternativament. Guanya qui és capaç de col·locar-les formant una línia de 3, ja sigui vertical, horitzontal o diagonal.
El programa a desenvolupar haurà de mostrar el taulell per pantalla i demanar la tirada al primer jugador.
El jugador escriurà dos números, el primer correspon a les columnes i el segon a les files. S'anirà demanant el torn alternativament a
cada jugador fins que algun dels dos faci el tres en ratlla o bé fins que el taulell estigui ple.
Les fitxes d'un jugador les representarem amb una X i les de l'altre amb una O.
Al final es mostrarà un missatge dient el resultat de la partida: guanyen les X, guanyen les O o empat.
Exemple
Les línies que comencen per > són les que ha escrit l'usuari
> 0 0
X · ·
· · ·
· · ·
> 1 1
X · ·
· 0 ·
· · ·
> 0 1
X X ·
· 0 ·
· · ·
> 2 2
X X ·
· 0 ·
· · 0
> 0 3
X X X
· 0 ·
· · 0
guanyen les X
SquashCounter
Volem fer un marcador per un partit de squash.
Encara que hi ha diferents formes de puntuar, una de les més utilitzades pels jugadors amateurs és jugar al millor de cinc sets, és a dir, el jugador que abans guanyi tres sets guanya el partit i acaba el joc. Els sets es juguen a 9 punts:
- Cal guanyar amb un avantatge de com a mínim dos punts. Si s'arriba a un empat a 8, guanyarà el que arribi a 10. Si s'empata a 9, es jugarà a 11, etc…
- Els punts només pugen a el marcador si el que guanya el punt tenia el servei. És a dir, s'utilitza el que es coneix com a "recuperació del servei". Si el jugador A saca i guanya el punt, aquest puja al seu marcador. Però si el punt el guanya B, atès que no ha sacat ell, recupera el servei però no puntua.
- El jugador que guanya un set comença sacant en el següent.
Ens demanen esbrinar el marcador final de cada un dels sets d'un partit d'esquaix coneixent els guanyadors de tots els punts. És possible que el partit no acabi a causa de que el lloguer de la pista arriba a la seva fi. En aquest cas es presentarà el resultat parcial.
L'usuari primer introduirà el número de partits a introduïr.
De cada partit, escriurà qui guanya cada punt i finalitzarà amb una F.
Input
4
AAAAAAAAAF
BBBBBBBBBBF
AAAAAAAABBBBBBBBBBAABBBABBF
BF
Output
9-0
0-9
9-11 0-1
0-0
Bibliografia
Problema extret de Partido de squash d'Acepta el Reto.
Exercicis de repàs
LibraryBooksApp
Volem fer un petit programa per guardar la informació dels diferents llibres que té una biblioteca
Per introdurir el llibres, primer introduirà el número de llibres i la informació de cada llibre (títol, autor, número de pàgines).
Quan acabi volem que mostri la llista de llibres i el número total, el llibre més curt i el llibre més llarg (en cas d'empat el primer que hagi introduït).
Input
3
Lorem
Ot Pi
56
Ipsum
Mar Om
77
Dolor
Lin Om
42
Output
Llibres
------------
Lorem - Ot Pi - 56 pàgines
Ipsum - Mar Om - 77 pàgines
Dolor - Lin Om - 42 pàgines
------------
Total: 3 llibres
Llibre més curt: Dolor - Lin Om - 42 pàgines
Llibre més llarg: Ipsum - Mar Om - 77 pàgines
LibrarySectionsApp
Desde la mateixa biblioteca ens informen que volen tenir el llibres organitzats per seccions. Cada secció té una petita col·lecció de llibres
L'usuari primer introduirà el nombre de seccions.
Per cada secció en volen introduir el nom i els llibres (amb el mateix format que l'exercici anterior).
Un cop introduïts, volem imprimir, de cada secció el número de llibres, el llibre més curt i el llibre més llarg
Input
2
Cuina
3
Lorem
Ot Pi
56
Ipsum
Mar Om
77
Dolor
Lin Om
42
Informàtica
1
Java
Fin Max
66
Output
Cuina
------------
N. llibres: 3
Llibre més curt: Dolor - Lin Om - 42 pàgines
Llibre més llarg: Ipsum - Mar Om - 77 pàgines
Informàtica
------------
N. llibres: 1
Llibre més curt: Java - Fin Max - 66 pàgines
Llibre més llarg: Java - Fin Max - 66 pàgines