Root /ArchiveAbout
()

Цифры трехзначного числа

Цифры трехзначного числа

На предыдущей странице мы рассматривали задачу отделения цифр от двузначного числа. На этой странице решаем задачи Integer9 - Integer16 из задачника Абрамяна, в которых займёмся работой с цифрами трехзначного числа.

Integer9. Дано трехзначное число. Используя одну операцию деления нацело, вывести первую цифру данного числа (сотни).

Для примера возьмем трехзначное число 671. Если его разделить на 100 и отбросить остаток, то получим 6 — первая цифра (число сотен). Поскольку для целочисленного деления существует операция div, то здесь достаточно вычислить 671**div** 100, что возвратит нам результат 6. Аналогично мы поступали при вычислении первой цифры двузначного числа в программе Integer6, только там нужно было делить на 10. Этот способ используется и в данной программе.

var
  N: word;

begin
  write('N = '); 
  readln(N); { <-- вводим трехзначное число }
  writeln; 
  { Находим и выводим первую цифру числа
  как целую часть при делени на 100: } 
  writeln('Первая цифра числа: ', N div 100);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 A **div** B - целочисленное деление А на В Integer10. Дано трехзначное число. Вывести вначале его последнюю цифру (единицы), а затем — его среднюю цифру (десятки).

var
  N: word;

begin
  write('N = ');
  readln(N); { <-- вводим трехзначное число }
  writeln;
  N := N mod 100; { <== Последние две цифры }
  { Выводим последнюю и среднюю цифры числа: }
  writeln('Последняя цифра: ', N mod 10);
  writeln('Средняя цифра:   ', N div 10);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 A **mod** B - остаток при целочисленном делении А на В A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В Integer11. Дано трехзначное число. Найти сумму и произведение его цифр.

var
  N: word; { Трехзначное число }
  t1, t2, t3: byte; { Цифры трехзначного числа }

begin 
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим трехзначное число }
  writeln;
  t3 := N mod 10; { <== третья цифра }
  N := N div 10;  { <== число созданное первыми двумя цифрами }
  t2 := N mod 10; { <== вторая цифра }
  t1 := N div 10; { <== первая цифра }
  writeln('Сумма цифр: ', t1 + t2 + t3);
  writeln('Произведение цифр: ', t1 * t2 * t3);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В Integer12. Дано трехзначное число. Вывести число, полученное при прочтении исходного числа справа налево.

var
  N: word; { Трехзначное число }
  t1, t2, t3: byte; { Цифры трехзначного числа }

begin
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  t3 := N mod 10; { <== третья цифра - единицы }
  N := N div 10;  { <== число созданное первыми двумя цифрами }
  t2 := N mod 10; { <== вторая цифра - десятки }
  t1 := N div 10; { <== первая цифра - сотни }
  { t3 - сотни, t2 - десятки, t1 - единицы: }
  N := 100 * t3 + 10 * t2 + t1; { <== перевернутое число }
  writeln('Прочитанное в обратном порядке число: ', N);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В Второй вариант не предусматривает дополнительных переменных для хранения цифр числа:

var
  N: word; { Трехзначное число }

begin
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  { Вычисляем три цифры числа:
   1) N div 100 - первая цифра;
   2) N div 10 mod 10 - вторая цифра;
   3) N mod 10 - третья цифра.
  Составляем число с переставленными цифрами справа налево: }
  N := 100 * (N mod 10) + 10 * (N div 10 mod 10) + N div 100;
  writeln('Прочитанное в обратном порядке число: ', N);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В Integer13. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее справа. Вывести полученное число.

var
  N: word;

begin 
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  { N div 100 - первая цифра данного числа,
    N mod 100 - число составлено из последних двух цифр данного числа }
  N := 10 * (N mod 100) + N div 100; { <== новое число }
  writeln('Преобразованное число: ', N);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В Integer14. Дано трехзначное число. В нем зачеркнули первую справа цифру и приписали ее слева. Вывести полученное число.

var
  N: word; { Трехзначное число }

begin
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  { N mod 10 - последняя цифра данного числа,
    N div 10 - число составлено из первых двух цифр числа N }
  N := 100 * (N mod 10) + N div 10; { <== Формируем новое число }
  writeln('Последняя цифра стала первой: ', N);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В Integer15. Дано трехзначное число. Вывести число, полученное при перестановке цифр сотен и десятков исходного числа (например, 123 перейдет в 213).

var
  N: word;
  p: byte;

begin
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  p := N mod 10; { <-- запоминаем последнюю цифру числа }
  N := N div 10; { <== удаляем последнюю цифру, получив двузначное число }
  N := 10 * (N mod 10) + N div 10; { <== Меняем цифры местами }
  N := 10 * N + p; { <== новое трехзначное число }
  writeln('Преобразованное число: ', N);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В Второй вариант решения задачи Integer15 – это аналог второго способа решения Integer12:

var
  N: word; { Трехзначное число }

begin
  write('Введите трехзначное число: ');
  readln(N); { <-- вводим число }
  writeln;
  { Вычисляем три цифры числа:
   1) N div 100 - первая цифра;
   2) N div 10 mod 10 - вторая цифра;
   3) N mod 10 - третья цифра.
  Составляем число с переставленными цифрами справа налево: }
  N := 100 * (N div 10 mod 10) + 10 * (N div 100) + N mod 10;
  writeln('Две первые цифры меняем местами: ', N);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 A **div** B - целочисленное деление А на В A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В A **mod** B - остаток при целочисленном делении А на В Integer16. Дано трехзначное число. Вывести число, полученное при перестановке цифр десятков и единиц исходного числа (например, 123 перейдет в 132).

Первый вариант:

var
  N, p: word;

begin
  write('N = ');
  readln(N); { <-- вводим число }
  p := N div 100; { <== запоминаем первую цифру числа }
  { Находим число, составленое из последних двух цифр числа N:}
  N := N mod 100;
  { N mod 10 - вторая цифра становится первой,
    N div 10 - певая цифра становится второй: }
  N := 10 * (N mod 10) + N div 10;
  N := 100 * p + N; { <== новое число }
  writeln;
  writeln('Преобразованное число: ', N);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 A **div** B - целочисленное деление А на В A **mod** B - остаток при целочисленном делении А на В A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В Второй вариант:

var
  N: word;

begin
  write('Вводим трехзначное число: ');
  readln(N); { <-- вводим число }
  { Вычисляем три цифры числа:
   1) N div 100 - первая цифра;
   2) N div 10 mod 10 - вторая цифра;
   3) N mod 10 - третья цифра.
  Составляем число с переставленными цифрами справа налево: }
  N := 100 * (N div 100) + 10 * (N mod 10) + N div 10 mod 10;
  writeln('Две последние цифры меняем местами: ', N);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 A **div** B - целочисленное деление А на В A **mod** B - остаток при целочисленном делении А на В A **div** B - целочисленное деление А на В A **mod** B - остаток при целочисленном делении А на В