:: Numero Pagine da Stampare ::
Problema
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:)
Sorgente
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();
}
}
Istruzioni
java numeropagine 100 6
dove 100 è il numero di pagine totali, e 6 quelle per foglio.
Downloads
Programmazione