Замена цифр числа,не используя массивов - QBasic

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Нужна помощь по данной задаче: С клавиатуры вводится число n и k (произвольные).Нужно заменить в числе n все нечетные цифры на данное число k(Создавать и использовать массивы нельзя). Н-р: Ввод: n=1233461 k=5 Вывод:m=1533551 Вообщем,не будь бы запрета на массив,то никаких проблем бы и не было,а так..Есть идея,как делать,но оформить в бэйсике не получается.Суть моей идеи в том,чтобы в цикле While n>0 брать последнюю цифру,проверять её на четность-и при надобности менять,с этим как бы разобрался,но проблема в самом сборе конечного числа. Заранее спасибо

Решение задачи: «Замена цифр числа,не используя массивов»

textual
Листинг программы
DECLARE FUNCTION M! (i!)
CLS
DIM SHARED N AS STRING
DIM k AS STRING
 
N = "1233461"
k = "5"
 
FOR i = 1 TO LEN(N)
   IF M(i) MOD 2 = 0 THEN MID$(N, i, 1) = k
NEXT i
PRINT N
END
 
FUNCTION M (i)
   M = VAL(MID$(N$, i, 1))
END FUNCTION

Объяснение кода листинга программы

В этом коде выполняется замена чётных цифр в числе, записанном в строке N, на число k.

  1. Объявляется функция M с одним аргументом i.
  2. В функции M происходит получение числового значения из строки с помощью функции VAL.
  3. В основной программе объявляются две строки: N и k.
  4. Строка N содержит число для обработки.
  5. Строка k содержит число, на которое должны быть заменены чётные цифры.
  6. Цикл FOR проходит по всем символам строки N.
  7. Если текущий символ является чётным числом, то он заменяется на число k с помощью функции MID$ и оператора присваивания.
  8. После завершения цикла выводится обновлённая строка N. Функция M и цикл FOR выполняются только один раз, так как количество итераций цикла определяется длиной строки N, а функция M используется только внутри цикла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5
Похожие ответы