frederic.guinand@univ-lehavre.fr IUT Le Havre
Plan les bases quelques rappels de langage C les structures de contrôle conditionnelles les structures de contrôle itératives les tableaux les pointeurs les structures les procédures et fonctions la manipulation des fichiers
Bases - compilation compilation d un programme C : gcc programme.c -o progexecutable si vous utilisez des fonctions prédéfinies dans des bibliothèques il faut ajouter la bibliothèque gcc progsinus.c -o progsinus -lm
Bases - les opérateurs opérateurs arithmétiques et logiques : + - * / &&! a puissance b : pow(a, b) (nécessite math.h et -lm pour la compilation) opérateurs de comparaison : ==!= < > <= >= affectation avec le symbole = (attention à ne pas confondre avec l égalité logique ==)
organisation en blocs Bases chaque bloc de programme en C est délimité par les accolades {...} l horizon d une variable dépend du bloc dans lequel elle est déclarée
entrées/sorties standards Bases pour afficher une valeur : printf("format",expression1,expression2,etc.) pour récupérer une valeur saisie au clavier : scanf("format",adr variable1,adr variable 2,etc.)
Structures de contrôle Bases l ordre d exécution des instructions est la séquence les structures de contrôle permettent de modifier le schéma d exécution on distingue les structures qui permettent d exprimer un OU et les structures qui permettent de répéter un même traitement plusieurs fois.
Bases Structures de contrôle conditionnelles structure conditionnelle simple : if(condition) {...} [else {...}] la condition est une expression booléenne, mais en C le type booléen n existe pas, ainsi une condition dont la valeur est différente de 0 est évaluée à vrai structure conditionnelle multiple : switch(entier){ case(valeur1) :...[break ;] case(valeur2) :... [break ;] default :... }
Bases Structures de contrôle itératives boucles for(i=1 ;i<10 ;i++) {...} la variable i peut être utilisée dans le corps de la boucle mais ne devrait pas être modifiée (sauf à rechercher un effet de bord particulier) while(condition) {... } condition même remarque que pour la structure de contrôle conditionnelle simple au moins l un des éléments de la condition doit être modifié dans le corps de la boucle (risque de boucle infinie)
Jeu du nombre caché Exercice 1 le principe est une compétition entre la machine et le joueur le joueur cache un nombre compris entre 1 et 1000 et l ordinateur fait de même à chaque tour, le joueur propose une valeur et l ordinateur lui répond "trop grand" ou "trop petit" ou "bravo" selon la valeur de même à chaque tour l ordinateur propose une valeur au joueur qui lui répond 0 trop petit, 2 trop grand ou 1 pour une valeur trouvée
Génération de nombres aléatoires programmez en C cette application sans utiliser Internet pour vous aider, afin d avoir une idée de votre connaissance de C si vous avez des questions, je suis là
Tableaux
Tableaux un tableau est une structure de données pour organiser un ensemble de variables de même type si vous avez besoin de regrouper des variables de type différents vous avez besoin d une structure en mémoire un tableau occupe une suite contiguë d octets si vous déclarez un tableau de taille 1Goctets fort risque de dysfonctionnement (système incapable de trouver autant de mémoire contigüe) deux types de déclarations : statique et dynamique (voir pointeurs) déclaration statique : type Identifiant[nombreélements] ; int T[20] ; ou double matrice[10][10] ;
Tableaux chaque variable est identifiée à l aide d un même identifiant et d une position unique : tableau T, variables T[1], T[23]. ces variables sont également appelées des cellules ou des éléments. la position d un élément est également appelée indice. en C, un tableau de taille N contient N éléments dont les indices varient de 0 à N-1. le premier élément d un tableau en C est donc la cellule d indice 0.
Exercice 2 (initialisation) créez un tableau de 20 éléments entiers remplissez le tableau d entiers aléatoires compris entre 1 et 1000 affichez le tableau
Exercice 2 (tri) triez le tableau selon l algorithme suivant. principe en deux phases : phase 1 : comparaison T [0] avec T [1], T [2] avec T [3]... T [2i] avec T [2i + 1] etc. si T [k] > T [k + 1] alors inversion des cellules phase 2 : on fait de même en partant de la cellule 1 l algorithme s arrête lorsqu il n y a plus d inversion de position
Exercice 2 (tri).9 7 1 0 3 4 7.9 0 1 3 4.7 0 9 1 3 4 0.7 1 9 3 4.0 1 7 3 9 4 0.1 3 7 4 9.0 1 3 4 7 9 0.1 3 4 7 9
Exercice 2 (tri - correction)
Exercice 2 (tri - correction)
Suite : pointeurs et structures