Algorithmique Algorithmique Pascal Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 09/10/2003 Dernière modification: 09/10/2003 Introduction • Ce cours est destiné à faciliter le passage de l’algorithme à un langage de programmation • L’algorithmique facilite ce passage car la logique est la même. • Il ne reste qu’à traduire dans le langage voulu les instructions algorithmiques Introduction • Nous allons nous intéresser dans un premier temps au langage Pascal – Facilité de traduction depuis l’algorithme en français – Rigueur de programmation: les erreurs de langage sont peu pardonnées – Rigueur de programmation: les erreurs d’algorithmes se détectent vite … Traduction en Pascal • Déclarations de variables: – Le bloc de déclaration en début de programme se note: Var i : integer; a : boolean; r : real; s : string[30]; { déclaration de i de type entier } { déclaration de a de type booléen } { déclaration de r de type réel } { déclaration de s de type chaîne lng 30 } Traduction en Pascal • Utilisation de variables: – Affectation: Begin i := 3; s := ‘’Hello world !’’; End. { affecte 3 à i } { affecte « hello world ! » à s } - Lecture et affichage: Begin readln(i); writeln(‘valeur de i: ‘, i); readln; End. { attend la saisie de i au clavier } { écrit : « valeur de i: 3 » } { évite que la fenêtre DOS ne se ferme } Traduction en Pascal • Utilisation de Delphi: – Ouvrir Démarrer/Programmes/Développement/Pascal Objet/Borland Delphi 7/Delphi 7 – Enregistrer Delphi pour votre compte utilisateur (voir avec le prof) – Fichier / Nouveau / Autre … – Choisir « Application console » Traduction en Pascal • Utilisation de Delphi: Program Project1; {$APPTYPE CONSOLE} Uses SysUtils; begin { TODO –oUser –cConsole Main: placez le code ici } end. Traduction en Pascal • Utilisation de Delphi: Program Project1; {$APPTYPE CONSOLE} Uses SysUtils; Var i : integer; begin write(‘Entrez i: ‘); readln(i); writeln(‘Valeur de i: ‘, i); readln; end. Traduction en Pascal • Traduction du si—alors--sinon: … if i = 0 then writeln(‘i est nul’) else writeln(‘i est non nul’); writeln(‘blahblah’); … Traduction en Pascal • Traduction du si—alors--sinon: if i = 0 then begin writeln(‘i est nul’); writeln(‘lskdjldkj’); end else begin writeln(‘i est non nul’); writeln(‘blahblah’); end; … Traduction en Pascal • Utilisation des boucles: Boucle Pour: … for i:=0 to 4 do begin writeln(‘entrez la valeur …’); readln(tmp); end; writeln(‘blahblah’); … Traduction en Pascal • Utilisation des boucles: Boucle Tant que: … while (i<=j) and (not premier) do begin writeln(‘entrez la valeur …’); readln(i); end; writeln(‘blahblah’); … Traduction en Pascal • TP Machine (Pascal) – Faire un programme qui demande à l’utilisateur d’entrer une phrase, puis écrire cette phrase … – Faire un programme qui calcule la factorielle d’un nombre n saisi au clavier par l’utilisateur (traduction de l’algorithme fait en exercice en cours) – Faire les traductions en Pascal des algos portant sur les nombres premiers (exercices vus en cours)