👨‍💻 Programmation en C (JesProg )😉👨🏽‍💻
4.76K subscribers
5 photos
1 video
86 links
Ici nous apprenons ensemble à Programmer en C de manière simple, facile et efficace avec des TP à la fin de chaque cours
Download Telegram
Un programme écrit en langage C est composé de deux parties :

Partie 1 : Les déclarations

Elle comporte la déclaration des fonctions des bibliothèques (bibliothèque standard ou autre) par inclusion de fichiers fournis avec le langage et peut comprendre des déclarations des variables « globales ».

La première instruction #include <stdio.h> est une directive au compilateur dont le but est de réaliser l'inclusion mentionnée : ici, l'inclusion des fonctions d'entrée/sortie intégrées à la bibliothèque standard.

On peut également faire appel à d'autres bibliothèques, par exemple une bibliothèque mathématique. Dans ce cas, l'inclusion dans le code par #include <math.h> devra s'accompagner d'une prise en compte explicite de la bibliothèque à la compilation.

Partie 2 : Le corps du programme

Tout programme C doit comporter une fonction principale main. Cette fonction est celle utilisée par le système pour exécuter le programme.

#include <stdio.h>

int main() {

  printf("hello, world\n") ;

  return 0 ;

}

La fonction peut ne pas retourner de valeur, dans ce cas de figure, main doit être précédé du type void et l'instruction return ne recevra aucune valeur ou sera absente. Par convention, la valeur retournée est 0 lorsque l'exécution du programme s'est bien passée.

Instructions : constituent le corps du programme. Elles sont plus ou moins complexes et nombreuses selon les programmes.

La partie Les déclarations peut contenir des définitions de fonctions qui seront utilisées par l'intermédiaire de la fonction principale main.
Programme en C:

#include <stdio.h> /* Inclut les fonctions d'entrée-sortie de base */

int main() { /* Déclaration du programme principal, qui renvoie un nombre entier une fois terminé.

*/ Déclaration de variables /* Les variables sont déclarées avant utilisation */

Les instructions /* Le corps du programme est composé de plusieurs instructions, chacune terminée par un ';' */

return 0; /* La valeur retournée par le programme principal Ici, zéro car il s'est exécuté correctement. */

} /* Fin du programme */
La bibliothèque standard math du Langage C offre un certain nombre de fonctions mathématiques. Pour pouvoir les utiliser, il est nécessaire d'inclure au début du fichier source la directive :

#include <math.h>


La liste suivante contient les fonctions les plus courantes. Le type de l'argument est indiqué entre parenthèses (double x) et le type de la valeur retournée est précisée devant le nom de la fonction : c’est toujours un réel double.

Les principales fonctions mathématiques de la bibliothèque standard :
Exemple d'utilisation de la bibliothèque math.h


#include <math.h> /* fichier entête à inclure pour utiliser les fonctions mathématiques */
void main(void)
{
double x, y;
double a=6.0, b=-1.5, module, argument ;
module = sqrt( a*a+b*b ) ;
argument = atan( b/a );
for ( x=1.0 ; x < exp(5) ; x=x+1.0 )
{
printf( "Le log decimal de x=%lf est %lf", x, log10(x) );
y = fabs(sin(x)) + exp(cos(x));
}
}
Correction :

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int choixMenu;

printf("=== Menu ===\n\n");
printf("1. Royal Cheese\n");
printf("2. Mc Deluxe\n");
printf("3. Mc Bacon\n");
printf("4. Big Mac\n");
printf("\nVotre choix ? ");
scanf("%d", &choixMenu);

printf("\n");

switch (choixMenu)
{
case 1:
printf("Vous avez choisi le Royal Cheese. Bon choix !");
break;
case 2:
printf("Vous avez choisi le Mc Deluxe. Berk, trop de sauce...");
break;
case 3:
printf("Vous avez choisi le Mc Bacon. Bon, ca passe encore ca ;o)");
break;
case 4:
printf("Vous avez choisi le Big Mac. Vous devez avoir tres faim !");
break;
default:
printf("Vous n'avez pas rentre un nombre correct. Vous ne mangerez rien du tout !");
break;
}

printf("\n\n");

return 0;
}
II-/ Appel d'une fonction dans notre programme

Exemple
#include <stdio.h>
#include <stdlib.h>

int triple(int nombre)
{
return 3 * nombre;
}

int main()
{
int nombreEntre = 0, nombreTriple = 0;

printf("Entrez un nombre... ");
scanf("%d", &nombreEntre);

nombreTriple = triple(nombreEntre);
printf("Le triple de ce nombre est %d\n", nombreTriple);

return 0;
}
#include <stdio.h>
#include <stdlib.h>

float additionneur(float nbr1, float nbr2)
{
return nbr1+nbr2;
}
float soustracteur(float nbr1, float nbr2)
{
return nbr1-nbr2;
}
float multiplieur(float nbr1, float nbr2)
{
return nbr1*nbr2;
}
float diviseur(float nbr1, float nbr2)
{
return nbr1/nbr2;
}


int main()
{
int choixMenu, revenir;
double nombre_1, nombre_2;

do{ // boucle

printf("\n++++++++++++++++++++++++* JesProg - Calculatrice *+++++++++++++++++++++++++++\n\n");
printf("\t1. Addition\n");
printf("\t2. Soustraction\n");
printf("\t3. Multiplication\n");
printf("\t4. Division\n");
printf("\t5. Sortir\n");
printf("\n\tFaites un choix : ");

scanf("%d", &choixMenu);

system("cls");//Permet d'effacer l'écran
printf("\n");

switch (choixMenu)
{
case 1:
printf("********************ADDITION*************************\n\n");// Titre

printf("Veillez entrer les valeurs : \n\n\t");
scanf("%lf", &nombre_1);
printf("\t+\n\t");
scanf("%lf", &nombre_2);

printf("\t= %lf\n\n",additionneur(nombre_1, nombre_2));
break;
case 2:
printf("********************SOUSTRACTION*************************\n\n");
printf("Veillez entrer les valeurs : \n\n\t");
scanf("%lf", &nombre_1);
printf("\t-\n\t");
scanf("%lf", &nombre_2);

printf("\t= %lf\n\n", soustracteur(nombre_1, nombre_2));
break;
case 3:
printf("\t********************MULTIPLICATTION*************************\n\n");
printf("Veillez entrer les valeurs : \n\n\t");
scanf("%lf", &nombre_1);
printf("\t*\n\t");
scanf("%lf", &nombre_2);

printf("\t= %lf\n\n", multiplieur(nombre_1, nombre_2));
break;
case 4:
printf("\t********************DIVISION*************************\n\n");
printf("Veillez entrer les valeurs : \n\n\t");
scanf("%lf", &nombre_1);
printf("\t/\n\t");
scanf("%lf", &nombre_2);

printf("\t= %lf\n\n", diviseur(nombre_1, nombre_2));
break;
case 5:
return 0;
break;
default:
printf("Vous n'avez pas entrer un nombre correct. Je me demande a quoi vous jouez :-( !");
break;
}

printf("\n\n");

printf("Revenir au menu principal ? \n\n");
printf("1. Oui\n\n2.Sortir\n\n");
scanf("%d",&revenir);
system("cls");//Permet d'effacer l'écran
}while(revenir == 1);

return 0;
}





Correction TP Calculatrice - Programmation en C
Très simple et elle doit toujours être à l'entête juste en dessous des #includes.

Exemple :
#include<studio.h>

void saluer (char* nom);

int main(){
Char nom[]=" JesProg";
saluer();
return 0;
}

void saluer (char* nom){
printf ("Salut %s, comment tu vas ? '');
}
Les variables globales à un projet sont déclarés à l'entête du fichier main.c juste en dessous des includes.

Exemple :
#include<studio.h>

int ma_variable_globale = 5;

int main(){
...
return 0;
}
II-/ Appel d'une fonction dans notre programme

Exemple
#include <stdio.h>
#include <stdlib.h>

int triple(int nombre)
{
return 3 * nombre;
}

int main()
{
int nombreEntre = 0, nombreTriple = 0;

printf("Entrez un nombre... ");
scanf("%d", &nombreEntre);

nombreTriple = triple(nombreEntre);
printf("Le triple de ce nombre est %d\n", nombreTriple);

return 0;
}
Pour utiliser ces nouvelles fonctions, vous devez commencer par inclure la bibliothèque string.h comme suit à l'entête du fichier.c : #include <string.h>👍
Aussi simple que ça😊👨🏽‍💻
sprintf: écrire dans une chaîne

Cette fonction se trouve dans stdio.h contrairement aux autres fonctions que nous avons étudiées jusqu'ici, qui étaient dans string.h.

Ce nom doit vaguement vous rappeler quelque chose. Cette fonction ressemble énormément au printf que vous connaissez mais, au lieu d'écrire à l'écran, sprintf écrit dans une chaîne ! D'où son nom d'ailleurs, qui commence par le « s » de « string » (chaîne en anglais).


Exemple d'utilisation

#include <stdio.h>
#include <stdlib.h>

int main()
{
char chaine[100];
int age = 15;

// On écrit "Tu as 15 ans" dans chaine
sprintf(chaine, "Tu as %d ans !", age);

// On affiche chaine pour vérifier qu'elle contient bien cela :
printf("%s", chaine);

return 0;
}


Resultat:
Tu as 15 ans !

👨🏽‍💻👍👍👍
I-/ Les include

Comme je vous l'ai expliqué dans les tout premieres leçons du cours, on trouve dans les codes source des lignes un peu particulières appelées directives de préprocesseur.
Ces directives de préprocesseur ont la caractéristique suivante : elles commencent toujours par le symbole "#". Elles sont donc faciles à reconnaître.

Nous avons ce fameux "#include" que nous connaissons tous et que nous retrouvons à l'entête de nos fichiers.c
Cette directive au processeur permet d'inclure une bibliothèque précise pour une utilisation des fonctions de la bibliothèque en question 👨🏽‍💻

Exemple :
#include <stdlib.h>

Nous avons également vu qu'elle permet d'importer nos propres bibliothèque de fonctions créer.😉

Exemple:
#include "monfichier.h"

Celà dit, ceci n'est plus un secret pour personne 😊👨🏽‍💻👍