miércoles, 14 de octubre de 1998

Activando diez tortugas para hacerlas avanzar en fila india. Un ejercicio de programación en WinLogo (LOGO)

; ---------------------------------------------------------
; Deu tortugues avançant en fila índia
;
;    © Joan Aranes Clua, 1998
                CC BY 4.0
; ---------------------------------------------------------
procediment Posa.fila
fes.actives [1 2 3 4 5 6 7 8 9 10] no.llapis
per.a.cada [ fes.forma 116 posa't llista (200 - actives * 30) 0]
fi

procediment Avança.fila
per.a.cada [si coor.x < -200 [acaba]]
per.a.cada 
  [
    orienta't 270 
    av 10 
    fes.forma 117 
    toca 700 20 
    espera 20 av 10 
    fes.forma 116 
    espera 20 
  ]
  Avança.fila
fi

procediment Fila.índia ;procediment principal
  Posa.fila
  Avança.fila
fi

; ---------------------------------------------------------
; exemple d'ús
% id
% Fila.índia
% restaura.tortuga
% id


Círculo y circunferencia. Otro ejercicio de programación con WinLogo (LOGO)

; ---------------------------------------------------------
; Circunferència i cercle
;   Longitud d'una circunferència
;   Área d'un cercle
;
;    © Joan Aranes Clua, 1998
                CC BY 4.0
; ---------------------------------------------------------
procediment dibuixa.circumferència :radi
  repeteix 360 [av 2*pi*:radi/360 gd 1]
fi

procediment pinta.cercle :radi 
  no.llapis gd 90 av 3 fes.color 11 llapis pinta
  no.llapis recula 3 ge 90 fes.color 1 llapis
fi

procediment cercle
  esborra.text
  escriu.seguit [Digueu el radi: $ ]
  posa.a "radi paraula.llegida
  inicia.dibuix
  dibuixa.circumferència :radi
  pinta.cercle :radi 
  (escriu [La longitud de la circumferència de radi] :radi [és igual a] 2*pi*:radi)
  (escriu [L'àrea del cercle de radi] :radi [és igual a] pi*:radi*:radi)
  mou.cursor [4 6]
  escriu [Voleu continuar ? (s/n)]
  posa.a "resposta caràcter.llegit
  si :resposta = "n [acaba]
  cercle
fi
; ---------------------------------------------------------
% cercle ;exemple d'ús

miércoles, 7 de octubre de 1998

Greca (voluta amb trams rectilinis) i sanefa

;----------------------------------------------------------
; Aquest programa dibuixa una greca i la reprodueix
; com una sanefa en una dirección (esquerra-dreta)
;
;   © Joan Aranes Clua, 1998
; ----------------------------------------------------------

procediment greca
fes.gruix 5
av 50 gd 90
av 50 gd 90
av 40 gd 90
av 30 gd 90
av 20 gd 90
av 10 gd 90
av 10 ge 90
av 10 ge 90
av 20 ge 90
av 30 ge 90
av 40 ge 90
av 50 ge 90
fi

procediment sanefa
id
no.llapis
ge 90 av 100 gd 90
llapis
fes.color 10
fes.fons 12
repeteix 4 [greca]
fes.color 1
fi
; ----------------------------------------------------------

% sanefa ;exemple d'ús

Un conjunto de espirales equiangulares, cada una con un valor de ángulo de giro distinto

;----------------------------------------------------------
; Aquest programa dibuixa un seguit d'espirals equiangulars
; l'angle de les quals va canviant d'una a l'áltra
;
;   © Joan Aranes Clua, 1998
; ----------------------------------------------------------

procediment espiral :angle
fes.local "costat posa.a "costat 4
inicia.dibuix
fes.color (atzar 255)+1
rep 100 [av :costat gd :angle posa.a "costat :costat+1]
fi

procediment pel.lícula 
fes.local "angle posa.a "angle 1
fes.fons 1
repeteix 360 [espiral :angle espera 100 posa.a "angle :angle+1]
fi 
;------------------------------------------------------------

% pel.lícula 1

Espiral equiangular con una instrucción para terminar el programa

;----------------------------------------------------------
; Aquest programa dibuixa una espiral una corba espiral,
; i consta d'un "sensor" per tal que el programa s'aturi
; quan la tortuga surti 
; d'un marc rectangular de mida donada
;
;   © Joan Aranes Clua, 1998
; ----------------------------------------------------------

procediment Dibuixa.espiral :angle :costat 
av :costat gd :angle posa.a "costat :costat+1
si detecta 1 [acaba][Dibuixa.espiral :angle :costat]
fi

procediment Espiral :angle :costat
inicia.dibuix
fes.fons 52 fes.color 9
desapareix
sensor [-150 150 150 -150]
Dibuixa.espiral :angle :costat
fi
;-----------------------------------------------------------
% Espiral 112 1
% fes.lupa 1

lunes, 5 de octubre de 1998

Simulación de l movimiento de la aguja minutera de un reloj analógico con WinLogo

;---------------------------------------
;   Simulación del movimiento de la
;   aguja minutera de un 
;   reloj analógico
;       © Joan Aranes Clua, 1998
;---------------------------------------

procediment rellotge
id
fes.gruix 2
disc_horari
fes.gruix 1
agulla_minutera
fi

procediment agulla_minutera
desapareix
repeteix 999 [llapis av 60 espera 100 goma recula 60 gd 6]
fi

procediment disc_horari
repeteix 12 [no.llapis av 70 llapis av 20 no.llapis recula 90 gd 30]
fi
;---------------------------------------

% rellotge