Les algorithmes de programmation

publicité
INTRODUCTION
à
LA PROGRAMMATION
Cours de Nicole BETHOUX
2009-2010
Pour le prochain TD de Maths
Apporter Une calculatrice
scientifique et du papier quadrillé
Les cours et TD seront sur le
Serveur (ENT) de l’Univesité.
Qu’est ce que l’informatique ?
Une DISCIPLINE SCIENTIFIQUE
Elle utilise :
-des Mathématiques
-de l’électronique
-des Langages de programmation
Vous pénétrez dans le monde
du numérique !
Codage et mémorisation
« Mémoriser des données variées avec un amas de
métal parcouru d’électricité »
Et pourtant une révolution dans l’histoire de
l’humanité
A quoi sert l’informatique ?
• Domaine de l’information
• Domaine économique
• Domaine scientifique simulations
numériques.
• Jeux électroniques, MP3, caisses
enregistreuses…. Robotique….
I- Qu’est ce qu’un ordinateur ?
-une unité centrale
-une mémoire centrale
-des périphériques
• QUE FAIT UN ORDINATEUR ?
• Données --ORDINATEUR--Information
Entrée
Traitement
Sortie
L’unité centrale
cerveau de l’ordinateur.
Comporte :
Une unité de commande (mémoire très rapide
qui stocke les données et résultats
temporaires = ROM)
Une unité arithmétique et logique qui exécute
les opérations de la mémoire centrale
Les microprocesseurs
• Exécute les opérations dans l’unité
arithmétique :
• CISC conception assez ancienne : Pentium
(Intel),Xeon 64bits, Athlon (AMD)
• RISC plus récents : Power PC
(IBM),UltraSparc(Sun Microsystem)
• EPIC microprocesseurs parallèles (Itanium)
Les microprocesseurs
Synchronisation des opérations par
une horloge interne
Performance d’un microprocesseur:
Nombre d’instruction qu’il peut traiter
en une seconde ex : 80 MiPs = 80
millions par seconde.
Mémoire centrale
Partie de l’ordinateur où mémoire
et données sont rangées.
Ex :
 la RAM (Random Acces
Memory)
L’ EPROM
Les unités d’entrée-sortie
Le BUS permet de faire passer les
données du processeur à la mémoire
centrale
Les interfaces d’entrée sortie:
permettent le transfert des données
entre l’unité centrale et les
périphériques :
Interfaces USB(Universal Serial Bus)
Interfaces SCSI (à haut débit)
SYSTEME d’EXPLOITATION :
• Ce n’est qu’un programme spécialisé qui
assure le bon fonctionnement de
l’ordinateur et gère les divers
périphériques :
• ex MS-DOS ,WINDOWS ( dernier Windows VISTA)
ou MACINTOSH :
•
UNIX, LINUX
Comment fonctionne
l’ordinateur ?
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
Un microprocesseur n’est qu’une suite de
circuits « on –off »
ou 0, 1
1 BIT contient 0 ou 1
8 bits peuvent représenter 28 = 256 valeurs
: 1 OCTET
L’octet
• On a dessiné une série de 8 bits
( ou bytes en anglais) qui forme un octet
• Chaque opération va être définie par un octet
• Par exemple : 10001010
• Pour effectuer les opérations
• le microprocesseur travaille donc
• en langage binaire ou base 2
• Langage base 10
•
•
•
•
1
2= 0*2 0 + 1*21
3 = 2+1 = 1*2 0 +1*2 1
4 = 1*22 + 0*2 0 +0*2 1
Langage base 2
1
10
11
100
• en base 2 on additionne 1001
équivalent base
10 1*2 0 +0*2 1 + 0*22+1*23 = 9
+ 1011
1*2 0 +1*2
1 + 0*22+1*23 = 11
• 10100 = 0*2 0 +0*2 1 + 1*22+0*23 +1*24 = 20
•
• On a utilisé 5 bits pour écrire 20
CODE ASCII
Caractère : B
Code ASCII: 01000010
Equivalent décimal : 66
Caractère « espace »
Code ASII: 00100000
Equivalent décimal 32
C’est l’unité logique qui lève
l’ambiguité
Mémoire et performances
Disquette : 1,44 Mb (mega : 10 6
CD : 700 Mb
Clef USB de 521 Mb à 10 Gb
1giga = 10 9 DVD : 5 Gb
Disque dur PC 60 Gb
Terra = 10 11 = mille millards
FLOPS = nb d’opérations par
seconde
Petaflops = 1 million de milliards
d’opérations/s
II- UN PEU d’HISTOIRE
• Le premier ordinateur :
• Binaire et mécanique en 1938 ( 22 bits)
• Le premier ordinateur électronique 1942
(transistors)
• Micro-processeurs = « circuits intégrés
« (puces)
• 1975 Bill Gates crée la société MICROSOFT
• Super calculateurs CRAY
• Microprocesseurs (INTEL) et petits
ordinateurs 1985 (64 ko de RAM)
D’opération par seconde
De la nanno-électronique (10-9m)
à la physique atomique
ou à la bionique
De la caisse du magasin à
l’intelligence artificielle
III- Le programme informatique
1- Etablir une suite d’instruction
logique : l’organigramme
2- Ecrire ces instructions dans un
langage compréhensible par le
compilateur
3- compiler : on passe de l’anglais
à l’ascii puis au binaire
4- Exécuter
• Langages de programmation
Assembleur
• BASIC puis le FORTRAN
C++, PASCAL
• VISUAL BASIC
JAVA, HTML….etc….
COMPILATEURS : pour traduire en
langage machine (code ASCII à code
binaire)
Les ordinateurs ne sont que des outils
Mythe 1 : les ordinateurs font des erreurs
Mythe 2: Seuls des mathématiciens
peuvent programmer les ordinateurs
Mythe 3 : La programmation est difficile
Les algorithmes de
programmation
•Un algorithme est une description explicite
d’un traitement, d’une action d’un calcul …
• Ce sont les mêmes quelque soit le langage
On retrouve aussi le même vocabulaire
• Quand on a acquis la logique informatique on
passe facilement d’un langage à l’autre.
Concevoir des algorithmes
• Exemple : « les lasagnes »
1- Préparer les feuilles de lasagne
2- Préparer la sauce bolognaise
3- Préparer la béchamel
4- Répéter
-mettre une couche de béchamel dans un plat
-mettre une couche de sauce
-recouvrir d’une feuille de lasagne;
Tant qu’il reste des ingrédients;
5- Faire cuire au four 30 minutes;
Les algorithmes de programmation
•
•
•
•
« Les types de données »
Variables somme, var1, var2, i, j
Constantes pi, N
TABLEAUX A(5000), notes(52)
Ne confondez pas variables et tableaux
N’utilisez pas le même nom ou la même lettre pour
2 déclarations différentes
Les catégories de variables et tableaux
1. Entier
2. Réels
3. Chaînes de caractères
Codage des entiers et
réels
Codage des entiers : (attention à
l’ambiguité du vocabulaire)
16 bits : 216 valeurs de -32768 à 32767
32 bits: 232 valeurs
64 bits : 264 valeurs
Codage des nombres approchés (virgule
flottante)
32 bits= simple précision ( float)
64 bits = double précision (double)
Conseil
Réservez les entiers pour indiquer
le nombre d’opération que vous
avez à effectuer
Définissez vos variables en
« réels « ou « chaîne de
caractères »
Ex a=3
b=2
C= a/b
c n’est pas un entier ! C entier=1
C réel =1,5
Les algorithmes de programmation
キ
Compteurs et accumulateurs
–Somme = Somme + 2
–Write (*,*) somme
!!!!!!
• Var1=65
• Var2=97
• Var1=var2
• Var2=var1
• Valeurs de var1 et Var2 ?
IV-Les algorithmes de programmation
 キ
Les Boucles
» Somme=0
» do I = 1, 5
for I=1 to 5
» Somme = Somme +2
» A (i) = Somme
» write (*,*) Somme
•
enddo
next i
• write (*,*) Somme : rep
• Quelles sont les valeurs du
• Tableau A (combien d’éléments)
?
Les boucles
« conditionnelles »
• « Tant qu’il reste des feuilles
de lasagne faire »
• Do ….. While
• On ajoute une structure de
contrôle
Somme=0
Do while somme<50
Somme=somme+1
end
Boucles imbriquées
Permet d’établir des sous catégories
Exemple : le nombre de filières à l’Université
Le nombre d’étudiant dans chaque filière
somme =0
»Nb de filières=N
»do I= 1, N
»do j= 1, nb(i)
» somme= somme +inscrit(i,j)
»enddo
»enddo
Les algorithmes de programmation
Les tests
Plus grand que, plus petit, égal
,inégal
If x= 5 ou x>5 ou x<5 then
Instructions
Endif
Les algorithmes de programmation
• Les fonctions « pre-programmées »
-Les fonctions trigonométriques : définies en radians
SIN(x), COS(x), Tan(x), ASIN(x)
- les fonctions LOG, EXP ….
Les algorithmes de
programmation
L’utilisation de fichiers de données
« Communication vers l’extérieur «
Ces fichiers doivent être écrits avant en ascii ou binaire
Pas de virgule mais des points
Pas de caractères cachés.
Proscrire « Word » ou « Excel »
Utilisez « TEXTEDIT »
Mémorisation des
résultats
Création de fichiers de résultats
en ASCII ou binaire ( privilégier
l’ascii !)
Les fichiers
extérieurs
• Les entrées- sorties
• EX :
•
•
•
•
•
•
Implicit none
character*4 fich1,fich2
real xlat(30) , xlon (30)
integer i
fich1='toto'
fich2='tata'
• OPEN (7,FILE=fich1,STATUS='OLD')
OPEN(8,FILE=fich2,STATUS='UNKNOWN')
ET les graphiques ??
On utilisera EXCEL
pour cette année
INTRODUCTION à la
PROGRAMMATION
• Travail sous Windows 2000 au 2° étage du
« Petit Valrose » ( MIPS)
• Apporter à chaque TP une clef USB et des
copies
• Contrôle continu présence obligatoire (appel)
et rendu du travail
• 2 Partiels et Examen en décembre
• Corrigé du TP fourni la séance suivante
La pratique
1- Utilisateur : etudiant
mot de passe :
2- Le logiciel : Lancement de
« Force2 » :
Cliquez sur le menu démarrer
programme Fortran
3- Espace de travail :
E:/ Etudiant/ST1 ou à défaut
« bureau »
Notre premier programme
Ecrire l’algorithme du calcul
On utilise un fichier de la METEO
Il contient des données pour 10 villes
-Il donne d’abord le nom de la ville
-Puis les valeurs mensuelles des
précipitations, de l’insolation, et la
température moyenne
Le problème à traiter:
1- Calculer pour chaque ville les
valeurs moyennes annuelles de
pluie, insolation et température
2- Calculer la moyenne globale
pour toute la France
3- Quelle est la ville la plus
chaude? La plus pluvieuse ? La
plus ensoleillée ?
Les déclarations
1- Les variables:
Entiers : N( 10), M (12), I,J ( pour faire les
boucles)
Les relatifs (somme, max, moyenne)
Les chaînes de caractères (nomfichier)
2- Les tableaux
Les relatifs: Pluie(10,12),temp(10,12),sol(10,12)
les caractères ville(10),
Attention à la logique :
Il ne faut pas confondre les
tableaux et le variables !
Le tableau= un tiroir
La variable=un objet rangé dans
le tiroir
Exemple:
le tableau des moyennes
mensuelles : contient 12
variables
pour une ville
dans notre exemple contient
10*12 variables
L’algorithme
Faire de I=1, 10
• Lire nom(i)
•
faire de J=1,12
•
lire pluie (i,j), sol(i,j), temp(i,j)
•
enddo
• Enddo
Les calculs
• Faire pour I = 1 à 10
• Sommepluie=0
• Sommetemp=0
•
Sommesol=0
• Faire pour j= 1,12
• Sommepluie = sommepluie+pluie(i,j)
•
Enddo
•
moyennepluie(i) = sommepluie/12
• ENDDO
Question 2
Sommepluie=0 ( la variable est réutilisée !)
Sommetemp=0 etc …
Faire de I = 1 à 10
Sommepluie= moypluie(i)+Sommepluie
Etc …
End
Moyglob1=sommepluie/12
Question 3
• maxP = 0 etc ….
• Faire de I= 1 à 10
•
IF moyennepluie(i) > maxP
•
THEN :
•
maxP= moyennepluie(i)
•
ENDIF
• ENDDO
Téléchargement