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__/
|
__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