ALGO TD1
5 septembre 2008
1 Calcul de l’age
Ecrivez un algorithme qui demande à l’utilisateur sa date de naissance, le jour actuel et qui affiche son âge.
2 Simuler un algorithme
Algorithme Autoroute
variables durée, vitesse, distance, distanceMax, vitesseMax : réels début
// ceci est un commentaire :
//préparation du traitement : saisies des données vitesseMax <- 130
ecrire ("Combien de temps a duré votre trajet sur autoroute ?") durée <- lire() // ou bien : lire (durée)
ecire ("Combien de kilomètres avez-vous parcouru ?") distance <- lire() // ou bien : lire(distance) // traitement des données
distanceMax <- durée * vitesseMax vitesse <- distance / durée
//affichage des résultats}
ecrire ("La distance maximale que vous avez pu parcourir est de", distanceMax, , " km. ") ecrire ("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. " ) finSi
fin
Cet algorithme attend des données de la part de son utilisateur.
1
– Lors du premier déroulement de cet algorithme, vous lui fournissez les données suivantes : 5 et 600. Quels affichages obtenez vous ?
– Quels affichages obtenez-vous avec 0 et 5 ? Avez-vous des critiques à faire concernant cet algorithme ?
3 Détermination du statut
A partir de l’âge d’une personne, déterminez dans quelle tranche elle se trouve(enfant,adolescent,adulte,personne âgé).
4 Algo mystère
A votre avis, à quel problème l’algorithme MYSTERE suivant apporte- t-il une solution ?
Algorithme MYSTERE
//Cet algorithme ... ?
var valA, valB, valC, valD, valE, valF : caractères début
lire(valA, valB, valC, valD, valE) si valA # valE
alors
valF <- valE valE <- valA valA <- valF finsi
si valB # valD alors
valF <- valD valD <- valB valB <- valF finsi
ecrire(valA, valB, valC, valD, valE) fin
5 Année bissextile
5.1 Est bissextile ?
Ecrivez un algo qui détermine si une année est bissextile. Les années bissextiles sont :
– les années divisibles par 4 mais non divisibles par 100 ; – les années divisibles par 400.
2
5.2 Nb bissextile
Combien d’années bissextiles se trouvent entre deux datesX exclue etY incluse ?
6 salaires et nombres
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%. Vous demanderez à l’utilisateur le nombre 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éga- tif, 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.
7 Signe du Zodiaque
Écrire le signe zodiacal en fonction de la date de naissance (vous n’êtes pas obligés de faire tout le calendrier)
Bélier 21 mars 21 avril
Taureau 22 avril 21 mai
Gémeaux 22 mai 21 juin
Cancer 22 juin 22 juillet
Lion 23 juillet 22 août
Vierge 23 août 22 septembre Balance 23 septembre 22 octobre Scorpion 23 octobre 22 novembre Sagittaire 23 novembre 21 décembre Capricorne 22 décembre 20 janvier
Verseau 21 janvier 19 février Poissons 20 février 20 mars
3
8 Le n
imejour de l’année
Sachant que le premier janvier est un Lundi, quel jour de la semaine sera le nième jour de l’année ?
4