Introduction à l algorithmique L1 MPCIE

Dimension: px
Commencer à balayer dès la page:

Download "Introduction à l algorithmique L1 MPCIE"

Transcription

1 Introduction à l algorithmique L1 MPCIE

2 Organisation du cours Cours / TD : 35h - 2 Cours d'1h20 par semaine TP : 20h - 9 TP de 2h + 1 contrôle TP, à partir de la deuxième semaine (bâtiment G, 1er étage) - Apporter son cours en TP - Se munir d'une clef USB pour sauvegarder votre travail à la fin de chaque TP - Travail sur machine en dehors des TP conseillé Évaluation - 2 contrôles continus communs ("CCC") : CCC1 vers la Toussaint, CCC2 fin décembre - 1 contrôle continu TP ("CCTP") en décembre - 1 note de TD ("CCTD") calculée à partir d'au moins deux contrôles continus TD - Coefficients : CCC1 x2 ; CCC2 x2 ; CCTP x1 ; CCTD x1

3 Études en informatique à l'université d'angers

4 Discipline informatique Théorique analyse numérique, théorie de l'information, théorie des langages, automates, Scientifique résolution de problèmes complexes, bio-informatique, cryptologie, intelligence artificielle, Méthodologique analyse, langages, génie logiciel, Technologique composants, mémoires, périphériques, Systèmes architecture, réseaux, systèmes d'exploitation, Applications informatique de gestion, bureautique, conception assistée par ordinateur, automatique, robotique, informatique médicale, GPS, internet, jeux vidéo,

5 Discipline informatique ENIAC, tonnes, 160 m² au sol, 5000 additions par seconde

6 Algorithmique et programmation Objectif du cours Apprentissage de l'algorithmique des et méthodes de programmation Qu'est-ce qu'un algorithme - suite finie d'opérations élémentaires permettant de résoudre un problème donné - vient du mathématicien et astronome perse Muhammad ibn al-khawarizmi, le père de l'algèbre, qui formalisa au IXe siècle la notion d'algorithme - l'algorithme le plus célèbre est l'algorithme d'euclide (vers 300 avant J.-C.) permettant de calculer le PGCD de deux nombres dont on ne connait pas la factorisation Étudions : - le déroulement de l'algorithme d'euclide avec 24 et 9 - l'écriture de l'algorithme d'euclide en pseudo-code - un algorithme déterminant si un nombre est premier

7 Algorithmique et programmation Étapes de conception d'un programme informatique 1 identifier le problème : quelle(s) donnée(s), quel(s) résultat(s)? 2 organiser les actions : écrire l'algorithme (pseudo-code, organigramme) - réfléchir aux informations à manipuler - analyser le problème et le décomposer éventuellement en sous-problèmes - rendre l'algorithme compréhensible et efficace - penser à l'utilisateur 3 Traduire cet algorithme en langage de programmation 4 Compiler le programme pour qu'il puisse être exécutable Un langage de programmation permet à un humain d'écrire un code pouvant être analysé par une machine puis transformé en un programme informatique. Un programme informatique est une suite d'opérations prédéterminées pouvant être exécutées par une machine.

8 PASCAL Langage informatique utilisé en L1 : PASCAL C, C++, JAVA sont probablement les principaux langages de programmation à connaitre pour un informaticien et à apprendre lors d'un cursus informatique, mais : - Le langage C est relativement technique et plus difficile à aborder lorsque les bases de l'algorithmique ne sont pas connues - C++ et JAVA sont des langages objet, faisant appel à un paradigme de programmation plus avancé Le langage PASCAL est celui qui dispose de la syntaxe la plus claire et la plus proche du langage dit "algorithmique", même s'il est bien moins puissant que le langage C. Il a été mis au point par Pr. Niklaus Wirth dans les années 1970 dans un but pédagogique, et est en constante évolution depuis. Tous les algorithmes que nous mettrons au point cette année pourront être écrits directement en PASCAL. Principaux langages étudiés au cours de la licence (parcours informatique) L1 : PASCAL, HTML, Javascript L2 : C, JAVA, SQL, CAML, PHP L3 : C++, Assembleur

9 Variables et constantes Une variable est un identificateur associant un nom à une valeur ou un objet. Le nom d'une variable ne doit comporter que des lettres non accentuées, des chiffres (sauf en première position) et des tirets bas. Il ne peut comporter d'espaces, de signes de ponctuation, de signes arithmétiques ou de caractères spéciaux. En PASCAL, on ne tient pas compte de la casse (majuscules / minuscules). Ce n'est pas le cas dans la plupart des autres langages de programmation. Une constante est une valeur définie au début du programme et qui reste inchangée durant toute son exécution.

10 Les instructions de base Une affectation est une opération (instruction) permettant d'attribuer une valeur à une variable. En PASCAL, elle est symbolisée par le signe := L'identifiant de la variable est à gauche du signe d'affectation. La valeur ou plus généralement l'expression est à droite du signe d'affectation. x := 5 y2 := y + 2 * z i := i + 1 x prend la valeur 5 (au symbole x est désormais associé la valeur 5, jusqu'à ce que cette variable soit modifiée) y + 2z donne y2 (l'expression y + 2*z est évaluée et sa valeur est "rangée" dans la variable de nom y2) i prend pour valeur i+1 (i est actualisée : on ajoute 1 à la précédente valeur contenue dans la variable i)

11 Les instructions de base L'instruction basique de lecture interrompt le programme, attend que l'utilisateur entre une valeur au clavier et stocke la valeur en mémoire dans la variable désignée en paramètres. En PASCAL : mot-clé readln suivi de la ou les variables entre parenthèses. readln(x) readln(nom,prenom,age) L'instruction basique d'écriture affiche le contenu de l'expression en paramètre. Une expression peut être une valeur, le contenu d'une variable, le résultat d'un calcul, ou la concaténation de plusieurs expressions. En PASCAL : mot-clé write suivi de l'expression entre parenthèses, ou des expressions séparées par des virgules. Une chaine de caractère doit être délimitée par des apostrophes. Remplacer write par writeln permet de passer à la ligne après l'affichage. writeln(19) write('bonjour le monde!') write(age) writeln('je sais que 9*9 = ',9*9) writeln() Théoriquement, toute instruction de lecture doit être précédée d'une instruction d'écriture informative.

12 Les instructions de base En PASCAL, les instructions sont séparées par un délimiteur : le point-virgule writeln('programme évolué de voyance par ordinateur'); write('déclinez l''identité de la personne (nom, prénom) : '); readln(nom,prenom); write('quel est son âge : '); readln(age); write('en quelle année sommes nous? '); readln(annee); writeln('ce même jour en 2020, ',prenom,' ',nom,' aura ',2020 annee + age,' ans')

13 Les types de base Un type définit les valeurs que peut prendre une donnée (en particulier une variable) et les opérateurs qui peuvent lui être appliqués. Types de base en programmation : - Entiers : sous-ensemble de Z ; en PASCAL : integer - Réels : sous-ensemble de D ; en PASCAL : real - Booléens : deux valeurs possibles, vrai et faux ; en PASCAL : boolean (true / false) - Caractères : lettres, chiffres, ponctuation ; en PASCAL : char En PASCAL, une valeur de type caractère doit être mentionnée entre apostrophes. Opérateurs de calcul disponibles pour les types de base : - Entiers : + ; ; * ; div ; mod - Réels : + ; ; * ; / - Booléens : and ; or ; not Connaitre les tables de vérité des opérateurs booléens Opérateurs de comparaison (le résultat est un booléen) : - Entiers, réels, caractères : = ; <= ; < ; >= ; > ; <> - Booléens : = ; <>

14 Premier programme PASCAL Un programme PASCAL débute par le mot-clé program suivi du nom du programme. Ce nom ne doit plus être réutilisé dans la suite du programme. Toutes les constantes utilisées dans le programme, et les variables utilisées dans le programme principal doivent être déclarées auparavant. La déclaration des constantes est initiée par le mot-clé const. La déclaration des variables est initiée par le mot-clé var. Le type de chaque variable doit être précisé lors de la déclaration. Les constantes ne sont pas typées. Le corps du programme principal débute par le mot-clé et termine par end suivi d'un point. program Calcul_TVA ; var prixttc, prixht, tauxtva : real ; write('quel est le prix TTC? ') ; readln(prixttc) ; write('quel taux de TVA s'applique en %? ') ; readln(tauxtva) ; tauxtva := tauxtva / 100 ; prixht := prixttc / (1 + tauxtva) ; writeln('le prix HT est de ',prixht) ; writeln('le montant de la TVA est de ',prixttc * tauxtva) end.

15 Premier programme PASCAL Un programme PASCAL débute par le mot-clé program suivi du nom du programme. Ce nom ne doit plus être réutilisé dans la suite du programme. Toutes les constantes utilisées dans le programme, et les variables utilisées dans le programme principal doivent être déclarées auparavant. La déclaration des constantes est initiée par le mot-clé const. La déclaration des variables est initiée par le mot-clé var. Le type de chaque variable doit être précisé lors de la déclaration. Les constantes ne sont pas typées. Le corps du programme principal débute par le mot-clé et termine par end suivi d'un point. program Calcul_TVA ; var prixttc, prixht, tauxtva : real ; end. write('quel est le prix TTC? ') ; readln(prixttc) ; write('quel taux de TVA s'applique en %? ') ; readln(tauxtva) ; tauxtva := tauxtva / 100 ; prixht := prixttc / (1 + tauxtva) ; writeln('le prix HT est de ',prixht:4:2) ; writeln('le montant de la TVA est de ',(prixttc * tauxtva):4:2) Avec un meilleur affichage Nombre minimal de caractères affichés (avec alignement à droite) Précision de l'arrondi (chiffres après la virgule)

16 Premier programme PASCAL Un programme PASCAL débute par le mot-clé program suivi du nom du programme. Ce nom ne doit plus être réutilisé dans la suite du programme. Toutes les constantes utilisées dans le programme, et les variables utilisées dans le programme principal doivent être déclarées auparavant. La déclaration des constantes est initiée par le mot-clé const. La déclaration des variables est initiée par le mot-clé var. Le type de chaque variable doit être précisé lors de la déclaration. Les constantes ne sont pas typées. Le corps du programme principal débute par le mot-clé et termine par end suivi d'un point. program Calcul_TVA ; var prixttc, prixht, tauxtva : real ; end. write('quel est le prix TTC? ') ; readln(prixttc) ; write('quel taux de TVA s'applique en %? ') ; readln(tauxtva) ; tauxtva := tauxtva / 100 ; prixht := prixttc / (1 + tauxtva) ; writeln('le prix HT est de ',prixht) ; writeln('le montant de la TVA est de ',prixttc * tauxtva) La présentation du code est importante. La plupart des espaces (hormis celles séparant les mots-clés, variables ou valeurs), les tabulations et les sauts de ligne n'ont aucun effet sur le programme mais sont parfois indispensables pour la lisibilité du code.

17 Premier programme PASCAL Un programme PASCAL débute par le mot-clé program suivi du nom du programme. Ce nom ne doit plus être réutilisé dans la suite du programme. Toutes les constantes utilisées dans le programme, et les variables utilisées dans le programme principal doivent être déclarées auparavant. La déclaration des constantes est initiée par le mot-clé const. La déclaration des variables est initiée par le mot-clé var. Le type de chaque variable doit être précisé lors de la déclaration. Les constantes ne sont pas typées. Le corps du programme principal débute par le mot-clé et termine par end suivi d'un point. program Calcul_TVA ; const tauxtva = ; var prixttc, prixht : real ; write('quel est le prix TTC? ') ; readln(prixttc) ; prixht := prixttc / (1 + tauxtva) ; writeln('le prix HT est de ',prixht) ; writeln('le montant de la TVA est de ',prixttc * tauxtva) end. Version avec TVA connue

18 Premier programme PASCAL Un programme PASCAL débute par le mot-clé program suivi du nom du programme. Ce nom ne doit plus être réutilisé dans la suite du programme. Toutes les constantes utilisées dans le programme, et les variables utilisées dans le programme principal doivent être déclarées auparavant. La déclaration des constantes est initiée par le mot-clé const. La déclaration des variables est initiée par le mot-clé var. Le type de chaque variable doit être précisé lors de la déclaration. Les constantes ne sont pas typées. Le corps du programme principal débute par le mot-clé et termine par end suivi d'un point. Commentaire de fin de ligne program Calcul_TVA ; const tauxtva = ; // On fixe la TVA à 19,6% var prixttc, prixht : real ; Bloc de commentaire {Début du programme principal} write('quel est le prix TTC? ') ; readln(prixttc) ; prixht := prixttc / (1 + tauxtva) ; writeln('le prix HT est de ',prixht) ; writeln('le montant de la TVA est de ',prixttc * tauxtva) end. Avec commentaires

19 La conditionnelle Les instructions d affectation, de lecture et d écriture sont des instructions séquentielles. Une instruction conditionnelle permet d exécuter ou non un bloc d instructions selon le résultat d un test (choix binaire). if <condition> then <instruction1> else <instruction2> Conditionnelle complète (if then else) Si la condition est vérifiée, alors on exécute l instruction 1, sinon on exécute l instruction 2 if <condition> then <instruction1> Conditionnelle incomplète (if then) Si la condition est vérifiée, alors on exécute l instruction 1 [sinon on ne fait rien] Un bloc d instructions (suite d instructions séparées par des points-virgules et encadrées par et end) peut remplacer une simple instruction. if <condition> then <instruction1> ; <instruction2> end else <instruction3> Bloc d instructions

20 La conditionnelle Comme une conditionnelle est elle-même une instruction, il peut y avoir une ou plusieurs conditionnelles à l intérieur d une conditionnelle. On parle de conditionnelles imbriquées. if <condition1> then if <condition2> then <instruction1> else <instruction2> else <instruction3> En PASCAL, le point-virgule est un séparateur d instructions. Il ne faut donc jamais mettre un point-virgule juste devant le mot-clé else. Une condition est une expression booléenne, dont la valeur est soit vraie, soit fausse. X not X X = true X = false (note >= 0) and (note <= 20) not ((note >=0) and (note<=20)) (note < 0) or (note > 20) (i < valeurmax) and (not trouve) Programmes à écrire : 1 Parité d un nombre 2 Calcul booléen avec l opérateur XOR Une condition peut-être de la forme : (<condition1>) <and/or> (<condition2>) not (<condition>)

21 La conditionnelle Il faut éviter d imbriquer un trop grand nombre de conditionnelles (problèmes de lisibilité à partir de 3 / 4 niveaux. L instruction case of permet d éviter certaines imbrications de conditionnelles, et permet de traiter directement des choix qui ne sont plus binaires. Elle est réservée à des conditions bien précises (égalité variable - constantes). case <variable> of <ensembledevaleurs1> : <instruction1> ; <ensembledevaleurs2> : <instruction2> ; <ensembledevaleursn> : <instructionn> else <instruction0> end - un ensemble de valeurs est une valeur constante, ou plusieurs valeurs constantes séparées par des virgules - le else est facultatif - chaque instruction peut être un bloc d instructions Exercice : écrire un programme qui donne le nombre de jours dans un mois.

22 La conditionnelle program appreciation_automatique ; var note : integer ; writeln( Quelle est la note obtenue? ) ; readln(note) ; case note of 20 : writeln( Parfait! ) ; 18,19 : writeln( Excellent ) ; 16,17 : writeln( Très bien ) ; 14,15 : writeln( Bien ) ; : writeln( Passable ) ; 0..9 : writeln( Insuffisant ) ; writeln( Il aurait fallu travailler! ) end else writeln( Note invalide ) end end.

23 Instruction répétitive Une boucle permet d effectuer un traitement à plusieurs reprises. Il existe plusieurs types de boucles : - la boucle TANT QUE - la boucle REPETER (ou boucle JUSQU À CE QUE) - la boucle POUR (extension de la boucle TANT QUE) Principe de la boucle TANT QUE : TANT QUE la condition est vraie : - on effectue l instruction (ou le bloc d instructions) - on revient au début de la boucle Lorsque la condition est fausse, on passe à l instruction suivante. while <condition> do <instruction> while <condition> do <instruction1> ; <instruction2> end

24 Instruction répétitive program tours_de_boucle ; var n : integer ; n := 0 ; while n < 3 do writeln('un tour... ') ; n := n + 1 end ; writeln('fini!') end. Exercices : 1 Quel est l affichage produit par le programme tours_de_boucle? 2 Écrire l algorithme d Euclide en PASCAL (pgcd de deux nombres entiers)

25 Instruction répétitive program tours_de_boucle ; var n : integer ; n := 0 ; while n < 3 do writeln('un tour... ') ; n := n + 1 end ; writeln('fini!') end. Exercices : 1 Quel est l affichage produit par le programme tours_de_boucle? 2 Écrire l algorithme d Euclide en PASCAL (pgcd de deux nombres entiers)

26 Instruction répétitive La boucle TANT QUE : while <condition> do <traitement> La condition doit finir par devenir fausse (on répète le traitement tant que la condition est vraie) Si la condition est fausse à la première exécution, le traitement n est jamais réalisé. La boucle RÉPÉTER : repeat <traitement> until <condition> En PASCAL, la boucle RÉPÉTER est de type RÉPÉTER JUSQU À La condition doit finir par devenir vraie (on répète le traitement jusqu à ce que la condition soit vraie, i.e. tant que la condition est fausse) Le traitement est réalisé au moins une fois, car le test est effectué après. repeat writeln( saisir la note ); readln(note) until (note >= 0) and (note <= 20) Remarque : pas de /end car le bloc d instructions à répéter est déjà encadré par repeat et until.

27 Instruction répétitive Propriété : TANT QUE et RÉPÉTER ont le même pouvoir expressif. Preuve : repeat <traitement> until <condition> varbool := false; while not varbool do <traitement> varbool := <condition> end while <condition> do <traitement> if <condition> then repeat <traitement> until not <condition>

28 Instruction répétitive La boucle POUR (for) La boucle POUR permet d effectuer un traitement à plusieurs reprises en incrémentant ou décrémentant automatiquement une variable entière. for <nomvarboucle> := <exprinf> to <exprsup> do <traitement> for <nomvarboucle> := <exprsup> downto <exprinf> do <traitement> Boucle POUR croissante Boucle POUR décroissante <nomvarboucle> est une variable de type entier (integer) qui ne doit théoriquement jamais être modifiée dans le traitement. <exprinf> et <exprsup> sont des expressions entières (variables, constantes, résultats d un calcul). <traitement> est une instruction ou une suite d instructions séparées par / end. sommechiffres := 0; for i := 1 to 9 do sommechiffres := sommechiffres + i; sommechiffres := 0; for i := 9 downto 1 do sommechiffres := sommechiffres + i;

29 Instruction répétitive Une boucle POUR croissante (for...to...do) exécute un traitement pour chaque valeur entière comprise entre deux bornes, dans l ordre croissant (la variable de boucle prend successivement chacune de ces valeurs). for i:=1 to 5 do write(i,' ') Une boucle POUR décroissante (for...downto...do) fait la même chose dans l ordre inverse (la variable de boucle prend successivement chaque valeur de l intervalle dans l ordre décroissant). for i:=5 downto 1 do write(i,' ') Une boucle POUR est un cas particulier d'une boucle TANT QUE : Quelques cas particuliers : for i:= MIN to MAX do <traitement> i:= MIN; while (i<=max) do <traitement>; i:=i+1 end; i:=i-1 for i:= N1 to N2 do <traitement> for i:= N1 downto N2 do <traitement> Si N1 = N2, une seule itération avec i=n1 Si N1 > N2, aucune itération (mais correct) Si N1 = N2, une seule itération avec i=n1 Si N1 < N2, aucune itération (mais correct)

30 program sommeentiers; var n,i,somme : integer; writeln('somme des n premiers entiers'); repeat writeln('entrez n (> 0)'); readln(n) until n > 0; somme:=0; for i:=1 to n do somme:=somme+i; writeln('la somme des ',n,' premiers entiers est ',somme) end. Instruction répétitive

31 Tableaux Un tableau est une structure de données regroupant un ensemble de variables de même type. Exemple de tableau d entiers de dimension 8, indicé de 1 à T[1] T[2] T[3] T[4] T[5] T[6] T[7] T[8] La variable T est de type tableau d entiers indicé de 1 à 8. On accède aux valeurs du tableau par T[1], T[2],, T[8]. L indice doit être une expression entière (constante, variable, calcul).

32 Tableaux Déclaration d une variable de type tableau : Syntaxe : var <NomVar> : array [<const1>..<const2>] of <type>; Cette syntaxe est fonctionnelle mais déconseillée dans le cas général. Lors de l utilisation de types structurés comme des tableaux, il est préférable de commencer par définir le type lui-même (par exemple : type tableau d entiers indicé de 1 à 8). On pourra alors utiliser plusieurs variables correspondant à ce même type. Déclaration d un type structuré : Syntaxe : type <NomType> = <typestructuré>; Exemple : type TabEntier = array [1..8] of integer; var T1, T2 : TabEntier;

33 Tableaux Utilisation d un tableau : Chaque T[i] se comporte comme une variable classique. T[i+1]:=5 readln(t[3]) writeln( La,x, e valeur est,t[x]) if T[T[1]+T[2]] = T[1] + T[2] then writeln( coup de chance ) Les instructions de lecture, écriture peuvent s appliquer à chacun des éléments mais pas au tableau tout entier. readln(t) writeln(t) Il faut saisir ou afficher les éléments un par un, en utilisant une boucle.

34 Tableaux program reaffichage; const Nmax=100; {limite de taille du tableau} type Tent = array[1..nmax] of integer; {déclaration du type Tent} var T : Tent; {le tableau} n : integer; {nombre d éléments à saisir} i : integer; {indice pour parcourir le tableau} write( Combien de valeurs (<,Nmax, )? ); readln(n); i:=1; while i<=n do write( Donner le,i, eme element: ); readln(t[i]); i:=i+1 end; writeln( Vous venez de saisir les valeurs suivantes : ); i:=1; while i<=n do write(t[i], ); i:=i+1 end end.

35 Tableaux program reaffichage; const Nmax=100; {limite de taille du tableau} La taille du tableau est constante type Tent = array[1..nmax] of integer; {déclaration du type Tent} var T : Tent; {le tableau} n : integer; {nombre d éléments à saisir} La taille utile du tableau peut varier i : integer; {indice pour parcourir le tableau} write( Combien de valeurs (<,Nmax, )? ); readln(n); i:=1; while i<=n do write( Donner le,i, eme element: ); readln(t[i]); i:=i+1 end; writeln( Vous venez de saisir les valeurs suivantes : ); i:=1; while i<=n do write(t[i], ); i:=i+1 end end.

36 Tableaux program reaffichage; const Nmax=100; {limite de taille du tableau} type Tent = array[1..nmax] of integer; {déclaration du type Tent} var T : Tent; {le tableau} n : integer; {nombre d éléments à saisir} i : integer; {indice pour parcourir le tableau} write( Combien de valeurs (<,Nmax, )? ); readln(n); for i:=1 to n do write( Donner le,i, eme element: ); readln(t[i]) end; Utilisation de la boucle for writeln( Vous venez de saisir les valeurs suivantes : ); for i:=1 to n do write(t[i], ); end.

37 program mintableau; const TAILLEMAX = 1000; type tabentiers = array[1..taillemax] of integer; var n, i, min : integer; T : tabentiers; {Saisie des valeurs} repeat writeln('combien de valeurs à saisir? (entre 1 et ',TAILLEMAX,')'); readln(n) until (n >= 1) and (n <= TAILLEMAX); for i:=1 to n do readln(t[i]); {Calcul puis affichage du minimum} min:=t[1]; for i:=2 to n do if min > T[i] then min:=t[i]; writeln('valeur minimum : ',min) end. Tableaux

38 program saisie_matrice; const Lmax=100; Cmax=100; type matrice = array[1..lmax,1..cmax] of real; var M : matrice; n1,n2 : integer; i,j : integer; write( Combien de lignes (<,Lmax, )? ); readln(n1); write( Combien de colonnes (<,Cmax, )? ); readln(n2); i:=1; while i<=n1 do j:=1; while j<=n2 do write( Donner l element [,i,,,j, ] : ); readln(m[i,j]); j:=j+1 end; i:=i+1 end {...traitement éventuel sur les données} end. Tableaux à deux dimensions

39 Chaines de caractères Une chaine de caractère (en anglais : string) est un type structuré similaire à un tableau de caractères, et représentant une suite de caractères. Il est prédéfini dans la plupart des langages de programmation et associé à des fonctions spécifiques qui permettent de les manipuler plus simplement. Déclaration : var <NomVar> : string var <NomVar> : string[<const2>] La taille n est pas précisée (valeur par défaut : 255 caractères) La taille maximale de la chaine est précisée Le nombre de caractères d une chaine est accessible via la fonction length(<nomvar>). Elle représente sa taille utile. D autres fonctions permettant de manipuler les chaines seront vues plus tard. Contrairement aux tableaux, les chaines de caractères peuvent être lues et affichées au même titre que les caractères qui les composent. s B o n j o u r S[1] S[2] S[3] S[4] S[5] S[6] S[7] length(s) = 7

40 Chaines de caractères program exemple_chaines; var s,nom : string; tel : string[10]; write( Comment vous appelez-vous? ); readln(nom); s := Bonjour ; writeln(s,,nom); writeln( L initiale de votre nom est,nom[1]); writeln( Votre nom est composé de,length(nom), lettres ) writeln( Entrez votre numéro de téléphone ); readln(tel); { } end. Opérations de base sur les chaines : Concaténation : Bon + jour Bonjour Comparaison : Un < Deux false Tous les opérateurs de comparaison habituels sont disponibles : < ; > ; <= ; >= ; = ; <>

41 Sous-programmes Un langage possède un nombre d instructions limitées. Comment créer de nouvelles instructions? La plupart des problèmes sont compliqués à résoudre et nécessitent d être décomposés en sous-problèmes. Comment définir et utiliser des sous-programmes permettant de résoudre des sousproblèmes? Un sous-programme est un bloc d instructions séparé du bloc principal permettant de résoudre un sous-problème. On peut appeler un sous-programme dans le programme principal ou dans un autre sous-programme. Décomposition Pour résoudre un problème, on isole chaque sous-problème en déterminant ses entrées (données) et ses sorties (résultats). Un sous-problème est un problème et peut être décomposé. Un sous-programme peut donc utiliser d autres sous-programmes.

42 Sous-programmes Déclaration d un sous-programme En PASCAL, la déclaration d un sous-programme comprend : sa catégorie (fonction ou procédure) son nom ses paramètres formels Elle est suivie par la déclaration de ses variables locales et un bloc d instructions. Les variables locales déclarées dans un sous-programme ne sont pas visibles hors du sousprogramme. Appel / exécution d un sous-programme Un sous-programme est exécuté par le programme principal ou un autre sous-programme par appel de son nom et de ses paramètres effectifs.

43 Sous-programmes Nature des paramètres Une donnée est une valeur transmise au sous-programme et utilisée par celui-ci. Une donnée n est jamais modifiée par le sous-programme. Un résultat est une valeur que le sous-programme transmet au programme ou sous-programme qui l appelle. Une donnée modifiée est à la fois donnée et résultat. Il s agit d une donnée que le sousprogramme peut modifier dans le but d être retransmise au programme qui l appelle. Les paramètres résultats et données modifiées sont des variables, non initialisées (résultats) ou initialisées (données modifiées). Catégories de sous-programmes Une fonction : sous-programme typé qui retourne un résultat à partir d un certain nombre de données (pas de données modifiées ni de paramètre résultat qui peut-être considéré comme la fonction elle-même). Une procédure : sous-programme non typé qui utilise un nombre libre de données, résultats et données modifiées, mais ne retourne pas à proprement parler un résultat.

44 Sous-programmes : fonctions Une fonction calcule une valeur à partir de 0, 1 ou plusieurs données en paramètre. Déclaration d une fonction. function nomfonction(donnee1:type1; donnee2:type2; ; donneen:typen):typeresultat; var ; {déclaration des variables locales} {bloc d instructions} end; Les paramètres sont uniquement des données, et le résultat n est pas considéré comme un paramètre. Pour retourner un résultat, la fonction doit contenir au moins une instruction de type nomfonction:= ; En PASCAL, dans le bloc d instruction de la fonction, le nom de la fonction s utilise comme une variable du type de la fonction..

45 Sous-programmes : fonctions Appel d une fonction (dans un autre bloc d instructions) nomfonction(val1,val2,,valn) ; une fonction appelée doit être préalablement déclarée une fonction doit être appelée à l intérieur d une instruction (elle ne constitue pas une instruction en tant que telle). Par exemple : x := mafonction(a,b,c) avec x du même type que mafonction(p1,p2,p3) et le i ème paramètre effectif même type que le i ème paramètre formel de la fonction. Lors de l appel, la fonction s exécute avec comme paramètres (données) les valeurs des paramètres effectifs. Après exécution de la fonction, sa valeur calculée (résultat) remplace l appel de la fonction dans l instruction où elle a été effectuée. L appel d une fonction correspond à une expression dont on évalue la valeur.

46 Sous-programmes : fonctions program testmin; function min(x: integer; y: integer):integer; if x<y then min:=x else min:=y; end; var a, b: integer; write( Entrer deux valeurs: ); readln(a); readln(b); writeln( Le min est :,min(a,b)); end.

47 Sous-programmes : fonctions Important L ordre des paramètres doit être bien respecté lors de l appel de la fonction On ne modifie jamais les paramètres dans une fonction Il n y a pas de lecture des données dans la fonction ; elles sont passées en paramètres Il n y a pas à afficher le résultat dans la fonction Attention à la distinction entre paramètres formels et paramètres effectifs Paramètres formels lors de la déclaration : f : N N f(x) = x² Paramètres effectifs lors de l exécution : f(3) f(a) avec a=5 f(x) avec x=1

48 Sous-programmes : procédures Une procédure peut être considérée comme une fonction ne renvoyant pas de valeur. En PASCAL, des paramètres peuvent être modifiés uniquement dans des procédures (données modifiées et résultats). Une procédure peut également avoir des données en paramètres, non modifiables. L'appel à une procédure est une instruction en tant que telle. Déclaration d une procédure procedure nomproc(param1:type1; var param2:type2; ); var ; {déclaration des variables locales} {bloc d instructions} end; Les paramètres peuvent être des données, des données modifiées ou des résultats. Les données modifiées et résultats sont précédés par le mot-clé var. Une procédure n'a pas de type associé. Il ne doit jamais y avoir d'instruction du genre nomproc:= ;

49 Sous-programmes : procédures Appel d une procédure (dans un autre bloc d instructions) nomproc(val1,val2, ); une procédure appelée doit être préalablement déclarée les données en paramètres doivent être des expressions (valeur, variable, résultat d'un calcul ou d'une fonction) correspondant aux types déclarés les données modifiées et résultats (var lors de la déclaration, mais pas lors de l'appel) correspond obligatoirement à une variable correspondant au type déclaré l'ordre des paramètres doit être bien respecté lors de l'appel de la procédure

50 Sous-programmes : procédures program testajoute; procedure ajoute(var x: integer; y: integer); x := x+y; end; var a, b: integer readln(a); readln(b); ajoute(a, b); writeln(a, b); end.

51 Sous-programmes : synthèse Procédure ou fonction? des données doivent être modifiées : PROCÉDURE des données vont être saisies ou modifiées : PROCÉDURE un ensemble de résultats va être produit : PROCÉDURE calculer un résultat à partir d'un ensemble de données : FONCTION pouvoir utiliser le sous-programme dans une expression : FONCTION Décomposition Les sous-programmes permettent de séparer des tâches indépendantes. Il faut en particulier séparer les interactions avec l'utilisateur des opérations de calcul. Un sous-programme qui réalise un calcul pour produire un ou plusieurs résultats n'a pas à interagir avec l'utilisateur pour lui demander des informations. Un sous-programme réalise un traitement à partir de ses paramètres, et non sur des valeurs demandées à l'utilisateur. La demande d'information ou l'affichage des résultats se fera dans des sous-programmes dédiés. Réutilisation Les sous-programmes peuvent être utilisés plusieurs fois au cours de l'exécution du programme, ou même jamais.

52 Sous-programmes : exemple Températures hebdomadaires On souhaite réaliser un programme calculant, à partir des relevés de températures sur une semaine de deux villes, laquelle a la température moyenne la plus élevée. Définir un type permettant de stocker les températures hebdomadaires d'une ville Écrire un sous-programme calculant la moyenne des températures de la semaine Écrire un sous-programme permettant la saisie des températures hebdomadaires d'une ville Écrire un sous-programme déterminant, parmi deux villes, celle qui a la température moyenne la plus élevée Écrire le programme principal permettant de réaliser les traitements

53 Sous-programmes : exemple Définir un type permettant de stocker les températures hebdomadaires d'une ville const NBJOURS=7; type TableauTemp=array[1..NBJOURS] of real;

54 Sous-programmes : exemple Écrire un sous-programme calculant la moyenne des températures de la semaine function moyenne(t: TableauTemp): real; var somme: real; i: integer; somme := 0; i := 1; while i<= NBJOURS do somme := somme + t[i]; i := i+1; end; moyenne := somme / NBJOURS; end;

55 Sous-programmes : exemple Écrire un sous-programme permettant la saisie des températures hebdomadaires d'une ville function jour(j:integer):string; case j of 1: jour:='dimanche'; 2: jour:='lundi'; 3: jour:='mardi'; 4: jour:='mercredi'; 5: jour:='jeudi'; 6: jour:='vendredi'; 7: jour:='samedi' end end; procedure saisie(var t: TableauTemp); var i: integer; for i:=1 to NBJOURS do writeln( Temperature de,jour(i)); readln(t[i]) end end;

56 Sous-programmes : exemple Écrire un sous-programme déterminant, parmi deux villes, celle qui a la température moyenne la plus élevée function moyennepluselevee(v1: string; t1: TableauTemp; v2: string; t2: TableauTemp): string; if moyenne(t1) > moyenne(t2) then moyennepluselevee := v1 else moyennepluselevee := v2; end;

57 Sous-programmes : exemple Écrire le programme principal permettant de réaliser les traitements var t1, t2: TableauTemp; v1, v2: string; writeln( Ville 1 ); readln(v1); saisie(t1); writeln( Ville 2 ); readln(v2); saisie(t2); write(moyennepluselevee(v1,t1,v2,t2), a une temperature plus elevee ); end.

58 Annexe : Conversion binaire / décimal Pour représenter un nombre entier naturel, il faut disposer de symboles appelés chiffres. Tout nombre entier N peut être exprimé dans la base b à l aide de b chiffres distincts allant de 0 à b-1 sous la forme : N b k 1 i 0 a b i i, où chaque a i est un chiffre. k est un nombre de chiffres suffisant pour écrire N dans la base b. Dans la base b, N s écrit a k-1 a k-2 a 1 a = 1 x x x = 1 x x x x 10 0 chiffres {0,, 9} Compter en base 2 : Compter en base 3 : Compter en base 10 : Compter en base 16 : 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 0, 1, 2, 10, 11, 12, 20, 21, 22, 100, 101, 102, 110, 111, 112, 120, 0, 1, 2, 3,, 9, 10, 11, 12, 13,, 99, 100, 101, 102, 103, 0, 1, 2,, 9, A, B, C, D, E, F, 10, 11, 12,, 1F, 20, 21,, FF, 100,

59 Annexe : Conversion binaire / décimal Conversion d un nombre de la base 2 vers la base 10 (binaire décimal) : = 1 x x x x x 2 0 = = Table des puissances de 2 Conversion d un nombre de la base 10 vers la base 2 (décimal binaire) : Il suffit d effectuer des divisions euclidiennes successives du nombre par 2, et d écrire les restes dans l ordre inverse

60 Annexe : Conversion binaire / décimal Conversion d un nombre de la base 2 vers la base 10 (binaire décimal) : = 1 x x x x x 2 0 = = Table des puissances de 2 Conversion d un nombre de la base 10 vers la base 2 (décimal binaire) : Il suffit d effectuer des divisions euclidiennes successives du nombre par 2, et d écrire les restes dans l ordre inverse = (= 8+4+1) somme de puissances de 2

61 Annexe : Conversion binaire / décimal Conversion d un nombre de la base 2 vers la base 10 (binaire décimal) : = 1 x x x x x 2 0 = = Table des puissances de 2 Conversion d un nombre de la base 10 vers la base 2 (décimal binaire) : Il suffit d effectuer des divisions euclidiennes successives du nombre par 2, et d écrire les restes dans l ordre inverse = (= 8+4+1) somme de puissances de 2 N Q R = (= ) Le chiffre (bit en base 2) le plus significatif est le reste de la dernière division. Le chiffre (bit) le moins significatif est le reste de la première division.

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

Examen Médian - 1 heure 30

Examen Médian - 1 heure 30 NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Enseignement secondaire technique

Enseignement secondaire technique Enseignement secondaire technique Régime technique Division technique générale Cycle moyen Informatique 11TG Nombre de leçons: 2.0 Nombre minimal de devoirs: - Langue véhiculaire: / Remarque générale:

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Algorithmes et programmation en Pascal. Cours

Algorithmes et programmation en Pascal. Cours Algorithmes et programmation en Pascal Faculté des Sciences de Luminy Edouard Thiel Cours Deug 1 Mass MA Module de 75 heures 1997 à 2004 2 Algorithmes et programmation en Pascal Edouard Thiel Table des

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009 Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

1. Structure d'un programme FORTRAN 95

1. Structure d'un programme FORTRAN 95 FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

Cours d Informatique

Cours d Informatique Cours d Informatique 1ère année SM/SMI 2007/2008, Info 2 Département de Mathématiques et d Informatique, Université Mohammed V elbenani@hotmail.com sayah@fsr.ac.ma 2007/2008 Info2, 1ère année SM/SMI 1

Plus en détail

CORRECTION EXERCICES ALGORITHME 1

CORRECTION EXERCICES ALGORITHME 1 CORRECTION 1 Mr KHATORY (GIM 1 A) 1 Ecrire un algorithme permettant de résoudre une équation du second degré. Afficher les solutions! 2 2 b b 4ac ax bx c 0; solution: x 2a Solution: ALGORITHME seconddegré

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Compléments de documentation Scilab : affichage de texte et formatage de nombres Université des Sciences et Technologies de Lille U.F.R. de Mathématiques Pures et Appliquées Agrégation externe Année 2002-2003 Compléments de documentation Scilab : affichage de texte et formatage de

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Algorithmique & programmation

Algorithmique & programmation Algorithmique & programmation Type structuré Article, Enregistrement, Structure Définition de nouveaux types!! On a vu les types simples "! entier, booléen, caractère, chaîne de caractères!! Comment gérer

Plus en détail

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Sub CalculAnnuite() Const TITRE As String = Calcul d'annuité de remboursement d'un emprunt TD1 : traduction en Visual BASIC des exemples du cours sur les structures de contrôle de l'exécution page 1 'TRADUCTION EN VBA DES EXEMPLES ALGORITHMIQUES SUR LES STRUCTURES 'DE CONTROLE DE L'EXECUTION

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Le chiffre est le signe, le nombre est la valeur.

Le chiffre est le signe, le nombre est la valeur. Extrait de cours de maths de 6e Chapitre 1 : Les nombres et les opérations I) Chiffre et nombre 1.1 La numération décimale En mathématique, un chiffre est un signe utilisé pour l'écriture des nombres.

Plus en détail

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel) Algorithmes et Programmes Introduction à l informatiquel! Vie d'un programme! Algorithme! Programmation : le langage! Exécution et test des programmes Chapitre : Algorithmes et Programmes 2 Cycle de vie

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Page 1 de 9 MATLAB : COMMANDES DE BASE Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */. Aide help, help nom_de_commande Fenêtre de travail (Command Window) Ligne

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Traitement de texte : Quelques rappels de quelques notions de base

Traitement de texte : Quelques rappels de quelques notions de base Traitement de texte : Quelques rappels de quelques notions de base 1 Quelques rappels sur le fonctionnement du clavier Voici quelques rappels, ou quelques appels (selon un de mes profs, quelque chose qui

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Notions fondamentales du langage C# Version 1.0

Notions fondamentales du langage C# Version 1.0 Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation. Université du Québec à Chicoutimi Département d informatique et de mathématique Plan de cours Titre : Élément de programmation Sigle : 8inf 119 Session : Automne 2001 Professeur : Patrice Guérin Local

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014

Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014 numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour

Plus en détail

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

S LICENCE INFORMATIQUE Non Alt Alt SS1 S2 S3 S4 S5 S6 Parcours : IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques)

S LICENCE INFORMATIQUE Non Alt Alt SS1 S2 S3 S4 S5 S6 Parcours : IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques) NOM DE L'UE : ACCOMPAGNEMENT(ADI OU AFPF OU TUTORAT) S LICENCE INFORMATIQUE Non Alt Alt SS1 S2 S3 S4 S5 S6 Parcours : IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques) MASTER INFORMATIQUE

Plus en détail

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

Plus en détail

MODE OPERATOIRE OPENOFFICE BASE

MODE OPERATOIRE OPENOFFICE BASE MODE OPERATOIRE OPENOFFICE BASE Openoffice Base est un SGBDR : Système de Gestion de Base de Données Relationnelle. L un des principaux atouts de ce logiciel est de pouvoir gérer de façon efficace et rapide

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

INF 321 : mémento de la syntaxe de Java

INF 321 : mémento de la syntaxe de Java INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2

Plus en détail

Programmation structurée et algorithmes de base en Pascal

Programmation structurée et algorithmes de base en Pascal Programmation structurée et algorithmes de base en Pascal Miage1, IF2, DEUG sciences Patrice Effi BROU UFR Mathématiques et informatique Decembre 2003 Chapitre 1 Sommaire 1 Théorie des langages et compilation

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Introduction à l algorithmique et à la programmation M1102 CM n 3

Introduction à l algorithmique et à la programmation M1102 CM n 3 Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY eric.remy@univ-amu.fr IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT d

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation Complexité Objectifs des calculs de complexité : - pouvoir prévoir le temps d'exécution d'un algorithme - pouvoir comparer deux algorithmes réalisant le même traitement Exemples : - si on lance le calcul

Plus en détail

Application 1- VBA : Test de comportements d'investissements

Application 1- VBA : Test de comportements d'investissements Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps

Plus en détail

Maple: premiers calculs et premières applications

Maple: premiers calculs et premières applications TP Maple: premiers calculs et premières applications Maple: un logiciel de calcul formel Le logiciel Maple est un système de calcul formel. Alors que la plupart des logiciels de mathématiques utilisent

Plus en détail

USTL - Licence ST-A 1ère année 2005-2006 Codage de l information TP 1 :

USTL - Licence ST-A 1ère année 2005-2006 Codage de l information TP 1 : USTL - Licence ST-A 1ère année 2005-2006 Codage de l information TP 1 : Objectifs du TP Ce TP a pour but 1. de découvrir quelques opérations logiques sur les nombres 2. et quelques formats de fichiers.

Plus en détail

Calculateur quantique: factorisation des entiers

Calculateur quantique: factorisation des entiers Calculateur quantique: factorisation des entiers Plan Introduction Difficulté de la factorisation des entiers Cryptographie et la factorisation Exemple RSA L'informatique quantique L'algorithme quantique

Plus en détail

Découverte de Python

Découverte de Python Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en

Plus en détail

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique NOM DE L'UE : Algorithmique et programmation C++ LICENCE INFORMATIQUE Non Alt Alt S1 S2 S3 S4 S5 S6 Parcours : IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques) MASTER INFORMATIQUE Non

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

UE C avancé cours 1: introduction et révisions

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

2 Comment fonctionne un ordinateur, dans les grandes lignes

2 Comment fonctionne un ordinateur, dans les grandes lignes Programmation 1 Cours n 1 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot Les notes de cours et les feuilles de TD sont disponibles (avec un peu de retard par rapport au déroulement du cours)

Plus en détail

L ALGORITHMIQUE. Algorithme

L ALGORITHMIQUE. Algorithme L ALGORITHMIQUE Inspirée par l informatique, cette démarche permet de résoudre beaucoup de problèmes. Quelques algorithmes ont été vus en 3 ième et cette année, au cours de leçons, nous verrons quelques

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail