1. Напишите программу на Паскале, которая находит все трехзначные числа, которые при делении на 15 дают в остатке

1. Напишите программу на Паскале, которая находит все трехзначные числа, которые при делении на 15 дают в остатке 11 и при делении на 11 дают в остатке 9.
2. Напишите программу на Паскале, которая находит факториал натурального числа n. Факториал обозначается как n! и равен произведению всех натуральных чисел от 1 до n. Например, 5! = 1 * 2 * 3 * 4 * 5 = 120.
3. Найдите все трехзначные числа Армстронга. Число называется числом Армстронга, если сумма цифр числа, возведенных в n-ную степень (где n - количество цифр в числе), равна самому числу. Например, 153 = 1^3 + 5^3 + 3^3.
Евгения

Евгения

Конечно! Вот ваш подробный ответ с пошаговыми решениями:

1. Для решения данной задачи, напишем программу на Паскале следующим образом:

Pascal
program FindNumbers;
var
num: integer;
begin
for num := 100 to 999 do
begin
if (num mod 15 = 11) and (num mod 11 = 9) then
writeln(num);
end;
end.


Рассмотрим пошагово:

- `program FindNumbers;` - объявление программы с названием "FindNumbers".
- `var num: integer;` - объявление переменной "num", которая будет использоваться для проверки всех трехзначных чисел.
- `begin` - начало основной части программы.
- `for num := 100 to 999 do` - цикл, который перебирает все трехзначные числа от 100 до 999.
- `if (num mod 15 = 11) and (num mod 11 = 9) then` - условие, которое проверяет, является ли число "num" остатком 11 при делении на 15 и остатком 9 при делении на 11.
- `writeln(num);` - вывод числа "num", которое удовлетворяет условию.
- `end.` - конец программы.

Таким образом, эта программа найдет все трехзначные числа, которые при делении на 15 дают в остатке 11 и при делении на 11 дают в остатке 9.

2. Для нахождения факториала натурального числа "n" воспользуемся рекурсией. Вот пример программы на Паскале:

Pascal
program Factorial;
var
num, result: integer;

function FindFactorial(n: integer): integer;
begin
if n = 0 then
FindFactorial := 1
else
FindFactorial := n * FindFactorial(n - 1);
end;

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

if num < 0 then
writeln("Факториал не определен для отрицательных чисел.")
else
begin
result := FindFactorial(num);
writeln("Факториал ", num, "! = ", result);
end;
end.


Вот пояснение:

- `program Factorial;` - объявление программы с названием "Factorial".
- `var num, result: integer;` - объявление переменных "num" и "result", которые будут использоваться для ввода числа и хранения результата.
- `function FindFactorial(n: integer): integer;` - определение функции "FindFactorial", которая будет рекурсивно находить факториал числа "n".
- `begin` - начало основной части программы.
- `if n = 0 then` - базовый случай: если "n" равно 0, то факториал равен 1.
- `FindFactorial := n * FindFactorial(n - 1);` - рекурсивный случай: факториал равен произведению числа "n" и факториала предыдущего числа.
- `write("Введите натуральное число n: ");` - просим пользователя ввести натуральное число "n".
- `readln(num);` - считываем число "n" с клавиатуры.
- `if num < 0 then` - проверяем, является ли число "n" отрицательным.
- `writeln("Факториал не определен для отрицательных чисел.");` - выводим сообщение об ошибке, если число "n" отрицательное.
- `result := FindFactorial(num);` - вызываем функцию "FindFactorial" для вычисления факториала числа "num" и сохраняем результат в переменную "result".
- `writeln("Факториал ", num, "! = ", result);` - выводим результат: факториал числа "num" равен "result".
- `end.` - конец программы.

Таким образом, эта программа находит факториал введенного натурального числа "n".

3. Для нахождения всех трехзначных чисел Армстронга напишем следующую программу на Паскале:

Pascal
program ArmstrongNumbers;
var
num, digit, sum, temp: integer;
begin
for num := 100 to 999 do
begin
temp := num;
sum := 0;

while temp > 0 do
begin
digit := temp mod 10;
sum := sum + digit * digit * digit;
temp := temp div 10;
end;

if sum = num then
writeln(num);
end;
end.


Проанализируем шаги программы:

- `program ArmstrongNumbers;` - объявление программы с названием "ArmstrongNumbers".
- `var num, digit, sum, temp: integer;` - объявление переменных "num" (трехзначное число), "digit" (цифра числа), "sum" (сумма цифр, возведенных в n-ную степень), и "temp" (временная переменная).
- `begin` - начало основной части программы.
- `for num := 100 to 999 do` - цикл, который перебирает все трехзначные числа от 100 до 999.
- `temp := num;` - сохраняем значение текущего числа "num" во временной переменной "temp".
- `sum := 0;` - обнуляем переменную "sum".
- `while temp > 0 do` - цикл, который выполняется, пока значение "temp" больше 0.
- `digit := temp mod 10;` - находим последнюю цифру числа "temp" и сохраняем ее в переменную "digit".
- `sum := sum + digit * digit * digit;` - добавляем к сумме значение цифры, возведенной в куб.
- `temp := temp div 10;` - удаляем последнюю цифру числа "temp".
- `if sum = num then` - условие, которое проверяет, равна ли сумма цифр, возведенных в куб, числу "num".
- `writeln(num);` - выводим число "num", которое является числом Армстронга.
- `end.` - конец программы.

Таким образом, эта программа находит все трехзначные числа Армстронга, где сумма цифр, возведенных в куб, равна самому числу.
Знаешь ответ?
Задать вопрос
Привет!
hello