π
<-

besoin d'aide

Programmation et implémentation d'algorithmes.

Re: besoin d'aide

Unread postby 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
User avatar
saidina hamza
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 91.4%
 
Posts: 4
Joined: 11 Oct 2014, 20:57
Gender: Male
Calculator(s):
MyCalcs profile
Class: BTS

Re: besoin d'aide

Unread postby 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 basic-68k : Select all
()
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...
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: besoin d'aide

Unread postby saidina hamza » 13 Oct 2014, 21:16

Code basic-68k : Select all
()
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
User avatar
saidina hamza
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 91.4%
 
Posts: 4
Joined: 11 Oct 2014, 20:57
Gender: Male
Calculator(s):
MyCalcs profile
Class: BTS

Re: besoin d'aide

Unread postby 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 basic-68k : Select all
()
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].
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: besoin d'aide

Unread postby 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 basic-68k : Select all
()
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
User avatar
saidina hamza
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 91.4%
 
Posts: 4
Joined: 11 Oct 2014, 20:57
Gender: Male
Calculator(s):
MyCalcs profile
Class: BTS

Re: besoin d'aide

Unread postby 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 basic-68k : Select all
()
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
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile


Return to Programmation

Who is online

Users browsing this forum: ClaudeBot [spider] and 4 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1004 utilisateurs:
>963 invités
>34 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)