Problemi per la lezione del 25/10
Nei seguenti problemi, per leggere dati di tipo int
(intero) o double
(floating point) potete
usare opportuni metodi forniti dai ConsoleInputManager
e analoghi a readLine()
(quest'ultimo
legge una stringa). Consultate la documentazione delle API fornite con il libro per sapere come si chiamano questi metodi.
- Problemi sull'uso della selezione
- [EquazioniIIGrado.java] Scrivete un programma che, dopo aver letto i coefficienti a, b
e c di un'equazione di II grado ne stampi le soluzioni, distinguendo i seguenti
casi: nessuna soluzione reale; due soluzioni coincidenti; due soluzioni reali distinte. Per calcolare la radice
quadrata di un'espressione
double
, dovete scrivere:Math.sqrt(...)
.
- [EquazioniIIGrado.java] Scrivete un programma che, dopo aver letto i coefficienti a, b
e c di un'equazione di II grado ne stampi le soluzioni, distinguendo i seguenti
casi: nessuna soluzione reale; due soluzioni coincidenti; due soluzioni reali distinte. Per calcolare la radice
quadrata di un'espressione
- Uso della documentazione delle API
- [StringaPiuLunga.java] La classe
String
fa parte delle API standard di Java (si trova nel pacchettojava.lang
): le sue istanze rappresentano (non sorprendentemente) stringhe, cioè sequenze di caratteri. Uno dei metodi forniti dalla classe fornisce il numero di caratteri di cui la stringa è costituita: quanti argomenti avrà secondo voi questo metodo? Cercate il metodo consultando la documentazione della classe, e scrivete un programma che legga due stringhe e stampi la più lunga. - [Prefisso.java] Assumete che i numeri di telefoni fissi inizino con 0, i numeri dei telefoni
Vodafone inizino con 34 e i numeri di telefoni TIM con 33 (e supponete, senza perdita di generalità, che Wind e 3
non esistano e che la number portability non sia mai stata inventata). Scrivete un programma che legga un numero
di telefono (come stringa) e che stampi se si tratta di un numero fisso, Vodafone o TIM. Per farlo avrete bisogno
di un metodo (della classe
String
) che determini se una stringa inizia con un certo prefisso: cercatelo consultando la documentazione.
- [StringaPiuLunga.java] La classe
- Problemi sull'uso dei cicli for
- [MediaPari.java] Scrivete un programma che, dopo aver letto un intero n, legga n numeri interi, e alla fine stampi la loro media (double) e il numero di valori pari inseriti.
- [Potenza.java] Scrivete un programma che, dati due interi n e m, calcoli nm mediante prodotti successivi.
- [TabellaPotenze.java] Scrivete un programma che, dopo aver letto n e m stampi una tabella di m righe e n colonne, dove la prima riga contiene le prime n potenze intere positive di 1, la seconda riga le potenze di 2, la terza riga le potenze di 3 ecc.
- [DivisoriPropri.java] Scrivete un programma che, dopo aver letto un intero, ne stampi i divisori propri.
- [TestPerfezione.java] Scrivete un programma che determini se un intero è perfetto (cioè, se coincide con la somma dei suoi divisori propri).
- [StampaPerfetti.java] Scrivete un programma che stampi i primi n numeri perfetti (dopo aver letto n).
- Problemi sull'uso dei cicli while e do-while
- [MediaPari2.java] Scrivete un programma che legga una sequenza di numeri interi terminata da 0, e alla fine stampi la loro media (double) e il numero di valori pari inseriti (lo 0 non va considerato).
- [RadiceIntera.java] Scrivete un programma che, dato un intero positivo n, calcoli la sua radice intera, cioè il più grande x tale che x2≤n.
- [Euclide.java] Implementate l'algoritmo di Euclide per il calcolo del Massimo Comune Divisore di due interi.
- [Minimo.java] Scrivete un programma che calcoli il minimo di una sequenza di interi terminata da 0.
- [CifraBinaria.java] Scrivete un programma che dati due interi n e k, calcoli e stampi la k-esima cifra binaria (da destra) di n.