Programmi java per esame [HELP]

di il
4 risposte

Programmi java per esame [HELP]

Ciao a tutti ragazzi, mi chiamo samuele e a giorni ho un esame di informatica...
Avrei bisogno dell'aiuto di qlcn di voi con 2 programmi che non riesco a fare; ve li scrivo:

1) Scrivere un programma che prenda in ingresso un numero N e poi N numeri compresi tra 1 e 6 che rappresentano la distribuzione del lancio di un dado a 6 facce. Calcolare la media e la moda e,per ogni faccia del dado, la percentuale del numero di volte che si è presentato.

2) Scrivere un programma che richiede in input da utente una frase (formata solo da caratteri maiuscoli, minuscoli e spazi) e la converte in modo che il primo carattere di ogni parola sia una maiuscola e tutti gli altri caratteri siano minuscoli. Si vuole poi stampare a video la stringa convertita e il numero di spazi contenuti nella stringa in ingresso. E' obbligatorio l'uso dei codici ASCII.

Spero che qualcuno abbia voglia di risolverli e scrivermeli qui, cosi poi provo a capirli e rifarli!
Grazie mille a tutti, aspetto vostre risposte!

4 Risposte

  • Re: Programmi java per esame [HELP]

    Qualcuno mi sa rispondere??? aiutatemi ragazzi please!! Adesso ho un altro problema, ho fatto sto es, qualcuno puo farlo cosi guardo cos'ho sbagliato??

    Definire una classe stazione che contiene tutte le corse giornaliere che passano per la stazione. La classe contiene un'elenco di corse memorizzate in un vettore, e il relativo numero, e la Nome della stazione. Si vogliono definire i seguenti metodi:
    1) data una stazione in ingresso, restituire il numero di corse verso la stazione contenute nell'elenco
    2)dato un orario in input,restituire un vettore di corse che partono a quell'ora
    3)inserimento di una nuova corsa controllando che non ce ne sia una uguale alla stessa ora che vada nello stesso posto e che la stazione di partenza sia corretta
    4)eliminazione di una corsa data l'ora e la stazione di arrivo
  • Re: Programmi java per esame [HELP]

    Ciao provo ad aiutarti per i primi due programmi, a me vengono in mente queste due soluzioni:


    class Esercizio1 {

    public static void main(String[] args) throws IOException {

    Scanner input = new Scanner(System.in);

    System.out.print("Inserisci il numero N:");
    int N = input.nextInt();

    System.out.println();
    int[] distribuzione = new int[N];
    /*Lettura numeri*/
    for (int i = 0; i < N; i++) {
    System.out.print("Inserisci il l'elemento "+(i+1)+":");
    System.out.println();
    distribuzione = input.nextInt();
    }

    int somma = 0;
    /*Calcolo somma numeri*/
    for (int elem : distribuzione) {
    somma += elem;
    }

    System.out.println("Media :" + somma + "/" + N);

    /*Massima frequenza di un elemento*/
    int maxFreq = 0;

    int moda = 0;

    /*Lista di elementi per i quali la percentuale è già stata
    * calcolata*/
    ArrayList<Integer> calcolati = new ArrayList<Integer>();

    /*Calcolo moda e percentuale*/
    for (int elem : distribuzione) {
    int freq = 0;
    for (int elem2 : distribuzione) {
    if (elem == elem2) {
    freq++;
    }
    }
    if(!calcolati.contains(elem)){
    System.out.println("Percentuale frequenza numero "+elem+":"+(freq/(N*1.0))*100+"%");
    calcolati.add(elem);
    }

    if (freq > maxFreq) {
    maxFreq = freq;
    moda = elem;
    }
    }

    System.out.println("Moda:" + moda);
    }

    }

    e :

    class Esercizio2 {

    public static void main(String[] args) throws IOException {

    InputStreamReader in = new InputStreamReader(System.in);

    char c = ' ';
    StringBuilder frase = new StringBuilder();

    System.out.println("Inserisci la frase:");

    int numeroSpazi=0;

    /*Lettura frase*/
    while ((c = (char) in.read()) != '\n') {
    frase.append(c);
    if(c==' '){
    numeroSpazi++;
    }
    }

    in.close();

    Scanner input = new Scanner(frase.toString());

    StringBuilder output = new StringBuilder();

    String word;

    /*Recupero parole e costruzione frase di output*/
    while (input.hasNext()) {

    word = input.next();

    output.append(Character.toUpperCase(word.charAt(0)));
    output.append(word.substring(1).toLowerCase());

    output.append(" ");

    }

    System.out.println(output);
    System.out.println("Spazi:"+numeroSpazi);

    }


    spero di esserti stato di aiuto.
  • Re: Programmi java per esame [HELP]

    Grazie mille!!!!
    Adesso ho un altro problema, mi puoi mica aiutare?? devo fare un programma che presa una frase in ingresso mi trova il numero di parole palindrome in essa
  • Re: Programmi java per esame [HELP]

    Ciao, si ti posso aiutare, ad esempio con le regular expression si può fare cosi :

    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;



    class Esercizio3 {

    public static void main(String[] args) throws IOException {

    InputStreamReader in = new InputStreamReader(System.in);

    char c = ' ';
    StringBuilder sentence = new StringBuilder();

    System.out.println("Inserisci la frase:");

    /*Lettura frase*/
    while ((c = (char) in.read()) != '\n') {
    sentence.append(c);
    }

    in.close();


    /*Calcolo palindrome*/
    Pattern pattern = Pattern.compile("\\b" + "[a-zA-Z]+" + "\\b");
    Matcher matcher = pattern.matcher(sentence.toString());

    int counter = 0;
    while(matcher.find()){
    /*Estrazione singola parola*/
    String currentWord = matcher.group();
    /*Test*/
    if(isPalindrome(currentWord)){
    counter++;
    }
    }

    System.out.println("Numero parole palindrome:"+counter);
    }

    private static boolean isPalindrome(String word){
    char[] wordChars = word.toLowerCase().toCharArray();

    int j=wordChars.length-1;

    for(int i=0;i<wordChars.length;i++){
    if(wordChars!=wordChars[j]){
    return false;
    }
    j--;
    }
    return true;
    }
    }
Devi accedere o registrarti per scrivere nel forum
4 risposte