GENISTA (1971) : TUTORIEL "BBC BASIC FOR WINDOWS" EN FRANÇAIS : APPENDICE E : RÉPONSES AUX EXERCICES



Logo Genista, fondé en 1971

Guide Tutoriel de BBC BASIC for Windows, App. E

BBC BASIC (BB4W) Tutorial: Answers to the Exercises

Réponses aux exercices (Tutoriel BBC BASIC, App. E) [Genista]

Par Peter Nairn  •  Traduction : Guy Schaffner (Texte et images) (Genista)

informatique et programmation Vous utilisez ce « Guide pratique » de Peter Nairn pour apprendre à programmer
en « BBC BASIC for Windows ».
Les exercices qui accompagnent les chapitres de ce « Guide pratique » sont indispensables
à une bonne acquisition des connaissances.
Voici les réponses aux exercices qui vous ont été proposés.
Appendice D   •   Appendice E   •   Appendice F      

Appendice E — Réponses aux exercices

Dans toutes ces réponses, veuillez s'il vous plaît vous souvenir que la programmation est un art très subjectif – si ce que vous avez écrit fonctionne, c'est bien, même si c'est différent des réponses données ici. Plutôt que d'utiliser ces réponses comme une comparaison vrai/faux, regardez ce qui diffère d'avec les vôtres et cherchez le pourquoi de la différence. Si vous pataugez dans un problème ou si vous êtes coincé par le manque d'idées, jetez un coup d'œil : ce n'est pas un examen, mais plutôt un processus d'apprentissage.



Récapitulation des exercices



Ch.03Ch.04Ch.05Ch.06Ch.07Ch.08

Ch.09Ch.10Ch.11Ch.12Ch.13Ch.14

Ch.15Ch.16Ch.17Ch.18Ch.19Ch.20


Chapitre 3 — Exercices


03.1
Modifiez le premier programme pour qu'il affiche « BB4W » au lieu de « BBC ».

• Réponse 03.1



03.2
Insérez des TAB dans les instructions d'affichage pour que « BB4W » soit affiché à partir de la ligne 10 et de la colonne 10 dans la fenêtre de sortie.

• Réponse 03.2



[ Haut de Page]



Chapitre 4 — Exercices


Maintenant que nous avons une idée précise des variables et de leur utilisation, essayez les exercices suivants :

04.1
Modifiez le programme d'aire pour donner la circonférence d'un cercle avec 3.14159*diametre (on ne met jamais d'accent sur les variables).

• Réponse 04.1



04.2
Affichez la surface d'un rectangle dont on connaît la longueur et la largeur.

• Réponse 04.2



04.3
Définissez une variable chaîne pour contenir votre prénom, et affichez à l'écran :


      Bonjour, xxxx
    

où « xxxx » est, bien sûr, votre prénom.

• Réponse 04.3



[ Haut de Page]



Chapitre 5 — Exercices


05.1
Modifiez le programme du cercle pour utiliser PI au lieu de 3.14159. Sauvegardez-le.

• Réponse 05.1



05.2
Écrivez un programme qui utilise RND pour simuler le lancement de deux dés (à six faces). Affichez les résultats pour chaque dé et affichez le total.

• Réponse 05.2



05.3
Vérifiez que la formule suivante est vraie :


      LOG(X)=LN(X)/LN(10)
    

• Réponse 05.3



[ Haut de Page]



Chapitre 6 — Exercices


06.1
Créez une chaîne pour contenir les jours de la semaine, comme ceci :


      "Lun Mar MercJeu VendSam Dim "
    

Tous les noms ont 4 caractères, y compris l'espace si nécessaire. En partant d'un nombre pour un jour, utilisez MID$ pour extraire l'abréviation correcte correspondant à ce jour.

• Réponse 06.1



06.2
Faites une chaîne pour contenir votre prénom. Utilisez MID$ et ASC pour trouver les codes ASCII des lettres du prénom.

• Réponse 06.2



06.3
Définissez trois chaînes pour contenir votre prénom, votre second prénom (si vous n'en avez pas, inventez-vous en un) et votre nom de famille. Utilisez LEFT$ pour trouver vos initiales et utilisez la concaténation pour créer une nouvelle chaîne similaire à « R. T. Russell ».

• Réponse 06.3



[ Haut de Page]



Chapitre 7 — Exercices


07.1
Examinez les différents MODEs dans le fichier de l'Aide en ligne.
(Mettez-vous dans l'Éditeur et appuyez sur  F1 . Essayez d'afficher du texte dans les MODEs 1 à 6 pour vous entraîner à voir comment ils se comportent.

• Réponse 07.1



07.2
Modifiez le programme « Changement de couleurs » (ci-dessus) pour produire de nouvelles couleurs aléatoires en vous servant trois fois de l'instruction RND(255) dans l'utilisation des lignes 3 et 8.

• Réponse 07.2



[ Haut de Page]



Chapitre 8 — Exercices


08.1
Le volume d'un cylindre est PI*Rayon^2*Hauteur.
Écrivez un programme qui demande le rayon et la hauteur pour en tirer le volume.

• Réponse 08.1



08.2
Faites un « prompt » (c'est-à-dire une demande) avec INPUT pour entrer votre nom complet.
Affichez le nombre de caractères dans le nom (y compris les espaces).

• Réponse 08.2



[ Haut de Page]



Chapitre 9 — Exercice


09.1
Voici un échantillon de la sortie de deux lancements d'un programme qui agit comme une simple calculatrice :


      Entrez le premier nombre : 5
      Entrez le second nombre : 6
      Tapez 1 pour additioner ; 2 pour soustraire : 1
      5 + 6 = 11
      >RUN
      Entrez le premier nombre : 45
      Entrez le second nombre : 55
      Tapez 1 pour additioner ; 2 pour soustraire : 2
      45 - 55 = -10
      >
    

Pouvez-vous écrire le programme qui produit l'écran ci-dessus ? Introduisez un INPUT pour chaque nombre, un INPUT pour les opérations. Utilisez IF pour choisir l'instruction PRINT correcte pour afficher le résultat. Vous aurez des points en plus si vous élargissez le programme pour y inclure la multiplication et la division.

• Réponse 09.1



[ Haut de Page]



Chapitre 10 — Exercice


10.1
Recréez un programme de décision pour chef de service. Générez un nombre aléatoire de 1 à 6 et affichez un message en fonction du résultat :
1 – Embaucher un béni-oui-oui
2 – Licencier quelqu'un
3 – Déléguer vos pouvoirs
4 – Annuler toutes les heures supplémentaires
5 – Vous octroyer une augmentation de salaire
6 – Dévaliser le fonds de retraites

• Réponse 10.1



[ Haut de Page]



Chapitre 11 — Exercices


11.1
Écrivez un programme avec une boucle FOR pour afficher la table de multiplication par 5. Chaque ligne doit avoir ce format :


 
      1 * 5 = 5
      2 * 5 = 10
      ...
      12 * 5 = 60
    

• Réponse 11.1



11.2
Utilisez deux boucles FOR imbriquées pour dessiner un rectangle sur l'écran en vous servant d'une ligne comme 


      PRINT TAB(X,Y);"*"
    

• Réponse 11.2



[ Haut de Page]



Chapitre 12 — Exercices


12.1
Produisez un programme qui demande que vous entriez une chaîne et affichez le code ASCII du premier caractère. Faites-le continuer jusqu'à ce que la chaîne demandée soit vide ("").

• Réponse 12.1



12.2
Écrivez un programme qui demande l'entrée d'un nombre. Ajoutez ce nombre à un total courant actualisé. Répétez ceci jusqu'à ce que le nombre entré soit égal à 0. Affichez le résultat.

• Réponse 12.2



[ Haut de Page]



Chapitre 13 — Exercices


13.1
Modifiez le programme de filtrage des nombres pour qu'il accepte une (et seulement une) virgule décimale (= point décimal) dans le nombre.
  Si vous vous sentez de l'ambition, ajoutez une modification supplémentaire pour intercepter la touche  Espace arrière et effacer le dernier caractère de la chaîne, s'il existe.
  Vous devrez imprimer une espace après la chaîne pour effacer le caractère de l'écran.
  [Note : le mot « espace » est féminin en typographie].

• Réponse 13.1



13.2
Faites un programme simple de dessin. Utilisez X% et Y% dans une instruction TAB pour dessiner un « X » sur l'écran.
  Lorsque vous pressez les touches fléchées, ajustez X% ou Y% en fonction de la touche pressée.
  Par exemple, si vous pressez la touche  Flèche gauche (←) , diminuez X% ;  pour la touche  Flèche en bas (↓) , augmentez Y%.
  Affichez un « X » à la nouvelle position de façon à laisser une trace sur l'écran.
  Restreignez la zone dans laquelle vous pouvez dessiner à une grille de 20 * 20.

• Réponse 13.2



[ Haut de Page]



Chapitre 14 — Exercice


14.1
• Voici les chiffres en rapport avec les six premiers mois des ventes de sucettes sucrées glacées chocolatées aux trois fruits chez un revendeur local :


Janvier : 105 — Février : 261 — Mars : 482
Avril : 195 — Mai : 347 —Juin : 626

• Définissez un tableau pour contenir ces valeurs. Ajoutez ensuite au programme ce qui convient pour qu'il fasse une boucle dans les diverses valeurs pour arriver aux résultats suivants qu'il affichera :

a) le mois qui a connu le moins de ventes ;

b) le mois qui a connu le plus grand nombre de ventes ;

c) le nombre total de ventes.

• Vous pouvez utiliser la même boucle FOR pour atteindre les trois résultats, ou bien les traiter séparément : c'est votre choix.

• Modifiez le programme pour obtenir un tableau des noms de mois ; initialisez-le et adaptez le programme ci-dessus pour afficher les vrais noms des mois.

• Réponse 14.1



[ Haut de Page]



Chapitre 15 — Exercices


15.1
Vous voulez enregistrer les niveaux d'un élève pour cinq matières, ainsi que son prénom et son nom. Pouvez-vous suggérer une structure qui ferait cela ?

• Réponse 15.1



15.2
Écrivez un programme qui déclare une telle structure et qui demande les informations. Calculez le niveau moyen et affichez les résultats.

• Réponse 15.2



15.3
Si vous aviez 20 élèves dans une classe, comment feriez-vous un tableau à partir de la structure ci-dessus ?

• Réponse 15.3



[ Haut de Page]



Chapitre 16 — Exercices


16.1
Modifiez la PROC_NouvelEcran pour qu'elle accepte une couleur d'arrière-plan et une couleur de premier plan.

• Réponse 16.1



16.2
Écrivez et testez PROC_PlusGrand(A%,B%) qui compare A% et B%.
• Si A% > B%, ne faites rien ;
• si B% > A%, échangez les deux variables en vous servant d'une variable locale. Il vous faudra passer par référence pour que le programme d'appel puisse afficher les résultats.

• Réponse 16.2



[ Haut de Page]



Chapitre 17 — Exercices


17.1
Il est une fonction très utile pour l'utilisateur : celle qui attend qu'on appuie sur « o » (pour oui) ou « n » (pour non) en réponse à un curseur d'attente, et qui renvoie soit TRUE soit FALSE. Écrivez-la. Il faudra, bien sûr, vérifier les capitales et les minuscules.

• Réponse 17.1



17.2
Écrivez une fonction FN_Minusc qui accepte une chaîne. Elle passera par chaque caractère de la chaîne pour convertir toutes les capitales en minuscules. Les autres caractères restent inchangés. Affichez la chaîne convertie.

• Réponse 17.2



[ Haut de Page]



Chapitre 18 — Exercices


18.1
Faites retourner l'extraterrestre à l'autre bout de l'écran, jusqu'au bord gauche, dès qu'il a atteint le bord droit.

• Réponse 18.1



18.2
Créez un autre extraterrestre avec les bras dirigés vers le bas, en vous servant du caractère 241. Modifiez l'animation contenue dans 18.1 pour faire alterner les extraterrestres au cours du déplacement en travers de l'écran.
• I% MOD 2 vous indiquera si I% est un nombre pair ou impair.

• Réponse 18.2



[ Haut de Page]



Chapitre 19 — Exercices


19.1
Créez un effet sonore qui utilise de petites explosions de chuintements pour générer un son semblable à celui d'un pistolet-mitrailleur.

• Réponse 19.1



19.2
Voici un jeu incomplet :


 
      REM Chicane
      VDU 23,220,255,213,171,213,171,213,171,255
      VDU 23,221,90,126,90,24,90,126,90,24
      Route$=CHR$(17)+CHR$(3)+STRING$(4,CHR$(220))
      Voiture$=CHR$(17)+CHR$(4)+CHR$(221)
 
      MODE 6
      VoitureX%=20
      RouteX%=18
      Score%=0
      Vies%=5
      Compte%=0
      OFF
      REM Remplir l'écran avant de commencer
      FOR I%=1 TO 24
        WAIT 20
        PRINT TAB(RouteX%,24);Route$
      NEXT I%
      *REFRESH OFF
      REM Boucle principale
      REPEAT
        WAIT 20
        REM Score
        Score%+=1
  
        REM Créer route nouvelle
        RouteX%=RouteX%+RND(3)-2
        REM Ne pas sortir de l'écran
        IF RouteX%<5 THEN RouteX%=5
        IF RouteX%>30 THEN RouteX%=30
        PRINT TAB(RouteX%,24);Route$;
  
        PRINT TAB(0,24)
        PRINT TAB(VoitureX%,0);Voiture$
        *REFRESH
  
        REM Ajouter ici code contrôle voiture...
  
      UNTIL Vies%=0
 
      FOR I%=200 TO 150 STEP -1
        SOUND 1,-15,I%,1
        WAIT 1
      NEXT I%
      *REFRESH ON
      CLS
      COLOUR 7
      PRINT TAB(6,12);"Vous marquez ";Score%
      ON
      END
    

• Essayez le jeu. Vous verrez une route qui serpente vers le haut de l'écran.
• Votre tâche est d'ajouter les lignes de code qui contrôlent la voiture. Il faut les ajouter là où cela est indiqué. É les touches  Flèche gauche (←)  et  Flèche droite (→)  et réglez la position, CarX%, en conséquence.
• Maintenez la voiture dans les limites de 5 à 34.
• Examinez le caractère situé devant la voiture. Si ce n'est pas 220 (caractère défini pour la route), émettez un bruit et faites perdre une vie.

• Réponse 19.2



[ Haut de Page]



Chapitre 20 — Exercices


20.1
Je suis certain que vous verrez ici un grand nombre d'améliorations ; essayez d'ajouter deux autres commandes, l'une pour vider complètement la grille et l'autre pour la remplir. Vous pourriez utiliser V et R pour faire cela. Remarquez combien il est facile d'écrire le code pour des modifications comme celles-ci, parce que la structure rend tout facile à trouver.

• Réponse 20.1



20.2
Il est également agréable de pouvoir travailler dans l'autre sens, en établissant les caractères à partir des totaux de lignes. Modifiez le projet pour permettre à l'utilisateur d'entrer un total pour la ligne sur laquelle il se trouve. Ensuite, réaffichez le caractère.

• Réponse 20.2



[ Haut de Page]





Fin de l'Appendice E





Haut de Page  •  [Top of Page]

Page suivante (Ap. F)  •  [Next Page (Ap. F)]

Page précédente (Ap. D)  •  [Previous Page (Ap. D)]

Page d'entrée : BASIC, BBC BASIC et BB4W  •  [BASIC, BBC BASIC and BB4W  Entry Page]

Début du Guide pratique du BBC BASIC  •  [The Beginning of the BBC BASIC Tutorial]

Autres sujets  •  [Other subjects]