Professional Documents
Culture Documents
Prsent par :
Mohamed Derouich
.
.
.
.
.
.
:
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
3
5
6
6
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
8
9
9
9
12
12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
14
14
14
15
15
15
16
16
16
17
17
19
3.4
3.3.4
3.3.5
Outils
3.4.1
3.4.2
3.4.3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
22
23
23
25
26
.
.
.
.
.
.
.
29
29
29
30
31
32
32
33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
35
36
36
38
39
41
42
un polynme
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
43
45
45
47
48
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chapitre 1
Structure des ordinateurs
1.1
Systme informatique
1.1.1
Introduction :
1.1.2
Systme informatique :
? 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 instructions quon lui demande reus du directeur (cest le programme).
Il note certain information sur les donnes quil va traiter (Mmorisation 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)
1.1.3
Le matriels informatique :
1.2
1.2.1
Systme dexploitation :
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.
1.2.2
Les fonctions majeurs dun systme dexploitation sont la gestion des ressources (Mmoires, C.P.U, fichiers partags, ...), gestion des donnes, gestion
des tches et fournir une interface de communication entre lutilisateur et
lordinateur.
6
Gestion des ressources : Il sagit de lallocation et libration de ressources 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 lorganisation 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 excuter en utilisant un langage de commande bien dfinit.
Interface Menu : permet lutilisateur de slectionn une commande de menus, la slection se fait par souris ou clavier.
Interface graphique : gnralement est constitue des lments suivantes : 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,...
Chapitre 2
Gnralits sur linformation
2.1
Dfinition de linformatique
2.2
Linformation
Information est tout forme de donnes reprsentant un ou plusieurs renseignement . 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.
2.3
2.3.1
Le codage de linformation
Dfinitions :
2.3.2
la base 10 :
Habituellement, on utilise la base 10 pour reprsenter les nombres, cest-dire que lon crit laide de 10 symboles distincts, (les chiffres 0 1 2 3 4 5
6 7 8 9).
Donc pour un nombre x = an an1 a1 a0 avec ai {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
on a : x = an an 1 a1 a0 =
n
X
ai 10i
i=0
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
n
X
ai bi
i=0
11
2.3.3
pour passer de base 10 vers une base quelconque on procde par divisions
successives. On divise le nombre par la base , puit le quotient par la base,
et ainsi de suite jusqu a lobtention dun quotient nul. la suite des restes
obtenus correspond aux chiffres dans la base vise,
Exemple 2.3.2 : soit convertir (44)10 vers la base 2 :
44 = 22 2 + 0
22 = 11 2 + 0
11 = 5 2 + 1
5=22+1
2=12+0
1=02+1
=
=
=
=
=
=
a0
a1
a2
a3
a4
a5
=0
=0
=1
=1
=0
=1
2.3.4
Laddition en binaire :
Laddition en binaire se fait avec les mmes rgles quen dcimale : On
commence additionner les bits de poids faible (les bits de droite) puis on a
des retenues lorsque la somme de deux bits de mmes poids dpasse la valeur
de lunit la plus grande (dans le cas du binaire : 1) ; cette retenue est reporte
sur le bit de poids plus fort suivant... Par exemple : 01101 + 01110 = 11011
(dcimal 13 + 14 = 27)
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 systme 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
0
0
0 1
1 0
1
0
1
1
0
1
1
1
0
1
13
0 1
1 0
0 1 0
1
1 1 0
Chapitre 3
Introduction la programmation
Pascal
3.1
Introduction :
Un ordinateur est une machine qui excute un certain nombre doprations 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 effectuer lun aprs lautre. Le grand avantage de lordinateur est sa rapidit.
Par contre, cest le programmeur qui doit TOUT faire. Lordinateur ne comprenant 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
Langages de programmation
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 programmation : langage machine interne, langage machine externe et langage volu.
Dfinition 3.2.2
Un programme est une suite dinstructions lmentaire, qui vont tre excutes 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 information 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 programmation.
3.2.2
3.2.3
Ce langage possde exactement la mme structuration que le langage machine interne lexception dune diffrence au niveau de la reprsentation
de ses instructions. Les oprations de ces dernires, dans le langage machine
interne sont reprsentes par des codes hexadcimaux ou binaires, alors que
dans le langage machine externe elles sont symbolises par des mnmonique
significatifs.
Exemple 3.2.1
Addition := ADD ; soustraction : = SUB ; Comparaison :=CMP.
3.2.4
Ils sont appels aussi langage de haut niveau. Leur degr dvolution est
maximum (trs proche des langage naturels. Les symboles mis en jeu, sont
plus explicite que ceux de langage machines antrieurement vus.
15
3.2.5
3.2.6
Systmes de traduction :
Assembleur :
Cest un programme qui convertit ou traduit une squence dunstrictions
(programme du LME en un programme du LMI (directement excutable par
lordinateur)
Compilateur :
Le compilateur est un programme important charg de traduire un programme crit en LE (programme source) en un autre exprim en Lm (programme objet). Lordinateur , par la suit, naurait excuter que le programme objet.
Interprteur :
linterprteur possde une fonction presque analogue celle du compilateur sauf quil traduit et excute le programme instruction par instruction
N.B :
Le compilateur par opposition linterprteur, traduit tout le programme
avant son excution.
3.3
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 EDITEUR),
2. le traduire en langage machine (cest dire en codes binaires comprhensibles par lordinateur) : cest la compilation
3. et ventuellement lexcuter sur machine.
3.3.1
Types de donnes :
Une variable est une zone dans la mmoire vive de lordinateur, dote
dun nom et dun type. Le nom de la variable permet daccder au contenu
de la zone mmoire ; le type spcifie la nature de ce qui peut tre stock dans
la zone mmoire (entier, rel, caractre, etc..). Pascal supporte quatre types
de variables de base. Ces types sont :
1. integer (entier)
2. char (caractre)
3. boolean (boolen)
4. real (rel)
3.3.2
entiers :
On appelle variable entire, une variable dont le contenu est une valeur
entire (dont lcriture ne ncessite pas lemploi de virgule). En turbo-pascal,
on distingue, pour les entiers, cinq types diffrent : INTEGER, LONGINT,
SHORTINT, BYTE et WORD. Et chaque type dfinit un ensemble dentiers
born. Ainsi, les intervalles associs chacun deux sont :
Dsignation
Integer
Byte
Word
Shorting
longint
Bornes
[-32 768, 32 767]
[0 ,255]
[0 , 65535]
[-128 , 127]
[-2147483648 , 2147483647]
Place en mmoire
2 octets
1 octet
2 octets
1 octet
4 octets
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 :
Dsignation
real
sigle
double
Extended
Comp
Bornes
[2.9E-39 , 1.7E38]
[1.5E-45 , 3.4E38]
[5.0E-324 , 1.7E308]
[1.9E-4951 , 1.1E4932]
[-2E+063+1, 2E+063+1]
Place en mmoire
6 octets
4 octets
8octets
10 octets
8 octets
(2)
(3)
1. (1)= signe,
2. (2)= partie entire,
3. (3)= partie fractionnaire
4. ()= virgule dcimale
Exemple 3.3.2 : -13.301 ;
*Notation scientifique :
(2)
Ces nombres rels peuvent faire lobjet doprandes pour les opration suivantes :
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
Exemple 3.3.5 : Lexpression, (condition 1) AND (condition 2), est TRUE
si (condition 1) et (condition 2) sont simultanment TRUE sinon elle est
FALSE.
Remarque 3.3.1 :
Les cas restants des type scalaires, seront voqus aux prochains chapitres.
3.3.3
Identification dobjets :
19
validation
non valide( car cest rserv )
non valide (lettre initiale est 3)
valide
non valide
non valide ( il y a un blanc)
non valide (il y a + )
valide
non valide
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.
3.3.4
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
* Lentente du programme
* Bloc De dclaration
nom du programme ;
BEGIN
instruction1 ;
Instructions excutables
ou corps du programme
instruction2 ;
... ...
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 distinctes :
* lentte :comprend le nom du programme.
* Le bloc de dclaration : Toute dclaration effectue doit figurer lintrieur 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. Comment allez-vous ? sur lcran.
N.B : Le mot-cl writeln crit le texte sur lcran.
program MONPREMIER ;
begin
writeln (Bonjour.
end.
Comment allez-vous ?)
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.4
Outils de communication
3.4.1
Expression scalaires :
Expression arithmtique :
une expression arithmtique est une reprsentation mathmatique constitue doprateur et doprandes arithmtiques (rels ou entiers). Son valuation seffectue en respectant les rgles suivantes :
1. Loprateur le plus prioritaire est le premier tre excut.
2. Si deux oprateurs ont le mme ordre de priorit, alors celui de gauche
est execut le premier.
3. Un oprateur mis entre parenthses, est prioritaire.
Les oprateur aithmques :
23
* / 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 valeur 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 :
? La rgle considre pour lvaluation des expressions arithmtique reste
valable pour les expressions boolennes.
? Pour rendre plus prioritaire une opration. Il suffit de lencadrer par
des parenthses.
24
3.4.2
( ) fonction( )
+ - not
* / div mod and
+ - or
= <> < <= >= >
Instructions de base :
Affectation :
le signe daffectation en Turbo Pascal est " := " et on a linstruction suivante :
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
CONST
VAR
affectation ;
A=32 ;
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
3.4.3
Lecture(Read) :
Linstruction de lecteur en Turbo Pascal scrit :
Read (VAR1, VAR2,...,VARn) ;
O VAR1, VAR2, ....,VARn sont les noms des variables lire .
A "READ", sajoute une autre instruction dite Readln qui assure la fonction
de READ et le dplacement du curseur la tte de la ligne suivante. Sa
syntaxe est pareille celle de READ :
READLN (VAR1, ....,VARn) ;
Exemple 3.4.4 :
Cas 1 :
READ(X,Y) ; READ(Z ,U,V) ;
A lexcution, on entre la ligne (1) : 3 4 5 6 8 entre ou Aprs excution : X=3, Y=4, Z=5, U=6 et V=8.
Cas2 :
READLN(X,Y) ; READ(Z ,U,V) ;
A lexcution : on on tape au clavier :
Ligne(1) : 3 4 5 6 8 entre ou Ligne(2) : 10 11 30 entre ou Aprs excution : X=3, Y=4, Z=10, U=11 et V=30.
Ecriture(write) :
La syntaxe de cette instruction est donne par :
Write(Message ventuel, Result1,..., Resultn) ;
Avec :
* Result1,..., Resultn sont des rsultats ventuels que, peut-tre, il faudrait afficher sur lcran.
* Message ventuel, cest un commentaire accompagnant les rsultats
dans un but dorientation ou dclaircissement.
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 suivante (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 :
Lerreur est 0.10000 E00 Le rsultat est : 20.1000
ii) writeln :
e :=0.1 ;r :=20.1 ;
writeln(l"erreur est :, e );
writeln(le rsultat est :, r );
Aprs excution, on a sur lcran :
Lerreur est 0.10000 E00
le rsultat est : 20.1000
Remarque 3.4.4 :
(
write(chose) ;
writeln ;
28
Chapitre 4
Instructions de rptition et de
test
Ce sont des instructions qui contrlent le nombre de rptition dexcution
dune ou de plusieurs autre instructions, suite un teste de validation dune
condition cl. On en distingue "while... do ..." , "Repeat ... until ... ", et "For
... do ... ". Aussi, existe-il dautres instruction qui permettent le contrle
dune simple excution (sans rptition) toujours en se rfrant la vrit
dune condition, telles que : "if ... then ... else ...",...
4.1
4.1.1
Instructios de rptition :
While... do... :
Cette instruction signifie "tant que ... faire". Sa syntaxe est donne cidessous par :
While (condition) do (instruction) ;
Elle permet de rpter lexcution de (instruction) tant que (condition)
reste valide
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 :
Program moyenne ;{ programme qui calcule la moyenne des N premiers entiers}
VAR S,I,N : integer ;
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.
4.1.2
Repeat... until... :
;
;
;
;
Elle permet comme le WHILE de rpter lexcution des (instructions) jusqu ce que (condition) soit valide (true).
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).
4.1.3
Lorsquon sait lavance le nombre de fois lexcution dune ou de plusieurs instructions sera rpte, on fait appel lordre " For... Do... ". Son
emploi se fait comme suit :
For <var entire > : = <valmin> to <valmax> Do
<instruction> ;
ou bien
For <var entire > : = <valmax> downto <valmin > Do
<instruction> ;
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.
4.2
4.2.1
Instructions conditionnelles :
If ... Then ... Else ...
Cest la traduction de "Si ... alors ... sinon ...". Sa syntaxe est donne
par :
If (condition) then (instruction 1) else (instruction 2) ;
Si (condition) est True, (instruction 1) sera excute sinon (instruction 2) le
sera. Dans le cas o (instruction 2) nexiste pas ; "If ...Then ... Else ... "
se rduit "If (condition) Then (instruction 1) ;"
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.
4.2.2
Cest une gnralisation de linstruction "If... Then ... Else...". Son intrt rside dans le fait quelle permet de tester et dexcuter une instruction
parmi plusieurs. Son mode demploi est donn ci-dessous :
CASE (var_test) of
cas 1 : instruction 1 ;
cas 2 : instruction 2 ;
...
cas n : instruction n;
else instruction (n+1)
END;
ou
case (var_test) of
cas 1:instruction 1 ;
cas 2:instruction 2 ;
...
cas n : instruction n
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 :
if var_test = cas 1 then instruction 1 ;
if var_test = cas 2 then instruction 2 ;
....
if var_test = cas n then instruction n ;
ii) Remarquez quil ny a pas de ; devant le ELSE.
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
1: writeln(c"est
2: writeln(c"est
3: writeln(c"est
....
9: writeln(c"est
END ;
Readln
END.
Zro);
Un);
Deux);
Trois);
Neuf);
34
Chapitre 5
Types de donnes structurs.
Ce sont des types de donnes composs de types lementaires tels que
integer, real, Char, type numr, type intervalle. Certains dentres eux reprsentent des informations homogne ; quant aux autres, leurs donnes sont
htrognes. On en distingue le type tableau (ARRAY), le type enregistrement
(RECORD), le type fichier (file) .....
5.1
5.1.1
5.1.2
Type numr :
5.2
Exemple 5.2.2 :
TYPE
VAR
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 :
TYPE Nom =Packed ARRAY[type intervalle] of type;
VAR
variable: Nom;
Ou bien:
VAR
5.3
ou bien :
VAR variable,..... :string; {dans ce cas la chane peut avoir une longueur
de 255 caractres}
avec entier varie entre 1 et 255
Comme oprateurs sapplique sur les chanes, on note + (runion) , =, <>,
<, >, >=, <= (comparaison) , lenght(longueur de la chane).
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.
5.4
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;
Pour manipuler un champ, on lappelle par : "(nom de la variable enregistrement).(nom du champ)", tels que par exemple
Date.mois, F1.NBRAN, E1.Note ...
Dans le cas ou certains champs sont conditionnellement dclars, on agit
pour mentionner cet aspect comme ci-dessous :
TYPE
nom=Record
Champ1:type1;
.
.
.
case condition : type of
cas1(champs11:type11);
cas2(champs22:type22);
.
.
.
casn(champsnn:typenn);
end;
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.
Exemple 5.4.3 : Avec "with" :
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 :
Type
VAR
Ou bien:
VAR
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 ;
Soit par exemple :
XX :=[A,C,E] ;
YY:=[U,V,O] ;
ZZ :=[A,Z,K] ;
OO :=[ ] ;{ensemble vide}
Alphanum :=[A..Z,a..z,0..9] ;
Les oprateur quon peut applique aux ensembles, sont : + (union), * (intersection), - (diffrence), = (galit), <> (ingalit),<= ou >=(inclusion) et
IN ( appartence )
XX+YY=[A,C,E,U,V,O]
XX*ZZ=[A],
XX*YY=[ ]
XX*ZZ XX+YY est true
A in XX est true
XX=YY est false, XX<>YY est true
5.6
Fichier(File) :
Annexe A
Exemples du calcul numrique
A.1
Position du problme :
Le but de cet exercice est de complter un programme permettant dinterpoler
une fonction continue par un polynme (sect. 1.2, 1.3, 1.4 de la polycopie du
calcul numrique). Soit f : [a, b] IR une fonction continue donne et soit
t0 < t1 < t2 <, , < tn , (n+1) points de [a,b]. On cherche un polynme p
de degr n tel que
P (tj ) = f (tj ), 0 <= j <= n.
Daprs le cours le polynme p est donn par :
p(t) =
n
X
f (tj )j (t),
j=0
n
Y
(t ti )/(tj ti )
i=0
i6=j
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.
A.2
A.2.1
Intgration numrique
Formule du trapze
Position du problme :
Soit f : [a, b] IR une fonction continue donne. Le but de cet exercice est
de complter et dutiliser un programme permettant dapproximer
Z b
a
f (x)dx(1)
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.
A.2.2
formule de Simpson
Position du problme :
Soit f : [a, b] IR une fonction continue donne. Le but de cet exercice est
de complter et dutiliser un programme permettant dapproximer
Z b
a
f (x)dx(1)
Simpson;
{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,p,j:integer;
a,b,integral,S,L,h: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);
{-2*exp(x)*(cos(x)+sin(x));} 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.
A.3
Mthode de Newton
Position du problme :
Le but de cet exercice est de complter et dutiliser un programme permettant
de rsoudre lquation f (x) = 0 grce la mthode de Newton.
La mthode
Lapproche graphique est la suivante : On choisit une valeur dabscisse raisonnablement proche du vrai zro. On remplace alors la courbe par sa tangente
et on calcule le zro de lapproximation affine associe la tangente (ce qui
se ralise facilement avec lalgbre lmentaire). Ce zro de la tangente sera
48
En pratique, voici les oprations poser pour f : [a, b] IR, fonction dfinie 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 :
xn+1 = xn f (xn )/f 0 (xn )
o f 0 dsigne la drive de la fonction f.
On peut prouver que, si f 0 est continue et si le zro inconnu a est isol, alors
il existe un voisinage de a tel que pour toutes les valeurs de dpart x0 dans
ce voisinage, la suite (xn ) va converger vers a. De plus, si f 0 (a) 6= 0, alors
la convergence est quadratique, ce qui signifie intuitivement que le nombre de
chiffres corrects est approximativement doubl chaque tape.
Travail demand :
A partir du programme Newton et la donne de f, x0 , ce programme rsoud
lquation f (x) = 0. Ce programme est incomplet, en particulier vous devez
programmer la formule (2). Exemples Considrons le problme de trouver
le nombre positif x vrifiant cos(x) = x3 . Reformulons la question pour
introduire une fonction devant sannuler : on recherche le zro de f (x) =
cos(x) x3 .
La drivation donne f 0 (x) = sin(x) 3x2 .
Comme cos(x) 1 pour tout x et x3 > 1 pour x > 1, nous savons que notre
zro se situe entre 0 et 1. Nous essayons une valeur de dpart de x0 = 0, 5.
49
readln;
End.
51