; -------------------------------------- ; Una flor, amb els seus pètals -------- ; © Joan Aranes Clua, 1999 ;--------------------------------------- procediment flor :n :color id repeteix :n [petal :color gd 360 / :n] fi procediment petal :color repeteix 2 [repeteix 90 [av 1 gd 1] gd 90] no.llapis gd 45 av 50 llapis fes.color :color pinta no.llapis centre ge 45 llapis fes.color 1 fi flor 15 10 ;demo
Un blog con cuestiones, ejercicios, problemas, aplicaciones y comentarios relacionados con los contenidos de Matemáticas del segundo curso de ESO
miércoles, 6 de octubre de 1999
Una flor y sus pétalos. Un ejercicio de programación en WinLogo (Logo)
Etiquetas:
flor y sus pétalos,
Logo,
WinLogo
martes, 5 de octubre de 1999
Simulación de un sencillo billar rectangular empleando el lenguaje WinLogo
;-------- Simulació d'un billar rectangular -- ; © Joan Aranes Clua, 1999 ;--------------------------------------------- procediment Posa.marc.i.bola inicia.dibuix restaura.tortuga fes.color 1 no.llapis posa't [-202 -92] llapis posa't [-202 92] posa't [202 92] posa't [202 -92] posa't [-202 -92] no.llapis centre llapis fes.forma 87 fes.color 10 orienta't atzar 360 sensor [-200 90 200 -90] fi procediment Mou.bola fes.local "xx fes.local "yy no.llapis posa.a "xx coor.x posa.a "yy coor.y posa.a "rumb orientació av 1 si detecta 1 [fes.x :xx fes.y :yy Canvia.direcció] Mou.bola fi procediment Canvia.direcció posa.a "canvi 2*abs(residu orientació 90) gira.dreta :canvi*(potència -1 atzar 2) fi procediment A.jugar Posa.marc.i.bola Mou.bola fi A.jugar
Etiquetas:
billar rectangular,
Logo,
WinLogo
La divisibilitat dels nombres enters positius
- Introducció
- A la recerca dels nombres primers
- Màxim comú divisor i mínim comú múltiple de dos nombres enters positius
1. Introducció
Aquí hi trobareu una proposta metodològica encarada a l'estudi dels nombres primers i la divisibilitat fonamentada en l'experimentació per ordinador de diverses estratègies i processos. Vaig redactar aquestes notes, ja fa molts anys (1999). Els centres d'interès procedimental són l'algorisme d'Eratòstenes i d'altres alternatius elementals per a la recerca sistemàtica de nombres primers així com l'algorisme d'Euclides -- i d'altres més elementals -- per la determinació del mcd de dos nombres enters. Quant als conceptes hom incideix sobre les nocions de múltiples i divisors; en particular, les de màxim comú divisor i mínim comú múltiple. Pel que fa referència a l'educació d'actituds hom pretén fomentar una actitud activa, rigorosa i de descobriment quant a la valoració i verificació dels resultats, així com encoratjar l'alumnat a la comprensió i justificació de les propietats i teoremes matemàtics. Per bé que els algorismes figuren escrits segons els constructors del llenguatge WinLogo i, per tant, són directament implementables per a aquest interpret, la claredat del llenguatge permet emprar el codi font com a pseudocodi que facilitarà escriure'ls en d'altres llenguatges de programació. Abans de començar: tinguem en compte que el zero es divisible per qualsevol nombre enter (positiu o negatiu) i, per tant, és múltiple de qualsevol nombre enter; per altra banda, és clar que la noció de divisibilitat que tractem aquí per als nombres enters positius (i per al zero) és extensible a tots els nombres enters, per bé que, per facilitar la comprensió dels algorismes i dels senzills programes en Logo, en aquest article només es parla dels positius.
2. A la recerca dels nombres primers
Un primer procediment el dedicarem a realitzar la següent tasca: donat un nombre enter positiu qualsevol volem que el procediment doni com a resultat si aquest és - o no és - un nombre primer.
procediment Genera.nombres.primers :nombre_enter_fins_on_cal_buscar fes.local "nombre.inicial posa.a "nombre.inicial 2 escriu.seguit 2 escriu [...‚s un nombre primer] repeteix :nombre.enter.fins.on.cal.buscar [ Digues.quin.nombre.es.primer :nombre.inicial posa.a "nombre.inicial (:nombre.inicial + 1) ] fi
procediment Digues.quin.nombre.es.primer :n fes.local "divisor fes.local "fita_del_bucle posa.a "divisor 2 posa.a "fita.del.bucle part.entera (arrel :n) repeteix :fita.del.bucle [ si (residu :n :divisor) = 0 [acaba] [posa.a "divisor (:divisor+1)] ] escriu.seguit :n escriu [és un nombre primer] fi3. Màxim comú divisor i mínim comú múltiple de dos nombres enters positius
El següent algorisme mostra una manera de calcula el màxim comú divisor de dos nombres enters:
procediment mcd.rudimentari :a :b si :a=:b [escriu.seguit [mcd=] escriu :a acaba] [ si :a<:b [posa.a "b :a] [posa.a "a (:a - :b) mcd.rudimentari :a :b] ] fiI, aquest altre, ens servirà per calcular el mínim comú múltiple:
procediment mcm_rudimentari :a :b fes.local "n fes.local "múltiple fes.local "nombre_més_petit fes.local "nombre_més_gran fes.local "màxim_iteracions posa.a "n 0 si :a>:b [posa.a "nombre_més_gran :a posa.a "nombre_més_petit :b] [posa.a "nombre_més_gran :b posa.a "nombre_més_petit :a] posa.a "màxim_iteracions :nombre_més_gran repeteix :màxim_iteracions [ posa.a "n :n+1 posa.a "múltiple :n*:nombre_més_petit si :nombre_més_gran>:múltiple [si residu :nombre_més_gran :múltiple = 0 [escriu [mcm=] :múltiple acaba] [si residu :múltiple :nombre_més_gran = 0 [escriu [mcm=] :múltiple acaba ] ] fiUn procediment alternatiu es fonamenta en el mètode d'Euclides:
procediment mcd.i.mcm.Euclides :a :b fes.local "r fes.local "dividend fes.local "divisor si :a > :b [ posa.a "dividend :a posa.a "divisor :b ] [ posa.a "dividend :b posa.a "divisor :a ] repeteix :dividend [ posa.a "r residu :dividend :divisor si :r=0 [ escriu.seguit [mcd =] escriu :divisor escriu.seguit [mcm =] escriu :a * :b / :divisor acaba ] [ posa.a "dividend :divisor posa.a "divisor :r ] ] fi$\square$
Etiquetas:
divisiblidad,
lenguaje Logo,
Logo,
nombres primers,
números primos,
programación,
WinLogo
Suscribirse a:
Entradas (Atom)