IUT d'Orsay, Département Informatique Algorithmique 1ère année, 2003-2004
TD d’algo n°1 : Instructions de base
affichage, saisie, affectation, conditionnelles
PARTIE 1 :.
Algorithme Autoroute
constante (VitesseMax : entier) ← 130
variables durée, vitesse, distance, distanceMax : réels
début
afficher ("Combien de temps a duré votre trajet sur autoroute ?")
saisir (durée)
distanceMax ← durée × VitesseMax
afficher ("La distance maximale que vous avez pu parcourir est de", distanceMax, , " km. ")
afficher ("Combien de kilomètres avez-vous parcouru ?")
saisir (distance)
vitesse ← distance / durée
afficher ("Votre vitesse moyenne était de ", vitesse, " kmh. ")
si vitesse > vitesseMax
alors afficher (" Vous avez roulé trop vite ! " )
sinon afficher (" Bravo, vous avez respecté la vitesse maximale. " )
fsi
fin
Cet algorithme attend des données de la part de son utilisateur.
- Lors du premier déroulement de cette partie, vous lui fournissez les données suivantes 5 et
300. Quels affichages obtenez vous ?
- Quels affichages obtenez-vous avec 5 et 700 ? avec 5 et 0 ? 0 et 5 ? Avez-vous des critiques
à faire concernant cet algorithme ?
PARTIE 2 :
A votre avis, à quel problème l’algorithme MYSTERE suivant apporte-t-il une solution ?
Algorithme MYSTERE * Algorithme MYSTEREbis
{Cet algorithme ….. ?} {Cet algorithme ….. ?}
variables valA, valB, valC, valD, valE, valF : caractères variables valA, valB: réels
début début
saisir(valA, valB, valC, valD, valE) saisir(valA, valB)
si valA ≠ valE valA ← valA + valB
alors valF ← valE valB ← valA - valB
valE ← valA valA ← valA - valB
valA ← valF afficher(valA, valB)
fsi fin
si valB ≠ valD
alors valF ← valD
valD ← valB
valB ← valF
fsi
afficher(valA, valB, valC, valD, valE)
fin
Algorithmique, Feuille de TD n° 1 Page 1
IUT d'Orsay, Département Informatique Algorithmique 1ère année, 2003-2004
PARTIE 3 :
Complétez les algorithmes suivants afin qu’ils effectuent le traitement décrit.
a. Algorithme Permutation
{Cet algorithme effectue la permutation circulaire de 3 caractères}
variables valA, valB, valC: caractères
début
saisir(valA, valB, valC)
afficher( «Avant permutation : » , valA, valB, valC) {exemple : R U E}
…
afficher( «Après permutation : » , valA, valB, valC) {exemple : U E R}
fin
b. Algorithme Croissant
{Cet algorithme affiche 2 nombres fournis par l’utilisateurs dans l’ordre croissant.}
variables nb1, nb2 : entiers
début
afficher(« Entrez deux nombres »)
saisir(nb1, nb2)
…
fin
c. Algorithme PrixLettre
{ Cet algorithme affiche, à partir du poids d’une lettre, le montant du timbre nécessaire à
son affranchissement. Infos (simplificatrices !) : poids ≤ 20 gr : 0,46 euros; 20 gr < poids ≤ 50
gr : 0,69 euros; 50 gr < poids ≤ 100 gr : 1,02 euros ; poids > 100gr : 1,75 euros}
variables poids: entier
début
afficher(« Quel est le poids de votre lettre (en grammes) ? »)
saisir(poids)
…
fin
d. Algorithme Voyelle
{ Cet algorithme indique à l’utilisateur si le caractère saisi est une voyelle.}
variables car : caractère
début
afficher(« Donnez une voyelle : »)
saisir(car)
…
fin
PARTIE 4 :
a. Ecrire un algorithme qui calcule (et affiche) les salaires mensuels brut et net d’un employé
en sachant que :
- le salaire brut est égal au nombres d’heures multiplié par le salaire horaire brut ;
- le salaire net est égal au salaire brut moins les charges ;
- le montant des charges est égal au salaire brut multiplié par le taux d’imposition.
Vous supposerez que le taux d’imposition est égal à 25% (Pensez à utiliser des
constantes). Vous demanderez à l’utilisateur le nombres d’heures qu’il a travaillé pendant
le mois ainsi que son salaire horaire brut.
b. *Ecrire un algorithme qui saisit 2 nombres, l’un positif et l’autre négatif, et qui affiche
celui qui est positif (vérifier que l’utilisateur a bien rentré deux nombres vérifiant les
conditions voulues).
c. Ecrire un algorithme qui affiche le plus grand de 3 nombres fournis par l’utilisateur.
Modifiez (légèrement !) votre algorithme pour qu’il affiche le plus grand de 4 nombres.
Algorithmique, Feuille de TD n° 1 Page 2