Cours de seconde
1 - Algorithmique et programmation
En informatique, un algorithme est une succession d'instructions destinées à être lues et exécutées par une machine (ordinateur, smartphone, calculatrice graphique...).
Lorsqu'un algorithme est mis en mémoire dans la machine, en respectant son langage, on parle de programme informatique.
L'algorithmique est le fait de créer des algorithmes.
L'algorithmique n'est pas en soi une partie des mathématiques. Elle permet cependant de résoudre des problèmes mathématiques complexes sans avoir besoin des méthodes classiques.
C'est une autre façon de résoudre les problèmes. L'algorithmique sera utilisée comme méthode alternative pour résoudre des problèmes ou pour
accélérer leur résolution dans de nombreux chapitres de math du lycée.
Dans ce cours, nous allons voir des exemples de problèmes et d'algorithmes, et nous allons apprendre les bases du langage Python qui peut être compris par de nombreuses machines, notamment les smartphones.
Exemple de problème et d'algorithme
On souhaite savoir à partir de quelle valeur de n le nombre 2n est plus grand qu'un milliard.
Plusieurs méthodes permettent de résoudre ce problème.
Méthode 1
On peut faire des tests avec différentes valeurs de n jusqu'à trouver la bonne.
Inconvénient : c'est très long!
Méthode 2
On peut chercher à résoudre mathématiquement l'inéquation 2n>1000000000.
Inconvénient : il faut d'abord avoir lu et compris les cours de terminale!
Méthode 3
On peut créer un algorithme. L'algorithme suivant convient :
L'instruction 1 indique à la machine qu'elle doit allouer de la place dans sa mémoire pour stocker la valeur de la variable n.
L'instruction 2 demande à la machine d'attribuer la valeur 1 à n (du coup, quand le programme sera exécuté, on aura d'abord n=1).
L'instruction 3 demande à la machine d'exécuter, tant que 2n est plus petit que 1000000000, les instructions données jusqu'à "Fin de Tant que".
L'instruction 4 demande à la machine d'augmenter d'une unité la valeur de n.
L'instruction 5 va avec l'instruction 3 et fermer la suite d'instructions à éxécuter tant que 2n est plus petit que 1000000000.
L'instruction 6 demande à la machine d'afficher la valeur de n.
Nous verrons plus bas comment transposer cet algorithme dans le langage Python, puis nous l'exécuterons afin d'avoir la solution du problème.
Les boucles
On dit que les instructions Tant Que et Fin de Tant Que forment une boucle, car tout ce qui est situé
entre ces instructions est répété en boucle tant que ce qui est écrit après "Tant que" est vérifié.
Il existe un autre type de boucle avec les instructions Pour et Fin de Pour.
Exemple de problème
On se demande quelle est la somme des 100 premiers nombres entiers.
Il y a de nouveau 3 façons de faire pour répondre à cette question.
Méthode 1
On peut faire l'addition sur la calculatrice.
Inconvénient : c'est très long et pas très amusant!
Méthode 2
On peut chercher une astuce mathématique pour calculer rapidement cette somme.
Inconvénient : c'est possible, mais il faut auparavant avoir lu et compris les cours de première!
Méthode 3
On peut utiliser un algorithme. L'algorithme ci-dessous convient.
Nous verrons plus bas comment transposer cet algorithme dans le langage Python, puis nous l'exécuterons afin d'avoir la solution du problème.
Les conditions
Il est possible de demander à une machine d'exécuter une suite d'instructions à une certaine condition seulement.
Exemple
La lecture par une machine de l'algorithme ci-dessous demandera à l'utilisateur de saisir une valeur de n, puis affichera "n est plus grand que 100" si la valeur saisie est plus grande que 100, ou "n est plus petit que 100" dans le cas contraire.
La syntaxe en Python
Voyons maintenant comment écrire un programme en Python. Tu peux faire des tests en recopiant le texte orange dans la partie supérieure du simulateur
(sans accentuer les lettres), puis en cliquant sur le triangle vert.
n=2 affecte la valeur 2 à la variable n.
print ("Bonjour") affiche Bonjour
print n affiche le contenu de la variable n
print ("s est égal à",s) affiche "s est égal à" puis le contenu de s
n=input ("Quel est votre nom?") affiche Quel est votre nom? puis enregistre la réponse sous forme de texte dans la variable n.
a=input ("Quel âge avez-vous?") affiche Quel âge avez-vous? puis enregistre la réponse sous forme de texte dans la variable a.
a=int(input ("Quel âge avez-vous?")) affiche Quel âge avez-vous?, enregistre la réponse puis la convertit en nombre entier exploitable.
print (i) affiche 1 2 3 4 5 6 7 8 9
i=0
while i<=10:
print i
i=i+2 affiche 0 2 4 6 8 10 (ne pas oublier : et les tab)
a=input ("Votre âge?")
if alt;40:
print("Vous êtes jeune!")
else:
print("Vous êtes vieux!")
affiche Vous êtes jeune! ou Vous êtes vieux!
a=10**3
print a affiche 1000.
Solution des problèmes
Vous pouvez maintenant recopier les deux programmes ci-dessous afin d'avoir la solution des deux problèmes de ce cours.
•2n plus grand qu'un millard
n=0
while 2**n<1000000000:
n=n+1
print "2 puissance n est plus grand que un milliard a partir de n=",n
• Somme des 100 premiers nombres entiers
s=0
for i in range (1,101):
s=s+i
print "la somme des 100 premiers nombres entiers fait",s
Les algorithmes
cours, exercices, questions (6)
Sponsorisé
• Cours de maths. Trouvez un professeur en ligne ou près de chez vous en Belgique avec Superprof.