Ecrire un programme en turbo pascal

Fermé
weirstrass - 16 mars 2010 à 21:15
 weirstrass - 16 mars 2010 à 22:55
Bonjour,


Je voudrais écrire le programme suivante:

j'ai 20 variables: x1,x2,x3,x4,x5, y1,y2,y3,y4,y5, z1,z2,z3,z4,z5, t1, ...,t5
Toutes prenant comme valeurs 0, 1, 2 ou 3 sauf x5, y5, z5 et t5 qui prennent 0, 1, 2, 3, 4, ou 5 comme valeurs.

Si 4x1+3.5x2+3.5x3+4x4+0.5x5 = 16.5
4y1+3.5y2+3.5y3+4y4+0.5y5= 20
4z1+3.5z2+3.5z3+4z4+0.5z5 = 21
4t1+3.5t2+3.5t3+4t4+0.5t5 = 21
x1+y1+z1+t1=5 et x2+y2+z2+t2 =5 et x3+y3+z3+t3 =5 et x4+y4+z4+t4 = 5 et x5+y5+z5+t5=5

alors afficher la listes des 20-uplets solutions en faisant des groupes de 5 (les xi, les yi, les zi et les ti séparés ) pour plus de lisibilité

J'ai essayé en enchainant des for, to, do mais ça fait trop de calcul à faire donc il marche pas (ou très très lent car n'affiche rien)

Comment faire ?
Merci !
A voir également:

2 réponses

totofrancois Messages postés 398 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 2 août 2013 44
16 mars 2010 à 21:56
bonsoir,

trop de calcul ? tu dois avoir une erreur, le pascal est suffisamment rapide ! tu devrai améliorer ton code déja !


boolean bool_1 = (4x1+3.5x2+3.5x3+4x4+0.5x5 = 16.5 )
boolean bool_2 = (4y1+3.5y2+3.5y3+4y4+0.5y5= 20
boolean bool_3 = (4z1+3.5z2+3.5z3+4z4+0.5z5 = 21
boolean bool_4 = (4t1+3.5t2+3.5t3+4t4+0.5t5 = 21
boolean bool_5 = (x1+y1+z1+t1=5 et x2+y2+z2+t2 =5
boolean bool_6 = (et x3+y3+z3+t3 =5 et x4+y4+z4+t4 = 5
boolean bool_7 = (et x5+y5+z5+t5=5
...
1
en fait j'suis plus que débutant donc si t'a un code a me proposer ce serait super génial parce que je galère un peu ! j'ai fait ce programme avec des vagues souvenir de prépa et de l'aide sur le net.

C'est bisard car en enchainant 10 boucles " for x1:=0to3 do for x2:=0to3 do ...for y5 :=0 to 3 do ..
et en enchainant les if...then (pour tester 3 ou 4 équations), le programme fonctionne mais ce n'est plus le cas avec les 20 inconnues (x1,x2...t5) et 9 équations.

Si t'as un code qui fonctionne je suis preneur, ou m'expliquer comment faire.

merci beaucoup !
0