Architecture des ordinateurs

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

Download "Architecture des ordinateurs"

Transcription

1 Architecture des ordinateurs (2 ème partie : assembleur 80x86) Vincent Vidal IUT Lens Architecture des ordinateurs p. 1

2 Organisation Durée : 8 semaines. Cours 1h, TP 3h Intervenants TP : Coste, Loukil, Porquet, Roussel, Vidal Évaluation : 1 DS 1 Partiel x contrôles de TP Environnement : sous linux, assembleur 32bits gnu assembleur (as) Architecture des ordinateurs p. 2

3 Qu est-ce que l assembleur? (1) Langage de (très) bas niveau permettant l écriture de programmes rapides et d interfaces vers des périphériques (drivers) Utilisé à l heure actuelle pour : Écriture de drivers Écriture des portions de programmes optimisées Écriture de programmes embarqués Démos graphiques pour les concours Bien sûr : on peut tout faire en assembleur... Architecture des ordinateurs p. 3

4 Qu est-ce que l assembleur? (2) Mémoire Lang. machine Assembleur 00002D4A 6C insb 00002D4B F63 imul sp,[bp+si+0x63],word 0x635f 00002D jnc 0x2dc D52 5F pop di 00002D53 696E imul bp,[bp+0x69],word 0x D58 5F pop di 00002D59 5F pop di 00002D5A bound si,[bp+di+0x73] 00002D5D 5F pop di Architecture des ordinateurs p. 4

5 Plan du cours (1) Algorithmique en C++, ou comment se passer des : Instructions de boucle (for, while,... ) Instructions de condition (if, switch... ) Paramètres des procédures Variables locales Basiques de l assembleur : Les variables Les registres La pile Les instructions Les appels système Architecture des ordinateurs p. 5

6 Plan du cours (2) Compilation en assembleur, ou comment traduire : Les boucles Les conditions Les procédures Optimisation, ou comment exploiter au mieux : Les registres La mémoire Les instructions Architecture des ordinateurs p. 6

7 Algorithmique pour l assembleur (1) Objectif : montrer comment on peut, en C++, se passer : des structures de contrôle habituelles (for, while, if, switch... ) des arguments des procedures, en utilisant une pile des variables locales, au moyen de la pile Moyen : définition d un langage simple basé sur C++, que nous appellerons C : définition des labels définition d instructions de saut et de comparaison définition d une pile et des procédures associées définition de procédures d affichage simples Architecture des ordinateurs p. 7

8 Algorithmique pour l assembleur (2) ATTENTION Ce que nous allons voir par la suite en C (en particulier les instructions de saut) ne doit en aucun cas être utilisé ailleurs qu en cours et TP d assembleur!!! Architecture des ordinateurs p. 8

9 Les boucles en C Les structures de contrôle for, while et do{...}while seront remplacées par l utilisation conjointe : des labels des instructions de saut des structures conditionnelles Architecture des ordinateurs p. 9

10 Les labels Identificateur suivi de :, se plaçant devant une ligne de code. Chaque label doit être unique. (...) cout << "Ceci est "; mon_label_1: cout << "un exemple "; mon_label_2: cout << "pas très long."; (...) Architecture des ordinateurs p. 10

11 Les sauts inconditionnels (1) jmp(<label>) Cette instruction (JuMP) effectue un saut vers le label passé en argument : la prochaine instruction à exécuter sera celle qui suit ce label. Le saut est dit inconditionnel car il est effectué dès que l instruction jmp est rencontrée. Nous verrons par la suite des instructions de saut conditionnel. Architecture des ordinateurs p. 11

12 Les sauts inconditionnels (2) Exemple : cout << "Un "; jmp(ici); cout << "petit "; ici: cout << "saut."; produit l affichage suivant : Un saut. Architecture des ordinateurs p. 12

13 Les boucles for en C (1) En C++, la somme des entiers de 1 à 10 : int somme=0; for(int i=1;i<=10;i++) {somme=somme+i;} cout << somme; Architecture des ordinateurs p. 13

14 Les boucles for en C (2) En C, la somme des entiers de 1 à 10 : int somme=0; int i=1; boucle: if (i>10) jmp(fin_boucle); somme=somme+i; i++; jmp(boucle); fin_boucle: cout << somme; Architecture des ordinateurs p. 14

15 Les boucles while en C (1) En C++, le calcul de la plus grande puissance de 17 strictement inférieure à 5423 : int n=1; while (n*17 < 5423) { n=n*17; } Architecture des ordinateurs p. 15

16 Les boucles while en C (2) En C, le calcul de la plus grande puissance de 17 strictement inférieure à 5423 : int n=1; boucle: if (n*17 >= 5423) jmp(fin_boucle); n=n*17; jmp(boucle); fin_boucle: Architecture des ordinateurs p. 16

17 Les boucles do{...}while en C (1) En C++, la saisie d un entier non nul : int entier; do { cin >> entier; } while (entier==0); Architecture des ordinateurs p. 17

18 Les boucles do{...}while en C (2) En C, la saisie d un entier non nul : int entier; boucle: cin >> entier; if (entier==0) jmp(boucle); Architecture des ordinateurs p. 18

19 Les structures conditionnelles en C Les structures conditionnelles if et switch seront remplacées par l utilisation conjointe : de l instruction de comparaison des labels des sauts conditionnels Architecture des ordinateurs p. 19

20 Instruction de comparaison (1) cmp(<operande1>,<operande2>) Cette instruction compare les deux opérandes et met à jour une variable appelée flag. Cette variable est : négative si la première opérande est strictement inférieure à la seconde nulle si les deux opérandes sont égales positive si la première opérande est strictement supérieure à la seconde Nous l utiliserons uniquement pour comparer des entiers ou des caractères. Architecture des ordinateurs p. 20

21 Instruction de comparaison (2) Exemple : cmp(12,56); cout << "Le flag est "; if (flag<0) cout << "négatif."; else if (flag>0) cout << "positif."; else cout << "nul."; produit l affichage suivant : Le flag est négatif. Architecture des ordinateurs p. 21

22 Instruction de comparaison (3) Exemple : cmp(56,12); cout << "Le flag est "; if (flag<0) cout << "négatif."; else if (flag>0) cout << "positif."; else cout << "nul."; produit l affichage suivant : Le flag est positif. Architecture des ordinateurs p. 22

23 Instruction de comparaison (4) Exemple : cmp(12,12); cout << "Le flag est "; if (flag<0) cout << "négatif."; else if (flag>0) cout << "positif."; else cout << "nul."; produit l affichage suivant : Le flag est nul. Architecture des ordinateurs p. 23

24 Les sauts conditionnels (1) je(<label>) Cette instruction (Jump if Equal) effectue un saut vers le label si flag = 0 jne(<label>) Cette instruction (Jump if Not Equal) effectue un saut vers le label si flag 0. Architecture des ordinateurs p. 24

25 Les sauts conditionnels (2) jl(<label>) Cette instruction (Jump if Less) effectue un saut vers le label si flag < 0 jle(<label>) Cette instruction (Jump if Less or Equal) effectue un saut vers le label si flag 0. Architecture des ordinateurs p. 25

26 Les sauts conditionnels (3) jg(<label>) Cette instruction (Jump if Greater) effectue un saut vers le label si flag > 0 jge(<label>) Cette instruction (Jump if Greater or Equal) effectue un saut vers le label si flag 0. Architecture des ordinateurs p. 26

27 Les sauts conditionnels (4) Exemple : int x=12; cout << "Un "; cmp(x,12) jle(ici); cout << "petit "; ici: cout << "saut."; produit l affichage suivant : Un saut. Architecture des ordinateurs p. 27

28 Les sauts conditionnels (5) Exemple : int x=12; cout << "Un "; cmp(56,x) jl(ici); cout << "petit "; ici: cout << "saut."; produit l affichage suivant : Un petit saut. Architecture des ordinateurs p. 28

29 Les sauts conditionnels (6) Exemple : int x= Z,y= A ; cout << "Un "; cmp(x,y) jg(ici); cout << "petit "; ici: cout << "saut."; produit l affichage suivant : Un saut. Architecture des ordinateurs p. 29

30 La conditionnelle if-then-else en C (1) En C++, calculer le plus grand de deux entiers : int a=4,b=10,max; if (a>b) {max=a;} else {max=b;} Architecture des ordinateurs p. 30

31 La conditionnelle if-then-else en C (2) En C, calculer le plus grand de deux entiers : int a=4,b=10,max; cmp(a,b); jle(cas_else); cas_then: max=a; jmp(fin_if); cas_else: max=b; fin_if: (...) Architecture des ordinateurs p. 31

32 La conditionnelle switch en C (1) En C++, associer les codes 2,5,3 aux lettres a,b,c, sinon 666 : char lettre= b ; int code; switch (lettre) { case a : code=2; break; case b : code=5; break; case c : code=3; break; default: code=666;} Architecture des ordinateurs p. 32

33 La conditionnelle switch en C (2) En C, associer les codes 2,5,3 aux lettres a,b,c, sinon 666 : char lettre= b ; int code; cmp(lettre, a ); je(cas_a); cmp(lettre, b ); je(cas_b); cmp(lettre, c ); je(cas_c); jmp(default); Architecture des ordinateurs p. 33

34 La conditionnelle switch en C (3) cas_a: code=2; jmp(fin_cas); cas_b: code=5; jmp(fin_cas); cas_c: code=3; jmp(fin_cas); default: code=666; fin_cas: (...) Architecture des ordinateurs p. 34

35 Synthèse boucles+conditionnelles (1) Reprenons l exemple de la somme des entiers de 1 à 10. En C++ : int somme=0; for(int i=1;i<=10;i++) {somme=somme+i;} cout << somme; Architecture des ordinateurs p. 35

36 Synthèse boucles+conditionnelles (2) Ce qui nous donne en C : int somme=0; int i=1; boucle: cmp(i,10); jg(fin_boucle); somme=somme+i; i++; jmp(boucle); fin_boucle: cout <<somme; Architecture des ordinateurs p. 36

37 Synthèse boucles+conditionnelles (3) Reprenons l exemple du calcul de la plus grande puissance de 17 strictement inférieure à En C++ : int n=1; while (n*17 < 5423) { n=n*17; } Architecture des ordinateurs p. 37

38 Synthèse boucles+conditionnelles (4) Ce qui nous donne en C : int n=1; boucle: cmp(n*17,5423); jge(fin_boucle); n=n*17; jmp(boucle); fin_boucle: (...) Architecture des ordinateurs p. 38

39 Connecteurs logiques (1) Les connecteurs && (et logique), (ou logique) et! (négation) seront remplacés par l utilisation conjointe : de l instruction de comparaison des labels des sauts conditionnels Il est impératif de bien connaître le sens des connecteurs : cond1 && cond2 : vrai si cond1 et cond2 sont vrais cond1 cond2 : vrai si cond1 est vrai, ou cond2 est vrai, ou les deux sont vrais!cond : vrai si cond est faux Architecture des ordinateurs p. 39

40 Connecteurs logiques (2) En C++, tester si un entier est plus grand que deux autres entiers : if (x <= z && y <= z) cout << "z est le + grand"; else cout << "z n est pas le + grand"; Architecture des ordinateurs p. 40

41 Connecteurs logiques (3) En C, tester si un entier est le plus grand de trois entiers : cmp(x,z); jg(cas_else); cmp(y,z); jg(cas_else); cout << "z est le + grand"; jmp(fin_if); cas_else: cout << "z n est pas le + grand"; fin_if: Architecture des ordinateurs p. 41

42 Connecteurs logiques (4) En C++, tester si un entier n est pas le plus petit de trois entiers : if (x <= z y <= z) cout << "z n est pas le + petit"; else cout << "z est le + petit"; Architecture des ordinateurs p. 42

43 Connecteurs logiques (5) En C++, tester si un entier n est pas le plus petit de trois entiers : cmp(x,z); jle(cas_then); cmp(y,z); jg(cas_else); cas_then: cout << "z n est pas le + petit"; jmp(fin_if); cas_else: cout << "z est le + petit"; fin_if: Architecture des ordinateurs p. 43

44 Connecteurs logiques (6) Une autre possibilité : cmp(x,z); jle(cas_then); cmp(y,z); jle(cas_then); cout << "z est le + petit"; jmp(fin_if); cas_then: cout << "z n est pas le + petit"; fin_if: Architecture des ordinateurs p. 44

45 Les sous-programmes en C Les appels aux sous-programmes ne se feront plus directement. On utilisera l instruction suivante : call(<nom-sous-programmme>) Cette instruction exécute le sous-programme passé en paramètre. Elle place une information sur la pile correspondant en assembleur à l adresse de la prochaine instruction à exécuter après l exécution du sous-programme (en C : cette valeur est 666). Architecture des ordinateurs p. 45

46 La pile (1) Pile : partie de la mémoire de l ordinateur, permettant de sauvegarder temporairement des informations, passer des paramètres aux sous-programmes, créer des variables locales, sauvegarder le contexte lors de l appel aux sous-programmes,... Architecture des ordinateurs p. 46

47 La pile (2) push(<valeur>) Cette instruction dépose la valeur passée en argument au sommet de la pile. Cette valeur peut être une valeur immédiate (un entier ou un caractère), ou bien une variable dont le contenu sera placé sur la pile (variable entier, caractère, pointeur). Le pointeur esp indiquant le sommet de la pile est automatiquement décrémenté de 1. Architecture des ordinateurs p. 47

48 La pile (3) pop(<variable>) Cette instruction retire la valeur placée au sommet de la pile et la stocke dans la variable passée en paramètre. Le pointeur esp indiquant le sommet de la pile est automatiquement incrémenté de 1. Architecture des ordinateurs p. 48

49 La pile (4) adresse contenu pointeur de pile 2C56 2C57 2C58 2C59 2C5A 2C5B int x=523 ; char c= A ; push(x) ; Architecture des ordinateurs p. 49

50 La pile (5) adresse contenu pointeur de pile 2C56 2C57 2C58 2C59 2C5A 2C5B 523 esp int x=523 ; char c= A ; push(x) ; push(c) ; Architecture des ordinateurs p. 49

51 La pile (6) adresse contenu pointeur de pile 2C56 2C57 2C58 2C59 2C5A A esp 2C5B 523 esp+1 int x=523 ; char c= A ; push(x) ; push(c) ; push(1200) ; Architecture des ordinateurs p. 49

52 La pile (7) adresse contenu pointeur de pile 2C56 2C57 2C58 2C esp 2C5A A esp+1 2C5B 523 esp+2 int x=523 ; char c= A ; push(x) ; push(c) ; push(1200) ; push( F ) ; Architecture des ordinateurs p. 49

53 La pile (8) adresse contenu pointeur de pile 2C56 2C57 2C58 F esp 2C esp+1 2C5A A esp+2 2C5B 523 esp+3 int x=523 ; char c= A ; push(x) ; push(c) ; push(1200) ; push( F ) ; pop(c) ; /*c == F */ Architecture des ordinateurs p. 49

54 La pile (9) adresse contenu pointeur de pile 2C56 2C57 2C58 F 2C esp 2C5A A esp+1 2C5B 523 esp+2 int x=523 ; char c= A ; push(x) ; push(c) ; push(1200) ; push( F ) ; pop(c) ; /*c == F */ pop(x) ; /*x = 1200*/ Architecture des ordinateurs p. 49

55 La pile (10) adresse contenu pointeur de pile 2C56 2C57 2C58 F 2C C5A A esp 2C5B 523 esp+1 int x=523 ; char c= A ; push(x) ; push(c) ; push(1200) ; push( F ) ; pop(c) ; /*c == F */ pop(x) ; /*x = 1200*/ Architecture des ordinateurs p. 49

56 Le passage des paramètres en C (1) Les passage des paramètres pour les sous-programmes va maintenant être effectué au moyen de la pile : Avant l appel : on empile les paramètres. Pendant l appel : on accède aux paramètres au moyen du pointeur de pile esp. Après l appel : on dépile les paramètres avec pop ou en incrémentant le pointeur de pile esp. Architecture des ordinateurs p. 50

57 Le passage des paramètres en C (2) Pendant un appel à call(sous-programme) : 666 esp Paramètre N esp+1... Paramètre 2 esp+n-1 Paramètre 1 esp+n Architecture des ordinateurs p. 51

58 Le passage des paramètres en C (3) void print_char(char c) { cout << c; } int main() { print_char( A ); } Architecture des ordinateurs p. 52

59 Le passage des paramètres en C (4) void print_char() { cout << (char) esp[1]; } int main() { push( A ); // on empile le param call(print_char); esp++; // on dépile le param } Architecture des ordinateurs p. 53

60 Le passage des paramètres en C (5) Pendant l appel à call(print_char) : 666 esp A esp+1 Architecture des ordinateurs p. 54

61 Le passage des paramètres en C (6) void soustraction(int a, int b) { cout << (a - b); } int main() { soustraction(123,44); } Architecture des ordinateurs p. 55

62 Le passage des paramètres en C (7) void soustraction() { cout << esp[2] - esp[1]; } int main() { push(123); // empile les params push(44); call(soustraction); esp+=2; // dépile les 2 params} Architecture des ordinateurs p. 56

63 Le passage des paramètres en C (8) Pendant l appel à call(soustraction) : 666 esp 44 esp esp+2 Architecture des ordinateurs p. 57

64 Les variables locales en C (1) Les variables locales seront maintenant définies elles aussi au moyen de la pile, en décrémentant le pointeur de sommet de pile esp d autant de cases mémoire que nécessaire. En plus de esp dénotant le sommet de la pile, on utilisera un second pointeur pour retenir l emplacement de esp au moment de l appel à la procédure. Ce second pointeur est appelé ebp. Architecture des ordinateurs p. 58

65 Les variables locales en C (2) Pendant l appel à un sous-programme, avec N paramètres et M variables locales (en ayant fait ebp=esp avant de créer les var. locales) : Var loc M ebp-m esp... Var loc 1 ebp-1 esp+m ebp esp+m Paramètre N ebp+1 esp+m Paramètre 1 ebp+n esp+m +N Architecture des ordinateurs p. 59

66 Les variables locales en C (3) void moyenne(int a, int b, int c) { int somme=(a + b + c); cout << somme / 3; } int main() { moyenne(3,12,56);} Architecture des ordinateurs p. 60

67 Les variables locales en C (4) void moyenne() { ebp=esp; esp--; // crée une var locale ebp[-1]=ebp[1]+ebp[2]+ebp[3]; cout << ebp[-1] / 3; esp++; //dépile la var locale} int main() { push(3); push(12); push(56); call(moyenne); esp+=3;} Architecture des ordinateurs p. 61

68 Les variables locales en C (5) Pendant l appel à call(moyenne) et création d une variable locale : 71 ebp-1 esp 666 ebp esp+1 56 ebp+1 esp+2 12 ebp+2 esp+3 3 ebp+3 esp+4 Architecture des ordinateurs p. 62

69 Les variables locales en C (6) void moyenne() { ebp=esp; esp--; // crée une var locale ebp[-1]=ebp[1]+ebp[2]+ebp[3]; cout << ebp[-1]/3; esp++; //dépile la var locale} int main() { push(3); push(12); push(56); call(moyenne); esp+=3;} Architecture des ordinateurs p. 63

70 Les variables locales en C (7) Quelques recommandations : Toujours effectuer ebp=esp en entrant dans un sous programme utilisant des arguments. Toujours (sauf cas spéciaux) dépiler les arguments en sortie d un sous-programme, en effectuant ebp+=n, où N est le nombre de paramètres. Architecture des ordinateurs p. 64

Structure d un programme

Structure d un programme Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé

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

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é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

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 7 17 décembre 2012 Archi 1/1 Fonctions, suite et fin Archi 2/1 Rappel Forme générale d un sous-programme (fonction) : etiquette sousprogramme: push ebp ; empile la valeur

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

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

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION 145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu

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

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

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

Programmation assembleur : aperçu

Programmation assembleur : aperçu Assembleur : Younès EL AMRANI. 1 Programmation assembleur : aperçu Programmation en assembleur : NASM Module M14 Semestre 4 Printemps 2010 Equipe pédagogique : Younès El Amrani, Abdelhakim El Imrani, Faissal

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

Rappels d architecture

Rappels d architecture Assembleur Rappels d architecture Un ordinateur se compose principalement d un processeur, de mémoire. On y attache ensuite des périphériques, mais ils sont optionnels. données : disque dur, etc entrée

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

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

Logiciel de base. Première année ENSIMAG

Logiciel de base. Première année ENSIMAG Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS CCS Sommaire Généralités sur le langage. 2 Structure d un programme en C.. 3 Les constantes et équivalences.. 4 Les variables...

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

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

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Claude Delannoy. 3 e édition C++

Claude Delannoy. 3 e édition C++ Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

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

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

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

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

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre Assembleur Faculté I&C, André Maurer, Claude Petitpierre INTRODUCTION Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre MEMOIRE Mémoire Faculté I&C, André Maurer, Claude Petitpierre Mémoire

Plus en détail

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155) Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155) F. Pellegrini Université Bordeaux 1 Ce document est copiable et distribuable librement et gratuitement à

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

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

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

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

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

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

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

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96 Assembleur i8086 Philippe Preux IUT Informatique du Littoral Année universitaire 95 96 1 Avertissement Ce document décrit le langage d assemblage étudié et utilisé dans le cadre des TP d architecture.

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

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

SUPPORT DE COURS. Langage C

SUPPORT DE COURS. Langage C Dpt Informatique 2010-2011 SUPPORT DE COURS Langage C Semestre 1 par : «CaDePe» Marie-Françoise Canut Marianne de Michiel André Péninou Table des Matières 1 Généralités...8 1.1 Introduction aux langages

Plus en détail

Gestion mémoire et Représentation intermédiaire

Gestion mémoire et Représentation intermédiaire Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,

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

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

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

CM2 L architecture MIPS32

CM2 L architecture MIPS32 CM2 L architecture MIPS32 Olivier Marchetti (CM-TD-TP) Alexandre Brière (TD-TP) Laboratoire d informatique de Paris 6 Pôle SoC UPMC Année 2014-2015 Instructions MIPS Contrôle Données en MIPS E/S en MIPS

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

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

Programmation Classique en langage C

Programmation Classique en langage C DI GALLO Frédéric Programmation Classique en langage C Cours du Cycle d Approfondissement CNAM ANGOULEME 2000-2001 DI GALLO Frédéric Page 1 01/04/01 PROGRAMMATION CLASSIQUE : LANGAGE C DI GALLO Frédéric

Plus en détail

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts

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

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia Ministère de l Enseignement Supérieur, de la Recherche Scientifique et de la Technologie Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Djerba SUPPORT DE COURS

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

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

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

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

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

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

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

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

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

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

COMPARAISONDESLANGAGESC, C++, JAVA ET

COMPARAISONDESLANGAGESC, C++, JAVA ET REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY

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

La programmation des PIC en C. Les fonctions, les interruptions.

La programmation des PIC en C. Les fonctions, les interruptions. La programmation des PIC en C Les fonctions, les interruptions. Réalisation : HOLLARD Hervé. http://electronique-facile.com Date : 26 août 2004 Révision : 1.2 Sommaire Sommaire... 2 Introduction... 3 Structure

Plus en détail

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi 802.11 module François SCHNEIDER Lycée Victor-Hugo BESANÇON. STS SE FreeRTOS Programmation réseau WIFI Programmation réseau Socket Tcp FlyPort smart Wi-Fi 802.11 module Prérequis : langage C, connaissance réseau : Ip,

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

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

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Cours de Programmation Impérative: Zones de mémoires et pointeurs Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien

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

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

Java Licence Professionnelle CISII, 2009-2010

Java Licence Professionnelle CISII, 2009-2010 Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :

Plus en détail

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/??

Algorithmique I. Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr. Algorithmique I 20-09-06 p.1/?? Algorithmique I Augustin.Lux@imag.fr Roger.Mohr@imag.fr Maud.Marchal@imag.fr Télécom 2006/07 Algorithmique I 20-09-06 p.1/?? Organisation en Algorithmique 2 séances par semaine pendant 8 semaines. Enseignement

Plus en détail

Programmation en langage C

Programmation en langage C Programmation en langage C Anne CANTEAUT INRIA - projet CODES B.P. 105 78153 Le Chesnay Cedex Anne.Canteaut@inria.fr http://www-rocq.inria.fr/codes/anne.canteaut/cours C 2 Table des matières 3 Table des

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

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

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

Initiation. àl algorithmique et à la programmation. en C

Initiation. àl algorithmique et à la programmation. en C Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,

Plus en détail

PIC EVAL Dev Board PIC18F97J60

PIC EVAL Dev Board PIC18F97J60 PIC EVAL Dev Board PIC18F97J60 2 TP1 : Prise en main de l environnement de programmation pour la carte PIC EVAL-ANFA Pour répondre aux questions et justifier vos réponses, vous pouvez faire des copies

Plus en détail

IRL : Simulation distribuée pour les systèmes embarqués

IRL : Simulation distribuée pour les systèmes embarqués IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

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

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

Corrigés des premiers exercices sur les classes

Corrigés des premiers exercices sur les classes Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.

Plus en détail

ASR1 TD7 : Un microprocesseur RISC 16 bits

ASR1 TD7 : Un microprocesseur RISC 16 bits {Â Ö Ñ º ØÖ Ý,È ØÖ ºÄÓ Ù,Æ ÓÐ ºÎ ÝÖ Ø¹ ÖÚ ÐÐÓÒ} Ò ¹ÐÝÓÒº Ö ØØÔ»»Ô Ö Óº Ò ¹ÐÝÓÒº Ö» Ö Ñ º ØÖ Ý»¼ Ö½» ASR1 TD7 : Un microprocesseur RISC 16 bits 13, 20 et 27 novembre 2006 Présentation générale On choisit

Plus en détail

Programmation système en C/C++

Programmation système en C/C++ Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous

Plus en détail

Programmation système de commandes en C

Programmation système de commandes en C Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes

Plus en détail

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année 2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par

Plus en détail

INITIATION A LA PROGRAMMATION

INITIATION A LA PROGRAMMATION 2004-2005 Université Paris Dauphine IUP Génie Mathématique et Informatique INITIATION A LA PROGRAMMATION PROCEDURALE, A L'ALGORITHMIQUE ET AUX STRUCTURES DE DONNEES PAR LE LANGAGE C Maude Manouvrier La

Plus en détail

INF111. Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1/inf111/ Massih-Reza Amini

INF111. Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1/inf111/ Massih-Reza Amini Initiation à la programmation impérative en C http://ama.liglab.fr/ amini/cours/l1// Massih-Reza Amini Université Joseph Fourier Laboratoire d Informatique de Grenoble 2/52 Introduction Structures de contrôle

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

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011

Temps Réel. Jérôme Pouiller <j.pouiller@sysmic.org> Septembre 2011 Temps Réel Jérôme Pouiller Septembre 2011 Sommaire Problèmatique Le monotâche Le multitâches L ordonnanement Le partage de ressources Problèmatiques des OS temps réels J. Pouiller

Plus en détail