Vous êtes sur la page 1sur 25

Algorithmique et programmation 1

Pr. G. Mangoub

Parcours MIP
Semestre 3

Algorithme et programmation 1

Chapitre 2
Chap.2 les éléments de base d’un algorithme et leur représentation en langage C

Cours préparé par :


Pr. Ghita Mangoub

A. U : 2019-2020
Algorithmique et programmation 1
Pr. G. Mangoub

Chap.2 les éléments de base d’un algorithme et leur représentation en langage C

A- Eléments de base d’un algorithme


Un algorithme doit être aussi lisible que possible, d’où l’intérêt des commentaires qui sont de
deux type :
a) Les commentaires qui n’apparaissent pas à l’étape d’exécution
Pour ces commentaires, on utilise le signe // s’il s’agit d’un commentaire sur une seule ligne.
Exemple
// Ceci est un commentaire sur une seule ligne

Pour le cas d’un commentaire qui porte sur plusieurs lignes, on le commence par le signe /*
et on le ferme par le signe */.
Exemple
/* Ceci est un autre
Commentaire
Sur plusieurs lignes
*/
b) Les commentaires qui apparaissent à l’étape d’exécution
On les met entre deux guillemets, on les verra après les ordres d’entrée sortie.
A-1 Types de bases
3 types élémentaires

Les entiers
Courts(short int), normaux(int), long(long int)
Exemple :
a : entier
a, b :entiers courts

Les réels
Courts(float)(32 bits)(6 chiffres significatifs), long(double)(64 bits)(16 chiffres),très long(long
double)(80 bits)
Algorithmique et programmation 1
Pr. G. Mangoub

Exemple :
a : réel
a, b :réels longs

Les caractères
Char
Exemple : char a,b,c ;

A-2 constantes, variables


Un algorithme traite une ou des variables entrantes : les données
Il restitue une ou des variables sortantes : les résultats

Un algorithme qui ne satisfait pas à ces deux conditions n’a pas de justification et par
conséquent n’existe pas. Les données traitées par l’algorithme sont de deux types : variable ou
constante. Chaque variable et constante doit être déclarée avant d’être utilisé : nom + type.
Cette déclaration consiste en une réservation en mémoire de la place nécessaire et suffisante à
l’hébergement de la valeur.

A-2-1) Notion de constante : une constante porte un nom qu’on appelle identificateur et
garde la même valeur. On la déclare de la façon suivante :
Const type identificateur = valeur_de_la_constante
Exemple :
Const entier N = 10 ;
C’est à dire qu’on déclare que N est une constante entière qui a pour valeur 10.

A-2-2) Notion de variable : Une variable est un endroit en mémoire permettant de stocker
une valeur. Une variable est caractérisée par un nom appelé un identificateur, par un type
(l’ensemble dans lequel elle prend ses valeurs) et par une valeur.
Exemple : si notre variable est la masse alors pour identificateur on peut choisir m, pour le
type c’est un réel et pour la valeur 30Kg.
La syntaxe de la déclaration est la suivante :
identificateur : type
Algorithmique et programmation 1
Pr. G. Mangoub

Exemple1 : a : entier
Pour déclarer la variable dont le nom est l’identificateur a comme entier qui peut être positif
ou négatif.
Exemple2 : X,Y,Z : réels
Pour déclarer les 3 variables dont les noms respectifs sont les identificateurs X,Y et Z comme
réels qui peuvent être positifs ou négatifs.
Exemple3 : c : boelien
Pour déclarer la variable dont le nom est l’identificateur c comme boolienne. C’est à dire une
expression logique qui ne peut avoir que deux valeurs soit vrai soit faux.
Exemple4 : a,b,c : char
Pour déclarer les 3 variables dont les noms respectifs sont les identificateurs a, b et c comme
caractères.
En ce qui concerne l’identificateur, il peut être constitué de plusieurs lettres, chiffres et mots
dans ce derniers cas les différents mots sont séparés par un signe souligné c’est à dire « _
«
Exemple : X_a : entier ;
Y_b : réel;
Quelques notions utiles:
1) L’identificateur ne doit pas commencer par un chiffre. Il doit être en rapport avec ce que
contient la variable. Il ne doit pas contenir d’espaces ni contenir le caractère -. En général un
identificateur doit refléter la variable qu’il contient
Exemple : si notre variable est la masse d’un premier objet, on peut choisir comme
identificateur : masse_objet1
2) On peut copier directement une variable initialement déclarée comme entier dans une
variable initialement déclarée comme double.

Exemple a :entier ;
X :réel;
X=a ;
Alors que pour copier une variable initialement déclarée comme double dans une variable
initialement déclarée comme entier, il faut d’abord transformer la variable réelle en une
variable entière .
Algorithmique et programmation 1
Pr. G. Mangoub

A-3 Opération entré – sortie


Lis (variable)
Écris ( variable )
Ecris(‘’X=’’,X) pour avoir à l’étape d’exécution X= valeur de X, ainsi, on a utilisé la notion
de commentaire affichable à l’étape d’exécution.

A-4 Expressions
Une expression peut être une instruction ou une suite d’instructions séparées par l’un des
opérateurs suivants :

Opérateurs d'assignation

Affectation d’une valeur ou d’une expression x à une variable y : (y ← x) Addition de la


valeur de gauche à la valeur de droite : + = (x ← x+2) Soustraction de la valeur de gauche à la
valeur de droite : - =
Multiplication de la valeur de gauche à la valeur de droite : * =
Division de la valeur de gauche à la valeur de droite : / =
Incrémentation : ++ : I←I+1 est équivalent à I++
Décrémentation : - - : I←I-1 est équivalent à I--

Opérateurs comparateurs de nombres


Egalité : = =
Infériorité stricte : <
Supériorité stricte : > Infériorité : < =
Supériorité :> =
Différent : ! =

Opérateur logiques

OU : ||
ET : &&
Algorithmique et programmation 1
Pr. G. Mangoub

NON :!

Exercice1
Ecrire un algorithme qui lit trois variables réelles A, B et C et qui calcule :
X= A+B
Y= (A*B)-C
W=A+C
On utilisera les commentaires autant que possible

Solution de l’Exercice1

//Utilisation des opérations arithmétiques


//Déclaration
A,B,C,X,Y,Z,W :reel
//lecture des données
Ecris(« donner trois reels A,B et C »)
Lis(A,B,C)
//traitement
X← A+B
Y← (A*B)-C
W←A+C
Si (W !=0)
{
Z← (A-B)/(A+C)
Ecris(« Z= »,Z)
}
//Edition des résultats
Ecris(« X=» ,X)
Ecris(« Y= »,Y)
Ecris (« FIN »)
B- Représentation des éléments de base d’un algorithme en langage C
Algorithmique et programmation 1
Pr. G. Mangoub

Introduction au langage C
C’est un langage de haut niveau qui permet la manipulation de bits, d’opérations
arithmétiques et logiques
Sous programme : fonction
Programmation modulaire
La définition des types de base dépend de la machine( mac, ….)
Possibilité d’introduire des commentaires. On utilise alors le
Signe // s’il s’agit d’un commentaire sur une seule ligne.
Pour le cas d’un commentaire qui porte sur plusieurs lignes, on le commence par le signe /*
et on le ferme par le signe */.

Exemple1
// Ceci est un commentaire sur une seule ligne

Exemple2
/* Ceci est un autre
Commentaire
Sur plusieurs lignes
*/

Plusieurs inconvénients

B-1 Types de bases


3 types élémentaires

Les entiers
Courts(short int), normaux(int), long(long int)
Exemple :
int a ;
short int a, b ;

Les réels
Algorithmique et programmation 1
Pr. G. Mangoub

Courts(float)(32 bits)(6 chiffres significatifs), long(double)(64 bits)(16 chiffres),très long(long


double)(80 bits)

Exemple :
float a ;
double a, b ;

Les caractères
Char
Exemple : char a,b,c ;

B-2 constantes, variables


Un algorithme traite une ou des variables entrantes : les données
Il restitue une ou des variables sortantes : les résultats

Un algorithme qui ne satisfait pas à ces deux conditions n’a pas de justification et par
conséquent n’existe pas. Les données traitées par l’algorithme sont de deux types : variable ou
constante. Chaque variable et constante doit être déclarée avant d’être utilisé : nom + type.
Cette déclaration consiste en une réservation en mémoire de la place nécessaire et suffisante à
l’hébergement de la valeur.

B-2-1) Notion de constante : une constante porte un nom qu’on appelle identificateur et
garde la même valeur dans tout le programme. On la déclare de la façon suivante :
const type identificateur = valeur_de_la_constante ;
Exemple :
Const int N = 10 ;
C’est à dire qu’on déclare que N est une constante entière qui a pour valeur 10.
On peut aussi déclarer une constante de la manière suivante :
#define nom valeur ;
Exemple : #define N 10
Algorithmique et programmation 1
Pr. G. Mangoub

B-2-2) Notion de variable : Une variable est un endroit en mémoire permettant de stocker
une donnée modifiable. Une variable est caractérisée par un nom appelé un identificateur, par
un type (l’ensemble dans lequel elle prend ses valeurs) et par une valeur.
Exemple : si notre variable est la masse alors pour identificateur on peut choisir m, pour le
type c’est un réel et pour la valeur 30Kg.
La syntaxe de la déclaration est la suivante :
Type identificateur ;
Exemple1 : int a ;
Pour déclarer la variable dont le nom est l’identificateur « a » et dont le type est entier qui
peut être positif ou négatif.
Exemple2 : double X,Y,Z ;
Pour déclarer les 3 variables dont les noms respectifs sont les identificateurs X,Y et Z comme
réels qui peuvent être positifs ou négatifs.
Exemple3 : bool c ;
Pour déclarer la variable dont le nom est l’identificateur c comme boolienne. C’est à dire une
expression logique qui ne peut avoir que deux valeurs soit vrai soit faux.
Exemple4 : char a,b,c ;
Pour déclarer les 3 variables dont les noms respectifs sont les identificateurs a, b et c comme
caractères.
En ce qui concerne l’identificateur, il peut être constitué de plusieurs lettres, chiffres et mots
dans ce derniers cas les différents mots sont séparés par un signe souligné c’est à dire « _
«
Exemple : int X_a ;
Float Y_b ;
On peu aussi déclarer et initialiser une variable en même temps, exemple : int C=2 ;
float X=4.2 ;
Quelques notions utiles:
1) L’identificateur ne doit pas commencer par un chiffre. Il doit être en rapport avec ce que
contient la variable. Il ne doit pas contenir d’espaces ni contenir le caractère -. En général un
identificateur doit refléter la variable qu’il contient
Exemple : si notre variable est la masse d’un premier objet, on peut choisir comme
identificateur : masse_objet1
Algorithmique et programmation 1
Pr. G. Mangoub

2) On peut copier directement une variable initialement déclarée comme int dans une
variable initialement déclarée comme double.

Exemple int a ;
double X ;
X=a ;
Alors que pour copier une variable initialement déclarée comme double dans une variable
initialement déclarée comme int, il faut d’abord transformer la variable réelle en une variable
entière .
Exemple int a ;
double X ;
a=(int)X;
3)Tous les caractères sont repérés dans un système de représentation appelé le code ASCII.
Dans ce code, à chaque caractère correspond un entier allant de 0 à 127. En C++, pour
récupérer le code ASCII d’un caractère donné, il suffit de mettre le caractère dans un entier de
la manière suivante :
Char a ; int x ;
On lit le caractère en question, puis on le met dans l’entier x de la façon suivante : x=a ;
Donc on peut comprendre que lorsqu’on compare des caractères, c’est en faite leur code
ASCII qu’on compare.
4)On peut aussi transformer un caractère qui est une lettre majuscule (minuscule) en un
caractère qui est une lettre minuscule(majuscule) pour cela, il suffit de lui ajouter ‘a’-‘A’ de la
manière suivante :
Char a, b ;
On lis une lettre majuscule et on la place dans a
On transforme cette lettre en celle qui lui correspond en minuscule en plaçant le résultat dans
b de la manière suivante :
B= a+(‘a’ – ‘A’) ;
1) Si on a un caractère qui correspond à l’un des chiffres allant de 0 à 9, on peut
transformer ce caractère en un entier de la manière suivante :
Char a ; int x ;
On lit le caractère a
Algorithmique et programmation 1
Pr. G. Mangoub

Si a>=’0’ et a<=9 alors on le transforme en son chiffre correspondant de la manière


suivante : x=a – ‘0’ ;

Les délimiteurs
Ils constituent la ponctuation du langage
Le délimiteur Utilité
Les accolades { } elle contiennent le corps du programme.
Le point virgule ; La fin d’une ligne est marquée par un ; et
nom par un retour à la ligne. Donc sur une
même ligne de l’écran on peut avoir
plusieurs lignes du programme. Ces lignes se
terminent par un point virgule.

/* */ pour ouvrir les commentaires qui


comportent plusieurs lignes
syntaxe : /* texte de la ligne1 du
commentaire
texte de la ligne 2 du commentaire
texte de la ligne N-1 du
commentaire
texte de la ligne N du
commentaire*/
exemple : /* Mon
premier
programme*/
// pour les commentaires qui comportent une
seule ligne
syntaxe : // texte du commentaire
exemple : // calcule d’une somme

l’espace blanc il sert à séparer deux identificateurs.


exemple : int a ;
Algorithmique et programmation 1
Pr. G. Mangoub

Le signe = pour affecter la valeur d’une expression ou


bien pour affecter une valeur à une variable
identifiée par son nom.
Exemple A= 4 ;
B= A*2 ;
Il doit y avoir une correspondance de type
entre l’expression à droite et la variable à
gauche dans laquelle elle est rangée.
Attention au problème d’écrasement de
valeurs.
Exemple A= 4 ;
B= A*2 ;
B= A+B ;
La valeur de B qui est gardée en mémoire est
12 alors que la première valeur égale à 8 est
écrasée.

La virgule , elle sépare les variables dans l’étape de


déclaration.
Le signe ++ pour augmenter d’une unité la valeur d’une
variable
Exemple : A=4 ;
B=A ;
A++,
B= B+A ;
Le résultat pour B est 9

Le signe -- pour diminuer d’une unité la valeur d’une


variable
Exemple : A=4 ;
B=A ;
A--,
Algorithmique et programmation 1
Pr. G. Mangoub

B= B+A ;
Le résultat pour B est 7

Le signe ( ) vient juste avant l’accolade qui marque le


début du programme.
Le signe '' '' pour délimiter les messages que l’on veut
afficher à l’écran lors de l’exécution du
programme.

Le signe _ permet de séparer les mots dans un


identificateur.
Exemple : premiere_valeur=2 ;
Deuxieme_valeur=3 ;

B-3 Opération entré – sortie


printf("A = ");
scan
f("%lf", &A);

B-4 Expressions
Une expression peut être une instruction ou une suite d’instructions séparées par l’un des
opérateurs suivants :

Opérateurs d'assignation

Affectation d’une valeur ou d’une expression x à une variable y : (y = x) Addition de la valeur


de gauche à la valeur de droite : + = (x = x+2)
Soustraction de la valeur de gauche à la valeur de droite : - =
Multiplication de la valeur de gauche à la valeur de droite : * =
Division de la valeur de gauche à la valeur de droite : / =
Algorithmique et programmation 1
Pr. G. Mangoub

Incrémentation : ++
Décrémentation : - -

Opérateurs comparateurs de nombres


Egalité : = =
Infériorité stricte : <
Supériorité stricte : > Infériorité : < =
Supériorité :> =
Différent : ! =

Opérateur logiques

OU : ||
ET : &&
NON :!

Exercice
Ecrire un programme en C qui lit trois variables réelles A, B et C et qui calcule :
X= A+B
Y= (A*B)-C
W=A+C
On utilisera les commentaires autant que possible

Solution de l’Exercice version 1

Pour cet exercice, il nous paraît plus pédagogique de donner le programme en C même si on
n’a pas encore vu la traduction de tout ce qu’on a vu dans la partie algorithmique. On essayera
par la suite de comprendre l’utilité de tout ce qui apparait dans ce programme et de le détailler
dans la section intitulée structure d’un programme en C.
Algorithmique et programmation 1
Pr. G. Mangoub

//Un premier programme C


/************************************
* Auteur : G. Mangoub
* Titre : Utilisation des opérations arithmétiques.
* Version 1
Septembre 2014 **********************
**********************************/
#include <stdio.h>
#include <stdlib.h>
//Déclaration
int main()
{
float A,B,C,X,Y,Z,W ;
//lecture des données
printf("donner trois reels A,B et C ");
scanf("%f%f%f", &A,&B,&C);

//traitement
X= A+B ; /* calcul de X*/
Y= (A*B)-C ; /* calcul de Y */
W=A+C ; /* calcul de W */
Z=(A-B)/(A+C) ; /* si W est non nul on calcule puis on affiche Z */
//Edition des résultats
printf("Z=: %4.2f\n", Z);
printf("FIN");

B-5 Structure d’un programme C

La structure d’un programme C est proche de celle d’un algorithme. Le fichier contenant le
programme doit avoir l’extension .c. Un programme source C se présente sous forme d’une
ou plusieurs fonctions. Chacune d’elles comporte un ou plusieurs blocs d’instructions pour
réaliser une tâche précise. Chaque fonction peut faire appel à une autre fonction du
programme. La fonction principale de tout programme C s’appelle main().
Au début du programme doivent apparaître le nom des auteurs du programme, la version ou
la date de réalisation et l’objectif du programme. Ces éléments sont mis dans des
commentaires et sont donc ignorés par le compilateur.
Les #include correspondent à des directives qui indiquent au compilateur (en fait au
préprocesseur) d’inclure les fichiers nommés stdio.h et stdlib.h. Ces fichiers font parties de la
bibliothèque standard du C et donne accès à des fonctions déjà définies. Par exemple les
fonctions d’affichage (printf) et de lecture (scanf) sont définies dans stdio.h.
La fonction scanf est une fonction de saisie qui fonctionne avec un format décrivant la nature
de l’information à lire et donc la conversion à effectuer. La fonction scanf s’utilise de la
manière suivante :
scanf("%c", &un_caractere);
scanf("%d", &un_entier);
scanf("%f", &un_reel);
Algorithmique et programmation 1
Pr. G. Mangoub

scanf("%lf", &un_double);
scanf("%c%d%lf", &un_caractere, &un_entier, &un_double);
Chaque % rencontré dans le format est suivi d’un caractère indiquant la nature de
l’information à lire (c pour caractère, d pour entier, etc.). Les variables à lire sont séparées par
des virgules et sont précédées du signe & qui indique que l’on donne l’adresse de la variable
ce qui permet à scanf de changer la valeur de la variable.
La fonction printf est une fonction de saisie qui, comme scanf, fonctionne avec un format
décrivant la nature de l’information à écrire et donc la conversion à effectuer. La fonction
printf s’utilise de la manière suivante :

printf("%c\n", un_caractere);
printf("%d\n", un_entier);
printf("%f\n", un_reel);
printf("%f\n", un_double);
printf("2 * %d = %d\n", un_entier, un_entier * 2);
printf("c = %c et nb = %f\n", un_caractère, un_double);
printf("texte = %s \n", une chaine de caractères);

Finalement, les déclarations et instructions sont regroupées entre les accolades qui suivent int
main(), d’abord les déclarations, puis les instructions. main est la fonction principale, c’est à-
dire que c’est elle qui est exécutée quand le programme sera lancé. Les instructions sont les
mêmes que celles présentées dans l’algorithme.

On peut donc retenir le canevas suivant pour l’écriture d’un programme en C :

/************************************
* présentation du programme et des auteurs ainsi que la date
*
**********************************/
#include <stdio.h>
#include <stdlib.h>
int main()
{
Déclaration des variables, constante ….etc ;
//lecture des données
//traitement
//Edition des résultats

Exécution

L’écran d’exécution pour l’exercice précédent est par exemple:

donner trois reels A,B et C 1 2 3


Z=: -0.25
Algorithmique et programmation 1
Pr. G. Mangoub

FINAppuyez sur une touche pour continuer...

On peut améliorer l’affichage sur cet écran d’exécution en ajoutant des lignes blanches de la
manière suivantes :

Solution améliorée de l’Exercice version 2

/**********************************************************************
2 * Auteur : G. Mangoub
3 * Titre : Utilisation des opérations arithmétiques.
4
5 Septembre 2014 ***********************/
#include <stdio.h>
#include <stdlib.h>
//Déclaration
int main()
{
float A,B,C,X,Y,Z,W ;
//lecture des données
printf("donner trois reels A,B et C \n "); /* ici */
scanf("%f%f%f", &A,&B,&C);

//traitement
X= A+B ; /* calcul de X*/
Y= (A*B)-C ; /* calcul de Y */
W=A+C ; /* calcul de W */
Z=(A-B)/(A+C) ; /* calcul de Z */
//Edition des résultats
printf("Z=: %4.2f\n", Z);
printf("FIN \n"); /* et ici */

//
}

Exécution

donner trois reels A,B et C


123
Z=: -0.25
FIN
Appuyez sur une touche pour continuer...

On peut aussi améliorer le programme afin qu’il ne calcule Z que si W est non nul, soit :

Solution améliorée de l’Exercice version 3


Algorithmique et programmation 1
Pr. G. Mangoub

/**********************************************************************
2 * Auteur : G. Mangoub
3 * Titre : Utilisation des opérations arithmétiques.
4
5 Septembre 2014 ***********************/
#include <stdio.h>
#include <stdlib.h>
//Déclaration
int main()
{
float A,B,C,X,Y,Z,W ;
//lecture des données
printf("donner trois reels A,B et C \n ");
scanf("%f%f%f", &A,&B,&C);

//traitement
X= A+B ; /* calcul de X*/
Y= (A*B)-C ; /* calcul de Y */
W=A+C ; /* calcul de W */
if (W !=0) /* on teste la valeur de W */
{
Z=(A-B)/(A+C) ; /* si W est non nul on calcule puis on affiche Z */
printf("Z=: %4.2f\n", Z);/* écrit la valeur de Z sur un nombre de caractères égal à 4, avec 2
chiffres aprés la virgule */
}
if (W ==0) /* on teste si la valeur de W est nule */
printf("Votre denominateur est nul \n");
//Edition des résultats
printf("FIN \n");

Exécution 1 : cas où W est non nul

donner trois reels A,B et C


123
Z=: -0.25
FIN
Appuyez sur une touche pour continuer...

Exécution 2 : cas où W est nul

donner trois reels A,B et C


1
2
-1
Votre denominateur est nul
Algorithmique et programmation 1
Pr. G. Mangoub

FIN
Appuyez sur une touche pour continuer...

Exercice 2
Ecrire un programme en C qui Transforme un réel AF en un entier AI

Solution de l’Exercice 2

/**********************************************************************
2 * Auteur : G. Mangoub
3 * Titre : Transformation d'un réel en entier
4
5
6 Septembre 2014 ***********************/
#include <stdio.h>
#include <stdlib.h>
//Déclaration
int main()
{
int AI ;
float AF;
/*1)Transforme un réel AF en entier AI */
// lecture des données
printf("donner un reel AF \n ");
scanf("%f", &AF);
// traitement
AI=(int)(AF);
//Edition des résultats
printf("Votre résultat est le suivant \n");
printf("AI= %d\n", AI);
printf("FIN \n");
Algorithmique et programmation 1
Pr. G. Mangoub

}
Exécution
donner un reel AF
3.14
Votre resultat est le suivant
AI= 3
FIN
Appuyez sur une touche pour continuer...

Exercice 3
Ecrire un programme en C qui donne le code ASCII des caractères 1, a et Z

Solution de l’Exercice 3
/**********************************************************************
2 * Auteur : G. Mangoub
3 * Titre : code ASCII d'un caractère donné
4
5
6 Septembre 2014 ***********************/
#include <stdio.h>
#include <stdlib.h>
//Déclaration
int main()
{
char x,y,z;
int X,Y,Z;
x='1';
y='a';
z='Z';
Algorithmique et programmation 1
Pr. G. Mangoub

// traitement
X=x;
Y=y;
Z=z;
//Edition des résultats
printf("le code ASCII du caractere 1 est: %d\n", X);
printf("le code ASCII du caractere a est: %d\n", Y);
printf("le code ASCII du caractere Z est: %d\n", Z);
printf("FIN \n");

Exécution
le code ASCII du caractere 1 est: 49
le code ASCII du caractere a est: 97
le code ASCII du caractere Z est: 90
FIN
Appuyez sur une touche pour continuer...

Exercice 4
Ecrire un programme en C qui Transforme les lettres minuscules a, c et e en Majuscule

Solution de l’Exercice 4
/**********************************************************************
2 * Auteur : G. Mangoub
3 * Titre : transformation d'une lettre minuscule en majuscule
4
5
6 Septembre 2014 ***********************/
#include <stdio.h>
#include <stdlib.h>
Algorithmique et programmation 1
Pr. G. Mangoub

//Déclaration
int main()
{
char x,y,z;
char X,Y,Z;
x='a';
y='c';
z='e';
// traitement
X=x+( 'A'- 'a');
Y=y+('A'-'a');
Z=z+('A'-'a');

+
//Edition des résultats
printf("le majuscule de a est: %c\n" , X);
printf("le majuscule de c est: %c\n", Y);
printf("le majuscule de e est: %c\n", Z);
printf("FIN \n");

Exécution
le majuscule de a est: A
le majuscule de c est: C
le majuscule de e est: E
FIN
Appuyez sur une touche pour continuer...

Exercice 5
Ecrire un programme en C qui transforme les lettres majuscules B, D et Z en minuscule.
Algorithmique et programmation 1
Pr. G. Mangoub

Solution de l’Exercice 5
/**********************************************************************
2 * Auteur : G. Mangoub
3 * Titre : transformation d'une lettre majuscule en minuscule
4
5
6 Septembre 2014 ***********************/
#include <stdio.h>
#include <stdlib.h>
//Déclaration
int main()
{
char x,y,z;
char X,Y,Z;
X='B';
Y='D';
Z='Z';
// traitement
x=X+( 'a' -'A');
y=Y+('a'-'A');
z=Z+('a'-'A');
//Edition des résultats
printf("le minuscule de B est: %c\n" , x);
printf("le minuscule de D est: %c\n", y);
printf("le minuscule de Z est: %c\n", z);
printf("FIN \n");

Exécution

le minuscule de B est: b
le minuscule de D est: d
le minuscule de Z est: z
FIN
Appuyez sur une touche pour continuer...

Remarque :
En plus de <stdio.h>, <stdlib.h> il existe d’autres bibliothèques. Nous les introduirons
lorsque nous en aurons besoin. Ainsi par exemple pour pouvoir utiliser des fonction
prédéfinie en maths(valeur absolue, racine carrée, sinus, tangente, etc…), il faut introduire le
module <math.h>,
<stdbool.h>pour manipuler les type bool et <string.h> pour manipuler les chaines de
caractères( on peut par exemple compter le nombre de caractères d’une chaine en utilisant la
fonction strlen prédéfinie dans ce module).
Algorithmique et programmation 1
Pr. G. Mangoub

Exercice 6
Ecrire un programme en C qui :
1) Lit un réel A et calcule sa valeur absolue
2) Calcule la racine de la valeur absolue de A
3) Lit une chaine de dix caractère et l’affiche
4) Compte le nombre de caractères de la chaine

Solution de l’Exercice 6
/**********************************************************************
2 * Auteur : G. Mangoub
3 * Titre : test de quelques modules bibliothèque C
4
5 Septembre 2014 ***********************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
//Déclaration
int main()
{
float A,B,C ;
int n;
char texte[10];
//lecture des données
printf("donner un reel A \n ");
scanf("%f", &A);
printf("donner un texte de dix caracteres au plus \n ");
scanf("%s", &texte);
n=strlen(texte);
//traitement
B= fabs(A) ; /* calcul de la valeur absolue de A*/
C= sqrt(B) ; /* calcul de la racine carrée de B */
//Edition des résultats
printf("B=: %4.2f\n", B);
printf("C=: %4.2f\n", C);
printf("Voici votre texte\n");
printf("%s\n", texte);
printf(" le nombre de caracteres de votre texte est: n=%d\n",n);
printf("FIN \n");
}

Exécution
Algorithmique et programmation 1
Pr. G. Mangoub

donner un reel A
-16
donner un texte de dix caracteres au plus
abcdefghij
B=: 16.00
C=: 4.00
Voici votre texte
abcdefghij
le nombre de caracteres de votre texte est: n=10
FIN
Appuyez sur une touche pour continuer...

Vous aimerez peut-être aussi