### The Type int

The type **int** represents **whole numbers**.

A variable of type int cannot be assigned
a value that is not a whole number.

Both types num and
int are commonly needed in many programs.
A count of anything
(chairs, apples, people) is always of type int.
Knowing that a value is of a particular type can be immensely helpful,
especially when writing computer programs.

A **getter** is a member that produces a value.

The getter **.round** converts a value of type
num to type int.

In the other direction, a value of type int
is automatically converted to type num.

Note: A type of a variable cannot be changed.

This program has an error: a value of type num cannot be assigned
to a variable of type int.

Correct the mistake and run the program.

A value of type num
can be turned into an int in various ways:

- The getter
**.round** rounds the number.
- The getter
**.int** keeps only the whole part of the number.
- The getter
**.floor** returns the first lesser or equal integer.
- The getter
**.ceil** returns the first greater or equal integer.

In this example, getters .round
and .int are applied
on several values.

This program contains an error.

A **literal expression** containing a dot (.) symbol is
considered to be of type num.

To correct the error, write the literal expression without a
decimal dot.

Every literal expression is a primary expression.

Most loop control variables are of type int,
since a for loop commonly counts the number of iterations.
A count is always a whole number.

A for loop can automatically **infer** the type of control variable.
In this example, the variable i
is of type int.

Type int has a getter
**.roman**.

Type num does not have a getter
.roman because Roman system has no way of writing
non-whole numbers.

A value of type int
can be aligned on printout by using the getter function **.pad**.

The getter function .pad prepends the integer with blanks on the left.
This causes the printout of the integer to be aligned to the right.

The argument of the getter function .pad
specifies a minimum number of places that the integer occupies.

Getters can be applied directly on variables,
but not on most other expressions.

To apply a getter on an expression,
put the expression inside parentheses.

This program contains an error.

The result of the operator of **common division** (/) is always of type num.

To correct the error, use the getter .int.

The operator **//** performs the **integer division**.

The result of operator // is always an integer.

The **modulo** operator **%%** returns
the remainder of the integer division operation.

The expression 9 %% 4 evaluates
to value 1 because 9 divided by 4 equals 2 with reminder 1.

The expression 3 %% 4 evaluates
to value 3 because 3 divided by 4 equals 0 with reminder 3.

When the left operand of operator %%
is divisible by the right operand, the result is 0. For example,
15 %% 5 evaluates to 0,
21 %% 7 evaluates to 0 and
6 %% 6 evaluates to 0.

The result of operator %% is always an integer.

This program uses operators //
and %% to recompute
length of a movie given in minutes into hours and remaining minutes.

After running this program, change it so that it transforms
a given number of days into weeks and remaining days.
Use a variable named days.

Try the new program for values of 10 days, 14 days, 20 days, and 21 days.

Then, enclose the entire program in a

for loop (i.e. the entire program should become
a block of statements between the curly braces).
Make the loop control variable

i
start from 1 and end with 23.
Don't forget to use the correct indentation for the block of the loop,
to keep the program tidy.
Make the initial value of variable

days
equal to value of variable

i.
Also, add a statement

sleepMs(200) as the last
statement of the loop.

After running and examining the output, try to remove the variable
i from the program by using the variable
days as a loop control variable.

This program uses modulo operator (%%)
to compute position and color of a moving disc.

You should analyze in detail the role of modulo operator in this program
in order to get a better understanding.

Tip: analyze the behaviour of numbers in the upper
left corner of the screen while the program is running;
observe how those numbers affect the color and position of the disc.

After running and analyzing this program, try modifying the
number 100 in the expression that sets the initial value of variable
x. Try the following values: 50, 10, 200,
133, 57.