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