Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Топ:
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Решение
Алгоритм. Найдем цифры числа 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.
|
|
|
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!