QBasic Trouver le triangle a la plus grande S
Résolu/Fermé
SmErT
Messages postés
72
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
14 août 2015
-
28 avril 2012 à 09:38
SmErT Messages postés 72 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 14 août 2015 - 12 mai 2012 à 23:05
SmErT Messages postés 72 Date d'inscription lundi 24 décembre 2007 Statut Membre Dernière intervention 14 août 2015 - 12 mai 2012 à 23:05
A voir également:
- QBasic Trouver le triangle a la plus grande S
- Qbasic - Télécharger - Édition & Programmation
- Trouver adresse mac - Guide
- Comment trouver le mot de passe wifi sur son téléphone - Guide
- Trouver un film sans le titre - Télécharger - Divers TV & Vidéo
- Comment trouver le signal tv - Guide
6 réponses
Bonjour,
Ce petit programme te construit une tables de triangles
En faisant varier n, tu verras s'afficher les sommets des triangles.
Tu peux t'en inspirer pour la suite.
Ce petit programme te construit une tables de triangles
En faisant varier n, tu verras s'afficher les sommets des triangles.
Tu peux t'en inspirer pour la suite.
DECLARE SUB sommets (n AS INTEGER) DIM SHARED triangle AS INTEGER DIM SHARED tableTriangles(1000, 3) AS INTEGER CLS sommets (4) PRINT PRINT "Nombre de triangles : " ; STR$(triangle) END ' SUB sommets (n AS INTEGER) DIM i AS INTEGER, j AS INTEGER, k AS INTEGER triangle = 0 FOR i = 1 TO n - 2 FOR j = i + 1 TO n - 1 FOR k = j + 1 TO n triangle = triangle + 1 tableTriangles(triangle, 1) = i tableTriangles(triangle, 2) = j tableTriangles(triangle, 3) = k PRINT STR$(i); " "; STR$(j); " "; STR$(k) NEXT k NEXT j NEXT i END SUB
SmErT
Messages postés
72
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
14 août 2015
28 avril 2012 à 13:47
28 avril 2012 à 13:47
merci a toi Yoda.
SmErT
Messages postés
72
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
14 août 2015
9 mai 2012 à 22:39
9 mai 2012 à 22:39
salut.
dite comment je peux générée çà ?
merci.
dite comment je peux générée çà ?
si j'ai a b c abc ------------------------ si j'ai a b c d abc abd acd bcd ------------------------ si j'ai a b c d e abc abd abe acd ace ade bcd bce bde cde . . . ext
merci.
SmErT
Messages postés
72
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
14 août 2015
12 mai 2012 à 14:36
12 mai 2012 à 14:36
Salut.
Donc voilà, pour ne pas dire que j'ai ne rien fais et que j'attente de vous une repense toute cuite.
Mon problème c'est dans la partie ou ont calcule la surface de triangle, le prog prend tous les cas possible. Avec n point il fait n !/3 !
Mais moi je cherche que n !/((n-3)1*3 !)
Par exemple :
Pour 3 point ?un triangle
Pour 4 point ? 4 triangle
Pour 5 point ? 10 triangle ext
Je cherche le moine de filtrer les cas qui m'intéresse pas.
merci
Donc voilà, pour ne pas dire que j'ai ne rien fais et que j'attente de vous une repense toute cuite.
CLS REM triqngle OPTION BASE 1 'Tout les tableaux commence par 1 et non 0 INPUT "n="; n RANDOMIZE TIMER DIM a(n, 2) PRINT PRINT "------------------------Generateur coordonnées-------------------------------" PRINT FOR i = 1 TO n FOR j = 1 TO 2 a(i, j) = INT(RND * 50) PRINT a(i, j), NEXT j PRINT NEXT i PRINT PRINT "---------------Calcule de la longueur des cotes de triangle--------------------" PRINT PRINT w w = probligne(n) longligne = 0 DIM ligne(w, 5) m = 0 FOR i = 1 TO n - 1 FOR j = i + 1 TO n m = m + 1 ligne(m, 1) = a(i, 1) ligne(m, 2) = a(i, 2) ligne(m, 3) = a(j, 1) ligne(m, 4) = a(j, 2) longligne = SQR((ligne(m, 3) - ligne(m, 1)) ^ 2 + (ligne(m, 4) - ligne(m, 2)) ^ 2) ligne(m, 5) = longligne PRINT ligne(m, 1), ligne(m, 2), ligne(m, 3), ligne(m, 4), ligne(m, 5) NEXT j NEXT i PRINT PRINT "--------------------Calcule de la surface de triangle -----------------------" PRINT 't = prob DIM triangle(100, 4) DIM o AS INTEGER, p AS INTEGER, q AS INTEGER h = 0 z = 0 FOR o = 1 TO n - 2 FOR p = o TO n - 1 FOR q = p + 1 TO n h = h + 1 PRINT ligne(o, 5), ligne(p, 5), ligne(q, 5) 'triangle(h, 1) = ligne(o, 5) 'triangle(h, 2) = ligne(p, 5) 'triangle(h, 3) = ligne(q, 5) 'z = ((triangle(h, 1) + triangle(h, 2) + triangle(h, 3)) / 2) 'PRINT z 'striangle = SQR(z * (z - triangle(h, 1)) * (z - triangle(h, 2)) * (z - triangle(h, 3))) 'triangle(h, 4) = striangle 'PRINT triangle(h, 1), triangle(h, 2), triangle(h, 3), triangle(h, 4) NEXT q NEXT p NEXT o 'FUNCTION probtriangle(n) 'F = 1 'G = 6 'h = 1 'l = n - 3 'FOR i = 1 TO n ' F = F * i 'NEXT i 'FOR i = 1 TO l ' h = h * i 'NEXT i probtriangle = F / (l * G) 'END FUNCTION FUNCTION probligne (n) F = 1 G = 2 h = 1 l = n - 2 FOR i = 1 TO n F = F * i NEXT i FOR i = 1 TO l h = h * i NEXT i probligne = F / (l * G) END FUNCTION
Mon problème c'est dans la partie ou ont calcule la surface de triangle, le prog prend tous les cas possible. Avec n point il fait n !/3 !
Mais moi je cherche que n !/((n-3)1*3 !)
Par exemple :
Pour 3 point ?un triangle
Pour 4 point ? 4 triangle
Pour 5 point ? 10 triangle ext
Je cherche le moine de filtrer les cas qui m'intéresse pas.
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
FOR p = o TO n - 1
c'est une erreur, il faut mettre FOR p = o+1 TO n - 1
une autre remarque, DIM triangle(100, 4)
normalement le tableau triangle est un tableau d'entiers qui representent les index des trois sommets des triangles, alors on devrait ecrire:
DIM triangle(100, 3) as integer
Les aires des triangles sont des réèls et devraient être stockées si besoin dans un tableau de réèls.
Voilà la partie calcul d'aire remaniée:
FOR p = o TO n - 1
c'est une erreur, il faut mettre FOR p = o+1 TO n - 1
une autre remarque, DIM triangle(100, 4)
normalement le tableau triangle est un tableau d'entiers qui representent les index des trois sommets des triangles, alors on devrait ecrire:
DIM triangle(100, 3) as integer
Les aires des triangles sont des réèls et devraient être stockées si besoin dans un tableau de réèls.
Voilà la partie calcul d'aire remaniée:
PRINT PRINT "--------------------Calcule de la surface de triangle -----------------------" PRINT 't = prob DIM triangle(1000, 3) AS INTEGER DIM o AS INTEGER, p AS INTEGER, q AS INTEGER Dim h AS INTEGER, z AS DOUBLE h = 0 'index triangle z = 0 'aire triangle FOR o = 1 TO n - 2 FOR p = o + 1 TO n - 1 FOR q = p + 1 TO n h = h + 1 triangle(h, 1) = o triangle(h, 2) = p triangle(h, 3) = q PRINT "Triangle "; LTRIM$(STR$(h)); " ("; PRINT "P"; LTRIM$(STR$(triangle(h, 1))); "-"; PRINT "P"; LTRIM$(STR$(triangle(h, 2))); "-"; PRINT "P"; LTRIM$(STR$(triangle(h, 3))); ")" xA = a(triangle(h, 1), 1): yA = a(triangle(h, 1), 2) xB = a(triangle(h, 2), 1): yB = a(triangle(h, 2), 2) xC = a(triangle(h, 3), 1): yC = a(triangle(h, 3), 2) PRINT "P"; LTRIM$(STR$(triangle(h, 1))); PRINT "("; STR$(xA); ";"; STR$(yA); ") "; PRINT "P"; LTRIM$(STR$(triangle(h, 2))); PRINT "("; STR$(xB); ";"; STR$(yB); ") "; PRINT "P"; LTRIM$(STR$(triangle(h, 3))); PRINT "("; STR$(xC); ";"; STR$(yC); ")" z = ABS(((xB - xA) * (yC - yA)) - ((xC - xA) * (yB - yA))) / 2 PRINT "Aire :"; STR$(z) PRINT : PRINT "Appuyez sur une touche...": PRINT x$ = "" WHILE x$ = "" x$ = INKEY$ WEND NEXT q NEXT p NEXT o
SmErT
Messages postés
72
Date d'inscription
lundi 24 décembre 2007
Statut
Membre
Dernière intervention
14 août 2015
12 mai 2012 à 23:05
12 mai 2012 à 23:05
salut a vous.
merci Yoda
Donc voilà en se basons sur ton aide je suis arrivée au à la fin de se exo .
merci Yoda
Donc voilà en se basons sur ton aide je suis arrivée au à la fin de se exo .
REM triqngle BEEP INPUT "n="; n m = 2 h = 0 s = 0 u = 1 h = 0 k = prob(n) CLS IF n < 3 THEN PRINT PRINT "Avec le nombre de poit que vous aver donne vous pouvez pas avoire de triangle" PRINT ELSE RANDOMIZE TIMER DIM a(n, m) FOR i = 1 TO n FOR j = 1 TO m a(i, j) = INT(RND * 50) 'PRINT a(i, j), NEXT j 'PRINT NEXT i '---------------------------------------------------------------- DIM triangle(k, 7) DIM o AS INTEGER, p AS INTEGER, q AS INTEGER PRINT FOR o = 1 TO n - 2 FOR p = o + 1 TO n - 1 FOR q = p + 1 TO n h = h + 1 triangle(h, 1) = a(o, 1) triangle(h, 2) = a(o, 2) triangle(h, 3) = a(p, 1) triangle(h, 4) = a(p, 2) triangle(h, 5) = a(q, 1) triangle(h, 6) = a(q, 2) xA = triangle(h, 1) yA = triangle(h, 2) xB = triangle(h, 3) yB = triangle(h, 4) xC = triangle(h, 5) yC = triangle(h, 6) s = ABS(((xB - xA) * (yC - yA)) - ((xC - xA) * (yB - yA))) / 2 triangle(h, 7) = s 'PRINT xA; yA; xB; yB; xC; yC, s NEXT q NEXT p NEXT o PRINT '---------------------------------------------------------------- max = triangle(1, 7) s = 0 FOR i = 2 TO k s = triangle(i, 7) IF s > max THEN u = i NEXT i PRINT "le triangle qui a la plus grande aire a pour coordoner:" PRINT "A("; triangle(u, 1); ","; triangle(u, 2); ")", PRINT "B("; triangle(u, 3); ","; triangle(u, 4); ")", PRINT "C("; triangle(u, 5); ","; triangle(u, 6); ")" PRINT "et une aire de "; triangle(u, 7) END IF FUNCTION prob (n) F = 1 G = 6 H = 1 l = n - 3 FOR i = 1 TO n F = F * i NEXT i FOR i = 1 TO l H = H * i NEXT i prob = F / (H * G) END FUNCTION