All pastes #375803 Raw Edit

ryanakca

public python v1 · immutable
#375803 ·published 2007-02-28 17:00 UTC
rendered paste body
#!/usr/bin/env python############################################################################ Copyright (C) 2007  Ryan Kavanagh                                       ## This program is free software; you can redistribute it and/or modify    ## it under the terms of the GNU General Public License as published by    ## the Free Software Foundation; either version 2 of the License, or       ## (at your option) any later version.                                     ## This program is distributed in the hope that it will be useful,         ## but WITHOUT ANY WARRANTY; without even the implied warranty of          ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           ## GNU General Public License for more details.                            ## You should have received a copy of the GNU General Public License along ## with this program; if not, write to the Free Software Foundation, Inc., ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.             ## You may contact the author at ryanakca@kubuntu@org                      ############################################################################import mathclass Triangle:    """Classe du Triangle, pour trouver des informations (tels que l'aire, son    type (Acutangle, Rectangle, Obtusangle)) a son sujet"""        def __init__(self, cote1, cote2, cote3, hauteur=0):        """Definie le triangle, avec la mesure de cote1, cote2, cote3, et         la variable facultative 'hauteur'                """                self.set_triangle(cote1, cote2, cote3)        self.set_triangle_pour_aire(cote1, hauteur)            def set_triangle_pour_type(self, cote1, cote2, cote3):        """Definie le triangle, avec sa base, son hauteur, son hypothenuse        et la mesure de l'autre cote.                """        if str(cote1).isdigit() and str(cote2).isdigit() and \        str(cote3).isdigit() and str(hauteur).isdigit():            self.listedecotes = self.liste_de_cote_croissants(cote1, cote2,                                                               cote3)            self.cote1, self.cote2, self.cote3 = self.listedecote        else:            plainte = "S.V.P. donner les variables en chiffres"            return plainte                def liste_de_cote_croissants(self, a, b, c):        """"Imprime le plus grand nombre de 3 nombres, a, b, et c"""            self.liste_de_nombres = []            if a < b and a < c:            self.liste_de_nombres.append(a)        elif b < a and b < c:            self.liste_de_nombres.append(b)        else:            self.liste_de_nombres.append(c)            if a > self.liste_de_nombres[0] and a < c:            self.liste_de_nombres.append(a)        elif b < self.liste_de_nombres[0] and b < c:            self.liste_de_nombres.append(b)        else:            self.liste_de_nombres.append(c)            if a > self.liste_de_nombres[1]:            self.liste_de_nombres.append(a)        elif b > self.liste_de_nombres[1]:            self.liste_de_nombres.append(b)        else:            self.liste_de_nombres.append(c)            return self.liste_de_nombres            def queltype(self):        """Est-ce un triangle rectangle, obtusangle or acutangle?        Vous devez avoir definit votre triangle avec set_triangle                """        # Pythagore: A**2 + B**2        self.valeur1 = (self.cote1 ** 2.0) + (self.cote2 ** 2)        # = C**2        self.valeur2 = self.cote2 ** 2.0                # Si  A**2 + B**2 est plus petit que C**2, Obstusangle        if self.valeur1 < self.valeur2:            self.type = 'Obtusangle'        # Si A**2 + B**2 est == a C**2, Rectangle        elif self.valeur1 == self.valeur2:            self.type = 'Rectangle'        # Acutangle        else:            self.type = 'Acutangle'                return self.type        def aire(self):        """Calcule l'aire du triange"""                # Aire = base * hauter / 2        self.aire = (self.cote1 * self.hauteur) / 2.0                return self.airedef quit(prompt, retries=4, complaint='Oui ou Non, S.V.P!'):    """Fonction pour determiner si l'utilisateur veux quitter le program."""    while True:        ok = raw_input(prompt)        if ok[0].lower() == "o": return False        if ok[0].lower() == "n": return True        retries = retries - 1        if retries < 0: raise IOError, 'refusenik user'        print complaintdef main():        oncalcule = True    shape = Triangle(1, 1, 1)        while oncalcule == True:            print "Que voulez-vous savoir au sujet de votre triangle?"            print "1. Son type (acutangle, rectangle, obtusangle)"            print "2. Son aire"                        quoicalculer = input("> ")                        if quoicalculer == 1:                print "Ou que premier cote est le plus petit et troisieme" + \                " cote est le plus grands: "                cote1 = int(raw_input("Quel est la mesure du 1er cote? "))                cote2 = int(raw_input("Quel est la mesure du 2e cote? "))                cote3 = int(raw_input("Quel est la mesure du 3e cote? "))                # Definie l'objet                shape.set_triangle(cote1, cote2, cote3)                print "Ce triangle est: ", shape.queltype()            elif quoicalculer == 2:                print "Ou que cote1 est le plus petit: "                cote1 = int(raw_input("Quel est la mesure du premier cote? "))                # Met cote2 et cote3 a nul, puisqu'ils ne sont pas requis                hauteur = int(raw_input("Quel est la hauteur du triangle? "))                shape.set_triangle(cote1, cote2, cote3, hauteur)                print "L'aire de ce triangle est: ", shape.aire()            else:                print "S.V.P. Choisir une option en entrant le chiffre",                " correspondant."                                print "Voulez-vous: "            print "1. Calculer autre chose"            print "2. Quitter"                        prochaine_action = input("> ")                        if prochaine_action == 1:                pass            elif prochaine_action == 2:                oncalcule = quit("Voulez-vous vraiment quitter? ")            else:                print "S.V.P. Choisir une option en entrant le chiffre",                " correspondant."                            if __name__ == '__main__':    main()