Chapitre1 Introduction Langage C PDF
Chapitre1 Introduction Langage C PDF
Chapitre1 Introduction Langage C PDF
Programme du deuxime
semestre
Chap. 1 : Introduction au langage C. (Cours : 01h30)
Chap. 2 : Les fonctions. (Cours : 03h00)
Chap. 3 : La rcursivit. (Cours : 03h00)
Concept dalgorithme rcursif.
Passage dalgorithme rcursif en algorithme itratif.
Exemples dalgorithmes rcursifs et itratifs.
Les fonctions rcursives dans le langage C
Chap. 4 : Les pointeurs et lallocation dynamique de la
mmoire. (Cours : 03h00)
Chap. 5 : Les structures de donnes complexes et les
fichiers. (Cours : 12h00)
Les listes chanes : concepts et implmentations.
Les piles et les files : concepts et implmentations.
Les fichiers : concepts et implmentations.
Ecole polytechnique dEl Harrach
Chapitre 1 : Introduction au
langage C
Fichier 2 du Edition
Programme Compilation Module objet 2
source (partie 2) des liens
Fichier n du
Programme Compilation Module objet n
source (partie n)
Ou
Const float Pi=3.14; /* Cette criture se fait aprs le
main() */
Structure dun programme en C
Diffrentes parties
Inclusion de fichiers de la bibliothque
standard:
#include <stdio.h >
#include <math.h>
stdio.h permet de grer les entre sorties (scanf,
printf, )
math.h permet de donner accs aux fonctions
mathmatiques (pow, cos, sin, ) et aux constantes
tel que M_PI (valeur de Pi)
Structure dun programme en C
Exemple: Utilisation des constantes
#include <stdio.h> #include <stdio.h>
#define tva 0.07 int main()
int main() /* ou int main(void) */ {
{ const float tva=0.07;
float prix,ttc; float prix,ttc;
printf("Donnez un prix\n"); printf("Donnez un prix\n");
scanf("%f",&prix); scanf("%f",&prix);
ttc=prix*(1+tva); ttc=prix*(1+tva);
printf("%f",ttc); printf("%f",ttc);
return(0); return(0);
} }
Structure dun programme en C
Dclaration des variables: Le nom dune variable
ne doit pas commencer par un chiffre.
peut commencer par un blanc soulign (_som) mais
dconseiller car le _ est utilis par certaines
variables denvironnement.
ne doit pas contenir un symbole sauf la caractre
soulign (_).
doit tre diffrent des mots rservs du langage.
La casse doit tre respecte pour un nom de variable
(Somme <>somme)
Structure dun programme en C
Liste des mots rservs ( utiliser en miniscules)
Le rsultat sera:
La partie entire est:12 et la partie fractionnaire est: 0.35
Les entres sorties
Remarque 1: Si on veut crire une variable sur n
position alors on met entre % et son symbole de
type la valeur de n.
Exemple: printf(" %5d",a);
printf va afficher lentier a sur 5 positions.
Remarque 2: Si on ne veut pas quune chaine de
caractres dpasse la limite du tableau allou , on
donne le nombre de caractres tolrs (n-1) dans le
scanf.
Exemple: char nom[9]; scanf("%8s",nom); le 9eme
est prvu pour \0 .
Les structures de contrle
La structure Les structures
conditionnelle alternatives
if (condition) if (condition)
{ action A; (bloc { action A; (bloc
dactions) dactions)
} }
else
Remarque: On peut supprimer
les accolades si on a une seule { action B; (bloc
instruction sous la condition de if dactions)
ou celle de else . }
Les structures de contrle
Exercice sur lalternative: Soit afficher la plus
petite valeur entre deux nombres entiers
#include <stdio.h>
/* plus_petit entre deux nombre */
int main()
{int A,B,M;
printf("Donnez deux valeurs entires comparer\n");
scanf("%d %d",&A,&B);
if (A<B)
{ M=A;} /* les accolades ne sont pas utiles pour une seule action */
else {M=B;}
printf("la plus petite valeur entre:%d et %d est:%d\n",A,B,M);
return 0;
}
Actions simples et structures de contrle
Le choix multiple:
switch (expression)
{
case valeur1: Action 1 (groupe dactions1); break
case valeur2: Action 2; (groupe dactions2); break
case valeur3: Action 3 ; (groupe dactions3); break
#include <stdio.h>
int main()
{
int T[9]; /*tableau de 9 lments T[0] T[8]*/
int i,S=0;
for(i=0;i<9;i++) scanf("%d",&T[i]);
for(i=0;i<9;i++) S+=T[i];
printf("La somme est: %d\n",S);
return 0;
}
Exemple: Calcul de la somme des lments de
chaque ligne du tableau dune matrice
#include <stdio.h>
int main()
{ int T[3][2]; /* 3lignes et 2 colonnes */
int i,j,S;
puts("Vous allez calculer la somme de chaque ligne d'un tableau 3X 2");
for(i=0;i<3;i++)
{ S=0;
printf("introduire les lments de la ligne d'indice %d \n",i);
for (j=0;j<2;j++)
{ scanf("%d",&T[i][j]); S+=T[i][j]; }
printf("La somme des lments de la ligne d'indice %d est %d\n",i,S); }
return 0; }
Les Types complexes
Le type structure (enregistrement)
Dclaration:
Struct nom_structure
{
type1 nom_variable1;
typen nom_variablen :
};
Exemple
Struct etudiant Puis on dclare une
{ variable de ce type
char nom[20]; comme suit:
Int age; struct etudiant e;
};
Les Types complexes
Les structures
Accs un champ donn dune variable:
Un champ est accessible en spcifiant tout dabord le nom de
la variable suivi dun point suivi du nom du champ
correspondant.
Variable_i=nom_variable.nom_champ
Exemple
(a<0)?-a:a; ceci est quivalent
if (a<0) a=-a;
Dautres oprateurs utiliss dans C
La virgule dans une expression
Nom_variable= expression1, expression2, ... ,
expressionN
Cela signifie quil faut valuer toutes les expressions
par ordre et affecter le rsultat de lexpression N
Nom_variable.
Exemple
f=((x=3),(x+=y),(x*x)); /* f contiendra x*x aprs
valuation des expressions prcdentes.
Dautres instructions
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i;
double x;
srand(time(NULL));
for (i=0;i<10;i++)
{
x=rand()/((double)RAND_MAX);
printf("%.4f\n",x);
}
return 0;
}
Gnration de nombres alatoires avec srand et rand
Pour obtenir un nombre alatoire entre 0 et 10 par exemple, il
faut utiliser le modulo avec rand(): rand() % 11
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int A,MIN,MAX;
srand(time(NULL));
printf("Donner les limites pour le nombre alatoire\n");
printf("MIN: "); scanf("%d",&MIN);
printf("MAX: "); scanf("%d",&MAX);
printf("\n");
printf("Voici une valeur entre %d et %d: %d\n",MIN,MAX,rand() % (MAX-MIN+1));
return 0; }
Remarque: Si on veut une valeur entre min et max avec min
diffrent de 0 alors on rajoute min rand() % (MAX-MIN+1)
+MIN
Ressources bibliographiques