ESERCIZIO 1
l’utente scrive dei caratteri dalla tastiera,
si vuole contare il numero di a e di b scritte e stamparne il numero a video
e’ corretto questo codice ??
//FILE Conta.java
import java.*;
import java.io.*;
class Conta
{
public static void main(String[] args)
{
int a=0;
byte b[]=new byte[1];
String s=new String();
int count =0;
do {
a = System.in.read(b,0,1); // MANCA GESTIONE DI ECCEZIONI:
s=new String(b,0,1);
if( s.equals(new String("a")) && s.equals(new String("b")) )
// CI VUOLE OR ||
count++;
}
while(a != -1);
System.out.println("count="+count);
}
}
// ESERCIZIO 1: CODICE CORRETTO, file Conta.java
import java.*;
import java.io.*;
class Conta
{
public static void main(String[] args)
{
int a=0;
byte b[]=new byte[1];
String s=new String();
int count =0;
do {
try {
a = System.in.read(b,0,1);
}
catch (IOException e)
{
System.out.println("ERRORE”);
return;
};
s=new String(b,0,1);
if( s.equals(new String("a")) || s.equals(new String("b")) )
count++;
}
while(a != -1);
System.out.println("count="+count);
}
}
ESERCIZIO 2:
Cosa succede se:
il file input.txt e’ fatto cosi’:
la donzelletta
vien dalla campagna
e voi lanciate l’esecuzione
java Conta < input.txt
viene stampato a video
count=7
ESERCIZIO 3
Cosa succede se il file input.txt e’ fatto cosi’:
mamma
celle
strada
e voi lanciate l’esecuzione:
java Leggi < input.txt
dove il file Leggi.java e’ quello qui di seguito ?
import java.*;
import java.io.*;
class Leggi
{
public static void main(String[] args)
{
int a=0;
byte b[]=new byte[10]; int letti=0;
do {
try {
}
{
a = System.in.read(b,letti,10-letti);
catch (IOException e)
System.out.println("ERRORE DI LETTURA");
return;
};
if(a>=0) letti+=a;
}
while( (a != -1) && (letti<10) );
byte bytea[]=new String("a").getBytes();
byte byteb[]=new String("b").getBytes();
int i=0;
int count =0;
for(i=0;i<letti;i++)
if( (b[i]==bytea[0]) || (b[i]==byteb[0]) )
count++;
System.out.println("count="+count);
}
}
risposta:
viene stampato a video
count=3
ESERCIZIO 4
Scrivere una funzione,
che legga da tastiera i primi 20 caratteri o quelli disponibili prima della fine dell’input
e restituisca una stringa che contiene tutti i caratteri ricevuti in posizione pari.
import java.*;
import java.io.*;
soluzione:
class PrendiPari
{
public string funz()
{
int a=0;
byte b[]=new byte[10];
int letti=0;
for(letti=0;letti<20;letti++)
{
try {
a = System.in.read(b,letti/2,1 );
}
catch (IOException e)
{
System.out.println("ERRORE DI LETTURA");
return;
};
}
// System.out.println("count="+ new String(b) );
return( new String(b) )
}
}
ESERCIZIO 5
E’ corretto il codice java qui di seguito riportato?
Se necessario correggerlo.
Cosa fa?
File A.java
Class A
// class va minuscolo
{
Public A() // public va minuscolo
{ }
Private int somma(int val) // private va minuscolo
{ return val+10; }
}
File B.java
Import java.*; // import va minuscolo
Class B
// class va minuscolo
{
Public static void main( string[] args) // private va minuscolo, string va Maiuscolo
{
A a; // non inizializzato, A a=new A();
System.out.println(a.somma(11)); // a.somma e’ private, errore in compilazione
}
}
// stampa 21
ESERCIZIO 6
E’ corretto il codice java qui di seguito riportato?
Se necessario correggerlo.
Cosa fa?
File A.java
class A
{
public int somma(int val)
{ return val+10; }
}
// va cosi public static int somma(int val)
File B.java
import java.*;
class B
{
public static void main( String[] args)
{
// non-static method somma(int) cannot be referenced from a static context
System.out.println( A.somma(11));
}
}
// stampa 21
ESERCIZIO 7
E’ corretto il codice java qui di seguito riportato?
Se necessario correggerlo.
Cosa fa?
File A.java
class A
{
public static int somma(int val)
{ return val+10; }
public static int divisione(int val) // metti double
{ return val/2.0; }
// 2.0 e’ un double, errore in compilazione
// dice required int
// per ottenere la divisione devo far restituire double
}
File B.java
import java.*;
class B
{
public static void main( String[] args)
{
System.out.println( A.divisione(A.somma(11)) );
}
}
// stampa 10.5