tp d'informatique 04 octobre 2022
This commit is contained in:
parent
53f5808f7f
commit
2c97733d86
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
__pycache__/
|
||||
*.tar
|
||||
|
28
04oct/ex2.py
Normal file
28
04oct/ex2.py
Normal file
@ -0,0 +1,28 @@
|
||||
from uturtle import *
|
||||
|
||||
def triangle(t, n, size):
|
||||
if n == 0:
|
||||
moveForward(t, size)
|
||||
turnLeft(t, 120)
|
||||
moveForward(t, size)
|
||||
turnLeft(t, 120)
|
||||
moveForward(t, size)
|
||||
turnLeft(t, 120)
|
||||
else:
|
||||
triangle(t, n-1, size/2)
|
||||
moveForward(t, size/2)
|
||||
triangle(t, n-1, size/2)
|
||||
moveBackward(t, size/2)
|
||||
turnLeft(t, 60)
|
||||
moveForward(t, size/2)
|
||||
turnRight(t, 60)
|
||||
triangle(t, n-1, size/2)
|
||||
turnLeft(t, 60)
|
||||
moveBackward(t, size/2)
|
||||
turnRight(t, 60)
|
||||
|
||||
if __name__ == "__main__":
|
||||
t= umonsTurtle()
|
||||
moveBackward(t, 250)
|
||||
triangle(t, 5, 500)
|
||||
wait()
|
37
04oct/ex3.py
Normal file
37
04oct/ex3.py
Normal file
@ -0,0 +1,37 @@
|
||||
from uturtle import (
|
||||
umonsTurtle, wait,
|
||||
moveForward, moveBackward,
|
||||
turnLeft, turnRight,
|
||||
dropPen, usePen)
|
||||
|
||||
|
||||
def koch(t: umonsTurtle, x: int, seuil: int):
|
||||
"""Dessine une courbe de koch
|
||||
|
||||
:t: the turtle used
|
||||
:x: the length
|
||||
:seuil: seuil of smallest step
|
||||
:returns: None
|
||||
|
||||
"""
|
||||
if x < seuil:
|
||||
moveForward(t, x)
|
||||
return
|
||||
|
||||
koch(t, x/3, seuil)
|
||||
turnLeft(t, 60)
|
||||
koch(t, x/3, seuil)
|
||||
turnRight(t, 120)
|
||||
koch(t, x/3, seuil)
|
||||
turnLeft(t, 60)
|
||||
koch(t, x/3, seuil)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
turtle = umonsTurtle()
|
||||
turtle.speed(0)
|
||||
dropPen(turtle)
|
||||
moveBackward(turtle, 250)
|
||||
usePen(turtle)
|
||||
koch(turtle, 500, 1)
|
||||
wait()
|
27
04oct/ex4.py
Normal file
27
04oct/ex4.py
Normal file
@ -0,0 +1,27 @@
|
||||
from uturtle import (
|
||||
umonsTurtle, wait,
|
||||
moveForward, moveBackward,
|
||||
turnLeft, turnRight,
|
||||
dropPen, usePen)
|
||||
|
||||
from ex3 import koch
|
||||
|
||||
|
||||
def flocon(t, x, seuil, sides=3):
|
||||
"""draw a star with koch """
|
||||
flocon_rec(t, x, seuil, sides, sides)
|
||||
|
||||
|
||||
def flocon_rec(t, x, seuil, sides, i):
|
||||
"""recursion function of flocon()"""
|
||||
if i > 0:
|
||||
koch(t, x, seuil)
|
||||
turnRight(t, 360/sides)
|
||||
flocon_rec(t, x, seuil, sides, i-1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
turtle = umonsTurtle()
|
||||
turtle.speed(0)
|
||||
flocon(turtle, 100, 5, sides=5)
|
||||
wait()
|
28
04oct/ex5.py
Normal file
28
04oct/ex5.py
Normal file
@ -0,0 +1,28 @@
|
||||
from uturtle import (
|
||||
umonsTurtle, wait,
|
||||
moveForward, moveBackward,
|
||||
turnLeft, turnRight,
|
||||
dropPen, usePen)
|
||||
|
||||
|
||||
def carre(t: umonsTurtle, x: int, seuil: int):
|
||||
"""draw an alternative to koch witch is based on squares"""
|
||||
if x < seuil:
|
||||
moveForward(t, x)
|
||||
return
|
||||
carre(t, x/3, seuil)
|
||||
turnLeft(t)
|
||||
carre(t, x/3, seuil)
|
||||
turnRight(t)
|
||||
carre(t, x/3, seuil)
|
||||
turnRight(t)
|
||||
carre(t, x/3, seuil)
|
||||
turnLeft(t)
|
||||
carre(t, x/3, seuil)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
turtle = umonsTurtle()
|
||||
turtle.speed(0)
|
||||
carre(turtle, 200, 1)
|
||||
wait()
|
40
04oct/ex6.py
Normal file
40
04oct/ex6.py
Normal file
@ -0,0 +1,40 @@
|
||||
from uturtle import (
|
||||
umonsTurtle, wait,
|
||||
moveForward, moveBackward,
|
||||
turnLeft, turnRight,
|
||||
dropPen, usePen)
|
||||
|
||||
|
||||
def arbre(t, x, a, n):
|
||||
"""draw a tree
|
||||
|
||||
:t: turtle
|
||||
:x: taille du tronc de base
|
||||
:a: angle des branches
|
||||
:n: profondeur de l'arbre
|
||||
"""
|
||||
moveForward(t, x)
|
||||
arbre_rec(t, x, a, n)
|
||||
|
||||
|
||||
def arbre_rec(t, x, a, n):
|
||||
if n == 0:
|
||||
return
|
||||
turnLeft(t, a/2)
|
||||
moveForward(t, x)
|
||||
arbre_rec(t, x*5/6, a*5/6, n-1)
|
||||
moveBackward(t, x)
|
||||
|
||||
turnRight(t, a)
|
||||
moveForward(t, x)
|
||||
arbre_rec(t, x*5/6, a*5/6, n-1)
|
||||
moveBackward(t, x)
|
||||
|
||||
turnLeft(t, a/2)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
turtle = umonsTurtle()
|
||||
turnLeft(turtle)
|
||||
arbre(turtle, 50, 45, 4)
|
||||
wait()
|
31
04oct/recursifs.py
Normal file
31
04oct/recursifs.py
Normal file
@ -0,0 +1,31 @@
|
||||
def somme1(n):
|
||||
if n == 0:
|
||||
return 0
|
||||
else:
|
||||
somme1(n-1)+n
|
||||
|
||||
|
||||
def somme2(n):
|
||||
if n == 0:
|
||||
return 0
|
||||
else:
|
||||
return somme2(n)+n
|
||||
|
||||
|
||||
def somme3(n):
|
||||
if n == 0:
|
||||
return 0
|
||||
else:
|
||||
return n+somme3(n-1)
|
||||
|
||||
|
||||
def somme4(n):
|
||||
if n == 0:
|
||||
res = 0
|
||||
else:
|
||||
somme4(n)+n
|
||||
return res
|
||||
|
||||
|
||||
def somme5(n):
|
||||
return somme5(n-1)+n
|
BIN
04oct/serie3.pdf
Normal file
BIN
04oct/serie3.pdf
Normal file
Binary file not shown.
88
04oct/uturtle.py
Normal file
88
04oct/uturtle.py
Normal file
@ -0,0 +1,88 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
""" Module permettant de manipuler une tortue en mode procédural
|
||||
Utilisé dans le cadre du cours de Programmation et Algorithmique 1
|
||||
(H. Mélot, Université de Mons, à partir de 2013)
|
||||
"""
|
||||
|
||||
|
||||
import turtle
|
||||
turtle.setup(500, 400)
|
||||
|
||||
def umonsTurtle():
|
||||
""" Retourne une tortue qui peut évoluer dans un écran
|
||||
(déjà initialisé).
|
||||
|
||||
"""
|
||||
t = turtle.Turtle()
|
||||
return t
|
||||
|
||||
def wait(msg = 'Press enter to quit.'):
|
||||
""" Affichage un message à l'écran et attend une interaction de
|
||||
l'utilisateur.
|
||||
|
||||
msg - le message à afficher.
|
||||
|
||||
"""
|
||||
input(msg)
|
||||
|
||||
def moveForward(t, x):
|
||||
""" Fait avancer une tortue t de x pixels.
|
||||
|
||||
t - une tortue
|
||||
x - nombre de pixels
|
||||
|
||||
"""
|
||||
t.fd(x)
|
||||
|
||||
def moveBackward(t, x):
|
||||
""" Fait reculer une tortue t de x pixels.
|
||||
|
||||
t - une tortue
|
||||
x - nombre de pixels
|
||||
|
||||
"""
|
||||
t.bk(x)
|
||||
|
||||
def turnRight(t, a=90):
|
||||
""" Fait tourner une tortue t de a degrés vers la droite.
|
||||
|
||||
t - une tortue
|
||||
a - angle en degrés
|
||||
"""
|
||||
t.rt(a)
|
||||
|
||||
def turnLeft(t, a=90):
|
||||
""" Fait tourner une tortue t de a degrés vers la gauche.
|
||||
|
||||
t - une tortue
|
||||
a - angle en degrés
|
||||
|
||||
"""
|
||||
t.lt(a)
|
||||
|
||||
def dropPen(t):
|
||||
""" Demande à une tortue t de soulever son stylo
|
||||
|
||||
t - une tortue
|
||||
|
||||
"""
|
||||
t.up()
|
||||
|
||||
def usePen(t):
|
||||
""" Demande à une tortue t d'abaisser son stylo
|
||||
|
||||
t - une tortue
|
||||
|
||||
"""
|
||||
t.down()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
bob = umonsTurtle()
|
||||
moveForward(bob, 100)
|
||||
turnRight(bob)
|
||||
moveForward(bob, 100)
|
||||
wait()
|
||||
|
88
uturtle.py
Normal file
88
uturtle.py
Normal file
@ -0,0 +1,88 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
""" Module permettant de manipuler une tortue en mode procédural
|
||||
Utilisé dans le cadre du cours de Programmation et Algorithmique 1
|
||||
(H. Mélot, Université de Mons, à partir de 2013)
|
||||
"""
|
||||
|
||||
|
||||
import turtle
|
||||
turtle.setup(500, 400)
|
||||
|
||||
def umonsTurtle():
|
||||
""" Retourne une tortue qui peut évoluer dans un écran
|
||||
(déjà initialisé).
|
||||
|
||||
"""
|
||||
t = turtle.Turtle()
|
||||
return t
|
||||
|
||||
def wait(msg = 'Press enter to quit.'):
|
||||
""" Affichage un message à l'écran et attend une interaction de
|
||||
l'utilisateur.
|
||||
|
||||
msg - le message à afficher.
|
||||
|
||||
"""
|
||||
input(msg)
|
||||
|
||||
def moveForward(t, x):
|
||||
""" Fait avancer une tortue t de x pixels.
|
||||
|
||||
t - une tortue
|
||||
x - nombre de pixels
|
||||
|
||||
"""
|
||||
t.fd(x)
|
||||
|
||||
def moveBackward(t, x):
|
||||
""" Fait reculer une tortue t de x pixels.
|
||||
|
||||
t - une tortue
|
||||
x - nombre de pixels
|
||||
|
||||
"""
|
||||
t.bk(x)
|
||||
|
||||
def turnRight(t, a=90):
|
||||
""" Fait tourner une tortue t de a degrés vers la droite.
|
||||
|
||||
t - une tortue
|
||||
a - angle en degrés
|
||||
"""
|
||||
t.rt(a)
|
||||
|
||||
def turnLeft(t, a=90):
|
||||
""" Fait tourner une tortue t de a degrés vers la gauche.
|
||||
|
||||
t - une tortue
|
||||
a - angle en degrés
|
||||
|
||||
"""
|
||||
t.lt(a)
|
||||
|
||||
def dropPen(t):
|
||||
""" Demande à une tortue t de soulever son stylo
|
||||
|
||||
t - une tortue
|
||||
|
||||
"""
|
||||
t.up()
|
||||
|
||||
def usePen(t):
|
||||
""" Demande à une tortue t d'abaisser son stylo
|
||||
|
||||
t - une tortue
|
||||
|
||||
"""
|
||||
t.down()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
bob = umonsTurtle()
|
||||
moveForward(bob, 100)
|
||||
turnRight(bob)
|
||||
moveForward(bob, 100)
|
||||
wait()
|
||||
|
Loading…
Reference in New Issue
Block a user