IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Exercices corrigés Pascal

Exercices corrigés PascalConsultez toutes les sources

Nombre d'auteurs : 3, nombre de sources : 49, dernière mise à jour : 6 mars 2008 

 
OuvrirSommaire→Utilisation des instructions itératives

Ecrire un programme qui lit une valeur et affiche sa table de multiplication (on se limitera aux 12 premiers termes).

Solution : Voir le fichier Multi1.pas :

Multi1.pas
Cacher/Afficher le codeSélectionnez


Faire une variante du programme précédent qui affiche la table de multiplication de tous les chiffres compris entre 2 et 9 (inclus).

Note :

  • Pensez à laisser un espace entre deux tables de multiplication.

Solution : Voir le fichier Multi2.pas :

Multi2.pas
Cacher/Afficher le codeSélectionnez


Faire une autre variante qui affiche chaque table sur une ligne.

Solution : Voir le fichier Multi4.pas

Multi4.pas
Cacher/Afficher le codeSélectionnez


En déduire un programme qui affiche la table par colonne...

Solution : Voir le fichier Multi3.pas

Multi3.pas
Cacher/Afficher le codeSélectionnez
Créé le 21 juillet 2004  par Giovanny Temgoua

Reprendre le programme Switch3.pas et afficher le menu jusqu'à ce qu'une entrée correcte soit entrée.
Note :

  • Consultez l'aide sur la fonction repeat

Solution : Voir le fichier Repeat.pas

Repeat.pas
Cacher/Afficher le codeSélectionnez


Remarques :

  • La condition de la boucle repeat, valeur<5 en l'occurrence, aurait pu être remplacée soit par les conditions ((valeur>=1) and (valeur<=4)) soit par ((valeur=1) or (valeur=2) or (valeur=3) or (valeur=4)).

  • Consultez l'aide sur les fonctions logiques and et or.
Créé le 21 juillet 2004  par Giovanny Temgoua

Ecrire un programme qui effectue la division de deux entiers par des soustractions successives.

Solution : Voir le fichier Division.pas

Division.pas
Cacher/Afficher le codeSélectionnez


Faire une variante de ce programme en utilisant la boucle repeat...until

Solution : Voir le fichier Division2.pas

Division2.pas
Cacher/Afficher le codeSélectionnez


Remarque :

  • Comme on peut le constater, le programme ci-dessus produit des résultats erronés lorsqu'on entre une valeur du dividende inférieure à celle du diviseur. Ceci est dû au fait que les instructions des boucles repeat...until sont exécutées au moins une fois, ce qui n'est pas le cas des boucles while. Pour obtenir le même résultat, nous sommes alors obligés d'utiliser une instruction if pour tester le cas où le diviseur est supérieur au dividende.
Créé le 21 juillet 2004  par Giovanny Temgoua

Programmation d'un petit jeu de devinette

But : Le but du jeu est d'inviter l'utilisateur à deviner un nombre que l'ordinateur aurait "deviné" (en réalité, il s'agit d'un nombre aléatoire).

Principe : Dans un premier temps, le chiffre est choisi aléatoirement (il serait intéressant de lire en entrée la borne maximale du nombre aléatoire). Ensuite, l'utilisateur est amené à le deviner ; il sera aidé au cours de sa quête par des phrases du genre 'Plus petit' ou 'Plus grand' suivant que le nombre a deviné est respectivement soit plus petit, soit plus grand que le nombre entré...
Il faut préciser que l'utilisateur dispose d'un nombre fixe de tentative. Que ce soit à l'issue de ses nombres de tentatives ou qu'il devine le nombre caché (un message de félicitations est affiché le cas échéant), l'utilisateur est invité à taper n ou N s'il désire arrêter le jeu, ou alors une autre lettre pour continuer.

Préréquis : Consultez la fonction Random dans l'aide du compilateur.

Solution : Voir le fichier Devine.pas

Devine.pas
Cacher/Afficher le codeSélectionnez


Commentaire :

  • Comme vous avez dû le lire en consultant l'aide sur la fonction Random, il est nécessaire d'appeler la procédure Randomize d'abord. De plus, du fait que Random génère un nombre compris entre 0 et ValMax, on initialise valeur à -1 (en fait tout autre nombre négatif fait l'affaire), ainsi nous sommes sûrs qu'à l'entrée de la boucle while, la condition valeur<>nombre sera vraie.

Remarque :

  • La condition de fin de boucle repeat, aurait pu aussi s'écrire : UpCase(Car)='N'. Nous n'avons eu besoin de l'unité Crt que pour utiliser la procédure ClrScr qui nettoie l'écran.
Créé le 21 juillet 2004  par Giovanny Temgoua