Написать программу в Паскале Дано натуральное число n (n<9999). а)сколько цифр в числе n? б)чему равна сумма его цифр? в)найти последнюю цифру числа. г)найти первую цифру числа. д ) найти предпоследнюю цифру числа ( в предположении , что n>10). е)дано число m. Найти сумму m- последних цифр числа n. ж)выяснить, входит ли цифра 3 в запись числа n. з)поменять порядок цифр числа n на обратный. и)переставить последнюю и первую цифры числа n.

14 Мар 2020 в 19:41
133 +1
0
Ответы
1

program NumberOperations;

var
n, m, num, sum, firstDigit, lastDigit, secondLastDigit, reversedNum, sumOfLastMDigits: integer;
contains3: boolean;

begin
// ввод числа n
write('Введите число n: ');
read(n);

// а) количество цифр
num := n;
num := abs(num);
while num > 0 do
begin
num := num div 10;
inc(sum);
end;
writeln('Количество цифр в числе n: ', sum);

// б) сумма цифр
sum := 0;
while n > 0 do
begin
sum := sum + (n mod 10);
n := n div 10;
end;
writeln('Сумма цифр числа n: ', sum);

// в) последняя цифра
lastDigit := n mod 10;
writeln('Последняя цифра числа n: ', lastDigit);

// г) первая цифра
firstDigit := 0;
while n <> 0 do
begin
firstDigit := n mod 10;
n := n div 10;
end;
writeln('Первая цифра числа n: ', firstDigit);

// д) предпоследняя цифра
n := n div 10; // убираем последнюю цифру
secondLastDigit := n mod 10;
writeln('Предпоследняя цифра числа n: ', secondLastDigit);

// е) сумма m последних цифр
write('Введите число m: ');
read(m);
sumOfLastMDigits := 0;
num := abs(n);
while m > 0 do
begin
sumOfLastMDigits := sumOfLastMDigits + (num mod 10);
num := num div 10;
dec(m);
end;
writeln('Сумма m последних цифр числа n: ', sumOfLastMDigits);

// ж) входит ли цифра 3
contains3 := false;
num := abs(n);
while num > 0 do
begin
if num mod 10 = 3 then
contains3 := true;
num := num div 10;
end;
if contains3 then
writeln('Цифра 3 входит в запись числа n')
else
writeln('Цифра 3 не входит в запись числа n');

// з) обратный порядок цифр
num := abs(n);
reversedNum := 0;
while num > 0 do
begin
reversedNum := reversedNum * 10 + (num mod 10);
num := num div 10;
end;
writeln('Число n с обратным порядком цифр: ', reversedNum);

// и) перестановка первой и последней цифры
num := abs(n);
lastDigit := num mod 10;
firstDigit := 0;
while num > 0 do
begin
firstDigit := num mod 10;
num := num div 10;
end;
num := (n - lastDigit) div 10;
num := num 10 + firstDigit;
num := num 10 + lastDigit;
writeln('Число n с переставленной первой и последней цифрой: ', num);

end.

18 Апр в 16:14
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир