diff --git a/Activity_3_python/LangagePython_fonctions/._Activite_decouverte_Python.html b/Activity_3_python/LangagePython_fonctions/._Activite_decouverte_Python.html new file mode 100644 index 0000000..e4e5229 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/._Activite_decouverte_Python.html differ diff --git a/Activity_3_python/LangagePython_fonctions/._Exemplen6.html b/Activity_3_python/LangagePython_fonctions/._Exemplen6.html new file mode 100644 index 0000000..8678366 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/._Exemplen6.html differ diff --git a/Activity_3_python/LangagePython_fonctions/._Exercice31.html b/Activity_3_python/LangagePython_fonctions/._Exercice31.html new file mode 100644 index 0000000..80fbdd1 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/._Exercice31.html differ diff --git a/Activity_3_python/LangagePython_fonctions/._Exercice34.html b/Activity_3_python/LangagePython_fonctions/._Exercice34.html new file mode 100644 index 0000000..e6c71b2 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/._Exercice34.html differ diff --git a/Activity_3_python/LangagePython_fonctions/Activite_decouverte_Python.html b/Activity_3_python/LangagePython_fonctions/Activite_decouverte_Python.html new file mode 100644 index 0000000..db1ff9d --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Activite_decouverte_Python.html @@ -0,0 +1,36 @@ + + + + + + + + + + Introduction au langage de programmation Python 3 + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Annexelacomprehensiondelistes.html b/Activity_3_python/LangagePython_fonctions/Annexelacomprehensiondelistes.html new file mode 100644 index 0000000..5e43da4 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Annexelacomprehensiondelistes.html @@ -0,0 +1,122 @@ + + + + + + Annexe: la compréhension de listes + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Annexe: la compréhension de listes

+ + +
+ Les fonctions ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

La compréhension de listes est une structure syntaxique disponible dans un certain nombre de langages de programmation, dont Python.
C'est une manière de créer efficacement des listes.

+

Revenons sur l'exemple vu dans le script Fonction5.py :

+

resultat = [random.randint(1,6) for in range(10)]

+

>>> print(resultat)

+

Autre exemple : liste de carrés

+

carres = [i*i for in range(11)]

+

>>> print(carres)

+

La compréhension de listes évite donc d'écrire le code "classique" suivant :

+

carres = []
for in range(11):
    carres.append(i*i)

+

+

Créé avec HelpNDoc Personal Edition: Créer des fichiers d'aide pour la plateforme Qt Help

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Autrestypes.html b/Activity_3_python/LangagePython_fonctions/Autrestypes.html new file mode 100644 index 0000000..9e08e0a --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Autrestypes.html @@ -0,0 +1,121 @@ + + + + + + Autres types + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Autres types

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Nous avons vu les types les plus courants.
Il en existe bien d'autres :

+ +

+

Créé avec HelpNDoc Personal Edition: Créer des livres électroniques EPub facilement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exemplen1.html b/Activity_3_python/LangagePython_fonctions/Exemplen1.html new file mode 100644 index 0000000..d94dc25 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exemplen1.html @@ -0,0 +1,118 @@ + + + + + + Exemple n°1 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exemple n°1

+ + +
+ Les fonctions ›› L'instruction def ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

# script Fonction1.py
def mapremierefonction(): # cette fonction n'a pas de paramètre
    """ Cette fonction affiche 'Bonjour' """
    print("Bonjour")
    return   # cette fonction ne retourne rien ('None')
    # l'instruction return est ici facultative

+

Une fois la fonction définie, nous pouvons l'appeler :

+

>>> mapremierefonction() # ne pas oublier les parenthèses ()

+

L'accès à la documentation se fait avec la fonction pré-définie help() :

+

>>> help(mapremierefonction) # affichage de la documentation

+

+

Créé avec HelpNDoc Personal Edition: Sites web iPhone faciles

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exemplen2.html b/Activity_3_python/LangagePython_fonctions/Exemplen2.html new file mode 100644 index 0000000..f56df41 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exemplen2.html @@ -0,0 +1,116 @@ + + + + + + Exemple n°2 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exemple n°2

+ + +
+ Les fonctions ›› L'instruction def ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

La fonction suivante simule le comportement d'un dé à 6 faces.
Pour cela, on utilise la fonction randint() du module random.

+

# script Fonction2.py
def tirage_de():
    """ Retourne un nombre entier aléatoire entre 1 et 6 """
    import random
    valeur = random.randint(1, 6)
    return valeur

+

>>> print(tirage_de())

>>> print(tirage_de())

>>> resultat = tirage_de()
>>> print(resultat)

+

+

Créé avec HelpNDoc Personal Edition: Éditeur de documentation CHM facile

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exemplen3.html b/Activity_3_python/LangagePython_fonctions/Exemplen3.html new file mode 100644 index 0000000..b63cd07 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exemplen3.html @@ -0,0 +1,115 @@ + + + + + + Exemple n°3 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exemple n°3

+ + +
+ Les fonctions ›› L'instruction def ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

# script Fonction3.py
# définition des fonctions
def info():
    """ Informations """
    print("Touche q pour quitter")
    print("Touche Enter pour continuer")
def tirage_de():
    """ Retourne un nombre entier aléatoire entre 1 et 6 """
    import random
    valeur = random.randint(1, 6)
    return valeur
# début du programme
info()
while True:
    choix = input()
    if choix == 'q':
        break
    print("Tirage :", tirage_de())

+

Exécuter   et tester

+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentation d'aide HTML gratuit

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exemplen4.html b/Activity_3_python/LangagePython_fonctions/Exemplen4.html new file mode 100644 index 0000000..a038374 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exemplen4.html @@ -0,0 +1,116 @@ + + + + + + Exemple n°4 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exemple n°4

+ + +
+ Les fonctions ›› L'instruction def ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Une fonction avec deux paramètres :

+

# script Fonction4.py
# définition de fonction
def tirage_de2(valeur_min, valeur_max):
    """ Retourne un nombre entier aléatoire entre valeur_min et valeur_max """
    import random
    return random.randint(valeur_min, valeur_max)
# début du programme
for i in range(5):
    print(tirage_de2(1, 10))  # appel de la fonction avec les arguments 1 et 10

+

+

+

Créé avec HelpNDoc Personal Edition: Créer des fichiers d'aide pour la plateforme Qt Help

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exemplen5.html b/Activity_3_python/LangagePython_fonctions/Exemplen5.html new file mode 100644 index 0000000..657489c --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exemplen5.html @@ -0,0 +1,117 @@ + + + + + + Exemple n°5 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exemple n°5

+ + +
+ Les fonctions ›› L'instruction def ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Une fonction qui retourne une liste :

+

# script Fonction5.py
# définition de fonction
def tirage_multiple_de(nombretirage):
    """ Retourne une liste de nombres entiers aléatoires entre 1 et 6 """
    import random
    resultat = [random.randint(1, 6) for i in range(nombretirage)] # compréhension de listes (Cf. annexe)
    return resultat
# début du programme
print(tirage_multiple_de(10))

+

+

>>> help(tirage_multiple_de)

+

+

Créé avec HelpNDoc Personal Edition: Produire des livres électroniques facilement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exemplen6.html b/Activity_3_python/LangagePython_fonctions/Exemplen6.html new file mode 100644 index 0000000..d8348b7 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exemplen6.html @@ -0,0 +1,116 @@ + + + + + + Exemple n°6 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exemple n°6

+ + +
+ Les fonctions ›› L'instruction def ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Une fonction qui affiche la parité d'un nombre entier.
Il peut y avoir plusieurs instructions return dans une fonction.
L'instruction return provoque le retour immédiat de la fonction.

+

# script Fonction6.py
# définition de fonction
def parite(nombre):
    """ Affiche la parité d'un nombre entier """
    if nombre%2 == 1:   # L'opérateur % donne le reste d'une division
        print(nombre, 'est impair')
        return
    if nombre%2 == 0:
        print(nombre, 'est pair')
        return

+

>>> parite(13)

>>> parite(24)

+

+

Créé avec HelpNDoc Personal Edition: Créer des documents d'aide HTML facilement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice11.html b/Activity_3_python/LangagePython_fonctions/Exercice11.html new file mode 100644 index 0000000..ee7c13f --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice11.html @@ -0,0 +1,118 @@ + + + + + + Exercice 1.1 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 1.1

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

☆ Afficher la taille en octets et en bits d'un fichier de 536 kio.

+

On donne : 1 kio (1 kibioctet) = 210 octets

+

1 octet = 1 byte = 8 bits

+


+

+

+

Créé avec HelpNDoc Personal Edition: Sites web iPhone faciles

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice13.html b/Activity_3_python/LangagePython_fonctions/Exercice13.html new file mode 100644 index 0000000..97acbbd --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice13.html @@ -0,0 +1,117 @@ + + + + + + Exercice 1.3 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 1.3

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

★ Afficher la valeur numérique de √(4,63 - 15/16)

+

Comparer avec votre calculette.

+


+

+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentations PDF gratuit

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice14.html b/Activity_3_python/LangagePython_fonctions/Exercice14.html new file mode 100644 index 0000000..f5d138d --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice14.html @@ -0,0 +1,116 @@ + + + + + + Exercice 1.4 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 1.4

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

★ A partir des deux variables prenom et nom, afficher les initiales (par exemple LM pour Léa Martin).

+


+

+

+

Créé avec HelpNDoc Personal Edition: Écrire des livres électroniques ePub pour l'iPad

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice15.html b/Activity_3_python/LangagePython_fonctions/Exercice15.html new file mode 100644 index 0000000..cdc6b03 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice15.html @@ -0,0 +1,118 @@ + + + + + + Exercice 1.5 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 1.5

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

★☆ L'identifiant d'accès au réseau du lycée est construit de la manière suivante : les 4 premiers caractères du prénom (maximum), suivi d'un point, puis les caractères du nom (limités à 12) le tout en minuscule.

+

Exemple : Alexandre Lecouturier → ale.lecouturier

+

A partir des deux variables prenom et nom, construire l'identifiant.

+


+

+

+

Créé avec HelpNDoc Personal Edition: Éditeur complet de livres électroniques ePub

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice16.html b/Activity_3_python/LangagePython_fonctions/Exercice16.html new file mode 100644 index 0000000..7cb0efb --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice16.html @@ -0,0 +1,120 @@ + + + + + + Exercice 1.6 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 1.6

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

★★ On donne un extrait des logins d'accès au réseau du lycée :

+

ale.lecouturier       Huz4
lea.martin                monty

+

1) Créer une variable de type dict qui contient les couples identifiant - mot de passe ci-dessus.

+


2) La saisie du login fournit deux variables identifiant et motdepasse : une pour l'identifiant et l'autre pour le mot de passe.
Construire une variable booléenne qui donne True en cas d'identification correcte, et False dans le cas contraire :

+


+

+

+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentations PDF gratuit

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice17.html b/Activity_3_python/LangagePython_fonctions/Exercice17.html new file mode 100644 index 0000000..ba44a1d --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice17.html @@ -0,0 +1,120 @@ + + + + + + Exercice 1.2 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 1.2

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

★ Le numéro de sécurité sociale est constitué de 13 chiffres auquel s'ajoute la clé de contrôle (2 chiffres).

+

Exemple : 1 89 11 26 108 268 91

+

La clé de contrôle est calculée par la formule : 97 - (numéro de sécurité sociale modulo 97)

+

Retrouver la clé de contrôle de votre numéro de sécurité sociale.

+

Quel est l'intérêt de la clé de contrôle ?

+


+

+

+

Créé avec HelpNDoc Personal Edition: Qu'est-ce qu'un outil de création d'aide ?

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice21.html b/Activity_3_python/LangagePython_fonctions/Exercice21.html new file mode 100644 index 0000000..fb02c12 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice21.html @@ -0,0 +1,116 @@ + + + + + + Exercice 2.1 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 2.1

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

 Le numéro de sécurité sociale est constitué de 13 chiffres auquel s'ajoute la clé de contrôle (2 chiffres).
La clé de contrôle est calculée par la formule : 97 - (numéro de sécurité sociale modulo 97)

+

Ecrire un script qui contrôle la validité d'un numéro de sécurité sociale.
On pourra utiliser la fonction int() pour convertir le type str en type int.
Exemple :

+

>>>
Entrer votre numéro de sécurité sociale (13 chiffres) --> 1891126108268
Entrer votre clé de contrôle (2 chiffres) --------------> 91
Votre numéro de sécurité sociale est valide.
>>>
Entrer votre numéro de sécurité sociale (13 chiffres) --> 2891126108268
Entrer votre clé de contrôle (2 chiffres) --------------> 91
Votre numéro de sécurité sociale est INVALIDE !
>>>

+

+

Créé avec HelpNDoc Personal Edition: Éditeur de documentation CHM facile

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice22.html b/Activity_3_python/LangagePython_fonctions/Exercice22.html new file mode 100644 index 0000000..4b1f4e9 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice22.html @@ -0,0 +1,117 @@ + + + + + + Exercice 2.2 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 2.2

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

 Nombre entier non signé et signé
Dans un octet, on peut stocker un nombre entier compris entre 0b00000000 = 0 et 0b11111111 = 255 (entier non signé, en numération binaire naturel).
On peut aussi stocker un entier compris entre -128 et +127 (entier signé, représentation dite en complément à deux).
En complément à deux, les nombres négatifs sont codés de la manière suivante :
-1 correspond à 255 en binaire naturel
-2 correspond à 254 en binaire naturel
...
-127 correspond à 129 en binaire naturel
-128 correspond à 128 en binaire naturel
1) Ecrire un script qui donne la correspondance entre entier signé et entier non signé.
Par exemple :

+

>>>
Entrer un entier signé en complément à deux (-128 à +127): 25
La représentation en binaire naturel est : 25
>>>
Entrer un entier signé en complément à deux (-128 à +127): -15
La représentation en binaire naturel est : 241

+

2) Ecrire un script qui donne la correspondance entre entier non signé et entier signé.
Par exemple :

+

>>>
Entrer un nombre entier (0 à 255): 250
Cela représente l'entier signé : -6

+

+

Créé avec HelpNDoc Personal Edition: Créer des livres électroniques facilement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice23.html b/Activity_3_python/LangagePython_fonctions/Exercice23.html new file mode 100644 index 0000000..63cfc53 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice23.html @@ -0,0 +1,115 @@ + + + + + + Exercice 2.3 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 2.3

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

 Ecrire un script qui demande la note au bac et qui affiche la mention correspondante.
Par exemple :

+

>>>
Note au bac (sur 20) : 13.5
Bac avec mention Assez Bien
>>>
Note au bac (sur 20) : 10.9
Bac avec mention Passable
>>>
Note au bac (sur 20) : 4
Recalé
>>>

+

+

Créé avec HelpNDoc Personal Edition: Environnement de création d'aide complet

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice24.html b/Activity_3_python/LangagePython_fonctions/Exercice24.html new file mode 100644 index 0000000..0bee970 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice24.html @@ -0,0 +1,115 @@ + + + + + + Exercice 2.4 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 2.4

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

 Ecrire un script qui calcule l'indice de masse corporelle (IMC) d'un adulte et qui en donne l'interprétation (corpulence normale, surpoids...).
Par exemple :

+

>>>
Votre taille en cm ? 170
Votre masse en kg ? 68.5
IMC = 23.70 kg/m²
Interprétation : corpulence normale
>>>

+

+

Créé avec HelpNDoc Personal Edition: Générateur d'aide complet

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice25.html b/Activity_3_python/LangagePython_fonctions/Exercice25.html new file mode 100644 index 0000000..aa9a0b4 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice25.html @@ -0,0 +1,116 @@ + + + + + + Exercice 2.5 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 2.5

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

★★ Ecrire un script qui résout l'équation du second degré : ax² + bx + c = 0
Par exemple :

+

>>>
Résolution de l'équation du second degré : ax² + bx + c = 0
Coefficient a ? 1
Coefficient b ? -0.9
Coefficient c ? 0.056
Discriminant :  0.586
Deux solutions :
0.0672468158199
0.83275318418

+

>>>
Résolution de l'équation du second degré : ax² + bx + c = 0
Coefficient a ? 2
Coefficient b ? 1.5
Coefficient c ? 4
Discriminant :  -29.75
Il n'y a pas de solution.

+

+

Créé avec HelpNDoc Personal Edition: Écrire des livres électroniques ePub pour l'iPad

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice31.html b/Activity_3_python/LangagePython_fonctions/Exercice31.html new file mode 100644 index 0000000..b6ecc74 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice31.html @@ -0,0 +1,114 @@ + + + + + + Exercice 3.1 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 3.1

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

 Ecrire un script qui affiche toutes les tables de multiplication (de 1 à 10).

+

+

Créé avec HelpNDoc Personal Edition: Générer facilement des livres électroniques Kindle

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice32.html b/Activity_3_python/LangagePython_fonctions/Exercice32.html new file mode 100644 index 0000000..be00ab9 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice32.html @@ -0,0 +1,115 @@ + + + + + + Exercice 3.2 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 3.2

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

 Ecrire un script qui calcule la moyenne d'une série de notes.
On pourra utiliser une variable qui contient la somme intermédiaire des notes.

+

>>>
Nombre de notes ? 3
-->  15
-->  11.5
-->  14
Moyenne : 13.5
>>>

+

+

Créé avec HelpNDoc Personal Edition: Créer des aides HTML, DOC, PDF et des manuels depuis une même source

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice33.html b/Activity_3_python/LangagePython_fonctions/Exercice33.html new file mode 100644 index 0000000..8a9c055 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice33.html @@ -0,0 +1,117 @@ + + + + + + Exercice 3.3 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 3.3

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

 ★
1) Avec une boucle for, écrire un script qui compte le nombre de lettres z dans une chaîne de caractères.
Par exemple :

+

>>>
Entrer la chaîne : Zinedine Zidane
Résultat : 2

+

2) Faire la même chose, directement avec la méthode count() de la classe str.
Pour obtenir de l'aide sur cette méthode :

+

>>> help(str.count)

+

+

Créé avec HelpNDoc Personal Edition: Produire des livres Kindle gratuitement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice34.html b/Activity_3_python/LangagePython_fonctions/Exercice34.html new file mode 100644 index 0000000..9f5a5cf --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice34.html @@ -0,0 +1,118 @@ + + + + + + Exercice 3.4 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 3.4

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

 Avec une boucle while, écrire un script qui affiche l'heure courante avec une actualisation chaque seconde.
On utilisera la fonction sleep() du module time.
Pour obtenir de l'aide sur cette fonction :

+

>>> import time
>>> help(time.sleep)

+

Par exemple :

+

>>> # Taper CTRL + C pour arrêter le programme.
>>>
Heure courante  12:40:59
Heure courante  12:41:00
Heure courante  12:41:01
Heure courante  12:41:02
KeyboardInterrupt
>>>

+

Remarque : il n'est pas conventionnel de forcer l'arrêt d'un programme avec CTRL + C
Nous verrons comment interrompre proprement un programme dans le chapitre Gestion des exceptions.

+

+

Créé avec HelpNDoc Personal Edition: Écrire des livres électronique Kindle

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice35.html b/Activity_3_python/LangagePython_fonctions/Exercice35.html new file mode 100644 index 0000000..460b1dd --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice35.html @@ -0,0 +1,120 @@ + + + + + + Exercice 3.5 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 3.5

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

★☆
1) Ecrire le script du jeu de devinette suivant :

+

>>>
Le jeu consiste à deviner un nombre entre 1 et 100 :
--->   50
trop petit !
--->   75
trop petit !
--->   87
trop grand !
--->   81
trop petit !
--->   84
trop petit !
--->   85
Gagné en 6 coups !

+

2) Quelle est la stratégie la plus efficace ?

+

3) Montrer que l'on peut deviner un nombre en 7 coups maximum.

+

Bibliographie : La dichotomie

+

Remarque : pour créer un nombre entier aléatoire entre 1 et 100 :

+

import random
nombre = random.randint(1,100)

+

+

Créé avec HelpNDoc Personal Edition: Générer facilement des livres électroniques Kindle

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice36.html b/Activity_3_python/LangagePython_fonctions/Exercice36.html new file mode 100644 index 0000000..5117b5a --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice36.html @@ -0,0 +1,121 @@ + + + + + + Exercice 3.6 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 3.6

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

★★ Code de César
En cryptographie, le code de César est une technique de chiffrement élémentaire qui consiste à décaler une lettre de 3 rangs vers la droite :
A → D
B → E
...
Z → C

+


1) Ecrire le script de ce codage.
Par exemple :

+

>>>
Message à coder ? abcdefghijklmnopqrstuvwxyz
defghijklmnopqrstuvwxyzabc

+

>>>
Message à coder ? Monty Python's Flying Circus
prqwb sbwkrq'v ioblqj flufxv

+

On pourra utiliser la chaîne 'abcdefghijklmnopqrstuvwxyz' et la méthode find() de la classe str.
Pour obtenir de l'aide sur cette méthode :

+

>>> help(str.find)

+

2) Ecrire le script du décodage.
Par exemple :

+

>>>
Message à décoder ? prqwb sbwkrq'v ioblqj flufxv
monty python's flying circus

+

+

Créé avec HelpNDoc Personal Edition: Produire facilement des livres électroniques Kindle

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice37.html b/Activity_3_python/LangagePython_fonctions/Exercice37.html new file mode 100644 index 0000000..75e8f4d --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice37.html @@ -0,0 +1,115 @@ + + + + + + Exercice 3.7 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 3.7

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

 ★★ Ecrire un script qui donne l'évolution de la suite convergente : un+1 = un/2 + 1/un
Par exemple :

+

>>>
Valeur initiale ? 20
Jusqu'à quel rang ? 10
0 20.0
1 10.05
2 5.12450248756
3 2.75739213842
4 1.74135758045
5 1.44494338196
6 1.41454033013
7 1.41421360012
8 1.41421356237
9 1.41421356237
10 1.41421356237
>>>

+

+

Créé avec HelpNDoc Personal Edition: Sites web iPhone faciles

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice38.html b/Activity_3_python/LangagePython_fonctions/Exercice38.html new file mode 100644 index 0000000..527778e --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice38.html @@ -0,0 +1,117 @@ + + + + + + Exercice 3.8 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 3.8

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

★★ Fraction continue infinie

+

Estimer la valeur numérique de la fraction continue suivante :

+

+

Comparer avec la valeur exacte : (1 + √5)/2

+

+

Créé avec HelpNDoc Personal Edition: Création d'aide CHM, PDF, DOC et HTML d'une même source

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice39.html b/Activity_3_python/LangagePython_fonctions/Exercice39.html new file mode 100644 index 0000000..33c5ac0 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice39.html @@ -0,0 +1,117 @@ + + + + + + Exercice 3.9 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 3.9

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

1) ★ Ecrire un script qui détermine si un nombre entier est premier ou pas.
Par exemple :

+

>>>
Nombre ? 17
17 est un nombre premier

+

2) ★★ Ecrire un script qui décompose un nombre entier en un produit de facteurs premiers.

+

>>>
Nombre à décomposer ? 2142
2142 = 2 * 3 * 3 * 7 * 17

+

+

Créé avec HelpNDoc Personal Edition: Créer des documents d'aide CHM facilement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice41.html b/Activity_3_python/LangagePython_fonctions/Exercice41.html new file mode 100644 index 0000000..12f0f6e --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice41.html @@ -0,0 +1,117 @@ + + + + + + Exercice 4.1 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 4.1

+ + +
+ Les fonctions ›› Exercices 4 ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+


1) Ecrire une fonction carre() qui retourne le carré d'un nombre :

+

>>> print(carre(11.11111))
123.4567654321

+

2) Avec une boucle while et la fonction carre(), écrire un script qui affiche le carré des nombres entiers de 1 à 100 :

+

>>>
1² = 1
2² = 4
3² = 9
...
99² = 9801
100² = 10000
Fin du programme

+

+

Créé avec HelpNDoc Personal Edition: Générateur d'aides Web gratuit

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice42.html b/Activity_3_python/LangagePython_fonctions/Exercice42.html new file mode 100644 index 0000000..2836d64 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice42.html @@ -0,0 +1,117 @@ + + + + + + Exercice 4.2 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 4.2

+ + +
+ Les fonctions ›› Exercices 4 ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+


1) Ecrire une fonction qui retourne l'aire de la surface d'un disque de rayon R.
Exemple :

+

>>> print(airedisque(2.5))
19.6349540849

+

2) Ajouter un paramètre qui précise l'unité de mesure :

+

>>> print(airedisque2(4.2, 'cm'))
55.4176944093 cm²

+

+

Créé avec HelpNDoc Personal Edition: Créer des fichiers d'aide pour la plateforme Qt Help

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice43.html b/Activity_3_python/LangagePython_fonctions/Exercice43.html new file mode 100644 index 0000000..d4721bb --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice43.html @@ -0,0 +1,116 @@ + + + + + + Exercice 4.3 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 4.3

+ + +
+ Les fonctions ›› Exercices 4 ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+


1) Ecrire une fonction qui retourne la factorielle d'un nombre entier N.
On rappelle que : N ! = 1×2×...×(N-1)×N
Exemple :

+

>>> print(factorielle(50))
30414093201713378043612608166064768844377641568960512000000000000

+

2) Comparez avec le résultat de la fonction factorial() du module math.

+

+

Créé avec HelpNDoc Personal Edition: Générateur facile de livres électroniques et documentation

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice44.html b/Activity_3_python/LangagePython_fonctions/Exercice44.html new file mode 100644 index 0000000..cf5fcf0 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice44.html @@ -0,0 +1,119 @@ + + + + + + Exercice 4.4 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 4.4

+ + +
+ Les fonctions ›› Exercices 4 ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+


1) A l'aide de la fonction randint() du module random, écrire une fonction qui retourne un mot de passe de longueur N (chiffres, lettres minuscules ou majuscules).
On donne :
chaine = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'

+

>>> print(password(10))
mHVeC5rs8P
>>> print(password(6))
PYthoN

+

2) Reprendre la question 1) avec la fonction choice() du module random.
Pour obtenir de l'aide sur cette fonction :

+

>>> import random
>>> help(random.choice)

+

3) Quel est le nombre de combinaisons possibles ?
4) Quelle durée faut-il pour casser le mot de passe avec un logiciel capable de générer 1 million de combinaisons par seconde ?

+

Lien utile : www.exhaustif.com/Generateur-de-mot-de-passe-en.html

+

+

Créé avec HelpNDoc Personal Edition: Sites web iPhone faciles

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice45.html b/Activity_3_python/LangagePython_fonctions/Exercice45.html new file mode 100644 index 0000000..c10b12d --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice45.html @@ -0,0 +1,115 @@ + + + + + + Exercice 4.5 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 4.5

+ + +
+ Les fonctions ›› Exercices 4 ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

 Ecrire une fonction qui retourne une carte (au hasard) d'un jeu de Poker à 52 cartes.
On utilisera la fonction choice() ou randint() du module random.
On donne :
ListeCarte = ['2s','2h','2d','2c','3s','3h','3d','3c','4s','4h','4d','4c','5s','5h','5d','5c', '6s','6h','6d','6c','7s','7h','7d','7c','8s','8h','8d','8c','9s','9h','9d','9c', 'Ts','Th','Td','Tc','Js','Jh','Jd','Jc','Qs','Qh','Qd','Qc','Ks','Kh','Kd','Kc','As','Ah','Ad','Ac']

+

>>> print(tiragecarte())
7s
>>> print(tiragecarte())
Kd

+

+

Créé avec HelpNDoc Personal Edition: Générateur d'aides CHM gratuit

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice46.html b/Activity_3_python/LangagePython_fonctions/Exercice46.html new file mode 100644 index 0000000..60ee038 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice46.html @@ -0,0 +1,116 @@ + + + + + + Exercice 4.6 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 4.6

+ + +
+ Les fonctions ›› Exercices 4 ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

★★
1) Ecrire une fonction qui retourne une liste de N cartes différentes d'un jeu de Poker à 52 cartes.
Noter qu'une fonction peut appeler une fonction : on peut donc réutiliser la fonction tiragecarte() de l'exercice précédent.
Exemple :

+

>>> print(tirage_n_carte(2))
['As', 'Ah']
>>> print(tirage_n_carte(25))
['Jc', 'Jh', 'Tc', '2d', '3h', 'Qc', '8d', '7c', 'As', 'Td', '8h', '9c', 'Ad', 'Qh',
'Kc', '6s', '5h', 'Qd', 'Kh', '9h', '5d', 'Js', 'Ks', '5c', 'Th']

+

2) Simplifier le script avec la fonction shuffle() ou sample() du module random.

+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentations PDF gratuit

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice47.html b/Activity_3_python/LangagePython_fonctions/Exercice47.html new file mode 100644 index 0000000..2cb8e93 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice47.html @@ -0,0 +1,116 @@ + + + + + + Exercice 4.7 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 4.7

+ + +
+ Les fonctions ›› Exercices 4 ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

 Ecrire une fonction qui retourne une grille de numéros du jeu Euro Millions.
On utilisera la fonction sample() du module random.

+

+

>>> print(euromillions())
[37, 23, 9, 11, 49, 2, 11]
>>> print(euromillions())
[16, 32, 8, 30, 40, 6, 4]

+

+

Créé avec HelpNDoc Personal Edition: Créer des fichiers d'aide pour la plateforme Qt Help

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercice48.html b/Activity_3_python/LangagePython_fonctions/Exercice48.html new file mode 100644 index 0000000..8866279 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercice48.html @@ -0,0 +1,116 @@ + + + + + + Exercice 4.8 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercice 4.8

+ + +
+ Les fonctions ›› Exercices 4 ›› +
+ +
+ +
+ + + Parent + + + + Previous + + +
+ +
+
+ + +
+ +

+

★★
1) Ecrire une fonction qui retourne la valeur de la fonction mathématique f(x)= 27x3 -27x2-18x +8 :

+

>>> print(f(0), f(1), f(0.5), f(0.25), f(0.375))
8.0 -10.0 -4.375 2.234375 -1.123046875

+

2) On se propose de chercher les zéros de cette fonction par la méthode de dichotomie.
Ecrire le script correspondant.

+

>>>
Recherche d'un zéro dans l'intervalle [a,b]
a? 0
b? 1
Précision ? 1e-12
0.5
0.25
0.375
0.3125
0.34375
0.328125
0.3359375
0.33203125
0.333984375
0.3330078125
0.33349609375
0.333251953125
...
...
0.333333333333
>>>

+

3) Chercher tous les zéros de cette fonction.

+

Annexe : représentation graphique de la fonction f(x)= 27x3 -27x2 -18x +8 (graphique réalisé avec la librairie matplotlib de Python)

+

+

+

Créé avec HelpNDoc Personal Edition: Créer des documentations web iPhone

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercices1.html b/Activity_3_python/LangagePython_fonctions/Exercices1.html new file mode 100644 index 0000000..01a10c2 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercices1.html @@ -0,0 +1,114 @@ + + + + + + Exercices 1 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercices 1

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+


+

+

Créé avec HelpNDoc Personal Edition: Générateur complet de livres électroniques ePub

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercices2.html b/Activity_3_python/LangagePython_fonctions/Exercices2.html new file mode 100644 index 0000000..852b475 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercices2.html @@ -0,0 +1,114 @@ + + + + + + Exercices 2 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercices 2

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+


+

+

Créé avec HelpNDoc Personal Edition: Avantages d'un outil de création d'aide

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercices3.html b/Activity_3_python/LangagePython_fonctions/Exercices3.html new file mode 100644 index 0000000..5e0ff33 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercices3.html @@ -0,0 +1,114 @@ + + + + + + Exercices 3 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercices 3

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+


+

+

Créé avec HelpNDoc Personal Edition: Produire des livres électroniques facilement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Exercices4.html b/Activity_3_python/LangagePython_fonctions/Exercices4.html new file mode 100644 index 0000000..7d3d08d --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Exercices4.html @@ -0,0 +1,114 @@ + + + + + + Exercices 4 + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Exercices 4

+ + +
+ Les fonctions ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+


+

+

Créé avec HelpNDoc Personal Edition: Créer des livres électroniques facilement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/IDLE.html b/Activity_3_python/LangagePython_fonctions/IDLE.html new file mode 100644 index 0000000..3e1a497 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/IDLE.html @@ -0,0 +1,140 @@ + + + + + + IDLE + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

IDLE

+ + +
+ +
+ + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

IDLE

+

IDLE est un environnement de développement intégré (Integrated Development Environment) pour Python. Un IDLE propose un certain nombre d'outils :

+


+ +


+

Il existe des IDLE en ligne pour Python:

+ +


+

Il existe des IDLE installables sur les ordinateurs:

+ +


+

Exemple pour Edupython:

+

+

La Console Python est un interpréteur Python en mode interactif.

+


+

Exemple de fenêtre interactive REPL dans Mu

+

+


+

+

Créé avec HelpNDoc Personal Edition: Générateur complet de livres électroniques Kindle

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Immuablevsmutable.html b/Activity_3_python/LangagePython_fonctions/Immuablevsmutable.html new file mode 100644 index 0000000..480b965 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Immuablevsmutable.html @@ -0,0 +1,171 @@ + + + + + + Immuable vs mutable + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Immuable vs mutable

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+ +

Les nombres sont des types immuables tout comme les chaînes de caractères et les tuples (tableaux d’objets).

+

Une variable de type immuable ne peut être modifiée. Une opération sur une variable de ce type entraîne nécessairement la création d’une autre variable du même type.

+


+

Pour mettre en évidence cette propriété, jouons avec la fonction id() qui renvoie l'identificateur unique d'un objet, cela correspond à l'adresse mémoire dans laquelle il est stocké.

+

Si l'identifiant est le même, c'est le même objet.

+


+

Vous allez vérifier cela dans la Console Python (interpréteur Python en mode interactif)

+


+

>>> a = 1
>>> id(a)

+


+

>>> a += 2
>>> print(a)

+


+

>>> id(a)

+


+

>>> b = a
>>> id(b)

+


+

Donner plusieurs noms à un même objet s'appelle l'aliasing, les variables a et b sont des alias l'une de l'autre. a et b pointent vers le même emplacement mémoire

+


+

>>> b = 5
>>> a

+


+

>>> b

+


+

>>> id(a)

+


+

>>> id(a)

+


+

Conclusion, l'aliasing se fait sans risque.

+


+ +

Un objet de type mutable peut être modifié et modifié in situ. Aucune copie implicite n'est faite.

+

Cette catégorie comprend: les listes, les dictionnaires, ...

+


+

>>> liste1 = []
>>> id(liste1)

+


+

>>> liste1.append('Nicolas')
>>> liste1

+


+

>>> id(liste1)

+


+

La valeur de liste peut être modifié mais liste ne change pas d'id.

+


+

Si un objet doit être souvent modifié, un type mutable est préférable qu'un type immuable d'un point de vue espace mémoire mais attention à l'aliasing par exemple:

+


+

>>> liste2 = liste1
>>> id(liste2)

+


+

>>> liste2.append(3)
>>> liste2

+

>>> liste1

+


+


+


+


+


+


+


+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentation complet

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Lesbouclesinstructionsforwhile.html b/Activity_3_python/LangagePython_fonctions/Lesbouclesinstructionsforwhile.html new file mode 100644 index 0000000..d3e1ceb --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Lesbouclesinstructionsforwhile.html @@ -0,0 +1,181 @@ + + + + + + Les boucles (instructions for, while) + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Les boucles (instructions for, while)

+ + +
+ +
+ + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Une boucle permet d'exécuter une portion de code plusieurs fois de suite.

+ +


+
+ + + + + + + + + + + + + + + +

Séquence

+

Algorithme

+

Algorigramme

+


+


+

Répétitive ou itérative à condition initiale

+


+

TANT QUE la condition est vrai

+

             Faire “Traitement”

+

Fin TANT QUE

+

+


+


+

Répétitive ou itérative à condition finale

+


+

RÉPÉTER

+

             “Traitement”

+

JUSQU'À “Condition” vraie

+

+
+
+


+


+ +


+
+ + + + + + + + + + +

Séquence

+

Algorithme

+

Algorigramme

+


+


+


+

Boucle avec comptage

+


+


+

POUR i allant de VI jusqu’à VF

+

        Faire “Traitement”

+

Fin POUR

+

+
+
+


+


+

+

Créé avec HelpNDoc Personal Edition: Créer des documents d'aide HTML facilement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Lesconditionsinstructionsifelife.html b/Activity_3_python/LangagePython_fonctions/Lesconditionsinstructionsifelife.html new file mode 100644 index 0000000..1616e42 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Lesconditionsinstructionsifelife.html @@ -0,0 +1,152 @@ + + + + + + Les conditions (instructions if, elif, else) + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Les conditions (instructions if, elif, else)

+ + +
+ +
+ + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Les langages informatiques savent interpréter des expressions conditionnelles telles que :

+


+

• " Si la météo le permet alors je vais me promener, sinon je reste à la maison. "

+


+

         Structure conditionnelle ou alternative

+


+
+ + + + + + + + + + + + + + + +

Séquence

+

Algorithme

+

Algorigramme

+


+


+

Alternative partielle

+


+

SI la condition est vrai ALORS

+

            Faire “Traitement”

+

Fin SI

+

+


+


+

Alternative complète

+

SI l’expression est vrai ALORS

+

         Faire “Traitement 1”

+

SINON

+

         Faire “Traitement 2”

+

Fin SI

+

+
+
+


+

La condition peut être composée de plusieurs conditions combinées par les opérateurs logiques ET, OU, et NON.

+


+

+

Créé avec HelpNDoc Personal Edition: Générateur d'aides CHM gratuit

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Lesfonctions.html b/Activity_3_python/LangagePython_fonctions/Lesfonctions.html new file mode 100644 index 0000000..5599304 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Lesfonctions.html @@ -0,0 +1,114 @@ + + + + + + Les fonctions + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Les fonctions

+ + +
+ +
+ + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Nous avons déjà vu beaucoup de fonctions : print(), type(), len(), input(), range()...
Ce sont des fonctions pré-définies (built-in functions).
Nous avons aussi la possibilité de créer nos propres fonctions !

+

Intérêt des fonctions

+

Une fonction est une portion de code que l'on peut appeler au besoin (c'est une sorte de sous-programme).

+

L'utilisation des fonctions évite des redondances dans le code : on obtient ainsi des programmes plus courts et plus lisibles.

+

Par exemple, nous avons besoin de convertir à plusieurs reprises des degrés Celsius en degrés Fahrenheit :

+

>>> print(100.0*9.0/5.0 + 32.0)

>>> print(37.0*9.0/5.0 + 32.0)

>>> print(233.0*9.0/5.0 + 32.0)

+

La même chose en utilisant une fonction :

+

>>> def fahrenheit(degre_celsius):
        """ Conversion degré Celsius en degré Fahrenheit """
        print(degre_celsius*9.0/5.0 + 32.0)
>>> fahrenheit(100)

>>> fahrenheit(37)

>>> temperature = 233
>>> fahrenheit(temperature)

+

Rien ne vous oblige à définir des fonctions dans vos scripts, mais cela est tellement pratique qu'il serait improductif de s'en passer !

+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentation et EPub gratuit

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Lesfonctionsmathematiques.html b/Activity_3_python/LangagePython_fonctions/Lesfonctionsmathematiques.html new file mode 100644 index 0000000..ddc0757 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Lesfonctionsmathematiques.html @@ -0,0 +1,128 @@ + + + + + + Les fonctions mathématiques + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Les fonctions mathématiques

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Sous Python, pour utiliser les fonctions mathématiques, il faut commencer par importer le module math :

+

>>> import math

+

Sous l'IDLE (Python GUI), la fonction dir() retourne la liste des fonctions et données d'un module :

+

>>> dir(math)
['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan',
'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf',
'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum',
'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p',
'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']

+

Sous Edupython, vous trouverez la liste des fonctions dans l'onglet du bas nommé Variables

+

+

Pour appeler une fonction d'un module, la syntaxe est la suivante :
module.fonction(arguments)

+

Pour accéder à une donnée d'un module :
module.data

+

>>> print(math.pi)  # donnée pi du module math (nombre pi)

>>> print(math.sin(math.pi/4.0)) # fonction sin() du module math (sinus)

>>> print(math.sqrt(2.0))  # fonction sqrt() du module math (racine carrée)

>>> print(math.sqrt(-5.0))

>>> print(math.exp(-3.0))  # fonction exp() du module math (exponentielle)

>>> print(math.log(math.e))  # fonction log() du module math (logarithme népérien)

+

Pour simplifier, vous pouvez importer toutes les fonctions d'un module :

+

>>> from math import *

+

+

Vous devez privilégier uniquement l'importation des fonctions que vous souhaitez utiliser:

+

>>> from math import pi

+

 Utilisation d'un module en Python (vidéo)

+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentations PDF gratuit

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Letypeboolbooleen.html b/Activity_3_python/LangagePython_fonctions/Letypeboolbooleen.html new file mode 100644 index 0000000..fb57ef7 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Letypeboolbooleen.html @@ -0,0 +1,181 @@ + + + + + + Le type bool (booléen) + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Le type bool (booléen)

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Deux valeurs sont possibles : True et False

+

>>> choix = True
>>> print(type(choix))

+

Les opérateurs de comparaison :

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Opérateur

+

Signification

+

Remarques

+

<

+

strictement inférieur

+

+

<=

+

inférieur ou égal

+

+

>

+

strictement supérieur

+

+

>=

+

supérieur ou égal

+

+

==

+

égal

+

Attention : deux signes ==

+

!=

+

différent

+

+
+
+

>>> b = 10
>>> print(b > 8)

>>> print(b == 5)

>>> print(b != 10)

>>> print(0 <= b <= 20)

+

Les opérateurs logiques : and, or, not

+

>>> note = 13.0
>>> mention_ab = note >= 12.0 and note < 14.0 # ou bien : mention_ab = 12.0 <= note < 14.0
>>> print(mention_ab)

>>> print(not mention_ab)

>>> print(note == 20.0 or note == 0.0)

+

L'opérateur in s'utilise avec des chaînes (type str) ou des listes (type list) :

+

>>> chaine = 'Bonsoir'
>>> # la sous-chaîne 'soir' fait-elle partie de la chaîne 'Bonsoir' ?
>>> resultat = 'soir' in chaine
>>> print(resultat)

>>> print('b' in chaine)

+

>>> maliste = [4, 8, 15]
>>> # le nombre entier 9 est-il dans la liste ?
>>> print(9 in maliste)

>>> print(8 in maliste)

>>> print(14 not in maliste)

+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentation et EPub facile

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Letypedictdictionnaire.html b/Activity_3_python/LangagePython_fonctions/Letypedictdictionnaire.html new file mode 100644 index 0000000..9b46360 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Letypedictdictionnaire.html @@ -0,0 +1,115 @@ + + + + + + Le type dict (dictionnaire) + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Le type dict (dictionnaire)

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Un dictionnaire stocke des données sous la forme clé ⇒ valeur
Une clé est unique et n'est pas nécessairement un entier (comme c'est le cas de l'indice d'une liste).

+

>>> moyennes = {'math': 12.5, 'anglais': 15.8} # entre accolades
>>> print(type(moyennes))

>>> print(moyennes['anglais'])  # entre crochets

>>> moyennes['anglais'] = 14.3  # nouvelle affectation
>>> print(moyennes)

>>> moyennes['sport'] = 11.0  # nouvelle entrée
>>> print(moyennes)

+

+

Créé avec HelpNDoc Personal Edition: Créer des documentations web iPhone

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Letypefloatnombresenvirguleflott.html b/Activity_3_python/LangagePython_fonctions/Letypefloatnombresenvirguleflott.html new file mode 100644 index 0000000..0e72176 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Letypefloatnombresenvirguleflott.html @@ -0,0 +1,152 @@ + + + + + + Le type float (nombres en virgule flottante) + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Le type float (nombres en virgule flottante)

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

>>> b = 17.0  # le séparateur décimal est un point (et non une virgule)
>>> print(b)

>>> print(type(b))

+

>>> c = 14.0/3.0
>>> print(c)

+

>>> c = 14.0//3.0 # division entière
>>> print(c)

+

Attention: il faut éviter de faire des divisions entières sur des nombres négatifs

+

>>> print(7//3)

+

>>> print(-7//3)

+

Attention : avec des nombres entiers, l'opérateur / fait une division classique et retourne toujours un type float :

+

>>> c = 12/3
>>> print(c)

+

Notation scientifique :

+

>>> a = -1.784892e4
>>> print(a)

+

Entre deux nombres donnés, par exemple entre 1 et 4, ou entre 3,5 et 3,6 ou entre – 10,36 et – 10,34… il existe une infinité d’autres nombres. Certaines sont des entiers, comme 2 ou 3, certains sont des décimaux comme 1,5 ou 2,3, d’autres sont des rationnels comme 4/3, d’autres sont des irrationnels comme .

+


+

Nous allons voir qu’en machine, certains nombres sont stockés de manière exacte et d’autre de manière approchée.

+


+ +

Expliquer pourquoi le résultat n’est pas celui attendu

+


+

On peut tester l’égalité de 0,1 + 0,2 avec 0,3

+


+

>>> print (0.1+0.2 == 0.3)

+

Il faut éviter de tester l’égalité de deux flottants.

+


+

• La fonction « float() » permet de convertir un entier en flottant.

+

>>> print (float(5))

+

• La fonction « int()» permet de convertir un flottant en entier.

+

>>> print (int(4.8))

+

À tester avec des nombres positifs ou négatifs pour voir comment la valeur est obtenue (tronquée ? arrondie ?).

+


+

La fonction « print ()» permet d’afficher des flottants en indiquant le nombre de chiffres à afficher après la virgule à l’aide de la chaîne "%.2f" %x dans laquelle le nombre devant f donne le nombre de décimales et x est le nombre à afficher.

+

>>> x = 0.123456
>>> print(x)

+

>>> print("%.2f" %x)

+

• Il faut être prudent avec les arrondis.

+


+

>>> print("%.2f" %0.1)

+

>>> print("%.20f" %0.1)

+

>>> print("%.20f" %0.125)

+

>>> print(1.2*3)

+

+

Créé avec HelpNDoc Personal Edition: Générateur complet de livres électroniques ePub

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Letypeintintegernombresentiers.html b/Activity_3_python/LangagePython_fonctions/Letypeintintegernombresentiers.html new file mode 100644 index 0000000..0e51d49 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Letypeintintegernombresentiers.html @@ -0,0 +1,160 @@ + + + + + + Le type int (integer: nombres entiers) + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Le type int (integer: nombres entiers)

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Depuis EduPython (IDLE PyScripter), saisir ces lignes de programme dans la Console Python (interpréteur Python en mode interactif)

+

Pour affecter (on dit aussi assigner) la valeur 16 à la variable nommée age :

+

+

Afin que vous gardiez une trace de votre travail, saisir les différentes lignes de programme dans la zone de saisie puis exécuter  pour voir le résultat dans la console Python.

+

+

Désormais vous devrez utiliser la fonction print() pour afficher la valeur de la variable :

+

Remarque: Il est possible en langage Python de réaliser des affectations multiples:

+

>>> a,b = 2,3

+

>>> print(a)  

+

>>> print(b)

+

En programmation, le codage de la variable diffère en fonction de la donnée utilisée (booléen, nombre entiers, nombre à virgule, caractères...). On parle alors de type de variable.

+

En langage Python, le typage est dynamique ce qui signifie que c’est l’instruction d’affectation qui va définir le type de la variable.

+


+

La fonction type() retourne le type de la variable :

+

>>> print(type(age))

+

int est le type des nombres entiers.

+

>>> x=0b11111011101
>>> print(x)

+

>>> y=0x7DD
>>> print(y)

+

Rappel:

+

La notation « 0b… »  indique que la valeur du nombre est en binaire.

+

La notation « 0x… »  indique que la valeur du nombre est en hexadécimal.

+


+ +

>>> binaire=bin(25)
>>> print(binaire)

+ +

>>> decimal=0x1FA
>>> print(decimal)

+ +

>>> hexadecimal=hex(506)
>>> print(hexadecimal)

+


+

Commenter et documenter son programme sont essentiels pour maintenir un code clair et pour faciliter la collaboration avec d'autres personnes. Cette pratique de programmation permet également de se rappeler ultérieurement l'utilité de telle ou telle variable, méthode, etc...

+

>>> # ceci est un commentaire
>>> age = age + 1 # en plus court : age += 1
>>> print(age)

>>> age = age - 3 # en plus court : age -= 3
>>> print(age)

>>> age = age*2  # en plus court : age *= 2
>>> print(age)

+

>>> a = 6*3 - 20
>>> print(a)

+

>>> b = 25
>>> c = a + 2*b
>>> print(b, c)          # ne pas oublier la virgule

+

L'opérateur // donne la division entière :

+

>>> tour = 450//360
>>> print(tour)

+

L'opérateur % donne le reste de la division (opération modulo) :

+

>>> angle = 450%360
>>> print(angle)

+

L'opérateur ** donne la puissance :

+

>>> mo = 2**20
>>> print(mo)

>>> racine2 = 2**0.5
>>> print(racine2)

+


+


+

+

Créé avec HelpNDoc Personal Edition: Qu'est-ce qu'un outil de création d'aide ?

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Letypelistliste.html b/Activity_3_python/LangagePython_fonctions/Letypelistliste.html new file mode 100644 index 0000000..f0c25c0 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Letypelistliste.html @@ -0,0 +1,121 @@ + + + + + + Le type list (liste) + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Le type list (liste)

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Une liste est une structure de données.
Le premier élément d'une liste possède l'indice (l'index) 0.
Dans une liste, on peut avoir des éléments de plusieurs types.

+

>>> infoperso = ['Pierre', 'Dupont', 17, 1.75, 72.5]
>>> # la liste infoperso contient 5 éléments de types str, str, int, float et float
>>> print(type(infoperso))

>>> print(infoperso)

>>> print('Prénom : ', infoperso[0])   # premier élément (indice 0)

>>> print('Age : ', infoperso[2])   # le troisième élément a l'indice 2

>>> print('Taille : ', infoperso[3])   # le quatrième élément a l'indice 3

+

La fonction range() crée une liste d'entiers régulièrement espacés :

+

>>> maliste = range(10)
>>> print(list(maliste))

>>> print(type(maliste))

+

>>> maliste = range(1,10,2) # range(début,fin non comprise,intervalle)
>>> print(list(maliste))

>>> print(maliste[2])  # le troisième élément a l'indice 2

+

On peut créer une liste de listes, qui s'apparente à un tableau à 2 dimensions (ligne, colonne) :

+

 0  1  2
10 11 12
20 21 22

+

>>> maliste = [[0, 1, 2], [10, 11, 12], [20, 21, 22]]
>>> print(maliste[0])

>>> print(maliste[0][0])

>>> print(maliste[2][1])  # élément à la troisième ligne et deuxième colonne

>>> maliste[2][1] = 69  # nouvelle affectation
>>> print(maliste)

+

+

Créé avec HelpNDoc Personal Edition: Nouvelles et informations sur les outils de logiciels de création d'aide

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Letypestrstringchainedecaractere.html b/Activity_3_python/LangagePython_fonctions/Letypestrstringchainedecaractere.html new file mode 100644 index 0000000..ef61bcc --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Letypestrstringchainedecaractere.html @@ -0,0 +1,134 @@ + + + + + + Le type str (string : chaîne de caractères) + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Le type str (string : chaîne de caractères)

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

>>> nom = 'Dupont'  # entre apostrophes
>>> print(nom)

>>> print(type(nom))

>>> prenom = "Pierre"  # on peut aussi utiliser les guillemets
>>> print(prenom)

>>> print(nom, prenom)  # ne pas oublier la virgule

+

La concaténation désigne la mise bout à bout de plusieurs chaînes de caractères.
La concaténation utilise l'opérateur +

+

>>> chaine = nom + prenom # concaténation de deux chaînes de caractères
>>> print(chaine)

>>> chaine = prenom + nom # concaténation de deux chaînes de caractères
>>> print(chaine)

>>> chaine = prenom + ' ' + nom
>>> print(chaine)

>>> chaine = chaine + ' 18 ans' # en plus court : chaine += ' 18 ans'
>>> print(chaine)

+

La fonction len() retourne la longueur (length) de la chaîne de caractères :

+

>>> print(len(chaine))

+

Indexage et slicing :

+

>>> print(chaine[0])  # premier caractère (indice 0)

>>> print(chaine[1]) # deuxième caractère (indice 1)

>>> print(chaine[1:4]) # slicing

>>> print(chaine[2:]) # slicing

>>> print(chaine[-1]) # dernier caractère (indice -1)

>>> print(chaine[-6:]) # slicing

+

En résumé :

+

 +---+---+---+---+---+---+
 | M | u | r | i | e | l |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

+


+

>>> chaine = 'Aujourd'hui'
SyntaxError: invalid syntax
>>> chaine  = 'Aujourd\'hui'  # séquence d'échappement \'
>>> print(chaine)

>>> chaine  = "Aujourd'hui"
>>> print(chaine)

+

La séquence d'échappement \n représente un saut ligne :

+

>>> chaine = 'Première ligne\nDeuxième ligne'
>>> print(chaine)

+

Plus simplement, on peut utiliser les triples guillemets (ou les triples apostrophes) pour encadrer une chaîne définie sur plusieurs lignes :

+

>>> chaine = """Première ligne
Deuxième ligne"""
>>> print(chaine)

+

On ne peut pas mélanger les serviettes et les torchons (ici type str et type int) :

+

>>> chaine = '17.45'
>>> print(type(chaine))

>>> chaine = chaine + 2

+

La fonction float() permet de convertir un type str en type float

+

>>> nombre = float(chaine)
>>> print(nombre)

>>> print(type(nombre))

>>> nombre = nombre + 2  # en plus court : nombre += 2
>>> print(nombre)

+

La fonction input() lance une invite de commande (en anglais : prompt) pour saisir une chaîne de caractères.

+

>>> # saisir une chaîne de caractères et valider avec la touche Enter
>>> chaine = input("Entrer un nombre : ")
Entrer un nombre : 14.56
>>> print(chaine)

>>> print(type(chaine))

>>> nombre = float(chaine) # conversion de type
>>> print(nombre**2)

+

+

Créé avec HelpNDoc Personal Edition: Générateur facile de livres électroniques et documentation

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Letypetuple.html b/Activity_3_python/LangagePython_fonctions/Letypetuple.html new file mode 100644 index 0000000..b42dbbb --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Letypetuple.html @@ -0,0 +1,113 @@ + + + + + + Le type tuple + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Le type tuple

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

+

Créé avec HelpNDoc Personal Edition: Création d'aide CHM, PDF, DOC et HTML d'une même source

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Linstructiondef.html b/Activity_3_python/LangagePython_fonctions/Linstructiondef.html new file mode 100644 index 0000000..7c3e4d2 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Linstructiondef.html @@ -0,0 +1,115 @@ + + + + + + L'instruction def + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

L'instruction def

+ + +
+ Les fonctions ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Syntaxe

+

def nom_de_la_fonction(parametre1, parametre2, parametre3, ...):
    """ Documentation
qu'on peut écrire
sur plusieurs lignes """ # docstring entouré de 3 guillemets (ou apostrophes)
    bloc d'instructions  # attention à l'indentation
    return resultat   # la fonction retourne le contenu de la variable resultat

+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentation et EPub gratuit

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Linstructionelif.html b/Activity_3_python/LangagePython_fonctions/Linstructionelif.html new file mode 100644 index 0000000..3ab208d --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Linstructionelif.html @@ -0,0 +1,129 @@ + + + + + + L'instruction elif + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

L'instruction elif

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Une instruction elif (contraction de else if) est toujours associée à une instruction if

+

Syntaxe

+

if expression 1:
    bloc d'instructions 1
elif expression 2:
    bloc d'instructions 2
elif expression 3:
    bloc d'instructions 3 # ici deux instructions elif, mais il n'y a pas de limitation
else:
    bloc d'instructions 4
# suite du programme

+

Si l'expression 1 est vraie alors le bloc d'instructions 1 est exécuté, et on passe à la suite du programme.
Si l'expression 1 est fausse alors on teste l'expression 2 :

+ +

Le bloc d'instructions 4 est donc exécuté si toutes les expressions sont fausses (c'est le bloc "par défaut").

+

Parfois il n'y a rien à faire.
Dans ce cas, on peut omettre l'instruction else:

+

if expression 1:
    bloc d'instructions 1
elif expression 2:
    bloc d'instructions 2
elif expression 3:
    bloc d'instructions 3
# suite du programme

+

L'instruction elif évite souvent l'utilisation de conditions imbriquées (et souvent compliquées).

+

Exemple

+

# script Condition5.py
# ce script fait la même chose que Condition4.py
note = float(input("Note sur 20 : "))
if note == 0.0:
    print("C'est en dessous de la moyenne")
    print("... lamentable !")
elif note == 20.0:
    print("J'ai la moyenne")
    print("C'est même excellent !")
elif note < 10.0 and note > 0.0: # ou bien : elif 0.0 < note < 10.0:
    print("C'est en dessous de la moyenne")
elif note >= 10.0 and note < 20.0: # ou bien : elif 10.0 <= note < 20.0:
    print("J'ai la moyenne")
else:
    print("Note invalide !")
print("Fin du programme")

+

Exécuter  et tester

+


+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentation complet

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Linstructionelse.html b/Activity_3_python/LangagePython_fonctions/Linstructionelse.html new file mode 100644 index 0000000..45235ca --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Linstructionelse.html @@ -0,0 +1,125 @@ + + + + + + L'instruction else + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

L'instruction else

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Une instruction else est toujours associée à une instruction if

+

Syntaxe

+

if expression:
    bloc d'instructions 1  # attention à l'indentation
else:     # else est au même niveau que if
    bloc d'instructions 2  # attention à l'indentation
# suite du programme

+

Si l'expression est vraie (True) alors le bloc d'instructions 1 est exécuté.
Si l'expression est fausse (False) alors c'est le bloc d'instructions 2 qui est exécuté.

+

# script Condition2.py
chaine = input("Note sur 20 : ")
note = float(chaine)
if note >= 10.0:
    # ce bloc est exécuté si l'expression (note >= 10.0) est vraie
    print("J'ai la moyenne")
else:
    # ce bloc est exécuté si l'expression (note >= 10.0) est fausse
    print("C'est en dessous de la moyenne")
print("Fin du programme")

+

Exécuter   et tester

+

Pour traiter le cas des notes invalides (<0 ou >20), on peut imbriquer des instructions conditionnelles :

+

# script Condition3.py
chaine = input("Note sur 20 : ")
note = float(chaine)
if note > 20.0 or note < 0.0:
    # ce bloc est exécuté si l'expression (note > 20.0 or note < 0.0) est vraie
    print("Note invalide !")
else:
    # ce bloc est exécuté si l'expression (note > 20.0 or note < 0.0) est fausse
    if note >= 10.0:
        # ce bloc est exécuté si l'expression (note >= 10.0) est vraie
        print("J'ai la moyenne")
    else:
        # ce bloc est exécuté si l'expression (note >= 10.0) est fausse
        print("C'est en dessous de la moyenne")
print("Fin du programme")

+

Exécuter  et tester

+

On ajoute encore un niveau d'imbrication pour traiter les cas particuliers 0 et 20 :

+

# script Condition4.py
chaine = input("Note sur 20 : ")
note = float(chaine)
if note > 20.0 or note < 0.0:
    print("Note invalide !")
else:
    if note >= 10.0:
        print("J'ai la moyenne")
        if note == 20.0:
            # ce bloc est exécuté si l'expression (note == 20.0) est vraie
            print("C'est même excellent !")
    else:
        print("C'est en dessous de la moyenne")
        if note == 0.0:
            # ce bloc est exécuté si l'expression (note == 0.0) est vraie
            print("... lamentable !")
print("Fin du programme")

+

Exécuter  et tester

+

+

Créé avec HelpNDoc Personal Edition: Créer des documents d'aide PDF facilement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Linstructionfor.html b/Activity_3_python/LangagePython_fonctions/Linstructionfor.html new file mode 100644 index 0000000..b31e876 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Linstructionfor.html @@ -0,0 +1,140 @@ + + + + + + L'instruction for + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

L'instruction for

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Syntaxe

+

for élément in séquence :
    bloc d'instructions
# suite du programme

+

Les éléments de la séquence sont issus d'une chaîne de caractères ou bien d'une liste.

+

Exemple avec une séquence de caractères

+

# script Boucle4.py
chaine = 'Bonsoir'
for lettre in chaine:  # lettre est la variable d'itération
    print(lettre)
print("Fin de la boucle")

+

Exécuter  

+

La variable lettre est initialisée avec le premier élément de la séquence ('B').
Le bloc d'instructions est alors exécuté.
Puis la variable lettre est mise à jour avec le second élément de la séquence ('o') et le bloc d'instructions à nouveau exécuté...
Le bloc d'instructions est exécuté une dernière fois lorsqu'on arrive au dernier élément de la séquence ('r') :

+

Exemple avec les éléments d'une liste

+

# script Boucle5.py
maliste = ['Pierre', 67.5, 18]
for element in maliste:
    print(element)
print("Fin de la boucle")

+

Exécuter   et tester

+

Là, on affiche dans l'ordre les éléments de la liste :

+

Fonction range()

+

L'association avec la fonction range() est très utile pour créer des séquences automatiques de nombres entiers :

+

# script Boucle6.py
print(list(range(1,5)))
for i in range(1,5):
    print(i)
print("Fin de la boucle")

+

>>>
[1, 2, 3, 4]
1
2
3
4
Fin de la boucle

+

Table de multiplication

+

La création d'une table de multiplication paraît plus simple avec une boucle for qu'avec une boucle while :

+

# script Boucle7.py
for compteur in range(1,11):
    print(compteur, '* 9 =', compteur*9)
print("Et voilà !")

+

Exécuter  

+

L'instruction break

+

L'instruction break provoque une sortie immédiate d'une boucle while ou d'une boucle for.

+

Dans l'exemple suivant, l'expression True est toujours ... vraie : on a une boucle sans fin.
L'instruction break est donc le seul moyen de sortir de la boucle.

+

Affichage de l'heure courante

+

# script Boucle8.py
import time     # importation du module time
while True:
    # strftime() est une fonction du module time
    print('Heure courante ', time.strftime('%H:%M:%S'))
    quitter = input('Voulez-vous quitter le programme (o/n) ? ')
    if quitter == 'o':
        break
print("A bientôt")

+

Exécuter   et tester

+

Astuce

+

Si vous connaissez le nombre de boucles à effectuer, utiliser une boucle for.
Autrement, utiliser une boucle while (notamment pour faire des boucles sans fin).

+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentation complet

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Linstructionif.html b/Activity_3_python/LangagePython_fonctions/Linstructionif.html new file mode 100644 index 0000000..31e40f7 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Linstructionif.html @@ -0,0 +1,122 @@ + + + + + + L'instruction if + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

L'instruction if

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

+

Syntaxe

+

if expression:   # ne pas oublier le signe de ponctuation ':'
    bloc d'instructions  # attention à l'indentation
# suite du programme

+

Si l'expression est vraie (True) alors le bloc d'instructions est exécuté.
Si l'expression est fausse (False) on passe directement à la suite du programme.

+

Nous allons commencer par créer le script Condition1.py :

+

+

# script Condition1.py
chaine = input("Note sur 20 : ")
note = float(chaine)
if note >= 10.0:
    # ce bloc est exécuté si l'expression (note >= 10.0) est vraie
    print("J'ai la moyenne")
print("Fin du programme")

+

Pour exécuter le script :
Cliquer sur exécuter  (ou touche Ctrl + F9) et tester.

+


+

+

Créé avec HelpNDoc Personal Edition: Créer facilement des fichiers Qt Help

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Linstructionwhile.html b/Activity_3_python/LangagePython_fonctions/Linstructionwhile.html new file mode 100644 index 0000000..ed1c1fc --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Linstructionwhile.html @@ -0,0 +1,126 @@ + + + + + + L'instruction while + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

L'instruction while

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

+

Syntaxe

+

while expression:  # ne pas oublier le signe de ponctuation ':'
    bloc d'instructions  # attention à l'indentation
# suite du programme

+

Si l'expression est vraie (True) le bloc d'instructions est exécuté, puis l'expression est à nouveau évaluée.
Le cycle continue jusqu'à ce que l'expression soit fausse (False) : on passe alors à la suite du programme.

+

Exemple : un script qui compte de 1 à 4

+

# script Boucle1.py
# initialisation de la variable de comptage
compteur = 1
while compteur < 5:
    # ce bloc est exécuté tant que la condition (compteur < 5) est vraie
    print(compteur, compteur < 5)
    compteur += 1    # incrémentation du compteur, compteur = compteur + 1
print(compteur < 5)
print("Fin de la boucle")

+

Exécuter  

+

Table de multiplication par 8

+

# script Boucle2.py
compteur = 1 # initialisation de la variable de comptage
while compteur <= 10:
    # ce bloc est exécuté tant que la condition (compteur <= 10) est vraie
    print(compteur, '* 8 =', compteur*8)
    compteur += 1    # incrémentation du compteur, compteur = compteur + 1
print("Et voilà !")

+

Exécuter  

+

Affichage de l'heure courante

+

# script Boucle3.py
import time     # importation du module time
quitter = 'n'   # initialisation
while quitter != 'o':
    # ce bloc est exécuté tant que la condition est vraie
    # strftime() est une fonction du module time
    print('Heure courante ', time.strftime('%H:%M:%S'))
    quitter = input("Voulez-vous quitter le programme (o/n) ? ")
print("A bientôt")

+

Exécuter   et tester

+

+

Créé avec HelpNDoc Personal Edition: Produire des livres EPub gratuitement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Nomsdevariables.html b/Activity_3_python/LangagePython_fonctions/Nomsdevariables.html new file mode 100644 index 0000000..d623293 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Nomsdevariables.html @@ -0,0 +1,126 @@ + + + + + + Noms de variables + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Noms de variables

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Identificateur:

+


+

Le nom d'une variable s'écrit avec des lettres (non accentuées), des chiffres ou bien l'underscore _

+


+

Le nom d'une variable ne doit pas commencer par un chiffre.

+


+

En langage Python, l'usage est de ne pas utiliser de lettres majuscules pour nommer les variables (celles-ci sont réservées pour nommer les classes).

+


+

Il est préférable d'utiliser des noms évocateurs

+


+

Exemple : age, mon_age, temperature1

+


+

A éviter : Age, AGE, MonAge, monAge, Temperature1

+

+

Créé avec HelpNDoc Personal Edition: Éditeur de documentation CHM facile

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Porteedevariablesvariablesglobal.html b/Activity_3_python/LangagePython_fonctions/Porteedevariablesvariablesglobal.html new file mode 100644 index 0000000..1574b30 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Porteedevariablesvariablesglobal.html @@ -0,0 +1,127 @@ + + + + + + Portée de variables: variables globales et locales + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Portée de variables: variables globales et locales

+ + +
+ Les fonctions ›› +
+ +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

La portée d'une variable est l'endroit du programme où on peut accéder à la variable.

+

Observons le script suivant :

+

a = 10  # variable globale au programme
def mafonction():
    a = 20 # variable locale à la fonction
    print(a)
    return

+

>>> print(a)  # nous sommmes dans l'espace global du programme

>>> mafonction() # nous sommes dans l'espace local de la fonction

>>> print(a)  # de retour dans l'espace global

+

Nous avons deux variables différentes qui portent le même nom a

+

Une variable a de valeur 20 est créée dans la fonction : c'est une variable locale à la fonction.
Elle est détruite dès que l'on sort de la fonction.

+

global

+

L'instruction global rend une variable globale :

+

a = 10  # variable globale
def mafonction():
    global a # la variable est maintenant globale
    a = 20
    print(a)
    return

+

>>> print(a)

>>> mafonction()

>>> print(a)

+

Remarque : il est préférable d'éviter l'utilisation de l'instruction global car c'est une source d'erreurs (on peut ainsi modifier le contenu d'une variable globale en croyant agir sur une variable locale).
La sagesse recommande donc de suivre la règle suivante :

+ +

+

Créé avec HelpNDoc Personal Edition: Environnement de création d'aide complet

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Preambule.html b/Activity_3_python/LangagePython_fonctions/Preambule.html new file mode 100644 index 0000000..cd55ebc --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Preambule.html @@ -0,0 +1,134 @@ + + + + + + Préambule + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Préambule

+ + +
+ +
+ + + Next + + +
+ +
+
+ + +
+ +

+

+

Le langage Python est un langage de programmation objet interprété. Il a été développé par Guido Von Rossum à partir de 1989 à l’Université d’Amsterdam.

+

+

Python est un langage multiplateforme, c'est-à-dire disponible sur plusieurs architectures (compatible PC, tablettes, smartphones, ordinateur low cost Raspberry Pi...) et systèmes d'exploitation (Windows, Linux, Mac, Android...).

+


+

Le langage Python est gratuit, sous licence libre.

+


+

C'est un des langages informatiques les plus populaires avec C, C++, C#, Objective-C, Java, PHP, JavaScript, Delphi, Visual Basic, Ruby et Perl (liste non exhaustive).

+


+

Actuellement, Python en est à sa version 3 depuis 2008.

+

Attention : Python 2 n'est pas compatible avec Python 3 !

+


+

Que peut-on faire avec Python ?

+

Beaucoup de choses !

+


+ +

...

+

Des dizaines de milliers de librairies sont disponibles sur le dépôt officiel PyPI.

+


+


+

+

Créé avec HelpNDoc Personal Edition: Générateur de documentation et EPub facile

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/ProgrammationOrienteeObjetPOO.html b/Activity_3_python/LangagePython_fonctions/ProgrammationOrienteeObjetPOO.html new file mode 100644 index 0000000..d80a01c --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/ProgrammationOrienteeObjetPOO.html @@ -0,0 +1,129 @@ + + + + + + Programmation Orientée Objet (POO) + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Programmation Orientée Objet (POO)

+ + + + +
+ +
+ + + Parent + + + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Python est un langage de programmation orienté objet (comme les langages C++, Java, PHP, Ruby...).
Une variable est en fait un objet d'une certaine classe.

+

Tous les types du langage python sont également des objets.

+

Par exemple, la variable amis est un objet de la classe list.
On dit aussi que la variable amis est une instance de la classe list.
L'instanciation (action d'instancier) est la création d'un objet à partir d'une classe.

+

>>> # instanciation de l'objet amis de la classe list
>>> amis = ['Nicolas', 'Julie'] # ou bien : amis = list(['Nicolas', 'Julie'])
>>> print(type(amis))

+

Une classe possède des fonctions que l'on appelle méthodes et des données que l'on appelle attributs.

+

La méthode append() de la classe list ajoute un nouvel élément en fin de liste :

+

>>> # instanciation d'une liste vide
>>> amis = []   # ou bien : amis = list()
>>> amis.append('Nicolas') # synthase générale : objet.méthode(arguments)
>>> print(amis)

>>> amis.append('Julie') # ou bien : amis = amis + ['Julie']
>>> print(amis)

>>> amis.append('Pauline')
>>> print(amis)

+

>>> amis.sort()   # la méthode sort() trie les éléments
>>> print(amis)

+

>>> amis.reverse()  # la méthode reverse() inverse la liste des éléments
>>> print(amis)

+

La méthode lower() de la classe str retourne la chaîne de caractères en casse minuscule :

+

>>> # la variable chaine est une instance de la classe str
>>> chaine = "BONJOUR"  # ou bien : chaine = str("BONJOUR")
>>> chaine2 = chaine.lower() # on applique la méthode lower() à l'objet chaine
>>> print(chaine2)

>>> print(chaine)

+

La méthode pop() de la classe dict supprime une clé :

+

>>> # instanciation de l'objet moyennes de la classe dict
>>> moyennes = {'sport': 11.0, 'anglais': 14.3, 'math': 12.5}
>>> # ou : moyennes = dict({'sport': 11.0, 'anglais': 14.3, 'math': 12.5})
>>> moyennes.pop('anglais')

>>> print(moyennes)

+

>>> print(moyennes.keys())  # la méthode keys() retourne la liste des clés

+

>>> print(moyennes.values())  # la méthode values() retourne la liste des valeurs

+


+

+

Créé avec HelpNDoc Personal Edition: Générateur d'aides CHM gratuit

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Scripts.html b/Activity_3_python/LangagePython_fonctions/Scripts.html new file mode 100644 index 0000000..e275071 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Scripts.html @@ -0,0 +1,132 @@ + + + + + + Scripts + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Scripts

+ + +
+ +
+ + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Scripts

+

Un programme (code source) est une séquence d'instructions.

+

Dans le cas d'un programme en langage Python, on parle souvent de script Python.

+


+

Un script se présente sous la forme d'un fichier texte avec l'extension .py

+


+

Voici un exemple de script Python :

+

Bonjour.py

+

Télécharger le et copier le dans votre dossier de travail

+


+

Le code source d'un script s'ouvre avec un éditeur de texte

+

+

Démarrer l'IDLE Edupython

+

L'IDLE muni d'un interpréteur permettra d'exécuter le script.

+


+

Ouvrir le script depuis Edupython.

+

Une fois chargé, 2 solutions s'offrent à vous pour l'exécuter:

+
    +
  1. Soit vous cliquez sur l'icône Exécuter  ou (Ctrl + F9)
  2. +
  3. Soit vous appelez le script dans la Console Python (interpréteur Python en mode interactif)
  4. +
+

+


+


+

+


+


+

+

Créé avec HelpNDoc Personal Edition: Environnement de création d'aide complet

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/Variablestypesetoperateurs.html b/Activity_3_python/LangagePython_fonctions/Variablestypesetoperateurs.html new file mode 100644 index 0000000..693712e --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/Variablestypesetoperateurs.html @@ -0,0 +1,136 @@ + + + + + + Variables, types et opérateurs + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Variables, types et opérateurs

+ + +
+ +
+ + + Previous + + + + Next + + +
+ +
+
+ + +
+ +

+

Notion de variables

+


+

Lorsque l’on écrit un programme informatique, on va manipuler des données comme des nombres entiers, des nombres à virgules, des chaînes de caractères.

+


+

Pour pouvoir manipuler facilement toutes ces données, on va les mémoriser, les stocker dans des variables, ce qui revient à les « ranger dans une boîte » et on va leur donner un nom, « coller une étiquette dessus ».

+

+


+

Le processeur sait très bien utiliser ces « boites  » mémoires (c’est même son travail principal).

+


+

Déclarer une variable permet de réserver un espace mémoire volatile (cache, vive) dans lequel il est possible de stocker une valeur (une donnée), pour la réutiliser ou la modifier plus tard.

+


+

L’instruction d'affectation est l’action d'associer une valeur à cette variable.

+


+

En Python une affectation est effectuée avec le signe « = », la variable étant écrite en premier et le contenu qu’elle doit prendre étant écrit en deuxième.

+


+

Exemple:

+


+

x = 5                #On affecte à la variable nommée x la valeur 5

+

+


+

Remarque:

+ +

Par exemple a = a + 1 peut se traduire par : la variable a prend la valeur (actuelle) de a , + 1.

+ +


+


+


+

+

Créé avec HelpNDoc Personal Edition: Créer des livres électroniques facilement

+ +
+ + + + + + + + + + + diff --git a/Activity_3_python/LangagePython_fonctions/css/base.css b/Activity_3_python/LangagePython_fonctions/css/base.css new file mode 100644 index 0000000..bd22c80 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/css/base.css @@ -0,0 +1,112 @@ +body { + background-color: #fff; + overflow: auto; + width: 100%; +} + +.clear { + border: 0; + clear: both; + margin: 0; + padding: 0; +} + +#topic_header, #topic_footer, +#toc_header, #toc_footer { + padding: 10px; +} + +#topic_content, +#toc_content{ + margin: 10px; +} + +/* Backgrounds */ + +#topic_header { + background: #fff url(../img/header-bg.png) repeat-x left top; + border-bottom: 1px solid #ccc; + margin-bottom: 15px; +} + +#topic_footer{ + background: #fff url(../img/footer-bg.png) repeat-x left top; + margin-top: 20px; +} + +/* Topic */ + +#topic_header #topic_header_content { + float: left; +} + +#topic_header #topic_header_nav { + float: right; +} + +#topic_header #topic_header_nav img { + margin-left: 5px; +} + +#topic_header a, +#topic_footer a, +#search_results a, +#popupMenu a { + color: #333; + text-decoration: none; +} + +#topic_header a:hover, +#topic_footer a:hover, +#search_results a:hover, +#popupMenu a:hover{ + text-decoration: underline; +} + +#topic_header h1 { + color: #333; + font-size: 18px; +} + +#topic_footer { + font-size: 11px; +} + +#topic_breadcrumb { + color: #333; + font-size: 11px; +} + +/* Popup */ + +#popupMenu { + background-color: #eee; + border: 1px solid #999; + position: absolute; + padding: 5px; + webkit-box-shadow: 0px 0px 5px #cccccc; + -moz-box-shadow: 0px 0px 5px #cccccc; + box-shadow: 0px 0px 5px #cccccc; +} + +#popupMenu a{ + display: block; + margin: 5px 10px 2px 5px; +} + +.close-button{ + color: #666; + cursor: hand; + cursor: pointer; + float: right; + font-size: 10px; + position: relative; + top: -5px; + right: -3px; +} + +/* Search highlight */ + +.highlight { + background-color: yellow; +} \ No newline at end of file diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/0.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/0.png new file mode 100644 index 0000000..0189cda Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/0.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/1.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/1.png new file mode 100644 index 0000000..01335b0 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/1.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/10.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/10.png new file mode 100644 index 0000000..86c1b70 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/10.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/11.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/11.png new file mode 100644 index 0000000..60da179 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/11.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/12.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/12.png new file mode 100644 index 0000000..7977cad Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/12.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/13.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/13.png new file mode 100644 index 0000000..2d6b99e Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/13.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/14.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/14.png new file mode 100644 index 0000000..c6150b5 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/14.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/15.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/15.png new file mode 100644 index 0000000..58f205f Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/15.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/16.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/16.png new file mode 100644 index 0000000..746f6c4 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/16.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/17.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/17.png new file mode 100644 index 0000000..e450e6b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/17.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/18.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/18.png new file mode 100644 index 0000000..fae8d06 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/18.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/19.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/19.png new file mode 100644 index 0000000..557aa37 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/19.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/2.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/2.png new file mode 100644 index 0000000..3887079 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/2.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/20.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/20.png new file mode 100644 index 0000000..cb6845b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/20.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/21.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/21.png new file mode 100644 index 0000000..bfb11c9 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/21.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/22.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/22.png new file mode 100644 index 0000000..17ed9c5 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/22.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/23.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/23.png new file mode 100644 index 0000000..1c4a863 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/23.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/24.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/24.png new file mode 100644 index 0000000..e91b518 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/24.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/25.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/25.png new file mode 100644 index 0000000..00d2d5d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/25.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/26.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/26.png new file mode 100644 index 0000000..4952af6 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/26.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/27.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/27.png new file mode 100644 index 0000000..a61fe9b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/27.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/28.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/28.png new file mode 100644 index 0000000..52160f0 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/28.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/29.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/29.png new file mode 100644 index 0000000..06aa97c Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/29.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/3.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/3.png new file mode 100644 index 0000000..b1c9413 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/3.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/30.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/30.png new file mode 100644 index 0000000..7b52276 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/30.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/31.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/31.png new file mode 100644 index 0000000..02283db Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/31.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/32.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/32.png new file mode 100644 index 0000000..875843c Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/32.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/33.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/33.png new file mode 100644 index 0000000..d64f137 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/33.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/34.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/34.png new file mode 100644 index 0000000..a6d94c5 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/34.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/35.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/35.png new file mode 100644 index 0000000..dfc87bf Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/35.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/36.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/36.png new file mode 100644 index 0000000..ce6235b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/36.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/37.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/37.png new file mode 100644 index 0000000..0120330 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/37.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/38.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/38.png new file mode 100644 index 0000000..5334fae Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/38.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/39.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/39.png new file mode 100644 index 0000000..06e446b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/39.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/4.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/4.png new file mode 100644 index 0000000..6e5cfc0 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/4.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/40.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/40.png new file mode 100644 index 0000000..6d744db Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/40.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/41.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/41.png new file mode 100644 index 0000000..476edf4 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/41.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/5.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/5.png new file mode 100644 index 0000000..1df634f Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/5.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/6.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/6.png new file mode 100644 index 0000000..947d9c4 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/6.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/7.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/7.png new file mode 100644 index 0000000..a362886 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/7.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/8.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/8.png new file mode 100644 index 0000000..5bcd3ec Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/8.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/9.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/9.png new file mode 100644 index 0000000..3b4991d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/9.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/icons.gif b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/icons.gif new file mode 100644 index 0000000..c0ccac1 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/icons.gif differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/loading.gif b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/loading.gif new file mode 100644 index 0000000..251df05 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/loading.gif differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/ui.dynatree.css b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/ui.dynatree.css new file mode 100644 index 0000000..29679b4 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/ui.dynatree.css @@ -0,0 +1,440 @@ +/******************************************************************************* + * Tree container + */ +ul.dynatree-container +{ + font-family: tahoma, arial, helvetica; + font-size: 10pt; /* font size should not be too big */ + white-space: nowrap; + padding: 3px; + margin: 0; /* issue 201 */ + background-color: white; + border: 1px dotted gray; + overflow: auto; + height: 100%; /* issue 263 */ +} + +ul.dynatree-container ul +{ + padding: 0 0 0 16px; + margin: 0; +} + +ul.dynatree-container li +{ + list-style-image: none; + list-style-position: outside; + list-style-type: none; + -moz-background-clip:border; + -moz-background-inline-policy: continuous; + -moz-background-origin: padding; + background-attachment: scroll; + background-color: transparent; + background-repeat: repeat-y; + background-image: url("vline.gif"); + background-position: 0 0; + /* + background-image: url("icons_96x256.gif"); + background-position: -80px -64px; + */ + margin: 0; + padding: 1px 0 0 0; +} +/* Suppress lines for last child node */ +ul.dynatree-container li.dynatree-lastsib +{ + background-image: none; +} +/* Suppress lines if level is fixed expanded (option minExpandLevel) */ +ul.dynatree-no-connector > li +{ + background-image: none; +} + +/* Style, when control is disabled */ +.ui-dynatree-disabled ul.dynatree-container +{ + opacity: 0.5; +/* filter: alpha(opacity=50); /* Yields a css warning */ + background-color: silver; +} + +/******************************************************************************* + * Common icon definitions + */ +span.dynatree-empty, +span.dynatree-vline, +span.dynatree-connector, +span.dynatree-expander, +span.dynatree-icon, +span.dynatree-checkbox, +span.dynatree-radio, +span.dynatree-drag-helper-img, +#dynatree-drop-marker +{ + width: 16px; + height: 16px; +/* display: -moz-inline-box; /* @ FF 1+2 removed for issue 221 */ +/* -moz-box-align: start; /* issue 221 */ + display: inline-block; /* Required to make a span sizeable */ + vertical-align: top; + background-repeat: no-repeat; + background-position: left; + background-image: url("icons.gif"); + background-position: 0 0; +} + +/** Used by 'icon' node option: */ +ul.dynatree-container img +{ + width: 16px; + height: 16px; + margin-left: 3px; + vertical-align: top; + border-style: none; +} + + +/******************************************************************************* + * Lines and connectors + */ + +span.dynatree-connector +{ + background-position: -16px -64px; +} + +/******************************************************************************* + * Expander icon + * Note: IE6 doesn't correctly evaluate multiples class names, + * so we create combined class names that can be used in the CSS. + * + * Prefix: dynatree-exp- + * 1st character: 'e': expanded, 'c': collapsed + * 2nd character (optional): 'd': lazy (Delayed) + * 3rd character (optional): 'l': Last sibling + */ + +span.dynatree-expander +{ + background-position: 0px -80px; + cursor: pointer; +} +.dynatree-exp-cl span.dynatree-expander /* Collapsed, not delayed, last sibling */ +{ + background-position: 0px -96px; +} +.dynatree-exp-cd span.dynatree-expander /* Collapsed, delayed, not last sibling */ +{ + background-position: -64px -80px; +} +.dynatree-exp-cdl span.dynatree-expander /* Collapsed, delayed, last sibling */ +{ + background-position: -64px -96px; +} +.dynatree-exp-e span.dynatree-expander, /* Expanded, not delayed, not last sibling */ +.dynatree-exp-ed span.dynatree-expander /* Expanded, delayed, not last sibling */ +{ + background-position: -32px -80px; +} +.dynatree-exp-el span.dynatree-expander, /* Expanded, not delayed, last sibling */ +.dynatree-exp-edl span.dynatree-expander /* Expanded, delayed, last sibling */ +{ + background-position: -32px -96px; +} +.dynatree-loading span.dynatree-expander /* 'Loading' status overrides all others */ +{ + background-position: 0 0; + background-image: url("loading.gif"); +} + + +/******************************************************************************* + * Checkbox icon + */ +span.dynatree-checkbox +{ + margin-left: 3px; + background-position: 0px -32px; +} +span.dynatree-checkbox:hover +{ + background-position: -16px -32px; +} + +.dynatree-partsel span.dynatree-checkbox +{ + background-position: -64px -32px; +} +.dynatree-partsel span.dynatree-checkbox:hover +{ + background-position: -80px -32px; +} + +.dynatree-selected span.dynatree-checkbox +{ + background-position: -32px -32px; +} +.dynatree-selected span.dynatree-checkbox:hover +{ + background-position: -48px -32px; +} + +/******************************************************************************* + * Radiobutton icon + * This is a customization, that may be activated by overriding the 'checkbox' + * class name as 'dynatree-radio' in the tree options. + */ +span.dynatree-radio +{ + margin-left: 3px; + background-position: 0px -48px; +} +span.dynatree-radio:hover +{ + background-position: -16px -48px; +} + +.dynatree-partsel span.dynatree-radio +{ + background-position: -64px -48px; +} +.dynatree-partsel span.dynatree-radio:hover +{ + background-position: -80px -48px; +} + +.dynatree-selected span.dynatree-radio +{ + background-position: -32px -48px; +} +.dynatree-selected span.dynatree-radio:hover +{ + background-position: -48px -48px; +} + +/******************************************************************************* + * Node type icon + * Note: IE6 doesn't correctly evaluate multiples class names, + * so we create combined class names that can be used in the CSS. + * + * Prefix: dynatree-ico- + * 1st character: 'e': expanded, 'c': collapsed + * 2nd character (optional): 'f': folder + */ + +span.dynatree-icon /* Default icon */ +{ + margin-left: 3px; + background-position: 0px 0px; +} + +.dynatree-ico-cf span.dynatree-icon /* Collapsed Folder */ +{ + background-position: 0px -16px; +} + +.dynatree-ico-ef span.dynatree-icon /* Expanded Folder */ +{ + background-position: -64px -16px; +} + +/* Status node icons */ + +.dynatree-statusnode-wait span.dynatree-icon +{ + background-image: url("loading.gif"); +} + +.dynatree-statusnode-error span.dynatree-icon +{ + background-position: 0px -112px; +/* background-image: url("ltError.gif");*/ +} + +/******************************************************************************* + * Node titles + */ + +/* @Chrome: otherwise hit area of node titles is broken (issue 133) + Removed again for issue 165; (133 couldn't be reproduced) */ +span.dynatree-node +{ +/* display: -moz-inline-box; /* issue 133, 165, 172, 192. removed for issue 221*/ +/* -moz-box-align: start; /* issue 221 */ +/* display: inline-block; /* Required to make a span sizeable */ +} + + +/* Remove blue color and underline from title links */ +ul.dynatree-container a +/*, ul.dynatree-container a:visited*/ +{ + color: black; /* inherit doesn't work on IE */ + text-decoration: none; + vertical-align: top; + margin: 0px; + margin-left: 3px; +/* outline: 0; /* @ Firefox, prevent dotted border after click */ +} + +ul.dynatree-container a:hover +{ +/* text-decoration: underline; */ + background-color: #F2F7FD; /* light blue */ + border-color: #B8D6FB; /* darker light blue */ +} + +span.dynatree-node a +{ + font-size: 10pt; /* required for IE, quirks mode */ + display: inline-block; /* Better alignment, when title contains
*/ +/* vertical-align: top;*/ + padding-left: 3px; + padding-right: 3px; /* Otherwise italic font will be outside bounds */ + /* line-height: 16px; /* should be the same as img height, in case 16 px */ +} +span.dynatree-folder a +{ + font-weight: bold; +} + +ul.dynatree-container a:focus, +span.dynatree-focused a:link /* @IE */ +{ + background-color: #EFEBDE; /* gray */ +} + +span.dynatree-has-children a +{ +} + +span.dynatree-expanded a +{ +} + +span.dynatree-selected a +{ + color: green; + font-style: italic; +} + +span.dynatree-active a +{ + background-color: #3169C6 !important; + color: white !important; /* @ IE6 */ +} + +/******************************************************************************* + * Drag'n'drop support + */ + +/*** Helper object ************************************************************/ +div.dynatree-drag-helper +{ +} +div.dynatree-drag-helper a +{ + border: 1px solid gray; + background-color: white; + padding-left: 5px; + padding-right: 5px; + opacity: 0.8; +} +span.dynatree-drag-helper-img +{ + /* + position: relative; + left: -16px; + */ +} +div.dynatree-drag-helper /*.dynatree-drop-accept*/ +{ + +/* border-color: green; + background-color: red;*/ +} +div.dynatree-drop-accept span.dynatree-drag-helper-img +{ + background-position: -32px -112px; +} +div.dynatree-drag-helper.dynatree-drop-reject +{ + border-color: red; +} +div.dynatree-drop-reject span.dynatree-drag-helper-img +{ + background-position: -16px -112px; +} + +/*** Drop marker icon *********************************************************/ + +#dynatree-drop-marker +{ + width: 24px; + position: absolute; + background-position: 0 -128px; + margin: 0; +/* border: 1px solid red; */ +} +#dynatree-drop-marker.dynatree-drop-after, +#dynatree-drop-marker.dynatree-drop-before +{ + width:64px; + background-position: 0 -144px; +} +#dynatree-drop-marker.dynatree-drop-copy +{ + background-position: -64px -128px; +} +#dynatree-drop-marker.dynatree-drop-move +{ + background-position: -64px -128px; +} + +/*** Source node while dragging ***********************************************/ + +span.dynatree-drag-source +{ + /* border: 1px dotted gray; */ + background-color: #e0e0e0; +} +span.dynatree-drag-source a +{ + color: gray; +} + +/*** Target node while dragging cursor is over it *****************************/ + +span.dynatree-drop-target +{ + /*border: 1px solid gray;*/ +} +span.dynatree-drop-target a +{ +} +span.dynatree-drop-target.dynatree-drop-accept a +{ + /*border: 1px solid green;*/ + background-color: #3169C6 !important; + color: white !important; /* @ IE6 */ + text-decoration: none; +} +span.dynatree-drop-target.dynatree-drop-reject +{ + /*border: 1px solid red;*/ +} +span.dynatree-drop-target.dynatree-drop-after a +{ +} + + +/******************************************************************************* + * Custom node classes (sample) + */ + +span.custom1 a +{ + background-color: maroon; + color: yellow; +} diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/vline.gif b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/vline.gif new file mode 100644 index 0000000..1b00ae5 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/chm/vline.gif differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/0.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/0.png new file mode 100644 index 0000000..0189cda Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/0.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/1.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/1.png new file mode 100644 index 0000000..01335b0 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/1.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/10.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/10.png new file mode 100644 index 0000000..86c1b70 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/10.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/11.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/11.png new file mode 100644 index 0000000..60da179 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/11.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/12.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/12.png new file mode 100644 index 0000000..7977cad Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/12.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/13.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/13.png new file mode 100644 index 0000000..2d6b99e Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/13.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/14.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/14.png new file mode 100644 index 0000000..c6150b5 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/14.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/15.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/15.png new file mode 100644 index 0000000..58f205f Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/15.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/16.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/16.png new file mode 100644 index 0000000..746f6c4 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/16.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/17.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/17.png new file mode 100644 index 0000000..e450e6b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/17.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/18.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/18.png new file mode 100644 index 0000000..fae8d06 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/18.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/19.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/19.png new file mode 100644 index 0000000..557aa37 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/19.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/2.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/2.png new file mode 100644 index 0000000..3887079 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/2.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/20.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/20.png new file mode 100644 index 0000000..cb6845b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/20.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/21.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/21.png new file mode 100644 index 0000000..bfb11c9 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/21.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/22.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/22.png new file mode 100644 index 0000000..17ed9c5 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/22.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/23.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/23.png new file mode 100644 index 0000000..1c4a863 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/23.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/24.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/24.png new file mode 100644 index 0000000..e91b518 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/24.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/25.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/25.png new file mode 100644 index 0000000..00d2d5d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/25.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/26.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/26.png new file mode 100644 index 0000000..4952af6 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/26.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/27.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/27.png new file mode 100644 index 0000000..a61fe9b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/27.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/28.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/28.png new file mode 100644 index 0000000..52160f0 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/28.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/29.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/29.png new file mode 100644 index 0000000..06aa97c Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/29.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/3.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/3.png new file mode 100644 index 0000000..b1c9413 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/3.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/30.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/30.png new file mode 100644 index 0000000..7b52276 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/30.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/31.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/31.png new file mode 100644 index 0000000..02283db Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/31.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/32.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/32.png new file mode 100644 index 0000000..875843c Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/32.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/33.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/33.png new file mode 100644 index 0000000..d64f137 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/33.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/34.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/34.png new file mode 100644 index 0000000..a6d94c5 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/34.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/35.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/35.png new file mode 100644 index 0000000..dfc87bf Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/35.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/36.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/36.png new file mode 100644 index 0000000..ce6235b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/36.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/37.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/37.png new file mode 100644 index 0000000..0120330 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/37.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/38.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/38.png new file mode 100644 index 0000000..5334fae Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/38.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/39.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/39.png new file mode 100644 index 0000000..06e446b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/39.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/4.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/4.png new file mode 100644 index 0000000..6e5cfc0 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/4.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/40.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/40.png new file mode 100644 index 0000000..6d744db Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/40.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/41.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/41.png new file mode 100644 index 0000000..476edf4 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/41.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/5.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/5.png new file mode 100644 index 0000000..1df634f Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/5.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/6.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/6.png new file mode 100644 index 0000000..947d9c4 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/6.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/7.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/7.png new file mode 100644 index 0000000..a362886 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/7.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/8.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/8.png new file mode 100644 index 0000000..5bcd3ec Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/8.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/9.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/9.png new file mode 100644 index 0000000..3b4991d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/9.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/icons.gif b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/icons.gif new file mode 100644 index 0000000..a58eb93 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/icons.gif differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/loading.gif b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/loading.gif new file mode 100644 index 0000000..251df05 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/loading.gif differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/ui.dynatree.css b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/ui.dynatree.css new file mode 100644 index 0000000..29679b4 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/ui.dynatree.css @@ -0,0 +1,440 @@ +/******************************************************************************* + * Tree container + */ +ul.dynatree-container +{ + font-family: tahoma, arial, helvetica; + font-size: 10pt; /* font size should not be too big */ + white-space: nowrap; + padding: 3px; + margin: 0; /* issue 201 */ + background-color: white; + border: 1px dotted gray; + overflow: auto; + height: 100%; /* issue 263 */ +} + +ul.dynatree-container ul +{ + padding: 0 0 0 16px; + margin: 0; +} + +ul.dynatree-container li +{ + list-style-image: none; + list-style-position: outside; + list-style-type: none; + -moz-background-clip:border; + -moz-background-inline-policy: continuous; + -moz-background-origin: padding; + background-attachment: scroll; + background-color: transparent; + background-repeat: repeat-y; + background-image: url("vline.gif"); + background-position: 0 0; + /* + background-image: url("icons_96x256.gif"); + background-position: -80px -64px; + */ + margin: 0; + padding: 1px 0 0 0; +} +/* Suppress lines for last child node */ +ul.dynatree-container li.dynatree-lastsib +{ + background-image: none; +} +/* Suppress lines if level is fixed expanded (option minExpandLevel) */ +ul.dynatree-no-connector > li +{ + background-image: none; +} + +/* Style, when control is disabled */ +.ui-dynatree-disabled ul.dynatree-container +{ + opacity: 0.5; +/* filter: alpha(opacity=50); /* Yields a css warning */ + background-color: silver; +} + +/******************************************************************************* + * Common icon definitions + */ +span.dynatree-empty, +span.dynatree-vline, +span.dynatree-connector, +span.dynatree-expander, +span.dynatree-icon, +span.dynatree-checkbox, +span.dynatree-radio, +span.dynatree-drag-helper-img, +#dynatree-drop-marker +{ + width: 16px; + height: 16px; +/* display: -moz-inline-box; /* @ FF 1+2 removed for issue 221 */ +/* -moz-box-align: start; /* issue 221 */ + display: inline-block; /* Required to make a span sizeable */ + vertical-align: top; + background-repeat: no-repeat; + background-position: left; + background-image: url("icons.gif"); + background-position: 0 0; +} + +/** Used by 'icon' node option: */ +ul.dynatree-container img +{ + width: 16px; + height: 16px; + margin-left: 3px; + vertical-align: top; + border-style: none; +} + + +/******************************************************************************* + * Lines and connectors + */ + +span.dynatree-connector +{ + background-position: -16px -64px; +} + +/******************************************************************************* + * Expander icon + * Note: IE6 doesn't correctly evaluate multiples class names, + * so we create combined class names that can be used in the CSS. + * + * Prefix: dynatree-exp- + * 1st character: 'e': expanded, 'c': collapsed + * 2nd character (optional): 'd': lazy (Delayed) + * 3rd character (optional): 'l': Last sibling + */ + +span.dynatree-expander +{ + background-position: 0px -80px; + cursor: pointer; +} +.dynatree-exp-cl span.dynatree-expander /* Collapsed, not delayed, last sibling */ +{ + background-position: 0px -96px; +} +.dynatree-exp-cd span.dynatree-expander /* Collapsed, delayed, not last sibling */ +{ + background-position: -64px -80px; +} +.dynatree-exp-cdl span.dynatree-expander /* Collapsed, delayed, last sibling */ +{ + background-position: -64px -96px; +} +.dynatree-exp-e span.dynatree-expander, /* Expanded, not delayed, not last sibling */ +.dynatree-exp-ed span.dynatree-expander /* Expanded, delayed, not last sibling */ +{ + background-position: -32px -80px; +} +.dynatree-exp-el span.dynatree-expander, /* Expanded, not delayed, last sibling */ +.dynatree-exp-edl span.dynatree-expander /* Expanded, delayed, last sibling */ +{ + background-position: -32px -96px; +} +.dynatree-loading span.dynatree-expander /* 'Loading' status overrides all others */ +{ + background-position: 0 0; + background-image: url("loading.gif"); +} + + +/******************************************************************************* + * Checkbox icon + */ +span.dynatree-checkbox +{ + margin-left: 3px; + background-position: 0px -32px; +} +span.dynatree-checkbox:hover +{ + background-position: -16px -32px; +} + +.dynatree-partsel span.dynatree-checkbox +{ + background-position: -64px -32px; +} +.dynatree-partsel span.dynatree-checkbox:hover +{ + background-position: -80px -32px; +} + +.dynatree-selected span.dynatree-checkbox +{ + background-position: -32px -32px; +} +.dynatree-selected span.dynatree-checkbox:hover +{ + background-position: -48px -32px; +} + +/******************************************************************************* + * Radiobutton icon + * This is a customization, that may be activated by overriding the 'checkbox' + * class name as 'dynatree-radio' in the tree options. + */ +span.dynatree-radio +{ + margin-left: 3px; + background-position: 0px -48px; +} +span.dynatree-radio:hover +{ + background-position: -16px -48px; +} + +.dynatree-partsel span.dynatree-radio +{ + background-position: -64px -48px; +} +.dynatree-partsel span.dynatree-radio:hover +{ + background-position: -80px -48px; +} + +.dynatree-selected span.dynatree-radio +{ + background-position: -32px -48px; +} +.dynatree-selected span.dynatree-radio:hover +{ + background-position: -48px -48px; +} + +/******************************************************************************* + * Node type icon + * Note: IE6 doesn't correctly evaluate multiples class names, + * so we create combined class names that can be used in the CSS. + * + * Prefix: dynatree-ico- + * 1st character: 'e': expanded, 'c': collapsed + * 2nd character (optional): 'f': folder + */ + +span.dynatree-icon /* Default icon */ +{ + margin-left: 3px; + background-position: 0px 0px; +} + +.dynatree-ico-cf span.dynatree-icon /* Collapsed Folder */ +{ + background-position: 0px -16px; +} + +.dynatree-ico-ef span.dynatree-icon /* Expanded Folder */ +{ + background-position: -64px -16px; +} + +/* Status node icons */ + +.dynatree-statusnode-wait span.dynatree-icon +{ + background-image: url("loading.gif"); +} + +.dynatree-statusnode-error span.dynatree-icon +{ + background-position: 0px -112px; +/* background-image: url("ltError.gif");*/ +} + +/******************************************************************************* + * Node titles + */ + +/* @Chrome: otherwise hit area of node titles is broken (issue 133) + Removed again for issue 165; (133 couldn't be reproduced) */ +span.dynatree-node +{ +/* display: -moz-inline-box; /* issue 133, 165, 172, 192. removed for issue 221*/ +/* -moz-box-align: start; /* issue 221 */ +/* display: inline-block; /* Required to make a span sizeable */ +} + + +/* Remove blue color and underline from title links */ +ul.dynatree-container a +/*, ul.dynatree-container a:visited*/ +{ + color: black; /* inherit doesn't work on IE */ + text-decoration: none; + vertical-align: top; + margin: 0px; + margin-left: 3px; +/* outline: 0; /* @ Firefox, prevent dotted border after click */ +} + +ul.dynatree-container a:hover +{ +/* text-decoration: underline; */ + background-color: #F2F7FD; /* light blue */ + border-color: #B8D6FB; /* darker light blue */ +} + +span.dynatree-node a +{ + font-size: 10pt; /* required for IE, quirks mode */ + display: inline-block; /* Better alignment, when title contains
*/ +/* vertical-align: top;*/ + padding-left: 3px; + padding-right: 3px; /* Otherwise italic font will be outside bounds */ + /* line-height: 16px; /* should be the same as img height, in case 16 px */ +} +span.dynatree-folder a +{ + font-weight: bold; +} + +ul.dynatree-container a:focus, +span.dynatree-focused a:link /* @IE */ +{ + background-color: #EFEBDE; /* gray */ +} + +span.dynatree-has-children a +{ +} + +span.dynatree-expanded a +{ +} + +span.dynatree-selected a +{ + color: green; + font-style: italic; +} + +span.dynatree-active a +{ + background-color: #3169C6 !important; + color: white !important; /* @ IE6 */ +} + +/******************************************************************************* + * Drag'n'drop support + */ + +/*** Helper object ************************************************************/ +div.dynatree-drag-helper +{ +} +div.dynatree-drag-helper a +{ + border: 1px solid gray; + background-color: white; + padding-left: 5px; + padding-right: 5px; + opacity: 0.8; +} +span.dynatree-drag-helper-img +{ + /* + position: relative; + left: -16px; + */ +} +div.dynatree-drag-helper /*.dynatree-drop-accept*/ +{ + +/* border-color: green; + background-color: red;*/ +} +div.dynatree-drop-accept span.dynatree-drag-helper-img +{ + background-position: -32px -112px; +} +div.dynatree-drag-helper.dynatree-drop-reject +{ + border-color: red; +} +div.dynatree-drop-reject span.dynatree-drag-helper-img +{ + background-position: -16px -112px; +} + +/*** Drop marker icon *********************************************************/ + +#dynatree-drop-marker +{ + width: 24px; + position: absolute; + background-position: 0 -128px; + margin: 0; +/* border: 1px solid red; */ +} +#dynatree-drop-marker.dynatree-drop-after, +#dynatree-drop-marker.dynatree-drop-before +{ + width:64px; + background-position: 0 -144px; +} +#dynatree-drop-marker.dynatree-drop-copy +{ + background-position: -64px -128px; +} +#dynatree-drop-marker.dynatree-drop-move +{ + background-position: -64px -128px; +} + +/*** Source node while dragging ***********************************************/ + +span.dynatree-drag-source +{ + /* border: 1px dotted gray; */ + background-color: #e0e0e0; +} +span.dynatree-drag-source a +{ + color: gray; +} + +/*** Target node while dragging cursor is over it *****************************/ + +span.dynatree-drop-target +{ + /*border: 1px solid gray;*/ +} +span.dynatree-drop-target a +{ +} +span.dynatree-drop-target.dynatree-drop-accept a +{ + /*border: 1px solid green;*/ + background-color: #3169C6 !important; + color: white !important; /* @ IE6 */ + text-decoration: none; +} +span.dynatree-drop-target.dynatree-drop-reject +{ + /*border: 1px solid red;*/ +} +span.dynatree-drop-target.dynatree-drop-after a +{ +} + + +/******************************************************************************* + * Custom node classes (sample) + */ + +span.custom1 a +{ + background-color: maroon; + color: yellow; +} diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/vline.gif b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/vline.gif new file mode 100644 index 0000000..1b00ae5 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/folder/vline.gif differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/0.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/0.png new file mode 100644 index 0000000..0189cda Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/0.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/1.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/1.png new file mode 100644 index 0000000..01335b0 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/1.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/10.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/10.png new file mode 100644 index 0000000..86c1b70 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/10.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/11.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/11.png new file mode 100644 index 0000000..60da179 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/11.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/12.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/12.png new file mode 100644 index 0000000..7977cad Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/12.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/13.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/13.png new file mode 100644 index 0000000..2d6b99e Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/13.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/14.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/14.png new file mode 100644 index 0000000..c6150b5 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/14.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/15.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/15.png new file mode 100644 index 0000000..58f205f Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/15.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/16.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/16.png new file mode 100644 index 0000000..746f6c4 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/16.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/17.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/17.png new file mode 100644 index 0000000..e450e6b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/17.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/18.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/18.png new file mode 100644 index 0000000..fae8d06 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/18.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/19.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/19.png new file mode 100644 index 0000000..557aa37 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/19.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/2.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/2.png new file mode 100644 index 0000000..3887079 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/2.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/20.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/20.png new file mode 100644 index 0000000..cb6845b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/20.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/21.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/21.png new file mode 100644 index 0000000..bfb11c9 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/21.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/22.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/22.png new file mode 100644 index 0000000..17ed9c5 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/22.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/23.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/23.png new file mode 100644 index 0000000..1c4a863 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/23.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/24.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/24.png new file mode 100644 index 0000000..e91b518 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/24.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/25.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/25.png new file mode 100644 index 0000000..00d2d5d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/25.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/26.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/26.png new file mode 100644 index 0000000..4952af6 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/26.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/27.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/27.png new file mode 100644 index 0000000..a61fe9b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/27.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/28.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/28.png new file mode 100644 index 0000000..52160f0 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/28.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/29.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/29.png new file mode 100644 index 0000000..06aa97c Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/29.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/3.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/3.png new file mode 100644 index 0000000..b1c9413 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/3.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/30.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/30.png new file mode 100644 index 0000000..7b52276 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/30.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/31.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/31.png new file mode 100644 index 0000000..02283db Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/31.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/32.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/32.png new file mode 100644 index 0000000..875843c Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/32.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/33.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/33.png new file mode 100644 index 0000000..d64f137 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/33.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/34.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/34.png new file mode 100644 index 0000000..a6d94c5 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/34.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/35.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/35.png new file mode 100644 index 0000000..dfc87bf Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/35.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/36.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/36.png new file mode 100644 index 0000000..ce6235b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/36.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/37.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/37.png new file mode 100644 index 0000000..0120330 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/37.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/38.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/38.png new file mode 100644 index 0000000..5334fae Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/38.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/39.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/39.png new file mode 100644 index 0000000..06e446b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/39.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/4.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/4.png new file mode 100644 index 0000000..6e5cfc0 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/4.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/40.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/40.png new file mode 100644 index 0000000..6d744db Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/40.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/41.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/41.png new file mode 100644 index 0000000..476edf4 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/41.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/5.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/5.png new file mode 100644 index 0000000..1df634f Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/5.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/6.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/6.png new file mode 100644 index 0000000..947d9c4 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/6.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/7.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/7.png new file mode 100644 index 0000000..a362886 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/7.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/8.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/8.png new file mode 100644 index 0000000..5bcd3ec Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/8.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/9.png b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/9.png new file mode 100644 index 0000000..3b4991d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/9.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/icons.gif b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/icons.gif new file mode 100644 index 0000000..6e237a0 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/icons.gif differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/loading.gif b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/loading.gif new file mode 100644 index 0000000..2a96840 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/loading.gif differ diff --git a/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/ui.dynatree.css b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/ui.dynatree.css new file mode 100644 index 0000000..347f7f3 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/css/dynatree/vista/ui.dynatree.css @@ -0,0 +1,452 @@ +/******************************************************************************* + * Tree container + */ +ul.dynatree-container +{ + font-family: tahoma, arial, helvetica; + font-size: 10pt; /* font size should not be too big */ + white-space: nowrap; + padding: 3px; + margin: 0; /* issue 201 */ + background-color: white; + border: 1px dotted gray; + overflow: auto; + height: 100%; /* issue 263 */ +} + +ul.dynatree-container ul +{ + padding: 0 0 0 16px; + margin: 0; +} + +ul.dynatree-container li +{ + list-style-image: none; + list-style-position: outside; + list-style-type: none; + -moz-background-clip:border; + -moz-background-inline-policy: continuous; + -moz-background-origin: padding; + background-attachment: scroll; + background-color: transparent; + background-position: 0 0; + background-repeat: repeat-y; + background-image: none; /* no v-lines */ + + margin:0; + padding:1px 0 0 0; +} +/* Suppress lines for last child node */ +ul.dynatree-container li.dynatree-lastsib +{ + background-image: none; +} +/* Suppress lines if level is fixed expanded (option minExpandLevel) */ +ul.dynatree-no-connector > li +{ + background-image: none; +} + +/* Style, when control is disabled */ +.ui-dynatree-disabled ul.dynatree-container +{ + opacity: 0.5; +/* filter: alpha(opacity=50); /* Yields a css warning */ + background-color: silver; +} + + +/******************************************************************************* + * Common icon definitions + */ +span.dynatree-empty, +span.dynatree-vline, +span.dynatree-connector, +span.dynatree-expander, +span.dynatree-icon, +span.dynatree-checkbox, +span.dynatree-radio, +span.dynatree-drag-helper-img, +#dynatree-drop-marker +{ + width: 16px; + height: 16px; +/* display: -moz-inline-box; /* @ FF 1+2 removed for issue 221*/ +/* -moz-box-align: start; /* issue 221 */ + display: inline-block; /* Required to make a span sizeable */ + vertical-align: top; + background-repeat: no-repeat; + background-position: left; + background-image: url("icons.gif"); + background-position: 0 0; +} + +/** Used by 'icon' node option: */ +ul.dynatree-container img +{ + width: 16px; + height: 16px; + margin-left: 3px; + vertical-align: top; + border-style: none; +} + + +/******************************************************************************* + * Lines and connectors + */ + +/* +span.dynatree-empty +{ +} +span.dynatree-vline +{ +} +*/ +span.dynatree-connector +{ + background-image: none; +} +/* +.dynatree-lastsib span.dynatree-connector +{ +} +*/ +/******************************************************************************* + * Expander icon + * Note: IE6 doesn't correctly evaluate multiples class names, + * so we create combined class names that can be used in the CSS. + * + * Prefix: dynatree-exp- + * 1st character: 'e': expanded, 'c': collapsed + * 2nd character (optional): 'd': lazy (Delayed) + * 3rd character (optional): 'l': Last sibling + */ + +span.dynatree-expander +{ + background-position: 0px -80px; + cursor: pointer; +} +span.dynatree-expander:hover +{ + background-position: -16px -80px; +} +.dynatree-exp-cl span.dynatree-expander /* Collapsed, not delayed, last sibling */ +{ +} +.dynatree-exp-cd span.dynatree-expander /* Collapsed, delayed, not last sibling */ +{ +} +.dynatree-exp-cdl span.dynatree-expander /* Collapsed, delayed, last sibling */ +{ +} +.dynatree-exp-e span.dynatree-expander, /* Expanded, not delayed, not last sibling */ +.dynatree-exp-ed span.dynatree-expander, /* Expanded, delayed, not last sibling */ +.dynatree-exp-el span.dynatree-expander, /* Expanded, not delayed, last sibling */ +.dynatree-exp-edl span.dynatree-expander /* Expanded, delayed, last sibling */ +{ + background-position: -32px -80px; +} +.dynatree-exp-e span.dynatree-expander:hover, /* Expanded, not delayed, not last sibling */ +.dynatree-exp-ed span.dynatree-expander:hover, /* Expanded, delayed, not last sibling */ +.dynatree-exp-el span.dynatree-expander:hover, /* Expanded, not delayed, last sibling */ +.dynatree-exp-edl span.dynatree-expander:hover /* Expanded, delayed, last sibling */ +{ + background-position: -48px -80px; +} +.dynatree-loading span.dynatree-expander /* 'Loading' status overrides all others */ +{ + background-position: 0 0; + background-image: url("loading.gif"); +} + + +/******************************************************************************* + * Checkbox icon + */ +span.dynatree-checkbox +{ + margin-left: 3px; + background-position: 0px -32px; +} +span.dynatree-checkbox:hover +{ + background-position: -16px -32px; +} + +.dynatree-partsel span.dynatree-checkbox +{ + background-position: -64px -32px; +} +.dynatree-partsel span.dynatree-checkbox:hover +{ + background-position: -80px -32px; +} + +.dynatree-selected span.dynatree-checkbox +{ + background-position: -32px -32px; +} +.dynatree-selected span.dynatree-checkbox:hover +{ + background-position: -48px -32px; +} + +/******************************************************************************* + * Radiobutton icon + * This is a customization, that may be activated by overriding the 'checkbox' + * class name as 'dynatree-radio' in the tree options. + */ +span.dynatree-radio +{ + margin-left: 3px; + background-position: 0px -48px; +} +span.dynatree-radio:hover +{ + background-position: -16px -48px; +} + +.dynatree-partsel span.dynatree-radio +{ + background-position: -64px -48px; +} +.dynatree-partsel span.dynatree-radio:hover +{ + background-position: -80px -48px; +} + +.dynatree-selected span.dynatree-radio +{ + background-position: -32px -48px; +} +.dynatree-selected span.dynatree-radio:hover +{ + background-position: -48px -48px; +} + +/******************************************************************************* + * Node type icon + * Note: IE6 doesn't correctly evaluate multiples class names, + * so we create combined class names that can be used in the CSS. + * + * Prefix: dynatree-ico- + * 1st character: 'e': expanded, 'c': collapsed + * 2nd character (optional): 'f': folder + */ + +span.dynatree-icon /* Default icon */ +{ + margin-left: 3px; + background-position: 0px 0px; +} + +.dynatree-has-children span.dynatree-icon /* Default icon */ +{ +/* background-position: 0px -16px; */ +} + +.dynatree-ico-cf span.dynatree-icon /* Collapsed Folder */ +{ + background-position: 0px -16px; +} + +.dynatree-ico-ef span.dynatree-icon /* Expanded Folder */ +{ + background-position: -64px -16px; +} + +/* Status node icons */ + +.dynatree-statusnode-wait span.dynatree-icon +{ + background-image: url("loading.gif"); +} + +.dynatree-statusnode-error span.dynatree-icon +{ + background-position: 0px -112px; +/* background-image: url("ltError.gif");*/ +} + +/******************************************************************************* + * Node titles + */ + +/* @Chrome: otherwise hit area of node titles is broken (issue 133) + Removed again for issue 165; (133 couldn't be reproduced) */ +span.dynatree-node +{ +/* display: -moz-inline-box; /* issue 133, 165, 172, 192. removed for issue 221 */ +/* -moz-box-align: start; /* issue 221 */ +/* display: inline-block; /* Required to make a span sizeable */ +} + + +/* Remove blue color and underline from title links */ +ul.dynatree-container a +/*, ul.dynatree-container a:visited*/ +{ + color: black; /* inherit doesn't work on IE */ + text-decoration: none; + vertical-align: top; + margin: 0px; + margin-left: 3px; +/* outline: 0; /* @ Firefox, prevent dotted border after click */ + /* Set transparent border to prevent jumping when active node gets a border + (we can do this, because this theme doesn't use vertical lines) + */ + border: 1px solid white; /* Note: 'transparent' would not work in IE6 */ + +} + +ul.dynatree-container a:hover +{ +/* text-decoration: underline; */ + background: #F2F7FD; /* light blue */ + border-color: #B8D6FB; /* darker light blue */ +} + +span.dynatree-node a +{ + display: inline-block; /* Better alignment, when title contains
*/ +/* vertical-align: top;*/ + padding-left: 3px; + padding-right: 3px; /* Otherwise italic font will be outside bounds */ + /* line-height: 16px; /* should be the same as img height, in case 16 px */ +} +span.dynatree-folder a +{ +/* font-weight: bold; */ /* custom */ +} + +ul.dynatree-container a:focus, +span.dynatree-focused a:link /* @IE */ +{ + background-color: #EFEBDE; /* gray */ +} + +span.dynatree-has-children a +{ +/* font-style: oblique; /* custom: */ +} + +span.dynatree-expanded a +{ +} + +span.dynatree-selected a +{ +/* color: green; */ + font-style: italic; +} + +span.dynatree-active a +{ + border: 1px solid #99DEFD; + background-color: #D8F0FA; +} + +/******************************************************************************* + * Drag'n'drop support + */ + +/*** Helper object ************************************************************/ +div.dynatree-drag-helper +{ +} +div.dynatree-drag-helper a +{ + border: 1px solid gray; + background-color: white; + padding-left: 5px; + padding-right: 5px; + opacity: 0.8; +} +span.dynatree-drag-helper-img +{ + /* + position: relative; + left: -16px; + */ +} +div.dynatree-drag-helper /*.dynatree-drop-accept*/ +{ +/* border-color: green; + background-color: red;*/ +} +div.dynatree-drop-accept span.dynatree-drag-helper-img +{ + background-position: -32px -112px; +} +div.dynatree-drag-helper.dynatree-drop-reject +{ + border-color: red; +} +div.dynatree-drop-reject span.dynatree-drag-helper-img +{ + background-position: -16px -112px; +} + +/*** Drop marker icon *********************************************************/ + +#dynatree-drop-marker +{ + width: 24px; + position: absolute; + background-position: 0 -128px; + margin: 0; +} +#dynatree-drop-marker.dynatree-drop-after, +#dynatree-drop-marker.dynatree-drop-before +{ + width:64px; + background-position: 0 -144px; +} +#dynatree-drop-marker.dynatree-drop-copy +{ + background-position: -64px -128px; +} +#dynatree-drop-marker.dynatree-drop-move +{ + background-position: -64px -128px; +} + +/*** Source node while dragging ***********************************************/ + +span.dynatree-drag-source +{ + /* border: 1px dotted gray; */ + background-color: #e0e0e0; +} +span.dynatree-drag-source a +{ + color: gray; +} + +/*** Target node while dragging cursor is over it *****************************/ + +span.dynatree-drop-target +{ + /*border: 1px solid gray;*/ +} +span.dynatree-drop-target a +{ +} +span.dynatree-drop-target.dynatree-drop-accept a +{ + /*border: 1px solid green;*/ + background-color: #3169C6 !important; + color: white !important; /* @ IE6 */ + text-decoration: none; +} +span.dynatree-drop-target.dynatree-drop-reject +{ + /*border: 1px solid red;*/ +} +span.dynatree-drop-target.dynatree-drop-after a +{ +} diff --git a/Activity_3_python/LangagePython_fonctions/css/hnd.css b/Activity_3_python/LangagePython_fonctions/css/hnd.css new file mode 100644 index 0000000..626380f --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/css/hnd.css @@ -0,0 +1,680 @@ +/* ========== Text Styles ========== */ +hr { color: #000000} +body, table, span.rvts0 /* Normal text */ +{ + font-size: 10pt; + font-family: 'Arial', 'Helvetica', sans-serif; + font-style: normal; + font-weight: normal; + color: #000000; + text-decoration: none; +} +span.rvts1 /* Heading */ +{ + font-weight: bold; + color: #0000ff; +} +span.rvts2 /* Subheading */ +{ + font-weight: bold; + color: #000080; +} +span.rvts3 /* Keywords */ +{ + font-style: italic; + color: #800000; +} +a.rvts4, span.rvts4 /* Jump 1 */ +{ + color: #008000; + text-decoration: underline; +} +a.rvts5, span.rvts5 /* Jump 2 */ +{ + color: #008000; + text-decoration: underline; +} +span.rvts6 +{ +} +span.rvts7 +{ + font-weight: bold; + color: #0000ff; +} +span.rvts8 +{ + font-weight: bold; + color: #000080; +} +span.rvts9 +{ + font-style: italic; + color: #800000; +} +a.rvts10, span.rvts10 +{ + color: #008000; + text-decoration: underline; +} +span.rvts11 +{ + font-size: 12pt; + font-family: 'Cambria'; +} +span.rvts12 +{ + font-size: 12pt; + font-family: 'Cambria'; + font-weight: bold; +} +span.rvts13 +{ + font-size: 13pt; + font-family: 'Cambria'; + font-weight: bold; +} +a.rvts14, span.rvts14 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: #0000ff; + text-decoration: underline; +} +span.rvts15 /* Font Style */ +{ + font-family: 'Tahoma', 'Geneva', sans-serif; + font-style: italic; + color: #c0c0c0; +} +a.rvts16, span.rvts16 /* Font Style */ +{ + font-family: 'Tahoma', 'Geneva', sans-serif; + font-style: italic; + color: #6666ff; + text-decoration: underline; +} +span.rvts17 +{ + font-size: 14pt; + font-family: 'Cambria'; + font-weight: bold; +} +a.rvts18, span.rvts18 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: #0000ff; + text-decoration: none; +} +span.rvts19 +{ + font-size: 12pt; + font-family: 'Cambria'; + font-weight: bold; + text-decoration: underline; +} +span.rvts20 +{ + font-size: 12pt; + font-family: 'Times New Roman', 'Times', serif; + color: #000000; +} +span.rvts21 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: #000000; + background-color: #fcfcfc; +} +span.rvts22 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: #000000; + background-color: #fcfcfc; + text-decoration: underline; +} +span.rvts23 +{ + font-size: 12pt; + font-family: 'Cambria'; + font-weight: bold; + color: #000000; + background-color: #fcfcfc; +} +span.rvts24 +{ + font-size: 12pt; + font-family: 'Cambria'; + text-decoration: underline; +} +span.rvts25 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: #000000; +} +span.rvts26 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: #000000; + text-decoration: underline; +} +span.rvts27 +{ + font-size: 12pt; + font-family: 'Cambria'; + text-decoration: line-through; +} +span.rvts28 +{ + font-size: 14pt; + font-family: 'Cambria'; + color: #000000; +} +span.rvts29 +{ + font-size: 14pt; + font-family: 'Cambria'; + color: #900090; +} +span.rvts30 +{ + font-size: 14pt; + font-family: 'Cambria'; + color: #770000; +} +span.rvts31 +{ + font-size: 14pt; + font-family: 'Cambria'; + color: #dd0000; +} +span.rvts32 +{ + font-size: 14pt; + font-family: 'Cambria'; + font-weight: bold; + color: #000000; +} +span.rvts33 +{ + font-size: 14pt; + font-family: 'Cambria'; + color: ; +} +span.rvts34 +{ + font-size: 14pt; + font-family: 'Cambria'; + color: #007f7f; +} +span.rvts35 +{ + font-size: 12pt; + font-family: 'cambria'; + font-weight: bold; + color: #000000; +} +span.rvts36 +{ + font-size: 14pt; + font-family: 'Cambria'; + color: #0000ff; +} +span.rvts37 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #770000; +} +span.rvts38 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #000000; +} +span.rvts39 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #dd0000; +} +span.rvts40 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #900090; +} +span.rvts41 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #0000ff; +} +span.rvts42 +{ + font-size: 11pt; + font-family: 'Cambria'; + font-weight: bold; +} +span.rvts43 +{ + font-size: 12pt; + font-family: 'Cambria'; + font-style: italic; +} +span.rvts44 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #2f6b55; +} +span.rvts45 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: #7030a0; +} +span.rvts46 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #ff7700; +} +span.rvts47 +{ + font-size: 12pt; + font-family: 'Verdana', 'Geneva', sans-serif; + font-weight: bold; + color: #181a12; +} +span.rvts48 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #ff0000; +} +span.rvts49 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: #363b29; +} +span.rvts50 +{ + font-size: 13pt; + font-family: 'Cambria'; + font-style: italic; + font-weight: bold; + color: #000000; +} +span.rvts51 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: ; +} +span.rvts52 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #00aa00; +} +span.rvts53 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #000000; + background-color: #ff7777; +} +span.rvts54 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: ; +} +span.rvts55 +{ + font-size: 14pt; + font-family: 'Cambria'; + font-weight: bold; + color: ; +} +span.rvts56 +{ + font-size: 12pt; + font-family: 'Verdana', 'Geneva', sans-serif; + color: ; +} +span.rvts57 +{ + font-size: 12pt; + font-family: 'Verdana', 'Geneva', sans-serif; + color: #363b29; +} +span.rvts58 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #363b29; +} +span.rvts59 +{ + font-size: 12pt; + font-family: 'Verdana', 'Geneva', sans-serif; + font-weight: bold; + color: #363b29; +} +span.rvts60 +{ + font-size: 12pt; + font-family: 'Cambria'; + font-weight: bold; + color: #181a12; +} +span.rvts61 +{ + font-size: 14pt; + font-family: 'Cambria'; + font-style: italic; + font-weight: bold; + color: ; +} +span.rvts62 +{ + font-size: 12pt; + font-family: 'Cambria'; + font-weight: bold; + color: ; +} +span.rvts63 +{ + font-size: 9pt; + font-family: 'consolas'; + color: #3c3c3c; +} +span.rvts64 +{ + font-size: 12pt; + font-family: 'cambria'; + font-weight: bold; + color: #000000; + text-decoration: underline; +} +span.rvts65 +{ + font-size: 8pt; + font-family: 'Cambria'; + vertical-align: super; +} +span.rvts66 +{ + font-size: 14pt; + font-family: 'Cambria'; +} +span.rvts67 +{ + font-size: 12pt; + font-family: 'Cambria'; + font-style: italic; + color: #000000; +} +span.rvts68 +{ + font-size: 12pt; + font-family: 'Cambria'; + font-style: italic; + color: #810000; +} +span.rvts69 +{ + font-size: 11pt; + font-family: 'Times'; + font-weight: bold; + color: #ff0000; + background-color: #fcfcfc; +} +span.rvts70 +{ + font-size: 11pt; + font-family: 'Times'; + font-weight: bold; + background-color: #fcfcfc; +} +span.rvts71 +{ + font-size: 11pt; + font-weight: bold; + background-color: #fcfcfc; +} +span.rvts72 +{ + font-size: 11pt; + font-family: 'Times'; + background-color: #fcfcfc; +} +span.rvts73 +{ + font-size: 12pt; + font-family: 'Cambria'; + background-color: #fcfcfc; +} +span.rvts74 +{ + font-size: 14pt; + font-family: 'Verdana', 'Geneva', sans-serif; + font-weight: bold; + color: #363b29; +} +span.rvts75 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #000000; + background-color: #ffff66; +} +span.rvts76 +{ + font-size: 14pt; + font-family: 'Cambria'; + font-weight: bold; + color: #363b29; +} +span.rvts77 +{ + font-size: 12pt; + font-family: 'Cambria'; + font-weight: bold; + color: #363b29; +} +span.rvts78 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: #363b29; + text-decoration: underline; +} +span.rvts79 +{ + font-size: 11pt; +} +span.rvts80 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + font-weight: bold; + color: #363b29; +} +span.rvts81 +{ + font-size: 17pt; + font-family: 'Lucida Console', 'Monaco', monospace; + font-weight: bold; + color: #363b29; +} +span.rvts82 +{ + font-size: 14pt; + font-family: 'Cambria'; + color: #363b29; +} +a.rvts83, span.rvts83 +{ + font-size: 12pt; + font-family: 'Cambria'; + text-decoration: underline; +} +span.rvts84 +{ + font-family: 'Cambria'; + font-weight: bold; +} +a.rvts85, span.rvts85 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: #332510; + text-decoration: underline; +} +span.rvts86 +{ + font-size: 10pt; + font-family: 'Cambria'; + color: #363b29; + vertical-align: sub; +} +a.rvts87, span.rvts87 +{ + font-size: 14pt; + font-family: 'Cambria'; + font-weight: bold; + text-decoration: underline; +} +span.rvts88 +{ + font-size: 12pt; + font-family: 'Cambria'; + font-style: italic; + color: #363b29; +} +span.rvts89 +{ + font-size: 14pt; + font-family: 'Lucida Console', 'Monaco', monospace; + color: #991111; +} +a.rvts90, span.rvts90 +{ + font-size: 14pt; + font-family: 'Cambria'; + font-weight: bold; + color: #332510; + text-decoration: underline; +} +span.rvts91 +{ + font-size: 12pt; + font-family: 'Cambria'; + color: #363b29; + vertical-align: super; +} +span.rvts92 +{ + font-size: 12pt; + font-family: 'Cambria'; + vertical-align: super; +} +/* ========== Para Styles ========== */ +p,ul,ol /* Paragraph Style */ +{ + text-align: left; + text-indent: 0px; + padding: 0px 0px 0px 0px; + margin: 0px 0px 0px 0px; +} +.rvps1 /* Centered */ +{ + text-align: center; +} +.rvps2 +{ +} +.rvps3 +{ + text-align: center; +} +.rvps4 /* Paragraph Style */ +{ + text-align: center; + border-color: #c0c0c0; + border-style: solid; + border-width: 1px; + border-right: none; + border-left: none; + padding: 2px 0px 2px 0px; + margin: 7px 0px 7px 0px; +} +.rvps5 +{ + margin: 8px 0px 0px 0px; +} +.rvps6 +{ + text-indent: 48px; +} +.rvps7 +{ + margin: 12px 0px 12px 0px; +} +.rvps8 +{ + background: #eeeeee; + padding: 12px 12px 12px 12px; + margin: 14px 0px 14px 0px; +} +.rvps9 +{ + background: #ffffff; + padding: 12px 12px 12px 12px; + margin: 14px 0px 14px 0px; +} +.rvps10 +{ + background: #eff0f1; + padding: 8px 8px 8px 8px; +} +.rvps11 +{ + margin: 0px 0px 0px 1px; +} +.rvps12 +{ + text-align: left; + text-indent: 0px; + padding: 0px 0px 0px 0px; + margin: 19px 0px 10px 0px; +} +.rvps13 +{ + text-align: left; + text-indent: 0px; + padding: 0px 0px 0px 0px; + margin: 16px 0px 8px 0px; +} +.rvps14 +{ + margin: 0px 0px 0px 96px; +} +/* ========== Lists ========== */ +.list0 {text-indent: 0px; padding: 0; margin: 0 0 0 24px; list-style-position: outside; list-style-type: disc;} +.list1 {text-indent: 0px; padding: 0; margin: 0 0 0 48px; list-style-position: outside; list-style-type: circle;} +.list2 {text-indent: 0px; padding: 0; margin: 0 0 0 48px; list-style-position: outside; list-style-type: square;} +.list3 {text-indent: 0px; padding: 0; margin: 0 0 0 48px; list-style-position: outside; list-style-type: disc;} +.list4 {text-indent: 0px; padding: 0; margin: 0 0 0 24px; list-style-position: outside; list-style-type: decimal;} +.list5 {text-indent: 0px; padding: 0; margin: 0 0 0 48px; list-style-position: outside; list-style-type: decimal;} +.list6 {text-indent: 0px; padding: 0; margin: 0 0 0 24px; list-style-position: outside; list-style-type: square;} +.list7 {text-indent: 0px; padding: 0; margin: 0 0 0 24px; list-style-position: outside; list-style-type: circle;} +.list8 {text-indent: 0px; padding: 0; margin: 0 0 0 96px; list-style-position: outside; list-style-type: disc;} diff --git a/Activity_3_python/LangagePython_fonctions/css/ielte8.css b/Activity_3_python/LangagePython_fonctions/css/ielte8.css new file mode 100644 index 0000000..1d6f53c --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/css/ielte8.css @@ -0,0 +1,3 @@ +.ui-tabs .ui-tabs-nav { + padding: 0; +} \ No newline at end of file diff --git a/Activity_3_python/LangagePython_fonctions/css/reset.css b/Activity_3_python/LangagePython_fonctions/css/reset.css new file mode 100644 index 0000000..391d3a3 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/css/reset.css @@ -0,0 +1,48 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +img { + padding: 0; + border: 0; + font-size: 100%; + font: inherit; +} +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + font-size: 100%; + font: inherit; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} \ No newline at end of file diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_flat_0_aaaaaa_40x100.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000..5b5dab2 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_flat_75_ffffff_40x100.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_flat_75_ffffff_40x100.png new file mode 100644 index 0000000..ac8b229 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_flat_75_ffffff_40x100.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_55_fbf9ee_1x400.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000..ad3d634 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_65_ffffff_1x400.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000..42ccba2 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_75_dadada_1x400.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000..5a46b47 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_75_e6e6e6_1x400.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000..86c2baa Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_95_fef1ec_1x400.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000..4443fdc Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000..7c9fa6c Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png new file mode 100644 index 0000000..0e05810 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_222222_256x240.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000..b273ff1 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_222222_256x240.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_2e83ff_256x240.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000..09d1cdc Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_2e83ff_256x240.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_454545_256x240.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000..59bd45b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_454545_256x240.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_888888_256x240.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000..6d02426 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_888888_256x240.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_cd0a0a_256x240.png b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..2ab019b Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/css/silver-theme/images/ui-icons_cd0a0a_256x240.png differ diff --git a/Activity_3_python/LangagePython_fonctions/css/silver-theme/jquery-ui-1.8.12.custom.css b/Activity_3_python/LangagePython_fonctions/css/silver-theme/jquery-ui-1.8.12.custom.css new file mode 100644 index 0000000..d94b6b2 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/css/silver-theme/jquery-ui-1.8.12.custom.css @@ -0,0 +1,103 @@ +/* + * jQuery UI CSS Framework 1.8.12 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework 1.8.12 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=&fwDefault=normal&fsDefault=&cornerRadius=0&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=05_inset_soft.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: ; font-size: 1em; } +.ui-widget-content { background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } +.ui-widget-header a { color: #222222; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.png) 50% bottom repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* + * jQuery UI Tabs 1.8.12 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { position: relative; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: 2px 5px; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 10px; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } diff --git a/Activity_3_python/LangagePython_fonctions/css/toc.css b/Activity_3_python/LangagePython_fonctions/css/toc.css new file mode 100644 index 0000000..a8776ff --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/css/toc.css @@ -0,0 +1,71 @@ +/* -- Body -- */ + +body { + overflow: hidden; +} + +/* -- UI Tabs -- */ + +ul.dynatree-container { + line-height: 1.5em; +} + +.ui-tabs { + position: static; +} + +#toc_header { + padding-bottom: 0; +} + +#tabs .ui-tabs-nav { + border: 0; + border-bottom: 1px solid #ccc; + padding-top: 19px; + position: absolute; + top: 0; + left: 0; + width: 100%; +} + +#tabs .ui-widget-header{ + background: #fff url(../img/header-bg.png) left bottom repeat-x; +} + +#tabs .ui-tabs-panel { + overflow: auto; + position: absolute; + top: 43px; + left: 0; + right: 0; + bottom: 0; +} + +/* Search */ + +#search_value { + width: 140px; +} + +#search_results { + padding-top: 10px; +} + +/* -- Tree -- */ + +ul.dynatree-container { + border: 0; + font-family: inherit; + overflow: visible; + padding: 0; +} + +/* Selection color */ +span.dynatree-active a { + background-color: #999999 !important; +} + +/* Remove folder boldness */ +span.dynatree-folder a { + font-weight: normal; +} \ No newline at end of file diff --git a/Activity_3_python/LangagePython_fonctions/img/arrow_left.png b/Activity_3_python/LangagePython_fonctions/img/arrow_left.png new file mode 100644 index 0000000..7270e0d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/img/arrow_left.png differ diff --git a/Activity_3_python/LangagePython_fonctions/img/arrow_right.png b/Activity_3_python/LangagePython_fonctions/img/arrow_right.png new file mode 100644 index 0000000..ca41e5d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/img/arrow_right.png differ diff --git a/Activity_3_python/LangagePython_fonctions/img/arrow_up.png b/Activity_3_python/LangagePython_fonctions/img/arrow_up.png new file mode 100644 index 0000000..557d5e6 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/img/arrow_up.png differ diff --git a/Activity_3_python/LangagePython_fonctions/img/book-closed.png b/Activity_3_python/LangagePython_fonctions/img/book-closed.png new file mode 100644 index 0000000..ad23b2a Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/img/book-closed.png differ diff --git a/Activity_3_python/LangagePython_fonctions/img/book.png b/Activity_3_python/LangagePython_fonctions/img/book.png new file mode 100644 index 0000000..0a76cc1 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/img/book.png differ diff --git a/Activity_3_python/LangagePython_fonctions/img/footer-bg.png b/Activity_3_python/LangagePython_fonctions/img/footer-bg.png new file mode 100644 index 0000000..5682c5f Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/img/footer-bg.png differ diff --git a/Activity_3_python/LangagePython_fonctions/img/header-bg.png b/Activity_3_python/LangagePython_fonctions/img/header-bg.png new file mode 100644 index 0000000..81d526d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/img/header-bg.png differ diff --git a/Activity_3_python/LangagePython_fonctions/img/topic.png b/Activity_3_python/LangagePython_fonctions/img/topic.png new file mode 100644 index 0000000..3974bca Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/img/topic.png differ diff --git a/Activity_3_python/LangagePython_fonctions/js/hnd.js b/Activity_3_python/LangagePython_fonctions/js/hnd.js new file mode 100644 index 0000000..a603c28 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/js/hnd.js @@ -0,0 +1 @@ +jQuery.fn.highlight=function(a){function d(b,a){var e=0;if(b.nodeType==3){var c=b.data.toUpperCase().indexOf(a);if(c>=0){e=document.createElement("span");e.className="highlight";c=b.splitText(c);c.splitText(a.length);var g=c.cloneNode(!0);e.appendChild(g);c.parentNode.replaceChild(e,c);e=1}}else if(b.nodeType==1&&b.childNodes&&!/(script|style)/i.test(b.tagName))for(c=0;cb[1]?-1:a[1]=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!!d&&!!a.element[0].parentNode)for(var e=0;e0)return!0;b[d]=1,e=b[d]>0,b[d]=0;return e},isOverAxis:function(a,b,c){return a>b&&a=9)&&!b.button)return this._mouseUp(b);if(this._mouseStarted){this._mouseDrag(b);return b.preventDefault()}this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b));return!this._mouseStarted},_mouseUp:function(b){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b));return!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);/* + * jQuery UI Draggable 1.8.17 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!!this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy();return this}},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle"))return!1;this.handle=this._getHandle(b);if(!this.handle)return!1;c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")});return!0},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment();if(this._trigger("start",b)===!1){this._clear();return!1}this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b);return!0},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1){this._mouseUp({});return!1}this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";a.ui.ddmanager&&a.ui.ddmanager.drag(this,b);return!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var d=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){d._trigger("stop",b)!==!1&&d._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b);return a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)});return c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute");return d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.lefth[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.toph[3]?j-this.offset.click.toph[2]?k-this.offset.click.left=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();droppablesLoop:for(var g=0;g').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e');/sw|se|ne|nw/.test(f)&&h.css({zIndex:++c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){c.disabled||(a(this).removeClass("ui-resizable-autohide"),b._handles.show())},function(){c.disabled||b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement);return this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),a.browser.opera&&/relative/.test(f.css("position"))&&f.css({position:"relative",top:"auto",left:"auto"}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b);return!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui());return!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove();return!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null);return a},_proportionallyResize:function(){var b=this.options;if(!!this._proportionallyResizeElements.length){var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.17"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10),position:b.css("position")})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,e){a(b).each(function(){var b=a(this),f=a(this).data("resizable-alsoresize"),g={},i=e&&e.length?e:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(i,function(a,b){var c=(f[b]||0)+(h[b]||0);c&&c>=0&&(g[b]=c||null)}),a.browser.opera&&/relative/.test(b.css("position"))&&(d._revertToRelativePosition=!0,b.css({position:"absolute",top:"auto",left:"auto"})),b.css(g)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.css({position:b.data("resizable-alsoresize").position})})};d._revertToRelativePosition&&(d._revertToRelativePosition=!1,typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)),a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!!i){e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/e.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*e.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);/* + * jQuery UI Selectable 1.8.17 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("
")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy();return this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(!this.options.disabled){var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element});return!1}})}},_mouseDrag:function(b){var c=this;this.dragged=!0;if(!this.options.disabled){var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!!i&&i.element!=c.element[0]){var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.righth||i.bottome&&i.rightf&&i.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f){e=a(this);return!1}});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}this.currentItem=e,this._removeCurrentsFromItems();return!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b);return!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs;return!1},_mouseStop:function(b,c){if(!!b){a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1}},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem));return this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"=");return d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")});return d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+jf&&b+ka[this.floating?"width":"height"]?l:f0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a),this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];e||(b.style.visibility="hidden");return b},update:function(a,b){if(!e||!!d.forcePlaceholderSize)b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!!c)if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.items[i][this.containers[d].floating?"left":"top"];Math.abs(j-h)this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.topthis.containment[3]?h-this.offset.click.topthis.containment[2]?i-this.offset.click.left=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(!0)},_setOption:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var g=a(c).attr("href"),h=g.split("#")[0],i;h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!=="#"){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash){e.selected=a;return!1}}),typeof e.selected!="number"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!="number"&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs");if(e.event!=="mouseover"){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b,c){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1){this.blur();return!1}e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass("ui-tabs-selected")){e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur();return!1}if(!f.length){e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur();return!1}}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this));else throw"jQuery UI Tabs: Mismatching fragment identifier.";a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){typeof a=="string"&&(a=this.anchors.index(this.anchors.filter("[href$="+a+"]")));return a},destroy:function(){var b=this.options;this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie);return this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e]));return this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0]));return this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a])));return this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;this.anchors.eq(a).trigger(this.options.event+".tabs");return this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup();return this},url:function(a,b){this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b);return this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.17"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a1){res+=cache.tagConnector;}}else if(this.hasChildren()!==false){res+=cache.tagExpander;}else{res+=cache.tagConnector;} +if(opts.checkbox&&data.hideCheckbox!==true&&!data.isStatusNode){res+=cache.tagCheckbox;} +if(data.icon){res+="";}else if(data.icon===false){noop();}else{res+=cache.tagNodeIcon;} +var nodeTitle="";if(opts.onCustomRender){nodeTitle=opts.onCustomRender.call(tree,this)||"";} +if(!nodeTitle){var tooltip=data.tooltip?' title="'+data.tooltip.replace(/\"/g,'"')+'"':'',href=data.href||"#";if(opts.noLink||data.noLink){nodeTitle=''+data.title+'';}else{nodeTitle=''+data.title+'';}} +res+=nodeTitle;return res;},_fixOrder:function(){var cl=this.childList;if(!cl||!this.ul){return;} +var childLI=this.ul.firstChild;for(var i=0,l=cl.length-1;i1){this.ul.className=cn.container+" "+cn.noConnector;}else{this.ul.className=cn.container;}}else if(parent){if(!this.li){firstTime=true;this.li=document.createElement("li");this.li.dtnode=this;if(data.key&&opts.generateIds){this.li.id=opts.idPrefix+data.key;} +this.span=document.createElement("span");this.span.className=cn.title;this.li.appendChild(this.span);if(!parent.ul){parent.ul=document.createElement("ul");parent.ul.style.display="none";parent.li.appendChild(parent.ul);} +parent.ul.appendChild(this.li);} +this.span.innerHTML=this._getInnerHtml();var cnList=[];cnList.push(cn.node);if(data.isFolder){cnList.push(cn.folder);} +if(this.bExpanded){cnList.push(cn.expanded);} +if(this.hasChildren()!==false){cnList.push(cn.hasChildren);} +if(data.isLazy&&this.childList===null){cnList.push(cn.lazy);} +if(isLastSib){cnList.push(cn.lastsib);} +if(this.bSelected){cnList.push(cn.selected);} +if(this.hasSubSel){cnList.push(cn.partsel);} +if(tree.activeNode===this){cnList.push(cn.active);} +if(data.addClass){cnList.push(data.addClass);} +cnList.push(cn.combinedExpanderPrefix ++(this.bExpanded?"e":"c") ++(data.isLazy&&this.childList===null?"d":"") ++(isLastSib?"l":""));cnList.push(cn.combinedIconPrefix ++(this.bExpanded?"e":"c") ++(data.isFolder?"f":""));this.span.className=cnList.join(" ");this.li.className=isLastSib?cn.lastsib:"";if(firstTime&&opts.onCreate){opts.onCreate.call(tree,this,this.span);} +if(opts.onRender){opts.onRender.call(tree,this,this.span);}} +if((this.bExpanded||includeInvisible===true)&&this.childList){for(var i=0,l=this.childList.length;iy?1:-1;};cl.sort(cmp);if(deep){for(var i=0,l=cl.length;i0){this.childList[0].focus();}else{this.focus();}} +break;case DTNodeStatus_Loading:this._isLoading=true;$(this.span).addClass(this.tree.options.classNames.nodeLoading);if(!this.parent){this._setStatusNode({title:this.tree.options.strings.loading+info,tooltip:tooltip,addClass:this.tree.options.classNames.nodeWait});} +break;case DTNodeStatus_Error:this._isLoading=false;this._setStatusNode({title:this.tree.options.strings.loadError+info,tooltip:tooltip,addClass:this.tree.options.classNames.nodeError});break;default:throw"Bad LazyNodeStatus: '"+lts+"'.";}},_parentList:function(includeRoot,includeSelf){var l=[];var dtn=includeSelf?this:this.parent;while(dtn){if(includeRoot||dtn.parent){l.unshift(dtn);} +dtn=dtn.parent;} +return l;},getLevel:function(){var level=0;var dtn=this.parent;while(dtn){level++;dtn=dtn.parent;} +return level;},_getTypeForOuterNodeEvent:function(event){var cns=this.tree.options.classNames;var target=event.target;if(target.className.indexOf(cns.node)<0){return null;} +var eventX=event.pageX-target.offsetLeft;var eventY=event.pageY-target.offsetTop;for(var i=0,l=target.childNodes.length;i=x&&eventX<=(x+nx)&&eventY>=y&&eventY<=(y+ny)){if(cn.className==cns.title){return"title";}else if(cn.className==cns.expander){return"expander";}else if(cn.className==cns.checkbox){return"checkbox";}else if(cn.className==cns.nodeIcon){return"icon";}}} +return"prefix";},getEventTargetType:function(event){var tcn=event&&event.target?event.target.className:"",cns=this.tree.options.classNames;if(tcn===cns.title){return"title";}else if(tcn===cns.expander){return"expander";}else if(tcn===cns.checkbox){return"checkbox";}else if(tcn===cns.nodeIcon){return"icon";}else if(tcn===cns.empty||tcn===cns.vline||tcn===cns.connector){return"prefix";}else if(tcn.indexOf(cns.node)>=0){return this._getTypeForOuterNodeEvent(event);} +return null;},isVisible:function(){var parents=this._parentList(true,false);for(var i=0,l=parents.length;ia").focus();}catch(e){}},isFocused:function(){return(this.tree.tnFocused===this);},_activate:function(flag,fireEvents){this.tree.logDebug("dtnode._activate(%o, fireEvents=%o) - %o",flag,fireEvents,this);var opts=this.tree.options;if(this.data.isStatusNode){return;} +if(fireEvents&&opts.onQueryActivate&&opts.onQueryActivate.call(this.tree,flag,this)===false){return;} +if(flag){if(this.tree.activeNode){if(this.tree.activeNode===this){return;} +this.tree.activeNode.deactivate();} +if(opts.activeVisible){this.makeVisible();} +this.tree.activeNode=this;if(opts.persist){$.cookie(opts.cookieId+"-active",this.data.key,opts.cookie);} +this.tree.persistence.activeKey=this.data.key;$(this.span).addClass(opts.classNames.active);if(fireEvents&&opts.onActivate){opts.onActivate.call(this.tree,this);}}else{if(this.tree.activeNode===this){if(opts.onQueryActivate&&opts.onQueryActivate.call(this.tree,false,this)===false){return;} +$(this.span).removeClass(opts.classNames.active);if(opts.persist){$.cookie(opts.cookieId+"-active","",opts.cookie);} +this.tree.persistence.activeKey=null;this.tree.activeNode=null;if(fireEvents&&opts.onDeactivate){opts.onDeactivate.call(this.tree,this);}}}},activate:function(){this._activate(true,true);},activateSilently:function(){this._activate(true,false);},deactivate:function(){this._activate(false,true);},isActive:function(){return(this.tree.activeNode===this);},_userActivate:function(){var activate=true;var expand=false;if(this.data.isFolder){switch(this.tree.options.clickFolderMode){case 2:activate=false;expand=true;break;case 3:activate=expand=true;break;}} +if(this.parent===null){expand=false;} +if(expand){this.toggleExpand();this.focus();} +if(activate){this.activate();}},_setSubSel:function(hasSubSel){if(hasSubSel){this.hasSubSel=true;$(this.span).addClass(this.tree.options.classNames.partsel);}else{this.hasSubSel=false;$(this.span).removeClass(this.tree.options.classNames.partsel);}},_updatePartSelectionState:function(){var sel;if(!this.hasChildren()){sel=(this.bSelected&&!this.data.unselectable&&!this.data.isStatusNode);this._setSubSel(false);return sel;} +var i,l,cl=this.childList,allSelected=true,allDeselected=true;for(i=0,l=cl.length;i=0;i--){sib=parents[i].getNextSibling();if(sib){break;}}} +if(sib){sib.focus();} +break;default:handled=false;} +if(handled){event.preventDefault();}},_onKeypress:function(event){},_onFocus:function(event){var opts=this.tree.options;if(event.type=="blur"||event.type=="focusout"){if(opts.onBlur){opts.onBlur.call(this.tree,this);} +if(this.tree.tnFocused){$(this.tree.tnFocused.span).removeClass(opts.classNames.focused);} +this.tree.tnFocused=null;if(opts.persist){$.cookie(opts.cookieId+"-focus","",opts.cookie);}}else if(event.type=="focus"||event.type=="focusin"){if(this.tree.tnFocused&&this.tree.tnFocused!==this){this.tree.logDebug("dtnode.onFocus: out of sync: curFocus: %o",this.tree.tnFocused);$(this.tree.tnFocused.span).removeClass(opts.classNames.focused);} +this.tree.tnFocused=this;if(opts.onFocus){opts.onFocus.call(this.tree,this);} +$(this.tree.tnFocused.span).addClass(opts.classNames.focused);if(opts.persist){$.cookie(opts.cookieId+"-focus",this.data.key,opts.cookie);}}},visit:function(fn,includeSelf){var res=true;if(includeSelf===true){res=fn(this);if(res===false||res=="skip"){return res;}} +if(this.childList){for(var i=0,l=this.childList.length;i reloading %s...",this,keyPath,child);var self=this;child.reloadChildren(function(node,isOk){if(isOk){tree.logDebug("%s._loadKeyPath(%s) -> reloaded %s.",node,keyPath,node);callback.call(tree,child,"loaded");node._loadKeyPath(segList.join(tree.options.keyPathSeparator),callback);}else{tree.logWarning("%s._loadKeyPath(%s) -> reloadChildren() failed.",self,keyPath);callback.call(tree,child,"error");}});}else{callback.call(tree,child,"loaded");child._loadKeyPath(segList.join(tree.options.keyPathSeparator),callback);} +return;}} +tree.logWarning("Node not found: "+seg);return;},resetLazy:function(){if(this.parent===null){throw"Use tree.reload() instead";}else if(!this.data.isLazy){throw"node.resetLazy() requires lazy nodes.";} +this.expand(false);this.removeChildren();},_addChildNode:function(dtnode,beforeNode){var tree=this.tree,opts=tree.options,pers=tree.persistence;dtnode.parent=this;if(this.childList===null){this.childList=[];}else if(!beforeNode){if(this.childList.length>0){$(this.childList[this.childList.length-1].span).removeClass(opts.classNames.lastsib);}} +if(beforeNode){var iBefore=$.inArray(beforeNode,this.childList);if(iBefore<0){throw" must be a child of ";} +this.childList.splice(iBefore,0,dtnode);}else{this.childList.push(dtnode);} +var isInitializing=tree.isInitializing();if(opts.persist&&pers.cookiesFound&&isInitializing){if(pers.activeKey===dtnode.data.key){tree.activeNode=dtnode;} +if(pers.focusedKey===dtnode.data.key){tree.focusNode=dtnode;} +dtnode.bExpanded=($.inArray(dtnode.data.key,pers.expandedKeyList)>=0);dtnode.bSelected=($.inArray(dtnode.data.key,pers.selectedKeyList)>=0);}else{if(dtnode.data.activate){tree.activeNode=dtnode;if(opts.persist){pers.activeKey=dtnode.data.key;}} +if(dtnode.data.focus){tree.focusNode=dtnode;if(opts.persist){pers.focusedKey=dtnode.data.key;}} +dtnode.bExpanded=(dtnode.data.expand===true);if(dtnode.bExpanded&&opts.persist){pers.addExpand(dtnode.data.key);} +dtnode.bSelected=(dtnode.data.select===true);if(dtnode.bSelected&&opts.persist){pers.addSelect(dtnode.data.key);}} +if(opts.minExpandLevel>=dtnode.getLevel()){this.bExpanded=true;} +if(dtnode.bSelected&&opts.selectMode==3){var p=this;while(p){if(!p.hasSubSel){p._setSubSel(true);} +p=p.parent;}} +if(tree.bEnableUpdate){this.render();} +return dtnode;},addChild:function(obj,beforeNode){if(typeof(obj)=="string"){throw"Invalid data type for "+obj;}else if(!obj||obj.length===0){return;}else if(obj instanceof DynaTreeNode){return this._addChildNode(obj,beforeNode);} +if(!obj.length){obj=[obj];} +var prevFlag=this.tree.enableUpdate(false);var tnFirst=null;for(var i=0,l=obj.length;i=0){this.expandedKeyList.splice(idx,1);$.cookie(this.cookieId+"-expand",this.expandedKeyList.join(","),this.cookieOpts);}},addSelect:function(key){if($.inArray(key,this.selectedKeyList)<0){this.selectedKeyList.push(key);$.cookie(this.cookieId+"-select",this.selectedKeyList.join(","),this.cookieOpts);}},clearSelect:function(key){var idx=$.inArray(key,this.selectedKeyList);if(idx>=0){this.selectedKeyList.splice(idx,1);$.cookie(this.cookieId+"-select",this.selectedKeyList.join(","),this.cookieOpts);}},isReloading:function(){return this.cookiesFound===true;},toDict:function(){return{cookiesFound:this.cookiesFound,activeKey:this.activeKey,focusedKey:this.activeKey,expandedKeyList:this.expandedKeyList,selectedKeyList:this.selectedKeyList};},lastentry:undefined};var DynaTree=Class.create();DynaTree.version="$Version: 1.2.1_rc3$";DynaTree.prototype={initialize:function($widget){this.phase="init";this.$widget=$widget;this.options=$widget.options;this.$tree=$widget.element;this.timer=null;this.divTree=this.$tree.get(0);_initDragAndDrop(this);},_load:function(callback){var $widget=this.$widget;var opts=this.options,self=this;this.bEnableUpdate=true;this._nodeCount=1;this.activeNode=null;this.focusNode=null;if(opts.rootVisible!==undefined){this.logWarning("Option 'rootVisible' is no longer supported.");} +if(opts.minExpandLevel<1){this.logWarning("Option 'minExpandLevel' must be >= 1.");opts.minExpandLevel=1;} +if(opts.classNames!==$.ui.dynatree.prototype.options.classNames){opts.classNames=$.extend({},$.ui.dynatree.prototype.options.classNames,opts.classNames);} +if(opts.ajaxDefaults!==$.ui.dynatree.prototype.options.ajaxDefaults){opts.ajaxDefaults=$.extend({},$.ui.dynatree.prototype.options.ajaxDefaults,opts.ajaxDefaults);} +if(opts.dnd!==$.ui.dynatree.prototype.options.dnd){opts.dnd=$.extend({},$.ui.dynatree.prototype.options.dnd,opts.dnd);} +if(!opts.imagePath){$("script").each(function(){var _rexDtLibName=/.*dynatree[^\/]*\.js$/i;if(this.src.search(_rexDtLibName)>=0){if(this.src.indexOf("/")>=0){opts.imagePath=this.src.slice(0,this.src.lastIndexOf("/"))+"/skin/";}else{opts.imagePath="skin/";} +self.logDebug("Guessing imagePath from '%s': '%s'",this.src,opts.imagePath);return false;}});} +this.persistence=new DynaTreeStatus(opts.cookieId,opts.cookie);if(opts.persist){if(!$.cookie){_log("warn","Please include jquery.cookie.js to use persistence.");} +this.persistence.read();} +this.logDebug("DynaTree.persistence: %o",this.persistence.toDict());this.cache={tagEmpty:"",tagVline:"",tagExpander:"",tagConnector:"",tagNodeIcon:"",tagCheckbox:"",lastentry:undefined};if(opts.children||(opts.initAjax&&opts.initAjax.url)||opts.initId){$(this.divTree).empty();} +var $ulInitialize=this.$tree.find(">ul:first").hide();this.tnRoot=new DynaTreeNode(null,this,{});this.tnRoot.bExpanded=true;this.tnRoot.render();this.divTree.appendChild(this.tnRoot.ul);var root=this.tnRoot;var isReloading=(opts.persist&&this.persistence.isReloading());var isLazy=false;var prevFlag=this.enableUpdate(false);this.logDebug("Dynatree._load(): read tree structure...");if(opts.children){root.addChild(opts.children);}else if(opts.initAjax&&opts.initAjax.url){isLazy=true;root.data.isLazy=true;this._reloadAjax(callback);}else if(opts.initId){this._createFromTag(root,$("#"+opts.initId));}else{this._createFromTag(root,$ulInitialize);$ulInitialize.remove();} +this._checkConsistency();if(!isLazy&&opts.selectMode==3){root._updatePartSelectionState();} +this.logDebug("Dynatree._load(): render nodes...");this.enableUpdate(prevFlag);this.logDebug("Dynatree._load(): bind events...");this.$widget.bind();this.logDebug("Dynatree._load(): postInit...");this.phase="postInit";if(opts.persist){this.persistence.write();} +if(this.focusNode&&this.focusNode.isVisible()){this.logDebug("Focus on init: %o",this.focusNode);this.focusNode.focus();} +if(!isLazy){if(opts.onPostInit){opts.onPostInit.call(this,isReloading,false);} +if(callback){callback.call(this,"ok");}} +this.phase="idle";},_reloadAjax:function(callback){var opts=this.options;if(!opts.initAjax||!opts.initAjax.url){throw"tree.reload() requires 'initAjax' mode.";} +var pers=this.persistence;var ajaxOpts=$.extend({},opts.initAjax);if(ajaxOpts.addActiveKey){ajaxOpts.data.activeKey=pers.activeKey;} +if(ajaxOpts.addFocusedKey){ajaxOpts.data.focusedKey=pers.focusedKey;} +if(ajaxOpts.addExpandedKeyList){ajaxOpts.data.expandedKeyList=pers.expandedKeyList.join(",");} +if(ajaxOpts.addSelectedKeyList){ajaxOpts.data.selectedKeyList=pers.selectedKeyList.join(",");} +if(ajaxOpts.success){this.logWarning("initAjax: success callback is ignored; use onPostInit instead.");} +if(ajaxOpts.error){this.logWarning("initAjax: error callback is ignored; use onPostInit instead.");} +var isReloading=pers.isReloading();ajaxOpts.success=function(dtnode,data,textStatus){if(opts.selectMode==3){dtnode.tree.tnRoot._updatePartSelectionState();} +if(opts.onPostInit){opts.onPostInit.call(dtnode.tree,isReloading,false);} +if(callback){callback.call(dtnode.tree,"ok");}};ajaxOpts.error=function(dtnode,XMLHttpRequest,textStatus,errorThrown){if(opts.onPostInit){opts.onPostInit.call(dtnode.tree,isReloading,true,XMLHttpRequest,textStatus,errorThrown);} +if(callback){callback.call(dtnode.tree,"error",XMLHttpRequest,textStatus,errorThrown);}};this.logDebug("Dynatree._init(): send Ajax request...");this.tnRoot.appendAjax(ajaxOpts);},toString:function(){return"Dynatree '"+this.$tree.attr("id")+"'";},toDict:function(){return this.tnRoot.toDict(true);},serializeArray:function(stopOnParents){var nodeList=this.getSelectedNodes(stopOnParents),name=this.$tree.attr("name")||this.$tree.attr("id"),arr=[];for(var i=0,l=nodeList.length;i=2){Array.prototype.unshift.apply(arguments,["debug"]);_log.apply(this,arguments);}},logInfo:function(msg){if(this.options.debugLevel>=1){Array.prototype.unshift.apply(arguments,["info"]);_log.apply(this,arguments);}},logWarning:function(msg){Array.prototype.unshift.apply(arguments,["warn"]);_log.apply(this,arguments);},isInitializing:function(){return(this.phase=="init"||this.phase=="postInit");},isReloading:function(){return(this.phase=="init"||this.phase=="postInit")&&this.options.persist&&this.persistence.cookiesFound;},isUserEvent:function(){return(this.phase=="userEvent");},redraw:function(){this.tnRoot.render(false,false);},renderInvisibleNodes:function(){this.tnRoot.render(false,true);},reload:function(callback){this._load(callback);},getRoot:function(){return this.tnRoot;},enable:function(){this.$widget.enable();},disable:function(){this.$widget.disable();},getNodeByKey:function(key){var el=document.getElementById(this.options.idPrefix+key);if(el){return el.dtnode?el.dtnode:null;} +var match=null;this.visit(function(node){if(node.data.key==key){match=node;return false;}},true);return match;},getActiveNode:function(){return this.activeNode;},reactivate:function(setFocus){var node=this.activeNode;if(node){this.activeNode=null;node.activate();if(setFocus){node.focus();}}},getSelectedNodes:function(stopOnParents){var nodeList=[];this.tnRoot.visit(function(node){if(node.bSelected){nodeList.push(node);if(stopOnParents===true){return"skip";}}});return nodeList;},activateKey:function(key){var dtnode=(key===null)?null:this.getNodeByKey(key);if(!dtnode){if(this.activeNode){this.activeNode.deactivate();} +this.activeNode=null;return null;} +dtnode.focus();dtnode.activate();return dtnode;},loadKeyPath:function(keyPath,callback){var segList=keyPath.split(this.options.keyPathSeparator);if(segList[0]===""){segList.shift();} +if(segList[0]==this.tnRoot.data.key){this.logDebug("Removed leading root key.");segList.shift();} +keyPath=segList.join(this.options.keyPathSeparator);return this.tnRoot._loadKeyPath(keyPath,callback);},selectKey:function(key,select){var dtnode=this.getNodeByKey(key);if(!dtnode){return null;} +dtnode.select(select);return dtnode;},enableUpdate:function(bEnable){if(this.bEnableUpdate==bEnable){return bEnable;} +this.bEnableUpdate=bEnable;if(bEnable){this.redraw();} +return!bEnable;},count:function(){return this.tnRoot.countChildren();},visit:function(fn,includeRoot){return this.tnRoot.visit(fn,includeRoot);},_createFromTag:function(parentTreeNode,$ulParent){var self=this;$ulParent.find(">li").each(function(){var $li=$(this),$liSpan=$li.find(">span:first"),$liA=$li.find(">a:first"),title,href=null,target=null,tooltip;if($liSpan.length){title=$liSpan.html();}else if($liA.length){title=$liA.html();href=$liA.attr("href");target=$liA.attr("target");tooltip=$liA.attr("title");}else{title=$li.html();var iPos=title.search(/
      =0){title=$.trim(title.substring(0,iPos));}else{title=$.trim(title);}} +var data={title:title,tooltip:tooltip,isFolder:$li.hasClass("folder"),isLazy:$li.hasClass("lazy"),expand:$li.hasClass("expanded"),select:$li.hasClass("selected"),activate:$li.hasClass("active"),focus:$li.hasClass("focused"),noLink:$li.hasClass("noLink")};if(href){data.href=href;data.target=target;} +if($li.attr("title")){data.tooltip=$li.attr("title");} +if($li.attr("id")){data.key=$li.attr("id");} +if($li.attr("data")){var dataAttr=$.trim($li.attr("data"));if(dataAttr){if(dataAttr.charAt(0)!="{"){dataAttr="{"+dataAttr+"}";} +try{$.extend(data,eval("("+dataAttr+")"));}catch(e){throw("Error parsing node data: "+e+"\ndata:\n'"+dataAttr+"'");}}} +var childNode=parentTreeNode.addChild(data);var $ul=$li.find(">ul:first");if($ul.length){self._createFromTag(childNode,$ul);}});},_checkConsistency:function(){},_setDndStatus:function(sourceNode,targetNode,helper,hitMode,accept){var $source=sourceNode?$(sourceNode.span):null,$target=$(targetNode.span);if(!this.$dndMarker){this.$dndMarker=$("
      ").hide().prependTo($(this.divTree).parent());} +if(hitMode==="after"||hitMode==="before"||hitMode==="over"){var pos=$target.offset();switch(hitMode){case"before":this.$dndMarker.removeClass("dynatree-drop-after dynatree-drop-over");this.$dndMarker.addClass("dynatree-drop-before");pos.top-=8;break;case"after":this.$dndMarker.removeClass("dynatree-drop-before dynatree-drop-over");this.$dndMarker.addClass("dynatree-drop-after");pos.top+=8;break;default:this.$dndMarker.removeClass("dynatree-drop-after dynatree-drop-before");this.$dndMarker.addClass("dynatree-drop-over");$target.addClass("dynatree-drop-target");pos.left+=8;} +this.$dndMarker.css({"left":pos.left,"top":pos.top,"z-index":1000}).show();}else{$target.removeClass("dynatree-drop-target");this.$dndMarker.hide();} +if(hitMode==="after"){$target.addClass("dynatree-drop-after");}else{$target.removeClass("dynatree-drop-after");} +if(hitMode==="before"){$target.addClass("dynatree-drop-before");}else{$target.removeClass("dynatree-drop-before");} +if(accept===true){if($source){$source.addClass("dynatree-drop-accept");} +$target.addClass("dynatree-drop-accept");helper.addClass("dynatree-drop-accept");}else{if($source){$source.removeClass("dynatree-drop-accept");} +$target.removeClass("dynatree-drop-accept");helper.removeClass("dynatree-drop-accept");} +if(accept===false){if($source){$source.addClass("dynatree-drop-reject");} +$target.addClass("dynatree-drop-reject");helper.addClass("dynatree-drop-reject");}else{if($source){$source.removeClass("dynatree-drop-reject");} +$target.removeClass("dynatree-drop-reject");helper.removeClass("dynatree-drop-reject");}},_onDragEvent:function(eventName,node,otherNode,event,ui,draggable){var opts=this.options,dnd=this.options.dnd,res=null,nodeTag=$(node.span),hitMode;switch(eventName){case"helper":var $helper=$("
      ").append($(event.target).closest('a').clone());$("ul.dynatree-container",node.tree.divTree).append($helper);$helper.data("dtSourceNode",node);res=$helper;break;case"start":if(node.isStatusNode()){res=false;}else if(dnd.onDragStart){res=dnd.onDragStart(node);} +if(res===false){this.logDebug("tree.onDragStart() cancelled");ui.helper.trigger("mouseup");ui.helper.hide();}else{nodeTag.addClass("dynatree-drag-source");} +break;case"enter":res=dnd.onDragEnter?dnd.onDragEnter(node,otherNode):null;res={over:(res!==false)&&((res===true)||(res==="over")||$.inArray("over",res)>=0),before:(res!==false)&&((res===true)||(res==="before")||$.inArray("before",res)>=0),after:(res!==false)&&((res===true)||(res==="after")||$.inArray("after",res)>=0)};ui.helper.data("enterResponse",res);break;case"over":var enterResponse=ui.helper.data("enterResponse");hitMode=null;if(enterResponse===false){break;}else if(typeof enterResponse==="string"){hitMode=enterResponse;}else{var nodeOfs=nodeTag.offset();var relPos={x:event.pageX-nodeOfs.left,y:event.pageY-nodeOfs.top};var relPos2={x:relPos.x/nodeTag.width(),y:relPos.y/nodeTag.height()};if(enterResponse.after&&relPos2.y>0.75){hitMode="after";}else if(!enterResponse.over&&enterResponse.after&&relPos2.y>0.5){hitMode="after";}else if(enterResponse.before&&relPos2.y<=0.25){hitMode="before";}else if(!enterResponse.over&&enterResponse.before&&relPos2.y<=0.5){hitMode="before";}else if(enterResponse.over){hitMode="over";} +if(dnd.preventVoidMoves){if(node===otherNode){hitMode=null;}else if(hitMode==="before"&&otherNode&&node===otherNode.getNextSibling()){hitMode=null;}else if(hitMode==="after"&&otherNode&&node===otherNode.getPrevSibling()){hitMode=null;}else if(hitMode==="over"&&otherNode&&otherNode.parent===node&&otherNode.isLastSibling()){hitMode=null;}} +ui.helper.data("hitMode",hitMode);} +if(hitMode==="over"&&dnd.autoExpandMS&&node.hasChildren()!==false&&!node.bExpanded){node.scheduleAction("expand",dnd.autoExpandMS);} +if(hitMode&&dnd.onDragOver){res=dnd.onDragOver(node,otherNode,hitMode);} +this._setDndStatus(otherNode,node,ui.helper,hitMode,res!==false);break;case"drop":hitMode=ui.helper.data("hitMode");if(hitMode&&dnd.onDrop){dnd.onDrop(node,otherNode,hitMode,ui,draggable);} +break;case"leave":node.scheduleAction("cancel");ui.helper.data("enterResponse",null);ui.helper.data("hitMode",null);this._setDndStatus(otherNode,node,ui.helper,"out",undefined);if(dnd.onDragLeave){dnd.onDragLeave(node,otherNode);} +break;case"stop":nodeTag.removeClass("dynatree-drag-source");if(dnd.onDragStop){dnd.onDragStop(node);} +break;default:throw"Unsupported drag event: "+eventName;} +return res;},cancelDrag:function(){var dd=$.ui.ddmanager.current;if(dd){dd.cancel();}},lastentry:undefined};$.widget("ui.dynatree",{_init:function(){if(parseFloat($.ui.version)<1.8){if(this.options.debugLevel>=0){_log("warn","ui.dynatree._init() was called; you should upgrade to jquery.ui.core.js v1.8 or higher.");} +return this._create();} +if(this.options.debugLevel>=2){_log("debug","ui.dynatree._init() was called; no current default functionality.");}},_create:function(){var opts=this.options;if(opts.debugLevel>=1){logMsg("Dynatree._create(): version='%s', debugLevel=%o.",$.ui.dynatree.version,this.options.debugLevel);} +this.options.event+=".dynatree";var divTree=this.element.get(0);this.tree=new DynaTree(this);this.tree._load();this.tree.logDebug("Dynatree._init(): done.");},bind:function(){this.unbind();var eventNames="click.dynatree dblclick.dynatree";if(this.options.keyboard){eventNames+=" keypress.dynatree keydown.dynatree";} +this.element.bind(eventNames,function(event){var dtnode=$.ui.dynatree.getNode(event.target);if(!dtnode){return true;} +var tree=dtnode.tree;var o=tree.options;tree.logDebug("event(%s): dtnode: %s",event.type,dtnode);var prevPhase=tree.phase;tree.phase="userEvent";try{switch(event.type){case"click":return(o.onClick&&o.onClick.call(tree,dtnode,event)===false)?false:dtnode._onClick(event);case"dblclick":return(o.onDblClick&&o.onDblClick.call(tree,dtnode,event)===false)?false:dtnode._onDblClick(event);case"keydown":return(o.onKeydown&&o.onKeydown.call(tree,dtnode,event)===false)?false:dtnode._onKeydown(event);case"keypress":return(o.onKeypress&&o.onKeypress.call(tree,dtnode,event)===false)?false:dtnode._onKeypress(event);}}catch(e){var _=null;tree.logWarning("bind(%o): dtnode: %o, error: %o",event,dtnode,e);}finally{tree.phase=prevPhase;}});function __focusHandler(event){event=$.event.fix(event||window.event);var dtnode=$.ui.dynatree.getNode(event.target);return dtnode?dtnode._onFocus(event):false;} +var div=this.tree.divTree;if(div.addEventListener){div.addEventListener("focus",__focusHandler,true);div.addEventListener("blur",__focusHandler,true);}else{div.onfocusin=div.onfocusout=__focusHandler;}},unbind:function(){this.element.unbind(".dynatree");},enable:function(){this.bind();$.Widget.prototype.enable.apply(this,arguments);},disable:function(){this.unbind();$.Widget.prototype.disable.apply(this,arguments);},getTree:function(){return this.tree;},getRoot:function(){return this.tree.getRoot();},getActiveNode:function(){return this.tree.getActiveNode();},getSelectedNodes:function(){return this.tree.getSelectedNodes();},lastentry:undefined});if(parseFloat($.ui.version)<1.8){$.ui.dynatree.getter="getTree getRoot getActiveNode getSelectedNodes";} +$.ui.dynatree.version="$Version: 1.2.1_rc3$";$.ui.dynatree.getNode=function(el){if(el instanceof DynaTreeNode){return el;} +if(el.selector!==undefined){el=el[0];} +while(el){if(el.dtnode){return el.dtnode;} +el=el.parentNode;} +return null;} +$.ui.dynatree.getPersistData=DynaTreeStatus._getTreePersistData;$.ui.dynatree.prototype.options={title:"Dynatree",minExpandLevel:1,imagePath:null,children:null,initId:null,initAjax:null,autoFocus:true,keyboard:true,persist:false,autoCollapse:false,clickFolderMode:3,activeVisible:true,checkbox:false,selectMode:2,fx:null,noLink:false,onClick:null,onDblClick:null,onKeydown:null,onKeypress:null,onFocus:null,onBlur:null,onQueryActivate:null,onQuerySelect:null,onQueryExpand:null,onPostInit:null,onActivate:null,onDeactivate:null,onSelect:null,onExpand:null,onLazyRead:null,onCustomRender:null,onCreate:null,onRender:null,dnd:{onDragStart:null,onDragStop:null,autoExpandMS:1000,preventVoidMoves:true,onDragEnter:null,onDragOver:null,onDrop:null,onDragLeave:null},ajaxDefaults:{cache:false,timeout:0,dataType:"json"},strings:{loading:"Loading…",loadError:"Load error!"},generateIds:false,idPrefix:"dynatree-id-",keyPathSeparator:"/",cookieId:"dynatree",cookie:{expires:null},classNames:{container:"dynatree-container",node:"dynatree-node",folder:"dynatree-folder",empty:"dynatree-empty",vline:"dynatree-vline",expander:"dynatree-expander",connector:"dynatree-connector",checkbox:"dynatree-checkbox",nodeIcon:"dynatree-icon",title:"dynatree-title",noConnector:"dynatree-no-connector",nodeError:"dynatree-statusnode-error",nodeWait:"dynatree-statusnode-wait",hidden:"dynatree-hidden",combinedExpanderPrefix:"dynatree-exp-",combinedIconPrefix:"dynatree-ico-",nodeLoading:"dynatree-loading",hasChildren:"dynatree-has-children",active:"dynatree-active",selected:"dynatree-selected",expanded:"dynatree-expanded",lazy:"dynatree-lazy",focused:"dynatree-focused",partsel:"dynatree-partsel",lastsib:"dynatree-lastsib"},debugLevel:1,lastentry:undefined};if(parseFloat($.ui.version)<1.8){$.ui.dynatree.defaults=$.ui.dynatree.prototype.options;} +$.ui.dynatree.nodedatadefaults={title:null,key:null,isFolder:false,isLazy:false,tooltip:null,href:null,icon:null,addClass:null,noLink:false,activate:false,focus:false,expand:false,select:false,hideCheckbox:false,unselectable:false,children:null,lastentry:undefined};function _initDragAndDrop(tree){var dnd=tree.options.dnd||null;if(dnd&&(dnd.onDragStart||dnd.onDrop)){_registerDnd();} +if(dnd&&dnd.onDragStart){tree.$tree.draggable({addClasses:false,appendTo:"body",containment:false,delay:0,distance:4,revert:false,scroll:true,scrollSpeed:7,scrollSensitivity:10,connectToDynatree:true,helper:function(event){var sourceNode=$.ui.dynatree.getNode(event.target);if(!sourceNode){return"
      ";} +return sourceNode.tree._onDragEvent("helper",sourceNode,null,event,null,null);},start:function(event,ui){},_last:null});} +if(dnd&&dnd.onDrop){tree.$tree.droppable({addClasses:false,tolerance:"intersect",greedy:false,_last:null});}} +var didRegisterDnd=false;var _registerDnd=function(){if(didRegisterDnd){return;} +$.ui.plugin.add("draggable","connectToDynatree",{start:function(event,ui){var draggable=$(this).data("draggable"),sourceNode=ui.helper.data("dtSourceNode")||null;if(sourceNode){draggable.offset.click.top=-2;draggable.offset.click.left=+16;return sourceNode.tree._onDragEvent("start",sourceNode,null,event,ui,draggable);}},drag:function(event,ui){var draggable=$(this).data("draggable"),sourceNode=ui.helper.data("dtSourceNode")||null,prevTargetNode=ui.helper.data("dtTargetNode")||null,targetNode=$.ui.dynatree.getNode(event.target);if(event.target&&!targetNode){var isHelper=$(event.target).closest("div.dynatree-drag-helper,#dynatree-drop-marker").length>0;if(isHelper){return;}} +ui.helper.data("dtTargetNode",targetNode);if(prevTargetNode&&prevTargetNode!==targetNode){prevTargetNode.tree._onDragEvent("leave",prevTargetNode,sourceNode,event,ui,draggable);} +if(targetNode){if(!targetNode.tree.options.dnd.onDrop){noop();}else if(targetNode===prevTargetNode){targetNode.tree._onDragEvent("over",targetNode,sourceNode,event,ui,draggable);}else{targetNode.tree._onDragEvent("enter",targetNode,sourceNode,event,ui,draggable);}}},stop:function(event,ui){var draggable=$(this).data("draggable"),sourceNode=ui.helper.data("dtSourceNode")||null,targetNode=ui.helper.data("dtTargetNode")||null,mouseDownEvent=draggable._mouseDownEvent,eventType=event.type,dropped=(eventType=="mouseup"&&event.which==1);if(!dropped){logMsg("Drag was cancelled");} +if(targetNode){if(dropped){targetNode.tree._onDragEvent("drop",targetNode,sourceNode,event,ui,draggable);} +targetNode.tree._onDragEvent("leave",targetNode,sourceNode,event,ui,draggable);} +if(sourceNode){sourceNode.tree._onDragEvent("stop",sourceNode,null,event,ui,draggable);}}});didRegisterDnd=true;};})(jQuery); \ No newline at end of file diff --git a/Activity_3_python/LangagePython_fonctions/js/jquery.min.js b/Activity_3_python/LangagePython_fonctions/js/jquery.min.js new file mode 100644 index 0000000..ee02337 --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
      a",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="
      "+""+"
      ",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="
      t
      ",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
      ",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

      ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
      ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
      ","
      "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
      ").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement1.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement1.png new file mode 100644 index 0000000..f8e78dd Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement1.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement10.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement10.png new file mode 100644 index 0000000..48f5f51 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement10.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement11.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement11.png new file mode 100644 index 0000000..ad52fb8 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement11.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement12.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement12.png new file mode 100644 index 0000000..90c904f Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement12.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement13.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement13.png new file mode 100644 index 0000000..437b15d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement13.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement130.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement130.png new file mode 100644 index 0000000..85817a7 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement130.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement131.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement131.png new file mode 100644 index 0000000..0009ac7 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement131.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement132.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement132.png new file mode 100644 index 0000000..a27660f Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement132.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement133.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement133.png new file mode 100644 index 0000000..6e37bcd Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement133.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement134.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement134.png new file mode 100644 index 0000000..29ee951 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement134.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement135.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement135.png new file mode 100644 index 0000000..970ec69 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement135.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement14.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement14.png new file mode 100644 index 0000000..0f964ed Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement14.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement140.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement140.png new file mode 100644 index 0000000..5884eff Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement140.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement142.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement142.png new file mode 100644 index 0000000..da23a0f Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement142.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement145.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement145.png new file mode 100644 index 0000000..df5cdb8 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement145.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement146.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement146.png new file mode 100644 index 0000000..16f0396 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement146.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement147.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement147.png new file mode 100644 index 0000000..32230c7 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement147.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement15.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement15.png new file mode 100644 index 0000000..3d3f518 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement15.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement150.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement150.png new file mode 100644 index 0000000..e95c284 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement150.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement155.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement155.png new file mode 100644 index 0000000..c53dbbc Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement155.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement156.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement156.png new file mode 100644 index 0000000..bc90bd3 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement156.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement157.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement157.png new file mode 100644 index 0000000..66c044d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement157.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement158.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement158.png new file mode 100644 index 0000000..53df0f4 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement158.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement159.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement159.png new file mode 100644 index 0000000..74a36e9 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement159.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement16.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement16.png new file mode 100644 index 0000000..ed85649 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement16.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement160.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement160.png new file mode 100644 index 0000000..d5dc0c3 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement160.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement161.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement161.png new file mode 100644 index 0000000..3a5b608 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement161.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement17.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement17.png new file mode 100644 index 0000000..e3c780c Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement17.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement18.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement18.png new file mode 100644 index 0000000..9c83e23 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement18.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement19.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement19.png new file mode 100644 index 0000000..fbfc528 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement19.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement2.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement2.png new file mode 100644 index 0000000..d9008b0 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement2.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement20.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement20.png new file mode 100644 index 0000000..6680f2d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement20.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement21.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement21.png new file mode 100644 index 0000000..50c7746 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement21.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement23.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement23.png new file mode 100644 index 0000000..8e8ec65 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement23.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement29.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement29.png new file mode 100644 index 0000000..d5edefc Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement29.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement30.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement30.png new file mode 100644 index 0000000..688e16d Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement30.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement31.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement31.png new file mode 100644 index 0000000..653ec85 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement31.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement32.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement32.png new file mode 100644 index 0000000..63516b1 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement32.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement33.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement33.png new file mode 100644 index 0000000..07c1881 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement33.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement7.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement7.png new file mode 100644 index 0000000..8cf3405 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement7.png differ diff --git a/Activity_3_python/LangagePython_fonctions/lib/NouvelElement8.png b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement8.png new file mode 100644 index 0000000..cc6d319 Binary files /dev/null and b/Activity_3_python/LangagePython_fonctions/lib/NouvelElement8.png differ diff --git a/Activity_3_python/LangagePython_fonctions/toc.html b/Activity_3_python/LangagePython_fonctions/toc.html new file mode 100644 index 0000000..a82b90e --- /dev/null +++ b/Activity_3_python/LangagePython_fonctions/toc.html @@ -0,0 +1,851 @@ + + + + + + + Introduction au langage de programmation Python 3- Table of Contents + + + + + + + + + + + + + + + + + + + + +
      + + +
      + +
      + + + +
      +
        + + + +
      +
      + + + + + + + +
      + + + + + diff --git a/Activity_3_python/exercises_3/exercise_3_6.py b/Activity_3_python/exercises_3/exercise_3_6.py new file mode 100644 index 0000000..ea37a93 --- /dev/null +++ b/Activity_3_python/exercises_3/exercise_3_6.py @@ -0,0 +1,78 @@ +# Code de César +# En cryptographie, le code de César est une technique de chiffrement élémentaire qui consiste à décaler une lettre de 3 rangs vers la droite : +# Ecrire le script de ce codage. + +# Ces scripts prennent en charge les majuscules et les minuscules. + +from tkinter import * + +def code(msg:str) -> str: + """Fonction qui code un message selon le code de César""" + res = "" + alph = 'abcdefghijklmnopqrstuvwxyz' + + for i in msg: + if i == ' ' or i =="'": + res += i + + else: + p = alph.find(i.lower()) + t = p + 3 + if t > 25: + t = t - 26 + if i.isupper(): + res += alph[t].upper() + else: + res += alph[t] + + return res + +def decode(msg:str) -> str: + """Fonction qui décode un message selon le code de César""" + res = "" + alph = 'abcdefghijklmnopqrstuvwxyz' + + for i in msg: + if i == ' ' or i =="'": + res += i + + else: + p = alph.find(i.lower()) + t = p - 3 + if t < 0: + t = t + 26 + if i.isupper(): + res += alph[t].upper() + else: + res += alph[t] + + return res + +def update_labels(*args): + code_label.config(text=f"Votre message coder : {code(msg.get())}") + decode_label.config(text=f"Votre message decoder : {decode(msg.get())}") + +fen = Tk() +fen.title("Code de César") +fen.geometry("400x400") + +msg = StringVar() +msg.set("") + + +Label(fen, text="Votre message :").pack() +Entry(fen, textvariable=msg).pack() + +code_label = Label(fen, text="") +code_label.pack() +btn = Button(fen, text="Copier le message coder", command=lambda:fen.clipboard_append(code(msg.get()))).pack() + +decode_label = Label(fen, text="") +decode_label.pack() +btn = Button(fen, text="Copier le message decoder", command=lambda:fen.clipboard_append(decode(msg.get()))).pack() + + +update_labels() +msg.trace_add("write", lambda *args: update_labels()) + +fen.mainloop() \ No newline at end of file diff --git a/Activity_3_python/exercises_3/exercise_3_6_1.py b/Activity_3_python/exercises_3/exercise_3_6_1.py deleted file mode 100644 index e485bdc..0000000 --- a/Activity_3_python/exercises_3/exercise_3_6_1.py +++ /dev/null @@ -1,16 +0,0 @@ -msg = input("Message à coder ? ") -res = "" -alph = 'abcdefghijklmnopqrstuvwxyz' - -for i in msg: - if i == ' ' or i =="'": - res += i - - else: - p = alph.find(i) - t = p + 3 - if t > 25: - t = t - 26 - res += alph[t] - -print(res) \ No newline at end of file diff --git a/Activity_3_python/exercises_3/exercise_3_6_2.py b/Activity_3_python/exercises_3/exercise_3_6_2.py deleted file mode 100644 index c5f84a2..0000000 --- a/Activity_3_python/exercises_3/exercise_3_6_2.py +++ /dev/null @@ -1,16 +0,0 @@ -msg = input("Message à coder ? ") -res = "" -alph = 'abcdefghijklmnopqrstuvwxyz' - -for i in msg: - if i == ' ' or i =="'": - res += i - - else: - p = alph.find(i) - t = p - 3 - if t < 0: - t = 26 + t - res += alph[t] - -print(res) \ No newline at end of file diff --git a/Activity_3_python/exercises_4/exercise_4_4.py b/Activity_3_python/exercises_4/exercise_4_4.py new file mode 100644 index 0000000..f32dad7 --- /dev/null +++ b/Activity_3_python/exercises_4/exercise_4_4.py @@ -0,0 +1,19 @@ +chaine = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' + +from random import randint, choice + +def password(n:int) -> str: + r = '' + for i in range(n): + r += chaine[randint(0, len(chaine))] + return r + +print(password(10)) + +def password2(n:int) -> str: + r = '' + for i in range(n): + r += choice(chaine) + return r + +print(password2(10)) \ No newline at end of file diff --git a/Activity_3_python/exercises_4/exercise_4_5.py b/Activity_3_python/exercises_4/exercise_4_5.py new file mode 100644 index 0000000..cdb74b8 --- /dev/null +++ b/Activity_3_python/exercises_4/exercise_4_5.py @@ -0,0 +1,8 @@ +from random import choice + +ListeCarte = ['2s','2h','2d','2c','3s','3h','3d','3c','4s','4h','4d','4c','5s','5h','5d','5c', '6s','6h','6d','6c','7s','7h','7d','7c','8s','8h','8d','8c','9s','9h','9d','9c', 'Ts','Th','Td','Tc','Js','Jh','Jd','Jc','Qs','Qh','Qd','Qc','Ks','Kh','Kd','Kc','As','Ah','Ad','Ac'] + +def tiragecarte(): + return choice(ListeCarte) + +print(tiragecarte()) \ No newline at end of file diff --git a/Activity_3_python/exercises_4/exercise_4_6.py b/Activity_3_python/exercises_4/exercise_4_6.py new file mode 100644 index 0000000..dfc722d --- /dev/null +++ b/Activity_3_python/exercises_4/exercise_4_6.py @@ -0,0 +1,12 @@ +from random import choice + +ListeCarte = ['2s','2h','2d','2c','3s','3h','3d','3c','4s','4h','4d','4c','5s','5h','5d','5c', '6s','6h','6d','6c','7s','7h','7d','7c','8s','8h','8d','8c','9s','9h','9d','9c', 'Ts','Th','Td','Tc','Js','Jh','Jd','Jc','Qs','Qh','Qd','Qc','Ks','Kh','Kd','Kc','As','Ah','Ad','Ac'] + +def tiragecarte(n:int): + u = [] + for i in range(n): + u.append(choice(ListeCarte)) + return u + + +print(tiragecarte(4)) \ No newline at end of file diff --git a/Activity_3_python/exercises_4/exercise_4_7.py b/Activity_3_python/exercises_4/exercise_4_7.py new file mode 100644 index 0000000..e830c7c --- /dev/null +++ b/Activity_3_python/exercises_4/exercise_4_7.py @@ -0,0 +1,9 @@ +from random import sample + +def euromillions(): + return sample(liste,5) + sample(etoiles,2) + + +liste = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50] +etoiles = [1,2,3,4,5,6,7,8,9,10,11] +print(euromillions()) \ No newline at end of file diff --git a/Activity_3_python/exercises_4/exercise_4_8.py b/Activity_3_python/exercises_4/exercise_4_8.py new file mode 100644 index 0000000..550e5da --- /dev/null +++ b/Activity_3_python/exercises_4/exercise_4_8.py @@ -0,0 +1,34 @@ +def f(x): + return 27*x**3 -27*x**2-18*x +8 + +def dicotomi(x:int, t:list) -> int: + r = -1 + g = 0 + d = len(t) - 1 + while r == -1 and g <= d: + m = (g + d)//2 + if t[m] == x: + r = m + elif x > t[m]: + g = m + 1 + else: + d = m - 1 + return r + + +print("Recherche d'un zéro dans l'intervalle [a,b]") +a = int(input("a? ")) +b = int(input("b? ")) + 1 +p = eval(input("Précision ? ")) + +u = [] +for i in range(a, b, p): + u.append(i) +print(u) +print(dicotomi(f(0),u)) + + +m = (a - b)/2 + + +