Bonjour,
Voici une table de multiplication colorée qui en pur procédural prend plus de 200 lignes.
Quelqu'un aurait-il une idée pour en faire un algorithme ?
![]()
Bonjour,
Voici une table de multiplication colorée qui en pur procédural prend plus de 200 lignes.
Quelqu'un aurait-il une idée pour en faire un algorithme ?
![]()
on peut avoir un extrait du pur procédural ?
Bah en pur procédural on génère et affiche les cases une par une avec quatre attributs de position et un attribut de couleur. Une case = Une ligne de code
Est-il envisageable de faire un algo se servant des variables de boucles, autant pour la localisation que pour les couleurs mises en tableau ?
Un seul algo et un seul passage.
-1- J'imagine que tu veux faire cela en VBA, et colorier les premières lignes // Premières colonnes d'une feuille Excel.
-2- Logiquement, la cellule (a,b) et la cellule (b,a) devraient avoir la même couleur, et cette couleur ( color, ou colorindex ...) pourrait être le produit de la multiplication a*b ?
-3- Dans les colonnes, les n° vont de 1 à 9, mais tu as 18 colonnes ... c'est volontaire ? On gère les demi-entiers ?
Une fois ces points éclaircis, ça pourrait ressembler à ça :
Et reste à traiter les lignes d'entête (ligne 1 et colonne 1).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 nb_couleurs_palette = 40 for lig = 2 to 11 lig0 = lig-1 for col = 2 to 11 col0 = col-1 multiplication = lig0 * col0 color_index = mod( multiplication, nb_couleurs_palette) +1 cells(lig,col)..colorindex = color_index next col next lig
En repassant et entre () ...
Bon la table est colorée mais pas vraiment au hasard
En regroupant les colonnes "paires" et "impaires" pour former des carrés
ça fait bien ressortir le coté symétrique
![]()
salut
tu as combien de couleurs ?
donc on a 10 lignes et 20 colonnes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Pour Col de 0 a 9 Faire Pour Lig de 0 a 9 Faire Mult = ((Col*2)+1)*(Lig+1) Coul = Mod(Mult,NbColor) Cellule[Lig,(Col*2)] = Coul // La deuxieme col Mult = ((Col*2)+2)*(Lig+1) Coul = Mod(Mult,NbColor) Cellule[Lig,(Col*2)+1] = Coul FinPour FinPour
@ tbc92: Le système de représentation oblige à considérer les chiffres de base sur deux digits, puisque les résultats peuvent êtres sur deux digits. Pas question de stocker les résultats (2 couleurs) dans une "palette", il faut qu'ils soient générés par l'algo.
@ anapurna: Il y a 10 couleurs. Tu propose de gérer chaque colonne séparément (un algo par colonne (ou par ligne, c'est équivalent))
Le challenge est de ne faire qu'un seul algo (bloucles imbriquées)
Le problème, c'est bien les ligne et colonne d'en-tête, mais qui doivent êtres gérables en maîtrisant les incrémentations (avec des retours arrières).
@ vttman: les couleurs ne sont pas disposées au hasard, c'est une table de multiplication, mais en approche Cobol, il faut s'attendre à tout.
... ce qui ne veut pas dire, au sens strict, que tous les termes sont des produits - j'ai fait initialement cette confusion.
Il n'y a pas de multiplication par zéro, qui aurait d'ailleurs entraîné la présence d'une marge noire inutile.
Ce qui induit en erreur, c'est la présence de '00' au coin supérieur gauche.
Il faut prendre le sujet tel qu'il est: un simple jeu algorithmique, le codage des couleurs d'une grille.
Partager