Activité 1 - Les bases

Programmer un ordinateur, c'est quoi ?

Programmer, c'est créer des programmes (suite d'ordres donnés à l'ordinateur) ! Un ordinateur sans programme ne sait rien faire. Il existe différents langages qui permettent de programmer un ordinateur, mais le seul directement utilisable par le processeur est le langage machine (suite de 1 et de 0), aussi appelé binaire. Aujourd'hui (presque) plus personne ne programme en binaire (trop compliqué).

Les informaticiens utilisent des instructions (mots souvent en anglais) en lieu et place de la suite de 0 et de 1. Ces instructions, une fois écrites par le programmeur, sont « traduites » en langage machine. Un programme spécialisé assure cette traduction. Ce système de traduction s'appellera interpréteur ou bien compilateur, suivant la méthode utilisée pour effectuer la traduction.

Il existe 2 grandes familles de langages de programmation :

  • Les langages de bas niveau sont très complexes à utiliser, car très éloignés du langage naturel, on dit que ce sont des langages « proches de la machine », en contrepartie ils permettent de faire des programmes très rapides à l'exécution. L'assembleur est le langage de bas niveau. Certains "morceaux" de programmes sont écrits en assembleur encore aujourd'hui.
  • Les langages de haut niveau sont eux plus « faciles » à utiliser, car plus proches du langage naturel (exemple : si a=3 alors b=c). Exemples de langages de haut niveau : C, C++ , java, Qbasic..

Pour commencer cette année, nous allons apprendre les bases de la programmation en utilisant un langage nommé Python (langage de haut niveau).

Voici un lien permettant de télécharger une version portable de python. title

Guido von Rossum, le créateur de Python

title

logo Python

Écrire son premier programme

Pour écrire des programmes en python nous utiliserons le logiciel IDLE. Celui-ci offre deux possibilités pour exécuter du code python :

La console, qui est un mode interactif. on saisit une commande à la suite de l'invite de commande (>>>) et en appuyant sur "Entrée" la commande est exécutée. Ce mode est très pratique pour tester des commandes ou des programmes très courts.

L'éditeur de scripts : accessible grâce au menu 'file'. Les instructions sont écrites les unes à la suite des autres (une ligne par commande) dans un fichier texte que l'on sauvegarde avec l'extention .py. On peut ensuite exécuter notre programme en appuyant tout simplement sur la touche F5.

Pour organiser votre travail, vous allez créer un dossier ICN qui contiendra un dossier python. Ce dernier contiendra plusieurs sous-dossiers activite_1, activite_2... qui contientront les scripts : script1.py pour le "à faire vous même n°1" etc...

À faire vous-même n°1

Dans la console python, tapez ce qui suit puis tapez sur entrée.

In [ ]:
print("hello world!")

Bravo, vous venez d'exécuter votre première commande python !

Familiarisons-nous maintenant avec l'éditeur de script : allez dans le menu File puis sur New File recopiez la commande précédente puis sauvegardez le en le nommant script1.py. Allez ensuite dans le menu Run sur Run Module ou plus simplement appuyez sur la touche F5 pour exécuter le script ainsi sauvegardé.

Bravo, vous venez d'écrire votre premier programme ! Notez qu'il est possible d'utiliser '...' à la place de "..." autour du texte à afficher.


Notion de variable

Définition du mot ordinateur d'après "Le Petit Larousse" :

« Machine automatique de traitement de l'information, obéissant à des programmes formés par des suites d'opérations arithmétiques et logiques. »
Qui dit "traitement de l'information", dit donc données à manipuler. Un programme "passe" donc son temps à traiter des données. Pour pouvoir traiter ces données, l'ordinateur doit les ranger dans sa mémoire (RAM - Random Access Memory). La RAM se compose de cases dans lesquelles nous allons ranger ces données (une donnée dans une case). Chaque case a une adresse (ce qui permet au processeur de savoir où sont rangées les données). Alors, qu'est-ce qu'une variable ? Eh bien, c'est une petite information (une donnée) temporaire que l'on stocke dans une case de la RAM. On dit qu'elle est "variable" car c'est une valeur qui peut changer pendant le déroulement du programme. Une variable est constituée de 2 choses :

  • Elle a une valeur : c'est la donnée qu'elle stocke (par exemple le nombre 5)
  • Elle a un nom : c'est ce qui permet de la reconnaître. Nous n'aurons pas à retenir l'adresse de mémoire, nous allons juste indiquer des noms de variables à la place.
In [ ]:
i=12

Grâce à la ligne ci-dessus, nous avons défini une variable qui porte le nom i et qui «contient» la valeur 12.

À faire vous-même n°2

Dans la console, testez le code suivant :

In [ ]:
var = 15
print(var)

Comme vous pouvez le constater, l'instruction print permet d'afficher la valeur contenue dans la variable var. J'attire votre attention sur l'absence de guillemets, vous pouvez retester cet exemple avec le code suivant :

In [ ]:
print("var")

Alors, que se passe-t-il ?



Un peu de calculs

Un ordinateur est bien évidemment capable d'effectuer des opérations mathématiques (arithmétiques).

Les signes utilisés sont classiques : +, - , * (multiplication), / (division), // (division euclidienne) ou encore % (modulo : reste d'une division euclidienne).

Il est tout à fait possible d'effectuer des opérations directement avec des nombres, mais il est aussi possible d'utiliser des variables.


À faire vous-même n°3

Complétez le programme suivant (à sauvegarder sous script3.py) pour qu'il affiche la somme des variables a et b.

In [ ]:
a=15
b=4
...............
print(resultat)

À faire vous-même n°4

Essayez d'écrire un programme script4.py qui affiche le résultat de la division du nombre $a$ par le nombre $b$. Que constatez-vous ?


Testez maintenant le code ci-dessous :

In [ ]:
a=15.0
b=4.0
resultat=a//b
print(resultat)

Pour terminer, testez ce code :

In [ ]:
a=15.0
b=4
resultat=a%b
print(resultat)


Incrémentation d'une variable

D'après vous, que fait ce programme ?

In [ ]:
a=11
print(a)
a=a+1
print(a)

Vérifier votre réponse grâce à la console.

Détaillons ce qui se passe :

  • nous créons une variable a et nous lui attribuons la valeur 11
  • nous affichons à l'écran la valeur de a (c'est à dire 11)

La suite est un peu plus complexe, mais très importante à comprendre. Il va falloir lire la ligne a=a+1 de droite à gauche, décortiquons cette ligne :

  • a+1 : nous prenons la valeur actuelle de a (c'est-à-dire 11) et nous ajoutons 1 à 11, à droite de l'égalité nous avons donc maintenant la valeur 12
  • nous attribuons la valeur qui vient d'être calculée à la variable a (donc maintenant a=12)
  • nous affichons à l'écran la nouvelle valeur de a

Ce raisonnement peut être généralisé pour éviter des erreurs parfois difficiles à corriger : dans une égalité, commencer toujours par évaluer l'expression se trouvant à droite du signe égal.

Variable et texte

Chaîne de caractères

Les variables peuvent contenir autre chose que des nombres. Elles peuvent aussi contenir des suites de caractères, que l'on appelle "chaîne de caractères".

À faire vous-même n°5

Testez dans la console le code suivant :

In [ ]:
maChaine="Bonjour le monde !"
print(maChaine)


Les autres types de variables

Les variables peuvent donc contenir des types de données différents, pour l'instant nous en avons vu deux :

  • le type "nombre entier" (integer en anglais, abréviation : int)
  • le type "chaînes de caractères" (string en anglais) Il existe d' autres types de variables :
  • le type «nombre à virgule flottante» : float
  • le type «booléen» : bool
  • etc.

En Python les variables ont un type, mais le programmeur n'est pas obligé de préciser ce type.

Il existe beaucoup de langage (C++, Java...) où l'utilisateur doit absolument définir le type d'une variable avant de pouvoir l'utiliser, faute de quoi cela entraînera une erreur.

L'instruction type vous permet de connaître le type d'une variable.

À faire vous-même n°6

Testez dans la console ce qui suit :

In [ ]:
a="Salut !"
b=567
c=5.87
d='42'
print(type(a))
print(type(b))
print(type(c))
print(type(d))


Le signe + et les chaînes de caractères

La concaténation

L'utilisation du signe + ne se limite pas à l'addition. Il est aussi utilisé pour la concaténation. D'après Wikipédia :

« Le terme concaténation (substantif féminin), du latin cum («avec») et catena(«chaîne, liaison»), désigne l'action de mettre bout à bout au moins deux chaînes. »

Comme vous avez pu le deviner en lisant la définition ci-dessus, la concaténation va concerner les chaînes de caractères.

À faire vous-même n°7

In [ ]:
a="Hello"
b=" World"
monExpression=a+b
print(monExpression)

Qu'est-ce que ce programme va permettre d'afficher à l'écran ? Validez votre réponse en l'exécutant.


À faire vous-même n°8

Soit une variable a de type string, une variable b de type int et une variable c=a+b. Dans ce cas précis, le signe + est-il le signe de la concaténation ou de l'addition ? La variable c est-elle de type string, de type int ou d'un autre type ? Éssayez de répondre à ces questions.

Donner la parole à l'utilisateur

L'instruction input

Ne trouvez-vous pas que pour l'instant cela manque un peu d'interactivité ? En effet, l'utilisateur de vos programmes est plutôt passif !

Heureusement l'instruction input va permettre aux utilisateurs d'entrer des données.

À faire vous-même n°9

Ecrivez un programme scrip9.py contenant le code suivant et testez-le :

In [ ]:
age=input("Quel est votre âge ?")
print("vous avez "+age+" ans")


À faire vous-même n°10

Écrivez un programme script10.py qui demande son prénom à l'utilisateur puis l'affiche sous la forme "bonjour, Toto" (si Toto est le prénom entré par l'utilisateur !).


À faire vous-même n°11

Écrivez un programme script11.py qui demande à l'utilisateur d'entrer 2 nombres entiers et affiche le résultat de l'addition de ces 2 nombres. Tester ce programme.

Problème : si l'utilisateur entre 25 puis 12 le résultat affiché est 2512 !

Avez-vous une idée du problème ?

Pour vous aider dans votre recherche, modifier votre programme pour qu'il affiche le type de a et le type de b.

Alors ?

Les valeurs obtenues grâce à l'instruction input sont forcément de type string. Nous avons donc ici une concaténation et non pas une addition.

La fonction int() permet de convertir une variable de type string en une variable de type int.

a=int(b) (avec b de type string et a de type int).

Modifier votre programme pour qu'il fonctionne normalement.



Il existe aussi une fonction permettant de convertir un entier en chaîne de caractères : la fonction str(). Cela peut être utile notamment pour effectuer une concaténation.

À faire vous-même n°12

Tester le programme suivant :

In [ ]:
age=12
print("Bonjour, j'ai "+str(age)+" ans.")


Cette séquence est maintenant terminée, je vous invite à poursuivre avec la seconde séquence consacrée à des notions fondamentales en programmation : les conditions et les boucles.