adminv15
Ominide
2 min. di lettura
Vota 4 / 5

Concetti Chiave

  • Il programma crittografa un intero di quattro cifre sommando 7 a ciascuna cifra e applicando il modulo 10.
  • Dopo la crittografia, le cifre vengono scambiate: la prima con la terza e la seconda con la quarta.
  • Il programma include un controllo per assicurarsi che l'input sia un intero di quattro cifre.
  • È previsto un programma separato per decrittografare l'intero crittografato e ottenere il numero originale.
  • La decrittografia comporta lo scambio delle cifre e la sottrazione di 7 da ciascuna cifra, con un controllo per le cifre negative.

 /*  * Una azienda vuole trasmettere dei dati sulla linea telefonica,  * ma i suoi responsabili sono preoccupati dal fatto che i propri  * telefoni potrebbero essere spiati. Tutti i loro dati sono  * trasmessi come interi di quattro cifre.  * Vi hanno chiesto di scrivere un programma che crittografi  * i loro dati in modo che possano essere trasmessi con maggior  * sicurezza.  * Il vostro programma dovrà  leggere un intero di quattro cifre  * e crittografarlo nel modo seguente: sostituite ogni cifra  * con (la somma di quella cifra + 7) modulo 10. In seguito,  * scambiate la prima cifra con la terza, e scambiate la seconda  * cifra con la quarta. Visualizzate quindi l'intero crittografato.  */ /*  * SVILUPPO PROGRAMMA  * (mediante processo top-down per raffinamenti successivi)  *  * TOP: prendere un intero in ingresso, crittografarlo, stamparlo  *      in output.  *  * RA1: finché intero maggiore 9999 o minore -9999  *          stampare messaggio "L'intero deve essere di 4 cifre"  *          prendere un intero in ingresso  *      cifra_1 = numero / 1000; cifra_1 = (cifra_1 + 7) % 10;  *      numero = numero % 1000;  *      cifra_2 = numero / 100; cifra_2 = (cifra_2 + 7) % 10;  *      numero = numero % 100;  *      cifra_3 = numero / 10; cifra_3 = (cifra_3 + 7) % 10;  *      numero = numero % 10;  *      cifra_4 = numero; cifra_4 = (cifra_4 + 7) % 10;  *      cifra_tmp = cifra_1;  *      cifra_1 = cifra_3; cifra_3 = cifra_tmp;  *      cifra_tmp = cifra_2;  *      cifra_2 = cifra_4; cifra_4 = cifra_tmp;  *      numero = cifra_4 + cifra_3 * 10 + cifra_2 * 100 + cifra_1 * 1000;  *      visualizza numero;  */ /*  * IMPLEMENTAZIONE  */ #include  int main(void) { 	int cifra_1, cifra_2, cifra_3, cifra_4, cifra_tmp; 	int numero = 10000; 	while (numero  9999) { 		printf("
Inserire numero da crittografare: (0000 to 9999): "); scanf("%d", &numero); } cifra_1 = numero / 1000; cifra_1 = (cifra_1 + 7) % 10; numero %= 1000; cifra_2 = numero / 100; cifra_2 = (cifra_2 + 7) % 10; numero %= 100; cifra_3 = numero / 10; cifra_3 = (cifra_3 + 7) % 10; numero %= 10; cifra_4 = numero; cifra_4 = (cifra_4 + 7) % 10; cifra_tmp = cifra_1; cifra_1 = cifra_3; cifra_3 = cifra_tmp; cifra_tmp = cifra_2; cifra_2 = cifra_4; cifra_4 = cifra_tmp; printf("Numero crittografato: %d%d%d%d
", cifra_1, cifra_2, cifra_3, cifra_4); return (0); }
 /*  * Scrivete un programma a parte che prenda in input un intero  * crittografato di quattro cifre e lo decifri, in modo da formare  * il numero originale.  */ #include  int main(void) { 	int cifra_1, cifra_2, cifra_3, cifra_4, cifra_tmp; 	int numero = 10000; 	while (numero  9999) { 		printf("
Inserire numero da decrittografare: (0000 to 9999): "); scanf("%d", &numero); } /* individua ogni cifra */ cifra_1 = numero / 1000; numero %= 1000; cifra_2 = numero / 100; numero %= 100; cifra_3 = numero / 10; numero %= 10; cifra_4 = numero; /* scambia la prima con la terza, la seconda con la quarta */ cifra_tmp = cifra_1; cifra_1 = cifra_3; cifra_3 = cifra_tmp; cifra_tmp = cifra_2; cifra_2 = cifra_4; cifra_4 = cifra_tmp; /* trova cifra originale */ cifra_1 = (cifra_1 - 7); if (cifra_1 ", cifra_1, cifra_2, cifra_3, cifra_4); return (0); }

Domande da interrogazione

  1. Qual è lo scopo principale del programma descritto nel testo?
  2. Il programma è progettato per crittografare un intero di quattro cifre per trasmetterlo in modo sicuro su una linea telefonica, proteggendo i dati da eventuali intercettazioni.

  3. Come viene crittografato un numero di quattro cifre nel programma?
  4. Ogni cifra del numero viene sostituita con (la somma di quella cifra + 7) modulo 10, poi la prima cifra viene scambiata con la terza e la seconda con la quarta.

  5. Qual è la condizione per l'accettazione del numero da crittografare?
  6. Il numero deve essere un intero di quattro cifre, compreso tra 0000 e 9999.

  7. Come viene decifrato un numero crittografato secondo il programma?
  8. Il programma scambia nuovamente le cifre (prima con terza, seconda con quarta) e poi sottrae 7 da ciascuna cifra, correggendo con modulo 10 se necessario, per ottenere il numero originale.

  9. Qual è il messaggio visualizzato se l'input non è un intero di quattro cifre?
  10. Il programma stampa "L'intero deve essere di 4 cifre" e richiede nuovamente l'inserimento di un numero valido.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community