Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
2020-12-06 | 662 |
5.00
из
|
Заказать работу |
|
|
Решение
Алгоритм решения. Б ерется наименьшее натуральное число - единица и находятся остатки от деления его на 2, 3, 4, 5 и 6; если остатки будут равны 1, 2, 3, 4 и 5, тогда это число является искомым, его надо выдать на экран и закончить программу, в противном случае, надо брать следующее натуральное число - 2 и проверять его, и так далее.
Program Problem 6;
uses WinCrt;
var
n: integer;
begin
n:= 0;
repeat
n:= n + 1;
until (n mod 2 = 1) and (n mod 3 = 2) and (n mod 4 = 3) and
(n mod 5 = 4) and (n mod 6 = 5);
writeln('Искомое целое число ', n)
end.
Задача 7. Числа, одинаково читающиеся и слева направо, и справа налево, называются палиндромами. Например, числа 42324 или 1331 - палиндромы. Составьте программу, которая будет находить числа - палиндромы из заданного промежутка
Решение
Алгоритм решения. Переставить цифры в числе и сравнить полученное число с заданным.
Пусть заданное число a, тогда введем еще одну переменную b, которой будет присвоено значение переменной a (для чего это делается вы узнаете позже): b:= a;
Заведем еще одну переменную a1 для нового числа, в котором цифры уже будут переставлены.
Первоначальное значение этой переменной - ноль: a1:= 0;
Почему значение этой переменной равно нулю станет ясно из программы.
Далее организуем цикл repeat, в котором будет происходить перестановка цифр числа b:
repeat
a1:= a1*10 + b mod 10;
b:= b div 10
until b = 0;
Итак, в цикле, также как и в цикле while... do..., отделяется последняя цифра:
b mod 10; (например, 343 mod 10 = 3); переменной a1 присваивается значение:
a1:= a1*10 + b mod 10; 0 * 10 + 3 =3;
" отбрасывается " последняя цифра заданного числа с помощью операции целочисленного деления:
|
b:= b div 10; 343 div 10 = 34;
проверяется условие: b = 0, 34 = 0, условие не выполняется, значит цикл продолжается.
Отделяется последняя цифра уже нового числа:
b mod 10 = 34 mod 10;
новое число a1, уже равное 3, умножается на 10 и к результату прибавляется следующая цифра - 4:
a1:= a1*10 + b mod 10;
" отбрасывается " последняя цифра числа b:
b:= b div 10; 34 div 10 = 3;
проверяется условие: b = 0, 3 = 0; условие не выполняется, значит цикл продолжается.
Отделяется последняя цифра числа:
b mod 10; 3 mod 10 = 3;
формируется новое число:
a1:= a1*10 + b mod 10; 34 * 10 + 3 = 343;
" отбрасывается " последняя цифра числа и получается новое число:
b:= b div 10; 3 div 10 = 0;
проверяется условие: b = 0, 0 = 0; условие выполняется, значит цикл заканчивается.
Теперь становится ясно, почему введена другая переменная b для заданного числа, ее значение в цикле меняется от начального до нуля и, чтобы сохранить заданное число в переменной a, и вводится, так сказать, " рабочая " переменная - b.
После окончания цикла перестановки цифр числа, сравнивается первоначальное число, которое " сохранилось " в переменной a и число, которое получилось после перестановки цифр и " накопилось " в переменной a1.
Если a = a1, тогда значение a выдается на экран, так как это число является палиндромом.
Далее, значение a увеличивается на 1, т. е. берется для рассмотрения следующее по порядку натуральное число и снова продолжается внешний цикл. Цифры числа переставляются, полученное новое число после перестановки цифр - a1, сравнивается с первоначальным a и так далее.
Внешний цикл заканчивается, когда значение a становится равным правой границе интервала - n.
Program Problem 7;
uses Crt;
var
m, n, a, b, a1: longint;
begin
write('Введите левую границу промежутка '); readln(m);
write('Введите правую границу промежутка '); readln(n);
a:= m;
writeln('Числа палиндромы из [', m, ';', n, ']');
repeat
b:= a; a1:= 0;
repeat
a1:= a1*10 + b mod 10;
b:= b div 10
until b=0;
if a1 = a then write(a, ' ');
|
a:= a + 1
until a > n;
end.
Задача 8. Программа, подсчитывающая сумму цифр числа.
Решение
Program Sum; { Сумма цифр числа }
uses Crt;
var
n, s, a: integer;
begin
write(' Введите целое число '); readln(n);
a:= n; s:= 0;
repeat
s:= s + n mod 10; n:= n div 10
until n = 0;
writeln(' Сумма цифр числа ', a, ' равна ', s)
end.
Задача 9. Программа перестановки первой и последней цифр в числе:
Решение
Program Transpose;
uses Crt;
var
n, n1, p, a, i: longint;
begin
write('Введите натуральное число n '); readln(n);
a:= n; i:= 1;
p:= n mod 10; {последняя цифра введенного числа}
repeat
i:= i*10; n:= n div 10
until n<10;
n1:= a - n*i - p + n + p*i;
writeln('Число после перестановки цифр ', n1)
end.
Задача 10. Если мы сложим все цифры какого-либо числа, затем - все цифры найденной суммы и будем повторять это много раз, мы наконец получим однозначное число (цифру), называемое цифровым корнем данного числа. Например, цифровой корень числа 561 равен 3 (5 + 6 + 1 = 12; 1 + 2 = 3). Составьте программу для нахождения числового корня числа.
Решение
Program Problem10; { Цифровой корень числа }
uses Crt;
var
n, a, s: integer;
begin
write('Введите натуральное число '); readln(n);
a:= n;
repeat
s:= 0;
while n <> 0 do
begin
s:= s + n mod 10; n:= n div 10
end;
n:= s
until n < 10;
writeln('Цифровой корень числа ', a, ' равен ', n)
end.
Задача 11. Составить программу определения всех делителей числа n.
Решение
Способ
Program Problem11; { Простой алгоритм. 1 - способ }
uses Crt;
var
n, d: integer;
begin
write(' Введите целое число '); readln(n);
d:= 1;
writeln('Делители числа ', n);
repeat
if n mod d = 0 then write(d, ' ');
d:= d + 1
until d > n div 2;
write(n)
end.
Способ
Program Problem 1 1a; { Делители числа. 2 - способ }
uses Crt;
var
n, d: integer;
begin
write(' Введите целое число '); readln(n);
writeln('Делители числа ', n);
d:= 1;
while d*d < n do
begin
if n mod d=0 then write(d, ' ', n div d, ' ');
d:= d + 1
end;
if d*d = n then write(d); writeln
end.
|
|
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!