Очень
часто необходимо чтобы программа определила, из каких цифр состоит число, или
определила разряд заданной цифры или наоборот цифру в заданном разряде. Если вы
попросите человека решить эту задачу, проблем не возникнет, а как быть с
компьютером. Для него любое число это набор нулей и единиц, т.е. двоичный код. В
отличие от нас компьютер все действия выполняет в двоичной системе. Например,
число 27 хранится в его памяти как 11011. И где здесь 2 и 7?
Для решения этих задач надо вспомнить, что собой представляет любое число
десятичной системы счисления (т.е. той, к которой мы с вами привыкли).В
позиционной системе счисления (к которой относится десятичная система) величина,
обозначаемая цифрой в записи числа, зависит от ее позиции. Например, в числе 333
первая цифра обозначает три сотни, вторая - три десятка, третья - три единицы.
Любое число можно записать в виде:
32478=3*10000+2*1000+4*100+7*10+8=3*104+2*103+4*102+7*101+8*100
Поэтому для обработки десятичных чисел используется 10 в соответствующей
степени. Например, надо получить число, образованное при перестановке цифр
заданного числа.
Program prim_6;
Var n,x1,x2,m:integer;
Begin
Write('введите двузначное число');
Readln(n);
X1:=n mod 10; {выделяем из числа единицы}
X2:=n div 10; {получает число десятков в числе}
M:=x1*10+x2; {число единиц умножаем на 10, получаем десятки}
Writeln(m);
Readln
End.
Пусть дано n=27.
X1:= 27 mod 10 = 7
X2:= 27 div 10 = 2
M:=7*10+2 = 72, что и требовалось получить.
К сожалению, таким образом, мы можем определить лишь крайние цифры числа. А если
цифра, которая нам нужна, стоит не с краю? Не беда, сделаем ее крайней.
Например, дано трехзначное число, надо определить среднюю цифру числа.
Пусть а=246
B:=a div 10 = 24
B:=b mod 10 = 4
Или по другому:
B:=a mod 100 = 46
B:=b div 10 = 4
Задания для тренировки.
1. Дано двузначное число. Найти:
a. число десятков в нем;
b. число единиц в нем;
c. сумму его цифр;
d. произведение его цифр.
2. Дано трехзначное число. Найти:
a. Число единиц в нем;
b. Число десятков в нем;
c. Сумму его цифр;
d. Произведение его цифр.
3. Дано трехзначное число. Найти число, полученное при прочтении его цифр справа
налево.
4. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее в
конце. Найти полученное число.
5. Дано трехзначное число. В нем зачеркнули последнюю справа цифру и приписали
ее в начале. Найти полученное число.
6. Дано трехзначное число. Найти число, полученное при перестановке первой и
второй цифр заданного числа.
7. Дано трехзначное число. Найти число, полученное при перестановке второй и
третьей цифр заданного числа.
8. *Дано вещественное число А, содержащее два знака до запятой и два после.
Получить новое число, поменяв в числе А целую и дробную части.
9. *В кассе имеются купюры достоинством в К рублей и в 1 рубль. Выдать N рублей
минимальным набором купюр заданного достоинства.
<<Назад