Techniques de programmation Partie 1 Pr. Aniss MOUMEN Module Techniques de prog

Techniques de programmation Partie 1 Pr. Aniss MOUMEN Module Techniques de programmation EHTP 1 CONCEPTS DE BASE - Structure d’un programme C - Variable - Constante - Entrée/Sortie 2 Langage de programmation C C est un langage de programmation impératif, procédurale et structuré, de bas niveau. Inventé au début des années 1970 pour réécrire Unix, • C++, C#, Java et PHP ou JavaScript ont repris une syntaxe similaire au C et reprennent en partie sa logique. • C offre au développeur une marge de contrôle importante sur la machine (notamment sur la gestion de la mémoire) et est de ce fait utilisé pour réaliser les « fondations » (compilateurs, interpréteurs…) de ces langages plus modernes. 3 Langage de programmation C • Le langage C a été inventé au cours de l'année 1972 dans les Laboratoires Bell. Il était développé en même temps qu'Unix par Dennis Ritchie et Kenneth Thompson. Kenneth Thompson avait développé un prédécesseur de C, le langage B. • Dennis Ritchie a fait évoluer le langage B dans une nouvelle version suffisamment différente, en ajoutant notamment les types, pour qu'elle soit appelée C. • Bien que C soit officiellement inspiré de B et de BCPL, on note une forte influence de PL/I (ou de PL360, un langage de programmation développer par IBM) • Par la suite, Brian Kernighan aida à populariser le langage C. Il procéda aussi à quelques modifications de dernière minute. • En 1978, Kernighan fut le principal auteur du livre The C Programming Language décrivant le langage enfin stabilisé ; Ritchie s'était occupé des appendices et des exemples avec Unix. 4 Structure générale d’un programme C La structure très générale d’un programme C est la suivante : #include <des_librairies_utiles> ... déclarations de fonctions utiles [recommandé] int main() { corps du programme principal [si possible assez court] } 5 Structure générale d’un programme C 6 Commentaires • Les commentaires : Permet de documenter le code source (très important pour la maintenance et les modifications futur) • Comment ? Texte entre les caractères /* et */. Texte en une ligne précédé par //. • Exemples : //Text d’une ligne en commentaire /* commentaire d’une ligne*/ /******************** commentaires sur plusieurs lignes ********************/ 7 Variables 8 Définition : Une variable est une zone mémoire pour le stockage des données Déclaration : TYPE IDENTIFICATEUR ; Identificateur : Ils permettent de donner des noms pour les désigner plus facilement. Règles : 1- Les identificateurs ne doivent pas commencer par un chiffre et doivent être choisis de la façon la plus parlante possible. 2- certains identificateurs sont réservés. Variables 9 LES MOTS RESERVÉS : Exemples : Variables • Type des variables (Type de base) Nombres entiers : on les note sous la forme habituelle, une suite de chiffres : 26, -172. Nombres réels: Leur notation est elle aussi classique, Le séparateur décimal est le point. Caractères: On les note entre apostrophes comme par exemple 'A'(caractère A), 'a'(caractère a), '0‘ (caractère 0) Chaînes de caractères: Ce sont des suites de caractères délimitées par des guillemets ("oui", "bonjour " …) Booléens: Ce sont des objets particuliers qui peuvent prendre uniquement 2 valeurs : VRAI ou FAUX. 10 Variables – Type 11 2 16 = 65 536 , 232 = 4 294 967 296 Variables - Typedef • En C, on peut définir un type personnalisé à partir des types existants, grâce à l’instruction typedef : typedef Caracteristiques_du_type Nom_du_type • Exemple : typedef char Ch 12 Constante • Définition : Une zone mémoire initialisé d’avance avec une valeur connue • Déclaration : (avant le main) CONST TYPE IDENTIFICATEUR = VALEUR; OU #DEFINE IDENTIFICATEUR VALEUR • Exemples : 13 Constante énumérée • ENUM : permet de déclarer des constantes énumérées. • Déclaration (exemple) : enum couleur {jaune, rouge, vert, bleu} enum logique {vrai, faux} • Utilisation : enum couleur c1, c2; enum logique f; Int i; c1 = jaune; i = vert; c2 = c1 + 2 ; /* vert */ jaune = 2; /* impossible jaune n'est pas une value*/ 14 Entrée - Sortie 15 •LA FONCTION PRINTF printf ("premier argument %format_arg2 % format_ arg3", arg2, arg3); Le premier argument de printf contient une chaîne de caractères qui est affichée à l’écran à l’exception des mots commençant par le caractère % . • Exemple: int i= 6; float f= 2.3456; printf("Rang : %d , valeur %10.5f", i, f); Entrée – Sortie PRINTF(FORMAT, LISTE D’EXPRESSION); • FORMAT - constante chaîne de caractères entre "". - une chaîne de caractères • LISTE D’EXPRESSION - suite d’expressions séparées par des virgules correspondant au format. • NB : printf, renvoie le nb de caractères réellement affichés ou -1 en cas d’erreur 16 Entrée - Sortie • LES CODES FORMATS : c : char caractère d : entiers u : unsigned int ld:long int. lu : unsigned long int. f :double ou float écrit notation en décimale e : double ou float écrit en notation exponentielle s : chaîne de caractères 17 Entrée-Sortie Cas d’erreur de PRINTF: si le type de l’expression ne correspond pas au format – même taille mémoire ===> erreur d’interprétation de l’expression – taille mémoire différente ===> décalage et affichage de n’importe quoi si le nb de code format est différent de nb d’expressions – printf("%d", n, p); ===> affiche n – printf("%d %d ", n); ===> affiche n et n’importe quoi 18 Entrée - Sortie Scanf : permet de saisir des données entrées au clavier. Le format détermine le type des données saisies. Il est nécessaire de fournir l'adresse des variables qui contiendront les données. Les informations entrées au clavier sont placées dans un tampon. scanf(format, liste d'adresses); scanf("%arg2%arg3", &arg2, &arg3); Exemple : scanf("%d%d",&n,&p); 19 Entrée - Sortie • L'espace dans le code format indique à scanf d'avancer jusqu'au prochain caractère qui n'est pas un séparateur (c'était déjà le cas pour les nombres). Exemple : scanf("%d^%c",&n,&c); À L’ÉCRAN : 45^^a ===> EN MÉMOIRE : n = 45 c = 'a' • Caractère invalide La rencontre d'un caractère invalide (le point dans un entier) provoque l'arrêt du traitement du code format. Exemple : scanf("%d^%c",&n,&c); À L’ÉCRAN : – 45a@ ===> EN MÉMOIRE : n = 45 c = 'a' 20 Entrée - Sortie • CAS D’ERREUR DE SCANF : 1) si le type de l’expression ne correspond pas au format – même taille mémoire ===> introduction d'une mauvaise valeur – taille de la value< taille code format ===> écrasement en mémoire de la zone consécutive 2) si le nb de codes formats est différent du nb d’expressions – scanf("%d", &n, &p); ===> n est le seul entré – scanf("%d %d ", &n); ===> n est entré et un entier quelque part dans la mémoire est entré aussi. 21 Exercices Traduire les exercices de la série 0, en programme C 22 Exercices Exercice 0 Ecrire un algorithme qui échange la valeur de deux variables. Exemple, si a = 2 et b = 5, le programme donnera a = 5 et b = 2. Exercice 1 Ecrire un algorithme qui demande un nombre à l’utilisateur, puis qui calcule et affiche le carre de ce nombre. Exercice 2 Ecrire un algorithme qui lit le prix HT d’un article, le nombre d’articles et le taux de TVA, et qui fournit le prix total TTC correspondant. Faire en sorte que des libelles apparaissent clairement. Exercice 3 Ecrire un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si leur produit est négatif ou positif (on laisse de coté le cas o`u le produit est nul). Attention toutefois : on ne doit pas calculer le produit des deux nombres. Exercice 4 Ecrire un algorithme qui demande l’âge d’un enfant à l’utilisateur. Ensuite, il l’informe de sa catégorie : ”Poussin” de 6 à 7 ans ”Pupille” de 8 à9 ans ”Minime” de 10 à 11 ans ”Cadet” après 12 ans Exercice 5 Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu’à ce que la réponse convienne. En cas de réponse supérieure à 20, on fera apparaitre un message : Plus petit ! , et inversement, Plus grand ! Si le nombre est inférieur à 10. Exercice 6 Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme des entiers jusqu’`a ce nombre. Exercice 7 Ecrire un algorithme qui demande un nombre de départ, et qui calcule sa factorielle. Exercice 8 écrivez un algorithme permettant, à l’utilisateur de saisir les notes d’une classe. L’algorithme, une fois la saisie terminée, renvoie le nombre de ces notes supérieures à la moyenne de la classe. 23 OPÉRATION & EXPRESSION 24 Opérations - Récap 25 Opérateurs de Comparaison 26 Opérateurs de comparaison 27 Opérateur de comparaison 28 Structure de contrôle 29 Structure de contrôle 30 Structure de contrôle 31 Boucles & itérations 32 Break & Continue 33 Tableau statique 34 Tableau • Un tableau est une collection indicée de variables de même type. • Déclaration d’un tableau : type nom_tableau[nombre_elements] float t[10] : 10 élément de type float 1ére position est : t[0] iéme valeur d’un tableau est le uploads/Ingenierie_Lourd/ cour-prog.pdf

  • 34
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager