<<Назад

Целочисленная арифметика.


Очень часто необходимо чтобы программа определила, из каких цифр состоит число, или определила разряд заданной цифры или наоборот цифру в заданном разряде. Если вы попросите человека решить эту задачу, проблем не возникнет, а как быть с компьютером. Для него любое число это набор нулей и единиц, т.е. двоичный код. В отличие от нас компьютер все действия выполняет в двоичной системе. Например, число 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 рублей минимальным набором купюр заданного достоинства.

 <<Назад

Hosted by uCoz