Преобразовать числовую строку по правилу - QBasic
Формулировка задачи:
Дано число в виде строки S. Требуется каждый элемент
этой строки заменить на
1. Если элемент четная цифра, то заменить на большую
рядом стоящую цифру
2. Если элемент нечетная цифра, то заменить на меньшую
рядом стоящую цифру.
примечание
Дано число 12345. Числа 1 и 5 считаются рядом стоящими.
Данная программа решила задачу, создав новую строку...
Как сделать замену?
Есть мысль ввести пару переменных? Как?
Листинг программы
- DECLARE FUNCTION M$ (n!)
- DECLARE FUNCTION STO$ (u!)
- CLS
- DIM SHARED s AS STRING
- DIM t AS STRING
- s = "4915440847"
- PRINT s
- s = M(10) + s + M(1)
- FOR i = 2 TO 11
- n1 = VAL(M(i - 1))
- ni = VAL(M(i))
- n2 = VAL(M(i + 1))
- IF ni MOD 2 THEN
- IF n1 > n2 THEN
- t = t + STO(n2)
- ELSE
- t = t + STO(n1)
- END IF
- ELSE
- IF n1 > n2 THEN
- t = t + STO(n1)
- ELSE
- t = t + STO(n2)
- END IF
- END IF
- NEXT
- PRINT t
- END
- FUNCTION M$ (n)
- M = MID$(s, n, 1)
- END FUNCTION
- FUNCTION STO$ (u)
- STO = LTRIM$(STR$(u))
- END FUNCTION
Решение задачи: «Преобразовать числовую строку по правилу»
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
- 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д