Notes de cours
Module Informatique I
Cours, TD et TP de 28h, 1ère année
Filière Génie Informatique-EMI
INTRODUCTION
NOTIONS D'ALGORITHMES
CONCEPTS DE BASE ET STRUCTURES DE
CONTRÔLE DU LANGAGE C
LES TABLEAUX
LES POINTEURS
LES FONCTIONS
ETAPES ET DEMARCHES DE RESOLUTION
ALGORITHMIQUE
QUELQUES EXEMPLES DE LANGAGES
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 2
Terminologie
Etapes de résolution d’un problème
Scénario d’un traitement automatique
Exemple
Science.
Traitement automatique de l'information.
Outil : l’ordinateur.
Objet :
élaborer des commandes + instructions.
commander+orienter l'ordinateur lors du
traitement.
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 4
Traitement automatique?
Résolution
de problèmes au moyen de
programmes ou logiciels.
Programme?
Série
d'instructions (exécutables par la
machine) pour résoudre un problème.
Logiciel?
Ensemble de programmes pour
résoudre un problème complexe.
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 5
Début
Lire (consommation,prix_unitaire,TVA,prix_abonnement)
PHT (consommation*prix_unitaire)+prix_abonnement
PT PHT * (1+TVA)
Ecrire PT
Fin
Soient :
Consommation=100 unités, Prix
unitaire=0.50DH
Prix d’abonnement=70DH et TVA=20%
Le processeur demande les entrées (100,
0.50, 0.2 et 70) à l'utilisateur,
Fait les calculs
PHT=(100*0.5)+70=120
PT=120*(1+0.2)=144
Définition simple
Description d’une méthode de résolution de
problème programmable sur machine.
Définition plus précise
Suite finie et ordonnée d’actions
élémentaires finies (en temps et moyens).
Objectif : aboutir à un résultat déterminé
d'un problème donné.
Règles de composition : Séquencement +
Sélection + Itération.
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 13
Creuser un trou,
Placer l'arbre dans le trou,
Reboucher le trou.
Variables? x …
Données du problèmes y …
Syntaxe
Variable expression
Exemples
x 10
x 10
x (x*b)+c
y 's'
y 's'
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 18
Syntaxe
Lire variable
Exemples
Lire a
Lire (a,b,c)
Syntaxe
Ecrire expression
Exemples
Ecrire 'bonjour'
Ecrire 12
Ecrire a,b,c
Ecrire a+b
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 20
Si condition alors
Début
instruction(s) 1
Fin
Sinon
Début
instruction(s) 2
Fin
Si condition alors
Début
instruction(s) 1
Fin
Si condition1 alors
Début
Exemple de Si condition2 alors
Début
syntaxe Si condition3 alors
Début
Instruction(s) 1
Fin
Sinon
Début
instruction(s) 2
Fin
Fin
Sinon
Début
instruction(s) 3
Fin
Fin
Sinon
Début
instruction(s) 4
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 24
Début
lire (ancienneté, note)
Si ancienneté < 5 alors
Si ancienneté = 4 et note ≥ 16 alors
écrire ('L’agent peut bénéficier du crédit')
Sinon
Si ancienneté = 3 et note ≥ 18 alors
écrire ('L’agent peut bénéficier du crédit')
Sinon
écrire ('L’agent n’a pas droit au crédit')
Sinon
Si note ≥ 13 alors
écrire ('L’agent peut bénéficier du crédit')
Sinon
écrire ('L’agent n’a pas droit au crédit')
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 25
Selon variable
valeur1 : instruction(s) 1
valeur2 : instruction(s) 2
...
valeurn : instruction(s) n
sinon instruction(s) m
Début
lire c
Selon c
'a' : écrire ('le caractère est une voyelle')
'e' : écrire ('le caractère est une voyelle')
'i' : écrire ('le caractère est une voyelle')
'o' : écrire ('le caractère est une voyelle')
'u' : écrire ('le caractère est une voyelle')
'y' : écrire ('le caractère est une voyelle')
sinon écrire ('le caractère est une consonne')
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 27
Faire
Début
instruction(s)
Fin
Tant que condition
Début
1- Lire n et b
2- Convertir le nombre n en base b
3- Ecrire r
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 33
n=11 et b=2.
1- 11/2=5 reste=1
2- 5/2=2 reste=1
3- 2/2=1 reste=0
4- 1/2=0 reste=1 (on s’arrête) r=1011
Remarques
Il s’agit d’effectuer une succession de divisions
de n par b (traitement à répéter autant de fois
qu’il le faut).
Le résultat est la combinaison des différents
restes obtenus commençant par le bit 0.
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 34
Début
1- Lire n et b
2- Effectuer une succession de division de n par b
autant de fois qu'il le faut
3- Le résultat est la combinaison des différents restes
obtenus à écrire commençant par le bit 0.
Fin
Début
1- Lire (n,b)
2- Tant qu’il le faut (condition à chercher) faire
Début
3- Diviser n par b pour calculer le reste
4- Ecrire le reste
Fin
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 35
Début
1- Lire (n,b)
2- Tant que le résultat de la division est différent de 0 faire
Début
3- r n mod b
4- n n div b
5- Ecrire r
Fin
Fin
Début
1- Lire (n,b)
2- Tant que n ≠ 0 faire
Début
3- r n mod b
4- n n div b
5- Ecrire r
Fin
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 36
Début
1- Faire
Lire n
Tant que n ≤ 0
2- Faire
Lire b
Tant que b < 2 ou b > 10
3- Tant que n ≠ 0 faire
Début
4- r n mod b
5- n n div b
6- Ecrire r
Fin
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 37
Opération n b r
1 11 - -
2 11 2 -
3 11 2 -
4 11 2 1
5 5 2 1
6 5 2 1 (1 affichage)
er
3 5 2 1
4 5 2 1
5 2 2 1
6 2 2 1 (2ème affichage)
3 2 2 1
4 2 2 0
5 1 2 0
6 1 2 0 (3ème affichage)
3 1 2 0
4 1 2 1
5 0 2 1
6 0 2 1 (4ème affichage)
3 0 2 1
<Directives de compilation>
<Déclaration de variables externes>
<Déclaration de prototypes de fonctions>
main ( )
{
corps du programme
(déclaration de constantes,
déclaration de variables,
instructions)
}
<Définition de fonctions>
#define expression_remplacée
expression_remplaçante
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 45
#include <stdio.h>
#define pi 3.14
Syntaxe
/* texte du commentaire */
Exemple
main( )
{
printf("bonjour"); /* ce programme affiche
le mot bonjour*/
}
Déclaration
Type identificateur;
Type identificateur1,…,identificateur n;
Exemples
inti;
float j,k;
char c;
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 48
solution1 OK
1solution Non
prix unitaire Non
prix_unitaire OK
jour, Jour et JOUR sont différents
int Non
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 50
#include <math.h>
main( )
{
int p, i=4,j=-2;
float r;
p=pow(i,2);
r=sqrt (i);
i=abs(j);
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 54
Fonction Signification
isalpha (c) c : une lettre
isupper (c) c : lettre majuscule
islower (c) c : lettre minuscule
isdigit (c) c : chiffre
isxdigit (c) c : hexadécimal [0-9], [A-F] ou [a-f]
isalnum (c) c : alphanumérique (chiffre ou lettre)
isspace (c) c : blanc, tabulation, retour chariot, newline ou formfeed
ispunct (c) c : caractère de ponctuation
isprint (c) c : caractère imprimable (de 32 (040) à 126 (0176) tilde)
isgraph (c) c : caractère imprimable différent d'espace
iscntrl (c) c : caractère de contrôle ≠ d'espace, (<32) ou delete (0177)
isascii (c) c : caractère ASCII (0 c < 128)
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 55
Déclaration
const Type Identificateur = Valeur ;
main( )
{
const float pi=3.14;
printf("pi égale à %f",pi);
}
#define pi 3.14
main( )
{
printf("pi égale à %f",pi);
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 57
main( )
{
int i, j=3, k;
float f=1.2 e5;
int i=011; /*11 en octal*/
char c='A';
char c=65; /*Code ASCII de A*/
}
Représentation Signification
\0 Caractère NULL
\a Bip (signal sonore)
\b Espace arrière
\t Tabulation
\n Nouvelle ligne
\f Nouvelle page
\r Retour chariot
\" Guillemet
\' Apostrophe
\\ Antislash (\)
\ddd Caractère ayant pour valeur ASCII octale ddd
\x hhh Caractère ayant pour valeur ASCII hexadécimale hhh
Syntaxe
Variable = Valeur ou expression ;
Exemple
main( )
{
int i, j;
i=2;
j=(i*3)+5;
i=j=2; /*j reçoit d'abord 2 puis i reçoit j*/
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 62
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); /*la valeur de i est 2*/
printf("i=%d j=%f",i,j); /*i=2 j=3.5*/
printf("i=%d\nj=%f",i,j); /*i=2
j=3.5*/
printf("somme(%d,%d)=%d\nFIN",i,k,i+k);
/*somme(2,5)=7
FIN*/
printf("j=%4.2f\n",j); /*j= 3.50*/
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 65
+ addition Exemple
- soustraction main( )
* multiplication {
/ division int i=9,j=4,k;
% reste de la
division entière float x=9.0, y;
k=i+j;
y=i/j; /*division entière*/
y=x/j; /*division réelle*/
y=9.0/j; /*division réelle*/
k=i%j;
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 69
Exemple
main( )
{
int i=9,j=4;
float y;
y=(float) i / j;
y=(float) (i/j);
}
Opérateurs signification
! Non logique
> >= < <= Test de supériorité et d'infériorité
== et != Test d'égalité et d'inégalité
&& et || ET et OU logique
#include <stdio.h>
main( )
{
int a,b,c;
printf ("Introduire a, b et c : ");
scanf ("%d%d%d",&a,&b,&c);
if (a==b && b!=c)
printf("a égale à b et b différent de c\n");
if (!(a<b) || a==0)
printf("a >= b ou a = 0\n");
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 73
Pré-incrémentation (Pré-décrémentation)
Incrémentation (décrémentation) de 1 puis affectation
Post-incrémentation (Post-décrémentation)
Affectation puis incrémentation (décrémentation).
Exemples : Soient i=3 et j=5,
Instruction Equivalent Résultats
i++; i=i+1; i=4
++i; i=i+1; i=4
i--; i=i-1; i=2
--i; i=i-1; i=2
i= ++j; j=j+1; i=j; j=6 et i=6
j=++i + 5; i=i+1; j=i+5; i=4 et j=9
j=i++ + 5; j=i+5; i=i+1; j=8 et i=4;
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 74
if (Condition)
{
instruction1;
…
instructionn;
}
else
{
instruction1';
…
instructionn';
}
#include <stdio.h>
main( )
{
int a,b;
printf ("Introduire a et b : ");
scanf ("%d%d",&a,&b);
if (a==b)
printf("a égale à b\n");
else
printf("a différent de b\n");
if (a=b) /*faire a=b; puis if (a) [si a0]*/
{
printf("a est différent de 0\n");
}
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 76
entier ou un caractère
#include <stdio.h>
main( )
{
int a;
char c;
printf("Donner un nombre : ");
scanf ("%d",&a);
switch (a)
{
case 0 : printf ("Le nombre est zéro\n"); break;
case 1 : printf ("Le nombre est 1\n"); break;
default : printf("Il est différent de 0 et 1\n");
}
printf("Donner une lettre: ");
scanf ("%c",&c);
switch (c)
{
case 'x' : printf ("La lettre est x\n"); break;
case 'y' : printf ("La lettre est y\n"); break;
}
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 79
do Exemple
{ #include <stdio.h>
instruction(s) main( )
}
while (Condition); {
int n, somme=0, i=0;
scanf ("%d",&n);
do
{
somme=somme+i;
i++;
}
while (i<=n) ;
printf ("%d",somme);
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 81
for ( initialisations;Condition;Instructions)
{
instruction(s)
}
Exemple
#include <stdio.h>
main( )
{
int i,j,n,somme=0;
scanf ("%d",&n);
for (i=1; i<=n; i++)
somme=somme+i;
printf ("%d",somme);
for (i=2, j=4; i<5 && j>2; i++, j--)
printf ("i:%d et j:%d\n",i,j); /* i:2 et j:4
i:3 et j:3*/
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 82
Déclaration
Type identificateur [Taille];
Constante
Exemples
#include <stdio.h>
#define taille1 5
main( ) {
char a [taille1];
a[0]= 'x';
int b [10];
scanf("%d", &b[0]);
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 86
Exemple
Indices 0 1 2
Tableau t a b c t[1] = 'b';
Adresses 100 101 102 &t[1]=101
Exemples
#include <stdio.h>
#define taille1 3
main( ) {
float a [taille1] = {0.,1.5,3.};
int b [taille1] = {1};
char c [taille1] = {'x', ,'y'};
int d [ ] = {4,6,8};
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 88
Exemple
#include <stdio.h>
#define taille 20
main( ) {
int i, t [taille];
for(i=0;i<taille;i++)
t[i]=i;
}
Exemple
#define taille 3
main( ) {
int i, A [taille]={7,8,9};
int B [taille]={4,5,6}; A 7 8 9 B 4 5 6
for(i=0;i<taille;i++)
A[i]=B[i]; A 4 5 6 B 4 5 6
for(i=0;i<taille;i++)
A[i]=i; A 0 1 2 B 4 5 6
}
A et B ne changent pas d’adresse
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 91
#include <stdio.h>
#define taille 20
main( ) {
char a [taille], b[taille];
int i, egaux;
for (i=0;i<taille;i++)
{
scanf ("%c",&a[i]);
scanf ("%c",&b[i]);
}
egaux=1;
for(i=0;i<taille;i++)
if (a[i]!=b[i]) {égaux=0; break;}
if (egaux) printf ("a et b sont égaux.\n");
else printf ("a et b sont différents\n");
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 92
Initialisation
char identificateur [Taille] = "Texte\0";
Exemples
#define taille1 3
#define taille2 4
main( ) {
char t [taille1]="ali";
char a [taille2]="ali\0";
}
L’affectation t="texte\0" est impossible si t est
déclaré comme un tableau de caractères.
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 93
Déclaration
Type Identificateur [Taille1]…[Taille n];
Exemple : Lecture de nombre de buts marqués par
chacun des 11 joueurs de 8 équipes
#include <stdio.h>
#define taille1 8
#define taille2 11
main( ) {
int t [taille1][taille2], i, j;
for(i=0;i<taille1;i++)
for (j=0; j<taille2;j++)
scanf ("%d",&t[i][j]);
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 97
#define taille1 5
#define taille2 2
#define taille3 4
main( ) {
float t [taille1][taille2][taille3];
int i,j,k;
for(i=0;i<taille1;i++)
for (j=0; j<taille2;j++)
for (k=0; k<taille3;k++)
scanf ("%f",&t[i][j][k]);
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 98
Déclaration
Type Identif [m]… [p]={ Liste0,…, Listem-1};
Déclaration de pointeurs
Opérateurs & et *
Opérateurs ++ et --
Allocation mémoire
Définition et déclaration
Variable contenant une adresse mémoire.
Un pointeur ne contenant aucune adresse est égal à
NULL (stdio.h).
Type_variable_pointée *Pointeur;
Exemple
#include <stdio.h>
main( )
{
int i,j,*p;
i=5;
p=&i;
j=*p;
*p=j+2;
}
Représentation mémoire
Supposant que i, j et p sont aux adresses 100, 102 et 104.
Introduction
Structure et prototype d’une fonction
Appel de fonctions
Domaines d'existence de variables
Passage de paramètres
Fonction récursive
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 105
#include <stdio.h>
int triple (int);
main( ) {
int i=2,j;
j=triple(i);
printf ("%d“,j);
j=triple(4);
printf ("%d",j);
}
int triple (int n) {
int r;
r=n*3;
return r;
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 107
Variables locales
Variables dont la portée est uniquement la
fonction où on les déclare.
Return
Indique le résultat retourné par la fonction
et constitue un point de sortie de la fonction.
Déclaration
Void si aucun Void si aucun
Avantages
Règle d'usage de la fonction : nombre et type de
paramètres ainsi que le type de la valeur retournée.
Permet au compilateur de détecter des erreurs
(effectuer des conversions de types…).
Domaine Signification
d'existence
locale Elle n'est référencée que dans la fonction où elle est
déclarée.
globale Placée en dehors des fonctions (généralement au début du
programme avant le main), elle peut être accédée par toutes
les fonctions.
Static C'est une variable locale à une fonction mais qui garde sa
valeur d'une invocation de la fonction à l'autre.
Externe Elle est déclarée dans un module. La mémoire qui lui est
réservée est allouée par un autre module compilé
séparément.
Register C'est une variable que l’on place dans un registre.
Entrées ?
Sorties ?
Traitement(s) ?
Cas particuliers et Solutions proposées?
Démarche descendante
Détailler progressivement le problème en
actions plus simples exécutables par la machine.
Démarche ascendante
Traiter le cas simplifié du problème complexe et
l’enrichir progressivement.
Division Euclidienne
Calculer le quotient Q et le reste R de deux
nombres entiers positifs A et B.
Définition du problème
Entrées : Les nombres entiers positifs A et B.
Sorties : Le quotient Q et le reste R.
Traitement : Calculer le quotient Q et le reste R de
la division de A par B.
Cas particuliers : B=0.
Début
1- Lire A et B
2- Calculer le quotient Q et le reste R
de la division de A par B
3- Ecrire (Q, R)
Fin
Début
1- Lire A et B
2- Soustraire B de A autant de fois que c'est
possible
3- Q est le nombre de soustractions effectuées
4- R est le résultat de la dernière soustraction
5- Ecrire (Q, R)
Fin
Début
1- Lire A et B
2- Poser Q=0
3- Tant que la soustraction A-B est possible faire
Début
4- Soustraire B de A
5- Additionner 1 à Q
Fin
6- Poser R=A
7- Ecrire (Q, R)
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 125
Début
1- Lire A et B
2- Q 0
3- Tant que A≥B faire
Début
4- A A-B
5- Q Q+1
Fin
6- R A
7- Ecrire (Q, R)
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 126
Opération A B Q R
1 11 5 - -
2 11 5 0 -
3 11 5 0 -
4 6 5 0 -
5 6 5 1 -
3 6 5 1 -
4 1 5 1 -
5 1 5 2 -
3 1 5 2 -
6 1 5 2 1
7 1 5 2 1
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 127
Début
1- Lire A et B
2- Si B=0 alors
3- Ecrire ('Impossible de diviser par 0')
4- Sinon
Début
5- Q0
6- Tant que A≥B faire
Début
7- A A-B
8- Q Q+1
Fin
9- RA
10- Ecrire (Q, R)
Fin
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 129
Factures d’électricité
Calculer le montant de plusieurs factures
d’électricité.
TVA = 20%
Prix unitaire = 0.6DH : Tranche <= à 100 KWh
= 0.9 DH : Ce qui est au delà .
Définition du problème
Entrées : L’ancien index ai et le nouvel index ni pour
chaque facture.
Sorties : La consommation, PHT et PTTC de chaque
facture.
Traitement : Calculer consommation, PHT et PTTC de
chaque facture.
Cas particuliers : ai > ni, ai < 0, ni < 0.
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 130
Début
1- Lire ai et ni
2- Calculer la consommation, PHT et PTTC d’une facture.
3- Ecrire (consommation, PHT, PTTC)
4- Généraliser le traitement à plusieurs factures.
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 131
Début
1- Lire ai et ni
2- Calculer la consommation
3- Calculer le prix hors taxe PHT
4- Calculer le prix TTC PTTC
5- Ecrire (consommation, PHT, PTTC)
Fin
Début
1- Lire ai et ni
2- consommation ni - ai
3- Si consommation ≤ 100 alors
4- PHT consommation * 0.6
5- Sinon
6- PHT(100*0.6)+(consommation–100)*0.9
7- PTTC PHT * (1+0.2)
8- Ecrire (consommation, PHT, PTTC)
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 132
Début
1- Lire ai et ni
2- Si ai > ni ou ai < 0 ou ni < 0 alors
3- Ecrire ('Erreur de saisie')
4- Sinon
Début
5- consommation ni - ai
6- Si consommation ≤ 100 alors
7- PHT consommation * 0.6
8- Sinon
9- PHT(100*0.6)+(consommation–100)*0.9
10- PTTC PHT * (1+0.2)
11- Ecrire (consommation, PHT, PTTC)
Fin
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 133
Début
1- Lire ai et ni
2- Si ai > ni ou ai < 0 ou ni < 0 alors
3- Ecrire ('Erreur de saisie')
4- Sinon
Début
5- consommation ni - ai
6- Si consommation ≤ 100 alors
7- PHT consommation * 0.6
8- Sinon
9- PHT(100*0.6)+(consommation–100)*0.9
10- PTTC PHT * (1+0.2)
11- Ecrire (consommation, PHT, PTTC)
Fin
12- S’il y a une nouvelle facture refaire le même traitement
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 134
Début
1-Faire
Début
2- Lire ai et ni
3- Si ai > ni ou ai < 0 ou ni < 0 alors
4- Ecrire ('Erreur de saisie')
5- Sinon
Début
6- consommation ni - ai
7- Si consommation ≤ 100 alors
8- PHT consommation * 0.6
9- Sinon
10- PHT(100*0.6)+(consommation–100)*0.9
11- PTTC PHT * (1+0.2)
12- Ecrire (consommation, PHT, PTTC)
Fin
13- Lire nouvelle facture
Fin
14-Tant que nouvelle facture = 'oui‘
Fin
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 135
Java
Visual Basic
Exemples
Exemple
Class Bonjour
{
public static void main (string args[])
{
system.out.println (“Bonjour”);
}
}
Compilation et exécution
Javac Bonjour.java
Java Bonjour
Exemple
sub Bonjour
print (“Bonjour”);
endsub
#include <stdio.h>
#define taille 20
main( ) {
char a [taille], b[taille];
int i;
for (i=0;i<taille;i++)
{
scanf ("%c",&a[i]);
scanf ("%c",&b[i]);
}
i=0;
while (i<taille && a[i]==b[i])
i++;
if (i>=taille) printf ("a et b sont égaux.\n");
else printf ("a et b sont différents\n");
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 144
Class comparer
{
public static void main (string args[])
{
final int taille=20;
char a []=new char [taille], b []=new char [taille];
int i;
byte j;
for (i=0;i<taille;i++)
{
a[i]= (char) system.in.read (j);
b[i]= (char) system.in.read (j);
}
i=0;
while (i<taille && a[i]==b[i])
i++;
if (i>=taille) printf ("a et b sont égaux.\n");
else printf ("a et b sont différents\n");
}
et }langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI
Algorithmique 145
#include <stdio.h>
main( ) {
const taille as integer=20;
dim a (taille) as string;
dim b (taille) as string;
dim i as integer;
for i=0 to taille-1
scanf ("%c",&a[i]);
scanf ("%c",&b[i]);
next I;
i=0;
while (i<taille and a(i)=b(i))
i=i+1;
wend
if (i>=taille) then print ("a et b sont égaux.");
else print ("a et b sont différents");
endif
}
Algorithmique et langage C. Mme F.Z. BELOUADHA. Filière Génie Informatique-EMI 146