:: Numero Pagine da Stampare ::
Questo programmino vuole risolvere uno dei problemi che mi assillano in qualità di stampatore di dispense: stampare più pagine per foglio, fronte e retro, su di una stampante che NON fa automaticamente il fronte-retro.
Se ho 20 pagine, e 4 pagine per foglio, devo stampare quindi, impostando 4 pagine per foglio nelle opzioni di stampa etc.:
1-4, 9-12, 17-20
poi reinserisco le pagine come si conviene, e stampo
5-8, 13-16
Per la serie "grattati il tuo prurito", questo programma fa brutalmente proprio questo conto:)
Ocio che non tratto i casi delle ultime pagine etc. ma va beh ci si arriva anche da soli:)
import java.lang.*; public class numeropagine { public static void main(String[] args) { int numPagine = Integer.parseInt(args[0]); int pagPerFoglio = Integer.parseInt(args[1]); System.out.println("Numero di pagine = " + numPagine); System.out.println("Pagine per foglio = " + pagPerFoglio); int contatore = 0; Boolean visualizza = true; System.out.println("Pagine dispari:"); for (int conto = 1; conto <= numPagine; conto ++) { if (visualizza && contatore == 0) { System.out.print(conto +"-"); } contatore = (contatore + 1) % pagPerFoglio; if (contatore == 0) { if (visualizza) { System.out.print(conto +","); visualizza = false; } else { visualizza = true; } } } visualizza = false; System.out.println("\nPagine pari:"); contatore = 0; for (int conto = 1; conto <= numPagine; conto ++) { if (visualizza && contatore == 0) { System.out.print(conto +"-"); } contatore = (contatore + 1) % pagPerFoglio; if (contatore == 0) { if (visualizza) { System.out.print(conto +","); visualizza = false; } else { visualizza = true; } } } System.out.println(); } }
java numeropagine 100 6
dove 100 è il numero di pagine totali, e 6 quelle per foglio.