Sunteți pe pagina 1din 27

UNIVERSITE DE CORSE - PASQUALE PAOLI

Facult des Sciences et Techniques

Licence Sciences et Technologies - 1re Anne

Fondamentaux Informatique

Travaux Dirigs

TD n1 : Bases de lalgorithmique
TD n2 : Structures Conditionnelles
TD n3 : Structures Itratives
TD n4 : Les Tableaux
TD n5 : Les Fonctions
TD n6 : Initiation a la programmation Web
TD n7 : A lintrieur dun ordinateur

Enseignant : Christophe Paoli


Charg de TD et TP : Paul-Antoine Bisgambiglia
Charg de TP : Stphane Garredu

http://www.ent-montecristo.org/paul-antoine2.bisgambiglia/

Anne 2007 - 2008


TD n1 : Bases de lalgorithmique

Objectifs de ce TD :
Les exercices proposs dans le cadre de ce TD concernent la rdaction et la comprhension
dalgorithme simples, manipulant les premiers concepts tels que labstraction, lnonc dun
problme, lidentification des parties importantes de lalgorithme, lutilisation dun
formalisme rigoureux bas sur la dfinition du pseudo-langage prsent en cours.

Exercice 1.1 : Trace dalgorithme


Soit lalgorithme suivant :
Algorithme simplePourTrace
Rle : permettre la ralisation dune trace pour voir si les affectations
sont comprises
Dclaration : x, y : entier
Dbut
x 12
y x + 4
x 3
Fin

Effectuez la trace de cet algorithme :


Variables x y
Instructions
x 12

y x + 4

x 3

Exercice 1.2
Quelles seront les valeurs des variables A, B et C aprs excution des instructions suivantes ?

Variables A, B, C en Entier
Dbut
A5
B3
CA+B
A2
CBA
Fin

Aprs La valeur des variables est ?


A5 A= B= C=
B3 A= B= C=
CA+B A= B= C=
A2 A= B= C=
CB-A A= B= C=

Exercice 1.3
Quelles seront les valeurs des variables A et B aprs excution des instructions suivantes ?
Variables A, B en Entier
Dbut
A5
B2
AB
BA
Fin

Moralit : les deux dernires instructions permettent-elles dchanger les deux valeurs de B et
A ? Si lon inverse les deux dernires instructions, cela change-t-il quelque chose ?

Aprs La valeur des variables est ?


A5 A= B=
B2 A= B=
AB A= B=
BA A= B=

Exercice 2.1 : Type et valeur des expressions


Quel doit tre le type dclar des variables rsultats pour que les expressions suivantes soient
correctement types et puissent tre values ? Une fois trouv le type, valuez les
expressions.
a 2+3*4 e concatene("abc","def")
b 2.0+3*4
c vrai et (faux ou vrai) f "Gilles" < "Jean"
d (2 < 3) et (4 > 5) g 123 > "coucou"

Exercice 2.2
Quel rsultat produit le programme suivant ?
Variables val, double numriques
Dbut
Val 231
Double Val * 2
Ecrire Val
Ecrire Double
Fin

Exercice 2.3
Ecrire un programme qui demande un nombre lutilisateur, puis qui calcule et affiche le
carr de ce nombre.
Exercice 3 : Expressions mathmatiques
Traduire les expressions mathmatiques suivantes en pseudo-code algorithmique (noubliez
pas de faire les dclarations ncessaires) :
2a 3
+4
bc 2d 42 2
x= y = 2a +4 z= w = b 2 4ac
3a a d

Exercice 4 : Calcul de taxes


Ecrivez un algorithme qui permette lutilisateur dune station de travail de calculer le prix
TTC, partir dun prix hors taxes frapp au clavier de la station. Le taux de la taxe tant fix
19, 6%.

Exercice 5 : Permutation circulaire de deux entiers


Soient deux entiers X et Y, crire un algorithme permettant deffectuer une permutation
circulaire : la valeur de X doit tre place dans Y et la valeur de Y dans X.

Exercice 6 : Permutation circulaire de trois entiers


Soient trois entiers X et Y et Z, crire un algorithme permettant deffectuer une permutation
circulaire : la valeur de X doit tre place dans Z et la valeur de Y dans X et la valeur de Z
dans Y.

Exercice 7 : Conversion en heures, minutes, secondes


crire un algorithme qui demande lutilisateur la valeur dune dure exprime en seconde et
qui affiche sa correspondance en Heures, Minutes, Seconde.
Exemple : 3800 sec = 1 heure 3 min 20 sec
Rappel : calcul du quotient dune division (27 div 4 = 6) et calcul du reste dune division (27
mod 4 = 3)
TD n2 : Structures Conditionnelles

Objectifs de ce TD :
Les exercices proposs dans le cadre de ce TD concernent la rdaction et la comprhension
dalgorithmes simples utilisant les structures conditionnelles.

Exercice 1 : Excution dun algorithme


a,b,c et d sont quatre variables numriques. Donnez les valeurs finales de a,b,c et d aprs
excution de lalgorithme suivant, les valeurs initiales sont :
si ((a>0) ou (b>c)) et ((d>a) ou (d<5))
alors
Initialisation Apres excution a0
a b c d a b c d db+c
Cas 1 5 3 4 6 sinon
ca-b
Cas 2 1 3 4 3 si (c>0)
Cas 3 -1 -2 -4 3 alors
Cas 4 -1 -2 4 3 d-d
finsi
Cas 5 -1 3 4 6 b0
finsi

Exercice 2.1 : Calcul de la valeur absolue dun nombre


Calculer la valeur absolue dun nombre rel non nul demand lutilisateur.

Exercice 2.2
Ecrire un algorithme qui demande un nombre lutilisateur, et linforme ensuite si ce nombre
est positif ou ngatif (on laisse de ct le cas o le nombre vaut zro).

Exercice 2.3
Ecrire un algorithme qui demande deux nombres lutilisateur et linforme ensuite si leur
produit est ngatif ou positif (on laisse de ct le cas o le produit est nul). Attention toutefois
: on ne doit pas calculer le produit des deux nombres.

Exercice 2.4
Ecrire un algorithme qui demande un nombre lutilisateur, et linforme ensuite si ce nombre
est positif ou ngatif (on inclut cette fois le traitement du cas o le nombre vaut zro).

Exercice 2.5
Ecrire un algorithme qui demande deux nombres lutilisateur et linforme ensuite si le
produit est ngatif ou positif (on inclut cette fois le traitement du cas o le produit peut tre
nul). Attention toutefois, on ne doit pas calculer le produit !
Exercice 2.6
Ecrire un algorithme qui demande lge dun enfant lutilisateur. Ensuite, il linforme de sa
catgorie :

"Poussin" de 6 7 ans
"Pupille" de 8 9 ans
"Minime" de 10 11 ans
"Cadet" aprs 12 ans

Peut-on concevoir plusieurs algorithmes quivalents menant ce rsultat ?

Exercice 3.1 : Test boolen


Ecrire un algorithme qui permet de lire 3 nombres entiers n1, n2 et n3 et qui permet daffecter
la valeur vrai une variable boolenne Ok si les deux nombres n1 et n2 sont plus grands
que 15 et si n3 est positif.

Exercice 3.2
Les habitants de Korti paient limpt selon les rgles suivantes :

les hommes de plus de 20 ans paient limpt


les femmes paient limpt si elles ont entre 18 et 35 ans
les autres ne paient pas dimpt

Le programme demandera donc lge et le sexe du Kortititen , et se prononcera donc


ensuite sur le fait que lhabitant est imposable.

Exercice 4 : Obtention dun module


Ecrire un algorithme qui permet dimprimer le rsultat dun tudiant un module sachant que
ce module est sanctionn par une note doral de coefficient 1 et dune note dcrit de
coefficient 2. La moyenne obtenue doit tre suprieure ou gale 10 pour valider le module.
Lalgorithme devra afficher reu si le module est valid ou refus sinon.

Exercice 5 : trouver les 3 plus petits nombres parmi 4


Soient trois nombres distincts x, y et z classs par ordre croissant (donns par lutilisateur au
clavier) et un nombre quelconque n (galement donn par lutilisateur). Afficher les 3 plus
petites valeurs de ces 4 variables.

Exercice 6 : Max et min


Soient deux nombres entiers x et y. Rangez dans x la plus petite valeur et dans y la plus
grande. Affichez la plus petite puis la plus grande.
Exercice 7 : Calcul dun salaire
Ecrire un algorithme permettant de calculer le salaire dun employ pay lheure partir de
son salaire horaire et du nombre dheures de travail. Les rgles de calcul sont les suivantes : le
taux horaire est major pour les heures supplmentaires : 25% au-del de 160h et 50% au-del
de 200h.

Exercice 8 : Rsolution dune quation du second degr ax+bx+c


crire un algorithme qui demande lutilisateur la valeur de a,b et c et indique si elles
existent les ventuelles solutions.
Rappel : Calcul du discriminant = b 2 4ac
Si < 0 , pas de solution relle
b
Si = 0 , une solution pour x =
2a
b+
Si > 0 , deux solutions, x1 =
2a
TD n3 : Structures Itratives

Objectifs de ce TD :
Les exercices proposs dans le cadre de ce TD concernent la rdaction et la comprhension
dalgorithmes simples utilisant les structures itratives (rpter jusqu, tant que, et pour).

Exercice 1 : trace dun algorithme


Excutez les algorithmes partiels suivants sachant que toutes les dclarations ncessaires ont
t pralablement effectues et dterminez les valeurs qui seront affiches l'cran.

a 9
x 10
tant que x > 0 faire x 0
rpter
x x - 3
finTantQue x x + a
ecrire(x) jusqu' x > 20
ecrire (x)

n 1
tant que n < 10 rpter
lire(v) //on lira 5, -2, 5
n n + 2 jusqu v>0
finTantQue ecrire("OK valeur positive")
ecrire ("n ='", n)

n 4
a 0 n 4
pour i de 1 n faire a 0
lire(x) //on lira 1,4,6,9 pour i de 1 n faire
si x > 5 alors lire(x) //on lira 1,4,6,9
a a + x a a + x
finSi finPour
finPour ecrire(a)
ecrire(a)

Exercice 2 : correction dextraits de code


Expliquez pourquoi les algorithmes partiels suivants sont faux ou mal conus et proposez une
correction (sachant que toutes les dclarations ncessaires ont t pralablement effectues).
x 0 pour i de 1 7 faire a 0
rpter lire (x) s 0
x x + 2 si x > 0 alors tant que a = 0 faire
jusqu' x = 23 b b + 1 lire (x)
ecrire (x) finSi s s + 1
finPour finTantQue
ecrire (s)

Exercice 3.1 : Boucle


Ecrire un algorithme qui demande lutilisateur un nombre compris entre 1 et 3 jusqu ce
que la rponse convienne.
Exercice 3.2
Ecrire un algorithme qui demande un nombre compris entre 10 et 20, jusqu ce que la
rponse convienne. En cas de rponse suprieure 20, on fera apparatre un message : Plus
petit ! , et inversement, Plus grand ! si le nombre est infrieur 10.

Exercice 3.3
Ecrire un algorithme qui demande un nombre de dpart, et qui ensuite affiche les dix nombres
suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres
de 18 27.

Exercice 3.4 : Calcul de la somme des n premiers entiers


Calculer la somme des entiers de 1 N. N est un entier lu au clavier et suppos N>=1. Vous
crirez trois algorithmes, en utilisant les trois boucles rptitives.

Exercice 4 : Calcul de factorielle


Ecrire un algorithme qui calcule la factorielle d'un nombre entr au clavier.
On rappelle que: 0! = 1
n! = n * (n-1)!

Exercice 5 : calcul de moyenne


Ecrire un algorithme qui demande l'utilisateur une suite de nombres, reprsentant des
mesures ne pouvant qu'tre strictement positives. L'utilisateur ne compte pas le nombre de
mesures saisir, mais signale qu'il a termin en entrant un nombre ngatif ou nul.
L'algorithme affiche alors le nombre de mesures saisies, et leur moyenne arithmtique.

Exercice 6 : Division par soustraction


Ecrire un algorithme permettant de diviser lentier positif ou nul A par lentier positif B.
Exemple : on veut diviser 20 par 3

20 3 = 17 1
17 3 = 14 2 2 constitue le reste.
14 3 = 11 3 Le quotient est le nombre de
11 3 = 8 4 fois o on a pu retrancher 3
83=5 5 20 (6 fois)
53=2 6
Dune manire gnrale, diviser A par B, cest trouver Q et R positifs ou nuls tels que :
A = BQ + R avec R<B

Exercice 7 : Diviseurs dun nombre


Ecrire un algorithme permettant de lire un nombre entier N, plus grand que 1 et de trouver
tous ses diviseurs. Remarque : utiliser la primitive modulo (mod) qui permet de calculer le
reste de la division de deux entiers.
Exercice 8 : Calcul des membres dune suite
Soit une suite dfinie de la manire suivante :
U1 = 5
Un+1 = 2*Un 3
Ecrire un algorithme qui demande de donner une valeur N et qui affiche les N premiers
membres de cette suite.

Exercice 9 : Tierc
crire un algorithme qui permette de connatre ses chances de gagner au tierc, quart, quint
et autres impts volontaires.
On demande lutilisateur le nombre de chevaux partants, et le nombre de chevaux jous. Les
deux messages affichs devront tre :
Dans lordre : une chance sur X de gagner
Dans le dsordre : une chance sur
Y de gagner X et Y nous sont donns par la formule suivante, si n est le nombre de chevaux
partants et p le nombre de chevaux jous (on rappelle que le signe ! signifie "factorielle",
comme dans l'exercice 5.6 ci-dessus) :
X = n ! / (n - p) !
Y = n ! / (p ! * (n p) !)
NB : cet algorithme peut tre crit dune manire simple, mais relativement peu performante.
Ses performances peuvent tre singulirement augmentes par une petite astuce. Vous
commencerez par crire la manire la plus simple, puis vous identifierez le problme, et
crirez une deuxime version permettant de le rsoudre.
TD n4 : Les Tableaux

Objectifs de ce TD :
Les exercices proposs dans le cadre de ce TD concernent la rdaction et la comprhension
dalgorithmes simples pour la cration et la manipulation de structures de donnes de type
tableau.

Rappels :

Utilit des tableaux :

Imaginons que dans un programme, nous ayons besoin simultanment de 12 valeurs (par
exemple, des notes pour calculer une moyenne). Evidemment, la seule solution dont nous
disposons lheure actuelle consiste dclarer douze variables, appeles par exemple Notea,
Noteb, Notec, etc. Bien sr, on peut opter pour une notation un peu simplifie, par exemple
N1, N2, N3, etc. Mais cela ne change pas fondamentalement notre problme, car arriv au
calcul, et aprs une succession de douze instructions Lire distinctes, cela donnera
obligatoirement une atrocit du genre :
Moy (N1+N2+N3+N4+N5+N6+N7+N8+N9+N10+N11+N12)/12
Ouf ! Cest tout de mme bigrement laborieux. Et pour un peu que nous soyons dans un
programme de gestion avec quelques centaines ou quelques milliers de valeurs traiter, alors
l cest le suicide direct.
Cerise sur le gteau, si en plus on est dans une situation on lon ne peut pas savoir davance
combien il y aura de valeurs traiter, l on est carrment cuits.
Cest pourquoi la programmation nous permet de rassembler toutes ces variables en une seule,
au sein de laquelle chaque valeur sera dsigne par un numro. En bon franais, cela
donnerait donc quelque chose du genre la note numro 1 , la note numro 2 , la note
numro 8 . Cest largement plus pratique, vous vous en doutez.

Dans un tableau, la valeur dun indice doit toujours :

tre gale au moins 0 (dans quelques rares langages, le premier lment dun tableau
porte lindice 1). Mais il vaut mieux commencer la numrotation des indices zro,
comme cest le cas en langage C et en Visual Basic. Donc attention, tab(6) est le
septime lment du tableau tab() !
tre un nombre entier Quel que soit le langage, llment tab(3,1416) nexiste jamais.
tre infrieure ou gale au nombre dlments du tableau (moins 1, si lon commence
la numrotation zro). Si le tableau tab a t dclar comme ayant 25 lments, la
prsence dans une ligne, sous une forme ou sous une autre, de tab(32) dclenchera
automatiquement une erreur.

Exercice 1.1 : Trace dalgorithme


Que produit lalgorithme suivant ? Peut-on simplifier cet algorithme avec le mme rsultat ?

Tableau Nb(5) en Entier Variable i en


Entier
Dbut
Pour i 0 5
Nb(i) i * i
FinPour
Pour i 0 5
Ecrire Nb(i)
FinPour
Fin

Exercice 1.2
Que produit lalgorithme suivant ?

Tableau N(6) en Entier


Variables i, k en Entier
Dbut
N(0) 1
Pour k 1 6
N(k) N(k-1) + 2
FinPour
Pour i 0 6
Ecrire N(i)
FinPour
Fin

Peut-on simplifier cet algorithme avec le mme rsultat ?

Exercice 1.3
Que produit lalgorithme suivant ?

Tableau Suite(7) en Entier


Variable i en Entier
Dbut
Suite(0) 1
Suite(1) 1
Pour i 2 7
Suite(i) Suite(i-1) + Suite(i-2)
FinPour
Pour i 0 7
Ecrire Suite(i)
FinPour
Fin

Exercice 2.1 : Dclaration de tableau


Ecrire un algorithme qui dclare et remplisse un tableau de 7 valeurs numriques en les
mettant toutes zro. (Version avec et sans boucle)
Exercice 2.2 : Dclaration de tableau
Ecrire un algorithme qui dclare et remplisse un tableau contenant les six voyelles de
lalphabet latin.

Exercice 3.1 : Manipulation


Ecrire un algorithme qui dclare un tableau de 9 notes, dont on fait ensuite saisir les valeurs
par lutilisateur.

Exercice 3.2 Manipulation


Ecrivez la fin de lalgorithme 3.1 afin que le calcul de la moyenne des notes soit effectu et
affich lcran.

Exercice 4.1 : Somme de tableaux


Ecrivez un algorithme constituant un tableau, partir de deux tableaux de mme longueur
pralablement saisis. Le nouveau tableau sera la somme des lments des deux tableaux de
dpart.
Tableau 1 :
4 8 7 9 1 5 4 6

Tableau 2 :
7 6 5 2 1 3 7 4

Tableau constituer :
11 14 12 11 2 8 11 10

Exercice 4.2 : multiplication de tableaux


Toujours partir de deux tableaux prcdemment saisis, crivez un algorithme qui multiplier
chaque lment du tableau 1 par chaque lment du tableau 2, et additionner le tout. Par
exemple si l'on a :
Tableau 1 :
4 8 7 12

Tableau 2 :
3 6

Rsultat :
3 * 4 + 3 * 8 + 3 * 7 + 3 * 12 + 6 * 4 + 6 * 8 + 6 * 7 + 6 * 12 = 279

Exercice 5.1
Ecrivez un algorithme permettant lutilisateur de saisir un nombre quelconque de valeurs,
qui devront tre stockes dans un tableau. Lutilisateur doit donc commencer par entrer le
nombre de valeurs quil compte saisir. Il effectuera ensuite cette saisie. Enfin, une fois la
saisie termine, le programme affichera le nombre de valeurs ngatives et le nombre de
valeurs positives.
Exercice 5.2
Ecrivez un algorithme qui permette la saisie dun nombre quelconque de valeurs, sur le
principe de lex 5.1. Toutes les valeurs doivent tre ensuite augmentes de 1, et le nouveau
tableau sera affich lcran.

Exercice 6 :
Ecrivez un algorithme calculant la somme des valeurs dun tableau (on suppose que le tableau
a t pralablement saisi).

Exercice 7 :
Ecrivez un algorithme permettant, toujours sur le mme principe, lutilisateur de saisir un
nombre dtermin de valeurs. Le programme, une fois la saisie termine, renvoie la plus
grande valeur en prcisant quelle position elle occupe dans le tableau. On prendra soin
deffectuer la saisie dans un premier temps, et la recherche de la plus grande valeur du tableau
dans un second temps.

Exercice 8 :
Toujours et encore sur le mme principe, crivez un algorithme permettant, lutilisateur de
saisir les notes d'une classe. Le programme, une fois la saisie termine, renvoie le nombre de
ces notes suprieures la moyenne de la classe.
TD n5 : Les Fonctions

Rappels :

A. Les Fonctions Prdfinies

Certains traitements ne peuvent tre effectus par un algorithme, aussi savant soit-il. Dautres
ne peuvent ltre quau prix de souffrances indicibles.
Cest par exemple le cas du calcul du sinus dun angle : pour en obtenir une valeur approche,
il faudrait appliquer une formule dune complexit vous glacer le sang. Aussi, que se passe-
t-il sur les petites calculatrices que vous connaissez tous ? On vous fournit quelques touches
spciales, dites touches de fonctions, qui vous permettent par exemple de connatre
immdiatement ce rsultat. Sur votre calculatrice, si vous voulez connatre le sinus de 35,
vous taperez 35, puis la touche SIN, et vous aurez le rsultat.
Tout langage de programmation propose ainsi un certain nombre de fonctions ; certaines sont
indispensables, car elles permettent deffectuer des traitements qui seraient sans elles
impossibles. Dautres servent soulager le programmeur, en lui pargnant de longs et
pnibles - algorithmes.

B. Structure gnrale des fonctions.

Reprenons lexemple du sinus. Les langages informatiques, qui se doivent tout de mme de
savoir faire la mme chose quune calculatrice, proposent gnralement une fonction SIN. Si
nous voulons stocker le sinus de 35 dans la variable A, nous crirons :
A Sin(35)
Une fonction est donc constitue de trois parties :

1. le nom proprement dit de la fonction. Ce nom ne sinvente pas ! Il doit imprativement


correspondre une fonction propose par le langage. Dans notre exemple, ce nom est
SIN.
2. deux parenthses, une ouvrante, une fermante. Ces parenthses sont toujours
obligatoires, mme lorsqu'on n'crit rien l'intrieur.
3. une liste de valeurs, indispensables la bonne excution de la fonction. Ces valeurs
sappellent des arguments, ou des paramtres. Certaines fonctions exigent un seul
argument, dautres deux, etc. et dautres encore aucun. A noter que mme dans le cas
de ces fonctions nexigeant aucun argument, les parenthses restent obligatoires. Le
nombre darguments ncessaire pour une fonction donne ne sinvente pas : il est fix
par le langage. Par exemple, la fonction sinus a besoin dun argument (ce nest pas
surprenant, cet argument est la valeur de langle). Si vous essayez de lexcuter en lui
donnant deux arguments, ou aucun, cela dclenchera une erreur lexcution. Notez
galement que les arguments doivent tre dun certain type, et quil faut respecter ces
types.
Exercice 1
Ecrivez un algorithme qui demande un mot lutilisateur et qui affiche lcran le nombre de
lettres de ce mot (c'est vraiment tout bte, si on utilise une fonction qui compte les caractres
len).

Exercice 2
Ecrivez un algorithme qui demande une phrase lutilisateur et qui affiche lcran le
nombre de mots de cette phrase. On suppose que les mots ne sont spars que par des espaces
(et c'est dj un petit peu moins bte).

L, on est oblig de compter par une boucle le nombre d'espaces de la phrase, et on en dduit
le nombre de mots. La boucle examine les caractres de la phrase un par un, du premier au
dernier, et les compare l'espace.

Exercice 3
Ecrivez un algorithme qui demande une phrase lutilisateur et qui affiche lcran le
nombre de voyelles contenues dans cette phrase.
On pourra crire deux solutions. La premire dploie une condition compose bien
fastidieuse. La deuxime, en utilisant la fonction Trouve, allge considrablement
l'algorithme.

C. Fonctions personnalises

Une application, surtout si elle est longue, a toutes les chances de devoir procder aux
mmes traitements, ou des traitements similaires, plusieurs endroits de son droulement.
Par exemple, la saisie dune rponse par oui ou par non (et le contrle quelle implique),
peuvent tre rpts dix fois des moments diffrents de la mme application, pour dix
questions diffrentes.
La manire la plus vidente, mais aussi la moins habile, de programmer ce genre de choses,
c'est bien entendu de rpter le code correspondant autant de fois que ncessaire.
Apparemment, on ne se casse pas la tte : quand il faut que la machine interroge l'utilisateur,
on recopie les lignes de codes voulues en ne changeant que le ncessaire. Mais en procdant
de cette manire, la pire qui soit, on se prpare des lendemains qui dchantent...
D'abord, parce que si la structure d'un programme crit de cette manire peut paratre simple,
elle est en ralit inutilement lourdingue. Elle contient des rptitions, et pour peu que le
programme soit joufflu, il peut devenir parfaitement illisible. Or, le fait d'tre facilement
modifiable donc lisible, y compris - et surtout - par ceux qui ne l'ont pas crit est un critre
essentiel pour un programme informatique ! Ds que l'on programme non pour soi-mme,
mais dans le cadre d'une organisation (entreprise ou autre), cette ncessit se fait sentir de
manire aigu. L'ignorer, c'est donc forcment grave.
En plus, un autre niveau, une telle structure pose des problmes considrables de
maintenance : car en cas de modification du code, il va falloir traquer toutes les apparitions
plus ou moins identiques de ce code pour faire convenablement la modification ! Et si l'on en
oublie une, patatras, on a laiss un bug.
Il faut donc opter pour une autre stratgie, qui consiste sparer ce traitement du corps du
programme et regrouper les instructions qui le composent en un module spar. Il ne restera
alors plus qu' appeler ce groupe d'instructions (qui n'existe donc dsormais quen un
exemplaire unique) chaque fois quon en a besoin. Ainsi, la lisibilit est assure ; le
programme devient modulaire, et il suffit de faire une seule modification au bon endroit, pour
que cette modification prenne effet dans la totalit de lapplication.
Le corps du programme sappelle alors la procdure principale, et ces groupes dinstructions
auxquels on a recours sappellent des fonctions et des sous-procdures.

- Une fonction renvoie une rponse (mot cl renvoyer)


- Une fonction s'crit toujours en-dehors de la procdure principale.
- Une fonction peut prendre des paramtres (0 n)

En algorithmique :
fonction nomDeLaFonction(paramtre typeDuParamtre) typeDeLaValeurDeRetour
fonction max(a,b Entiers) Entier

En Langage C :
TypeDeRetour nomDeLaFonction(TypeDuParamtre paramtre)
int max(int a,int b)

Exercice 4 :
crivez une fonction qui renvoie la somme de cinq nombres fournis en argument.

Exercice 5 :
crivez une fonction qui renvoie le nombre de voyelles contenues dans une chane de
caractres passe en argument. Au passage, notez qu'une fonction a tout fait le droit
d'appeler une autre fonction.

Exercice 6 :
crivez une fonction qui renvoie la factorielle dun nombre.

Exercice 7 :
crivez une procdure qui affiche la factorielle dun nombre.
TD n6 : Initiation a la programmation Web

Objectifs de ce TD :
Les exercices et les rappels proposs dans le cadre de ce TD concernent la programmation
oriente Internet.

Rappels :

Les diffrents "standards" du Web, qui sont devenus des "langages" de l'Internet, servent la
description de ces diffrents niveaux d'information.

Le texte littral : encode le "fond (message linguistique du document)". C'est la seule


chose qui n'volue pas, par le problme de l'encodage des caractres : les ides
s'crivent toujours en texte partir d'un alphabet.
Le HTML (HyperText Markup Language) : un standard qui a commenc par rpondre
tous les besoins. La structure du fond est donne par l'organisation syntaxique des
lments. La forme est encode sous forme d'attributs applicables aux lments. A
partir de la version 4.0, la forme est cense ne plus tre encode sous forme d'attributs
HTML. Ces indications sont externalises dans le langage de feuilles de styles.
La CSS (Cascading Style Sheet) : un standard qui a rcupr la fonction de
paramtrage du style (encodage de la forme). Le style peut tre inclus dans l'encodage
de la structure (prs des lments) ou externalis dans une entit-document part
entire (feuille de style CSS).
Les langages de script (VBScript, Javascript) : des "plus ou moins" standards qui
permettent de dfinir le comportement dans le temps du contenu du document. Les
scripts peuvent tre dfinis l'intrieur de la structure du contenu, ou galement
externaliss sous forme d'entits-documents part entire.

L'architecture principal du Web est le client-serveur. Toutes les ressources ncessaires la


visualisation d'un document (au sens large) sont situs sur des machines physiques appeles
"serveurs" qui sont (en gnral) diffrentes que celles qui visualisent le contenu.

La transaction entre le client (consommateur d'entits-documents) et le serveur (fournisseur


d'entits-documents) s'effectue selon la mtaphore du "client-barman" (d'ou le terme de
serveur).

- bonjour monsieur, je voudrais un caf ...


(REQUETE)

(Je vais voir s'il y en a)


(Je sors un verre)
(Je prpare un caf)
(Je pose le verre de caf sur le comptoir)
- voil monsieur.
(REPONSE)
(Je bois le verre de caf)
(CONSOMMATION COTE CLIENT)

S'il n'y a plus de caf, le serveur rpondra d'une faon plutt passive :

- bonjour monsieur, je voudrais un ...


Vemouth (REQUETE)

(Je vais voir s'il y en a)


(Il n'y en a pas)
- il n'y en a plus monsieur.
(REPONSE NEGATIVE 404 : NOT
FOUND)

Exemple de code HTML


Structure du HTML d'origine (HTML 1.0 HTML 3.0)

Le HTML est donc un langage de "description du contenu" d'un document, principalement


textuel, mais par extension, qui agrge du texte et des "objets" de contenu.

Il commence par structurer l'intrieur d'un document (signalis par la balise englobante
<html></html>), en associant :

Des mta-donnes dfinissant des proprits de ce document, dans une en-tte (<head>
</head>. Ces donnes ne constituent pas une partie "directement visible" du document.
Elles sont en dehors, ct (meta).
Un corps de document, qui contient son contenu exprim (<body></body>) ou un
dcoupage du document en sous-documents-fentres (<frameset></frameset>).

Les deux composantes, en-tte et corps, sont dcrits par dcomposition en lments de
contenus. Le HTML propose (et standardise) un ensemble de principes premiers pour
constituer l'information, bas sur un paradigme historique du document scientifique :

"un document est un texte organis en une structure de titres hirarchiques, dans lequel
peuvent tre inclus des images ou autre insertions affichables".

C'est le format gnral d'un traitement de texte.

Les lments de base d'un document HTML sont (avant l'utilisation du HTML pour le
marketing visuel ou pour les IHM d'applications informatiques) :
des "titres" de diffrents niveaux hirarchiques (<h1></h1> <h7></h7>).
des paragraphes (<p></p>).
des images <img/>.
des tableaux (au sens d'un affichage tabulaire de donnes) <table></table>.

La diffusion lectronique dmatrialise en client-serveur travers Internet conduit


imaginer un lment particulier qui permet de passer d'un document un autre. C'est la
naissance du lien Hypertexte (<a> </a>).

Notions fondamentales de javascript

javascript ncessite un document HTML en guise d'environnement. Le langage HTML


prvoit une balise spcifique cet effet. La balise script <script></<script> indique au
navigateur qu'il va rencontrer du code de programme interprter et excuter. Elle se
prsente sous cette forme :

<script type="text/javascript">
<!--
//-->
</script>

Tous les navigateurs ne grent pas la balise <script>. C'est pour cela que les balises de
commentaires HTML sont ncessaires (<!-- //-->).

Les zones Javascript peuvent tre insres de faon relativement libre. Le HTML accepte les
balises de script aussi bien dans l'en-tte que dans le corps d'un fichier HTML. Il est
galement permis d'intgr plusieurs zones de script au sein d'un mme document.

Les instructions javascript doivent toujours tre ponctues par un point virgule ou d'un saut de
ligne.
Ainsi un script javascript ressemble ceci :

<script type="text/javascript">
<!--demonstration
document.write("<b>bonjour !</b><br>");
//-->
</script>

Dans cet exemple, demonstration est un commentaire, document est un objet et


write() est une mthode.

Info : les chanes de caractres afficher peuvent tre repre avec des guillemets " ou des
apostrophes '. Il convient d'utiliser le caractre de commande \ pour afficher des guillemets ou
un apostrophe dans une chane de caractres :
<script type="text/javascript">
<!--demonstration
alert('la page d\'acceuil');
//-->
</script>

Dans cet exemple, une boite de dialogue d'affiche avec le texte "la page d'acceuil".
Les caractres de commande de commande de cette nature sont introduits par le signe \.
Derrire suit une lettre qui marque le caractre de commande.

Info:
Le caractre de commande \n est appropri par exemple dans des messages alert(...) pour
insrer dans le texte sorti un passage la ligne.
Le caractre de commande \t est appropri par exemple dans des messages alert(...) pour une
information sous forme de tableau.
Le caractre de commande \r peut tre not en plus du caractre de commande \n, si celui-ci
ne fonctionne pas seul.
Le caractre de commande \" doit tre not si vous voulez noter des guillemets dans une
chane de caractres.

Exercice 1. Comparaison de deux dates


Complter le code suivant :

// Mise en place de la premire date


d1 = new Date(0);
d1.setFullYear(2006, 11, 27)

// Mise en place de la seconde date


d2 = new Date(0);
d2.setFullYear(2006, 0, 18)

if( )
alert("d1 est aprs d2");
else if( )
alert("d1 est avant d2");
else
alert("d1 et d2 sont la mme date");

Exercice 2 : Commentaire de code


Que fait cette ligne de commande ?

var statut = (age >= 18) ? 'adulte' : 'mineur';

Exercice 3 :
A quoi correspondent ces expressions :
x += y x++ x *= y x /= y
TD n7 : A lintrieur dun ordinateur

Lobjectif de ce TP est de vous faire dcouvrir les diffrents lments qui composent un
ordinateur et de parler de leur fonctionnement.

Exercice 1 : Identifier les lments suivants

1. Alimentation

2. Carte mre

3. Processeur

4. Mmoire vive ou RAM

5. Mmoire morte Disque dure interne

6. Disque dur Externe

7. Carte son

8. Carte Graphique

9. Lecteur CD/DVD/Graveur

10. Unit centrale

11. Cble rseau


12. Carte rseau

13. Switch

14. Routeur
Voici une carte mre vierge de composant supplmentaire : pas encore de processeur, ni de
ventilateur, ni de RAM, rien :

1. Ce gros carr blanc est le socket, c'est--dire l'emplacement destin accueillir le


microprocesseur.
2. Emplacements (slots) destins accueillir les barrettes de RAM (Random Access
Memory).
3. Ces grandes barres blanches sont destines accueillir divers types de cartes (carte son,
modem 56k, carte PCI/Firewire, etc) : ce sont des ports PCI (Peripheral Component
Interconnect)
4. Port AGP (Accelerated Graphic Port).
5. Cette petite puce contient ce qu'on appelle le BIOS (Basic Input/Output System) ; le
BIOS est un petit programme qui permet de vrifier que tous les composants ncessaires au
dmarrage de l'ordinateur sont bien prsents ; un ordinateur ne peut dmarrer sans BIOS : en
effet, c'est le premier programme qui s'excute lorsque vous allumez votre PC.

6. Cette pile plate sert alimenter le BIOS ; c'est grce elle que votre ordinateur retient
l'heure mme lorsque vous l'teignez ou le dbranchez.
7. Mais quoi servent ces 4 rectangles ? Celui en haut droite sert brancher l'alimentation
de la carte mre (eh oui, a fonctionne avec de l'lectricit) ; les deux gauche sont les ports
IDE (primaire et secondaire) : ils permettent de connecter des disques durs et des
priphriques ATAPI (Advanced Technology Attachment Packet Interface) c'est--dire les
lecteurs/graveurs de CD/DVD ; plus court que ses comparses IDE (Integrated Drive
Electronics), le dernier sert connecter le lecteur disquette.
8. On retrouve sur le ct de la carte mre les ports externes du PC

Exercice 2 : A l'intrieur du PC

Pour mieux comprendre le fonctionnement d'un ordinateur, et parce que vous n'aurez peut tre
jamais l'occasion d'ouvrir votre botier, nous vous invitons une petite visite l'intrieur de la
bte. Voici donc les principaux lments qui composent votre ordinateur et le rle qu'ils ont.

L'unit centrale
Une unit centrale dsigne le botier de votre
ordinateur et tous les lments qu'il contient : carte
mre, processeur, mmoire, , l'exception des
priphriques externes : cran, imprimante, etc.

Identifier chaque lments en fonction de a place et de son rle dans lordinateur.


La carte sonore
La carte son permet de grer les entres (microphone, ligne) et les sorties
(vers les hauts parleurs) de votre ordinateur. Elle comporte un processeur
charg de tous les traitements numriques du son. La carte son peut tre une
puce intgre la carte mre, ou bien une carte distincte.

La mmoire vive
Partenaire de travail du processeur, la mmoire vive (appele aussi RAM)
stocke temporairement les donnes traiter par le processeur. Ainsi, plus il y
a de mmoire de disponible, plus il est possible d'y conserver des donnes
temporairement (ce qui vite d'accder au disque dur qui est plus lent).
La mmoire vive est vide chaque arrt ou redmarrage de votre ordinateur.

La carte mre
Rarement mise en avant, la carte mre joue un rle fondamental dans la
structure des ordinateurs. C'est elle qui accueille l'ensemble des composants
internes de votre ordinateur (processeur, mmoire, ) et gre les diffrentes
interfaces avec vos priphriques : prise pour les lments internes et ports
USB pour les priphriques externes.

Le disque dur
Contrairement la mmoire vive, les donnes stockes sur un disque dur sont
permanentes et ne sont pas effaces l'arrt de votre ordinateur. C'est donc
sur un disque dur que votre systme d'exploitation (Windows), vos logiciels
et vos documents sont conservs. C'est donc un espace de stockage
permanent, o vous pouvez copier et supprimer des donnes volont.

La carte graphique
La carte graphique permet de traiter et d'afficher sur un cran les donnes
provenant de votre ordinateur. Les cartes graphiques rcentes disposent de
processeurs spcialiss dans la manipulation de donnes en 3D. La carte
graphique peut tre une puce intgre la carte mre (gnralement, ce genre
de puce permet des traitements simples), ou bien une carte distincte (permet
des traitements plus volus).

Le processeur
Souvent qualifi de cerveau de l'ordinateur, le processeur permet de
manipuler et de traiter les donnes qui lui sont fournies. Sa puissance a une
influence sur la vitesse d'excution de vos logiciels et des oprations que vous
effectuez.
Le lecteur / graveur
Un lecteur de DVD vous permet de lire les donnes qui se trouvent sur les CD
et DVD (jeux, logiciels, photos). Dans sa fonction graveur, en plus de lire les
donnes, il permet de stocker des fichiers sur des CD et des DVD (musique,
films, photos, sauvegardes), afin de librer de l'espace sur votre disque dur.

L'alimentation
L'alimentation a pour rle d'assurer la fourniture en lectricit tous les
composants de votre ordinateur. C'est un lment important puisque les
tensions dlivres doivent rester stables mme lorsque l'alimentation est trs
sollicite.

S-ar putea să vă placă și