Scheme 创建、显示和返回随机数
我需要单独捕捉函数numerosR的数字,因为我需要它们 知道所有数字的大数、小数和平均数,但我不知道 这是我的代码:Scheme 创建、显示和返回随机数,scheme,mit-scheme,Scheme,Mit Scheme,我需要单独捕捉函数numerosR的数字,因为我需要它们 知道所有数字的大数、小数和平均数,但我不知道 这是我的代码: (clear) (display "Ingrese un Numero entre 10 y 40: ") (define Numero (read)) ; Funcion numerosRamdon genera numeros aleatoreos entre 10 y 150 ; agrupados por columnas de 10 numeros (define
(clear)
(display "Ingrese un Numero entre 10 y 40: ")
(define Numero (read))
; Funcion numerosRamdon genera numeros aleatoreos entre 10 y 150
; agrupados por columnas de 10 numeros
(define (numerosRandom)
(define contador 1)
(define contadorColumnas 1)
(define (ciclo)
(define numerosR (+ (random 141) 10))
(if (and (>= Numero 10)
(<= Numero 40)
(<= contadorColumnas 10))
(if (<= contador Numero)
(begin
(display numerosR)
(display #\space)
(set! contador (+ contador 1))
(set! contadorColumnas (+ contadorColumnas 1))
(ciclo)))
(begin
(newline)
(set! contadorColumnas 1)
(ciclo))))
(ciclo))
(numerosRandom)
(清除)
(显示“入口编号中心10 y 40:”)
(定义数字(读取))
; 第10和第150页的数字功能
; 阿格鲁帕多斯10号专栏
(定义(数值随机)
(定义contador 1)
(将列定义为1)
(定义(ciclo)
(定义numerosR(+(随机141)10))
(如果(和(>=数字10)
(此代码重写numerosRandom
以将随机数的生成与其显示分开。它还将随机数作为列表返回。numerosRandom
的开头保持不变
(define (numerosRandom)
(define contador 1)
现在circlo
只做一件事。它创建一个随机数列表。现在circlo
接受一个参数-一个用于累积随机数的列表
(define (circlo accumulator)
(define numerosR (+ (random 141) 10))
(cond
((= contador Numero)
(reverse accumulator))
(else
(set! contador (+ contador 1))
(circlo (cons numerosR accumulator)))))
(define (print-numerosR numeros contadorColumnas)
(cond ((null? numeros) "")
((<= contadorColumnas 10)
(display (car numeros))
(display #\space)
(print-numerosR (cdr numeros)
(+ contadorColumnas 1)))
(else
(newline)
(display (car numeros))
(display #\space)
(print-numerosR (cdr numeros)
(+ contadorColumnas 1)))))
一个新的本地函数print numerosR
显示随机数
(define (circlo accumulator)
(define numerosR (+ (random 141) 10))
(cond
((= contador Numero)
(reverse accumulator))
(else
(set! contador (+ contador 1))
(circlo (cons numerosR accumulator)))))
(define (print-numerosR numeros contadorColumnas)
(cond ((null? numeros) "")
((<= contadorColumnas 10)
(display (car numeros))
(display #\space)
(print-numerosR (cdr numeros)
(+ contadorColumnas 1)))
(else
(newline)
(display (car numeros))
(display #\space)
(print-numerosR (cdr numeros)
(+ contadorColumnas 1)))))
笔记
因为随机数列表numerosR
是numerosRandom
计算的最后一项,所以它总是返回
通过将其作为附加值传递给circlo
,消除contador
的突变将是一个很好的练习