π
<-
Chat plein-écran
[^]

besoin d'aide

Programmation et implémentation d'algorithmes.

Re: besoin d'aide

Message non lude saidina hamza » 12 Oct 2014, 22:04

je voudrais mettre des variables dans Request il peuvent allez de 7 à 12 variables. je voudrais que si j'ai 7 données les autres espaces je laisse des espaces libres et que la calculatrice me calcule que la ou il y a des données
Avatar de l’utilisateur
saidina hamza
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 91.4%
 
Messages: 4
Inscription: 11 Oct 2014, 20:57
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BTS

Re: besoin d'aide

Message non lude Bisam » 12 Oct 2014, 22:53

Il suffit d'utiliser des listes comme seules variables, avec la bonne taille !
Tu peux faire tous les calculs directement sur les listes
Tu peux même faire afficher toutes tes listes en même temps grâce aux matrices.

Cela simplifie encore grandement ton code :
Code: Tout sélectionner
()
Prgm
Local d,e,g,pe,pg,ce,dg
Lbl deb
Dialog
  Title "Tableau"
  Request "Donner la liste des prix", d
  Request "Q1 : trop cher", e
  Request "Q2 : mauvaise qualité", g
EndDlog
Try
  expr(d)->d
  expr(e)->e
  expr(g)->g
Else
  Text "Une des listes entrées est erronée"
  Goto deb
EndTry
e*100/sum(e)->pe
g*100/sum(g)->pg
cumSum(pe)->ce
100-cumSum(pg)->dg
ClrIO
Pause augment(["Prix", "trop cher", "en %", "% cumulé", "camelote", "en %", "% cumulé", "% acheteurs"]; {d, e, pe, ce, g, pg, dg, 100-ce-dg}T)
EndPrgm

Le "T" de la dernière ligne est le "T" de la transposée, que l'on obtient dans [2nd] [Math] [4] [1].
J'espère avoir bien compris ce que tu voulais...
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: besoin d'aide

Message non lude saidina hamza » 13 Oct 2014, 21:16

Code: Tout sélectionner
()
Prgm
Dialog
  Title "prévision des ventes"
  Request "liste prix",d
EndDlog
expr(d)»d
ClrIO
dim(d)»g
If fPart(g/2)=0 Then
  mid(d,d[1],g/2)»k
Else
  mid(d,d[1],g/2+0.5)»k
EndIf
mean(right(k,g))»e   © (je voudrais moyenne de d[i] qui se trouve à droite)
mean(left(k,g))»f    © (je voudrais moyenne de d[i] qui se trouve à gauche)
mean(right(d,g))»h   © (je voudrais la moyenne de dim(d) qui se trouve à droite )
main(left(d,g))»j  © (je voudrais la moyenne de dim(d) qui se trouve à gauche)
Disp "X1="&string(h)&"   Y1="&string(e)
Pause "X2="&string(j)&"   Y2="&string(f)
Disp string(f)&"=a*"&string(j)&"+b"
Pause string(e)&"=a*"&string(h)&"+b"
(f-e)/(h-j)»a
e-a*h»b
EndPrgm
Avatar de l’utilisateur
saidina hamza
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 91.4%
 
Messages: 4
Inscription: 11 Oct 2014, 20:57
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BTS

Re: besoin d'aide

Message non lude Bisam » 13 Oct 2014, 22:04

Je corrige une petite erreur sur le programme précédent et j'en profite pour mettre des valeurs approchées arrondies à 2 décimales :
Code: Tout sélectionner
()
Prgm
Local d,e,g,pe,pg,ce,dg
Lbl deb
Dialog
  Title "Tableau"
  Request "Donner la liste des prix", d
  Request "Q1 : trop cher", e
  Request "Q2 : mauvaise qualité", g
EndDlog
Try
  expr(d)->d
  expr(e)->e
  expr(g)->g
Else
  Text "Une des listes entrées est erronée"
  Goto deb
EndTry
approx(e*100/sum(e))->pe
approx(g*100/sum(g))->pg
cumSum(pe)->ce
shift(pg)->dg
0->dg[1]
100-cumSum(dg)->dg
ClrIO
Pause augment(["Prix", "trop cher", "en %", "% cumulé", "camelote", "en %", "% cumulé", "% acheteurs"]; round({d, e, pe, ce, g, pg, dg, 100-ce-dg},2)T)
EndPrgm

Le "T" de la dernière ligne est le "T" de la transposée, que l'on obtient dans [2nd] [Math] [4] [1].
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: besoin d'aide

Message non lude saidina hamza » 24 Oct 2014, 11:51

(en gros les données peuvent être inconnu pour les calculer j'ai l'habitude de mettre 0 et avec la condition If ... Then ... EndIf je les calcule )
Code: Tout sélectionner
()
Prgm
ClrIO
Dialog
  Request "Chiffre d'affaires",c
  Request "charges variable",cv
  Request "Marge sur cout var",sv
  Request "charges fixes",cf
  Request "résultat",r
EndDlog
expr(c)»c
expr(cv)»cv
expr(sv)»sv
expr(cf)»cf
expr(r)»r
Lbl a1
If cv=0 Then 
  c-sv»cv
  Goto a1
EndIf
If c>0 and cv>0 and sv=0 Then
  c+cv»sv
  Goto a1
EndIf
If sv=0 and cf>0 and r>0 Then
  cf+r»sv
  Goto a1
EndIf
If c=0 Then
  cv+sv»c
  Goto a1
EndIf
If cf=0 Then
  sv-r»cf
  Goto a1
EndIf
If r=0 Then
  sv-cf»r
  Goto a1
EndIf
seq(i,i,1,1)»b
b*c/c*100»ca     (pourcentage
b*cv/c*100»chv       .....
b*sv/c*100»msv      ......
b*cf/c*100»chf     ........
b*r/c*100»re         ....... pourcentage)
b*c»c        (données ou calculés
b*cv»cv       .........
b*sv»sv        .........
b*cf»cf         ........
b*r»r            ..... données ou calculés )
Pause augment(["chiffre d'affaire","charges variable","MSCV","charges fixes","résultat"];{c,cv,sv,cf,r}T)
Pause augment(["chiffre d'affaire","charges variable","MSCV","charges fixes","résultat"];{ca,chv,msv,chf,re}T)
EndPrgm
Avatar de l’utilisateur
saidina hamza
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 91.4%
 
Messages: 4
Inscription: 11 Oct 2014, 20:57
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: BTS

Re: besoin d'aide

Message non lude Bisam » 24 Oct 2014, 12:58

Voici quelques améliorations possibles :
1) Utilise des variables locales pour ne pas polluer ton espace de travail avec des variables qui ne servent que dans ton programme.
2) Donne des valeurs par défaut égales à 0 (pour ne pas être obligé de le taper... et du coup de pas oublier)
3) Évite le Goto avec une boucle while (ou même simplement des If bien écrits...) (d'ailleurs, il me semble qu'il y a une erreur dans l'une des formules : si sv=0, il faut le calculer en faisant c-cv et non c+cv, si je ne m'abuse)
4) Ta variable b ne sert à rien, ainsi que les 3/4 des calculs suivants. En plus, tu pourrais tout simplifier en mettant tout dans une seule liste.
5) Tu peux tout afficher (chiffres exacts ET pourcentages) dans un même tableau.
6) Il y a pas mal de fautes d'orthographe...

Voici une façon d'améliorer tout ce que je viens de citer :
Code: Tout sélectionner
()
Prgm
Local c, cv, sv, cf, r, chif
ClrIO
"0"»c
c»cv
c»sv
c»cf
c»r
Dialog
  Request "Chiffre d'affaires",c
  Request "Charges variable",cv
  Request "Marge sur coût var",sv
  Request "Charges fixes",cf
  Request "Résultat",r
EndDlog
expr(c)»c
expr(cv)»cv
expr(sv)»sv
expr(cf)»cf
expr(r)»r
While c*cv*sv*r*cf=0
  If cv=0
    c-sv»cv
  If sv=0 and c>0 and cv>0
    c-cv»sv
  If sv=0 and cf>0 and r>0
    cf+r»sv
  If c=0
    cv+sv»c
  If cf=0
    sv-r»cf
  If r=0
    sv-cf»r
EndWhile
{c, cv, sv, cf, r}»chif
Pause augment(["Chiffre d'affaire", "Charges variables", "MSCV", "Charges fixes", "Résultat"];{chif, 100*chif/c}T)
EndPrgm
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile


Retourner vers Programmation

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 14 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1603 utilisateurs:
>1581 invités
>17 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)