Está en la página 1de 7

TALLER RECURSIVIDAD

1.
(define ( div a b )

( if ( = a 0 ) 0

(if ( = a 1 ) 1

( if ( = a b ) 1

( if ( = ( remainder a b ) 0 ) ( + 1 ( div a ( + b 1 ) ))

( div a ( + b 1 )))))))

( define ( divisores a )

( div a 1))

;(divisores 12)

;--------------------------------------------------------------------

2.

(define ( primo a )

( if ( = ( divisores a) 2 )

( display " Es primo ")

(display " No es primo ") ))

;(primo 107)

;--------------------------------------------------------------------

3.

(define ( 11primos a )

( if ( = a 31 )(display a )

( if ( or ( = ( divisores a ) 2 ))

( begin

( display a )

(display " " )

(11primos ( + a 1 ) ))

(11primos ( + a 1 )))))

;(11primos 2)
;---------------------------------------------------------------------

4.

(define ( cuadro a b c d )

( if ( and (>= a 5)(<= b 12)(<= c 20)(< d 6 ))

( begin

(display a) (display " ") ( display b)(display " ")(display c)

(newline)

(cuadro ( - a 1 )(+ b 3) ( + c ( * 2( - d 1 ))) ( - d 1 )) )

(display " ")))

(define ( cuadro2 a b c d )

( if ( and (<= a 4)(<= b 27)(<= c 20)(< d 6 ))

( begin

(display a) (display " ") ( display b)(display " ")(display c)

(newline)

(cuadro2 ( - a 1 )(+ b 3) ( - c( * 2 (+ d 1 ))) ( + d 1) ))

(display " ")))

(cuadro 9 0 0 5)

(cuadro2 4 15 20 0)

;----------------------------------------------------------------------

5.

(define (1espacios a e)

(if (<= a e)

(begin

(display " ")

(1espacios (+ a 1) e )

)(display " ")

)
)

(define (1cantidadp c p )

(if ( <= c p )

(begin

(display "P")

(1cantidadp ( + 1 c ) p )

)(display " ")

(define (1principal c e p)

(if (<= c 15)

(begin

(1espacios 1 e )

(1cantidadp 1 p )

(newline)

(1principal ( + c 1 ) ( + e 1 ) ( - p 2 ) )

)(display " ")

(1principal 1 0 13)

;-------------------------------------------------------------------------------------------------

6.

(define ( espacios n )

( if ( > n 0 )

(begin
( display " ")

(espacios ( - n 2 )))

(display " ")))

(define ( cantidadp n )

(if ( >= n 1 )

(begin

(display "P")

(cantidadp ( - n 1 )))

(display " ")))

(define(principal n )

(if ( <= n 12 )

(begin

(espacios n )

(cantidadp ( - 13 n ))

(newline )

(principal ( + n 2 )))

(display " ")))

(principal 0)

(define ( espacio n )

( if ( > n 0 )

(begin

( display " ")

(espacio ( - n 2 )))

(display " ")))

(define ( cantidadp2 n )

(if ( >= n 1 )
(begin

(display "P")

(cantidadp2 ( - n 1 )))

(display " ")))

(define(principal2 n )

(if ( >= n 0)

(begin

(espacio n )

(cantidadp2 ( - 13 n ))

(newline )

(principal2 ( - n 2 )))

(display " ")))

(principal2 10)

;----------------------------------------------------------------------------------------

7.

(define ( espacios a)

(display " ") (display " ") (display " ") (display " ") (display " ") (display " ") (display " ")

(display " ") (display " ") (display " ") (display " ") (display " ") (display " ") (display " ")

(display " ") (display " ") (display " ") (display " ") (display " ") (display " ") (display " ")

(display " ") (display " ") (display " ") (display " ") (display " ") (display " ") (display " ")

(define( espacio1 a )

(if ( >= a 1 )

(begin

(display " ")

(espacio1 (- a 1 )))

(display " ")))


(define ( cantidadp a )

(if ( >= a 0)

(begin

(display "A")

(cantidadp ( - a 2 )))

(display " ")))

(define (principal a)

(if ( <= a 12 )

(begin

(espacios a )

(cantidadp (- a 2))

(espacio1 (- 13 a) )

(cantidadp ( - a 2 ))

(newline)

(principal ( + a 2)))

(display " ")))

(define(principal1 a )

(if ( >= a 2 )

(begin

(espacios a )

(cantidadp (- a 2))

(espacio1 (- 13 a ))

(cantidadp ( - a 2 ))

(newline)

(principal1 ( - a 2)))

(display " ")))


(principal 2 )

(principal1 10)

También podría gustarte