Documente Academic
Documente Profesional
Documente Cultură
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
http://www.ent-montecristo.org/paul-antoine2.bisgambiglia/
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.
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
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 ?
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
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 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
Exercice 3.2
Les habitants de Korti paient limpt selon les rgles suivantes :
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).
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 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.
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 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 :
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.
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.2
Que produit lalgorithme suivant ?
Exercice 1.3
Que produit lalgorithme suivant ?
Tableau 2 :
7 6 5 2 1 3 7 4
Tableau constituer :
11 14 12 11 2 8 11 10
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 :
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.
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 :
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.
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.
S'il n'y a plus de caf, le serveur rpondra d'une faon plutt passive :
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".
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>.
<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>
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.
if( )
alert("d1 est aprs d2");
else if( )
alert("d1 est avant d2");
else
alert("d1 et d2 sont la mme date");
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.
1. Alimentation
2. Carte mre
3. Processeur
7. Carte son
8. Carte Graphique
9. Lecteur CD/DVD/Graveur
13. Switch
14. Routeur
Voici une carte mre vierge de composant supplmentaire : pas encore de processeur, ni de
ventilateur, ni de RAM, rien :
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.
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.