Xavier Nayrac

Rubyiste accro au TDD, serial blogger, apprenti data scientist, heureux utilisateur de Vim, accordéoniste.
Si vous vous sentez particulièrement généreux, suivez moi sur Twitter.

Racket: Afficher les tables de multiplication

| Comments

Niveau : facile

Aujourd’hui un programme vraiment très simple pour débuter en Racket: comment afficher les tables de multiplication de 1 à 12. Attention: vrais débutants uniquement !

On commence par une fonction qui affiche une ligne d’une table de multiplication:

1
2
(define (display-table-line rank n)
  (printf "~a x ~a = ~a\n" rank n (* rank n)))

Cette fonction se nomme display-table-line et prends deux paramètres: rank et n. n est le numéro de la table (table des 1, table des 2, table des 3, etc). printf permet d’afficher une ligne de texte formaté, chaque occurence de ~a sera remplacée, dans l’ordre, par les arguments qui suivent.

Voici maintenant la fonction display-table, qui va afficher une table entière:

1
2
3
(define (display-table n)
  (for ([rank (in-range 1 11)])
       (display-table-line rank n)))

Cette fonction affiche la table des n. Tout se passe dans une boucle for. La fonction (in-range x y) retourne un range de x inclus, à y non-inclus.

Et enfin, voici la boucle principale qui provoque l’affichage des tables de 1 à 12:

1
2
3
4
(for ([num (in-range 1 13)])
     (printf "Table des ~a\n\n" num)
     (display-table num)
     (newline))

On peut paraphraser le code ainsi: pour chaque table de 1 à 12, écrire un entête, afficher la table, puis passer une ligne.

Voici donc, pour finir, le code complet:

1
2
3
4
5
6
7
8
9
10
11
12
13
#lang racket

(define (display-table-line rank n)
  (printf "~a x ~a = ~a\n" rank n (* rank n)))

(define (display-table n)
  (for ([rank (in-range 1 11)])
       (display-table-line rank n)))

(for ([num (in-range 1 13)])
     (printf "Table des ~a\n\n" num)
     (display-table num)
     (newline))

À demain.

Articles connexes

Commentaires