LANGAGE C
1: Introduction
2: Concepts de stockage et affichage de données
3: Les conditions (structure Alternative)
4: Les boucles (structure répétitive)
5: Les Tableaux vecteurs
6: Les Fonctions et procédures
7: Les chaines de caractères
8 : Les Tableaux matrices
9: La Recursivité
10 : Les Pointeurs
11: Les Structures
12: Les Ficchiers 1
GÉNÉRALITÉS
Le langage C créé au début des années 70
 Langage successeur du langage B (les années 60),
 Le langage C fait partie des langages de programmation
procédurale
 Langage compilé
 Une meilleure portabilité (fonctionnement sur de
nombreuses plates-formes)
2
 Code::Blocks. pour Windows, Mac et Linux.
 Visual studio Express, visual c++, dev c++
pour Windows
 Xcode, Sur Mac
 …
!
IDE GRATUIT POUR C
CHAPITRE 2: CONCEPTS
DE STOCKAGE ET
AFFICHAGE DE DONNÉES
TYPES DE VARIABLES
Il y a globalement trois types de variables :
 Les entiers : int, short int, long int
 Les réels : float, double
 Les caractères : char
5
 Une variable de type char occupe un octet
en mémoire.
 Un float : 4 Octets (réel simple précision)
 Un Double : 8 Octets(réel double précision )
TYPES DE VARIABLES
 Déclaration des variables
int x;
float y,w;
 Déclaration et affectation de variable
 int x= 1, z=5
 int y=x+2;
 float pi = 3.14;
 Char z = ‘a’;
 Déclaration et affectation de constante
On utilise la ligne de commande : #define.
#define PI 3.14159
7
TYPES DE VARIABLES
L’Opérateur d'affectation (=)
Opérateurs arithmétiques (+, -, *, /, %)
Opérateurs de comparaison (==, !=, <, <=,>, >=)
Opérateurs logiques (&&, ||, !)
Les opérateurs standards en C
LES OPÉRATEURS
ARITHMÉTIQUES
+ addition
- soustraction
* multiplication
/ division
% modulo (reste de la division entière )
9
7.0/2
3
3.5
7/2
 On ajoute les opérateurs parenthèses ( )
pour fixer l'ordre des calculs.
float x =(y+z)/2
INCRÉMENT ET DÉCREMENT
++ increment : i++
i + = 1
i = i + 1
- - decrement : i- -
i - =1
i = i - 1
11
int main()
main est la fonction principale
de votre programme,
Sans fonction main, il est
impossible de générer un
programme exécutable
NOUVEAU PROJET CONSOLE
Code::Blocks a donc généré le minimum de code en
langage C dont on a besoin.
#include <stdio.h>
#include <stdlib.h>
int main()
{ printf("Hello world!n");
return 0;
}
void main( )
{ char c;
int i,j, k;
c = 'A';
i = 50;
j =10;
K=10;
void main( )
{ char c = 'A';
int i=50,j, k;
j=k=10;
15
Le C distingue les minuscules des majuscules.
abc, Abc, ABC sont des identificateurs valides et
tous différents.
Identificateurs invalides :
3eme commence par un chiffre
x#y caractère non autorisé (#)
nb-pos caractère non autorisé (-)
Nb pos caractère non autorisé (espace)
Identificateurs
#include <stdio.h>
 Cette ligne demande d'inclure des fichiers au
projet, c'est-à-dire d'ajouter des fichiers pour la
compilation.
 bibliothèques (librairies)
 La bibliothèque standard est une collection utilisées
pour implémenter des opérations courantes, telles que
les entrées/sorties et la gestion des chaînes de
caractères, les fonctions mathématiques.
 Le prototype des fonctions d’entrée-sortie
(scanf et printf) est dans <stdio.h>
LES ENTRÉES SORTIES : PRINTF,
SCANF
LES ENTRÉES SORTIES : PRINTF,
SCANF
printf permet d ’afficher du texte à
l ’écran
scanf permet récupérer le texte saisi au
clavier
18
 #include <stdio.h> : bibliothèque (entrée / sortie).
 #include <math.h> : pou les fonctions mathématiques
 #include <string.h> : Traitement de chaînes de caractères
 #include <time.h> Traitement date et heure ()
LES BIBLIOTHEQUES
printf("Bonjour");
n : retour à la ligne ; printf("Bonjourn");
t : tabulation.
a : sonnerie
b : espace
AFFICHER UN MESSAGE :
PRINTF();
#include<conio.h>
getch lit un seul caractère au clavier et le retourne
comme résultat sans l'écrire sur l'écran et sans
attendre un retour à la ligne.
# Include <stdio.h>
#include<conio.h>
void main ()
{ printf (" premiere ligne ");
printf (" n");
printf (" deuxième ligne ");
printf (" n");
printf (" troisième ligne ");
getch()
}
22
Création du 1er
programme printf
 printf (" message ");
 printf(" %d ", a ); a est un entier
 printf(" %c",x); x est un caractère
 printf("%f ",z); z est un réel
 printf("%s", ch); ch est une chaîne de caractère
 printf(" Le résultat est %d ", a );
 printf(" Le résultat est %d n", a );
 printf(" La somme du 1er
chiffre %d et le 2ème
chiffre %d
est égale à %d ", a,b,c );
 printf(" %d +2 = %d ", a,a+2 );
Afficher les données : printf
PRINTF, SCANF
Ces fonctions utilisent des formats qui
permettent de lire/écrire des variables de
différents types :
%f : réels float
%lf : réels de type double
%d : entiers int
%ld : entiers long int
%s : chaîne de caractères
%c : un caractère
%x :affichera un hexadecimal
%o :affichera une valeur en base 8 (base octale)
24
L’utilisation de & est indispensable avec scanf
(valeur lue et donc modifiée),
scanf("%c",&x); x est un caractère
scanf("%d",&y); y est un entier
scanf("%f",&z); z est un réel
scanf("%s", &ch); ch est une chaîne de caractères
Lire des données du clavier : scanf
On peut fixer le nombre de caractères de
la donnée à lire.
 %10s pour une chaîne de 15 caractères,
 %5d pour un entier qui s’étend sur 5 chi res.
ff
 %.2f le réel est affiché avec 2 chi res après la
ff
virgule. (par défaut 6 chi res après la virgule).
ff
Lire des données du clavier : scanf
EX1
Ecrire un programme qui saisit deux entiers et
affiche leur produit.
Demander à l’utilisateur de saisir le 1er
chiffre
Demander à l’utilisateur de saisir le 2ème chiffre
Calculer somme, produit, différence, le
quotient et le reste de la division.
#include <stdio.h>
int i,j;
int main()
{printf("donner le 1er entier ");
scanf("%d",&i);
printf("donner le 2ème entier ");
scanf("%d",&j);
printf("le produit de %d et %d est égale à %d ",i, j, i*j);
printf(" %d * %d = %d ", i, j, i*j);
}
EX1
Ecrire un programme qui échange
deux entiers saisis. Afficher les
entiers avant et après l’échange.
(permutation)
EX2
#include <stdio.h>
Void main()
{ int i,j,z;
Printf(" donner le 1er
chiffre ") ; scanf("%d",&i) ;
Printf(" donner le 2ème chiffre ") ; scanf("%d",&j) ;
Printf(" le 1er
chiffre est %d le 2ème
chiffre est %d",
i,j) ;
z=i;
i=j;
j=z;
Printf(" le 1er
chiffre est %d le 2ème
chiffre est %d",
i,j) ;}
EX2
LECTURE DE DEUX VARIABLES DANS
UN SCANF
printf("donner les deux chiffres n");
scanf("%d%d",&i,&j);
EQUIVALENT DU PRINTF
Putchar(..), Cette fonction a pour effet
d'émettre le caractère passé en
paramètre vers le flux de sortie
standard. char c=‘A’; putchar(c);
putchar('s'); // équivaut printf("s");
Puts(..) :Cette fonction a pour effet
d'émettre la chaine de caractères
passée en paramètre vers le flux de
sortie standard. puts (" le résultat ");
// équivaut printf(" le résultat n");
 getchar, pour la lecture d’un caractère.
char x = getchar();
 gets, pour la lecture de chaînes de caractères.
char ch[10];
gets(ch);
EQUIVALENT DU SCANF
CHAPITRE 3: LES
CONDITIONS (STRUCTURE
ALTERNATIVE)
SI…SINON IF..ELSE
if (condition)
Instruction1;
if (condition)
{
Instruction1;
Instruction2; }
SI…SINON IF..ELSE
if (condition)
Instruction1;
else
Instruction2;
if (condition)
{ Instruction1;
Instruction2; }
else
{Instruction3;
Instructions4; }
SI…SINON IF..ELSE
if (condition)
{if (condition)
{ Instruction1;
Instruction2; }
else
{Instruction3;
Instructions4; }}
else
{Instruction5;
Instructions6; }
SI…SINON IF..ELSE
if (condition)
{Instruction1;
Instructions2; }
else
if (condition)
{ Instruction3;
Instruction4; }
else
{Instruction5;
Instructions6; }
EXPRESSIONS ÉVALUÉES DANS LES
TESTS
if (a = b) : erreur fréquente,
if (a == b) : a égal à b
if (a != b) : a différent de b
if (a > b) : a supérieur à b
if ((a >=0)&&(a<10)) : a comprise entre 0 et 9
if ((a<=b)||(a>0)) : a inférieur ou égal à b
ou a positif
if (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')
39
EXPRESSIONS ÉVALUÉES DANS LES
TESTS
if ((h<0)||(h>23))
printf(" heure saisie est incorrecte");
Else
if ((m<0)||(m>59))
printf(" minute saisie est incorrecte");
else
m=m+1
…..
TEST AVEC IF (SI)
int main()
{int n,m;
printf("donner le 1er chiffre ");
scanf("%d", &n);
printf("donner le 2ème chiffre ");
scanf("%d", &m);
if (n>m)
printf("le 1er chiffre %d est le plus grand n",n);
else
printf("le 2ème chiffre %d est le plus grand n",m);
return 0;}
42
#include <stdio.h>
int main(void)
{ int i;
printf(" saisir un chiffre ");
scanf(" %d", &i);
if (i>0)
printf("le chiffre %d est positifn",i);
else if (i<0)
printf("le chiffre %d est negatifn",i);
else
printf("le chiffre %d est zéron",i);
return 0;}
Syntaxe :
switch(expression)
{
case valeur1 : { instructions1;break; }
case valeur2 : { instructions2;break; }
...
case valeurn : { instructionsn;break; }
default : { instructionsautre;break; }
}
Test avec switch (selon)
Default : propose une instruction a
effectuer dans le cas où l’expression n'a
pris aucune des valeurs proposées dans les
cases successifs.
Break : renvoie à la fin du switch. Si le
break n'est pas mis, le programme
exécutera le case suivant.
Test avec switch (selon)
UTILISATION DE SWITCH CASE
Int main()
{ int i;
printf(" saisir un chiffre soit 1 ou 2 ou 3 ");
scanf(" %d", &i);
switch(i)
{ case 1 : printf(" le chiffre est 1 "); break;
case 2 : printf(" le chiffre est 2 "); break;
case 3 : printf(" le chiffre est 3 "); break;
default : printf(" le chiffre est différent de 1,2,3");
}
}
printf(" saisir la date J M A ");
scanf(" %d %d %d ", &j, &m, &a);
switch(m)
{ case 1: case 3: case 5: case 7: case 8: case 10:case 12:
if((j>=1)&&(j<=31))
printf(" la date est valide ");
else
printf(" la valeur du jour est incorrecte");
break;
case 4: case 6: case 9: case 11:
if((j>=1)&&(j<=30))
printf(" la date est valide ");
else
printf(" la valeur du jour est incorrecte");
break;
case 2 : if((j>=1)&&(j<=29))
printf(" la date est valide ");
else
printf(" la valeur du jour est incorrecte");
break;
default : printf(" la valeur du mois est incorrecte "); }
int t;
printf(" saisir la température de l'eau ");
scanf("%d",&t);
switch (t)
{ case -100 ... 0 : printf(" glace"); break;
case 1 ... 99 : printf(" liquide "); break;
case 100 ... 130 : printf(" gaz "); break;
default : printf(" saisie incorrecte "); break;
}
SWITCH (INTERVALE DE
VALEURS)
CHAPITRE 4: LES BOUCLES
(STRUCTURE RÉPÉTITIVE)
BOUCLE POUR « FOR »
#include <stdio.h>
#define NUMBER 10
int main()
{
int c, total = 0;
for( c =1; c <= NUMBER; c++)
{ total += c;}
printf("Le total est %dn", total);
}
BOUCLE TANT QUE « WHILE »
51
#include <stdio.h>
#define NUMBER 10
main()
{
int c = 1, total = 0;
while(c <= NUMBER)
{
total += c;
c++;
}
printf(“Le total est : %d ”, total);
}
BOUCLE « DO WHILE »
PERMET D ’EXÉCUTER AU MOINS UNE FOIS LES
INSTRUCTIONS AVANT D ’ÉVALUER LE TEST
#include <stdio.h>
#define NUMBER 10
main()
{
int c = 1, total = 0;
do
{ total += c;
c++;
} while(c <= NUMBER);
printf(“Le total est : %d ”, total);
}
EX: IMPOSER À L’UTILISATEUR LA
SAISIE AU CLAVIER D’UN ENTIER
ENTRE 1 ET 10,
int a;
Do
{ printf("n Entrez un entier entre 1 et 10 : ");
scanf("%d",&a);}
while ((a <= 0) || (a > 10));
EX3: AFFICHER TOUS LES ENTIERS DE
0 À 9:
int i;
for (i = 0; i < 10; i++)
printf("n i = %d",i);
break
L’instruction break peut, être
employée à l’intérieur de n’importe
quelle boucle. Elle permet
d’interrompre le déroulement de la
boucle, et passe à la première
instruction qui suit la boucle.
main()
{int i;
for (i = 0; i < 5; i++)
{printf("i = %dn",i);
if (i == 3)
break;
}}
imprime à l’écran
i = 0
i = 1
i = 2
i = 3
continue
L’instruction continue permet de
passer directement à la valeur
suivante, sans exécuter les autres
instructions de la boucle.
main()
{ int i;
for (i = 0; i < 5; i++)
{ if (i == 3)
continue;
printf("i = %dn",i);} }
imprime à l’écran
i = 0
i = 1
i = 2
i = 4
#include <stdio.h>
Int c,i,nbCh,nbBlancs,nbalpha,nbAutres;
int main(){nbCh=nbBlancs=nbAutres=nbalpha=0;
while((c=getchar())!= '.')
if((c>='0') && (c<='9'))
nbChiffres++;
else if(((c>='a')&&(c<='z'))||((c>='A')&&(c<='Z')))
nbalphabet++;
else if((c==' ')||(c=='n')||(c=='t'))
nbBlancs++;
else nbAutres++;
printf("chiffres:%d",nbChiffres);
printf("alphabet:%d",nbalphabet);
printf("blancs:%d ", nbBlancs );
printf("Autres:%dn",nbAutres); }
LES FONCTIONS MATHEMATIQUES
#INCLUDE <MATH.H>
les fonctions sinus, cosinus, et tangente.
•x = sin(..); y = cos(..); z = tan(..);
Fonctions logarithmes
•x = log(..);
Fonction exponentielle,
•double x = exp(..);
Fonction puissance
•x = pow(5, 2);
Fonction racine carrée
•x = sqrt(25);
Fonction valeur absolue
x = fabs(-7);
• strlen : longueur de chaîne
char chaine[] = "Bonjour";
int x= strlen(chaine);
• strcpy : Copier une chaîne
char chaine2[ ], chaine[ ]= "TDI";
strcpy(chaine2, chaine);
• strcat : concaténer deux chaînes
char c1[10] = "bon"; char c2[10] = "jour";
strcat(c1, c2); /* on concatène */
LES FONCTIONS CHAINE CARACTERES
#INCLUDE <STRING.H>
strcmp : comparer 2 chaînes
char ch [3 ]; scanf("%s ",&ch)
if (strcmp(chaine1, "TDI") == 0)
{ }
else { }
sprintf : Ecrire dans une chaîne
char chaine[100]; int N = 1;
sprintf(chaine, "NTIC TDI %d Année !", N);
CTYPE.H
int isupper(C) : retourne une valeur différente de zéro,
si C est une majuscule
int islower(C) : retourne une valeur différente de zéro,
si C est une minuscule
int isdigit(C) : retourne une valeur différente de zéro,
si C est un chiffre décimal
int isalpha(C) : retourne une valeur différente de zéro,
si (C) est alphabet
int isalnum(C) : retourne une valeur différente de zéro,
si isalpha(C) ou isdigit(C)
int isspace(C) : retourne une valeur différente de zéro,
si C est un signe d'espacement
touuper(C) : convertit c en majuscule
tolower(C) : convertit c en minuscule
INT I=0;
CHAR STR[]= "TEST CHAINE.N" ;
CHAR C;
WHILE (STR[I]) // WHILE
(I<STRLEN(STR))
{ C=STR[I];
IF (ISLOWER(C))
C=TOUPPER(C);
PUTCHAR (C);
I++; }
CHAPITRE 5: LES
FONCTIONS ET
PROCÉDURES
LES FONCTIONS ET PROCÉDURES
 Le programme contient des procedures et des
variables. Les procédures précisent les tâches à
exécuter par le programme.
 Le programme «principal» établit la logique de
l'ensemble du code. Il appelle les différentes
fonctions ou procédures nécessaires pour effectuer la
sous-tâches.
66
Programme typique en C
include
main(){
a();
b();}
fonction a()
fonction b()
Appel de la fonction a
Main() toujours la
1ere fonction appelée
Appel de la fonction b
int main()
{ char choix;
printf("a : l ’additionn");
printf("b : la multiplicationn");
printf("c : la soustractionn");
printf("d : la divisionn");
printf(" Donner votre choix : ");
scanf("%c", &choix);
switch(choix)
{ case 'a' : procA(); break;
case 'b' : procB(); break;
case 'c' : procC(); break;
case d : procD(); break;
default :printf(‘’choix incorrecte’’);
}}
procA()
{ printf("vous exécutez la procédure A : l’addition");
……
UTILISATION DE SWITCH POUR
CHOISIR

C-Programming-Cours-Langage-C_Beginner_Debutant.ppt

  • 1.
    LANGAGE C 1: Introduction 2:Concepts de stockage et affichage de données 3: Les conditions (structure Alternative) 4: Les boucles (structure répétitive) 5: Les Tableaux vecteurs 6: Les Fonctions et procédures 7: Les chaines de caractères 8 : Les Tableaux matrices 9: La Recursivité 10 : Les Pointeurs 11: Les Structures 12: Les Ficchiers 1
  • 2.
    GÉNÉRALITÉS Le langage Ccréé au début des années 70  Langage successeur du langage B (les années 60),  Le langage C fait partie des langages de programmation procédurale  Langage compilé  Une meilleure portabilité (fonctionnement sur de nombreuses plates-formes) 2
  • 3.
     Code::Blocks. pourWindows, Mac et Linux.  Visual studio Express, visual c++, dev c++ pour Windows  Xcode, Sur Mac  … ! IDE GRATUIT POUR C
  • 4.
    CHAPITRE 2: CONCEPTS DESTOCKAGE ET AFFICHAGE DE DONNÉES
  • 5.
    TYPES DE VARIABLES Ily a globalement trois types de variables :  Les entiers : int, short int, long int  Les réels : float, double  Les caractères : char 5
  • 6.
     Une variablede type char occupe un octet en mémoire.  Un float : 4 Octets (réel simple précision)  Un Double : 8 Octets(réel double précision ) TYPES DE VARIABLES
  • 7.
     Déclaration desvariables int x; float y,w;  Déclaration et affectation de variable  int x= 1, z=5  int y=x+2;  float pi = 3.14;  Char z = ‘a’;  Déclaration et affectation de constante On utilise la ligne de commande : #define. #define PI 3.14159 7 TYPES DE VARIABLES
  • 8.
    L’Opérateur d'affectation (=) Opérateursarithmétiques (+, -, *, /, %) Opérateurs de comparaison (==, !=, <, <=,>, >=) Opérateurs logiques (&&, ||, !) Les opérateurs standards en C
  • 9.
    LES OPÉRATEURS ARITHMÉTIQUES + addition -soustraction * multiplication / division % modulo (reste de la division entière ) 9 7.0/2 3 3.5 7/2
  • 10.
     On ajouteles opérateurs parenthèses ( ) pour fixer l'ordre des calculs. float x =(y+z)/2
  • 11.
    INCRÉMENT ET DÉCREMENT ++increment : i++ i + = 1 i = i + 1 - - decrement : i- - i - =1 i = i - 1 11
  • 12.
    int main() main estla fonction principale de votre programme, Sans fonction main, il est impossible de générer un programme exécutable
  • 13.
    NOUVEAU PROJET CONSOLE Code::Blocksa donc généré le minimum de code en langage C dont on a besoin. #include <stdio.h> #include <stdlib.h> int main() { printf("Hello world!n"); return 0; }
  • 14.
    void main( ) {char c; int i,j, k; c = 'A'; i = 50; j =10; K=10; void main( ) { char c = 'A'; int i=50,j, k; j=k=10;
  • 15.
    15 Le C distingueles minuscules des majuscules. abc, Abc, ABC sont des identificateurs valides et tous différents. Identificateurs invalides : 3eme commence par un chiffre x#y caractère non autorisé (#) nb-pos caractère non autorisé (-) Nb pos caractère non autorisé (espace) Identificateurs
  • 16.
    #include <stdio.h>  Cetteligne demande d'inclure des fichiers au projet, c'est-à-dire d'ajouter des fichiers pour la compilation.  bibliothèques (librairies)
  • 17.
     La bibliothèquestandard est une collection utilisées pour implémenter des opérations courantes, telles que les entrées/sorties et la gestion des chaînes de caractères, les fonctions mathématiques.  Le prototype des fonctions d’entrée-sortie (scanf et printf) est dans <stdio.h> LES ENTRÉES SORTIES : PRINTF, SCANF
  • 18.
    LES ENTRÉES SORTIES: PRINTF, SCANF printf permet d ’afficher du texte à l ’écran scanf permet récupérer le texte saisi au clavier 18
  • 19.
     #include <stdio.h>: bibliothèque (entrée / sortie).  #include <math.h> : pou les fonctions mathématiques  #include <string.h> : Traitement de chaînes de caractères  #include <time.h> Traitement date et heure () LES BIBLIOTHEQUES
  • 20.
    printf("Bonjour"); n : retourà la ligne ; printf("Bonjourn"); t : tabulation. a : sonnerie b : espace AFFICHER UN MESSAGE : PRINTF();
  • 21.
    #include<conio.h> getch lit unseul caractère au clavier et le retourne comme résultat sans l'écrire sur l'écran et sans attendre un retour à la ligne.
  • 22.
    # Include <stdio.h> #include<conio.h> voidmain () { printf (" premiere ligne "); printf (" n"); printf (" deuxième ligne "); printf (" n"); printf (" troisième ligne "); getch() } 22 Création du 1er programme printf
  • 23.
     printf ("message ");  printf(" %d ", a ); a est un entier  printf(" %c",x); x est un caractère  printf("%f ",z); z est un réel  printf("%s", ch); ch est une chaîne de caractère  printf(" Le résultat est %d ", a );  printf(" Le résultat est %d n", a );  printf(" La somme du 1er chiffre %d et le 2ème chiffre %d est égale à %d ", a,b,c );  printf(" %d +2 = %d ", a,a+2 ); Afficher les données : printf
  • 24.
    PRINTF, SCANF Ces fonctionsutilisent des formats qui permettent de lire/écrire des variables de différents types : %f : réels float %lf : réels de type double %d : entiers int %ld : entiers long int %s : chaîne de caractères %c : un caractère %x :affichera un hexadecimal %o :affichera une valeur en base 8 (base octale) 24
  • 25.
    L’utilisation de &est indispensable avec scanf (valeur lue et donc modifiée), scanf("%c",&x); x est un caractère scanf("%d",&y); y est un entier scanf("%f",&z); z est un réel scanf("%s", &ch); ch est une chaîne de caractères Lire des données du clavier : scanf
  • 26.
    On peut fixerle nombre de caractères de la donnée à lire.  %10s pour une chaîne de 15 caractères,  %5d pour un entier qui s’étend sur 5 chi res. ff  %.2f le réel est affiché avec 2 chi res après la ff virgule. (par défaut 6 chi res après la virgule). ff Lire des données du clavier : scanf
  • 27.
    EX1 Ecrire un programmequi saisit deux entiers et affiche leur produit. Demander à l’utilisateur de saisir le 1er chiffre Demander à l’utilisateur de saisir le 2ème chiffre Calculer somme, produit, différence, le quotient et le reste de la division.
  • 28.
    #include <stdio.h> int i,j; intmain() {printf("donner le 1er entier "); scanf("%d",&i); printf("donner le 2ème entier "); scanf("%d",&j); printf("le produit de %d et %d est égale à %d ",i, j, i*j); printf(" %d * %d = %d ", i, j, i*j); } EX1
  • 29.
    Ecrire un programmequi échange deux entiers saisis. Afficher les entiers avant et après l’échange. (permutation) EX2
  • 30.
    #include <stdio.h> Void main() {int i,j,z; Printf(" donner le 1er chiffre ") ; scanf("%d",&i) ; Printf(" donner le 2ème chiffre ") ; scanf("%d",&j) ; Printf(" le 1er chiffre est %d le 2ème chiffre est %d", i,j) ; z=i; i=j; j=z; Printf(" le 1er chiffre est %d le 2ème chiffre est %d", i,j) ;} EX2
  • 31.
    LECTURE DE DEUXVARIABLES DANS UN SCANF printf("donner les deux chiffres n"); scanf("%d%d",&i,&j);
  • 32.
    EQUIVALENT DU PRINTF Putchar(..),Cette fonction a pour effet d'émettre le caractère passé en paramètre vers le flux de sortie standard. char c=‘A’; putchar(c); putchar('s'); // équivaut printf("s"); Puts(..) :Cette fonction a pour effet d'émettre la chaine de caractères passée en paramètre vers le flux de sortie standard. puts (" le résultat "); // équivaut printf(" le résultat n");
  • 33.
     getchar, pourla lecture d’un caractère. char x = getchar();  gets, pour la lecture de chaînes de caractères. char ch[10]; gets(ch); EQUIVALENT DU SCANF
  • 34.
    CHAPITRE 3: LES CONDITIONS(STRUCTURE ALTERNATIVE)
  • 35.
    SI…SINON IF..ELSE if (condition) Instruction1; if(condition) { Instruction1; Instruction2; }
  • 36.
    SI…SINON IF..ELSE if (condition) Instruction1; else Instruction2; if(condition) { Instruction1; Instruction2; } else {Instruction3; Instructions4; }
  • 37.
    SI…SINON IF..ELSE if (condition) {if(condition) { Instruction1; Instruction2; } else {Instruction3; Instructions4; }} else {Instruction5; Instructions6; }
  • 38.
    SI…SINON IF..ELSE if (condition) {Instruction1; Instructions2;} else if (condition) { Instruction3; Instruction4; } else {Instruction5; Instructions6; }
  • 39.
    EXPRESSIONS ÉVALUÉES DANSLES TESTS if (a = b) : erreur fréquente, if (a == b) : a égal à b if (a != b) : a différent de b if (a > b) : a supérieur à b if ((a >=0)&&(a<10)) : a comprise entre 0 et 9 if ((a<=b)||(a>0)) : a inférieur ou égal à b ou a positif if (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') 39
  • 40.
    EXPRESSIONS ÉVALUÉES DANSLES TESTS if ((h<0)||(h>23)) printf(" heure saisie est incorrecte"); Else if ((m<0)||(m>59)) printf(" minute saisie est incorrecte"); else m=m+1 …..
  • 41.
    TEST AVEC IF(SI) int main() {int n,m; printf("donner le 1er chiffre "); scanf("%d", &n); printf("donner le 2ème chiffre "); scanf("%d", &m); if (n>m) printf("le 1er chiffre %d est le plus grand n",n); else printf("le 2ème chiffre %d est le plus grand n",m); return 0;}
  • 42.
    42 #include <stdio.h> int main(void) {int i; printf(" saisir un chiffre "); scanf(" %d", &i); if (i>0) printf("le chiffre %d est positifn",i); else if (i<0) printf("le chiffre %d est negatifn",i); else printf("le chiffre %d est zéron",i); return 0;}
  • 43.
    Syntaxe : switch(expression) { case valeur1: { instructions1;break; } case valeur2 : { instructions2;break; } ... case valeurn : { instructionsn;break; } default : { instructionsautre;break; } } Test avec switch (selon)
  • 44.
    Default : proposeune instruction a effectuer dans le cas où l’expression n'a pris aucune des valeurs proposées dans les cases successifs. Break : renvoie à la fin du switch. Si le break n'est pas mis, le programme exécutera le case suivant. Test avec switch (selon)
  • 45.
    UTILISATION DE SWITCHCASE Int main() { int i; printf(" saisir un chiffre soit 1 ou 2 ou 3 "); scanf(" %d", &i); switch(i) { case 1 : printf(" le chiffre est 1 "); break; case 2 : printf(" le chiffre est 2 "); break; case 3 : printf(" le chiffre est 3 "); break; default : printf(" le chiffre est différent de 1,2,3"); } }
  • 46.
    printf(" saisir ladate J M A "); scanf(" %d %d %d ", &j, &m, &a); switch(m) { case 1: case 3: case 5: case 7: case 8: case 10:case 12: if((j>=1)&&(j<=31)) printf(" la date est valide "); else printf(" la valeur du jour est incorrecte"); break; case 4: case 6: case 9: case 11: if((j>=1)&&(j<=30)) printf(" la date est valide "); else printf(" la valeur du jour est incorrecte"); break;
  • 47.
    case 2 :if((j>=1)&&(j<=29)) printf(" la date est valide "); else printf(" la valeur du jour est incorrecte"); break; default : printf(" la valeur du mois est incorrecte "); }
  • 48.
    int t; printf(" saisirla température de l'eau "); scanf("%d",&t); switch (t) { case -100 ... 0 : printf(" glace"); break; case 1 ... 99 : printf(" liquide "); break; case 100 ... 130 : printf(" gaz "); break; default : printf(" saisie incorrecte "); break; } SWITCH (INTERVALE DE VALEURS)
  • 49.
    CHAPITRE 4: LESBOUCLES (STRUCTURE RÉPÉTITIVE)
  • 50.
    BOUCLE POUR «FOR » #include <stdio.h> #define NUMBER 10 int main() { int c, total = 0; for( c =1; c <= NUMBER; c++) { total += c;} printf("Le total est %dn", total); }
  • 51.
    BOUCLE TANT QUE« WHILE » 51 #include <stdio.h> #define NUMBER 10 main() { int c = 1, total = 0; while(c <= NUMBER) { total += c; c++; } printf(“Le total est : %d ”, total); }
  • 52.
    BOUCLE « DOWHILE » PERMET D ’EXÉCUTER AU MOINS UNE FOIS LES INSTRUCTIONS AVANT D ’ÉVALUER LE TEST #include <stdio.h> #define NUMBER 10 main() { int c = 1, total = 0; do { total += c; c++; } while(c <= NUMBER); printf(“Le total est : %d ”, total); }
  • 53.
    EX: IMPOSER ÀL’UTILISATEUR LA SAISIE AU CLAVIER D’UN ENTIER ENTRE 1 ET 10, int a; Do { printf("n Entrez un entier entre 1 et 10 : "); scanf("%d",&a);} while ((a <= 0) || (a > 10));
  • 54.
    EX3: AFFICHER TOUSLES ENTIERS DE 0 À 9: int i; for (i = 0; i < 10; i++) printf("n i = %d",i);
  • 55.
    break L’instruction break peut,être employée à l’intérieur de n’importe quelle boucle. Elle permet d’interrompre le déroulement de la boucle, et passe à la première instruction qui suit la boucle.
  • 56.
    main() {int i; for (i= 0; i < 5; i++) {printf("i = %dn",i); if (i == 3) break; }} imprime à l’écran i = 0 i = 1 i = 2 i = 3
  • 57.
    continue L’instruction continue permetde passer directement à la valeur suivante, sans exécuter les autres instructions de la boucle.
  • 58.
    main() { int i; for(i = 0; i < 5; i++) { if (i == 3) continue; printf("i = %dn",i);} } imprime à l’écran i = 0 i = 1 i = 2 i = 4
  • 59.
    #include <stdio.h> Int c,i,nbCh,nbBlancs,nbalpha,nbAutres; intmain(){nbCh=nbBlancs=nbAutres=nbalpha=0; while((c=getchar())!= '.') if((c>='0') && (c<='9')) nbChiffres++; else if(((c>='a')&&(c<='z'))||((c>='A')&&(c<='Z'))) nbalphabet++; else if((c==' ')||(c=='n')||(c=='t')) nbBlancs++; else nbAutres++; printf("chiffres:%d",nbChiffres); printf("alphabet:%d",nbalphabet); printf("blancs:%d ", nbBlancs ); printf("Autres:%dn",nbAutres); }
  • 60.
    LES FONCTIONS MATHEMATIQUES #INCLUDE<MATH.H> les fonctions sinus, cosinus, et tangente. •x = sin(..); y = cos(..); z = tan(..); Fonctions logarithmes •x = log(..); Fonction exponentielle, •double x = exp(..); Fonction puissance •x = pow(5, 2); Fonction racine carrée •x = sqrt(25); Fonction valeur absolue x = fabs(-7);
  • 61.
    • strlen :longueur de chaîne char chaine[] = "Bonjour"; int x= strlen(chaine); • strcpy : Copier une chaîne char chaine2[ ], chaine[ ]= "TDI"; strcpy(chaine2, chaine); • strcat : concaténer deux chaînes char c1[10] = "bon"; char c2[10] = "jour"; strcat(c1, c2); /* on concatène */ LES FONCTIONS CHAINE CARACTERES #INCLUDE <STRING.H>
  • 62.
    strcmp : comparer2 chaînes char ch [3 ]; scanf("%s ",&ch) if (strcmp(chaine1, "TDI") == 0) { } else { } sprintf : Ecrire dans une chaîne char chaine[100]; int N = 1; sprintf(chaine, "NTIC TDI %d Année !", N);
  • 63.
    CTYPE.H int isupper(C) :retourne une valeur différente de zéro, si C est une majuscule int islower(C) : retourne une valeur différente de zéro, si C est une minuscule int isdigit(C) : retourne une valeur différente de zéro, si C est un chiffre décimal int isalpha(C) : retourne une valeur différente de zéro, si (C) est alphabet int isalnum(C) : retourne une valeur différente de zéro, si isalpha(C) ou isdigit(C) int isspace(C) : retourne une valeur différente de zéro, si C est un signe d'espacement touuper(C) : convertit c en majuscule tolower(C) : convertit c en minuscule
  • 64.
    INT I=0; CHAR STR[]="TEST CHAINE.N" ; CHAR C; WHILE (STR[I]) // WHILE (I<STRLEN(STR)) { C=STR[I]; IF (ISLOWER(C)) C=TOUPPER(C); PUTCHAR (C); I++; }
  • 65.
  • 66.
    LES FONCTIONS ETPROCÉDURES  Le programme contient des procedures et des variables. Les procédures précisent les tâches à exécuter par le programme.  Le programme «principal» établit la logique de l'ensemble du code. Il appelle les différentes fonctions ou procédures nécessaires pour effectuer la sous-tâches. 66
  • 67.
    Programme typique enC include main(){ a(); b();} fonction a() fonction b() Appel de la fonction a Main() toujours la 1ere fonction appelée Appel de la fonction b
  • 68.
    int main() { charchoix; printf("a : l ’additionn"); printf("b : la multiplicationn"); printf("c : la soustractionn"); printf("d : la divisionn"); printf(" Donner votre choix : "); scanf("%c", &choix); switch(choix) { case 'a' : procA(); break; case 'b' : procB(); break; case 'c' : procC(); break; case d : procD(); break; default :printf(‘’choix incorrecte’’); }} procA() { printf("vous exécutez la procédure A : l’addition"); …… UTILISATION DE SWITCH POUR CHOISIR