Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

TP 1

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 8

U.M.M.T.

O Licence 1 Informatique Section : F


Département MI (Campus Hasnaoua II) Année universitaire 2024/25

TP 1 d'ASD 1
(Premiers Pas en langage C sous DEV-C++)

Introduction : Pour programmer en langage C, il existe plusieurs EDI (Environnement de


Développement Intégré). On peut citer Dev-C++, Code::Blocks, Eclipse, Visual Studio express. Un EDI est
un ensemble d'outils qui inclut un éditeur de texte, un compilateur et un débogueur. L’éditeur de
texte permet d’écrire le programme source. Le compilateur vérifie si le programme écrit respecte la syntaxe
du langage de programmation utilisé puis génère le programme exécutable. Le débogueur facilite la
recherche d’erreurs de logique dans le programme. Nous travaillerons avec Dev-C++, les programmes écrits
marchent parfaitement avec les autres EDIs.
L’EDI Dev-c++ est téléchargeable par exemple sur : https://sourceforge.net/projects/orwelldevcpp/

1) Présentation de quelques fonctionnalités de l’environnement Dev-C++:

- Edition d’un programme : Après avoir lancé Dev-C++, vous pouvez réaliser l’une des activités
suivantes: créer un nouveau programme, sauvegarder ce programme, ouvrir (lire) et éventuellement
modifier un programme (fichier) existant après l’avoir ouvert en utilisant respectivement les
commandes suivantes : fichier/nouveau, fichier/sauvegarder sous, fichier/ouvrir…

Remarque importante : Choisissez l’extension .c (C source files (*.c)) puisque nos


programmes seront écrits dans le langage C :

1
- Compilation d’un programme : en utilisant la commande Exécuter/Compiler ou le raccourci
clavier Ctrl +F9.
A chaque compilation réussie, un exécutable de même nom que le fichier et d’extension .exe est
généré dans le même répertoire qui abrite le fichier source .c. On peut indépendamment de Dev-C++
lancer cet exécutable en double cliquant dessus.

- Exécution d’un programme : en utilisant la commande Exécuter/Exécuter ou le raccourci


Ctrl+F10.

Pour ouvrir un fichier .c déjà existant, il faut aller à : fichier/ouvrir… Puis travaillez comme
décrit précédemment.

2) Manipulation de l’environnement Dev-C++ et premiers pas de programmation :


Exercice 1 :
// Programme simple ;
#include <stdio.h>
int main()
{
printf("Bonjour tout le monde !\n");
return 0;
}
Travail à faire : Créer un fichier tp1exo1.c comportant le programme ci-dessus ; compiler ce programme ;
corriger d’éventuelles erreurs ; exécuter le programme.

Exercice 2 :
Écrire un programme qui calcule la somme de deux nombres entiers a et b.

2
Exercice 3 :
Modifier le programme de l’exercice 2 pour qu’il calcule aussi :
1) La différence entre a et b. 2) La multiplication de a par b. 3) La division de a par b.
4) Le reste de division de a par b. Dans 3) et 4) , on supposera que b n’est pas nul.

Exercice 4 :
Écrire un programme qui calcule et affiche la surface (S = 4 π R2) et le volume (V = 4/3 π R3) d’une sphère
de rayon R.

Quelques éléments de syntaxe du langage C

1) Structure d’un programme C


Un programme C a la structure suivante (voir exemple de programme C ci-dessous) :
 Partie 1 : Les directives du préprocesseur. Les lignes commençants par le caractère ‘#’ (voir ligne 4 du
programme C ci-dessous).
 Partie 2 : Le programme principal (fonction int main) (voir ligne 6). Il contient des déclarations
(voirligne 8) et des instructions (de la ligne 10 à la ligne 20).
 Un programme peut contenir des commentaires (lignes 1 à 3 et lignes 6, 8, 15 et 17). Un
commentaireest une partie du fichier source qui a pour but d'expliquer le fonctionnement du
programme sans que le compilateur ne la prenne en compte. Il existe deux genres de commentaire :
- Genre 1 : Peut s’étaler sur plusieurs lignes et il a la syntaxe suivante : /* commentaire trop long */.
- Genre 2 : Commentaire court, il commence par ‘//’ et se termine à la fin de ligne (Lignes 4, 6, 8, 15, 17).
01 /* Programme Permutation. Un commentaire multiligne.
02 Ci-dessous la directive d’inclusion de la bibliothèque
03 stdio où les fonctions scanf et printf sont définies */
04 #include <stdio.h> // Ajouter la bibliothèque stdio
05
06 int main( )// fonction main = programme principal.
07 {
08 int a, b ; //Commentaire jusqu’à la fin de la ligne.
09
10 printf("Donner la valeur de A. A= ? ") ;
11 scanf("%d", &a) ;
12 printf("Donner la valeur de B. B= ? ") ;
13 scanf("%d", &b) ;
14 printf("Valeurs initiales A=%d et B=%d\n", a, b) ;

15 a = a + b ; // On peut l’écrire aussi a += b ;


16 b = a - b ;
17 a = a - b ; // On peut l’écrire a -= b ;

18 printf("Valeurs finales A=%d et B=%d\n", a, b) ;


19
20 return 0 ;
21 }

3
2) Règles générales du langage C
1- En langage C, chaque instruction ou déclaration se termine par un point-virgule ‘ ;’.
2- Le langage C est sensible à la casse ; c’est-à-dire qu’il fait la différence entre majuscules et
minuscules.Un nom contenant des majuscules est différent du même nom écrit en minuscules.
Exemple : Le nom resm est différent de resM, ResM ou RESM.
3- Les mots clés du langage C ne peuvent être réutilisés tels que : break, case, char, const,
continue, default, do, double, else, float, for, goto, if, int, long, return, short,
signed,sizeof, struct, switch, typedef, unsigned, void, while…

3) Les types de données


On peut traduire les types standards en algorithmique vers le langage C selon le tableau suivant :
En Algorithmique Caractère Entier Réel Chaîne (de caractères) Booléen
En langage C char int float Tableau de caractères N’existe pas par défaut

 En langage C, le type char est un cas particulier du type entier, on peut travailler avec le caractère
ou son code ASCII indifféremment. Si car est une variable de type char, on peut écrire car = 'A' ou
car = 65.
 Le type int prend, en général, 4 octets en mémoire, et permet d’utiliser des nombres entiers
compris entre -2147483648 (-231) et +2147483647 (+231 - 1). S’il y a besoin de nombre plus grands,
le type long int (ou tout simplement long) est utilisé.
 S’il y a besoin de petits entiers, le type short ([-32768 .. +32768]).
 Si seulement les nombres positifs sont nécessaires, les types short, int, long sont précédés par
le mot unsigned (non-signé), on obtient par exemple le type unsigned int.
 Le type float prend, en général, 4 octets en mémoire, et permet d’utiliser des nombres réels
(positifs ounégatifs) compris entre 3.4*10-38 et 3.4*1038 avec une précision de 6 chiffres après la
virgule (simple précision). S’il y a besoin de plus de précision, le type double (précision double : de
12 chiffres après la virgule) est utilisé.
 Le langage C ne possède pas de type booléen dédié. La valeur zéro est considérée comme
FAUX. Toute autre valeur différente de zéro est considérée comme VRAIE. Cela signifie que
n'importe quelleexpression peut être utilisée à l'intérieur des tests (à la place des conditions).
Remarque importante : Dans nos programmes C, le type int est utilisé à la place du type Entier utilisé
dans l’écriture des algorithmes et le type float est utilisé à la place du type Réel.

3) Identificateur
Un identificateur est un nom (ou un mot) constitué d’une suite de lettres de l’alphabet (‘A’..‘Z’ et
‘a’..‘z’)et de chiffres (‘0’..‘9’) commençant par une lettre (il ne peut pas commencer par un chiffre).
4
Le caractère ‘_’ souligné (underscore) est considéré comme une lettre.
Remarques :  L’identificateur doit être différent de tous les mots clés (char, int, float, if, while, for, …).
 Il ne doit pas contenir des espaces. L’espace est, en général, remplacé par le caractère ‘_’ souligné.
 L’identificateur ne doit pas contenir des caractères accentués : é, ê, è, ù, à, î, ï, ç, …
4) Déclaration de variables
 Une variable est déclarée avec la syntaxe suivante : type nomVariable ;

 type est l’un des types définis en langage C ( char, int, float …).
 nomVariable est un identificateur.
 Une variable peut être initialisée à la déclaration : type nomVariable = valeurInitiale ;

 Plusieurs variables d’un même type peuvent être déclarées (et initialisées) dans la même
déclaration. Syntaxe : type nomVariable1 [= valeur1], nomVariable2 [= valeur2] … nomVariableN
[= valeurN] ;

Exemples : char a ;
int n=5 , nombre ;
float x1, x2,
delta=0 ;

5) Déclaration de constantes
 Une constante est déclarée avec la syntaxe suivante : const type NOM_CONSTANTE = Valeur ;

 type est l’un des types définis en langage C ( char, int, float …).
 NOM_CONSTANTE est un identificateur.
Exemples :
const int NB_MODULES = 8 ; const float PI = 3.14f ;

const double VIT_LUMIERE = 3E8 ; // Vitesse de la lumière 3x108 m/s. Notation


exponentielle (scientifique)

Remarque : Par convention, le nom d’une variable est écrit en minuscules (ou au moins commence
par une minuscule). Le nom d’une constante est écrit uniquement en majuscules.

6) L’instruction de lecture : scanf


scanf est une fonction de la bibliothèque stdio. Elle permet de donner une valeur à une variable à partir
duclavier. Il faut que la variable utilisée soit déclarée précédemment.
Syntaxe : scanf ("%format", &nomVariable) ;
Les formats les plus utilisés sont :
Type char int long float double, long double Chaîne
Format c d (signé) u (non signé) ld ou lu (non signé) f ou e ou g lf ou le ou lg s
 On peut regrouper plusieurs lectures dans la même instruction scanf. Pour lire deux variables on écrit :
scanf ("%format1 %format2", &nomVariable1, &nomVariable2) ;
5
7) L’instruction d’écriture : printf
printf est une fonction de la bibliothèque stdio. Elle permet l’affichage à l’écran.
Il existe deux types d’affichage :
1- Affichage d’un texte : Syntaxe : printf("texte") ; Exemple : printf("Donner la valeur de a
") ;2- Affichage de la valeur d’une variable : Syntaxe : printf("%format", nomVariable) ;
Exemple : Si a est une variable de type entier, on peut écrire : printf("%d", a) ;
Les formats les plus utilisés sont :
Type char int long, long long float, double long double Chaîne
Format c d (signé), u (non signé) ld (signé), lu (non signé) f ou e ou g lf ou le ou lg s

 On peut regrouper plusieurs écritures dans la même instruction printf. Si on a s = a + b, on peut,


parexemple écrire : printf("La somme de %d et %d = %d\n", a, b, s) ;
 Certains caractères spéciaux ont une signification particulière pour printf :
\n : Saut de ligne \t : Tabulation \\ : Affiche le caractère \
%% : Affiche le caractère % \' : Affiche le caractère ' \" : Affiche le caractère "

8) Opérateurs arithmétiques et logiques (booléens)


Algorithmique +-* mod div / Non (Logique) Et (Logique) Ou (Logique)
Langage C +-* % / ! && (2 fois &) || (2 fois AltGr+6)
Remarque : L’opérateur / est le même pour la division entière et la division réelle. Si les deux
opérandes (facteurs) sont entiers, c’est la division entière qui est appliquée. Si au moins l’un des deux
facteurs est réel, alors c’est la division réelle qui est appliquée. Exemple : 7/2 = 3 mais 7.0/2 = 7/2.0 =
7.0/2.0 = 3.5

9) Opérateurs de comparaison (de relation)


Algorithmique < ≤ = ≠ ≥ >
Langage C < <= == (2 fois le symbole =, à ne pas confondre avec l’affectation) != >= >

10) L’instruction d’affectation


Algorithmique  y  x +17 (exemple)
Langage C = y = x + 17

6
Cas particuliers (affectations composées) :

Soit OP l’un des opérateurs arithmétiques suivants : +, -, *, /, %.

 Si l’instruction d’affectation est de la forme Variable1 = Variable1 OP expression, alors


l’écriture peut être abrégée comme suit : Variable1 OP= expression. Il ne doit y avoir d’espace
entre OP et =.Exemple : L’instruction x = x + y*z, peut être écrite tout simplement x += y*z.

 Si l’instruction d’affectation est de la forme Variable1 += 1 (ou Variale1 = Variable1 + 1),


alorsl’écriture peut être abrégée comme suit : Variable1++ (On appelle ++ opérateur
d’incrémentation). Exemple : L’instruction x += 1 (ou x = x + 1) peut être écrite tout
simplement x++.

 Si l’instruction d’affectation est de la forme Variable1 -= 1 (ou Variale1 = Variable1 - 1),


alorsl’écriture peut être abrégée comme suit : Variable1-- (On appelle -- opérateur de
décrémentation). Exemple : L’instruction x -= 1 (ou x = x - 1) peut être écrite tout simplement
x--.
Résumé : L’affectation a, en tout, les opérateurs suivants : =, +=, -=, *=, /=, %=, ++, --.

11) Règles de priorité des opérateurs


Les opérateurs n’ont pas la même priorité. Ci-dessous les opérateurs sont classés par ordre décroissant
de priorité. Si plusieurs opérateurs de même priorité existent dans une expression, ces opérateurs sont
associatifs à gauche. C’est-à-dire l’opération la plus à gauche est évaluée (exécutée) en premier.
Remarque importante : En cas de doute, il faut utiliser des parenthèses.
1- ( ) les parenthèses
2- ! (Non) ++ (incrémentation) -- (décrémentation) - ( moins unaire) + (plus unaire) (cast)
3- * / %
4- + (plus binaire) - (moins binaire)
5- < <= > >=
6- == (égal) != (différent)
7- && (ET logique)
8- || (OU logique)
9- = += -= *= /= %= (Affectation)

7
8

Vous aimerez peut-être aussi