Programa que permite contar los dígitos dentro de un vector
1. (define captura-vector
2. (λ (v)
3. (do ((i 0(+ i 1)))((>= i (vector-length v)))
4. (display "Digite valor para la posición ")
5. (display i)
6. (display " : ")
7. (vector-set! v i (read))
8. )
9. )
10. )
la función anterior nos sirve para capturar valores que serán almacenados en un vector; mediante el ciclo do desde la línea 3 a la 8 se realice el recorrido del vector e inclusión en él de los valores digitados por el usuario.
Luego,
1. (define cuenta-vector
2. (λ (v1 v2)
3. (do ((i 0(+ i 1)))((>= i (vector-length v1)))
4. (vector-set! v2 (vector-ref v1 i) (+ 1 (vector-ref v2 (vector-ref v1 i))))
5. )
6. )
7. )
se crea la función cuenta-vector que permite contar los dígitos almacenados en el vector v1 y almacenarlos en el vector v2 como se observa en la expresión de la línea 4 de código de la función.
Después,
1. (define muestra-resultados
2. (λ (v1 v2)
3. (display "\nVector digitos: ")
4. (display v)
5. (newline)
6. (do ((i 0(+ i 1)))((>= i (vector-length v1)))
7. (display "Cantidad de ")
8. (display i)
9. (display " en dígitos : ")
10. (display (vector-ref v2 i))
11. (newline)
12. )
13. )
14. )
Esta función permite imprimir en pantalla el primer vector v1y luego con el ciclo do hace el recorrido del segundo vector v2 imprimiendo su contenido.
Por último,
1. (begin
2. (define digitos(make-vector 8))
3. (define contador(make-vector 10))
4. (captura-vector digitos)
5. (cuenta-vector digitos contador)
6. (muestra-resultados digitos contador)
7. )
se diseña el bloque principal con la creación de los dos vectores; el primero denominado dígitos y el segundo con el vector llamado contador con 8 y 9 posiciones respectivamente, para posteriormente nombrarlos en el llamado a las tres funciones (captura-vector, cuenta-vector y muestra-resultados) en las líneas 4, 5 y 6 de código del bloque y creadas al inicio de programa.