Nel modulo "Espressioni aritmetiche" abbiamo parlato delle caratteristiche dell'operazione di divisione in Pascal.
Ricordiamo che per i dati interi (digita integer) puoi utilizzare tre operazioni di divisione:
- divisione normale, restituisce un valore di tipo real
div - divisione intera, quando scartiamo la parte frazionaria come risultato dell'operazione di divisione
mod - calcolo del resto della divisione

RICORDA!
In Pascal il risultato della divisione di un numero intero per un numero intero – è sempre un numero reale.

Esempio: var a, b, d, e: numero intero;   c: reale; un := 10; b := 3; c := a / b; // Risposta: s = 3.33333333333333E+000 d := un mod b; // Risposta: d = 1 e := a div b; // Risposta: e = 3 Queste operazioni sono molto importanti nella programmazione. Devono essere capiti e usati correttamente. E questo richiede pratica!

 

La necessità di applicare l'operazione di calcolo del resto della divisione è evidente quando si lavora con le cifre di un numero. 

Analizziamo il seguente task:
Viene fornito un numero di tre cifre. Visualizza tutte le cifre di questo numero e ottieni un nuovo numero formato permutando unità e centinaia

La domanda più difficile che si pone per i principianti è come prendere e ottenere le sue cifre da un numero.
In effetti, tutto è risolto in modo abbastanza semplice, se ricordi la matematica. E la matematica ci dice che qualsiasi numero può essere scomposto in una somma di cifre.
Ad esempio: 365=3*100+6*10+5*1 . Vediamo che ogni cifra è un moltiplicatore della cifra corrispondente del numero. 
Mostreremo come ottenere ogni cifra di un numero in una variabile separata, usando l'esempio di dividere le colonne per il numero 10. (Prendiamo il numero 10, perché abbiamo un sistema di numeri decimali e, di conseguenza, abbiamo termini di cifre 1, 10, 100, ecc.)
  

Analizzando la figura, puoi vedere che 
e := nmod 10; // operazione n mod 10 - calcola l'ultima cifra del numero n (ovvero le unità del numero) 365 mod 10 = 5 

d := n div 10 mod 10; // operazione n div 10 - riduce il numero di 10 volte, cioè scarta l'ultima cifra del numero (365 div 10 = 36), 
                   // ora possiamo calcolare il numero delle decine applicando al risultato l'operazione familiare: calcola il resto dopo la divisione per il numero 10, 36 mod 10 = 6
 
s := n div 100; // per ottenere le centinaia, è sufficiente scartare due cifre a destra del numero, ovvero dividere per 10 due volte (n div 10 div10 o uguale a n div 100< /strong>) 365 div 100 = 3

Avendo le cifre salvate del numero, possiamo ricavarne qualsiasi numero moltiplicando la cifra desiderata per la cifra corrispondente: 
ad esempio, la riga sottostante otterrà un nuovo numero dal numero originale n, con le centinaia e le unità riorganizzate:
1) il vecchio numero di uno (memorizzato nella variabile e)  moltiplicato per 100 
2) il vecchio numero di decine (memorizzato nella variabile d)  moltiplicato per 10 
3) possiamo semplicemente moltiplicare il vecchio numero di centinaia per 1, o semplicemente prendere il valore memorizzato nella variabile s
Quindi aggiungi semplicemente i valori dei punti 1, 2 e 3 e ottieni un nuovo numero:

n1 := e * 100 + d * 10 + s;

L'intero programma sarà simile a questo:
var n, e, d, s: intero;

inizio
  leggi(n);
  e := nmod 10;
  d := n div 10 mod 10;
  s := n div 100;
  writeln(e, ' ', d, ' ', s, ' ', e * 100 + d * 10 + s);
FINE.