Преобразовать числовую строку по правилу - QBasic

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

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

Дано число в виде строки S. Требуется каждый элемент этой строки заменить на 1. Если элемент четная цифра, то заменить на большую рядом стоящую цифру 2. Если элемент нечетная цифра, то заменить на меньшую рядом стоящую цифру. примечание Дано число 12345. Числа 1 и 5 считаются рядом стоящими. Данная программа решила задачу, создав новую строку... Как сделать замену? Есть мысль ввести пару переменных? Как?

Решение задачи: «Преобразовать числовую строку по правилу»

textual
Листинг программы
DECLARE FUNCTION max! (a!, b!)
DECLARE FUNCTION min! (a!, b!)
DECLARE FUNCTION M$ (n!)
DECLARE FUNCTION STO$ (u!)
DECLARE SUB STRO (i!)
 
CLS
DIM SHARED s AS STRING
 
s = "4915440847"
PRINT s
PRINT
 
CALL STRO(1)
 
PRINT s
END
 
FUNCTION M$ (n)
   M = MID$(s, n, 1)
END FUNCTION
 
FUNCTION max (a, b)
   IF a > b THEN max = a ELSE max = b
END FUNCTION
 
FUNCTION min (a, b)
   IF a < b THEN min = a ELSE min = b
END FUNCTION
 
FUNCTION STO$ (u)
   STO = LTRIM$(STR$(u))
END FUNCTION
 
SUB STRO (i)
   IF i > LEN(s) THEN EXIT SUB
   
   SELECT CASE i
   CASE 1
      j = LEN(s) : k = 2
   CASE LEN(s)
      j = i - 1 : k = 1
   CASE ELSE
      j = i - 1 : k = i + 1
   END SELECT
 
   n1 = VAL(M(j))
   ni = VAL(M(i))
   n2 = VAL(M(k))
 
   CALL STRO(i + 1)
 
   IF ni MOD 2 THEN
      MID$(s, i, 1) = STO(min(n1, n2))
   ELSE
      MID$(s, i, 1) = STO(max(n1, n2))
   END IF
END SUB

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


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

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

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