Cours C
Cours C
Cours C
#include <stdio.h>
#include <stdlib.h>
int main()
printf("Hello world!\n");
return 0;
ANALYSE :
#include <stdio.h>
#include <stdlib.h>
Des lignes spéciales que l’on ne retrouvent qu’en début de code. Ces lignes sont
reconnaissables par le signe dièse #.
Le mot include demande d’inclure des fichiers au projet pour la compilation. Il joue le même
rôle que les framework.
Un framework est, comme son nom l’indique en anglais, un « cadre de travail ». L’objectif d’un
framework est généralement de simplifier le travail des développeurs, en offrant une
architecture prête à l’emploi.
stdio.h
stdlib.h
sont des bibliothèques de code qui vont nous permettre d'afficher du texte à l'écran.
Les bibliothèques
Les fonctions sur les nombres <math.h>
• cos() cosinus.
• sin() sinus.
• tan() tangente.
plafond).
int main()
printf("Hello world!\n");
return 0;
main est la fonction principale de votre programme, c'est toujours par la fonction main que le
programme commence.
Les accolades { et } délimitent le début et la fin de la fonction et les lignes entre les accolades
sont les instructions.
Déclaration variable
· indiquer le type de la variable que l'on veut crée
· Indiquer le nom de la variable
Int somme_tot ;
auto, break, case, char, continue, const, default, do, double, else, extern, float, for, goto, if, int,
long, register, return, short, sizeof, static, struct, switch, typedef, union, unsigned, while
Déclaration constante
Const int SOMME_TOT=777 ;
En plus du mot clé const, par convention on écrit le nom de la constante en majuscule pour
mieux distinguer les constantes des variables.
Explication :
%d=int
%u=usigned int
%ld=long*
• Syntaxe :
— soustraction
/ division
* multiplication
i = i - 20; i -= 20;
i = i * 20; i *= 20;
i = i / 20; i /= 20;
! Non logique
&& et || ET et OU logique
Les conditions
Structure de base :
else // Sinon...
Il est possible de définir plusieurs conditions à remplir avec les opérateurs ET (&&) , OU ( || ) et
NON (!).
Exemple avec ET : pour inscrire son enfant au jardin, catégorie petite section, l’âge minimum
est 2 ans et l’âge maximum est 4 ans.
Exemple avec OU : Pour inscrire son enfant au CPS, soit l’enfant à une moyenne en classe de
terminale >=13, soit il fait un test de niveau avec une moyenne >=15.
Structure de base
// Instructions à répéter
}
/*Créer un programme qui permet de saisir l'année en cours
*/
La boucles FOR
C’est en quelque sorte un condensé de while
Structure
Exemple :
Explication :
type Nom_Fonction(parametres)
// instructions
int main()
resultat = Nom_Fonction(saisie_nombre);
Imaginons que dans un programme, nous ayons besoin simultanément de 50 valeurs (par
exemple, des notes pour calculer la moyenne d’une classe).
La seule solution dont nous disposons a l’heure actuelle consiste a déclarer 50 variables.
Un tableau est donc un ensemble de valeurs portant le mème nom de variable et repérées par
un nombre, ou encore une variable indicée.
Définir un tableau
Dans notre exemple, de la classe avec 50 élèves : int tableau[50];
int Tab1[4];
char TabP[10];
int tab[] = { 1, 2, 3 };
– On utilise l’indice i
– Exemple d’utilisation :
Exemple: Si elle contenait auparavant la valeur 12, elle contiendra à présent la valeur
14.
d’éléments
Int tab[3], i ;
tab[0]= 6 ;
tab[1]= 9 ;
tab[2]= 4 ;
Return 0 ;
TABLEAU A DEUX DIMENSIONS
– L le nombre de lignes
– C le nombre de colonnes.
de colonnes).
• int tab[10][15];
Macky SALL
Ousmane SONKO
Exemple 2 :
1 22
15 33
76 44
Exemple :
Code Resultat
int main() 10 13
{ 11 2
int tab[3][2] = 34 56
{
{10 , 13 }, tab[0][0] = 10
{ 11, 2 }, tab[0][1] = 13
{ 34, 56 } tab[1][0] = 11
},i,j; tab[1][1] = 2
tab[2][0] = 34
tab[2][1] = 56
for (i = 0; i < 3; ++i)
{ Process returned 0 (0x0) execution time :
for (j = 0; j < 2; ++j) 0.197 s
{ Press any key to continue.
printf("tab[%d][%d] = %d\n", i, j, tab[i][j]);
}
}
return 0;
}
TP TABLEAU A DEUX DIMENSIONS
TP1 /
Initialiser le tableau :
4 6 7 9 56
1 0 67 8 9
7 3 2 1 78
5 3 2 1 0
TP2 /
Initialiser le tableau :
4 6 7 9
1 0 67 8
7 3 2 1
5 3 2 1
TP3 /
Initialiser le tableau :
4 6 7 9
1 0 67 8
7 3 2 1
5 3 2 1
TP5/
3/ afficher le tableau
4/ faire un filtre sur le tableau pour trouver le nombre max et afficher sa position
5/ faire un filtre sur le tableau pour trouver le nombre min et afficher sa position
TP6/
(les colonnes= mois, la 1ere ligne les poulets de 2500, la 2eme ligne : poulets 3000, la
3eme ligne : poulets 4000)
1/ Permet de saisir le nombre de V pour les trois catégories de poulets durant la période de
janvier à juin.
3/Sachant que l’homme d’affaires à un bénéfice de 25% sur la vente de chaque poulet, quel
mois est le plus rentable ?
LES CHAINES DE CARACTERES (#include <string.h>)
Dans un programme on utilise les chaînes de caractères pour manipuler des mots, des
dialogues, des jeux, des messages...
En C on peut aussi définir une chaîne de caractères comme un tableau de caractères (de type
char).
Char= type,
[ ] = taille du tableau (dans cet exemple la taille du tableau est vide donc le programme se
charge lui même de calculer le nombre de caractères).
Printf(« %s \n»,caractere) ;
Nous pouvons aussi définir une taille à notre tableau de chaîne de caractères
Explication :
[‘c’][‘p’][‘s’][‘2’][‘\0’] ;
[‘\0’] marque la fin de notre chaîne de caractères.
Si la fin d’une chaîne de caractères n’est pas définie soit notre programme bug en utilisant une
zone de la mémoire non autorisée soit tous les caractères ne s’affichent pas.
Remarque 2 : Ce n’est qu’à l’initialisation du tableau qu’on peut écrire du texte c’est à dire
qu’on ne peut pas faire cette pratique :
Classe= « cps2 » ;
Syntaxe :
Exercice :
Syntaxe : strcmp(chaîne1,chaîne2) ;
Remarque : si deux chaînes de caractères sont exactes alors, la fonction strcmp revoie la
valeur zero (0) ;
Exercice :
Syntaxe :
Strlen(chaîne_caractères) ;
Exercice :
Syntaxe :
Strcat(chaine1,chaine2) ;
Exercice :
Syntaxe :
Remarque : si la chaîne2 est dans la chaîne1 alors le résultat trouvé sera différent de NULL
(!= NULL).
Exercice :
Exemple :
Gets(chaine) ;
Exemple :
puts(chaine) ;
3/ Calculer et afficher la longueur d’une chaîne de caractères sans utiliser la fonction strlen.
TP2/
Écrire un programme qui permet de calculer le nombre d’apparition d’un caractère dans une
chaîne de caractères.
TP3/
Écrire un programme qui permet de de calculer et d’afficher le nombre de mots dans une
chaîne de caractères.
Sécuriser la saisie avec fgets
Pour la saisie d’une chaîne de caractères, nous avons d’abord utilisé scanf.
La limite de la scanf est que elle s’arrête dès que notre chaîne de caractère tombe sur un
espace ou une tabulation.
La deuxième limite de scanf est que, à la déclaration de notre chaîne de caractères lorsqu’on
définie une taille au tableau exemple [6], normalement on peut saisir et afficher jusqu’à 5
caractères le dernier étant réservé à [\0].
Même si on saisie une chaîne largement supérieure, la fonction scanf continue à écrire la suite
de la chaîne . C’est ce qu’on appel un BUFFER ou un dépassement de mémoire.
Le dépassement de mémoire est très dangereux pour un programmeur car il risque d’écraser
d’autres informations.
int main()
char nom[5];
scanf("%5s", nom);
return 0;
Dans cet exemple, nous limitons l’affichage de la chaîne à 5 caractères mais le problème
demeure.
En effet même si ce programme n’affiche que 5 caractères, il garde toujours en mémoire les
caractères qui dépassent (BUFFER).
La deuxième fonction est la fonction gets qui règle le problème des espaces dans notre chaîne
de caractères mais qui ne contrôle toujours pas les « BUFFER » d’où la nécessité d’utiliser
FGETS.
Donc en résumé fgets permet de gérer les espaces, les tabulations, le nombre de caractères et
enfin l’effacement du « BUFFER ».
Syntaxe :
Fgets (NomTabChaine,taille,stdin) ;
Stdin est une fonction de la bibliothèque #include <stdio.h> pour le gérer le contrôle du clavier.
TP4/
Donner à chaque fois une indication à l’étudiant du nombre de caractères qu’il doit saisir pour
trouver la bonne réponse.
Afficher la note de l’étudiant avec comme appréciation « Très bien » si sa note est comprise
entre 16 et 20, « Passable » si sa note est comprise entre 12 et 15 sinon afficher
« MAUVAISE NOTE »
ü Les fonctions sont des modules (groupe d'instructions) indépendants désignés par un
nom. Elles ont plusieurs intérêts :
En résumé : Les fonctions en C sont des blocs de code qui accomplissent une tâche
spécifique et qui peuvent être réutilisées dans un programme. Elles permettent de diviser
un programme en parties plus petites et plus faciles à gérer, ce qui rend le code plus
lisible et maintenable.
Exemple :
int addition(int a,int b)
{
Int c ;
c=a+b ;
Return c ;
}
ü Pour le choix d'un nom de fonction il faut respecter les mêmes règles que celles pour les
noms de variables
Nom_fonction(parametre1,parametre2...) ;
TP1 /
Créer une fonction qui permet de calculer la surface d’une pyramide en prenant en compte la
base et la hauteur .
NB : Vous êtes libre de choisir la méthode de calculer la surface d’une pyramide mais je vous
conseille celle-ci :
TP2 /
TP3 /
créer une fonction calculant la vitesse du son dans l'air en fonction de la température en degrés
Celsius,
TP4 /
Créer une fonction qui calcule la vitesse du son dans l'eau en fonction de la température en
degrés Celsius et de la pression de l'eau en bars.