Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMarie-Paule Bellefleur Modifié depuis plus de 8 années
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…
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.