際際滷

際際滷Share a Scribd company logo
www.googleslidesppt.com _ 30+ Ready Made Google 際際滷s & PowerPoint Presentation for Free
Dal C/C++ a Java (in 3*30 minuti)
Se sapete gi programmare...non riscopriamo l'acqua calda!
Parte 3
Marcello Missiroli (prof.missiroli@gmail.com)
Di
che
si
tratta?
01
02
03
04
Ipotesi
Voi conoscete gi un linguaggio di
programmazione (C e/o C++)
Tesi
Non occorre rispiegare tutto daccapo:
applicheremo un insegnamento differenziale
Metodologia
Trasformeremo un programma che ben
conoscete (in C/C++) in un programma Java
Verifica
Poi toccher a voi convertire un programma!
Rubrica
Grande classico, nel quale si introducono
struct e array.
Partiremo da un codice gentilmente offerto
dall'universit di Bologna (竪 C e non C++, ma
poco cambia ai nostri fini).
Partiamo con lo scheletro di un programma
Java funzionante (eliminando quindi gi
include e namespace).
Rubrica (C++)
package rubrica;
public class Rubrica {
public static void main(String[] args) {
}
}
Dichiarazione di variabili.
Passo 1
package rubrica;
public class Rubrica {
#define N 4
struct studente{
char Nome[20];
char Cognome[20];
int Voto;};
void leggi(int n, struct studente Vet[]);
float media(int n, struct studente Vet[]);
public static void main(String[] args) {
int i; struct studente V[N];
leggi(N,V);
for(i=0;i<N;i++){
printf("%sn",V[i].Nome);
printf("%sn", V[i].Cognome); }
printf("nVoto medio: %fn",media(N,V));
}
}
Conversioni note e dichiarazioni di variabili
Passo 1
package rubrica;
public class Rubrica {
public static final int N = 4;
struct studente{
char Nome[20];
char Cognome[20];
int Voto;};
void leggi(int n, struct studente Vet[]);
float media(int n, struct studente Vet[]);
public static void main(String[] args) {
int i; struct studente V[N];
leggi(N,V);
for(i=0;i<N;i++){
System.out.print(V[i].Nome+" ");
System.out.println(V[i].Cognome);}
System.out.println("Voto medio:
"+media(N,V));}
}
Conversioni note e dichiarazioni di variabili
Non esiste equivalente per il define. Per le
costanti si usano variabili modificate da final
Le struct non esistono,
esistono gli OGGETTI,
determinanti dalle classi.
Un oggetto richiede un
file a parte.
Occupiamoci di questo
Passo 2
package rubrica;
public class Studente {
char Nome[20];
char Cognome[20];
int Voto;};
}
Un oggetto equivalente alla struct
Passo 2
package rubrica;
public class Studente {
String nome;
String cognome;
int voto;
}
Un oggetto equivalente alla struct
Qualche convenzione sui nomi:
Package: iniziano con minuscola
Classi: iniziano con Maiuscola
Variabili: iniziano con minuscola,
tranne le final, in MAIUSCOLO
Si usa il CamelCase.
Passo 2
package rubrica;
public class Rubrica {
public static final int N = 4;
struct studente{
char Nome[20];
char Cognome[20];
int Voto;};
void leggi(int n, struct studente Vet[]);
float media(int n, struct studente Vet[]);
public static void main(String[] args) {
int i; struct studente V[N];
leggi(N,V);
for(i=0;i<N;i++){
System.out.print(V[i].Nome+" ");
System.out.println(V[i].Cognome);}
System.out.println("Voto medio:
"+media(N,V));}
}
Torniamo al file originale e adattiamo.
Passo 2
package rubrica;
public class Rubrica {
public static final int N = 4;
void leggi(int n, struct studente Vet[]);
float media(int n, struct studente Vet[]);
public static void main(String[] args) {
int i;
Studente v[];
v=new Studente[N];
leggi(N,V);
for(i=0;i<N;i++){
System.out.print(V[i].Nome+" ");
System.out.println(V[i].Cognome);}
System.out.println("Voto medio:
"+media(N,V));}
}
Torniamo al file originale e adattiamo.
Passo 2
package rubrica;
public class Rubrica {
public static final int N = 4;
void leggi(int n, struct studente Vet[]);
float media(int n, struct studente Vet[]);
public static void main(String[] args) {
int i;
Studente v[];
v=new Studente[N];
leggi(N,V);
for(i=0;i<N;i++){
System.out.print(V[i].Nome+" ");
System.out.println(V[i].Cognome);}
System.out.println("Voto medio:
"+media(N,V));}
}
Torniamo al file originale e adattiamo.Studente non deve essere
Importato perch辿 parte dello stesso
progetto e package
Per usare un array occorrono due istruzioni
Dichiarazione (come 竪 fatta)
Istanziazione (quanti elementi)
Corollario: tutti gli array
in java sono dinamici
Passo 3
void leggi(int n, struct studente Vet[]){
int i,j;
for(i=0;i<n;i++){
printf("Inserisci Nome, Cognome e
Voto");
scanf("%s",Vet[i].Nome);
scanf("%s",Vet[i].Cognome);
scanf("%d",&Vet[i].Voto);
}
}
float media(int n, struct studente Vet[]){
int i;
float m=0.0;
for(i=0;i<n;i++)
m=m+Vet[i].Voto;
return m/n;
}
Tocchi finali: le due funzioni/metodi.
Passo 3
static void leggi(int n, Studente vet[]){
int i,j; Scanner in = new
Scanner(System.in);
for(i=0;i<n;i++){
System.out.println("Inserisci Nome,
Cognome e Voto");
//ATTENZIONE QUI!
vet[i].nome=in.nextLine();
vet[i].cognome=in.nextLine();
vet[i].voto=in.nextInt();
}
}
static float media(int n,Studente vet[]){
int i;
float m=0.0f;
for(i=0;i<n;i++)
m=m+vet[i].voto;
return m/n;}
Tocchi finali: adattiamo parametri...
Passo 3
static void leggi(int n, Studente vet[]){
int i,j; Scanner in = new
Scanner(System.in);
for(i=0;i<n;i++){
System.out.println("Inserisci Nome,
Cognome e Voto");
vet[i]=new Studente();
vet[i].nome=in.nextLine();
vet[i].cognome=in.nextLine();
vet[i].voto=in.nextInt();
}
}
static float media(int n,Studente vet[]){
int i;
float m=0.0f;
for(i=0;i<n;i++)
m=m+vet[i].voto;
return m/n;}
Tocchi finali: adattiamo parametri...
MOLTO IMPORTANTE:
In Java, un array di oggetti non riserva
alcuno spazio di memorizzazione!
Peranto, ogni oggetto va inizializzato
prima di esere usato.
Passo 3
static void leggi(int n, Studente vet[]){
int i,j; Scanner in = new
Scanner(System.in);
for(i=0;i<n;i++){
System.out.println("Inserisci Nome,
Cognome e Voto");
vet[i]=new Studente();
vet[i].nome=in.nextLine();
vet[i].cognome=in.nextLine();
vet[i].voto=in.nextInt();
}
}
static float media(int n,Studente vet[]){
int i;
float m=0.0f;
for(i=0;i<n;i++)
m=m+vet[i].voto;
return m/n;
Tocchi finali: e l'I/O
Agenda Style
Riassunto
l Esistono classi, e struct
l Costanti definite tramite
const o #define.
l Array statici (dinamici con
difficolt)
l
C/C++
l Non esistono struct, solo
classi di oggetti.
l Array dinamici (non esistono
statici). Se si tratta di
oggetti, larray non
inizializza lo spazio dei
singoli oggetti (riferimenti)
l Non esistono #define
Java
Agenda Style
Sorgenti
http://lia.deis.unibo.it/Courses/L
abA0102/esercitazioni/Sol-
sett7.html
Originale C++
https://pastebin.com/iw7pHGui
Versione Java
Avete
le
basi!
Conoscenze del
C/C++
Conoscenze
minimali di Java
Algoritmica
Esercizi
Java 竪 un
linguaggio
complesso, che
richiede una
buona conoscenza
del paradigna di
programmazione a
oggetti! Buon
lavoro!
E solo linizio...
Thats all folks
Ora si parte sul serio
Grazie
per l'attenzione
Spero di essere stato chiaro....
Agenda Style
Compito
CONVERTITE O SCRIVETE UN
PROGRAMMA CHE LEGGE UNA
STRINGA DI CARATTERI E NE
STAMPA LA SUA CODIFICA IN
LINGUAGGIO MORSE
C++
?
Java

More Related Content

Similar to Dal c a Java (3/3) (20)

Lezione02
Lezione02Lezione02
Lezione02
robynho86
Lezione02
Lezione02Lezione02
Lezione02
robynho86
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013
Matteo Valoriani
Java Lezione 1
Java Lezione 1Java Lezione 1
Java Lezione 1
Sergio Ronchi
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5
Matteo Baccan
Qt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immaginiQt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immagini
Paolo Sereno
Terza lezioneandroid
Terza lezioneandroidTerza lezioneandroid
Terza lezioneandroid
Silvano Natalizi - ITIS ALESSANDRO VOLTA PERUGIA
Lezione design patterns 2011 (Peron)
Lezione design patterns 2011 (Peron)Lezione design patterns 2011 (Peron)
Lezione design patterns 2011 (Peron)
lukebonham
What's new in C# 7
What's new in C# 7What's new in C# 7
What's new in C# 7
Marco Parenzan
Vb.Net
Vb.NetVb.Net
Vb.Net
Maurizio Farina
Pycon Jungle
Pycon JunglePycon Jungle
Pycon Jungle
guest6b08a5
Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012
STELITANO
Design Pattern
Design PatternDesign Pattern
Design Pattern
Giuseppe Dell'Abate
Two months of Kotlin
Two months of KotlinTwo months of Kotlin
Two months of Kotlin
Erik Minarini
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
Pasquale Paola
Java lezione2
Java lezione2Java lezione2
Java lezione2
Maurizio Cozzetto
Googletest, tdd e mock
Googletest, tdd e mockGoogletest, tdd e mock
Googletest, tdd e mock
yuroller
Programmazione a oggetti tramite la macchina del caff辿 (pt. 2)
Programmazione a oggetti tramite la macchina del caff辿 (pt. 2)Programmazione a oggetti tramite la macchina del caff辿 (pt. 2)
Programmazione a oggetti tramite la macchina del caff辿 (pt. 2)
Marcello Missiroli
Test Bank Starting Out with Java: Early Objects, 5/E Tony Gaddis
Test Bank Starting Out with Java: Early Objects, 5/E Tony GaddisTest Bank Starting Out with Java: Early Objects, 5/E Tony Gaddis
Test Bank Starting Out with Java: Early Objects, 5/E Tony Gaddis
denulekikki
Lezione02
Lezione02Lezione02
Lezione02
robynho86
Lezione02
Lezione02Lezione02
Lezione02
robynho86
Corso pratico di C# - 2013
Corso pratico di C# - 2013Corso pratico di C# - 2013
Corso pratico di C# - 2013
Matteo Valoriani
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5
Matteo Baccan
Qt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immaginiQt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immagini
Paolo Sereno
Lezione design patterns 2011 (Peron)
Lezione design patterns 2011 (Peron)Lezione design patterns 2011 (Peron)
Lezione design patterns 2011 (Peron)
lukebonham
Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012Soluzione esame b del 13 giugno 2012
Soluzione esame b del 13 giugno 2012
STELITANO
Two months of Kotlin
Two months of KotlinTwo months of Kotlin
Two months of Kotlin
Erik Minarini
Riepilogo Java C/C++
Riepilogo Java C/C++Riepilogo Java C/C++
Riepilogo Java C/C++
Pasquale Paola
Googletest, tdd e mock
Googletest, tdd e mockGoogletest, tdd e mock
Googletest, tdd e mock
yuroller
Programmazione a oggetti tramite la macchina del caff辿 (pt. 2)
Programmazione a oggetti tramite la macchina del caff辿 (pt. 2)Programmazione a oggetti tramite la macchina del caff辿 (pt. 2)
Programmazione a oggetti tramite la macchina del caff辿 (pt. 2)
Marcello Missiroli
Test Bank Starting Out with Java: Early Objects, 5/E Tony Gaddis
Test Bank Starting Out with Java: Early Objects, 5/E Tony GaddisTest Bank Starting Out with Java: Early Objects, 5/E Tony Gaddis
Test Bank Starting Out with Java: Early Objects, 5/E Tony Gaddis
denulekikki

More from Marcello Missiroli (20)

Workshop: Introduzione ad TDD
Workshop: Introduzione ad TDDWorkshop: Introduzione ad TDD
Workshop: Introduzione ad TDD
Marcello Missiroli
Variabili
VariabiliVariabili
Variabili
Marcello Missiroli
Sviluppo degli algoritmi
Sviluppo degli algoritmiSviluppo degli algoritmi
Sviluppo degli algoritmi
Marcello Missiroli
5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo
Marcello Missiroli
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
Marcello Missiroli
Big O Notation
Big O NotationBig O Notation
Big O Notation
Marcello Missiroli
Insegnare Agile
Insegnare AgileInsegnare Agile
Insegnare Agile
Marcello Missiroli
The Sequel to sql
The Sequel to sqlThe Sequel to sql
The Sequel to sql
Marcello Missiroli
L'avvento del programmatore sociale
L'avvento del programmatore socialeL'avvento del programmatore sociale
L'avvento del programmatore sociale
Marcello Missiroli
Il ciclo for
Il ciclo forIl ciclo for
Il ciclo for
Marcello Missiroli
Lo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in JavaLo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in Java
Marcello Missiroli
Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)
Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)
Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)
Marcello Missiroli
Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
Marcello Missiroli
Ruby in 25 minuti
Ruby in 25 minutiRuby in 25 minuti
Ruby in 25 minuti
Marcello Missiroli
Moodle: i compiti (homework)
Moodle: i compiti (homework)Moodle: i compiti (homework)
Moodle: i compiti (homework)
Marcello Missiroli
Uefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il maleUefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il male
Marcello Missiroli
Corso Moodle: presentazione
Corso Moodle: presentazioneCorso Moodle: presentazione
Corso Moodle: presentazione
Marcello Missiroli
Corso Moodle: perch辿?
Corso Moodle: perch辿?Corso Moodle: perch辿?
Corso Moodle: perch辿?
Marcello Missiroli
Il sistema binario
Il sistema binarioIl sistema binario
Il sistema binario
Marcello Missiroli
Routing dinamico
Routing dinamicoRouting dinamico
Routing dinamico
Marcello Missiroli
Workshop: Introduzione ad TDD
Workshop: Introduzione ad TDDWorkshop: Introduzione ad TDD
Workshop: Introduzione ad TDD
Marcello Missiroli
5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo
Marcello Missiroli
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
Marcello Missiroli
L'avvento del programmatore sociale
L'avvento del programmatore socialeL'avvento del programmatore sociale
L'avvento del programmatore sociale
Marcello Missiroli
Lo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in JavaLo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in Java
Marcello Missiroli
Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)
Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)
Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)
Marcello Missiroli
Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
Marcello Missiroli
Moodle: i compiti (homework)
Moodle: i compiti (homework)Moodle: i compiti (homework)
Moodle: i compiti (homework)
Marcello Missiroli
Uefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il maleUefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il male
Marcello Missiroli
Corso Moodle: presentazione
Corso Moodle: presentazioneCorso Moodle: presentazione
Corso Moodle: presentazione
Marcello Missiroli

Dal c a Java (3/3)

  • 1. www.googleslidesppt.com _ 30+ Ready Made Google 際際滷s & PowerPoint Presentation for Free Dal C/C++ a Java (in 3*30 minuti) Se sapete gi programmare...non riscopriamo l'acqua calda! Parte 3 Marcello Missiroli (prof.missiroli@gmail.com)
  • 2. Di che si tratta? 01 02 03 04 Ipotesi Voi conoscete gi un linguaggio di programmazione (C e/o C++) Tesi Non occorre rispiegare tutto daccapo: applicheremo un insegnamento differenziale Metodologia Trasformeremo un programma che ben conoscete (in C/C++) in un programma Java Verifica Poi toccher a voi convertire un programma!
  • 3. Rubrica Grande classico, nel quale si introducono struct e array. Partiremo da un codice gentilmente offerto dall'universit di Bologna (竪 C e non C++, ma poco cambia ai nostri fini). Partiamo con lo scheletro di un programma Java funzionante (eliminando quindi gi include e namespace).
  • 4. Rubrica (C++) package rubrica; public class Rubrica { public static void main(String[] args) { } } Dichiarazione di variabili.
  • 5. Passo 1 package rubrica; public class Rubrica { #define N 4 struct studente{ char Nome[20]; char Cognome[20]; int Voto;}; void leggi(int n, struct studente Vet[]); float media(int n, struct studente Vet[]); public static void main(String[] args) { int i; struct studente V[N]; leggi(N,V); for(i=0;i<N;i++){ printf("%sn",V[i].Nome); printf("%sn", V[i].Cognome); } printf("nVoto medio: %fn",media(N,V)); } } Conversioni note e dichiarazioni di variabili
  • 6. Passo 1 package rubrica; public class Rubrica { public static final int N = 4; struct studente{ char Nome[20]; char Cognome[20]; int Voto;}; void leggi(int n, struct studente Vet[]); float media(int n, struct studente Vet[]); public static void main(String[] args) { int i; struct studente V[N]; leggi(N,V); for(i=0;i<N;i++){ System.out.print(V[i].Nome+" "); System.out.println(V[i].Cognome);} System.out.println("Voto medio: "+media(N,V));} } Conversioni note e dichiarazioni di variabili Non esiste equivalente per il define. Per le costanti si usano variabili modificate da final Le struct non esistono, esistono gli OGGETTI, determinanti dalle classi. Un oggetto richiede un file a parte. Occupiamoci di questo
  • 7. Passo 2 package rubrica; public class Studente { char Nome[20]; char Cognome[20]; int Voto;}; } Un oggetto equivalente alla struct
  • 8. Passo 2 package rubrica; public class Studente { String nome; String cognome; int voto; } Un oggetto equivalente alla struct Qualche convenzione sui nomi: Package: iniziano con minuscola Classi: iniziano con Maiuscola Variabili: iniziano con minuscola, tranne le final, in MAIUSCOLO Si usa il CamelCase.
  • 9. Passo 2 package rubrica; public class Rubrica { public static final int N = 4; struct studente{ char Nome[20]; char Cognome[20]; int Voto;}; void leggi(int n, struct studente Vet[]); float media(int n, struct studente Vet[]); public static void main(String[] args) { int i; struct studente V[N]; leggi(N,V); for(i=0;i<N;i++){ System.out.print(V[i].Nome+" "); System.out.println(V[i].Cognome);} System.out.println("Voto medio: "+media(N,V));} } Torniamo al file originale e adattiamo.
  • 10. Passo 2 package rubrica; public class Rubrica { public static final int N = 4; void leggi(int n, struct studente Vet[]); float media(int n, struct studente Vet[]); public static void main(String[] args) { int i; Studente v[]; v=new Studente[N]; leggi(N,V); for(i=0;i<N;i++){ System.out.print(V[i].Nome+" "); System.out.println(V[i].Cognome);} System.out.println("Voto medio: "+media(N,V));} } Torniamo al file originale e adattiamo.
  • 11. Passo 2 package rubrica; public class Rubrica { public static final int N = 4; void leggi(int n, struct studente Vet[]); float media(int n, struct studente Vet[]); public static void main(String[] args) { int i; Studente v[]; v=new Studente[N]; leggi(N,V); for(i=0;i<N;i++){ System.out.print(V[i].Nome+" "); System.out.println(V[i].Cognome);} System.out.println("Voto medio: "+media(N,V));} } Torniamo al file originale e adattiamo.Studente non deve essere Importato perch辿 parte dello stesso progetto e package Per usare un array occorrono due istruzioni Dichiarazione (come 竪 fatta) Istanziazione (quanti elementi) Corollario: tutti gli array in java sono dinamici
  • 12. Passo 3 void leggi(int n, struct studente Vet[]){ int i,j; for(i=0;i<n;i++){ printf("Inserisci Nome, Cognome e Voto"); scanf("%s",Vet[i].Nome); scanf("%s",Vet[i].Cognome); scanf("%d",&Vet[i].Voto); } } float media(int n, struct studente Vet[]){ int i; float m=0.0; for(i=0;i<n;i++) m=m+Vet[i].Voto; return m/n; } Tocchi finali: le due funzioni/metodi.
  • 13. Passo 3 static void leggi(int n, Studente vet[]){ int i,j; Scanner in = new Scanner(System.in); for(i=0;i<n;i++){ System.out.println("Inserisci Nome, Cognome e Voto"); //ATTENZIONE QUI! vet[i].nome=in.nextLine(); vet[i].cognome=in.nextLine(); vet[i].voto=in.nextInt(); } } static float media(int n,Studente vet[]){ int i; float m=0.0f; for(i=0;i<n;i++) m=m+vet[i].voto; return m/n;} Tocchi finali: adattiamo parametri...
  • 14. Passo 3 static void leggi(int n, Studente vet[]){ int i,j; Scanner in = new Scanner(System.in); for(i=0;i<n;i++){ System.out.println("Inserisci Nome, Cognome e Voto"); vet[i]=new Studente(); vet[i].nome=in.nextLine(); vet[i].cognome=in.nextLine(); vet[i].voto=in.nextInt(); } } static float media(int n,Studente vet[]){ int i; float m=0.0f; for(i=0;i<n;i++) m=m+vet[i].voto; return m/n;} Tocchi finali: adattiamo parametri... MOLTO IMPORTANTE: In Java, un array di oggetti non riserva alcuno spazio di memorizzazione! Peranto, ogni oggetto va inizializzato prima di esere usato.
  • 15. Passo 3 static void leggi(int n, Studente vet[]){ int i,j; Scanner in = new Scanner(System.in); for(i=0;i<n;i++){ System.out.println("Inserisci Nome, Cognome e Voto"); vet[i]=new Studente(); vet[i].nome=in.nextLine(); vet[i].cognome=in.nextLine(); vet[i].voto=in.nextInt(); } } static float media(int n,Studente vet[]){ int i; float m=0.0f; for(i=0;i<n;i++) m=m+vet[i].voto; return m/n; Tocchi finali: e l'I/O
  • 16. Agenda Style Riassunto l Esistono classi, e struct l Costanti definite tramite const o #define. l Array statici (dinamici con difficolt) l C/C++ l Non esistono struct, solo classi di oggetti. l Array dinamici (non esistono statici). Se si tratta di oggetti, larray non inizializza lo spazio dei singoli oggetti (riferimenti) l Non esistono #define Java
  • 18. Avete le basi! Conoscenze del C/C++ Conoscenze minimali di Java Algoritmica Esercizi Java 竪 un linguaggio complesso, che richiede una buona conoscenza del paradigna di programmazione a oggetti! Buon lavoro! E solo linizio... Thats all folks Ora si parte sul serio
  • 19. Grazie per l'attenzione Spero di essere stato chiaro....
  • 20. Agenda Style Compito CONVERTITE O SCRIVETE UN PROGRAMMA CHE LEGGE UNA STRINGA DI CARATTERI E NE STAMPA LA SUA CODIFICA IN LINGUAGGIO MORSE C++ ? Java

Editor's Notes