IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Pascal Discussion :

Programme pour estimer le prix d'un objet


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Par défaut Programme pour estimer le prix d'un objet
    Bonjour,
    voila je débute en pascal et pour m'entrainer j'ai décider d'écrire un petit programme pascal pour estimer le prix d'un objet.
    mais je bloque sur certains points..mon programme n'a pas l'air correct.

    Pourriez vous m'indiquer ou cela ne va pas? j'ai bien séparer toutes les étapes pour une meilleurs compréhension... je blinderai le programme seulement après quand je suis sure que tout fonctionne.
    Peut on faire plus simple? merci de votre aide! j'attend surtout des critiques constructives pour me faire avancer dans mon apprentissage.
    Ce qui me pose le plus de problème étant le coup du random...
    De plus a la fin du programme..comment poser une condition que le prixfinal ne doit en aucun cas dépasser 70% de la valeur initiale? (une sorte de %max de 0.7)
    J'ai légèrement remodifier le programme...par contre pour la ligne avec le random voila ce que j'aimerais que le pourcentage soit influencer par la valeur (ici bluff ou diplomatie) avec un facteur aléatoire de 1 a 20
    ex:
    j'ai 30 en bluff auquel je rajoute une nombre comprit entre 1 et 20 et ensuite seulement je divise le total par 200 qui se rajoute au pourcentage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
     
    program revente;
    var marchand,typeobjet,ro,competence,duree,prixfinal,prixinitial: integer;
            pourcentage: real;
    begin
         repeat
               writeln ('entrer le prix initial de lobjet a vendre');
               readln (prixinitial);
         until prixinitial>0;
         repeat
         writeln ('indiquer le type dobjet 11-armes classique 12-armes exotique 13-armures 14-bijoux 15-autres');
         readln (typeobjet);
                case typeobjet of
                '11': pourcentage:=0.4;
                '12': pourcentage:=0.3;
                '13': pourcentage:=0.4;
                '15': pourcentage:=0.45;
                '16': pourcentage:=0.5;
                then
                    writeln ('mauvais choix');
                end;
         until typeobjet>10 and typeobjet<16;
         repeat
         writeln ('indiquer le type de marchands 1-honnete 2-filou 3-escroc');
         readln (marchand);
                case marchand of
                '1': pourcentage:=pourcentage; {idéalement ici j'aimerai un random entre -0.05 et +0.05 mais je n'ai pas trouver comment faire...)
                '2': pourcentage:=pourcentage-0.05;
                '3': pourcentage:=pourcentage-0.15;
                then
                writeln ('mauvais choix');
                end;
         until marchand>0 and marchand<4;
     
         repeat
               Randomize;
               writeln ('entrer la valeur de diplomatie ou de bluff');
               pourcentage:= pourcentage+((competence+rand(20))/200);
               readln (competence);
         until comp>-1;
         repeat
               writeln ('entrer la duree consacrée en jours a la revente de lobjet');
               readln (duree);
               case duree of
               '0':pourcentage-0.1;
               '>0 and <16' :pourcentage;
               '>15 and <31' : pourcentage:= pourcentage+0.02;
               '>30 and <61' : pourcentage:= pourcentage+0.04;
               '>60 and <91' : pourcentage:= pourcentage+0.07;
               '>90 and <121' : pourcentage:= pourcentage+0.1;
               '>120 and <181' : pourcentage:= pourcentage+0.13;
               '>180 and <361' : pourcentage:= pourcentage+0.20;
               end;
         until duree>-1;
         end;
         writeln (prixinitial*pourcentage);
         readln;
    end.

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 963
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 963
    Par défaut
    Joa,

    Pour commencer, il faut tenir compte des messages du compilateur (vu le code, tu en as forcément).

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Par défaut
    justement...je ne comprend pas ou sont mes erreurs..c'est pour cela que je demande de l'aide

  4. #4
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    tu peux poster le message d'erreur, afin de faciliter la détection de l'erreur. On a pas forcement de compilateur pascal sur nos machines ou envie de compiler les codes à chaque fois

    Il y a plein d'erreurs dans ton code : syntaxe, type incompatible, ...
    Commençant par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     case typeobjet of
                '11': pourcentage:=0.4;
                '12': pourcentage:=0.3;
                '13': pourcentage:=0.4;
                '15': pourcentage:=0.45;
                '16': pourcentage:=0.5;
                then
                    writeln ('mauvais choix');
                end;
    La syntaxe de la structure case-of n'est respecté. Aussi, typeObjet est de type Integer et tu essaye de la comparer avec des String.

    Une resivion de ton cours sur le pascal te sera bien utile.

    Une petite correction de ton code donne ce qui suit, mais je ne promet pas que le code va compiler ni faire ce que tu veux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    program revente;
       var 
            marchand, typeobjet, ro, competence, duree, prixfinal, prixinitial : Integer;
            pourcentage : real;
     
    begin
         repeat
               write('entrer le prix initial de lobjet a vendre : ');
               readln (prixinitial);
         until prixinitial>0;
     
         repeat
          write ('indiquer le type dobjet 11-armes classique 12-armes exotique 13-armures 14-bijoux 15-autres : ');
          readln (typeobjet);
          case typeobjet of
            11 : pourcentage := 0.4;
            12 : pourcentage := 0.3;
            13 : pourcentage := 0.4;
            15 : pourcentage := 0.45;
            16 : pourcentage := 0.5;
             else
                writeln ('mauvais choix');
          end;
        until (typeobjet>10) and (typeobjet<16); { () indispensable }
     
       repeat
         write ('indiquer le type de marchands 1-honnete 2-filou 3-escroc : ');
         readln (marchand);
         case marchand of
           1 : pourcentage:=pourcentage; {idéalement ici j'aimerai un random entre -0.05 et +0.05 mais je n'ai pas trouver comment faire...}
           2 : pourcentage:=pourcentage-0.05;
           3 : pourcentage:=pourcentage-0.15;
           else
               writeln ('mauvais choix');
          end;
        until (marchand>0) and (marchand<4);
     
         repeat
           Randomize;
           writeln ('entrer la valeur de diplomatie ou de bluff');
               pourcentage:= pourcentage+((competence+random(20))/200);
               readln (competence);
         until competence>-1;
     
         repeat
               write('entrer la duree consacrée en jours a la revente de l''objet :');
               readln(duree);
               case duree of
                 0 : pourcentage := pourcentage-0.1;
                 {1..15    : pourcentage;}
                 16..30  : pourcentage := pourcentage+0.02;
                 31..60  : pourcentage := pourcentage+0.04;
                 61..90   : pourcentage := pourcentage+0.07;
                 91..120 : pourcentage := pourcentage+0.1;
                 121..180 : pourcentage := pourcentage+0.13;
                181..361 : pourcentage := pourcentage+0.20;
              end;
         until duree>-1;
         end;
     
         writeln (prixinitial*pourcentage);
         readln;
    end.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Par défaut
    bon j'ai remodifier le programme et ça me donne quelque chose qui marche pas trop mal.
    Maintenant j'aimerai rajouter de l'aléatoire...et je ne sait pas comment m'y prendre...j'aimerais rajouter sur ma ligne
    pourcentage:= pourcentage+(competence/200) une variable qui prenne en compte une valeur comprise entre 1 et 20
    en gros ca donnerai
    pourcentage:= pourcentage+((competence*random(20))/200); {attention rand 20 comprit entre 1 et 20}
    ..et si jamais le rand(20) donne 1 j'aimerai une condition et si cela donne 20 j'aimerai une autre condition..possible de m'aiguiller?

    Sinon comment créer l'exécutable via dev pascal? impossible de trouver des infos pour la suite apres avoir lancer le programme...merci!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    program revente;
       var 
            marchand, typeobjet, ro, duree, prixinitial,prixfinal : integer;
            pourcentage,competence : real;
     
    begin
         repeat
               write('entrer le prix initial de lobjet a vendre : ');
               readln (prixinitial);
         until prixinitial>0;
     
         repeat
          write ('indiquer le type dobjet 11-armes classique 12-armes exotique 13-armures 14-bijoux 15-autres : ');
          readln (typeobjet);
          case typeobjet of
            11 : pourcentage := 0.4;
            12 : pourcentage := 0.3;
            13 : pourcentage := 0.4;
            15 : pourcentage := 0.45;
            16 : pourcentage := 0.5;
             else
                writeln ('Merci de faire la bonne selection!!');
          end;
        until (typeobjet>10) and (typeobjet<16); { () indispensable }
     
       repeat
         write ('indiquer le type de marchands 1-honnete 2-filou 3-escroc : ');
         readln (marchand);
         case marchand of
           1 : pourcentage:=pourcentage; {idéalement ici j'aimerai un random entre -0.05 et +0.05 mais je n'ai pas trouver comment faire...}
           2 : pourcentage:=pourcentage-0.05;
           3 : pourcentage:=pourcentage-0.15;
           else
               writeln ('Merci de faire la bonne selection!!');
          end;
        until (marchand>0) and (marchand<4);
     
         repeat
           Randomize;
           writeln ('entrer la valeur de diplomatie ou de bluff');
               readln (competence);
               pourcentage:= pourcentage+(competence/200);
     
         until competence>-1;
     
         repeat
               write('entrer la duree consacrée en jours a la revente de l''objet :');
               readln(duree);
               case duree of
                 0 : pourcentage := pourcentage-0.1;
                 {1..15    : pourcentage;}
                 16..30  : pourcentage := pourcentage+0.02;
                 31..60  : pourcentage := pourcentage+0.04;
                 61..90   : pourcentage := pourcentage+0.07;
                 91..120 : pourcentage := pourcentage+0.1;
                 121..180 : pourcentage := pourcentage+0.13;
                181..361 : pourcentage := pourcentage+0.20;
              end;
         until duree>-1;
     
         writeln (trunc(prixinitial*pourcentage));
         readln;
    end.

  6. #6
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Citation Envoyé par jadrax Voir le message
    pourcentage:= pourcentage+(competence/200) une variable qui prenne en compte une valeur comprise entre 1 et 20
    Random(x) donne un nombre compris entre 0 et x-1. Pour avoir un nombre compris entre 1 et 20, tu dois faire
    Aussi, ne met pas randomize dans la boucle repeat sinon tu auras presque le meme nombre a chaque fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    repeat
           Randomize;
           writeln ('entrer la valeur de diplomatie ou de bluff');
               readln (competence);
               pourcentage:= pourcentage+(competence/200);
     
         until competence>-1;
    Pour ajouter des condition pour 1 et 20, la solution c'est de les ajouter, je ne vois pas d'autres solutions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    repeat
           writeln ('entrer la valeur de diplomatie ou de bluff');
           readln (competence);
           r:=1+random(20);
     
           if(r=1) then
              one()
           else if (r=20) then
             twenty()
           else
             other();
     
           pourcentage:= pourcentage+((competence*r)/200);
     
         until competence>-1;

Discussions similaires

  1. (Québec) Estimation de Prix pour un site web ?
    Par Atmaelius dans le forum Devis
    Réponses: 7
    Dernier message: 23/12/2012, 15h52
  2. Fourchette d'estimation de prix pour site
    Par totoz dans le forum Devis
    Réponses: 9
    Dernier message: 24/06/2009, 09h17
  3. existe t 'il des programme pour transformer les bases
    Par creazone dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/10/2004, 14h11
  4. [TP]Programme pour piloter port série et parallèle...
    Par DDR dans le forum Turbo Pascal
    Réponses: 10
    Dernier message: 15/04/2004, 21h52
  5. Créer de programme pour WIndows avec Turbo Pascal
    Par kaygee dans le forum Turbo Pascal
    Réponses: 16
    Dernier message: 20/08/2003, 23h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo