Commit e22963bd authored by Sara Nicastro's avatar Sara Nicastro

aggiunti altri esercizi

parent 58602fd8
public class Conversione{
static double a=1.1;
int intero;
public Conversione(int a){
this.intero=a;
}
static int operaConversione(double a){
int b=(int)a;
return b;
}
public static void main(String[] args){
int b;
Conversione conversione=new Conversione(operaConversione(a));
//System.out.println(conversione.a);
//b=casting.operaCast(conversione.a);
System.out.println(conversione.intero);
}
}
public class DoWhile{
public static void main(String[] args){
int tabellina=5;
int contatore=0;
int i=1;
do {
contatore=tabellina*i;
System.out.println(contatore);
i=i+1;
} while (i<11);
}
}
/*
NOTA SUL CODICE CHE SEGUE, COMMENTATO: 'e.intero.somma(intero);' è scorretto perché il metodo somma è parte dell'interfaccia di Esercizi e non di 'intero' che è un suo campo. Pertanto ok che non compili; ma come interpretare il messaggio di errore 'int cannot be dereferenced'?
*/
/*
A FINE FILE: Segue del codice alternativo in cui il metodo somma si può applicare ad 'intero'. Per farlo trasformo intero in un oggetto e uso la composizione in Esercizi per mettere intero come suo campo.
*/
/*
public class Esercizi{
public static int intero=5;
public void stampa(){
System.out.println("ciao");
}
void somma(int intero){
int i;
System.out.println(intero);
for(i=0; i<10; i++)
{intero+= 1;
System.out.println(intero);}
}
public static void main(String [] args){
Esercizi e = new Esercizi();
e.stampa();
//e.intero.somma(intero);
e.somma(e.intero);
}
}
*/
class Intero{
private static int intero;
public Intero(int intero){
this.intero=intero;
}
public void somma(int interoSomma){
System.out.println(intero + " metodo della classe che diverrà un campo (composizione di classi )");
intero=intero+interoSomma;
System.out.println(intero + " metodo della classe che diverrà un campo (composizione di classi)");
}
}
public class Esercizi{
private static Intero campoIntero=new Intero(5);
private int intero=5;
public void stampa(){
System.out.println("stampo");
}
void somma(int intero){
int i;
for(i=0; i<10; i++){
if(i<1){
System.out.println(" ");
System.out.println("metodo della classe Esercizi");
}
else if(i>0){intero+= 1;
System.out.println(intero);}
}
}
public static void main(String[] args){
Esercizi e = new Esercizi();
e.stampa();
e.campoIntero.somma(10);
e.somma(e.intero);
}
}
/*
SCOPO: scrivo una classe base con metodo stampa(). Scrivo una classe derivata che sovrascrive il metodo stampa. Fare upcasting per far sì che venga utilizzato da parte della classe derivata il metodo base oppure il metodo sovrascritto.
*/
/*
NOTA: non compila per errore di stackOverFlow in corrispondenza dell'istanziazione di es2.
*/
class ClasseBase{
public static void stampa(){
System.out.println("io sono il metodo della classe base");
}
}
public class Esercizi2 extends ClasseBase{
ClasseBase cb = new ClasseBase();
Esercizi2 es2 = new Esercizi2();
public static void stampa(){
System.out.println("io sono il metodo sovrascritto della classe derivata");
}
public static void main(String[] args){
ClasseBase es3 = new Esercizi2(); // upcasting?
es3.stampa(); //dovrebbe stampare 'io sono il metodo della classe base'
}
/*
public static void main(String[] args){
stampa(); //dovrebbe stampare 'io sono il metodo sovrascritto della classe derivata'
(ClasseBase) stampa(); // vorrei stampasse 'io sono il metodo della classe base'
es2.stampa(); //dovrebbe stampare 'io sono il metodo sovrascritto della classe derivata'
(ClasseBase) es2.stampa; // vorrei stampasse 'io sono il metodo della classe base'
}
*/
}
/*
SCOPO: stampare una matrice composta di 0 ed 1 alternati. Il file compila ma non so come cambiare il format dell'output su schermo in modo tale che il multiarray venga stampato riga per riga.
*/
//modificare il format con cui viene stampata la matrice: vorrei stampare riga per riga
package packageArray;
public class MultiArray extends TuttoSugliArray{
int[][] matrice;
public MultiArray(int intero, int numeroRiga, int lunghezzaRiga){
super(intero);
matrice = new int[numeroRiga][lunghezzaRiga];
System.out.println("Costruisco MultiArray");
}
//matrice.length=numeroRiga;
//matrice[i].length=lunghezzaRiga della riga i-esima.
public void setMultiArray(){
int i,j;
for(i=0; i<matrice.length; i++){
for(j=0; j<matrice[i].length; j++){
if(i%2==0 && j%2==0){matrice[i][j]=0 ;}
else if(i%2==0 && j%2!=0){matrice[i][j]=1;}
else if(i%2!=0 && j%2==0){matrice[i][j]=1;}
else{matrice[i][j]=0;} // i%2!=0 && j%2!=0
System.out.println(matrice[i][j]);
} // fine for-j
} //fine for - i
}//fine set()
public static void main(String[] args){
MultiArray multi = new MultiArray(5,5,5);
multi.setMultiArray();
}
}
public class OperazioniAritmetiche{
int intero1;
int intero2;
double double1;
public OperazioniAritmetiche(int intero1, int intero2){
this.intero1=intero1;
this.intero2=intero2;
this.double1=(double)intero1/(double)intero2;
System.out.println("costruisco" + " " + intero1 + " " + intero2 + " " + double1);
}
public static void main(String[] args){
OperazioniAritmetiche opAr=new OperazioniAritmetiche(5,11);
}
}
/*
SCOPO: fare esercizio sul costrutto switch-case
*/
public class SwitchCase{
int intero;
public SwitchCase(int intero){
this.intero=intero;
}
public static void main(String[] args){
SwitchCase switchcase = new SwitchCase(5);
switch(switchcase.intero){
case 2: System.out.println("intero=" + switchcase.intero);
default: System.out.println("default");
}
switch(switchcase.intero){
case 2: System.out.println("intero=" + switchcase.intero);
default: switch(switchcase.intero){
case 5: System.out.println("ciao");
case 6: System.out.println("ciao");
case 7: System.out.println("ciao");
case 8: System.out.println("ciao");
break;
default: System.out.println("default");
}
}
}
}
/*
public class SwitchCase{
static int c=2;
public static void main(String[] args){
switch(c){
case 1: System.out.println("c=1");
case 2: System.out.println("c=2");
case 3: System.out.println("c=3");
default: System.out.println("qualcosa è andato male:" + c);
}
}
}
*/
public abstract class TestAstratto{
int intero;
public TestAstratto(int intero){
this.intero=intero;
System.out.println("costruisco istanza con parametro" + intero);
}
public static void main(String[] args){
TestAstratto test= new TestAstratto(5);
}
}
// SCOPO: dichiarare Array, stampare array, etc etc. Tutto sugli array.
package packageArray;
public class TuttoSugliArray {
//dichiaro un array di int, uno di double, uno di String:
int[] intero;
double[] doppi;
String[] stringa;
String[] settimana = {"lun", "mar", "mer", "gio", "ven", "sab", "dom"};
enum Giorni {lun, mar, mer, gio, ven, sab, dom}
//costruttore che alloca gli array utilizzando --> nome = new Tipo[numero];
public TuttoSugliArray(int lunghezza){
intero = new int[lunghezza];
doppi = new double[lunghezza];
stringa = new String[lunghezza];
System.out.println("Costruisco TuttoSugliArray");
}
public void setIntero(){
int i;
for(i=0; i<intero.length; i ++){
intero[i]=i; }
}
public void setDoppi(){
int i;
for (i=0; i<doppi.length; i++){
//for(i=doppi.length; i>1; i--){
doppi[i]=3.14/(double)i; }
}
public void setStringa(){
int i;
for(i=0; i<stringa.length; i++){
stringa[i]="hello octopuses!"; }
}
public void stampaArray(TuttoSugliArray tutto){
int i;
for(i=0; i<intero.length; i++){
System.out.println(intero[i] + " " + doppi[i] + " " + stringa[i] + " " + settimana[i]); }
}
public static void main(String[] args){
TuttoSugliArray tutto = new TuttoSugliArray(5);
tutto.setIntero();
tutto.setDoppi();
tutto.setStringa();
tutto.stampaArray(tutto);
}
}
/*
COSÌ NON FUNZIONA
public TuttoSugliArray(int lunghezzaArray){
intero.lenght=lunghezzaArray;
doppi.lenght=lunghezzaArray;
stringa.lenght=lunghezzaArray;
}
*/
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment