Introduction à l algorithmique L1 MPCIE
|
|
- Marie-Agnès Picard
- il y a 6 ans
- Total affichages :
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 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étailExamen 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étailINITIATION 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étailCours 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étailAlgorithmique 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étailUEO11 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étail1/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étailEnseignement 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étailCours 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étailInfo0101 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étailEPREUVE 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étailAlgorithmique 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étailAlgorithmes 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étailLicence 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étailDé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étailRecherche 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étailSNT4U16 - 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 Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailInitiation à 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étailSTAGE 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étail1. 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étailLES 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étailIN 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étailRappel. 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étailCours 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étailPlan 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étailCours 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étailCours 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étailCORRECTION 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étailOrganigramme / 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étailComplé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étailLes 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étailIntroduction à 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étailUE 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étailAlgorithmique & 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étailProgrammation 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étailJava 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étailProgrammation 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étailSub 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étailLicence 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étailALGORITHMIQUE 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étail1. 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étailLe 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étailAlgorithmes 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étailConventions 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étailINTRODUCTION 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étailMATLAB : 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étailRepré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étailAlgorithme. 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étailLangage 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étailCours 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étailARDUINO 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étailTP 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étailCours 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étailBases 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étailTraitement 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étailArchitecture 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étailCours 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étailNotions 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étailProgrammer 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étailAnne 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étailInitiation à 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étailTravaux 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étailStructure 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étailIntroduction 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étailL 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étailUniversité 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étailArithmé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étailPlan 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étailET 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étailS 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étailRappels 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étailMODE 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étailRappels 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étailV- 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étailINF 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étailProgrammation 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étailI. 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étailPré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étailIntroduction à 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étail1 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étailCompilation (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étail3. 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étailComplexité. 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étailApplication 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étailMaple: 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étailUSTL - 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étailCalculateur 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étailDé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étailFICHE 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étailTP 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étailUE 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étailDé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étail2 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étailL 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étailProgrammation 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étailACTIVITÉ 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étailCentre 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