Les Bases de Programmation en C - Université Sultan Moulay Slimane - PDF

Document Details

SmartOnyx9624

Uploaded by SmartOnyx9624

Université Sultan Moulay Slimane École Supérieure de Technologie de Fkih Ben Salah

Pr. Rachid AIT DAOUD

Tags

programmation C langages de programmation algorithmique informatique

Summary

Présentation des bases de la programmation en langage C. Le document d'introduction détaille les concepts importants, les éléments du module et les méthodes pédagogiques afin de réussir ce cours d'algorithmique et de programmation en C. Le document est destiné aux étudiants de la filière GI et IDS du premier semestre.

Full Transcript

Université Sultan Moulay Slimane Ecole Supérieure de Technologie - FBS Les Bases de Programmation en C Filières: GI, IDS Semestre 1 A.U 2024-2025 Pr. Rachid AIT DA...

Université Sultan Moulay Slimane Ecole Supérieure de Technologie - FBS Les Bases de Programmation en C Filières: GI, IDS Semestre 1 A.U 2024-2025 Pr. Rachid AIT DAOUD 1 Descriptif du module:  Intitulé: Algorithmique et programmation  Les éléments du module: Deux éléments  Méthodes pédagogiques :  Cours magistraux  Travaux dirigés et Travaux Pratiques  Évaluations  Moyenne du module - Moyenne du module = 0,5 * (Note Algorithmique) + 0,5 * (Note Programmation en langage C) 2 Descriptif du module  Modalités de validation du module - Lemodule est acquis par validation si sa note est supérieure ou égale à 12 sur 20 sans qu’aucune note des éléments le composant ne soit inférieure strictement à 6 sur 20. - Si la moyenne du module est supérieure ou égale à 8 sur 20 sans qu’aucune note des éléments le composant ne soit inférieure strictement à 6 sur 20 peut être acquis par compensation à la fin de l’année universitaire en considérant tous les modules des deux semestres de l’année. Objectif principal:  Être capable de développer des programmes (applications) informatiques qui soient:  Correctes  Simples et facile à maintenir  Efficaces (temps d’exécution, utilisation des ressources, robustesse) Avec le langage de programmation C. 4 Plan de cours  Chapitre 1- Introduction à la programmation  Langage de programmation  Compilation et exécution d’un programme en C  Chapitre 2- La programmation sous C  Structure d’un programme en C  Les directives de compilation  Types de base, variables et constantes  L’affectation (Assignation)  Les opérateurs et expressions  Les entrées/sorties en C  Les instructions sélectives (alternatives)  Les instructions itératives (répétitives)  Les Tableaux  Les fonctions  Les chaines de caractères  Les structures 5 A- Introduction à la programmation Rappel  Principe de fonctionnement d’un ordinateur Les deux principaux constituants d’un ordinateur sont la mémoire principale et le processeur.  La mémoire principale (MP) permet de stocker de l’information, (programmes + données)  tandis que le processeur exécute pas à pas les instructions composant les programmes. 6 A- Introduction à la programmation Rappel  Notion de mémoire principale  La mémoire est divisée en emplacements de taille fixe (par exemple 8 bits), utilisés pour stocker les instructions et les données (Au moins 100 temporairement). 200  La mémoire de la machine est formée d'un grand nombre de cellules 300 numérotées. 400  Le numéro d'une case mémoire est appelé « adresse mémoire ». 500 600 700 Cases mémoire Adresse mémoires 7 A- Introduction à la programmation Rappel  Notion de processeur Est le cerveau de l'ordinateur. Il permet de manipuler des informations numériques, c'est-à-dire des informations codées sous forme binaire {0, 1}, et d'exécuter les instructions stockées en mémoire. Pour chaque instruction, le processeur effectue schématiquement les opérations suivantes : 1. Lire en mémoire (MP) l’instruction à exécuter. 2. Effectuer le traitement correspondant. 3. Passer à l’instruction suivante. 8 A- Introduction à la programmation Rappel  Algorithme Un algorithme est la description de la méthode de résolution d’un problème donné en utilisant des instructions élémentaires permettant d'aboutir à un résultat. Ces instructions deviennent compréhensibles par l’ordinateur lors de la traduction de l’algorithme en programme. 9 A- Introduction à la programmation  Programme  Algorithmique et Programmation  Langage de programmation  Langage de programmation compilé  Langage de programmation interprété 10 A- Introduction à la programmation  Notion de programme  Est un enchainement d’instructions (action: additionner deux nombre, lire ou écrire une case mémoire), écrit dans un langage de programmation, exécutées par un ordinateur, permettant de traiter un problème et de renvoyer des résultats.  Il présente la traduction d’un algorithme à l’aide d’un langage de programmation. N.B: Chaque instruction est codifiée en mémoire sur quelques octets.  Algorithmique et Programmation  Tout problème à programmer doit être résolu, d’abord sous forme d’algorithme, puis converti en programme dans le langage de votre choix. Un algorithme est indépendant du langage de programmation utilisé. 11 Introduction à la programmation  Le cycle de développement d’un programme informatique: Traduction Problème Programme Algorithme Résultat Exécution et Analyse test 12 Introduction à la programmation  Notion de langage de programmation:  Un langage de programmation est un ensemble de règles et de conventions utilisé pour écrire des instructions qui peuvent être exécutées par un ordinateur.  Un langage de programmation permet au programmeur d'écrire son programme suivant une grammaire ou bien une syntaxe compréhensible par les humains, et qui peut être traduite en langage machine au moyen d'un outil logiciel dit compilateur afin d'être exécutés par un ordinateur.  Il existe de nombreux langages de programmation, chacun ayant ses propres caractéristiques et son domaine d'application (web, mobile, OS, jeux, …). 13 Introduction à la programmation  Les niveaux de langages de programmation Les langages de programmation sont généralement classés en trois niveaux en fonction de leur proximité avec le langage machine et du niveau d'abstraction qu'ils offrent. 1. Langage de programmation de bas niveau : Les langages de bas niveau sont proches du langage machine et sont directement compréhensibles par l'ordinateur. Ils permettent un contrôle fin sur le matériel informatique et sont souvent utilisés pour le développement de logiciels système, de pilotes de périphériques et d'autres composants critiques du système (Ex: L’assembleur). 2. Langage de programmation de niveau intermédiaire : Les langages de niveau intermédiaire offrent un compromis entre la proximité avec le langage machine et la facilité d'utilisation. Ils fournissent des abstractions plus élevées que les langages de bas niveau, ce qui les rend plus portables et plus conviviaux pour les programmeurs (Ex: C et C++). 3. Langage de programmation de haut niveau : Les langages de haut niveau offrent un niveau élevé d'abstraction, permettant aux programmeurs d'exprimer des algorithmes de manière plus proche du langage humain. Ils sont conçus pour faciliter le développement de logiciels (Ex: Pyhton, Java, JavaScript, PHP, Rubby, …) 14 Introduction à la programmation  La compilation Le C est un langage compilé. Cela signifie qu’un programme C est décrit par un fichier texte, appelé fichier source. Ce fichier n’étant évidemment pas exécutable par le microprocesseur, il faut le traduire en langage machine. Cette opération est effectuée par un programme appelé compilateur. 15 Introduction à la programmation  La compilation La compilation se décompose en fait en 4 phases successives : 1- Le traitement par le préprocesseur : le fichier source est analysé par le préprocesseur qui effectue des transformations purement textuelles (recopier ou supprimer des sections de codes sans chercher à les compiler). 2- La compilation : le compilateur traduit le fichier généré par le préprocesseur (C pur) en langage assembleur, c’est-`a-dire en une suite d’instructions du microprocesseur. 3- L’assemblage : cette opération transforme le code assembleur en des fichiers binaires, c’est-à-dire en instructions directement compréhensibles par le processeur. (Le fichier produit par l’assemblage est appelé fichier objet) 4- Editions des liens: C'est la dernière phase de la compilation, qui sert à éditer des liens afin d’assembler les fichiers binaires «.o » générés dans la phase précédente en un seul gros fichier : appelé l'exécutable final, Cet exécutable a l'extension «.exe ». 16 Introduction à la programmation  Les catégories de langages  Langage de programmation compilé: Un programme écrit dans un langage compilé va être traduit une fois pour toutes par un programme annexe (compilateur) afin de générer un nouveau fichier appelé exécutable.  Langage de programmation interprété: Un programme écrit dans un langage interprété a besoin d’un programme auxiliaire (l’interpréteur) pour traduire au fur et à mesure les instructions du programme. 17  Récapitulatif: Un programme informatique est un ensemble d’instructions exécutable par l’ordinateur. Ces instructions sont écrites utilisant un langage de programmation et traduites par un compilateur 18 Chapitre 2- La programmation sous C  En 1970, Dennis RITCHIE a créé le langage C, un langage de (haut niveau), pour écrire le système d'exploitation Unix. La conception de ce langage a été régie par les pré requis suivants :  La fiabilité: correspond au degré de confiance avec lequel un programme peut être exécuté sous différentes conditions et aboutir aux mêmes résultats  La portabilité d'un programme: est caractérisée par sa capacité à fonctionner plus ou moins facilement dans différents environnements (différentes plates-formes matérielles) 19 1. STRUCTURE D'UN PROGRAMME EN C  UN PREMIER PROGRAMME EN C main( ) { printf("Welcome"); } main () indique qu'il s'agit du programme principal. { et } jouent le rôle de début et fin de programme. printf est l'instruction d'affichage à l'écran, le message étant entre guillemets. ; indique la fin d'une instruction. 20 1. STRUCTURE D'UN PROGRAMME EN C  Structure général d’un programme en C Un programme en C se présente en général sous la forme suivante : main ( ) { corps du programme (Commentaires, Déclaration de variables et constantes, Suite d’instructions) } Remarque : Un programme en C doit contenir au moins le programme principal (la partie main). 21 2. Les directives de compilation Syntaxe : #include < nom_fichier> #include indique le fichier de bibliothèque C à inclure dans le programme. Ce fichier contient les définitions de certaines fonctions prédéfinies utilisées dans le programme. -------------------------------------------- Syntaxe : #define expression_à_remplacer expression_de_remplacement #define permet de remplacer un symbole par une constante ou un type. Exemples : #include #define pi 3.14 #define entier int 22 3. Les commentaires  Un commentaire est un texte placé entre les signes. Il permet de commenter une ou plusieurs lignes de commandes en vue d'éclairer le lecteur. Syntaxe : Exemples : main( ) { printf("bonjour"); int i ; } 23 3. Les commentaires Remarque La norme C99 autorise une seconde forme de commentaire, dit « de fin de ligne », que l’on retrouve également en C++. Un tel commentaire est introduit par // et tout ce qui suit ces deux caractères jusqu’à la fin de la ligne est considéré comme un commentaire. En voici un exemple : printf ("Welcome\n") ; // formule de politesse 24 4. Les variables et les constantes  4.1 Notion de variable Les données ainsi que les résultats des calculs intermédiaire ou finaux, sont rangés dans des cases mémoires qui correspondent à des variables. Ainsi une variable est rangée dans un emplacement mémoire nommé, (dont la taille dépend du type) prenant au cours du déroulement du programme, un nombre indéfini de valeurs différentes.  4.2 Déclaration des variables La partie déclaration consiste à énumérer toutes les variables dont on aura besoin au cours du programme.  Chaque déclaration doit comporter le nom de la variable (identificateur) et son type. Syntaxe : Type identificateur; Ou Type identificateur1, identificateur2, … ,identificateur n; 25 Rappel: une zone mémoire (dont la taille dépend du type) sera réservée pour contenir la variable. 4. Les variables et les constantes  4.2 Déclaration des variables (suite) Syntaxe : Type identificateur; Ou Type identificateur1, identificateur2, … ,identificateur n; Exemple: Déclaration de varaibles int i; float j,k; char c; 26 4. Les variables et les constantes  4.3 Identificateurs Un identificateur est le nom donnée à une variable, une fonction, etc. Ce nom doit obligatoirement commencer par une lettre suivie d'une suite de lettres et de chiffres et il ne doit pas contenir d'espace.  L'emploi des identificateurs doit répondre à un certain nombre d'exigences :  Un identificateur doit être composé indifféremment de lettres et chiffres ainsi que du caractère de soulignement ( _ ) qui peut remplacer des espaces.  Majuscules et minuscules donnent lieu à des identificateurs différents.  Un identificateur ne doit pas être un mot réservé (utilisé dans le langage C comme int, char, … ). Exemples : solution1 est un identificateur valide (constitué de lettres et de 1) 1solution n'est pas un identificateur valide prix unitaire n'est pas un identificateur valide (Il contient un espace). prix_unitaire est un identificateur valide jour, Jour et JOUR sont 3 identificateurs différents int n'est pas un identificateur valide. C'est un mot utilisé en C 27 4. Les variables et les constantes  4.4 Les mots-clés Certains « mots-clés » sont réservés par le langage à un usage bien défini et ne peuvent pas être utilisés comme identificateurs. En voici la liste, classée par ordre alphabétique. Les mots-clés du langage C 28 4. Les variables et les constantes  4.5 Les types de base du langage C  Le type d'une variable est l'ensemble des valeurs qu'elle peut prendre. Par exemple, une variable de type logique (booléen) peut prendre les valeurs Vrai ou Faux. Il y a des types prédéfinis et des types qui peuvent être définis par le programmeur (les tableaux, les structures ou les unions).  Les types de base du langage C se répartissent en trois grandes catégories en fonction de la nature des informations qu’ils permettent de représenter : nombres entiers (mot-clé int), nombres flottants (mot-clé float ou double), caractères (mot-clé char)  La mémoire centrale est un ensemble de positions binaires nommées bits. Les bits sont regroupés en octets (8 bits), et chaque octet est repéré par ce qu’on nomme son adresse. 29 4. Les variables et les constantes  4.5 Les types de base du langage C Types simples prédéfinis en C Type Signification Taille(bits) Taille(octets) char Caractère 8 1 int Entier 32 4 short int Entier court 16 2 float Nombre à virgule flottante simple précision 32 4 double Nombre à virgule flottante double précision 64 8 long Entier long 32 (ou 64) 4 (ou 8) NB: Chaque Type impose naturellement ses limites. Toutefois, ces dernières dépendent, non seulement du mot-clé considéré (type), mais également de la machine utilisée. (Tous les int n’ont pas la même taille sur toutes les machines) Autres types introduits par la norme C99: le type booléen, sous le nom bool. 30 4. Les variables et les constantes  4.6 Les Constantes 1. Constantes entières La façon la plus naturelle d’introduire une constante entière dans un programme est de l’écrire simplement sous forme décimale, avec ou sans signe, comme dans ces exemples: +533 48 -273 2. Constantes flottantes La notation décimale doit comporter obligatoirement un point (correspondant à notre virgule). La partie entière ou la partie décimale peut être omise (mais, bien sûr, pas toutes les deux en même temps !). En voici quelques exemples corrects : 12.43 -0.38 -.38 4..27 3. Constantes caractères Les constantes qui désignent un (seul) caractère sont toujours indiquées entre des apostrophes: par exemple 'x'. La valeur d'un caractère constant est le code interne de ce caractère. Ce code (ici: le code ASCII) est dépendant de la machine. 31 4. Les variables et les constantes  4.6 Les Constantes (suite)  Déclaration de constantes  Une constante est une donnée dont la valeur ne varie pas lors de l'exécution du programme.  Elle doit être déclarée sous forme : Syntaxe : constType Identificateur = Valeur ; Remarque: Une valeur constante peut, également, être exprimée au moyen d’un identificateur défini en utilisant la directive #define: #define IdentificateurValeur main( ) { const float pi=3.14; printf("pi égale à %f",pi); Exemple: } Différence entre const et #define pi 3.14 define?? main( ) 32 { printf("pi égale à %f",pi); } 4. Les variables et les constantes  4.7 Fonctions prédéfinies sur les types simples: Des fonctions appliquées au différents types de données sont prédéfinies dans des fichiers de bibliothèque C.  Fonctions mathématiques: math.h Ce fichier contient des fonctions mathématiques pouvant être appliquées aux types numériques. Exemple: #include main( ) float r; p=pow(i,2); r=sqrt (i); i=abs(j); } 33 5. Initialisation de variables  Une valeur initiale peut être affectée à une variable dès la déclaration sous forme: Syntaxe : a) Cas de types numériques : Type Identificateur = Valeur numérique ; b) Cas du type caractère : Type Identificateur = 'caractère' ; Exemple: main( ) { int i, j=3, k; char b=‘A’; } 34 6. L’affectation  L'affectation est l'opération qui attribue à une variable, au moyen de l'opérateur =, une valeur constante ou résultat d'une expression. Syntaxe : Variable = Valeur ou expression ; Exemple: main( ) { int i, j; i=2; j=(i*3)+5; i=j=2; } Remarque : C permet de faire des assignations entre des variables de types différents. Des conversions de types sont alors automatiquement 35 réalisées. 6. L’affectation Exemple: Conversion automatique de types 1- main( ) { int i; float j=3.5; i=j; 3 } 2- main( ) { int i; char c='A'; i=c; 65 code ascii de A } 36 7. Les entrées/Sorties  7.1 L’affichage de données La fonction printf est utilisée pour afficher du texte, des valeurs de variables ou des résultats d'expressions sur la sortie standard (qui est l'écran). Cette fonction est prédéfinie dans la bibliothèque stdio.h. Syntaxe : 1- affichage de message constitué de texte et de caractères de contrôle Printf ("texte et caractères de contrôle") ; 2- affichage de valeurs de variables ou d'expressions Printf("message et formats d'affichage", arg1, arg2,…,argn); arg1, arg2, argn Noms de variables ou expressions 37 7. Les entrées/Sorties  7.1 L’affichage de données La fonction printf("") Cette fonction est prédéfinie dans la bibliothèque stdio.h. Exemples : main( ) { int i=2,k=5; float j=3.5; printf("Donnez le prix unitaire"); printf("Donnez le prix unitaire \n"); printf("la valeur de i est %d\n ",i); printf("i=%d j=%f",i,j); printf("i=%d\n j=%f",i,j); printf("somme(%d,%d)=%d\nFIN",i,k,i+k); } 38 7. Les entrées/Sorties  7.2 La lecture de données La fonction scanf("") L’instruction scanf effectue la lecture des variables. Cette fonction est prédéfinie dans la bibliothèque stdio.h. Syntaxe : scanf("formats d'affichage", adressevariable1, adressevariable2,…,adressevariablen) ; Exemple: int A=7; float note1, note2; printf("Entrer un nombre entier: \t"); scanf("%d", &A); // le programme lit une valeur entière et l’affecté à la variable A. 39 printf("Entrer deux notes:\n"); scanf("%f%f", &note1, &note2); 7. Les entrées/Sorties 40 8. Les opérateurs et expressions  8. 1 Les opérateurs arithmétiques: Les opérateurs arithmétiques permettent de faire des calculs entre des valeurs numériques :  entre des réels et/ou des entiers : +, -, * (la multiplication), / (la division entière ou réelle selon le type des opérandes)  entre deux entiers : % (le reste de la division entière ) main( ) { int i=9,j=4,k; float x=9, y; k=i+j; y=i/j; y=x/j; y=9.0/j; k=i%j; 41 } 8. Les opérateurs et expressions  8. 2 Les opérateurs d’affectation: 1- Affectation simple « = » 2- Affectation avec calcul arithmétique: Ils sont utilisés pour faciliter l'écriture. Ecriture classique Ecriture équivalente i = i + 20; i += 20; Ces opérateurs i = i - 20; i -= 20; effectuent le calcul arithmétique de leur i = i * 20; i *= 20; premier opérande i = i / 20; i /= 20; avec le second en l'affectant au premier. 3- incrémentation: ajoute 1 à son opérande (++) (a++). 4- décrémentation (--) 42 8. Les opérateurs et expressions  8. 3 Les opérateurs de comparaison: Opérateurs Signification > >= < ; } est évaluée une fois avant le passage de la boucle. Elle est utilisée pour initialiser les données de la boucle. (ex: i = 0) est évaluée avant chaque passage de la boucle. Elle est utilisée pour décider si la boucle est répétée ou non. (ex: i < 10) est évaluée à la fin de chaque passage de la boucle. Elle est utilisée pour réinitialiser les données de la boucle. (ex: i++) 73 2- Les instructions itératives (répétitives) 2.3 L’instruction for (POUR) Exemple: #include main( ) { int i; for (i=0; i

Use Quizgecko on...
Browser
Browser