Условие задачи : Найти чему равна первая цифра числа. Число вводит пользователь.
Сложность : легкая .
Чтобы решить эту задачу нам снова понадобятся операции div и mod. Что мы будем с ними делать? Предположим мы ввели какое-то число, неважно какое, пусть будет 4213.
И мы должны к это числу применить наши операции. Напомню что :

mod — находит остаток от деления
Давайте один раз применим операцию mod к нашему числу :
4213 mod 10
{У нас получиться 3}
И занесем нашу тройку в какую-нибудь переменную, пусть будет otvet :
otvet := 4213 mod 10 ; {переменная ответ содержит три}
А наше число 4213 тоже занесем в переменную , чтобы было удобнее например number.
После того как мы получили 3, давайте к переменной number, т.е. к числу 4213 применим операцию div :
number := number div 10 ;
Теперь там будет содержаться 421. Вот какой код у нас на данный момент :
number := 4213;
otvet := number mod 10; {тут будет 3}
number := number div 10 ; {тут будет 421}
Теперь давайте еще раз применим :
number := 421;
otvet := number mod 10; {тут будет 1}
number := number div 10 ; {тут будет 42}
Еще разок :
number := 42;
otvet := number mod 10; {тут будет 2}
number := number div 10 ; {тут будет 4}
И еще разок :
number := 4;
otvet := number mod 10; {тут будет 4}
number := number div 10 ; {тут будет 0}
Надеюсь вы заметили что происходит, как только у нас number станет равно нулю, мы сразу прекратим выполнять наши операции, т.к. смысла нет. Давайте добавим цикл и посмотри что получиться :
while (number <> 0) do
begin
otvet := number mod 10;
number := number div 10 ;
end;
Вот что должно получиться, теперь у нас будет искаться первая цифра числа.
Весь код программы :
uses crt;
var
number , otvet : longint;
begin
clrscr;
write('Введите число : ');readln(number);
while (number <> 0) do
begin
otvet := number mod 10;
number := number div 10 ;
end;
writeln('Первая цифра числа равна ', otvet);
readln;
end.
Вот результат :
