Algorithmique

Introduction

Le but de cette rubrique, et de façon générale en technologie au collège, n'est pas d'apprendre à maîtriser  un ou des langages, mais plutôt de comprendre, de concevoir et mettre en œuvre un algorithme.

 

Qu'est ce qu'un algorithme ?

L'algorithme est une suite d'instructions qui aboutit à un résultat. Il est préparatoire à l'écriture du programme. Il en est la logique, le squelette. Il peut avoir l'apparence d'un langage proche du langage de programmation ou une forme graphique. Il détermine les étapes et actions à coder en tenant compte des conditions indispensables à leur exécution. 

 

 


La représentation graphique de l'algorithme: L'algorigramme ou logigramme

Partons d'un exemple concret pour comprendre l'écriture d'un algorithme sous forme graphique.

 

Dans cet exemple, il s'agit de programmer un store afin qu'il ne s'ouvre que quand la présence de soleil est détecté. Evidemment il s'agit d'une simplification  du système.

Les ordres ou actions demandés le sont par l'intermédiaire des rectangles:

 


Le rectangle permet d'écrire l'action à accomplir.

 

Dans un système automatisé on pilote les actionneurs.

Le losange permet d'interroger le système afin d'obtenir une information et en fonction de la réponse, pouvoir poursuivre l'algorithme.

 

On questionne le système:

  • ses capteurs pour un système automatisé
  • ou on pose une condition (s'il se passe ça, oui ou non).

Le pseudo-code

On peut écrire l'algorithme selon un langage simplifié, qui pourrait se situer entre notre langue et le langage informatique. 

Pour l'exemple du store, voici ce que cela pourrait donner:

  1. Début
  2. Fermer le store
  3. SI soleil
  4. ALORS ouvrir store
  5. SINON fermer store
  6. Répéter indéfiniment

Souvent nous trouverons ce pseudo-code en anglais afin de se rapprocher de langages comme le Javascript ou Python.


La notion de variable informatique

C’est une « boîte » qui contient une information. Cette information varie ou reste constante le temps du programme.

On peut faire des opérations mathématiques si cette information est une valeur, on peut afficher cette information et faire appel à elle n’importe quand dans le programme.

Techniquement parlant, cette variable est une valeur stockée dans la mémoire de l’objet programmé.

 

 

Dans Scratch, la variable est déclarée (créée) et le logiciel met à disposition automatiquement les instructions qui peuvent être utilisées.:

  • Le contenu de la boîte appelée ici ma variable
  • Mettre une valeur dans cette variable
  • Ajouter une valeur à cette variable
  • Afficher le contenu de la variable (de la boîte)
  • Cacher le contenu
Télécharger
Exercices et définitions à partir de la 5e
Scratch-variables.pdf
Document Adobe Acrobat 197.6 KB


De l'algorithme au programme avec Scratch


Télécharger
Algorithmique, ce que je dois retenir
synthèse algo progr variable.pdf
Document Adobe Acrobat 836.8 KB

Les langages informatiques les plus utilisés

Python

Il s’agit d’un langage de programmation interprété, qui ne nécessite donc pas d’être compilé pour fonctionner. Un programme  » interpréteur  » permet d’exécuter le code Python sur n’importe quel ordinateur. Ceci permet de voir rapidement les résultats d’un changement dans le code. En revanche, ceci rend ce langage plus lent qu’un langage compilé comme le C.

En tant que langage de programmation de haut niveau, Python permet aux programmeurs de se focaliser sur ce qu’ils font plutôt que sur la façon dont ils le font. Ainsi, écrire des programmes prend moins de temps que dans un autre langage. Il s’agit d’un langage idéal pour les débutants.


exemple: A quoi ça ressemble ?

 

ageDeEricPraline      = 50
ageDeHenryWensleydale = 20

# Test
if 0 > ageDeEricPraline > 150 or ageDeEricPraline > ageDeHenryWensleydale:
    print("l'age de Eric Praline est incorrect")
    
#echange : swap
ageDeHenryWensleydale, ageDeEricPraline = ageDeEricPraline,ageDeHenryWensleydale
print("age de Henry Wensleydale = %d , age de Eric Praline = %d" %(ageDeHenryWensleydale,ageDeEricPraline))

 

 

 

 

Langage C

Le langage C est un langage de programmation qui s’écrit dans un fichier source. Ensuite ce fichier doit être traduit à l’aide d’un compilateur en langage machine.

On parle alors de langage compilé qui s’oppose aux langages interprétés, comme Python par exemple.

Il est classé dans les langages de bas niveau : c’est-à-dire proche de la machine, donc plus facile à interpréter pour elle.

Un langage haut niveau, pour faire la comparaison, correspond à un langage qui se rapproche du langage parlé.


exemple: A quoi ça ressemble ?

 

void echange (int, int ); void echange (int a, int b)

{ int t; printf("debut fonction :\n a = %d \t b = %d\n",a,b);

t = a;

a = b;

b = t;

printf("fin fonction :\n a = %d \t b = %d\n",a,b); return; }

JavaScript

JavaScript (souvent abrégé en « JS ») est un langage de script léger, orienté objet, principalement connu comme le langage de script des pages web. Mais il est aussi utilisé dans de nombreux environnements extérieurs aux navigateurs web tels que Node.jsApache CouchDB voire Adobe Acrobat. Le code JavaScript est interprété ou compilé à la volée (JIT).

C'est un langage à objets utilisant le concept de prototype, disposant d'un typage faible et dynamique qui permet de programmer suivant plusieurs paradigmes de programmation : fonctionnelle, impérative et orientée objet.


exemple: A quoi ça ressemble ?

 

let randomNumber = Math.floor(Math.random() * 100) + 1;

let guesses = document.querySelector('.guesses');
let lastResult = document.querySelector('.lastResult');
let lowOrHi = document.querySelector('.lowOrHi');

let guessSubmit = document.querySelector('.guessSubmit');
let guessField = document.querySelector('.guessField');

let guessCount = 1;
let resetButton;


Quelques métiers de l'informatique