La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Initiation à la programmation Par M. Machkour Université Ibn Zohr SMP4 2013/2014 Faculté des Sciences Agadir.

Présentations similaires


Présentation au sujet: "Initiation à la programmation Par M. Machkour Université Ibn Zohr SMP4 2013/2014 Faculté des Sciences Agadir."— Transcription de la présentation:

1 Initiation à la programmation Par M. Machkour Université Ibn Zohr SMP4 2013/2014 Faculté des Sciences Agadir

2 Ch1 Introduction au langage C

3 SMP4 2013/2014M.Machkour3 Objectifs Définir les notions et les termes suivants :  Programme & langage de programmation  Type de langages  Compilateur  Langage C  Mise en œuvre d'un programme C  Structure simplifiée d'un programme C

4 SMP4 2013/2014M.Machkour4  Programmation - La programmation = techniques de rédaction de programmes - Programme= traduction d'un algorithme dans un langage de programmation

5 SMP4 2013/2014M.Machkour5  Langages de programmation - Langages machines (binaire 010101) - Langages d'assemblage (add ax, bx) - Langages de haut niveau ou évolué(printf, read,write,for)

6 SMP4 2013/2014M.Machkour6  Langages machines (binaire 010101) -Premiers langages; -Programmation difficile et ennuyeuse; -Détection et correction des erreurs très difficile; -Programme non portable; -Nombre de programmeurs très réduit.

7 SMP4 2013/2014M.Machkour7  Langage d'assemblage -Utilise des symboles plus significatifs (add ax, bx) -Moins difficiles que les premiers -Nécessite un traducteur (assembleur) Pg source en assembleurPg en langage machineAssembleur ( traduction)

8 SMP4 2013/2014M.Machkour8  Langage de haut niveau Programmation avec les langages assembleur restait encore difficile et limitée. =>Apparition des langages dits langages de haut niveau(LHN) utilisant des mots proches du langage humain (printf, read, write) Parmi ces langages : C, Pascal, Basic…

9 SMP4 2013/2014M.Machkour9  Langage de haut niveau -Programmation moins difficile -Nbre de Programmeurs très grand -Nécessite un traducteur = compilateur ou interpréteur -Compilateur programme qui traduit un programme écrit en LHN en programme écrit en langage machine -Compilation est la traduction d'un programme C en programme machine Pg écrit en LHNPg en machineCompilateur Pg exécutable Pg source Processus de compilation

10 SMP4 2013/2014M.Machkour10  Présentation du langage C -Le langage C est un langage hybride intégrant des instructions de bas niveau (manipulation des adresses et des bits) des instructions de haut niveau(les structures de contrôle). -Il a été conçu dans les années 70 par Dennis Ritchie pour récrire le système d'exploitation Unix. -On l'utilisait pour écrire des logiciels tels que les tableurs, les jeux et les applications de traitement de texte. -Langage structuré (fonction ou procédure, structure de contrôle) -Langage portable(norme ANSI) -Premier langage de programmation dans (+) institutions.,

11 SMP4 2013/2014M.Machkour11  Exemple de programme(1) #include main() { printf("Salam"); } Point d'entrée dans le programme Début du programme Fin du programme Directive de compilation(appel de pré- processeur)

12 SMP4 2013/2014M.Machkour12  Exemples de programme(2) #include #define PI 3.14 main() { int n; Déclaration d'une variable de type entier n=10; Affectation printf("la valeur de n est %d \n",n); printf ("la valeur de PI est %f",PI); }

13 SMP4 2013/2014M.Machkour13  Mise en œuvre d'un programme Édition de Pr. source ext.ccompilation erreur V Correction F Pr. exécutable Exécution

14 SMP4 2013/2014M.Machkour14  Structure simplifiée d'un programme C Directives de compilations [void] main() { les instructions de déclarations de variables les instructions d'exécution }

15 SMP4 2013/2014M.Machkour15  Exercices 1)Écrire un programme C qui calcule le périmètre d'un cercle. 2)Écrire un programme C qui permute les valeurs de deux variables entières.

16 SMP4 2013/2014M.Machkour16  Exercice 1 #include #define PI 3.14 /*ce programme calcul le périmètre d'un cercle dont le rayon est lu au clavier*/ main() { float rayon, perimetre; printf("donner le rayon"); scanf("%f",&rayon); perimetre=2*rayon*PI; printf("le perimetre est:%f",perimetre); getch(); /*pour fixer l'écran*/ }

17 SMP4 2013/2014M.Machkour17  Exercice 2 #include main() { int x, y, z; printf("donner les valeurs de X et Y"); scanf("%d%d",&x,&y); printf("les valeurs de X et Y avant permutation %d %d\n",x,y); z=x; x=y; y=z; printf("les valeurs de X et Y après permutation %d %d",x,y); getch(); }

18 Ch2 Les éléments du langage C

19 SMP4 2013/2014M.Machkour19 Objectifs  L'alphabet du langage C  Les identificateurs et mots clés du langage  Les types de données du langage C  Les séparateurs  Les opérateurs du langage C

20 SMP4 2013/2014M.Machkour20  L'alphabet du langage C L'alphabet du C est composé de : -26 lettres de l’alphabet Français(minuscules, majuscules) -chiffres 0..9 -caractères spéciaux : -! * + \ " < -# ( = | { > -% ) ; ] / -^ - [ :, ? -& _ } ’. (espace) -séquences d échappement telles : -passage à la ligne \n -tabulation \t -backspace (retour en arrière) \b …

21 SMP4 2013/2014M.Machkour21  Les variables -Le nom d'une variable est un identificateur différent des mots clés du langage. -Un identificateur peut contenir jusqu'à 31 caractères. -La casse est respectée (i.e. S ≠ s)

22 SMP4 2013/2014M.Machkour22  Exemple surface, vol_cylindre, PI, som_1.

23 SMP4 2013/2014M.Machkour23  Contre-exemples surface!, com client, 1vol surface.disque

24 SMP4 2013/2014M.Machkour24  Les mots clés Un mot clé est un mot (identificateur) qui a une signification et un but précis et on ne peut l'utiliser comme nom d'un objet du programme (variable, constante, …).

25 SMP4 2013/2014M.Machkour25  Les mots clés du langage C auto extern sizeof break float static case for struct char goto switch const if typedef continue int union default long unsigned do register void double return volatile else short while enum signed

26 SMP4 2013/2014M.Machkour26  Les types de données int : ce type représente les entiers positifs et négatifs sur 2 ou 4 octets. Les valeurs entières dans ce type peuvent être écrites : en décimal :18 ou en octal : 022 ou en hexadécimal : 0x12

27  Remarque int = entier vu en algorithmique. SMP4 2013/2014M.Machkour27

28 SMP4 2013/2014M.Machkour28  Les types de données float : ce type représente les réels sur 4 octets : 1.0f, 8.0F, 23.5, 1.23, 12.5e-3. 12.5E-3

29  Remarque float= réel vu en algorithmique. SMP4 2013/2014M.Machkour29

30 SMP4 2013/2014M.Machkour30  Les types de données -double représente des réels double précision 12.3l, 1.5L.

31  Remarque double= réel vu en algorithmique. SMP4 2013/2014M.Machkour31

32 SMP4 2013/2014M.Machkour32  Les types de données char : ce type représente les caractères '?','A' …

33  Remarque char= caractère vu en algorithmique. SMP4 2013/2014M.Machkour33

34 SMP4 2013/2014M.Machkour34  Les types de données avec modificateurs -short int =short représente les entiers positifs et négatifs sur 2 octets. -unsigned int = unsigned représente les entiers positifs : 20u, 15U -long int=long représente des entiers sur 4 octets: - 12, 11l, 13L -unsigned long int=unsigned long représente des entiers positifs sur 4 octets:100UL -long double représente des réels sur 10 octets.

35 SMP4 2013/2014M.Machkour35  Les séparateurs U n séparateur est un symbole qu'on utilise pour séparer les mots du langage (ponctuation) -espaces -saut de ligne -,(virgule) - { } - ( ) -; -:

36 SMP4 2013/2014M.Machkour36  Exemples int x, y, z; int x,y;  Contre-exemple intx, y;

37 SMP4 2013/2014M.Machkour37  Les commentaires -Texte écrit entre les symboles /* et */ et qui est ignoré par le compilateur -Texte descriptif destiné aux lecteurs de programmes.

38 SMP4 2013/2014M.Machkour38  Exemple /*programme écrit par… Le….*/ include main() { /*ce prog affiche bonjour*/ printf("bonjour"); }

39  Commentaire ligne Pour un commentaire qui porte sur une seule ligne, on utilise //. SMP4 2013/2014M.Machkour39

40 SMP4 2013/2014M.Machkour40  Exemple //programme écrit par … include main() { //ce programme affiche bonjour printf("bonjour"); }

41 SMP4 2013/2014M.Machkour41  Déclaration des variables type nom_varaible;

42  Exemples int x; float salaire; SMP4 2013/2014M.Machkour42

43 SMP4 2013/2014M.Machkour43  Déclaration des variables avec initialisation type nom_varaible [= expression];

44  Exemples int x=1; float salaire=12000; SMP4 2013/2014M.Machkour44

45 SMP4 2013/2014M.Machkour45  Déclaration de plusieurs variables de même type type1nom_varaible11[=expr11], nom_variable12[=expr12],…; type2 nom_varaible21 [=expr21], nom_variable22 [=expr22],…; ….

46  Exemples int x, y=1, z; float prime, salaire=12000; SMP4 2013/2014M.Machkour46

47 SMP4 2013/2014M.Machkour47  Exemples int x; float y=12.3, z; char genre='F'; unsigned a, b=1;

48 SMP4 2013/2014M.Machkour48  Remarques -Taille d'un type : sizeof(type) -Taille d'une variable : sizeof(variable)

49 SMP4 2013/2014M.Machkour49  Les opérateurs du langage C Trois types d'opérateurs -unaires : +1, -12 -binaires : x + 1 -ternaire : x>y ? x : y. Exemples d'utilisation max= x>y ? x : y; min= x<y ? x : y;

50 SMP4 2013/2014M.Machkour50  Les opérateurs du langage C -L'opérateur d'affectation = (  algorithmique) int x=3+1; y=3.0/2.0; De façon générale Variable = expression (expression même définition (algo)) Variable et expression ont même type ( ou type compatible).

51  Valeur d'une expression affectation 3+1 est une expression. Sa valeur est 4. x=3+1 est aussi une expression sa valeur est donnée par la valeur de x: 4. SMP4 2013/2014M.Machkour51

52  Associativité de l'opérateur = = est associatif à droite (vs gauche). SMP4 2013/2014M.Machkour52

53  Comment évaluer a=b=c? a=b=c  a=(b=c). SMP4 2013/2014M.Machkour53

54  Exemples de calcul int x, y,z; x=1; y=x+2; z=y=x; SMP4 2013/2014M.Machkour54

55  Exemples de calcul(réponse) int x, y,z; x=1;//x a la valeur 1 y=x+2;//y a la valeur 3, x=1 z=y=x;//y a la valeur de 1, z a la valeur 1. SMP4 2013/2014M.Machkour55

56  Exemples de calcul(suite) int x, y,z; x=1; y=x+2; z=y=y+x; SMP4 2013/2014M.Machkour56

57  Exemples de calcul(réponse) int x, y,z; x=1;//x a la valeur 1 y=x+2;//y a la valeur 3, x=1 z=y=x+y;//y a la valeur de 4, z a la valeur 4. SMP4 2013/2014M.Machkour57

58 SMP4 2013/2014M.Machkour58  Les opérateurs du langage C(suite) -Les opérateurs arithmétiques : + : addition, * : multiplication, - : différence, / : quotient, %: modulo

59  Exemples de calcul int x, z, v; float w; x=3%2; z=3%2; v=3/2; w=3.0/2.0 SMP4 2013/2014M.Machkour59

60 SMP4 2013/2014M.Machkour60  Les opérateurs du langage C(suite) -Les opérateurs relationnels (de comparaison) == : égalité, (= en algo) < : inférieur, > : supérieur, =, !=: différent

61  Valeur de vérité Les opérateur de comparaison génère des valeurs entières(pas de booléennes) - 0 pour fausse - 1 pour vraie SMP4 2013/2014M.Machkour61

62  Exemple de calcul int x=3>2; //x= int y = 3!=2; //y= int z= 1==2;//z= SMP4 2013/2014M.Machkour62

63 SMP4 2013/2014M.Machkour63  Les opérateurs du langage C(suite) -Les opérateurs Logiques ou booléens &&(et), ||(ou), !(non)

64  Exemple de calcul int x=1; int y=2; int a, b, c,d,e; a=x>2;//a= b=y>1;//b= c=(x>2) && (y>1);//c= d=(x>2) || (y>1);//d= e=!d;//e= SMP4 2013/2014M.Machkour64

65 SMP4 2013/2014M.Machkour65  Les opérateurs du langage C -Incrémentations -Pré-incrémentation ++x -Post-incrémentation x++ Objectif x=x+1 Différence entre pré et post int x=1; y=++x;=>y=2 et x=2 Int x=1; y=x++;=>y=1 et x=2

66 SMP4 2013/2014M.Machkour66  Les opérateurs du langage C -Décrémentations -Pré-décrémentation --x -Post-décrémentation x— Objectif x=x-1 Différence entre pré et post int x=2; y=--x; => y=1 et x=1 Int x=2; y=x--;=>y=2 et x=1

67 SMP4 2013/2014M.Machkour67  Les opérateurs du langage C Les opérateurs Bit à bit : | (ou), & (et), ~(négation), ^ (ou exclusif). int a=4 | 10; int b=4 & 10; 4= 0 1 0 0 10= 1 0 1 0 | 1 1 1 0 (a) & 0 0 0 0 (b)

68 SMP4 2013/2014M.Machkour68  Les opérateurs du langage C -Opérateur conditionnel ? expression ? expr1: expr2; Exemple max = (x>y) ? x :y;

69 SMP4 2013/2014M.Machkour69  Les opérateurs du langage C -Décalage (des bits) 4 10 =100 2 ; x = 4 0| 000 0100  0 => x=1000=8 4 10 =100 2 ; x = 4 >> 1 => 0  0 000 0100 | 0 => x=10=2 -Décalage à gauche << (*2) x << n -Décalage à droite >> (/2) x>> n

70 SMP4 2013/2014M.Machkour70  Les opérateurs du langage C -Affectations combinées : Opérateur = avec un autre opérateur Par exemple += est nouveau opérateur et x+=3;  x=x+3; Opérateurs utilisés sont Arithmétiques +,*,-,/,% Bit à bit Décalage

71 SMP4 2013/2014M.Machkour71  Les opérateurs du langage C Exemples d'affectations combinées int x=3; x+=2; x=5 double y=1; y-=2; long z=3; int a=2; z*=a; z=6

72 SMP4 2013/2014M.Machkour72  Les opérateurs du langage C -L'opérateur sizeof Donne la taille d'un type ou d'une variable donnée en argument. Exemple int n=sizeof(int); -Les opérateurs de conversion de type (type) expression Exemple surface = (float) rayon*rayon*PI;

73 SMP4 2013/2014M.Machkour73  Les opérateurs du langage C -L'opérateur séquentiel (,) Enchaîne plusieurs expr et retourne la dernière : expr1, expr2,…, exprn Exemples int x, y=1; x=(1+2, y+1, ++y); x=(y+=2, y+1, y++);

74 SMP4 2013/2014M.Machkour74  Associativité des opérateurs -Opérateurs associatifs à gauche Calcul de a+b+c :  (a+b)+c Calcul de a*b*c  (a*b)*c De même pour -, %, / Exemple int y= 4/3/2; /* la valeur de y est 0 */ int z=4%3%2; /* la valeur de z est 1 */

75 SMP4 2013/2014M.Machkour75  Associativité des opérateurs -Opérateurs associatifs à droite Calcul de a=b=c :  a=(b=c ) Calcul de + + a  + (+a) De même pour - unaire

76 SMP4 2013/2014M.Machkour76  Priorité des opérateurs Considérons l'expression a+b*c  a + (b*c) La priorité de * est supérieure à celle de + Dans l'expression (a+b)*c ) est prioritaire que * Exemple -x*y+z  ((-x)*y)+z

77 SMP4 2013/2014M.Machkour77  Table de priorité ()++ -- post_incr_decr +- unaire++-- pre_incr_decr */%*/% +-+- =+=-=*=/=

78 SMP4 2013/2014M.Machkour78  Exercices -Donner les valeurs des variables y=x=2;y? 2 y+=1;y? 3 z=y++;y?, z? 4 3 z=++y;y?, z? 5 d=y/2;d? 2 f=y%2f? 1 h=2,3;h? 2 h=(2,3); h=3

79 SMP4 2013/2014M.Machkour79  Exercices Soit les déclarations suivantes: int x=1, y=2, z=3, t=4; Donner les valeurs des expressions suivantes x*y/z; (x*y)/z0 x*y%z+1 ((x*y)%z) +13 ++x *y -z-- ( (++x )*y) –(z--)1 1- -y * ++ t 1- ((-y) * (++ t))11 ²

80 Ch5 Les instructions et les structures de contrôles

81 SMP4 2013/2014M.Machkour81 Objectifs  Les instructions élémentaires  Les blocs d'instructions  Les structures de contrôle

82 SMP4 2013/2014M.Machkour82  Les instructions élémentaires Instruction élémentaire : -Une expression terminée par ; (instruction- expression) -Instruction vide ;

83 SMP4 2013/2014M.Machkour83  Exemples 1+2;//La valeur est ? x=1+2;//La valeur est ? printf("bonjour"); ; //(instruction vide)

84 SMP4 2013/2014M.Machkour84  Bloc d'instructions Définition Un bloc d'instructions est une suite d'instructions délimitée par des { et }.

85 Exemple { int x; //Déclaration des variables (locales) 1+2; x=1+2; printf("bonjour"); } SMP4 2013/2014M.Machkour85

86 SMP4 2013/2014M.Machkour86  Les structures de contrôle -La structure if (1) if (condition) instr|bloc

87  Remarque et rappel - Les valeurs de vérités en C sont 0 et 1. - Valeur d'une condition en C: si condition=0, elle est fausse; si condition != 0, elle est vraie; SMP4 2013/2014M.Machkour87

88  Exemple concernant le rappel int x; x=1>2;//x= x=1<2;//x= x=1==2;//x= x=1!=2;//x= SMP4 2013/2014M.Machkour88

89 SMP4 2013/2014M.Machkour89  Exemple if(1) #include main() { int min, a,b; printf("donner a et b"); scanf("%d%d",&a,&b); min=a; if (min>b) min=b; printf("le minimum de a et b est: %d", min); }

90 SMP4 2013/2014M.Machkour90  Exemple if(1) #include main() { int min, a,b; printf("donner a et b"); scanf("%d%d",&a,&b); min=a; if (min>b) { min=b; } printf("le minimum de a et b est: %d", min); }

91 SMP4 2013/2014M.Machkour91  Les structures de contrôle(suite) -La structure if (2) if (condition) instr1|bloc1 else instr2|bloc2

92 SMP4 2013/2014M.Machkour92  Exemple if(2) #include main() { int min, a,b;/*déclaration des variables*/ printf("donner a et b");/*message d'invitation*/ scanf("%d%d",&a,&b); if (a>b) min=b; else min=a; printf("le minimum de a et b est: %d", min); }

93 SMP4 2013/2014M.Machkour93  Exemple if(2) #include main() { int min, a,b;/*déclaration des variables*/ printf("donner a et b");/*message d'invitation*/ scanf("%d%d",&a,&b); if (a>b) { min=b; } else { min=a; } printf("le minimum de a et b est: %d", min); }

94  Remarque if(1) instr SMP4 2013/2014M.Machkour94

95  Remarque int x=1; if(x=0) instr SMP4 2013/2014M.Machkour95

96  Remarque - int x=1; if(x==0) instr SMP4 2013/2014M.Machkour96

97 SMP4 2013/2014M.Machkour97  Exercices - Écrire un programme qui lit la moyenne d'un étudiant et affiche s'il est admis ou non. - Écrire un programme qui résout l'équation ax+b=0. - Écrire un programme qui résout l'équation ax 2 +bx+c=0.

98 SMP4 2013/2014M.Machkour98  Les structures de contrôle -La structure switch switch (expr) { case val1: listeInstr1 case val2: listeInstr2 … [default : listeInstr] }

99  Remarque listeInstri doit contenir l'instruction break; pour quitter switch une fois expr=vali (i=1…). SMP4 2013/2014M.Machkour99

100 SMP4 2013/2014M.Machkour100  Exemple (switch) Lire un opérateur "op" et deux entiers "n" et "m", et afficher la valeur de l'opération "n op m".

101 SMP4 2013/2014M.Machkour101  Exemple (switch) suite #include main() { char op; int n,m; printf("donner un opérateur"); scanf("%c",&op); printf("donner deux entiers:"); scanf("%d%d",&n,&m); switch(op) {case '+': printf("la somme de %d et %d est %d",n,m,n+m);break; case '-' : printf("la différence de %d et %d est %d",n,m,n-m);break; case '*': printf("la multiplication de %d et %d est %d",n,m,n*m);break; case '%':printf("le reste de %d par %d est %d",n,m,n%m);break; case '/':printf("le quotient de %d par %d est %d",n,m,n/m);break; default : printf("opérateur non valide"); }

102 SMP4 2013/2014M.Machkour102  Les structures de contrôle -La structure while (condition) est l'implémentation de tantque (cnd) faire. son expression est : While (condition) Instr| bloc

103 SMP4 2013/2014M.Machkour103  Les structures de contrôle Exemple : while #include main() {int s,n,i; printf("donner la valeur de n"); scanf("%d",&n); s=0;/*initialisation*/ i=1; while(i<=n) { s=s+i;/*s+=i;*/ i++ ; } printf("la somme est :%d",s); }

104 SMP4 2013/2014M.Machkour104  Les structures de contrôle -La structure do …while (condition) est l'implémentation de faire…tantque (cnd). son expression est : do Instr|bloc While (condition);

105 SMP4 2013/2014M.Machkour105  Les structures de contrôle Exemple : do …while #include main() {int s,n,i; printf("donner la valeur de n"); scanf("%d",&n); s=0; i=1; do { s=s+i; i++; } while(i<=n); printf("la somme est :%d",s); /*on peut aussi écrire s+=i; */ }

106 SMP4 2013/2014M.Machkour106  Les structures de contrôle -La structure for est l'implémentation de pour…finpour son expression est : for ([expr_initialisation]; [expr_cond]; [expr_MAJ]) instr|bloc Description L ’expression expr_initialisation est évaluée une seule fois, à l'entrée dans la boucle(i=1…). L ’expression expr_condition est ´évaluée et testée avant chaque passage dans la boucle(i<=n). L ’expression expr_MAJ est évaluée après chaque passage(i++, i--).

107 SMP4 2013/2014M.Machkour107  Exemple : for #include main() { int s,n,i; printf("donner la valeur de n"); scanf("%d",&n); s=0; for(i=1; i<=n; i++) s=s+i; /*s+=i;*/ printf("la somme est :%d",s); }

108 SMP4 2013/2014M.Machkour108  Exemple : for #include main() { int s,n,i; printf("donner la valeur de n"); scanf("%d",&n); s=0; i=1; for(; i<=n; i++) s=s+i; /*s+=i;*/ printf("la somme est :%d",s); }

109 SMP4 2013/2014M.Machkour109  Exemple : for #include main() { int s,n,i; printf("donner la valeur de n"); scanf("%d",&n); s=0; for(i=0; i<=n; i+=2) s=s+i; /*s+=i;*/ printf("la somme est :%d",s); }

110 SMP4 2013/2014M.Machkour110  Exemple : for #include main() { int s,n,i; printf("donner la valeur de n"); scanf("%d",&n); s=0; for(i=0; i<=n; i+=5) s=s+i; /*s+=i;*/ printf("la somme est :%d",s); }

111 SMP4 2013/2014M.Machkour111  Exemple : for #include main() { int s,n,i; printf("donner la valeur de n"); scanf("%d",&n); s=0; for(i=n; i>=0; i--) s=s+i; /*s+=i;*/ printf("la somme est :%d",s); }

112 SMP4 2013/2014M.Machkour112  Les structures de contrôle -L'instruction break Pour sortir d'une boucle ou de switch : break;

113 SMP4 2013/2014M.Machkour113  Les structures de contrôle L'instruction continue Pour arrêter l'itération en cours et passer à l'itération suivante : continue;

114 SMP4 2013/2014M.Machkour114  Exercices - Écrire un programme qui calcule et affiche la somme 1/1+1/2…+1/n. - Écrire un programme qui calcule et affiche la somme 1 2 +2 2 …+n 2.

115  Remarque Les boucles infinies while(1) … SMP4 2013/2014M.Machkour115

116  Remarque Les boucles infinies do … while(1); SMP4 2013/2014M.Machkour116

117  Remarque Les boucles infinies for(…; condition_toujours_vraie;…) SMP4 2013/2014M.Machkour117

118 Ch6 Les entrées/sorties formatées

119 SMP4 2013/2014M.Machkour119 Objectifs Apprendre à faire  Des lectures formatées scanf  Des écritures formatées printf

120 SMP4 2013/2014M.Machkour120  La fonction scanf - Syntaxe de scanf scanf (chaîne_format, &var1,&var2,…); - Chaîne_format peut contenir des espaces qui seront ignorés des caractères normaux des caractères de conversions précédés par % indiquant la nature ou le type de données à lire. Variables réceptrices des données

121 SMP4 2013/2014M.Machkour121  La fonction scanf un caractère de conversion peut être -d pour lire un entier(int) décimal int a; scanf("%d",&a);

122 SMP4 2013/2014M.Machkour122  La fonction scanf un caractère de conversion peut être -o pour lire un entier(int) octal int a; scanf("%o",&a);11

123 SMP4 2013/2014M.Machkour123  La fonction scanf un caractère de conversion peut être -x pour lire un entier(int) hexadécimal int a; scanf("%x",&a);a, 17

124 SMP4 2013/2014M.Machkour124  La fonction scanf un caractère de conversion peut être -u pour lire un entier(int) non signé unsigned a; scanf("%u",&a);

125 SMP4 2013/2014M.Machkour125  La fonction scanf un caractère de conversion peut être -i pour lire un entier avec différentes écritures (octale, hexadécimale ou décimale) int a; scanf("%i",&a); 0110xa11

126 SMP4 2013/2014M.Machkour126  La fonction scanf un caractère de conversion peut être -ld, lo,… pour lire des entiers long -hd,ho…pour lire des entiers courts (short)

127 SMP4 2013/2014M.Machkour127  La fonction scanf -c pour lire un caractère char car; scanf("%c",&car); -s pour lire une chaîne de caractères -f pour lire un float(e,g) float x; scanf("%f",&x); scanf("%e",&x); -lf pour lire un double(le,lg) -* pour ignorer la prochaine lecture int a; scanf("%*d%d",&a);13 12

128 SMP4 2013/2014M.Machkour128  La fonction scanf Le caractère de conversion peut être précédé par un nombre indiquant la taille de la donnée à lire : %2d scanf("%2d",&x);1234 printf("%d",x);12

129 SMP4 2013/2014M.Machkour129  La fonction scanf Exemples :plusieurs lectures int a; char c; float x; double y; scanf("%d%c%f%lf",&a,&c,&x,&y);

130 SMP4 2013/2014M.Machkour130  La fonction printf -Syntaxe printf(chaîne,expr1, expr2,…); -expri : expression dont on désire afficher la valeur. -chaîne contient du texte à afficher plus des caractères de formatage précédés par %.

131 SMP4 2013/2014M.Machkour131  La fonction printf : affichage des entiers int a=2, b=3 ; printf("la somme de %d et %d est %d",a,b, a+b); affiche : la somme de 2 et 3 est 5

132 SMP4 2013/2014M.Machkour132  La fonction printf : affichage des entiers en hexadécimal int a=180 ; printf(" %d en hexadécimal est %x ",a,a); affiche : 180 en hexadécimal est b4

133 SMP4 2013/2014M.Machkour133  La fonction printf : affichage des entiers en octal int a=180 ; printf(" %d en octal est %o ",a,a); affiche : 180 en octal est 264

134 SMP4 2013/2014M.Machkour134  La fonction printf : affichage des float float x=12.34 ; printf("la valeur de x est %f ",x); printf("la valeur de x est %.1f ",x);

135 SMP4 2013/2014M.Machkour135  La fonction printf : affichage des float float x=12.34 ; printf("la valeur de x est %f ",x); printf("la valeur de x est %.1f ",x); printf("la valeur de x est %e ",x); printf("la valeur de x est %g ",x);

136 SMP4 2013/2014M.Machkour136  La fonction printf Les caractères de formatage peuvent contenir –- qui cadre l ’argument converti à gauche dans la zone réceptrice (optionnel), –+ pour forcer la présence du signe, – espace pour placer un espace à la place du signe –0 pour mettre des 0 à gauche du nombre –Un nombre indiquant la taille ou s'affiche la donnée –Un nombre précédé par un point pour désigner Nbre de chiffres apès la virgule(réels) Nombre maximum de caractères(chaînes) Nombre minimum de chiffres pour un entier –# pour afficher 0, 0x ou le point décimal

137 SMP4 2013/2014M.Machkour137  La fonction printf (suite) A ces caractères s'ajoutent les caractères de conversion vus à la fonction scanf: d,u,x,o,s,f,lf…

138 SMP4 2013/2014M.Machkour138  La fonction printf (suite) Affichage des caractères spéciaux \' \" \n \b \t \\ \r \v

139 SMP4 2013/2014M.Machkour139  La fonction printf Exemples printf("la valeur de la surface est:%.2lf",surface); printf("la valeur de la surface est:%.2lf",rayon*rayon*PI); printf("la valeur de x est :%d et celle de y est :%d", x,y);

140 SMP4 2013/2014M.Machkour140  Exercices ­ Écrire un programme qui lit un entier décimal et l'affiche en octal et en hexadécimal. ­ Écrire un programme qui calcule et affiche le périmètre d'un cercle. ­ Écrire un programme qui calcule et affiche la surface et le périmètre d'un rectangle. ­ Écrire un programme qui vérifie et affiche si un nombre est premier ou non.

141 SMP4 2013/2014M.Machkour141  Exercices chercher les erreurs dans le programme suivant include Main int x,y; printf("donner x "); scanf("%f",x); if (x>0) z=x+y; print("la valeur de l'entier z est %f,&z); else ; }

142 SMP4 2013/2014M.Machkour142  Exercices ­ Écrire un programme qui lit un entier et affiche son prédécesseur et son successeur. ­ Écrire un algorithme qui lit deux notes et affiche leur moyenne. ­ Écrire un algorithme qui lit deux notes et leurs coefficients et affiche leur moyenne. ­ Écrire un programme qui lit une moyenne et affiche la mention associée. ­ Écrire un programme qui calcule la moyenne deux notes et affiche la mention associée. ­ Écrire un programme qui recherche et affiche le plus petit diviseur (différent de 1) d'un entier lu au clavier. ­ Écrire un programme qui calcule le nombre de diviseurs d'un entier lu au clavier. ­ Écrire un programme qui calcule et affiche la puissance X n. X est réel et n est entier à lire. ­ Écrire un programme qui calcule la somme de diviseurs propres d'un entier lu au clavier. ­ Écrire un programme qui vérifie si un nombre est parfait ou non.

143 SMP4 2013/2014M.Machkour143  Exercice Qu'affiche le programme suivant : #include main() {int a, b=0, c=1; a=++b + ++c; printf("a=%db=%dc=%d\n",a,b,c); a=3 b= 1 c=2 a=b++ + c++; printf("a=%db=%dc=%d\n",a,b,c); a=3 b=2 c=3 a=++b + c++; printf("a=%db=%dc=%d\n",a,b,c); a=6 b=3 c=4 a=b-- +--c;

144 SMP4 2013/2014M.Machkour144 printf("a=%db=%dc=%d\n",a,b,c); a=6 b=2 c=3 a=b==c; printf("a=%db=%dc=%d\n",a,b,c); a=0 b=2 c=3 a=b<c--; printf("a=%db=%dc=%d\n",a,b,c); a=1 b=2 c=2 a=b&&c-2; printf("a=%db=%dc=%d\n",a,b,c); a=1 b=2 c=2 a+=++b<c++; printf("a=%db=%dc=%d\n",a,b,c); a=1 b=3 c=3 }

145 Les tableaux…


Télécharger ppt "Initiation à la programmation Par M. Machkour Université Ibn Zohr SMP4 2013/2014 Faculté des Sciences Agadir."

Présentations similaires


Annonces Google