CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Prob dans un prog en liberty basic

chris12
chris12
Niveau 9
01 juin 2005 à 15:25:42

Bonjour, je débute dans la programmation et je commence avec le liberty Basic.
J´ai essayé de faire un prog pour calculer des équations à 2 inconnus et j´ai un problème à la ligne 8 du programme suivant ( au calcul) :

Nomainwin
PROMPT " Que represente x ? "; x$
PROMPT " Que represente y ? "; y$
PROMPT " Combien de x ? "; Nombrex
PROMPT " Combien de y ? "; Nombrey
PROMPT " Résultat 1 = ? ?"; Resultat1
PROMPT " Résultat 2 = ? ?"; Resultat2
( Nombrex + ( Nombrey * ( -Nombrey))) = ( (Resultat1 * ( -Nombrey)) + Resultat2)
Notice Nombrex
END

Merci de me dire ou/et de m´expliquer quel est l´erreur, j´ai essayé au début sans les parenthèses, avec qu´une seule variable avant le égal mais le prob persite

dnob700
dnob700
Niveau 10
01 juin 2005 à 16:47:32

je comprend pas du tout ce que tu calcule.

Par contre ne mets qu´une seul variable avant le égal ( dans le genre) :

Nombrex=((Resultat1*(-Nombrey))+ Resultat2)-(Nombrey*(-Nombrey)

( pas de parenthèse autour de nom de la variable à gauche).
Mais je ne suis pas sur que ça soit vraiment ça que tu veux calculer.

chris12
chris12
Niveau 9
01 juin 2005 à 16:55:08

il devrait y avoir le même pour Nombrey

tjrs le même prob ( erreur de syntax d´après l´interpreteur)

ca aurait été pour calculer un systeme à 2 inconnus style :

{2.4x + 2y = 20
{x + y = 8

chris12
chris12
Niveau 9
01 juin 2005 à 16:58:58
  • je rajouterais le meme pour Nombrey
chris12
chris12
Niveau 9
01 juin 2005 à 18:21:13

nouvelle version plus claire :

Nomainwin
PROMPT " Resultat 1 = ? "; Resultat1
PROMPT " Resultat 2 = ? "; Resultat2
PROMPT " Combien de x pour résultat 1 ? "; xResultat1
PROMPT " Combien de y pour résultat 1 ? "; yResultat1
PROMPT " Combien de x pour résultat 2 ? "; xResultat2
PROMPT " Combien de y pour résultat 2 ? "; yResultat2
Resultat1 = xResultat1*x + yResultat1*y
Resultat2 = yResultat2*x + yResultat2*y
NOTICE " x = " ; x
NOTICE " y = " ; y
END

elle m´affiche un résultat au moins ( il est faux par contre), le problème est que j´arrive à definir par quoi multiplier x et y mais je n´arrive pas à définir x et y.

Donc la question est " Comment définir des inconnus ou du moins dans mon problème les calculer ? "

Merci de me donner une aide

dnob700
dnob700
Niveau 10
01 juin 2005 à 18:41:31

disont que tu ne peut pas.

une langage de programmation n´est pas un solveur d´équation.
Quand il lis ta ligne, que fait-il ? il calcule ce que veut la partie de roite ( ici plus ou moins n´importe quoi car tu n´a pas défini x et y) et il t´affiche le résultat.

la seul manière pour résoudre ton problème est d´utiliser une formule directe pour calculer x et y. Par bonheur, pour ce genre de système ça existe :

on va calculer x et y dans :

a*x + b*y = r1
c*x + d*y = r2

Nomainwin
PROMPT " Resultat 1 = ? " ; r1
PROMPT " Resultat 2 = ? " ; r2
PROMPT " Combien de x pour résultat 1 ? " ; a
PROMPT " Combien de y pour résultat 1 ? " ; b
PROMPT " Combien de x pour résultat 2 ? " ; c
PROMPT " Combien de y pour résultat 2 ? " ; d
d=a*d-b*c

x = ( r1*d-b*r2)/d
y = ( a*r2-r1*c)/d
NOTICE " x = " ; x
NOTICE " y = " ; y
END

Pour bien faire tu devrait vérifier que d n´est pas nul sinon ça veut dire qu´il n´y a pas de solution.

chris12
chris12
Niveau 9
01 juin 2005 à 21:03:08

oki merci, c´était bien ce que je m´étais dit pour les inconnus mais ton calcul ne me trouve pas la bonne réponse :
par exemple pour :
{x + y = 9
{2x + 2.4y = 20

Il trouve x = 0.66666667
y = 0.83333333

au lieu de x = 4
y = 5

j´ai trouvé un nouveau truc :

Nomainwin
PROMPT " Resultat 1 = ? "; Resultat1
PROMPT " Resultat 2 = ? "; Resultat2
PROMPT " Combien de x pour résultat 1 ? "; xResultat1
PROMPT " Combien de y pour résultat 1 ? "; yResultat1
PROMPT " Combien de x pour résultat 2 ? "; xResultat2
PROMPT " Combien de y pour résultat 2 ? "; yResultat2
y = ( Resultat1 - xResultat1*x)/xResultat1
y = ( Resultat2 - xResultat2*x)/yResultat2
x = ( Resultat1 - yResultat1*y)/xResultat1
x = ( Resultat2 - yResultat2*y)/yResultat2
NOTICE " x = " ; x
NOTICE " y = " ; y
END

qui me trouve par contre x = 0
et y = 8.33333333

dnob700
dnob700
Niveau 10
01 juin 2005 à 21:15:05

tu m´excuse, mais ma formule donne les bon résultats.

si ce n´est pas le cas c´est que tu as fait une erreur en la recopiant.

dnob700
dnob700
Niveau 10
01 juin 2005 à 21:16:29

il faut ben comprendre que ton dernier programme ne peut pas mrcher car tu lui dit : y vaut tant en fonction de x. Mais à ce moment il ne connait pas encore x. x vaut peut-être zéro pour lui ( ou je ne sais quoi) mais pas la bonne valeur.

la seul formule qui peut marcher est la mienne qui te donne la valeur de x indépendamment de celle de y et vice versa.

chris12
chris12
Niveau 9
02 juin 2005 à 20:10:09

je sais pas j´ai utilisé le bon vieux copié/collé par contre les ligne :
a*x + b*y = r1
c*x + d*y = r2
étaient considérée comme erreur donc j´ai viré et après le calcul utilisé était un calcul vu en cours

je pensais que ça ne calculait pas ligne par ligne mais ensemble

merci quand meme

dnob700
dnob700
Niveau 10
02 juin 2005 à 22:20:23

non non, tout est fait ligne par ligne lorsque ton programme s´exécute.

Ma formule est quand même juste.
a*x + b*y = r1
c*x + d*y = r2
c´était juste pour montrer ce qu´on va calculer.

dans ton cas ou a :
1*x + 1*y = 9
2*x + 2.4*y = 20

donc ma formule dit :
x=(9*2.4-1*20)/(1*2.4-1*2) qui est bien égale à 4
ensuite il y a peut-être des problème evec les type de donnée qui sont considéré comme entier ou je ne sais quoi ou alors tu t´es trompé en entrant les valeurs que tu voulais calculer.

chris12
chris12
Niveau 9
05 juin 2005 à 19:26:10

ok merci pour ton aide

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment