Задачи по Pascal. Первая цифра числа.

Задачи по Pascal

Условие задачи : Найти чему равна первая цифра числа. Число вводит пользователь.

Сложность : легкая .

Чтобы решить эту задачу нам снова понадобятся операции div и mod. Что мы будем с ними делать? Предположим мы ввели какое-то число, неважно какое, пусть будет 4213.

И мы должны к это числу применить наши операции. Напомню что :

  • div — находит целую часть от деления
  • 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.

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий