Forum Liberty Basic France
• Index
Les sommes des lignes Verticales, Horizontales et Diagonales sont identiques.
Code VB :
Code VB :
''------------------------------------------------------------------------------------- ' PROGRAMME CARRE.BAS - CARRE MAGIQUE FAIT LE 5 AVRIL 2002 AVEC TURBO BASIC ' CORRIGE LE 13 JUILLET 2002 ' ADAPTÉ EN LIBERTY BASIC V4.04 LE LE 15 OCTOBRE 2017 '------------------------------------------------------------------------------------- ' Pour savoir la somme des chiffres horizontaux ou verticaux: ' Faire le calcul comme suit: ' Exemple: 3 X 3 = 9 ; int (9/2) + 1 = 5 ; 5 X 3 = 15 ' 5 X 5 = 25 ; int (25/2) + 1 = 13 ; 13 X 5 = 65 ' 7 X 7 = 49 ; int (49/2) + 1 = 25 ; 25 X 7 = 175 ' 9 X 9 = 81 ; int (81/2) + 1 = 41 ; 41 X 9 = 369 ' 11 X 11 = 121 ; int(121/2) + 1 = 61 ; 61 X 11 = 671 ' 13 X 13 = 169 ; int(169/2) + 1 = 85 ; 85 X 13 = 1105 '------------------------------------------------------------------------------------- mainwin 80 27 [debut] 'Etiquette de repositionnement cls 'Efface tout le contenu de l'ecran Dim carre(13, 13) 'Définition du tableau carre à deux dimensions print "-------------------------------------------------------------------------------" locate 2, 2 input "Entrer un Nombre Impair [3-5-7-9-11-13] plus petit ou égal à 13 ---> "; n print "-------------------------------------------------------------------------------" select case n case 3, 5, 7, 9, 11, 13 goto [Effectue] case 1, 2, 4, 6, 8, 10 locate 2, 4 print "Mauvaise reponse ! Presser une touche ..." r$ = input$(1) goto [debut] case else locate 2, 4 print "Mauvaise reponse ! Presser une touche ..." r$ = input$(1) goto [debut] end select [Effectue] '.................................................................... ' Définition des écritures en haut de l'écran. '.................................................................... locate 2, 4 print "Le plus petit = 1 ";chr$(186);_ " Le milieu = ";int(n * n / 2)+ 1;" " ;chr$(186);_ " Le plus grand = " ;n * n;" " ;chr$(186);_ " La somme = ";int((n * n) / 2 + 1) * n; '.................................................................... ' Positionnement du chiffre 1 dans la grille. '.................................................................... for i = 1 to n for j = 1 to n carre(i, j) = 0 next j next i milieu = int(n / 2) + 1 care = 1 : i = milieu + 1 : j = milieu carre(i, j) = care '.................................................................... ' Calcul des chiffres dans la grille. '.................................................................... While care < (n * n) care = care + 1 i = i + 1 : j = j + 1 if i > n then i = 1 if j > n then j = 1 if carre(i, j) = 0 then carre(i, j) = care else i = i + 1 : j = j - 1 if i > n then i = 1 if j < 1 then j = n if carre(i, j) = 0 then carre(i, j) = care end if Wend '.................................................................... ' Avec ou sans Grille. '.................................................................... if n < 9 then call grille n l = 1 + int(26 - ((2 * n) + 1)) / 2 + 1 : c = 1 + int(80 - (5 * n)) / 2 else l = 1 + int(25 - n) / 2 : c = int(80 - 5 * n) / 2 end if '.................................................................... ' Affiche dans les cases et côte latéral droit. '.................................................................... for i = 1 to n sommex = 0 : sommey = 0 for j = 1 to n sommex = sommex + carre(i, j) locate c, l print using(" ###",carre(i, j)); if n < 9 then c = c + 5 else c = c + 5 next j locate c, l print " ="; sommex if n < 9 then l = l + 2 : c = 1 + int(80 - (5 * n)) / 2 else l = l + 1 : c = int(80 - 5 * n) / 2 end if next i '.................................................................... ' Affiche en bas de la grille. '.................................................................... if n > 8 then l = l + 1 for k = 1 to n sommey = 0 for t = 1 to n sommey = sommey + carre(t,k) next t locate c, l print using(" ####",sommey); if n < 11 then c = c + 5 else c = c + 5 end if next k '.................................................................... ' Affiche en bas à droite pour la diagonale. '.................................................................... locate c + 2, l : print sommey; '.................................................................... ' Affiche en haut à droite pour la diagonale. '.................................................................... if n < 9 then locate int(80 - (5 * n)) / 2 + 5 * n + 1 + 2, int(26 - ((2 * n) + 1)) / 2 print sommey; else locate int(80 - (5 * n)) / 2 + (4 * n) + n + 2, int(25 - n) / 2 - 1 print sommey; end if '.................................................................... ' On décide si l'on veut continuer ou arrêter '.................................................................... locate 1, 23 print "-------------------------------------------------------------------------------" locate 14, 24 print "Presser [O] pour une autre Grille ou [N] pour Sortir" locate 1, 25 print "-------------------------------------------------------------------------------" locate 1, 1 [redoo] rep$ = input$(1) locate 0, 0 if rep$ = "N" or rep$ = "n" then cls end else if rep$ = "O" or rep$ = "o" then goto [debut] else goto [redoo] end if end if end '.................................................................... ' Sub pour la Définition des grilles [3-5-7]. '.................................................................... sub grille n l = int(26 - ((2 * n) + 1)) / 2 + 1 : c = int(80 - (5 * n)) / 2 locate c, l print "+";: for x = 1 to n-1 : print "-----";: next x : print "----+"; z = 0 for y = 1 to n - 1 z = z + 1 : locate c, l + z for x = 1 to n + 1 : print "¦ ";: next x z = z + 1 : locate c, l + z print "+";: for x = 1 to n - 1 : print "-----";: next x : print "----+" next y z = z + 1 : locate c, l + z for x = 1 to n + 1 : print "¦ ";: next x z = z + 1 : locate c, l + z print "+";: for x = 1 to n - 1 : print "-----";: next x : print "----+" end sub '....................................................................
____________________
Castel
Castel
C'est une diablerie !
Jusqu'à 7 c'est carré; mais au delà, c'est rectangulaire; remboursez !
Bon, et ton truc avec bmp's, tu nous le montre ou c'est top sicrèt ?
Si tu veux récupérer les royalties sur "IMC" il faut que tu copie ton code et que tu en fasse un nouveau thread (dans "Général" ou dans "Open source")
Et comme ce code "Carrés" est opérationnel, tu va être bon pour lui faire subir le même sort. (sinon, pas de royalties ! (virtuelles les royalties, of course)
"Débutant", c'est pour poser des questions et les problèmes divers...
Je mets ton carré du diable dans la bibliothèque.
Et je retourne retourner le web à la recherche d'idées (peut être un générateur de recettes de cuisine à ingrédients aléatoires (j'aime l'innovation...)
)

Jusqu'à 7 c'est carré; mais au delà, c'est rectangulaire; remboursez !

Bon, et ton truc avec bmp's, tu nous le montre ou c'est top sicrèt ?
Si tu veux récupérer les royalties sur "IMC" il faut que tu copie ton code et que tu en fasse un nouveau thread (dans "Général" ou dans "Open source")
Et comme ce code "Carrés" est opérationnel, tu va être bon pour lui faire subir le même sort. (sinon, pas de royalties ! (virtuelles les royalties, of course)
"Débutant", c'est pour poser des questions et les problèmes divers...
Je mets ton carré du diable dans la bibliothèque.
Et je retourne retourner le web à la recherche d'idées (peut être un générateur de recettes de cuisine à ingrédients aléatoires (j'aime l'innovation...)

____________________
Roro
Roro
Hello
Dans les 6 cas il y a autant de lignes que de colonnes.
Dans les cas 3, 5, 7 j'ai mis une grille, dans les autre cas il n'y en a pas .
Effectivement, visuellement, cela ne ressemble pas à un carré.
Peut être que ce serait plus joli avec graphisme et couleurs.
Concernant "les BMP", j'y travaille, pour mon niveau c'est ardu, c'est en très bonne voie, cela prend du temps.
Si je suis bloqué sur une procédure particulière, je demanderais de l'aide.
Je préfère y arriver(si possible) seul pour plus de motivation.
J'applique la démarche suivante allègrement :
ACTION ---> DECISION ---> ITERATION
qui sont les trois mamelles de la programmation.
Désolé, je me suis laissé un peu allé ......
A+
Dans les 6 cas il y a autant de lignes que de colonnes.
Dans les cas 3, 5, 7 j'ai mis une grille, dans les autre cas il n'y en a pas .
Effectivement, visuellement, cela ne ressemble pas à un carré.
Peut être que ce serait plus joli avec graphisme et couleurs.
Concernant "les BMP", j'y travaille, pour mon niveau c'est ardu, c'est en très bonne voie, cela prend du temps.
Si je suis bloqué sur une procédure particulière, je demanderais de l'aide.
Je préfère y arriver(si possible) seul pour plus de motivation.
J'applique la démarche suivante allègrement :
ACTION ---> DECISION ---> ITERATION
qui sont les trois mamelles de la programmation.
Désolé, je me suis laissé un peu allé ......
A+
____________________
Castel
Castel
Bon, alors on attend les questions
En espérant pouvoir y répondre
En espérant pouvoir y répondre
____________________
Roro
Roro
• Index
1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie