Паскаль. Основы программирования


Задание 1


1. Введите эту программу и выполните.

2. Составьте программу, которая подсчитывает сумму цифр заданного числа.

Пример 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 получает первое значение,




Начало  Назад  Вперед



Книжный магазин