На предыдущей странице мы рассматривали задачу отделения цифр от двузначного числа. На этой странице решаем задачи 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 535A **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 535A **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..255A **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..255A **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 535A **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 535A **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 535A **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..255A **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 535A **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 535A **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 535A **div** B
- целочисленное деление А на ВA **mod** B
- остаток при целочисленном делении А на ВA **div** B
- целочисленное деление А на ВA **mod** B
- остаток при целочисленном делении А на В