<jupyter_start><jupyter_text>Bases de l'algorithmique et de la programmation Section 0 : Utilisation de jupyter - PréambuleJupyter est un environnement qui intègre un interpréteur python avec des zones de texte.Ceci est une zone de texte.Il faut lire -soigneusement- ce qu'elle contient, qu'il s'agisse d'explications, de questions auxquels il faut répondre ou d'instructions à suivre.Ci-dessous se trouve une zone de saisie.C'est là que vous pouvez entrer les réponses aux questions.Cela vous semble-t-il clair ?<jupyter_code>répondez ici :
oui<jupyter_output><empty_output><jupyter_text>enfin, il y a les zones de code, qui permettent de faire du Python et de tester le fonctionnement- en cliquant sur le bouton *Exécuter*- ou au clavier sur _Ctrl + Entrée_**3. Digression sur les calculs**<jupyter_code># Ceci est une cellule de code Python
# les lignes précédées d'un # sont des commentaires

# Affectation

a = 2
b, c = 5, -9

# Somme :
d = a + b
print(d) # pour voir le résultat

b += 1
print(b)

# Différence
e = d - a
print(e)

# Produit
e = 5 * 3
print(e)

# Division
print(5/3)

# Puissance
print(5**3)

# Division euclidienne
quotient = 27 // 6
reste = 27 % 6
print(quotient, reste)<jupyter_output><empty_output><jupyter_text>Exercice 1Écrire un programme qui- demande la saisie de ceux variables (numérique ou pas)- échange le contenu des deux variables- affiche les deux variables modifiées      Exercice 21. Écrire un programme qui    - demande la saisie d'une variable numérique    - indique si elle est plus grande ou plus petit que 100 et en même temps si elle est paire ou impaire.2. Tester avec $a=135$, puis avec $a=76$.  Exercice 3Écrire le programme qui affiche la table de multiplication par 7.  Exercice 4Écrire le programme pour calculer la somme des 500 premiers nombres entiers (en partant de 1).  Exercice 5Écrire l'algorithme qui affiche la table de multiplication par 7.  Exercice 6Écrire le programme pour calculer la somme des 500 premiers nombres entiers (en partant de 1).  Exercice 7On désire afficher les carrés et les cubes de 25 premiers entiers non nuls.1. Écrire un programme avec une boucle tant que.2. Écrire un programme avec une boucle pour.  Exercice 8On désire afficher parmi les 50 premiers multiples non nuls de 13, ceux qui sont divisibles par 7.1. Écrire un programme avec une boucle tant que.2. Écrire un programme avec une boucle pour.  Exercice 9Écrire l'algorithme de la fonction qui nous affiche la table de multiplication d'un entier $n$.<jupyter_code>def table_multiplication(n):
    ''' Fonction qui affiche la table de multiplication par n de l'école primaire
        n est un entier (compris en 0 et 10)
        Sortie vide (la fonction réalise un affichage ---> on parle de procédure dans d'autres langages)
    '''
    # À compléter
    return None

# Instruction pour tester notre fonction
table_multiplication(5)<jupyter_output><empty_output><jupyter_text>Exercice 10.$n$ étant un entier naturel, on définit $n!$ (factoriel de $n$) comme étant le produit de tous les entiers entre 1 et $n$.Par convention $0!=1$.1. Écrire le programme de calcul de $n!$ dans une fonction.2. Vérifier le bon fonctionnement de cette fonction avec les tests suivants :            assert factoriel(0)==1, "erreur pour le cas particulier"        assert factoriel(1)==1, "erreur à l'initialisation de la fonction"        assert factoriel(4)==24, "erreur dans les calculs"<jupyter_code>def factoriel(n):
    ''' Fonction qui calcule n!
        n est un entier positif
        Renvoie le résultat du calcul
    '''
    # À compléter
    return 

# Instructions de tests
assert factoriel(0)==1, "erreur pour le cas particulier"
assert factoriel(1)==1, "erreur à l'initialisation de la fonction"
assert factoriel(4)==24, "erreur dans les calculs"<jupyter_output><empty_output><jupyter_text>Exercice 11En partant de l'entier naturel $p$, on définit une suite de nombres entiers de la manière suivante :* $u_0 = p$* si $u_n$ est pair, alors $u_{n+1}=u_n/2$* sinon, $u_{n+1}=3\times u_n +1$où $u_n$ désigne le $n^{ème}$ nombre calculé de la suite.La fonction doit renvoyer le premier $n$ tel que $u_n=1$.1. Écrire le programme de calcul de syracuse(n).2. Vérifier le bon fonctionnement de cette fonction avec les tests suivants :        assert syracuse(1)==0, "erreur pour le cas particulier"        assert syracuse(16)==4, "erreur dans les calculs avec des nombres pairs"        assert syracuse(12)==9, "erreur dans les calculs avec des nombres impairs"<jupyter_code>def syracuse(p):
    ''' Fonction qui détermine au bout de combien d'étapes de calcul on arrive à 1
        p est un entier positif
        Renvoie le nombre d'étapes
    '''
    # À compléter
    return 

# Instructions de tests
assert syracuse(1)==0, "erreur pour le cas particulier"
assert syracuse(16)==4, "erreur dans les calculs avec des nombres pairs"
assert syracuse(12)==9, "erreur dans les calculs avec des nombres impairs"<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.07653575025176233, 'fraction_numerical': 0.022356495468277945, 'mean_word_length': 4.249471458773784, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 22, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '329051', 'license': 'CC0-1.0', 'n_tokens_mistral': 1728, 'n_tokens_neox': 1680, 'n_words': 666, 'path': 'ProgrammationPython/Bases_Programmation.ipynb', 'repo_name': 'herve-vasseur/premiereNSI_python', 'size': '4965'}