Lección 3 · 3 de 20
Aritmética: div, mod y / · Pascal
Haga cuentas en Pascal: div para la división entera, mod para el resto, / para dividir con decimales, y Trunc y Round para pasar a entero.

`div` divide dos enteros y se queda con la parte entera; `mod` da el resto. Juntos convierten 135 minutos en 2 h 15 min y reparten 17 porciones de pizza entre 5 amigos: 3 para cada uno y sobran 2.
`/` siempre da un número real, aunque divida dos enteros: 17 / 5 es 3.4. Por eso el resultado se guarda en share, que es Double; en una variable Integer no cabría y el compilador daría un error.
Como en matemáticas, *, /, div y mod van antes que + y -: 2 + 3 * 4 da 14. Los paréntesis cambian el orden: (2 + 3) * 4 da 20.
Para pasar de real a entero hay dos funciones: `Trunc` corta los decimales (3.7 da 3) y `Round` redondea (4). Cuidado: cuando el número acaba exactamente en ,5, Round va al par más cercano, así que Round(2.5) es 2 y Round(3.5) es 4.
42 mod 2 = 0 es la forma habitual de saber si un número es par: el resto de dividirlo entre 2 es cero.
Código · main.pas
program main;var minutes, slices, friends: Integer; share: Double;begin // div divides whole numbers; mod gives the remainder. minutes := 135; WriteLn(minutes, ' min = ', minutes div 60, ' h ', minutes mod 60, ' min'); slices := 17; friends := 5; WriteLn('Each friend gets ', slices div friends, ' slices'); WriteLn('Slices left over: ', slices mod friends); // / always gives a real number, even with two integers. share := slices / friends; WriteLn('Exact share: ', share:0:2); // * and / go before + and -; brackets change the order. WriteLn('2 + 3 * 4 = ', 2 + 3 * 4); WriteLn('(2 + 3) * 4 = ', (2 + 3) * 4); // From real to integer: Trunc cuts, Round rounds. WriteLn('Trunc(3.7) = ', Trunc(3.7), ' | Round(3.7) = ', Round(3.7)); // Round sends .5 to the even number. WriteLn('Round(2.5) = ', Round(2.5), ' | Round(3.5) = ', Round(3.5)); WriteLn('Even? ', 42 mod 2 = 0);end.Salida · fpc main.pas && ./main
135 min = 2 h 15 min Each friend gets 3 slices Slices left over: 2 Exact share: 3.40 2 + 3 * 4 = 14 (2 + 3) * 4 = 20 Trunc(3.7) = 3 | Round(3.7) = 4 Round(2.5) = 2 | Round(3.5) = 4 Even? TRUE
Para recordar
dives la división entera ymod, el resto./siempre devuelve un real.*y/van antes que+y-; los paréntesis mandan.Trunccorta yRoundredondea (los ,5 van al par).
Ejercicio
Convierta 7384 segundos en horas, minutos y segundos con div y mod, y escriba el resultado como 2 h 3 min 4 s.