Concetti Chiave

  • Il programma crittografa un intero di quattro cifre per garantire la sicurezza nella trasmissione dei dati.
  • Ogni cifra viene modificata con la formula (cifra + 7) modulo 10 per creare un numero crittografato.
  • Le cifre del numero crittografato vengono scambiate: la prima con la terza e la seconda con la quarta.
  • Un programma separato è incluso per decrittografare il numero e riportarlo al formato originale.
  • Se l'input non è valido, viene visualizzato un messaggio che richiede un intero di quattro cifre.

 /*  * 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 è l'obiettivo principale del programma descritto nel testo?
  2. L'obiettivo principale del programma è crittografare un intero di quattro cifre per garantire una trasmissione più sicura dei dati, sostituendo ogni cifra con (cifra + 7) modulo 10 e scambiando le posizioni delle cifre.

  3. Come viene gestito l'input dell'utente nel programma?
  4. Il programma richiede all'utente di inserire un intero di quattro cifre e continua a chiedere l'input finché il numero non è compreso tra 0000 e 9999, visualizzando un messaggio di errore in caso contrario.

  5. Qual è il metodo utilizzato per crittografare le cifre?
  6. Ogni cifra dell'intero viene sostituita con (cifra + 7) modulo 10, e successivamente le cifre vengono scambiate: la prima con la terza e la seconda con la quarta.

  7. Come viene effettuata la decrittografia del numero?
  8. Per decrittografare il numero, il programma scambia nuovamente le cifre e sottrae 7 da ciascuna cifra, gestendo i valori negativi aggiungendo 10 per ottenere la cifra originale.

  9. Quali sono le limitazioni imposte all'input dell'utente?
  10. L'input dell'utente è limitato a numeri interi di quattro cifre, ovvero compresi tra 0000 e 9999, per garantire che il programma funzioni correttamente.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community