Académique Documents
Professionnel Documents
Culture Documents
Prsent par :
Mohamed Derouich
Table des matires
1
3.3.4 Dclaration de constantes et de variables scalaires : . . 20
3.3.5 structure gnrale, d programme : . . . . . . . . . . . 22
3.4 Outils de communication . . . . . . . . . . . . . . . . . . . . . 23
3.4.1 Expression scalaires : . . . . . . . . . . . . . . . . . . . 23
3.4.2 Instructions de base : . . . . . . . . . . . . . . . . . . . 25
3.4.3 Affichage et saisie de donnes : . . . . . . . . . . . . . 26
2
Chapitre 1
3
? Pour effectu sont travail lemploy peut avoir besoin de raliser des
calculs, il dispose dune calculatrice (unit de calcul).
? Pour ne pas oublier ce quon lui demande, il note sur brouillon de ins-
tructions quon lui demande reus du directeur (cest le programme).
Il note certain information sur les donnes quil va traiter (Mmori-
sation des instructions excuter).
? Il a besoin de certain informations comme les prix des produit qui
existent sur des catalogues volumineux, les adresses des clients qui
existent sur des rpertoires classs, .... (Mmoires auxiliaires)
4
1.1.3 Le matriels informatique :
Dans lexemples cit on peut distingu deux choses : Lemploy de bureau
et les instruction excuter par lemploy (ce quon lui demande).
Ainsi le systme informatique est composer de deux parties :
Le matriels : constitus de lunit centrale et les organes dentr/sortie.
Les logiciels : Ce sont des programmes (ensembles dinstruction que la
machine doit excuter).
1. La partie matrielle (Hardware)
i) Lunit centrale ou le Processeur (En anglais CPU Central Proces-
sing Unit) cest dans cette partie que linformation est traite, lunit
central est constitue de deux organes :
Lunit arithmtique et logique : qui permet deffectuer des opra-
tions sur les donnes telles que Addition, Soustraction, Multiplica-
tion, Division et les opration logique .
Unit de commande : Dirige toutes les oprations qui se droulent
dans lordinateur .
ii) Une Mmoire centrale contenant les programme excuter et les
donnes traiter.
iii)Les organes priphriques : ils comprennent :
Les organes dentres comme : clavier, la souris, lecteur de disquettes,...
Les organes de sorties comme : qui fournis des rsultats comme :
Ecran, Imprimante, haut-parleur, ....
2. Partie logiciels
i) Logiciels : est un (ensemble) de programme(s) qui permet(tent)
dutiliser la partie matriels de lordinateur , on distingues deux fa-
milles de logiciels :
ii) Logiciels de base :Il permet la gestion du matriels (lordinateur
et ses priphriques) . il est gnralement fourni par le constructeur,
parmis les logiciels de base on trouve les systmes dexploitations (Dos,
Windows, Linux,..) , les compilateur des langages (Pascal, C,C++,...)
iii) Logiciels dapplications : logiciels outils (Traitement de texte Ta-
bleur,..) ou toutes programmes dun utilisateurs.
5
1.2 Systme dexploitation :
1.2.1 Dfinitions et concepts :
Sans ses logiciels un ordinateur nest quun mtal, grce ses logiciels, il
peut mmoriser, traiter et restituer des informations.
Les logiciels se rpartissent en deux grandes catgories : les programmes
systmes qui permettent le fonctionnement de lordinateur et les programmes
dapplications qui rsolvent les problmes des utilisateurs.
Le systme dexploitation et le programme fondamental des programmes
systmes, il contrle les ressources de lordinateur comme la mmoire, lunit
centrale, le disque dur, limprimante, et fourni la base sur laquelle seront
construit les programmes dapplications.
6
Gestion des ressources : Il sagit de lallocation et libration de res-
sources telle que le temps C.P.U, Mmoire Central, Le matriel dentr
sortie, afin doptimiser lutilisation de ses ressources et daccrotre la
disponibilit de lordinateur pour chaque utilisateur.
Gestion des donnes : Il gre les entres et sortis des donnes et leurs
emplacements, sauvegarde et rcupration de linformation et lorgani-
sation de celle-ci sur disque.
Gestion des tches : Une tche et un ensemble de programmes et de
donnes associes, le systme contrle les taches en excution
Fourni une interface lutilisateur : Linterface est la partie du logiciel
qui communique avec lutilisateur est Il fournit usager un ensembles
de commande qui contrle le matriel, cette interface prend en gnral
trois forme :
Ligne de commande : lutilisateur doit taper la commande ex-
cuter en utilisant un langage de commande bien dfinit.
Interface Menu : permet lutilisateur de slectionn une com-
mande de menus, la slection se fait par souris ou clavier.
Interface graphique : gnralement est constitue des lments sui-
vantes : Icne : Image graphique qui reprsente un objet (Fichier,
Rpertoire,) Pointeur graphique : Pour slectionner les icnes, les
commandes et pour dplacer les objets sur cran. Menu droulant,
Fentre, boites de dialogue,...
7
Chapitre 2
2.2 Linformation
Information est tout forme de donnes reprsentant un ou plusieurs rensei-
gnement . On distingue gnralement diffrents types dinformations : textes,
nombres, sons, images, etc .... Linformation sous sa forme brute, ne peut tre
directement trait est analyse par une machine logique telle que lordinateur.
Alors pour remdier ce problme on la traduit dans une alphabet propre
ce dernier. Cest lopration de codage.
8
2.3 Le codage de linformation
2.3.1 Dfinitions :
3 Le codage dune information consiste tablir une correspondance
entre la reprsentation externe (habituelle) de linformation ( ex : le
caractre A ou le nombre 36), et sa reprsentation interne dans la ma-
chine, qui est une suite de 0 et 1.
3 Le transcodage est le passage dun code un autre pour la mme
information.
3 Le BIT signifie "binary digit", cest--dire 0 ou 1 en numrotation
binaire. Cest la plus petite unit dinformation manipulable par une
machine. On peut le reprsenter physiquement :
* par une impulsion lectrique qui correspond la valeur 1 ou une
absence dimpulsion qui correspond la valeur 0.
* par des alvoles ou des espaces dans une surface (CD-ROM)
* grce des bistables, cest--dire des composants qui ont deux
tats dquilibre (un correspond ltat 1, lautre 0)
3 Loctet est une unit dinformation compose de 8 bits. Il permet de
stocker un caractre, tel quune lettre, un chiffre ...
i) Le kilo-octet (kO) : 210 = 1024 octets
ii) Le mega-octet (MO) : 220 = 1048576 octets
iii) Le giga-octet (GO) : 230 = 1073741824 octets = 1024 MO
iv) Le tera-octet (TO) : 240 = 1099511627776 octets = 1024 GO
cas gnrale :
En gnrale dans une base b, on utilise b chiffres. Notons ai la suite des
chiffres utiliss pour crire un nombre x = an an1 a1 a0 avec ai < b alors
9
n
X
x est donn par : x = an an 1 a1 a0 = ai bi
i=0
a0 est le chiffre de poids faible, et an le chiffre de poids fort.
le code hexadcimal :
En notation hexadcimale on dispose de 16 symboles : 10 chiffres 0,1, ,9
et 6 symboles A,B,,F . Donc en hexadcimal, b=16,
ai {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F } (avec A reprsente 10, B 11,
et F 15).
Exemples 2.3.1 :
En base 10 :
(1996)10 = 1 103 + 9 102 + 9 101 + 6 100
En base 2 :
(101)2 = 1 22 + 0 21 + 1 20 = (5)10
En base Hexadcimal :
(AB)16 = 10 161 + 11 160 = 160 + 11 = (171)10
Remarque 2.3.1 :
La notation ()b indique que le nombre est crit en base b.
Le code ASCII
La mmoire de lordinateur conserve toutes les donnes sous forme nu-
mrique. Il nexiste pas e mthode pour stocker directement les caractres.
Chaque caractre possde donc son quivalent en code numrique : cest le
code ASCII (American Standard Code for Information Interchange - tradui-
sez " Code Americain Standard pour lEchange dInformations"). Le code
ASCII de base reprsentait les caractres sur 7 bits (cest--dire 128 carac-
tres possibles, de 0 127). Le code ASCII a t tendu 8 bits (un oc-
tet) pour pouvoir coder plus de caractres (on parle dailleurs de code ASCII
tendu...). Ce code attribue les valeurs 0 255 (donc codes sur 8 bits, soit
1 octet) aux lettres majuscules et minuscules, aux chiffres, aux marques de
ponctuation et aux autres symboles(voir le tableau de code ASCII)
10
11
Les codes 0 31 ne sont pas des caractres. On les appelle caractres
de contrle car ils permettent de faire des actions telles que :
retour la ligne (CR) ;
Bip sonore (BEL)
Les codes 65 90 reprsentent les majuscules ;
Les codes 97 122 reprsentent les minuscules.
Remarque 2.3.2 :
il suffit de modifier le 5me bit pour passer de majuscules minuscules, cest-
-dire ajouter 32 au code ASCII en base dcimale.
44 = 22 2 + 0 = a0 =0
22 = 11 2 + 0 = a1 =0
11 = 5 2 + 1 = a2 =1
5=22+1 = a3 =1
2=12+0 = a4 =0
1=02+1 = a5 =1
12
0 1 1 0 1
+ 0 1 1 1 0
1 1 0 1 1
La multiplication en binaire
La multiplication se fait entre bits de mme poids, avec le mme sys-
tme de retenue quen dcimale. La table de multiplication en binaire est trs
simple : 00 = 0; 01 = 0; 10 = 0; 11 = 1. Par exemple :0110100110 =
10011100 (dcimal 13 6 = 78)
0 1 1 0 1
0 0 1 1 0
0 1 1 0 1 0
0 1 1 0 1
1 0 0 1 1 1 0
13
Chapitre 3
Introduction la programmation
Pascal
3.1 Introduction :
Un ordinateur est une machine qui excute un certain nombre dopra-
tions comme par exemple :
addition, soustraction, multiplication,
afficher les rsultats des oprations sur lcran,
comparer des nombres.
Sa puissance vient du fait quil peut tre programm, cest dire que lon
peut lui donner, lavance, la squence (la suite ordonne) des ordres ef-
fectuer lun aprs lautre. Le grand avantage de lordinateur est sa rapidit.
Par contre, cest le programmeur qui doit TOUT faire. Lordinateur ne com-
prenant que des ordres cods en binaire (le langage machine), et donc pour
faciliter la programmation, des langages dits "volus" ont t mis au point.
3.2.1 Dfinitions
Dfinition 3.2.1
Un langage de programmation est un symbolisme conventionnel assurant la
communication entre la machine (ordinateur) et lutilisateur. Il possde un
14
vocabulaire bien dfini. On distingue trois types de langage de programma-
tion : langage machine interne, langage machine externe et langage volu.
Dfinition 3.2.2
Un programme est une suite dinstructions lmentaire, qui vont tre ex-
cutes dans lordre par lordinateur. Ces instructions correspondent des
actions trs simples, comme additionner deux nombre, lire ou crire une case
mmoire, etc ...
Dfinition 3.2.3
Un algorithme est la donnes dune suite fini dtape (ltape est une infor-
mation lmentaire, information gnral). A excuter dans un ordre donn
pour rsoudre un problme.
Remarque 3.2.1
1. Un algorithme doit exprime dans un langage compris par le lecteur.
2. un programme est un algorithme exprim dans un langage de program-
mation.
Exemple 3.2.1
Addition := ADD ; soustraction : = SUB ; Comparaison :=CMP.
15
3.2.5 Exemples de langages volus (les plus connus)
Fortran : ces le plus ancien des langage volu. (domaines scienti-
fiques)
Basic : il a t labor dans un cadre pdagogique. (simple et trs li-
mit)
Pascal : langage structur, efficace pour les structures arborescentes (
en hommage au philosophe et mathmaticien franais Blaise Pascale)
C : il ressemble beaucoup au langage Pascal mai il est trs puissant et
ouvert par rapport ce dernier. (efficace pour le traitement des chanes
de caractres)
Visual Basic : ( interfaces graphiques)
Java :(efficace pour des programmes en rapport avec Internet)
Compilateur :
Le compilateur est un programme important charg de traduire un pro-
gramme crit en LE (programme source) en un autre exprim en Lm (pro-
gramme objet). Lordinateur , par la suit, naurait excuter que le pro-
gramme objet.
Interprteur :
linterprteur possde une fonction presque analogue celle du compila-
teur sauf quil traduit et excute le programme instruction par instruction
N.B :
Le compilateur par opposition linterprteur, traduit tout le programme
avant son excution.
16
notions solides que lon retrouve dans tous les autre langage Le PASCAL est
un langage compil, cest dire quil faut :
1. entrer un texte dans lordinateur ( laide dun programme appel EDI-
TEUR),
2. le traduire en langage machine (cest dire en codes binaires compr-
hensibles par lordinateur) : cest la compilation
3. et ventuellement lexcuter sur machine.
Les oprations et les fonctions pouvant tre appliques aux entiers sont,
titre dexemple :
1) +, , DIV, M OD, ABS, IN C, DEC, SQR, SU CC, P RED,
2) oprateurs relationnels : >=, <=, >, <, <>, ...
17
Exemple 3.3.1 :
i) 7DIV 2 = 3 (quotient de la division euclidienne ).
ii) 7M OD2 = 1 (le reste de la division euclidienne).
iii) SQR(3) = 9 (le carr de 3)
Rels :
Les rels, en machine, ne sont en fait quun sous-ensemble de lensable
Q des rationnels. Comme pour les entiers , les rels sont regroups selon
leur grandeur, en cinq types : Real, Single, Double, Extended et Comp. Leurs
intervalles respectif sont :
1. (1)= signe,
2. (2)= partie entire,
3. (3)= partie fractionnaire
4. ()= virgule dcimale
Exemple 3.3.2 : -13.301 ; 205.12 (la mise du signe (+) est facultatif )
*Notation scientifique :
(1) E (2)
Exemple 3.3.3 :
i) 6.1E 10 = 6.1 1010 = 0.00000000061
ii)1.34E5 = 1.34 105 = 134000
18
Ces nombres rels peuvent faire lobjet doprandes pour les opration sui-
vantes :
ABS, SQR, SQRT, SIN, COS, ARCT AN, LN, EXT, ROU N D, T RU N C, <=
, >=, >, <, ....
caractres (CHAR) :
dclaration : VAR liste de variables : CHAR ;
ces variables contiennent UN caractre.CHAR est le type reprsentant tous
les caractres du code ASCII(lettres, chiffres,...). Comme fonctions oprant
sur les CHAR,on cite : ORD, P RED, SU CC, CHR,
Exemple 3.3.4 :
- ORD (caractre) = code ASCII de ce caractre.
- CHR (caractre) = caractre quivalent ce code
- PRED (caractre) = caractre prcdent
- SUCC (caractre) = caractre suivant
Boolens :
Une variable logique ou boolenne ne peut prendre que deux valeurs :TRUE
et FALSE.
Des oprateurs logiques, on rappelle :
* Les oprateurs relationnels(<,>,>=,<=,<>)
* La conjonction AND
* La conjonction OU
* La ngation NOT
Remarque 3.3.1 :
Les cas restants des type scalaires, seront voqus aux prochains chapitres.
19
Mots cls rservs : Ces mots sont propres au langage et ne peuvent
en aucun cas tre redfinis par lutilisateur pour son propre intrt
(identification de ses propres objets ).
Exemple : Program, TYPE, VAR, FUNCTION,PROCEDURE, LA-
BEL, BEGIN, END,...
Mots cls standards : Il sagit de mots prdefinits ; cependant, il
nest pas compltement interdit au programmeur de les adopter pour
reprsenter dautre objet. Cette possibilit est dconseille afin dviter
toute sorte de confusion au sien dun programme.
Exemple : ABS, MOD, DIV,....
Identification dfinis par le programme : Ce sont des identifi-
cateurs que le programmeur, selon la nature de sont programme, peut
introduire pour nommer des objets tels que programme, types, variables,
constantes, fonctions, procdures ....chaque identificateur doit respecter
les conditions suivantes :
son caractre initial doit tre une lettre alphabtique
il ne peut comprendre que des caractre alphanumriques et le trait
de soulignement(_ ).
seuls les 63 premiers caractres qui seront tenus en compte.
Exemple 3.3.6 :
Noms validation
Begin non valide( car cest rserv )
3SOT non valide (lettre initiale est 3)
SOT34AB valide
Dollar $ non valide
I LHAM non valide ( il y a un blanc)
Terre +ciel non valide (il y a + )
jour_nuit valide
Jour-nuit non valide
rayon non valide (il y a )
Remarque 3.3.2 :
Si les 63 premiers caractres sont identiques pour deux identificateurs alors
ces derniers sont exactement gaux cest--dire ils reprsentent le mme objet.
20
dclartion de constantes :
Elle se fait grce au mot cl rserv "CONST " de faon suivante :
CONST
<nom de la constante 1> = sa valeur ;
....
....
<nom de la constante n> = sa valeur ;
Exemple 3.3.7 :
CONST
PI = 3.14 ; {constante relle}
Alpha = 0.22 ; {constante relle}
Beta = A; {constante caractre}
Nom = ASMAE ; {constante chane}
ENT = 19 ; {constante entire}
Dclaration de variables :
Cette dclaration consiste prciser le nom et le type de chaque variable.
Elle sentame toujours par le mot rserv "VAR" et se fait de la manire
illustre ci-dessous :
VAR
<nom de la variable> : type ;
{ou dans le cas de plusieurs variable de mme type}
<nom de la variable1>,<nom de la variable2>....: type ;
Exemple 3.3.8 :
VAR
I, J, R :integer ;
A, B, C : real ;
X, Y, Z : CHAR ;
LG, KX, M, N : BYTE ;
Reponse, Etat,L: BOOLEAN ;
Remarque 3.3.3 :
En Turbo-Pascal, on ne diffrencie pas entre une lettre en majuscule et son
quivalent en minuscule.
21
3.3.5 structure gnrale, d programme :
En gnrale, un programme crit en Turbo-Pascal, possde la structure
syntaxique suivante :
* Lentente du programme nom du programme ;
[ CONST {dclaration de constantes}]
[ TYPE {dclaration de types}]
* Bloc De dclaration [ VAR {dclaration de variables}]
[FUNCTION {dclaration de fonctios}]
[PROCEDURE {dclaration de procedures}]
BEGIN
instruction1 ;
Instructions excutables instruction2 ;
*
ou corps du programme
... ...
instructionn ;
END.
N.B :
Les dclarations mises entre crochets ne sont quoptionnelles ; autrement dit
leur emploi dpend des besoins de lutilisateur en matire de donnes.
Un programme est compos, comme illustr ci-dessus, de trois parties dis-
tinctes :
* lentte :comprend le nom du programme.
* Le bloc de dclaration : Toute dclaration effectue doit figurer lin-
trieur de ce bloc.
* Le bloc dinstructions excutables : Ce bloc, dlimit par begin et end,
comporte lensemble des instructions qui ralisent lobjectif du programme.
Exemple 3.3.9 : un programme simple qui affiche les mots Bonjour. Com-
ment allez-vous ? sur lcran.
N.B : Le mot-cl writeln crit le texte sur lcran.
program MONPREMIER ;
begin
writeln (Bonjour. Comment allez-vous ?)
end.
Remarque 3.3.4 :
1. Si on a utiliser des units, on les appelle directement aprs len-tte
par la clause uses, comme suit : USES nom de lunit 1, nom de
lunit 2, ... ;
2. Tout commentaire est mis entre accolade { ...} ou entre (* ... *) ; il est
ignor lors de la compilation.
22
3. " ;" est appel sparateur dinstructions
4. "." est lindicateur de fin du programme.
Exemple 3.3.10 :
Programme exemp1
CONST
Semaine=7 ;
Mois=30 ;
Electron= -1.6E-19 ;
Ville=ERRECHIDIA ;
Lettre=? ;
VAR
Nbre1, Nbre2, Nbre3 : Integer ;
X, y, z, w, v : Real ;
C : CHAR ;
Answer : Boolean ;
Begin
{programme vide ;}
END.
23
*, +, - : respectivement la multiplication, laddition et la soustraction
entre reels ou entiers.
/ : La division rlle (ex : 5/2=2.5)
Div : La division entire (ex : 5Div2=2)
MOD : Le reste dune division entire (ex : 5MOD2=1).
Ordre de priorit :
ordre de priorit croissant
-
* / MOD DIV
Exemple 3.4.1 :
Droulement de lvaluation de :
Step1 21/2+4*3 Div 2-5 MOD 4 Div 5
Step2 10.5+4*3 Div 2-5 MOD 4 Div 5
Step3 10.5+12 Div 2-5 MOD 4 Div5
Step4 10.5+6-5 MOD 4 Div 5
Step5 10.5+6-1 Div5
Step6 10.5+6-0
Step7 16.5-0
Step8 16.5
Expressions Boolennes :
Une expression boolenne est une criture logique qui peut prendre la va-
leur True ou bien False. Ses oprateur classs suivant leur ordres de priorit,
sont :
Ordre de priorit :
ordre de priorit croissant
-
<=, >=, OR, XOR AND NOT (...)
<, >,
=, <>,
Exemple 3.4.2 :
(X=4) OR (X >= 0) AND (Y <= 0)
Remarque 3.4.1 :
24
Priorit des oprateurs :
On classe les diffrents oprateurs par ordre de priorit, les oprateurs de
plus forte priorit tant raliss avant ceux de plus faible priorit. Voici la
table des priorit classes par ordre dcroissant, les oprateurs sur une mme
ligne ayant une priorit gale.
1) ( ) fonction( )
2) + - not
3) * / div mod and
4) + - or
5) = <> < <= >= >
Variable := valeur ;
"valeur" peut-tre une constante, une variable dj affecte ou une expression
valuable. Si le dernier cas se prsente lexpression sera tout dabord value
puis affecte " variable".
N.B : " variable" et "valeur" doivent avoir le mme type lexception dun
cas o on a une valeur de type entier affecte une variable de type rel.
Exemple 3.4.3 :
Program affectation ;
CONST A=32 ;
VAR X,Y,Z : real ;
I, j : integer ;
BEGIN
X:=40; {on charge X par 40}
Y:= X-3*A; {Y est affecte par une expression}
I := A ; {I est effectu par une constante }
J := A div 3 ;
Z:= J/I+TRUNC(Y)/3;
....
END.
25
Remarque 3.4.2 :
Quelques fonction prdfinies :
TRUNC : La partie entire dun nombre (TRUNC(14.3)=14)
ROUND : lentier le plus proche dun nombre (Round(0.9)=1)
SQR : le carr dun nombre (SQR(4)=16
SQRT : le racine carre dun nombre (SQRT(4)=2)
EXP : lexponentiel dun nombre (exp(x) = ex )
COS : cosinus
SIN : sinus
ARCTAN : arctangente
26
Remarque 3.4.3 :
Les result i (i=1,...,n), aprs excution de linstruction :
"Write(Message ventuel, Result1,..., Resultn) ;", seront affichs lun
cot de lautre.
Si READLN coopre avec READ pour enrichir laction de lecture
alors de mme lcriture est renforce par WRITELN. Celle-ci, aprs
chaque ordre dcriture, fait passer le curseur au dbut de la ligne sui-
vante (retour chariot).
Exemple 3.4.5 :
i) write :
e :=0.1; r:=20.1 ;
write(l"erreur est :,e );
write(le rsultat est :,r );
Aprs excution, on a sur lcran :
Remarque 3.4.4 :
(
write(chose) ;
1. linstruction "writeln (chose) ; " est quivalente :
writeln ;
27
4. si n, dans le cas entier ou rel, est infrieur au nombre de chiffres de
la partie entire, on lignore.
Exemple 3.4.6 :
Program Essai ;
VAR data1,data2 :real ;
Car :CHAR;
i,j : integer ;
Begin
Writeln(donnez votre premire donne :)
Readln (data1) ;
Write (donnez la deuxime :) ;
Readln(data2) ;
i :=trunc (data1+data2) ;
j :=trunc (data1-data2) ;
car:= CHR(abs(l*j));
write (Le caractre qui a pour code ASCII, ABS(I*J), est : , car)
END.
28
Chapitre 4
Instructions de rptition et de
test
Remarque 4.1.1 :
* instruction peu-tre simple ou compose.
* Une instruction est dite compose si elle est constitue de plusieurs
instruction rassembles entre begin et end, sinon elle est simple.
Exemple 4.1.1 :
29
M: real;
Begin
Write(Donner N) ;
Readln(N) ;
I :=0 ;S :=0 ;
While I < N do
begin
S : = S + I;
I :=I+1
END ;
M: =S/N;
Writeln ("la moyenne est :,M :2 :3") ;
Readin
END.
Repeat instruction 1 ;
Instruction 2 ;
...
instruction n ;
until (condition) ;
Exemple 4.1.2 :
Program Bonjour ;
VAR C :CHAR ;
Begin
Repeat
Writeln (Good morning Youssef) ;
Readln ;
Writeln (How are you, Happy ? (Y)es or (N)o) ;
Realdln (C) ;
Until C=Y;
Writeln (Off........!!! Im too !) ;
30
Readln
END.
Remarque 4.1.2 :
Quoique les deux instruction "repeat ..." et " while ... " ralisent la mme
tche : rptition, leurs stratgies de manuvre sont diffrentes. En effet,
deux points non communs peuvent tre clairement nots :
1- while, avant toute excution, teste la vrit de sa condition cependant
repeat neffectue ce test qu la fin de chaque rptition.
2- Lors du droulement de lexcution de while, sa condition est True,
alors que pour repeat cest le cas inverse (la condition est False).
ou bien
Avec :
i) " <var entire > " : cest une variable dite de contrle ; elle doit-tre de
type entier.
ii) " <valmin> " et " <valmax>" : ce sont les valeurs entires, minimale et
maximale de " <var entire > ".
iii) "< instruction>" : peut-tre simple compose.
Exemple 4.1.3 :
Program for-to ;
Uses CRT;
Const Min = 9 ; Max = 15 ;
VAR i,j integer ;
S :real ;
Begin
Clrscr;
S := 0 ;
for i := Min to Max do
31
S := S+1/i ;
J := 30;
for i := 20 to j do
begin
writeln (You are welcome in our world !) ;
Writeln (Please, set down and begin your work !);
End;
S := 0 ;
For j := 15 down to 1 Do
S := S+1/j ;
Writeln (la somme des inverses des entiers allant de 1 15 est, S :2 :3) ;
Readln
END.
Remarque 4.1.3 :
Le nombre de rptition pour FOR est donne lavance, pour repeat et
while, il ne lest pas.
Exemple 4.2.1 :
Program devinette ;
VAR J,C,CC :CHAR ;
Begin
J := O ;
Cc:= P ;
While J = O do
begin
Write (Devinez le caractre cc) ;
Readln (c) ;
32
If c = cc then
writeln (c"est GAGNE !)
else
Writeln (si vous voulez recommencer, tapez O !)
Read (J)
END ;
Readln
END.
(var_test) est une variable ; cas 1,...,cas n, sont les valeurs ventuelles de(var_test).
Remarque 4.2.1 :
i) "CASE ..." rsume les instruction conditionnelles suivantes :
Exemple 4.2.2 :
Program chiffre ;
Var i :integer ;
Begin
Writeln (donnez un chiffre 0...9) ;
Readin (i) ;
33
Case i of
0: writeln(c"est Zro);
1: writeln(c"est Un);
2: writeln(c"est Deux);
3: writeln(c"est Trois);
....
9: writeln(c"est Neuf);
END ;
Readln
END.
34
Chapitre 5
Type nom=valinf..valsup ;
Exemple 5.1.1 :
...
Type mois=1 .. 12; {intervalle mois}
jour=1.. 31; {intervalle jour}
lettre_majus=A .. Z {intervalle alphabet majuscule }
lettre_minus=a.. z {intervalle alphabet minuscule }
chiffre=0..9 ;{intervalle chiffre}
Var m: mois;
j: jour;
Mlettre : lettre_majus;
lettre : lettre_minus ;
c: chiffre;
....
35
5.1.2 Type numr :
il reprsente une liste de constantes dont chacune, automatiquement, se
repre par sa position au sien de cet ensemble. La premire constante corres-
pond la position 0. Le type numr se dclare comme suit :
Exemple 5.1.2 :
Commentaire :
i) Vecteur : cest un nom, titre dexemple, attribu au type ainsi dfini .
ii) Type intervalle ou numr : Il dfinit les indices des composantes du
tableau ou de la matrice.
iii) Type : cest le type des donns ranges le vecteur ou dans la matrice.
Exemple 5.2.1 :
36
Exemple 5.2.2 :
TYPE TABVEC = Array[1..7] of CHAR ;
TABMAT = Array[1..5,1..6] of real ;
TABVECMAT = Array[1..7,1..7,1..10] of integer ;
VAR X,Y : TABVEC ;
Matrice1,Matrice2 :TABMAT ;
VM1,VM2 ,MV3 :TABVECMAT ;
Pour manipuler ou reprsenter les composantes dun tableau, on respecte les
notations suivantes :
X[i] ou X(.i.) avec I =1....7 ( cas du vecteur X dclar ci-avant en
Exmple4.2.2)
matrice1[i,j] ou matrice1 (.i,j.) avec i = 1...5, j = 1...6 (cas de la
matrice dclar en Exmple4.2.2)
VM1[i,j,k] ou VM(.i,j,k.) avec I = 1...7 , j = 1...7 , k = 1...10 (cas
dun vecteur de matrice dclar en Exmple4.2.2
i, j et k sont des variables de type integer, intervalle ou numr. Elles jouent
le rle des indices.
Exemples 5.2.3 :
Exemples1 :
TYPE intervalle = 1..12 ;
semaine=(Lun, MAR, MER, JEU, VEN, SAM, DIM);
Vect1: Array[intervalle] of real;
Vect2: Array[semaine] of integer;
Vect3: Array[A..Z] of CHAR;
MAT: Array[intervalle, semaine, A..Z] of bayte ;
Exemple2 :
Program produit_scalaire;
uses CRT;
const MAX=10;
MIN=1;
VAR V,W : Array[MIN..MAX] of real;
I: integer;
ps: real ;
37
begin
Writeln (saisie des vecteurs V et W);
ps = 0;
For i: = MIN to MAX Do
Begin
write (v(,i:2, =); readln (v[i]);
write (w(,i:2, =); readln (w[i]);
ps:=ps+v[i]*w[i];
END;
Writeln ( Le produit scalaire calcul est:, ps:2:3) Readln
END.
Remarque 5.2.1 :
Pour minimiser la mmoire rserve aux composantes dun tableau dclar,
on adjoint "ARRAY" un mot de compactage, "Packed", comme ci-dessous :
Ou bien:
VAR variable: Packed ARRAY[type intervalle] of type;
ou bien :
VAR variable,..... :string; {dans ce cas la chane peut avoir une longueur
de 255 caractres}
Exemple 5.3.1 :
Program chaine ;
VAR x,y :string[10] ;
i,j : integer ;
38
Begin
Writeln(Entrer une chaine 1) ;
Readln(x) ;
Writeln(Entrer la chaine 2) ;
Readln(y) ;
i=length(x) ;
j=length(y) ;
Writeln(la longueur de la chaine 1 est :, i, et de la chaine 2est :, j);
Writeln(la longueur de, x+y,est : i+j) ;
{si on veut afficher les chaines sur deux colonnes lune cot de lautre}
For i :=1 to 10 do
Writeln(x[i], ,y[i]) ;
Readln
END.
TYPE nom=RECORD
Champ1: type1;
...
Champn: typen;
END;
VAR enregistrement : nom ;
Ou bien :
VAR enregistrement: RECORD
Champ1: type1;
....
Champn: typen;
END;
Avec :
i) nom : nom de type enregistrement ainsi dfini
ii) enregistrement : nom dune variable dclare sous ce mme type
iii) champ1...champn : ce sont les noms des composantes de enregistrement,
dits "champs".
Exemple 5.4.1 :
39
TYPE Etudiant=Record
Nom, prnom: string [10];
Numero: integer;
Note: real
END;
Formation = Record
NBRAN: integer;
Nom:string;
END;
VAR E1,E2: Etudiant;
F1, F2, F3:formation;
Date:record
mois, jours, an : integer
END;
Vect: Array[1..30] of Etudiant;
TYPE nom=Record
Champ1:type1;
.
.
.
case condition : type of
cas1(champs11:type11);
cas2(champs22:type22);
.
.
.
casn(champsnn:typenn);
end;
40
Program DATE ;
TYPE DAT =Record
Jour, mois, annee :integer ;
END ;
VAR DT :DAT ; Begin
DT.jour :=7 ;
DT .mois :=7 ;
DT.annee :=2006;
Writlen(DT.jour, /, DT.mois, /, DT.annee) ;
Readln
END.
Program DATE ;
TYPE DAT = Record
Jour, mois, annee :integer ;
END ;
VAR DT :DAT ;
Begin
With DT do begin
jour :=7 ;
mois :=7 ;
annee :=2006
Writlen(jour, /,mois, /, annee) ;
END ;
Readln
END.
5.5 Ensemble(SET) :
Le type SET est le domaine de tous les ensemble qui seront dclars.
Un ensemble est une collection dlments quelconque mais de types scalaire.
Ces lment ne sont pas manipuls individuellement mais en ensemble. Pour
dclarer des variable de ce type, on procde de la manire suivante :
41
Remarque 5.5.1 :
Type scalaire ne doit pas comporter plus de 256 valeurs (exemple :CHAR,
type intervalle, type numr )
Exemple 5.5.1 :
TYPE lettre = set of CHAR ;
VAR OO,XX,ZZ,alphanum :lettre ;
5.6 Fichier(File) :
Un fichier est une collection dlment homogne. Sa dclaration se fait
comme suit :
Type nom=file of type ;
VAR varfile,...:nom;
Ou bien :
VAR varfile, .... : file of type ;
Avec type : est un type quelconque mais autre que file.
Exemple 5.6.1 :
Technicien= Record
Nom, prenom :string ;
Matricule :integer ;
END ;
VAR Tech :file of technicien ;
42
Annexe A
43
Program LAGRANGE;
{Etant donne un entier n et une fonction continue f,
Le programme interpole la fonction f par un polynme
p de degr n aux points t[0],t[1], ,t[n]
paramtre :
n : degr du polynme p (interpolant de Lagrange)
f : la fonction interpoler
t[j] : est le j-eme point dinterpolation }
uses crt;
Const NMAX=1000;
Var t,y : Array [1..NMAX] of real;
I, J, N, K, M : Integer;
x,tt, pol_k,pol,phi_j :real;
rep:char;
Begin clrscr;
write(donner le nombr de ponts N:);
readln(N);
For I:=0 to N Do
Begin
write(donner x(,i,)=);
readln(t[I]) ;
write(donner f(,i,)=);
readln(y[I]) ;
End;
{ N := 80;
{Les points dinterpolation t[j] sont equidistribues entre -1 et +1}
For I:=0 to N Do
Begin
t[I] := -1+(2*I)/N ;
Writeln(t[I]);
readln;
End;}
rep:=o;
while rep=odo
begin
write(donner x:);
readln(x);
{M:=100;
For K := 0 to M Do
begin
x_k:=-1+(2*K)/M;}
pol:=0;
44
For J := 0 to N Do
{calcule de phi_j (la j_eme fonction de base de Lagrange)
au point x (formule de la polycopie)}
begin
phi_j:=1;
For I := 0 to N Do
begin
If I<>J then
phi_j:={A COMPLETER};
end;
tt:=t[j];
{Evalue p au point x}
pol:=pol+phi_j*y[j] {(3+4*tt*tt-tt);}
end;
pol_k:=pol;
writeln(x=,x, pol_k=,pol_k, fx=,3+4*x*x-x);
write(voulez-vous faire un auter aissai (O)ui ou (N)on?);
readln(rep);
end;
end.
45
Une fois le programme crit et compil. Son excution aura pour consquence
de calculer (dapproximer) (1).
Program trapeze;
{Etant donn un intervalle [a,b] et une fonction continue f,
le programme approche lintgrale de f entre a et b.
Paramtres :
a, b : lintervalle [a, b]
n : lintervalle [a, b] est partitionn en N intervalles
f : la fonction intgrer}
VAR n,i:integer;
a,b,integral,s,h,fx,fa,fb:real;
{Function f(x:real):real;
begin
f:=exp(x)*cos(x);
end;
Function df(x:real):real;
begin
df:= exp(x)*cos(x)-exp(x)*sin(x);
end;}
BEGIN
write(Entrer la valeur de a=);
readln(a);
write(Entrer la valeur de b=);
readln(b);
n :=100 ;
writeln(METHODE DE TRAPEZE);
{writeln(t In(f)\t\t It(f)\t\t Erc\t\t Ern\t\t Ern/Er2n\n");}
writeln(___________________________________________________________);
for i:=1 to 8 do
begin
n=:2*n;
h:=(b-a)/(n+1);
s:=0;
for i:=1 to n do {Formule de trapze A COMPLETER }
fx:=exp(a+i*h)*cos(a+i*h);
s:=s+fx;
fa:=exp(a)*cos(a);
fb:=exp(b)*cos(b);
intgral:={A COMPLETER };
46
Writeln(Integral, ,-12.0703463164-Integral);
writeln(__________________________________________________________);
end;
readln;
END.
47
BEGIN
write(Entrer la valeur de a=);
readln(a);
write(Entrer la valeur de b=);
readln(b);
n :=100 ;
writeln(METHODE DE SIMPSON);
{printf("\t In(f)\t\t It(f)\t\t Erc\t\t Ern\t\tErn/Erc\n");}
writeln(__________________________________________________________);
for i:=1 to 8 do
begin
p:=n;
n:=2*n;
h:=(b-a)/(2*p);
S:=0;
L:=0;
If p>1 then {Formule de simpson A COMPLETER}
begin
for i:=1 to p-1 do
S:={A COMPLETER};
End;
for j:=1 to p do
L:={A COMPLETER};
Intgral:=(h/3)*(f(a)+f(b)+2*S+4*L);
writeln(Integral, ,-12.0703463164-Integral);
writeln(___________________________________________________________);
end ;
readln ;
END.
48
gnralement plus proche du zro de la fonction, et la mthode peut tre r-
itre.
En pratique, voici les oprations poser pour f : [a, b] IR, fonction dfi-
nie et drivable et sur lintervalle [a, b], et valeurs relles. Choisissons une
valeur arbitraire x0 (le plus prs du zro est le mieux). On dfinit alors, par
rcurrence pour chaque nombre naturel n :
49
et les 12 premiers chiffres de cette valeur concident avec les 12 premiers
chiffres du vrai zro.
Program newton;
uses crt;
Var x0, x, eps,fx0,dfx0:real;
I, ITMAX: Integer;
Begin clrscr; write(donner x0=);
readln(x0);
write(donner eps=);
readln(eps);
write(donner itmax=);
readln(itmax);
for i:=1 to itmax do
begin
fx0:=cos(x0)-x0*x0*x0;
dfx0:=-sin(x0)-3*x0*x0;
x:=x0-fx0/dfx0;
if abs(x-x0)<=eps then
begin
writeln(racine=,x);
break;
end
else
begin
if i=itmax then
writeln(la methode nest pas satisfaite)
else
begin
x0:=x;
writeln(i, , x);
end;
end;
end;
50
readln;
End.
51