// Scheletro di codice per il progetto 2018 // In questo file NON ci deve essere nessuna dichiarazione "package" // come per esempio // // package progetto; // Questo import serve per potere usare il tester che vi forniamo. // Se non volete usare il tester, dovete rimuoverlo, ed eliminare // dal file tutti gli usi delle funzioni Tester; import progetto2018.Tester; // Potete aggiungere qui altri "import" per usare le librerie // standard di Java (ad es. lo Scanner). // NON modificate in nessun modo la linea seguente public class Progetto { // Qui potete liberamente aggiungere altre funzioni / procedure. // Vi consigliamo di non usare variabili globali, visto che non // ve ne e` bisogno. Se decidete di usarle comunque, potete farlo, // ma in tal caso dovete fare in modo che le funzioni // cellularAutomaton // multiplication // le inizializzino **ogni volta** che vengono chiamate. // Inizializzarle una volta sola nel main NON basta, visto che le // funzioni verranno chiamate piu` volte. // NON modificate in nessun modo la linea seguente public static boolean[] cellularAutomaton(int ruleNum, boolean[] initialState, int steps) { // Qui potete inserire il vostro codice return initialState; // da modificare } // NON modificate in nessun modo la linea seguente public static void multiplication(String inFileName, String outFileName) { // Qui potete inserire il vostro codice // Vi ricordiamo che NON dovete usare nomi di file prefissati, // come per es "input.txt", ma dovete invece usare come nomi // di file i parametri della procedura. } // Potete modificare il main liberamente. Potete per esempio eseguire // qualche test sulle funzioni sopra, come quelli suggeriti sotto. // Ricordatevi che chi corregge il progetto NON eseguira` il vostro // main, ma i suoi test. // public static void main(String[] args) { System.out.println("--- Test automa cellulare ---"); // Le costanti che usiamo sotto sono solo casi particolari, // il programma verra` testato anche su altri casi dopo la // consegna. int ruleNum = 110; int steps = 20; boolean[] initialState = new boolean[80]; // Generiamo uno stato iniziale int i; for (i = 0 ; i < initialState.length ; i++) { initialState[i] = (i % 2 == 0); } boolean[] finalState; finalState = cellularAutomaton(ruleNum, initialState, steps); boolean testOK; testOK = Tester.testCellularAutomaton ( ruleNum , initialState , steps , finalState ); if (testOK) { System.out.println("Automaton test: PASS"); } else { System.out.println("Automaton test: FAIL <<<<<<<<"); } // --------------------------------------------- System.out.println(); System.out.println("--- Test moltiplicazione ---"); // Dopo la consegna, il programma sara` testato anche con altri // nomi per i file. String inFileName = "input.txt"; String outFileName = "output.txt"; // Se volete, qui scrivete dei naturali positivi casuali sul // file di input. // Il file di output, invece, viene generato dalla chiamata // qui sotto: multiplication(inFileName, outFileName); // Ora che il file di output e` stato creato / sovrascritto, // controlliamo il risultato. if (Tester.testMultiplication(inFileName, outFileName)) { System.out.println("Multiplication test: PASS"); } else { System.out.println("Multiplication test: FAIL <<<<<<<<"); } } }