Exercicis de Funcions estàtiques i data classes

(*) elteuusuari correspon a la direcció de correu eltectrònic del centre, sense punts, fins a @itb.cat

Sumari

  1. RectangleSize
    1. Input
    2. Output
  2. PeopleCounter
    1. Input
    2. Output
  3. MostDistantAge
    1. Input
    2. Output
  4. BuyList
    1. Input
    2. Output
  5. Lamp
    1. Exemple
  6. CampSiteOrganizer
    1. Exemple
  7. BasicRobot
    1. Exemple
  8. Exercicis avançats
    1. ThreeInARow
      1. Exemple
    2. SquashCounter
      1. Input
      2. Output
      3. Bibliografia
  9. Exercicis de repàs
    1. LibraryBooksApp
      1. Input
      2. Output
    2. LibrarySectionsApp
      1. Input
      2. Output

RectangleSize

Volem fer un programa que ens digui l'area de rectangles

Nota: No pots imprimir els rectangles fins a que s'hagin llegit tots.

Input

2
2.0 4.0
3.5 5.4

Output

Un rectangle de 2.0 x 4.0 té 8.0 d'area i 12 de perímetre.
Un rectangle de 3.5 x 5.4 té 18.9 d'area i 17.8 de perímetre.

PeopleCounter

Volem fer un programa que ens digui la quantitat de gent que hi ha en un edifici.
Quan ja hagi visitat totes les sales introduirà -1

Input

5 3 4 7 8 -1

Output

27

MostDistantAge

Volem fer un programa que donada les edats de totes les persones d'un concert ens digui la diferència entre la persona més gran i la més jove. Per fer-ho l'usuari introduirà les edats de les persones. Quan ja hagi acabat introduirà -1

Input

15 54 23 48 57 23 48 10 48 79 85 34 78 -1

Output

75

BuyList

Fes un programa que ens ajudi a crear una llista de la compra.
L'suauri introduirà primer el nombre de productes.
Per cada producte el nom, el preu i la quantitat que en vol comprar.
Quan acabi imprimeix el resum de la compra.

Input

4
1 Macarrons 2.35
8 Peres 0.35
1 Llet 1.32
2 Galetes 1.23

Output

-------- Compra --------
1 Macarrons (2.35€) - 2.35€
8 Peres (0.35€) - 2.80€
1 Llet (1.32€) - 1.32€
2 Galetes (1.23€) - 2.46€
-------------------------
Total: 8.93€
-------------------------

Lamp

Implementa un programa que simule una lampara, amb les accions:

Després de cada acció mostra si la lampara està encesa.

Exemple

Les línies que comencen per > són el que 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 camping. Volem tenir controlat quantes parceles tenim pelenes 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 el 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 plà 2D.
El robot ha de guardar la seua 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:

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

Exercicis avançats

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 el 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 a el millor de cinc sets. El jugador que abans guanyi tres sets guanya el partit (i en aquest moment, òbviament, aquest acaba). Els sets es juguen a 9 punts amb tres matisacions:

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 introudits, volem tenir, de cada secció imprimir 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