Las preguntas del examen vb2010 de nivel 2 de informática de la provincia de Jiangsu tienen respuestas, pero no sé cuál es el proceso, así que me gustaría pedirle a un experto en informática que las responda.
El resultado final debe ser 21 3 54 23 5 17 2
Explica principalmente la lógica principal del programa
Hacer
' ? Contador de subíndices de la matriz
K?=?K?+?1
'?Reasigna el espacio de la matriz conservando los datos originales
ReDim?Preserve? K)
'? Obtener la posición del primer espacio de S desde la izquierda
L?=?InStr(S, ?" ?"Si hay espacios en S< / p>
If?L<>0?Then
'? Almacene la primera cadena separada por espacios en S en la matriz A en orden (nota: dado que K aquí es acumulativo, puede ver que está en orden)
A(K)?=?Val(Left(S,?L-1))
'? arriba se reasigna a S
S?=?Right(S,?Len(S)? - si no hay espacios en S (nota: esto manejará la división por espacios del último párrafo)
De lo contrario
'? Almacena la última cadena dividida en la matriz
A(K)? =?Val(S )
End?If
¿Loop?Util?L?=?0
'? Después del procesamiento anterior, A?=?["21", ?" 23",?" 2",? " 3",?" 5",?" 17",?" 54"]
'?Call Exchange(Integer())
Call?Exchange(A) p>
Aquí hay un poco sobre Exchange'. Establezca la variable de subíndice Punto1 (nota: este subíndice se usa principalmente para intercambiar datos)
Punto1?= ?1
'? Recorra el procesamiento A (nota: este procesamiento consiste en mover todos los números en A que son divisibles por 3 al frente de la matriz en el orden de aparición)
¿Para? ?UBound(A)
'? Si A(i) es divisible por 3, intercambie los valores de A(i) y A(Point1) (eventualmente todos los valores se puede dividir por 3 3 Los números divisibles se mueven al frente de la matriz en el orden de aparición)
If?A(i)?Mod?Asigne el valor de A(i) a la variable temporal Tema
Tema ?=?A(i)
A(i)?=?A(Punto1)
A(Punto1)?=?Tem
Punto1?= ?Punto1?+?1
¿Fin?Si
¿Siguiente?