first commit
This commit is contained in:
		
							
								
								
									
										38
									
								
								22sept/main.py
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										38
									
								
								22sept/main.py
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from math import pi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def volume_sphere(rayon):
 | 
				
			||||||
 | 
					    return (4/3)*pi*rayon**3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def prix_livre(nbr, prix):
 | 
				
			||||||
 | 
					    return ((prix*nbr) - (prix*nbr*(40/100)) + (3 + 0.75*(prix - 1)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def time_per_miles(km, h, m, s):
 | 
				
			||||||
 | 
					    mi = km / 1.61 # km to mi
 | 
				
			||||||
 | 
					    total_sec = h *60 + m * 60 + s
 | 
				
			||||||
 | 
					    return mi / total_sec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def time_per_miles(km, h, m, s):
 | 
				
			||||||
 | 
					    mi = km / 1.61 # km to mi
 | 
				
			||||||
 | 
					    total_sec = h *60 + m * 60 + s
 | 
				
			||||||
 | 
					    return mi / total_sec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def mi_per_h(km, h, m, s):
 | 
				
			||||||
 | 
					    mi = km / 1.61
 | 
				
			||||||
 | 
					    total_h = h + m / 60 + s /3600
 | 
				
			||||||
 | 
					    return mi / total_h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    vol = volume_sphere(5)
 | 
				
			||||||
 | 
					    print(vol)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    nbre_livre = prix_livre(60, 24.95)
 | 
				
			||||||
 | 
					    print(nbre_livre)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    time = time_per_miles(10, 0, 43, 30)
 | 
				
			||||||
 | 
					    print(time)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    speed = mi_per_h(10, 0, 43, 30)
 | 
				
			||||||
 | 
					    print(speed)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								22sept/serie1.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								22sept/serie1.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										32
									
								
								29sept/ex1-2.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								29sept/ex1-2.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					def rendreMonnaie(prix, monnaie):
 | 
				
			||||||
 | 
					    x1, x2, x3, x4, x5 = monnaie  # Chaques billets en entree (20, 10, 5, 2, 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    given = (x1*20) + (x2*10) + (x3*5) + (x4*2) + (x5*1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    rest = given - prix
 | 
				
			||||||
 | 
					    if rest < 0:
 | 
				
			||||||
 | 
					        return f"vous n'avez pas assez d'argent. Il manque : {-rest}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    o1 = rest // 20
 | 
				
			||||||
 | 
					    rest = rest % 20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    o2 = rest // 10
 | 
				
			||||||
 | 
					    rest = rest % 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    o3 = rest // 5
 | 
				
			||||||
 | 
					    rest = rest % 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    o4 = rest // 2
 | 
				
			||||||
 | 
					    rest = rest % 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    o5 = rest // 1
 | 
				
			||||||
 | 
					    rest = rest % 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return o1, o2, o3, o4, o5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    prix = int(input("quel est le prix :"))
 | 
				
			||||||
 | 
					    print("entrez maintenant les billets")
 | 
				
			||||||
 | 
					    mon = (int(input("20e:")),int(input("10e:")),int(input("5e:")),int(input("2e:")),int(input("1e:")))
 | 
				
			||||||
 | 
					    print(rendreMonnaie(prix, mon))
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								29sept/ex2-1/__pycache__/droite.cpython-310.pyc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								29sept/ex2-1/__pycache__/droite.cpython-310.pyc
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										90
									
								
								29sept/ex2-1/droite.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								29sept/ex2-1/droite.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,90 @@
 | 
				
			|||||||
 | 
					def droite(p1: tuple,p2: tuple) -> tuple:
 | 
				
			||||||
 | 
					    """retourne un 3-uple d'une droite selon ax+by=c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :p1: tuple du point 1
 | 
				
			||||||
 | 
					    :p2: tuple du point 2
 | 
				
			||||||
 | 
					    :returns: 3-uple (a,b,c) tq ax+by=c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    x1, y1 = p1
 | 
				
			||||||
 | 
					    x2, y2 = p2
 | 
				
			||||||
 | 
					    if p1 == p2:
 | 
				
			||||||
 | 
					        return
 | 
				
			||||||
 | 
					    if x2-x1 == 0:
 | 
				
			||||||
 | 
					        return 1, 0, 0
 | 
				
			||||||
 | 
					    a = -(y2-y1)/(x2-x1)
 | 
				
			||||||
 | 
					    c = a*x1
 | 
				
			||||||
 | 
					    b = (-a*x2 + c) / y2
 | 
				
			||||||
 | 
					    return a, b, c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def appartient(d, p):
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    :d: equation d'une droite
 | 
				
			||||||
 | 
					    :p: point
 | 
				
			||||||
 | 
					    :returns: true si point est dans droite
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    a, b, c = d
 | 
				
			||||||
 | 
					    x, y = p
 | 
				
			||||||
 | 
					    return a*x + b*y == c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def paralleles(d1, d2):
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    :d1: droite 1
 | 
				
			||||||
 | 
					    :d2: droite 2
 | 
				
			||||||
 | 
					    :returns: true si d1 et d2 sont paralleles sinon false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    a1, b1, c1 = d1
 | 
				
			||||||
 | 
					    a2, b2, c2 = d2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return a1/b1 ==  a2/b2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def intersection(d1, d2):
 | 
				
			||||||
 | 
					    """Trouve le point d'intersection
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :d1: droite 1
 | 
				
			||||||
 | 
					    :d2: droite 2
 | 
				
			||||||
 | 
					    :returns: retourne le point d'intersection sinon None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    a1, b1, c1 = d1
 | 
				
			||||||
 | 
					    a2, b2, c2 = d2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if paralleles(d1, d2):
 | 
				
			||||||
 | 
					        return  # paralleles donc pas d'intersection
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    y = (c2*a1 - a2*c1) / (-a2*b1 + b2*a1)
 | 
				
			||||||
 | 
					    x = (c1 - b1*y)/ a1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return x, y
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def droite_normale(d, p):
 | 
				
			||||||
 | 
					    """TODO: trouve la normale dune droite passant par un point.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    :d: droite
 | 
				
			||||||
 | 
					    :p: point
 | 
				
			||||||
 | 
					    :returns: retourne la normale de la droite passant par le point
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def symetrie_orthogonale(d, p):
 | 
				
			||||||
 | 
					    """TODO: Docstring for symetrie_orthogonale(d, p.
 | 
				
			||||||
 | 
					    :returns: TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def distance_droite_point(d, p):
 | 
				
			||||||
 | 
					    """TODO: Docstring for distance_droite_point.
 | 
				
			||||||
 | 
					    :returns: TODO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										37
									
								
								29sept/ex2-1/droite_test.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								29sept/ex2-1/droite_test.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					from droite import *
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def test(function, p1, p2, exp_result):
 | 
				
			||||||
 | 
					    fun_result = function(p1, p2)
 | 
				
			||||||
 | 
					    if fun_result == exp_result:
 | 
				
			||||||
 | 
					        print(f"{function.__name__}({p1}, {p2}) == {exp_result} --- SUCCESS!")
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					        print(f"{function.__name__}({p1}, {p2}) == {exp_result} --- ERROR! (result was:{fun_result})")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def tests():
 | 
				
			||||||
 | 
					    test(droite, (-2, 0), (1, 1.5), (-0.5, 1, 1.0))
 | 
				
			||||||
 | 
					    test(droite, (0, -3), (0, 5), (1, 0, 0))
 | 
				
			||||||
 | 
					    test(droite, (0, -1), (0, -1), None)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    test(appartient, (-0.5, 1, 1.0), (-2, 0), True)
 | 
				
			||||||
 | 
					    test(appartient, (-0.5, 1, 1.0), (1, 1.5), True)
 | 
				
			||||||
 | 
					    test(appartient, (-0.5, 1, 1.0), (0, -1), False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    test(paralleles, (0, 1, 1), (0, 2, 3), True)
 | 
				
			||||||
 | 
					    test(paralleles, (-0.5, 1, 1.0), (0, 2, 3), False)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    test(intersection, (-0.5, 1, 1.0), (0, 2, 3), (1.0, 1.5))
 | 
				
			||||||
 | 
					    test(intersection, (0, 1, 1), (0, 2, 3), None)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    test(droite_normale, (-0.5, 1, 1.0), (-2, 0), (2.0, 1, -4.0))
 | 
				
			||||||
 | 
					    test(droite_normale, (-0.5, 1, 1.0), (3, 4), (2.0, 1, 10.0))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    test(symetrie_orthogonale, (-0.5, 1, 1.0), (-2, 0), (-2.0, 0.0))
 | 
				
			||||||
 | 
					    test(symetrie_orthogonale, (-0.5, 1, 1.0), (3, 4), (2.0, 1, 10.0))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    test(distance_droite_point, (-0.5, 1, 1.0), (-2, 0), 0.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == "__main__":
 | 
				
			||||||
 | 
					    tests()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										75
									
								
								29sept/plot.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								29sept/plot.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,75 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env python3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import matplotlib.pyplot as plt
 | 
				
			||||||
 | 
					import numpy as np
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Plot(object):
 | 
				
			||||||
 | 
					    """Show graphical drawing of lines from their equation."""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __init__(self):
 | 
				
			||||||
 | 
					        self.setXAxis()
 | 
				
			||||||
 | 
					        self.functs = []
 | 
				
			||||||
 | 
					        self.verts = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def prepare(self, line):
 | 
				
			||||||
 | 
					        """Add the given line to the plot.
 | 
				
			||||||
 | 
					        The line is not shown until the method show is called.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Args:
 | 
				
			||||||
 | 
					            line: a triplet `(a, b, c)` representing the coefficients of the
 | 
				
			||||||
 | 
					                line of equation `ax + bx + c = 0`.
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        a, b, c = line
 | 
				
			||||||
 | 
					        if b == 0:
 | 
				
			||||||
 | 
					            if a == 0:
 | 
				
			||||||
 | 
					                raise ValueError('Not a line.')
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                self.verts.append(line)
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            self.functs.append(line)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def setXAxis(self, xmin=-10, xmax=10):
 | 
				
			||||||
 | 
					        self.xmin = xmin
 | 
				
			||||||
 | 
					        self.xmax = xmax
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def reset(self):
 | 
				
			||||||
 | 
					        self.setXAxis()
 | 
				
			||||||
 | 
					        self.functs = []
 | 
				
			||||||
 | 
					        self.verts = []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def plot(self, t, y, line):
 | 
				
			||||||
 | 
					        a, b, c = line
 | 
				
			||||||
 | 
					        plt.plot(t, y, label='%.4g*x + %.4g*y = %.4g' % (a, b, c))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def draw(self):
 | 
				
			||||||
 | 
					        for a, b, c in self.functs:
 | 
				
			||||||
 | 
					            t = np.array([self.xmin, self.xmax])
 | 
				
			||||||
 | 
					            y = (-a * 1.0 / b) * t + (c * 1.0 / b)
 | 
				
			||||||
 | 
					            self.plot(t, y, (a, b, c))
 | 
				
			||||||
 | 
					        for a, b, c in self.verts:
 | 
				
			||||||
 | 
					            x = c / a
 | 
				
			||||||
 | 
					            self.plot([x, x], plt.ylim(), (a, b, c))
 | 
				
			||||||
 | 
					        plt.axis('tight')
 | 
				
			||||||
 | 
					        plt.legend()
 | 
				
			||||||
 | 
					        plt.title('Exercices sur les droites')
 | 
				
			||||||
 | 
					        plt.xlabel('x')
 | 
				
			||||||
 | 
					        plt.ylabel('y')
 | 
				
			||||||
 | 
					        plt.grid(True)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def save(self, filename):
 | 
				
			||||||
 | 
					        self.draw()
 | 
				
			||||||
 | 
					        plt.savefig(filename)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def show(self):
 | 
				
			||||||
 | 
					        self.draw()
 | 
				
			||||||
 | 
					        plt.show()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    p = Plot()
 | 
				
			||||||
 | 
					    p.prepare((1, 1, 3))
 | 
				
			||||||
 | 
					    p.prepare((-2, 1, -1))
 | 
				
			||||||
 | 
					    p.prepare((1, 0, -5))
 | 
				
			||||||
 | 
					    p.show()
 | 
				
			||||||
 | 
					    input()
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								29sept/serie2.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								29sept/serie2.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user