Задача 1. Определить и вывести на экран цифры целого числа n. — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Задача 1. Определить и вывести на экран цифры целого числа n.

2020-12-06 1374
Задача 1. Определить и вывести на экран цифры целого числа n. 0.00 из 5.00 0 оценок
Заказать работу

 

Решение

Алгоритм. Найдем цифры числа 4538. Для этого надо найти остаток от деления 4538 на 10 с помощью операции нахождения остатка от деления целых чисел (mod):

 4538 mod 10 = 8, получим последнюю цифру числа (она же является первой справа).

Выдаем сообщение: "1 - я цифра справа равна 8".

После этого выполним целочисленное деление заданного числа 4538 на 10, получим 453 (остаток отбрасывается):

4538 div 10 = 453.

Далее процесс повторяем:

                     2 - й раз;              453 mod 10 = 3

2 - я цифра справа равна 3,

                                                     453 div 10 = 45,

                   3 - й раз;              45 mod 10 = 5,

                                                  3 - я цифра справа равна 5,

                                                     45 div 10 = 4,

                     4 - й раз;             4 mod 10 = 4,

                                                  4 - я цифра справа равна 4,

                                                  4 div 10 = 0.

Program Problem1; {Опред. и вывод на экран цифр числа.}

uses Crt;

var

  n, p, i: integer;

begin

  write('Введите натуральное число n <= 32767 '); readln(n);

  i:= 1;

  while n <> 0 do

     begin

        p:= n mod 10;

        writeln(i, ' - я цифра справа равна ', p);

        n:= n div 10;

        i:= i + 1

     end

end.

Задача 2. Составить программу перестановки первой и последней цифр введенного натурального числа.

 

Решение

Алгоритм. Пусть пользователем введено число 4538. После перестановки первой и последней цифр число станет таким: 8534.

Определить последнюю цифру числа нетрудно. Это можно сделать уже известным нам способом: 4538 mod 10.

Чтобы найти и отделить первую цифру числа, надо использовать прием, который применялся в предыдущих программах для вывода цифр числа и для подсчета суммы цифр, т. е. отделять по одной цифре справа. Но, если в предыдущих программах такой процесс продолжался до тех пор пока n <> 0 (n не равнялось нулю), а когда n становилось равным нулю, то цикл заканчивался т. е. все цифры, включая первую, отделялись, то теперь надо этот процесс остановить на одну цифру раньше и тогда последним значением переменной n будет первая цифра числа.

В нашем примере она равна 4.

Итак, первая и последняя цифры найдены. Как переставить их в числе.

Для введенного нами числа это можно сделать так. Вычесть из него первую цифру, умноженную на 1000 и вычесть последнюю цифру:

4538 - 4 1000 - 8 = 530.

К полученному результату прибавить последнюю цифру - 8, умноженную на 1000 и прибавить первую цифру: 530 + 8 1000 + 4 = 8534.

Две последние операции можно записать в одной строке:

4538 - 4 1000 - 8 + 8 1000 + 4 = 8534.

Возникает одна трудность. Как определить разряд, в котором находится первая цифра числа (первая слева) и на сколько надо умножить ее при вычитании? Тысячи ли это, десятки тысяч или другой разряд?

Для того, чтобы это выяснять заведем переменную, первоначальное значение которой 1, а затем, каждый раз при отделении цифры она умножается на 10.

Посмотрим весь процесс на примере того же числа 4538.

Первоначальные значения: n = 4538, i = 1.

Цикл продолжается пока n  10, 4538  10 - истина, значит операторы цикла выполняются первый раз: i:= i*10 = 1*10 = 10; - переменная i получает первое значение,

n:= 4538 div 10 = 453.

Проверка условия: 453  10 - условие выполняется, значит цикл выполняется второй раз: i:= i*10 = 10*10 = 100; n:= 453 div 10 = 45.

Проверка условия: 45  10 - истина, значит цикл выполняется третий раз:

i:= i*10 = 100*10 = 1000, n:= 45 div = 4.

Проверка условия: 4>=10 - ложь, значит операторы цикла не выполняются. Цикл заканчивается.

Конечные значения переменных: n = 4 - первая цифра числа, i = 1000. Теперь остается выполнить сам процесс перестановки цифр и выдать результат на экран.

 

Program Problem2; { Перест. первой и последней цифр числа }

uses Crt;

var

  n, n1, p, a, i: integer;

begin

write('Введите натуральное число n '); readln(n);

a:= n; i:= 1;

p:= n mod 10; {последняя цифра введенного числа}

while n >= 10 do

     begin

        i:= i*10;

        n:= n div 10;

     end;

n1:= a - n*i - p + n + p*i;

writeln('Число после перестановки цифр ', n1);

end.


Поделиться с друзьями:

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.