0% ont trouvé ce document utile (0 vote)
37 vues12 pages

Cours Langage C

Le document présente un syllabus pour un cours de programmation en langage C à l'Université d'Abomey-Calavi, visant à former des étudiants en informatique. Il couvre les concepts fondamentaux, les structures de contrôle, et l'utilisation de fonctions, tableaux et chaînes de caractères. Les méthodes d'enseignement incluent des cours magistraux, des travaux dirigés et des évaluations intermédiaires et finales.

Transféré par

lucagbidime05
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
37 vues12 pages

Cours Langage C

Le document présente un syllabus pour un cours de programmation en langage C à l'Université d'Abomey-Calavi, visant à former des étudiants en informatique. Il couvre les concepts fondamentaux, les structures de contrôle, et l'utilisation de fonctions, tableaux et chaînes de caractères. Les méthodes d'enseignement incluent des cours magistraux, des travaux dirigés et des évaluations intermédiaires et finales.

Transféré par

lucagbidime05
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université d'Abomey-Calavi (UAC)

Institut de Mathématique et des Sciences


Physiques

Structures de données

Henoc SOUDE

Institut de mathématiques et des sciences physiques


DIRO
Contents

Syllabus 2
1 Introduction au langage C 4
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Structure d'un programme en C . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Environment et compilation . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Opérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Évaluation formative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Structures de contrôles 8
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 si-sinon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Boucle tant-que-faire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5 Boucle faire-tant-que . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.6 Boucle pour-chaque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Etude de cas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1
Syllabus

Prérequis
Aucun prérequis spécique.

Court Descriptif de l'EC


Le cours de langage C est essentiel pour former des informaticiens et des ingénieurs logiciels
compétents, en leur fournissant les outils et les connaissances nécessaires pour exceller
dans la programmation.

Objectif Général de l'EC


Le cours de programmation en langage C vise à fournir aux étudiants une compréhen-
sion des concepts, des techniques et des outils nécessaires pour écrire, compiler des pro-
grammes en langage C. Il prépare les étudiants à utiliser le langage C pour développer
des programmes pour la résolution de leurs problèmes.

Objectifs Spéciques
ˆ Comprendre des Concepts Fondamentaux : Les étudiants seront capables de
comprendre les principes de base de la programmation en langage C, y compris les
types de données, les opérateurs et les structures de contrôle.
ˆ Maîtriser des Structures de Contrôle : Les étudiants apprendront à utiliser
les structures de contrôle telles que les boucles, les conditions et les instructions de
branchement pour écrire des programmes logiques et structurés.
ˆ Utiliser des Fonctions : Les étudiants apprendront à dénir et à utiliser des
fonctions pour structurer leurs programmes de manière modulaire et réutilisable.
ˆ Manipuler des Tableaux et des Chaînes de Caractères : Les étudiants seront
capables de manipuler des tableaux et des chaînes de caractères pour traiter des
collections de données.

Contenu de l'Enseignement
ˆ Introduction au langage C

2
CONTENTS CONTENTS

 Outils et environnement de développement


 Structure d'un programme
 Types et variables
 Opérateurs
ˆ Structure de contrôle

 Instructions conditionnelles if, else, switch


 Boucles while, for, do-while
ˆ Tableaux et Chaînes de Caractères

ˆ Fonctions

Méthodes d'Enseignement
ˆ Cours magistraux

ˆ Travaux dirigés (TD)

ˆ Travaux pratiques (TP)

ˆ Études de cas

Lieu d'Apprentissage
Salle de cours

Matériel Pédagogique
Support de cours

Lectures et Références Proposées


À spécier

Modalités d'Évaluation
ˆ Évaluation Intermédiaire : 50%

ˆ Évaluation Finale : 50%

3 / 11
Chapter 1
Introduction au langage C

1.1 Introduction
À la n de ce chapitre, vous serez en mesure d'écrire votre premier programme permettant
de faire des opérations sur des variables

1.2 Structure d'un programme en C


Un programme en C est composé de quatres parties comme le montre le listing 1.1 :
ˆ entête : déclaration de toutes les librairies dont on aura besoin. La directive include
permet d'inclure une librairie. Ex.: #include < stdio.h > inclut la libraire stdio.h
qui dénit la liste des fonctions pour manipuler les périphériques d'entrées/sorties.
ˆ Déclaration des variables globales : Toutes les variables déclarées sont visibles dans
tous les blocs en dessous.
ˆ Déclaration des fonctions globales : Toutes les fonctions déclarées sont visibles dans
tous les blocs en dessous.
ˆ La fonction main : Elle représente le point d'entrée du programme. Elle utilise la
fonction printf qui permet d'acher les données à l'écran.

1.3 Environment et compilation


La gure ?? décrit les diérents phases de développement d'un programme. On distingue
la phase d'édition durant laquelle vous écrivez votre code à l'aide d'un éditeur, la phase de
compilation durant laquelle votre code est transformé en exécutable par un compilateur
et la phase d'exécution où vous procédez à l'exécution du code exécutable.

Éditeur de texte . C'est une application qui permet d'écrire du texte. C'est le cas
de notepad. Dans le cadre de la programmation il est plus aisé d'utilisé des éditeurs qui
comprennent le langage de développement qu'on utilise (emacs).

4
CHAPTER 1. INTRODUCTION AU LANGAGE C 1.4. TYPES

1 /********** Entete ********************/


2 #include <stdio.h>
3
4 /********** Variables Globales ********/
5
6 /********** Fonctions Globales ********/
7
8 /********** Fonction principale ********/
9 int main(void)
10 {
11
12 printf("Hello World!\n");
13 return 0;
14 }

Figure 1.1: La structure d'un programme en C.

Compilateur. C'est une application qui prend un code(source) en entrée et le trans-


forme en code binaire compréhensible par le processeur de votre ordinateur. Le code
compilé s'appelle programme et devient un processus lorsqu'il est en cours d'exécution
par le système d'exploitation. Les deux plus célèbres compilateurs du langage C en open
source sont: gcc et clang.

1.4 Types
Les données de l'utilisateur(du code) sont organisées dans la mémoire. La mémoire elle-
même est organisée sous forme de cases ou cellules. Lorsqu'une donnée doit être mise en
mémoire il faut déterminer le nombre de cellules nécessaires pour stockage de cette donnée.
Pour résoudre ce problème, le langage C dispose de types (de données) qui donnent de
manière implicite le nombre de cellules associées à un type donné.
Le langage dispose de types permettant de repésenter :
ˆ les entiers : char, short, int, long long, int.

ˆ les nombres à virgule : float, double.

Par défaut ces types permettent de représenter des valeurs positives ou négatives.
Lorsque le type est précédé par le mot clé unsigned alors il n'y a que les valeurs positives
qui peuvent être représentées. Le tableau 1.1 donne le nombre de cellules, en octet,
associées aux diérents types.

1.5 Variables
Une variable est un emplacement mémoire nommé qui permet de stocker des valeurs ou
des données. On associe un type à une variable an de déterminer sa taille en mémoire.

5 / 11
CHAPTER 1. INTRODUCTION AU LANGAGE C 1.6. OPÉRATIONS

Type Taille(octects) Valeurs signées Valeurs non signées


char 1 0, 255 −128, 127
short 2 −215 , 215 − 1 0, 216 − 1
int 4 −231 , 231 − 1 0, 232 − 1
long long int 8 −263 , 263 − 1 0, 264 − 1
oat 4
double 8
Table 1.1: La taille des types du langage C, en octets.

Déclaration <type> <nomVariable> ;.


int fooi ; déclaration d'une variable fooi de type int.
double foof ; déclaration d'une variable foof de type double.

Assignation <type> <nomVariable> = <valeur> ;.


fooi = 45; assignation de la valeur 45 à la variable fooi.
foof = 45.23; assignation de la valeur 45.23 à la variable fooi.

Déclaration-Initialisation Lors d'une déclaration on peut en même temps initialiser


une variable. Dans l'exemple ci-après foo est initialé avec la valuer 2.0. float foo= 2.0.
Les assignations se font de la droite vers la gauche et en fonction du type de la variable
qui reçoit. Si la valeur à assigner à une variable est plus grande que la capacité du type
alors la valeur sera tronquée. Ainsi char a=500; va aecter la valeur 244 à la variable a;

1.6 Opérations
Le langage C dispose des opérateurs :
ˆ arithmétiques: +, −, ∗, /, %(modulo)
ˆ logiques : |(ou), &(et), (ou exclusif), >>(decalage à droite), <<(décalage à gauche)
La table 1.2 présente leur priorité et leur associativité. L'opérateur division peut donner
sous certaines conditions la partie entière ou un nombre à virgule. En eet lorsque le
dénominateur et le numérateur sont des entiers alors le résultat de la division sera la
partie entière. Lorsqu'une des deux opérandes est un nombre à virgule alors le résultat
sera aussi un nombre à virgule;
int a = 1/2; /* => a = 0 */
float a = 1/2; /* => a = 0 */
int a = 1/2.0; /* => a = 0 */
float a = 1.0/2; /* => a = 0.5 */

Évaluation formative
En vous inspirant du cours programme écrivez un programme qui ache la taille de tous
les types de base du langage C.

6 / 11
CHAPTER 1. INTRODUCTION AU LANGAGE C 1.6. OPÉRATIONS

Opérateurs Associativité
() de gauche à droite
% ∗ / de gauche à droite
−+ de gauche à droite
< > >= <= de gauche à droite
== ! = de gauche à droite
&& de gauche à droite
|| de gauche à droite
= + = − = ∗ = / = & = | = >>= <<= de droite à gauche

Table 1.2: Les diérentes opérateurs de langage et leur priorité

Exercices
- ecrire un programme qui ache la plus grande valueur de chaque type du langage. -
donnez la valeurs des expressions suivantes et vériez vos réponses en écrivant un code en
C : 10 < 10, 10 == 10 > 0, 7 − 45%6 ∗ 3, 7 − 45/8 ∗ 3.

7 / 11
Chapter 2
Structures de contrôles

2.1 Introduction
À la n de ce chapitre, vous serez en mesure d'écrire des programmes structurés en util-
isant les structures de contrôles. Les structures de contrôles introduisent des mécanismes
permettant de briser l'exécution séquentielle des instructions du processeur.

2.2 si-sinon
La structure if-else comme le montre le diagramme de la gure 2.1 exécute l'instruction
I1 lorsque le test est vrai et l'instruction I2 dans le cas contraire. Quelle que soit la valeur
du test, les instructions I0 et I3 sont exécutées respectivement avant et après l'execution
de I1, I2. Le listing 4 montre la syntaxe C de cette structe.

if(test)
{
...
Instructions
}
else
{
...
Instructions
}

Listing 1: Syntaxe du if-else


Figure 2.1: Représentation graphique du
if-else
Le test est un prédicat construit à partir des opérateurs de comparaisons que sont :
==(égalité); ! =(diérence), <, <=(inférieur strict ou égal) et >, >=(supérieur strict ou
égal). Un test peut combiner plusieurs prédicats, dans ce cas on utilise les comparateurs
logiques que sont : && et ||
Une expression est vraie lorsque sa valeur est non nulle et faux lorsque la valeur est
null(zéro). Le comparateur && retourne vrai si les deux expressions (prédicats) qu'il
combine sont vraie. Le comparateur || retourne vrai si une des expressions est vraie. Il

8
CHAPTER 2. STRUCTURES DE CONTRÔLES 2.3. SWITCH

existe une diérence entre ||,&& et |,&. |,& eectuent des opérations logiques; ils évaluent
donc les deux expressions opérande. Tandis que && n'évalue la deuxième expression que
lorsque la première est vraie. || n'évalue la deuxième expression que lorsque la première
est fausse.
Le listing 2 généralise la syntaxe du if-else avec l'utilisation des sinon si.
if(<test>)
{
Instructions
}
else if(<test2>)
{
Instructions
}
.....
else
{
Instructions
}

Listing 2: Syntaxe du if-elseif-else

2.3 switch
Le switch est une particularité de if-else qui est utilisé lorsque l'élement à tester est une
variable entière. La gure 2.2 présente sa syntaxe. La variable est testée et en fonction de
sa valeur, le bloc d'instructions, sous le case présentant sa valuer est exécuté. Le listing
?? montre une utilisation du switch pour ecrire les chires [0 − 3] en lettre.

switch(<variable a tester>) int n=2;


{ switch(n)
case valeur1: {
Instructions1; case 0:
break; printf("zero");
... break:
case valeurN: case 1:
InstructionsN; break:
break; printf("un");
default: case 2:
Instructions; printf("deux");
} break:
default:
printf("trois")
Figure 2.2: Syntaxe du swtch }

Listing 3: Syntaxe du if-else

9 / 11
CHAPTER 2. STRUCTURES DE CONTRÔLES 2.4. BOUCLE TANT-QUE-FAIRE

2.4 Boucle tant-que-faire


La boucle tant-que est une structure qui permet de répéter l'instruction I1 tant que le
test est vrai, comme le montre le diagramme 2.3. Le listing 5 montre une utiisation de la
structure while pour décompter de [1 − 9]

while(<test>)
{
...
Instructions
}

Listing 4: Syntaxe du while

int i = 10;
while(--i)
printf("\%d ", i);
Figure 2.3: Représentation graphique du
while
Listing 5: Exemple while

2.5 Boucle faire-tant-que


Dans certains cas, en reprenant le diagramme 2.3, on a envie que l'instruction I1 s'exécute
au moins une fois. Dans ce cas on utilise la boucle do-while, présenté dans le diagramme
2.4. Dans le listing ?? on constate que le décompte se fait de [1 − 10].

do{
...
Instructions
}while(<test>)

Listing 6: Syntaxe du do-while

int i = 10;
do{
printf("\%d ", i);
}while(--i);
Figure 2.4: Représentation graphique du
do-while
Listing 7: Exemple do-while

10 / 11
CHAPTER 2. STRUCTURES DE CONTRÔLES 2.6. BOUCLE POUR-CHAQUE

2.6 Boucle pour-chaque


La boucle for qui est souvent utilisé sur des tableaux ou des ensembles et qui permet
d'itérer sur chaque éléments de ces derniers. La gure 2.5 présente sa syntaxe. Le listing
8 montre une utitisation de la boucle de le découpe de [1 − 10].

for(<initialisations>; for(int i=10; i>0; i--)


<test>; printf("\%d ", i);
<incrementations>)
{
Listing 8: Exemple do-while
...
Instructions
}

Figure 2.5: Syntaxe du for

Etude de cas
[Texte à compléter]

Exercices
[Texte à compléter]

11 / 11

Vous aimerez peut-être aussi