Vous êtes sur la page 1sur 34

Licence 1 – Pure Developer

(2022 - 2023)

Programmation en Langage C

Dr. Pegdwendé Nicolas Sawadogo


nicolas.sawadogo@uv.bf
http://pegdwende.net

Mars 2023
Plan

1 Introduction

2 Présentation du langage C

3 Éléments de base

4 Structures de contrôle

5 Types de données avancés, fonctions et procédures

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 2 / 34


Introduction

Déroulement du cours

Cours théoriques ≈ 10h


Ï 3 séances live de 3h
Ï 1h de travail complémentaire
TD ⇒ 14h
Ï 4 séances de 3.5h
Evaluation
Ï 1 évaluation sous forme de QCM (50% de la note finale)
Ï 1 évaluation sous forme de TD à rendre (50 %)

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 3 / 34


Introduction

Objectifs

Ce cours vise à vous permettre de :


Ï Comprendre le fonctionnement d’un programme
Ï Connaître les spécificités du langage C
Ï Connaître et appliquer la syntaxe du langage C
Ï Déboguer un programme

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 4 / 34


Introduction

Notion de programme
Lien entre algorithmes 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é
Le programme est une traduction d’un algorithme en langage
machine, compréhensible par l’ordinateur (Ex : langage C).

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 5 / 34


Introduction

Concepts clés
Code source

Définition
Le code source est un texte qui présente les instructions composant
un programme, et écrit dans un langage de programmation.

Le code source est écrit suivant un langage de programmation


et une syntaxe particulière
Le code source se représente généralement sous la forme de
fichiers textes.

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 6 / 34


Introduction

Concepts clés
Compilation

Définition
La compilation informatique désigne le procédé de traduction d’un
programme, écrit et lisible par un humain, en un programme
exécutable par un ordinateur.
De façon plus globale, il s’agit de la transformation d’un programme
écrit en code source, en un programme transcrit en code cible, ou
binaire.
Le code source est dit de haut niveau de conception, c-a-d,
facilement accessible à un utilisateur.
Le code compilé, quant à lui, est transcrit en langage de plus bas
niveau (langage machine)
Il existe des compilateurs spécifiques à chaque langage.
Dans certains langages, le code source n’est pas compilé, mais
interprété (ex : Python).
Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 7 / 34
Introduction

Choisir son langage de programmation


Il existe une multitude de langages de programmation.
Ï Des langages interprétés (Python) ou compilés (C, C++),
Ï Des langages haut (Python) ou bas niveau (C++),
Ï Des langages historiques (Pascal, C) ou plus récents (Go, Julia),
Ï Des langages procéduraux (C) ou objets (Java, C++),
Le choix d’un langage peut dépendre de plusieurs critères :
Ï La demande du marché
Ï Les fonctionnalités offertes et le niveau d’abstraction,
Ï La longévité du langage,
Ï Le coût...

Python est le langage le plus facile à apprendre, C++ est le plus


puissant, Javascript est le plus demandé, et Java a la meilleure
longévité.

https://www.espresso-jobs.com/

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 8 / 34


Présentation du langage C

Rappel du sommaire

1 Introduction

2 Présentation du langage C
Historique du langage C
Spécificités du langage C

3 Éléments de base

4 Structures de contrôle

5 Types de données avancés, fonctions et procédures

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 9 / 34


Présentation du langage C Historique du langage C

Historique du langage C

Ï Le C est un langage de programmation informatique. Il tient


son nom de son prédécesseur, le langage B dévellopé en 1969
par Kenneth Thompson.
Ï En 1972, dans le cadre du développement du système UNIX,
Kenneth Thompson et Dennis Ritchie font évoluer le langage B
dans une nouvelle version, logiquement baptisée C
Ï Dans les années 1980, Bjarne Stroustrup (autre collègue de
Dennis Ritchie) développe le langage C++ en ajoutant des
extensions au langage C.
Ï D’autres langages modernes reprennent la syntaxe et la logique
du C, comme par exemple le C#, Java, PHP, JavaScript, Objective
C, etc.

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 10 / 34


Présentation du langage C Historique du langage C

Historique du langage C
Evolution de popularité du langage C

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 11 / 34


Présentation du langage C Spécificités du langage C

C, langage de bas niveau

Ï C est un langage bas niveau, il permet un contrôle important


sur la machine, notamment en terme d’allocation mémoire
grâce aux pointeurs.
Ï Il est utilisé pour la programmation d’applications, de systèmes
embarqués, de compilateur et même de systèmes
d’exploitation.
Ï 70% du noyau Unix est programmé en langage C

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 12 / 34


Présentation du langage C Spécificités du langage C

Outils pour programmer en C

Ï Un environnement de développement intégré (EDI) est une


plateforme qui intègre un compilateur, et aide à l’écriture de
code.
Ï Il existe des EDI gratuits/payants, en local/en ligne, ou même
sur mobile.
Ï EDI compatibles C en local
Code : :Blocks (https://www.codeblocks.org)
Netbeans (https://netbeans.apache.org/)
CodeLite (http://codelite.org/eans.apache.org/)
Ï EDI compatibles C en ligne
OnlineGDB (https://www.onlinegdb.com/online_c_compiler)
Programiz (https://www.programiz.com/c-programming/online-compiler/)
Ï EDI compatibles C sur mobile
Mobile C [ C/C++ Compiler ] (https://mobile-c.en.aptoide.com/app)

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 13 / 34


Présentation du langage C Spécificités du langage C

Outils pour programmer en C

Activité n°1
Pour les utilisateurs sur ordinateur, créez un compte sur
https://www.onlinegdb.com/
Pour les utilisateurs sur mobile, installez l’application Online
compiler code on Mobi sur https://play.google.com/store/
apps/details?id=app.compiler&hl=fr&gl=US

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 14 / 34


Éléments de base

Rappel du sommaire

1 Introduction

2 Présentation du langage C

3 Éléments de base
Structuration d’un programme en C
Variables et Opérateurs
Entrées et sorties

4 Structures de contrôle

5 Types de données avancés, fonctions et procédures

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 15 / 34


Éléments de base Structuration d’un programme en C

Structuration d’un programme en C

Un programme en langage C comporte 4 parties :


1 [directives au préprocesseur] : La plus connue est la directive
“#include <stdio.h>” qui fait appel à la bibliothèque gérant les
entrées et sorties.
2 [déclarations de variables externes] : Ce sont des variables
accessibles depuis l’ensemble des fonctions
3 [fonctions secondaires] : On crée des fonctions qui seront
utilisées dans le “main()”.
4 [fonction main()] : Un programme en C doit forcément
contenir une fonction “main”. C’est à partir de cette fonction
que le programme est exécuté.
A l’interieur du main(), on peut déclarer des variables internes,
non accessibles en déhors de la fonction.

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 16 / 34


Éléments de base Structuration d’un programme en C

Code minimal en C

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 17 / 34


Éléments de base Structuration d’un programme en C

Code minimal en C
Exercice

Exercice n°1
Ecrire un algorithme qui affiche à l’écran “Je sais programmer”.
Convertissez cet algorithme en langage C, et exécutez-le.

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 18 / 34


Éléments de base Variables et Opérateurs

Variables en C

Ï Le langage C est dit typé, c-a-d que les variables doivent être
déclarées avant d’être utilisées.
Ï Le nom d’une variable doit respecter les règles suivantes :
Les noms de variables peuvent être composés de plusieurs
caractères.
Les noms de variables peuvent contenir des lettres minuscules
ou majuscule (a à z et A à Z).
Les noms de variables peuvent contenir des chiffres (0 à 9).
Les noms de variables peuvent contenir un tiret bas (_).
Les noms de variables ne peuvent pas commencer par un chiffre.
Ï Les variables peuvent être des types de base suivants :
Entiers (int)
Flottants/réels (float)
Caractères (char)

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 19 / 34


Éléments de base Variables et Opérateurs

Manipulation de variables
Définition de variables

Définition d’une variable unique :

Définition de plusieurs variables :

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 20 / 34


Éléments de base Variables et Opérateurs

Manipulation de variables
Opérateur d’affectation

En langage C, l’affectation se fait à travers le signe “=”.

Ont lit :
Ï Age reçoit la valeur 19 ;
Ï Poids reçoit la valeur 71.3 ;
Ï SerieBac reçoit la valeur ’C’ ;

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 21 / 34


Éléments de base Entrées et sorties

Entrées et sorties
Fonction printf()

Ï La fonction printf() permet d’afficher une valeur à l’écran. Elle


prend plusieurs paramètres, dont le premier est forcément une
chaine de caractères.
Ï Il est possible d’afficher des variables en insérant des codes de
format dans la chaîne de caractères.
Le premier code de format sera remplacé par la valeur de la
première variable
Le deuxième code de format sera remplacé par la valeur de la
deuxième variable
...
Ï Les différents formatages possible sont :
“%d” pour l’affichage des entiers
“%f” pour l’affichage des réels
“%c” pour l’affichage des caractères
...
Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 22 / 34
Éléments de base Entrées et sorties

Entrées et sorties
Fonction printf()

Ï Exemple

Ï Le code spécial antislash+n permet d’afficher un retour à la


ligne.

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 23 / 34


Éléments de base Entrées et sorties

Entrées et sorties
Fonction scanf()

Ï La fonction scanf() permet de récuperer une saisie au clavier.


Elle prend plusieurs paramètres, dont le premier est forcément
une chaine de caractères qui contient un code de format (%d,
%f, %c).
Ï Le deuxième paramètre est la variable dans laquelle la saisie
sera enregistrée. Le nom de la variable doit être précédé d’un &
dans la fonction scanf.

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 24 / 34


Éléments de base Entrées et sorties

Entrées et sorties
Exercices

Exercice n°2
Proposez un programme en C qui récupère les dimensions d’un
rectangle, puis affiche son périmètre et sa superficie.

Exercice n°3
Proposez un programme en C qui récupère la taille et le poids d’une
personne pour lui afficher son IMC.

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 25 / 34


Structures de contrôle

Rappel du sommaire

1 Introduction

2 Présentation du langage C

3 Éléments de base

4 Structures de contrôle
Structures conditionnelles
Boucles

5 Types de données avancés, fonctions et procédures

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 26 / 34


Structures de contrôle Structures conditionnelles

Conditions
if...else

Syntaxe
Exemple

Ï les parenthèses dans le test sont obligatoires ;


Ï le else... est facultatif ;
Ï les accolades peuvent être omises si le bloc ne contient qu’une
instruction.

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 27 / 34


Structures de contrôle Structures conditionnelles

Conditions
Switch
Exemple

Syntaxe

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 28 / 34


Structures de contrôle Structures conditionnelles

Condition
Exercice

Exercice n°4
Ecrire un programme en langage C qui récupère un entier et dit s’il
est pair.
NB : En langage C, le signe du MODULO est le symbole ’%’.

Exercice n°5
Ecrire un programme en langage C qui récupère la série du Bac d’un
utilisateur et lui donne la description selon la correspondance
suivante :
A : “Bac Littéraire”
C : “Mathématiques et sciences physiques”
D : “Mathématiques et sciences de la nature”
E : “Mathématiques et technique”
Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 29 / 34
Structures de contrôle Boucles

Boucle while

Syntaxe

Exemple

Ï L’instruction “compteur = compteur + 1” est équivalente à


l’instruction “compteur++” ;
Ï Les variables utilisées dans le test doivent être prédéfinies et
avoir chacune une valeur.

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 30 / 34


Structures de contrôle Boucles

Boucle for

Syntaxe

Exemple

Ï La variable peut être définie et initialisée en même temps dans


la boucle.
Ï Il est possible d’incrémenter de 1 en 1, de 2 en 2, etc.

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 31 / 34


Structures de contrôle Boucles

Boucles
Exercice

Exercice n°6
Ecrire un programme en C qui affiche la liste des 10 entiers suivant
un nombre entré par l’utilisateur

Exercice n°7
Ecrire un programme en C qui affiche la table de multiplication d’un
nombre entré par l’utilisateur

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 32 / 34


Types de données avancés, fonctions et procédures

Rappel du sommaire

1 Introduction

2 Présentation du langage C

3 Éléments de base

4 Structures de contrôle

5 Types de données avancés, fonctions et procédures


Tableaux
Chaînes de caractères
Structures
Fonctions

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 33 / 34


Types de données avancés, fonctions et procédures Fonctions

Exercices

Pegdwendé N. Sawadogo Algorithmes et Structures de données 1 Mars 2023 34 / 34

Vous aimerez peut-être aussi