5

Click here to load reader

Ejercicios en Xlogo

Embed Size (px)

Citation preview

Page 1: Ejercicios en Xlogo

EJERCICIOS EN XLOGO

Juan Camilo Cala Baron

2112650

1 Numeros Complejos

1.1 Producto entre dos numeros complejos

El conjunto de los numeros complejos C = {a+ bi : a, b ∈ R} es el conformadopor los elementos de la forma z = a + bi con a, b numeros reales e i la unidadimaginaria. Se pueden representar como una pareja ordenada (a, b), siendo a lacomponente real y b la componente imaginaria de dicho numero.Ası, la entrada del programa procomp son dos listas con dos elementos [a b] [c d],que representan los dos numeros complejos a operar escritos en forma de parejaordena. La salida del programa es precisamente el resultado entre operar estosdos numeros complejos.

para procomp :z1 :z2haz ”a1 primero :z1haz ”b1 ultimo :z1haz ”a2 primero :z2haz ”b2 ultimo :z2haz ”a :a1*:a2-:b1*:b2haz ”b :a1*:b2+:a2*:b1haz ”pro []haz ”pro pp :a :prohaz ”pro pu :b :prodevuelve :profin

1.2 Enteros de Gauss

El conjunto Z[i] = {a + bi : a, b ∈ Z} es llamado el conjunto de los enteros deGauss. Es el conjunto de los numeros complejos de la forma z = a+ bi siendo ila unidad imaginaria y a, b numeros enteros.Entonces la entrada del programa multcomp es un numero complejo [a b] (preferi-blemente un entero gaussiano) representado en forma de pareja ordenada, unentero positivo k y una lista vacıa [ ]. Como salida, el programa genera todoslos enteros de Gauss de la forma [i j] donde 0 ≤ i ≤ k, 0 ≤ j ≤ k y opera cadauno estos con [a b] mediante el programa procomp. Ası, se producen (k + 1)2

numeros complejos como resultado.

1

Page 2: Ejercicios en Xlogo

para multcomp :z1 :k :mtcphaz ”ct 0repite :k+1 [haz ”cn 0 repite :k+1[haz ”mul []haz ”mul pp :ct :mulhaz ”mul pp :cn :mulhaz ”mtcp pp (procomp :z1 :mul) :mtcphaz ”cn :cn+1]haz ”ct :ct+1]haz ”mtcomp :mtcpescribe :mtcompfin

Para dibujar el resultado anterior se usa el programa dibmultcomp, cuya entradaes la misma usada en multcomp omitiendo la lista vacıa [ ]. El programa pintalas coordenadas (x, y) en el plano, siendo [x y] cada uno de los (k+1)2 numeroscomplejos obtenidos en multcomp.

para dibmultcomp :z :nmultcomp :z :n []pongrosor 1subelapiz otparacada ”mul :mtcomp [haz ”x primero :mulhaz ”y ultimo :mulponxy :x :y punto posicion]fin

2 Juego del Caos

Sean tres puntos no colineales en el plano A,B,C. Considere el experimentode seleccionar un punto de estos al azar (esto es, la probabilidad de seleccionarcualquier punto es la misma) y se toma un nuevo punto P0 en el plano. A con-tinuacion, se repite el experimento de seleccionar un punto al azar entre A,B,Cy se marca el punto medio P1 entre la distancia de P0 y el punto obtenido. Sevuelve a repetir el experimento hasta marcar P2, el punto medio entre P1 y elpunto obtenido. Se procede igualmente para obtener P3, P4, . . . y ası indefinida-mente hasta que resulta el “Triangulo de Sierpinski”.Se pueden obtener mas resultados si se varıa el numero de puntos iniciales enel plano y si el punto a marcar Pj no es necesariamente el punto medio. Porejemplo, si el numero de puntos es 4 y cada uno de ellos son vertices de unrectangulo, y si el punto marcado Pk en el experimento k+ 1 es la tercera partede la distancia entre el punto obtenido y Pk−1 , entonces lo que se obtiene es“Cantorlandia”.Para el programa jcaos, la entrada consiste en un liston de listas, esto es,[ [x y] [u v] . . . [z w] ] donde el numero de listas es el numero de puntos quese desee, siendo cada lista [x y] precisamente un punto A = (x, y) del planocartesiano. Se debe tener en cuenta que si el numero de listas dentro del liston

2

Page 3: Ejercicios en Xlogo

es n entonces el numero en azar de la lınea 6 se debe cambiar por n. El puntoinicial P0 = (Px, Py) puede ser cualquiera.

para jcaos :coord :itehaz ”px 20haz ”py 20subelapizrepite :ite[haz ”r azar 3haz ”migo elemento :r+1 :coordhaz ”nupx (:px+primero :migo)/2haz ”nupy (:py+ultimo :migo)/2ponxy :nupx :nupy poncolorlapiz :r punto posicionhaz ”px :nupxhaz ”py :nupy]fin

3 Secuencias

3.1 Secuencia de Thue-Morse

La secuencia de Thue-Morse es una sucesion de dıgitos binarios que se puededefinir recursivamente mediante la operacion concatenacion de palabras comosigue:

d0 = 0

dn+1 = dn · dn ; n ≥ 0

donde dn denota el complemento de dn. Por ejemplo, si di = 1101011 paraalgun i, entonces di = 0010100. Cabe resaltar que el k-esimo termino de lasecuencia tiene una longitud de 2k elementos.El programa thuemorse tiene como entrada un entero positivo n y una listavacıa [ ]. La salida de este programa es el n-esimo termino de la Sucesion deThue-Morse.

para thuemorse :n :stmhaz ”stm pp 0 :stmrepite :n [paracada ”c :stm[si :c=0 [haz ”stm pu 1 :stm]si :c=1 [haz ”stm pu 0 :stm]]]haz ”thm :stmescribe :thmfin

Para dibujar el resultado anterior, se definen parametros de longitud y rotacionpara cada termino de la sucesion, dependiendo si se encuentra 0 o 1. Para estose usa el programa dibthuemorse. Su entrada consiste en dos enteros positivos

3

Page 4: Ejercicios en Xlogo

n1, n2 y dos angulos θ1, θ2 . Se puede cambiar el n-esimo termino de la secuen-cia Thue-Morse en la lınea 3.

para dibthuemorse :l1 :l2 :a1 :a2poncolorpapel negrootthuemorse 13 []paracada ”c :thm[si :c=0 [avanza :l1 gd :a1 poncl [153 0 153]]si :c=1 [avanza :l2 gd :a2 poncl [255 255 0]]]fin

3.2 Secuencia de Paperfolding

Al igual que la secuencia de Thue-Morse, la secuencia de Paperfolding es unasucesion de dıgitos binarios que tambien se puede definir recursivamente medi-ante la operacion concatenacion por:

p0 = 1

pn+1 = pn · 1 · (pn)′ ; n ≥ 0

donde (pn)′ denota el complemento del inverso de pn. Por ejemplo, si se tuvieseque pj = 1101010 para algun j, entonces (pj)′ = (0101011) = 1010100. Caberesaltar que el k-esimo termino de la secuencia tiene una longitud de 2k+1 − 1elementos.El programa paperfolding tiene como entrada un entero positivo n y una listavacıa [ ]. La salida de este programa es el n-esimo termino de la Sucesion dePaperfolding.

para paperfolding :k :spfhaz ”spf pp 1 :spfhaz ”invrev []repite :k [haz ”inv invierte :spfhaz ”spf pu 1 :spfparacada ”t :inv[si :t=0 [haz ”spf pu 1 :spf ]si :t=1 [haz ”spf pu 0 :spf ]]]haz ”ppf :spffin

Para dibujar el resultado anterior, se definen parametros de longitud y rotacionpara cada termino de la sucesion, dependiendo si se encuentra 0 o 1. Para estose usa el programa dibpaperfolding. Su entrada consiste en dos enteros posi-tivos n1, n2 y dos angulos θ1, θ2 . Se puede cambiar el n-esimo termino de lasecuencia Paperfolding en la lınea 3.

para dibpaperfolding :a1 :a2 :l1 :l2poncolorpapel negrootpaperfolding 12 []

4

Page 5: Ejercicios en Xlogo

paracada ”c :ppf[si :c=0 [avanza :l1 gd :a1 poncl rojo ]si :c=1 [retrocede :l2 gd :a2 poncl verde ]]fin

3.3 Secuencias de ADN

El programa adn esta predeterminado para dibujar una secuencia de ADN con-formada por los nucleotidos A,G,C, T ; adenina, guanina, citosina y timina,respectivamente. Por lo tanto el programa tiene como entrada los parametrosde longitud y rotacion para cada termino de la secuencia, dependiendo si estees A,G,C o T . Los parametros son cuatro enteros positivos n1, n2, n3, n4 ycuatro angulos θ1, θ2, θ3, θ4 .

para adn :l1 :l2 :l3 :l4 :a1 :a2 :a3 :a4haz ”cadena ”AGCTparacada ”x :cadena [si :x=”A [poncl [255 153 0] avanza :l1 gi :a1 ]si :x=”T [poncl [0 255 51] avanza :l2 gi :a2 ]si :x=”G [poncl [51 255 255] avanza :l3 gd :a3 ]si :x=”C [poncl [255 255 0] avanza :l4 gd :a4 ]]fin

5