Le langage C

1,082 views

Published on

  • Be the first to comment

  • Be the first to like this

Le langage C

  1. 1. PARTIE 1 : Les bases- Les fonctions principales- Les variables- Les maths- Les conditions (if / switch)- Les boucles (for / do while /while)
  2. 2. Code de base#include <stdio.h>#include <stdlib.h>int main (void){// Codereturn 0;}
  3. 3. FonctionsNoms principales Effets Exemplesprintf Affiche un message printf(«Hello world»);scanf Récupère une saisie scanf(«%d», &variable); Caractères spéciaux printf Effetsn Saut à la lignet Tabulation. Symboles commentaires Effets// Commentaire sur une ligne./*...*/ Commentaire en bloc.
  4. 4. Variables Noms Appels printf / scanf Valeursentier (unsigned) int %d -2 à 2 milliardsdécimal (unsigned) float %f Beaucoupcaractère (unsigned) char %c -127 à 128chaîne de caractères char [TAILLE] %s Dépend de TAILLE
  5. 5. Variables (algo)Variables : variable : entierDEBUTvariable <- saisir() // Récupère saisieafficher -> “La saisie vaut “ + variable// Affiche saisieFIN
  6. 6. Variables (code)#include <stdio.h>#include <stdlib.h>int main (void){int variable = 0; // Initialisation variable// NE PAS OUBLIER LE “&“ DEVANT variable !!!scanf(“%d“, &variable); // Récupère saisieprintf(“La saisie vaut %d“, variable); // Affiche saisiereturn 0;}
  7. 7. Mathématiques Symboles Définitions + Addition - Soustraction * Multiplication / Division % Modulo
  8. 8. Maths (modulo) 11 2 5 1 11 = 2 * 5 + 1 => 11 % 2 = 1
  9. 9. Maths (fonctions) Fonctions Effets sqrt(X) Racine carrée de X pow(X,Y) Puissance : X^Y fabs(X) Valeur absolue de X ceil(X) Entier sup. de X floor(X) Entier inf. de X
  10. 10. Maths (algo)Variablesvaleur1, valeur2, resultat : entierDEBUTvaleur1 <- 10, valeur2 <- 4resultat <- valeur1 * valeur2 / 7resultat <- resultat - 5; // Ou : “resultat -= 5;“, resultat = 1resultat <- resultat + 1; // Ou : “resultat ++;“, resultat = 2resultat <- resultat³ // resultat = 2^3 = 8FIN
  11. 11. Maths (code)#include <stdio.h>#include <stdlib.h>#include <math.h>int main (void){int valeur1 = 10, valeur2 = 4; // Initialisation variablesint resultat = valeur1 * valeur2 / 7; // = 6 (c’est un int)resultat = resultat - 5; // Ou : “resultat -= 5;“, resultat = 1resultat = resultat + 1; // Ou : “resultat ++;“, resultat = 2resultat = pow(resultat,3); // resultat = 2^3 = 8return 0;}
  12. 12. ASCII Un caractère (char) a une valeur décimale comprise entre 0 et 255. Par exemple : le nombre 65 correspond à la lettre «A».#include ... int main (void){int valeur; char caractere = ‘A’;valeur = caractere+1; // C’est possible, valeur = 65 + 1 = 66printf(“Caractere : %c ; ASCII : %d“, valeur);// Affichera : «Caractere : B ; ASCII : 66»return 0;}
  13. 13. ConditionsComme son nom l’indique, une conditions’utilise quand on souhaite exécuter un codeselon un ou plusieurs cas particulier(s).
  14. 14. Conditions (if / switch) IF SWITCHPlusieurs variables Une seule variableVariables indéfinies Variables définiesConditions ET/OU possibles Conditions ET/OU impossiblesMoins rapide à écrire Plus rapide à écrireMoins clair à lire Plus clair à lire
  15. 15. Conditions (if else) Les accolades {} peuvent être supprimées si le code de la condition ne fait qu’une ligne.if (age < 18) printf(“Film -18 ans interdit.“); Une condition peut être négative par «!»if (!(age < 18)) printf(“Film -18 ans autorisé.“); Une variable seule peut servir de condition (booléen), toujours vraie si variable ≠ 0.if (jeu_en_cours) printf(“Bonne partie.“);
  16. 16. Conditions(Opérateurs) Symboles Effets== Egal!= Différent> Supérieur< Inférieur>= Sup. ou égal<= Inf. ou égal|| Ou&& Et
  17. 17. Conditions(Opérateurs bool) if (A operateur B) A B || && 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1
  18. 18. Conditions (switch) Mots-clés Effetscase Débute chaque condition.default Exécuté par défaut.break Quitte le switch.
  19. 19. Conditions (switch)#include ... int main (void){switch (tension){ case 0 : printf(“T’es mort.“); break; default : printf(“T’es en vie.“);}return 0;}
  20. 20. Conditions (algo)DEBUTSi booleen1 ET non booleen3 Alors Instructions 1Sinon si booleen2 Instructions 2Sinon Instructions 3Fin SiFIN
  21. 21. Conditions (code)int main(void){if (booleen1 && !booleen3) printf(“Instructions 1“);else if (booleen2) printf(“Instructions 2“);else printf(“Instructions 3“);}
  22. 22. BouclesComme son nom l’indique, le code d’uneboucle se répète jusqu’à ce que la condition soitfausse.Elle s’utilise quand on souhaite exécuter uncode répétition.
  23. 23. BouclesMots-clés Effetsfor On exécute le bloc de 0 à n fois, utilisé pour compter.do while On exécute le bloc de 1 à n fois.while On exécute le bloc de 0 à n fois.
  24. 24. Boucles (For)La boucle for possède 3 arguments : Le 1er pour initialiser. Le 2è pour conditionner la fin. Le 3è pour calculer le pas.
  25. 25. Boucles (algo)DEBUT// ForPour i<-0 à 9 Instructions 1i Suivant// Do whileFaire Instructions 2Tant que i<10// WhileTant que i<10 Instructions 3Fin Tant queFIN
  26. 26. Boucles (code)int main(void){int i=0;for(i=0; i<10 ; i++){// Code}do{// Code}while(i<10);while(i<10){// Code}}
  27. 27. Boucles (ATTENTION !!!) Attention aux boucles infinies !int main(void){while(!Arthur_Bon_En_Design){// Inutile}while(!Barbara_Bon_En_Design){// OK}while(!Jeremie_Bon_En_Design){// Boucle infinie}}
  28. 28. PARTIE 2 : Tableaux- Tableaux 1 et 2 dimensions !- Chaînes de caractères- Define, nouvelle directive depréprocesseur
  29. 29. Tableaux Le tableau peut être de tous les types (int, float, char). Un tableau se déclare avec les crochets [] dans lesquels on met le nombre de valeur max.int main(void){int Tableau_Entier[10];float Tableau_Decimaux[5];char Tableau_Caractete[100];}
  30. 30. Tableaux (initialisation)int main(void){int Tab_Int[3]={1, 2, 3}; // On initialise les valeurs au début// Ou alors on entre les valeurs par adresse tableau// Un tableau commence toujours à l’adresse 0int Tab_Int2[3];Tab_Int2[0] = 1;Tab_Int2[1] = 2;Tab_Int2[2] = 3;}
  31. 31. Tableau à 2 dimensionsint main(void){int Tab_Int[3][3]={ {1, 2, 3}, {4, 5, 6}, {7, 8, 9}};}
  32. 32. Chaînes de car. Noms Appels printf / scanf Valeursentier (unsigned) int %d -2 à 2 milliardsdécimal (unsigned) float %f Beaucoupcaractère (unsigned) char %c -127 à 128chaîne de caractères char [TAILLE] %s Dépend de TAILLE
  33. 33. Chaînes de car. (règles)La chaîne se termine toujours par “0“.Lors d’un scanf : Le “&“ disparaît. La saisie s’arrête dès l’appui sur la touche “enter“ ou la présence d’un espace !
  34. 34. Chaînes de car. (règles)int main(void){char Tab_Int[7];scanf(“%s“, Tab_Int);print(“%s“, Tab_Int);}
  35. 35. Chaînes de car. (règles) Adresses Valeurs 0 B 1 o 2 n 3 j 4 o 5 u 6 r 7 0
  36. 36. Chaînes de car. (Fonctions) Fonctions Effetsstrcpy(X,Y) Copie Y dans Xstrcat(X,Y) Concatène X et Y, dans X.strcmp(X,Y) Compare X et Y (0 si identique, 1 si non)strlen(X) Renvoi la longueur de la chaîne de car. Recherche caractère Y dans chaîne X, etstrchr(X,Y) renvoie la chaîne à partir de Y.
  37. 37. Directive de préprocesseur#include est une directive de préprocesseur.#include = appel des bibliothèques#define = variable globale
  38. 38. Partie 2 (algo)Variable globale TAILLE <- 10Tableau entier Tab(TAILLE)DEBUTTab <- Saisir()Si Tab = “bonjour“ Alors Afficher -> TabFin SiFIN
  39. 39. Partie 2 (code)#include <string.h>#define TAILLE 100int main(void){char Tab[TAILLE];scanf(“%s“, tab)if(strcmp(tab == “bonjour0“) printf(“%s“, tab);return 0;}

×