Algorithmes, programmes et ordinateurs

publicité
Algorithmes,
programmes et
ordinateurs
1
Gratin dauphinois

Ingrédients (pour 5 personnes) :
1 kg de pommes de terre belle de Fontenay
 1 litre de crème liquide
 2 gousses d'ail
 sel, poivre
Préparation :
 Éplucher et couper les pommes de terres en rondelles. Presser l'ail.



Disposer dans un plat à gratin en commençant par napper le fond de
crème. Alterner une couche de pommes de terres, crème, ail, sel,
poivre, jusqu'à épuisement des ingrédients. Terminer en nappant de
crème, sel, poivre.

Mettre à four moyen (thermostat 4) pendant au moins une heure.
2
Algorithme « Gratin dauphinois »

Problème: Préparer un gratin dauphinois

Données :
1 kg de pommes de terre belle de Fontenay
 1 litre de crème liquide
 2 gousses d'ail
 sel + poivre
Algorithme :
 Éplucher et couper les pommes de terres en rondelles. Presser l'ail.



Disposer dans un plat à gratin en commençant par napper le fond de
crème. Alterner une couche de pommes de terres, crème, ail, sel,
poivre, jusqu'à épuisement des ingrédients. Terminer en nappant de
crème, sel, poivre.

Mettre à four moyen (thermostat 4) pendant au moins une heure.
3
Algorithmes


Al-khowarizmi : mathématicien et astronome arabe du IX
siècle qui a rédigé des textes sur les nombres et les équations
Algorithme : séquence d'instructions organisés décrivant le
processus a suivre pour résoudre un problème
Début
Calculs
Processus
Décision
Affichage
Fin
4
Étapes

DEFINIR LE PROBLEME



Le problème a besoin d'une définition claire et précise
ANALYSE DU PROBLEME. DEFINIR:

Les données à l'entrée

L'information à produire à la sortie

Les méthodes et formules nécessaires pour traiter les données
CREATION DE L'ALGORITHME

Établir le point de départ

Bien défini, général et non ambigu

Fini en taille et en temps d'exécution

Conception de l'algorithme

Test en papier : simuler les instructions en papier afin de vérifier son
comportement et corriger les erreurs (BOGUES) 5
ENTREES
Information
Données
SORTIE
Algorithme
6
Une tâche simple...

Exemple
Demander à une personne son âge.
En fonction de l'âge, afficher un message qui indiquera si elle est
encore mineure ou pas...
C'est simple !
7
Exemple d'algorithme simple...

Demandeur d'âge
DEBUT
âge : valeur entière
AFFICHER « Quelle est ton âge ? »
LIRE âge
SI âge ≥ 18 ALORS
AFFICHER “Tu est déjà grand ! ”
FINSI
AFFICHER “fin de l'algorithme”
FIN
8
Un problème de maths

Calculer les racines d'une équation de 2ème
degrée:
ax2 + bx + c = 0

Peut-on toujours les calculer ? Est-ce qu'il y a
des cas exceptionnels ?
9
Petit rappel de maths

Cours de maths pour calculer les racines de
ax2 + bx + c = 0 :

Si a est égale à 0... pas de chance !

Sinon calculer le discriminant : b2 – 4 a c

Les racines x sont

x1,2 = ( -b ± √discriminant ) / 2a
10
Algorithme

Problème : calculer les racines de ax2 + bx + c = 0

Données :

Coefficients a, b et c : valeurs numériques

Algorithme :

DEBUT


SI a est égale à 0... on termine

SINON calculer le discriminant : b2 – 4 a c

Calculer les racines: x1,2 = ( -b ± √discriminant ) / 2a

AFFICHER les racines
FIN
11
Algorithmes, programmes et
ordinateurs



Algorithme : recette de cuisine pour résoudre
un problème
Programme : réalisation d'un algorithme
dans un langage de programmation
Langage de programmation : permet de
communiquer avec un ordinateur pour lui faire
exécuter des programmes
12
Algorithmes, programmes et
ordinateurs

Communication facile avec une machine ?
« Je veux que tu calcules les
racines des équations
de 2ème dégrée... »
10110100111010
10011101010011
10101101010011
10101001011101
01101010011101
01101010... ?
13
Brève histoire de la programmation
des ordinateurs
ENIAC 1946 : 19 000 tubes
14
“Programmation” de l'ENIAC
15
Deux opératrices en train de câbler un "programme" sur l'ENIAC
15
Programme de l'ENIAC
Programme cablé !
16
Bugs dans MARK1 (1945)
Programme cablé !
17
18
Programmation par logiciel
10110100111010
11110110100011
1010001
1948 Programmation en binaire
1950 Assembleur
add
cmp
jmp
set
bx, 4
[adr], 3
address
dx, 5
1957 : FORTRAN 1er langage
de programmation
1968 : langage PASCAL
// Addition dans un registre
// Comparaison avec un registre
// Saut à une adresse
// Addition dans un registre
// Comparaison avec une variable
// Saut à une adresse
// Assignation dans un registre
a=a+4
// Addition dans une variable
IF(a.lt.3)
// Comparaison avec une variable
THEN b=5
ELSE GOTO address // Saut à une adresse
a:=a+4;
// Addition
if(a<3) then begin b:=5 end;
1971-1973 : langage C
1986 : Langage PERL
a=+4
if(a<3){ b=5 }
$a=+4;
$b=5 if $a<3;
// Decision
// Addition
// Decision
// Addition 19
// Decision
Langage compilé et intérpreté
Compilateur FORTRAN
Programme source
REAL A,B,C, X1, X2, DISC
READ (5,*) A,B,C
IF (A.EQ.0.0) STOP
DISC = B*B - 4.0*A*C
X1 = (-B + SQRT (DISC))/ (2.0*A)
X2 = (-B - SQRT (DISC))/ (2.0*A)
WRITE (6,*) X1, X2
END
Programme objet
(binaire)
Execution !
1010010101010
1001010101010
0001010001000
1100000000001
1010101001010
1001001000101
1001010010010
1010010000000
0000000000101
1000010100101
Racines de
l'équation
de 2ème degrée
20
Langage compilé et intérpreté
Interprète PERL
Programme source
Une ligne objet à la fois, puis execution
$a = <STDIN>;
$b = <STDIN>;
$c = <STDIN>;
1010010101010
exit if ($a == 0) ;
$disc = $b*$b - 4*$a*$c ;
$x1 = (-$b + sqrt($disc))/(2*$a) ;
$x2 = (-$b - sqrt($disc))/(2*$a) ;
print $x1, $x2 ;
21
Racines de
l'équation
de 2ème degrée
Langage compilé et intérpreté


Caractéristiques des compilateurs

Exécution plus rapide

Les erreurs sont listés à la fin de la compilation

La programmation n'est pas interactive
Caractéristiques des interprètes

Exécution moins rapide

Les erreurs sont reperées immediatement

Programmation interactive
22
Origines de Perl
Assembleur
Fortran
Cobol
Algol
Bcpl
B
Pascal
31/08/05
ACLN Ete 2004
RUBY
23
Téléchargement