Algorithmes

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
sophia02030
Membre Naturel
Messages: 37
Enregistré le: 18 Mar 2020, 12:16

Algorithmes

par sophia02030 » 21 Mar 2020, 17:50

Bonjour !
Je dois faire un algorithme à partir de cet énoncé :
Écrire l'algorithme qui calcule le prix HT payé par le client et le montant de la remise en sachant que l'entreprise n'accorde pas de remise lorsque le CA HT est inférieur à 500€ HT, le taux de remise accordé est de 3% lorsque le CA HT est compris entre 500€ HT et 1 500€ HT et, il est de 4 % lorsque le CA HT est supérieur à 1 500€ HT.

J'ai fais l'algorithme :

Début
Déclarer Réel : Prix HT payé, Chiffre d’affaires HT, Nombre, Taux remise, montant remise

Déclarer Texte : Remise

Déclarer Entier : Cinq cent, taux 3%, mille cinq cent, taux 4%
Cinq cent <— 500
Taux 3% <— 0,03
Mille cinq cent <— 1500
Taux 4% <— 0,04


Entrer Prix HT payé
CA HT

Si CA HT >= 500 et CA HT <= 1500 alors
Remise <— « L’entreprise accorde une remise de 3% »
Fin de si

Si CA > 1500 alors
Remise <— « L’entreprise accorde une remise de 4% »
Fin de si

Sinon
CA HT < 500 alors
Remise <— « L’entreprise n’accorde pas de remise »
Fin de sinon

Montant remise <— prix HT * Taux remise
Prix HT <— Prix HT - montant remise

Sortir Prix HT
Montant remise
Fin

Est-ce que vous pourriez me corriger s'il y a des erreurs.
Merci !
(Je précise que l'exercice demande juste d'écrire l'algorithme)



lyceen95
Membre Complexe
Messages: 2263
Enregistré le: 14 Juin 2019, 23:42

Re: Algorithmes

par lyceen95 » 21 Mar 2020, 18:00

Vers la fin, tu as cette instruction : Montant remise <— prix HT * Taux remise
Dans cette instruction, tu utilises prixHT, mais jusque là, je n'avais pas vu prixHT nulle part.
Et idem, TauxRemise n'est jamais initialisé.

Utilise des noms de variables sans espace : TauxRemise, PrixHT ou bien Taux_Remise, Prix_HT si tu veux, mais pas Taux Remise, Prix HT

GaBuZoMeu
Habitué(e)
Messages: 6132
Enregistré le: 05 Mai 2019, 09:07

Re: Algorithmes

par GaBuZoMeu » 21 Mar 2020, 18:08

Déclarer Entier : ... taux 3% ...
...
Taux 3% <— 0,03
...

sophia02030
Membre Naturel
Messages: 37
Enregistré le: 18 Mar 2020, 12:16

Re: Algorithmes

par sophia02030 » 21 Mar 2020, 18:21

Je dois juste enlever les espaces ? Je dois remplacer Montant remise <- prix HT * Taux remise par quoi ?

Je n'ai pas compris ton message Gabuzomeu..

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

Re: Algorithmes

par fatal_error » 21 Mar 2020, 18:48

slt,

gbzm te dit que dans un Entier (tu as déclaré taux 3% comme tel) tu dois pas mettre un truc genre 0.03 (qui n'est pas entier)

mis à part ya pas mal de retours, mais le puls gênant est:
Nul part tu ne calcules le montant de la remise en fonction du prix payé. Tu as une variable Remise de type Texte (qui sert à rien soit dit en passant), mais tu ne choisis pas si le taux de remise est de 3 ou 4% et tu vois bien que lorsque tu calcules
Montant remise <— prix HT * Taux remise
ben t'as jamais mis quoi que ce soit dans Taux remise
la vie est une fête :)

sophia02030
Membre Naturel
Messages: 37
Enregistré le: 18 Mar 2020, 12:16

Re: Algorithmes

par sophia02030 » 21 Mar 2020, 19:24

Il faudrait que j'écrive à chaque "Si"
Entrer
Montant remise <- Prix HT * 0,03
Montant remise <- Prix HT * 0,04
?

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

Re: Algorithmes

par fatal_error » 21 Mar 2020, 19:35

oui, ou
taux remise <- 0.03
taux remise <- 0.04
la vie est une fête :)

sophia02030
Membre Naturel
Messages: 37
Enregistré le: 18 Mar 2020, 12:16

Re: Algorithmes

par sophia02030 » 21 Mar 2020, 19:53

Début
Déclarer Réel : Prix HT payé, Chiffre d’affaires HT, Nombre, Taux remise, montant remise

Déclarer Texte : Remise

Déclarer Entier : Cinq cent, taux 3%, mille cinq cent, taux 4%
Cinq cent <— 500
Taux 3% <— 0,03
Mille cinq cent <— 1500
Taux 4% <— 0,04


Entrer Prix HT payé
CA HT

Si CA HT >= 500 et CA HT <= 1500 alors
Remise <— « L’entreprise accorde une remise de 3% »
Taux remise <— Prix HT * 0,03
Fin de si

Si CA > 1500 alors
Remise <— « L’entreprise accorde une remise de 4% »
Taux remise <— Prix HT * 0,04
Fin de si

Sinon
CA HT < 500 alors
Remise <— « L’entreprise n’accorde pas de remise »
Fin de sinon

Prix HT <— Prix HT - montant remise

Sortir Prix HT
Montant remise
Fin

C'est mieux comme ça ?
Merci beaucoup pour votre aide ! :)

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

Re: Algorithmes

par fatal_error » 21 Mar 2020, 20:10

ben c'est mieux mais pas suffisant:
dans ton Sinon, tu dis pas que le Taux de remise est de 0

Par ailleurs tu as supprimé le calcul du montant de remise

Voici un exemple
Code: Tout sélectionner
DEBUT
  Reel montantClient, CA_entreprise, prixAPayer, tauxRemise, montantRemise;
  // constante signifie que la valeur ne changera pas.
  Constante Entier CA_MIN = 500;
  Constante Reel TAUX_MIN = 0.03;
  Constante Entier CA_MAX = 1500;
  Constante Reel TAUX_MAX = 0.04;

  SAISIR(montantClient)
  SAISIR(CA_entreprise)

  SI CA_entreprise < CA_MIN ALORS
    tauxRemise = 0;
  SINON_SI CA_entreprise < CA_MAX ALORS
    tauxRemise = TAUX_MIN;
  SINON
    tauxRemise = TAUX_MAX;
  FINSI
  AFFICHER(tauxRemise) // non demandé par l'exercice

  montantRemise = tauxRemise * montantClient;
  prixAPayer = montantClient - montantRemise;
  SORTIR(prixAPayer, montantRemise)
FIN

qui pourrait presque compiler :) si tu copies colle le code ci-dessous dans http://cpp.sh/ (à la place du code existant) et cliques sur RUN
Code: Tout sélectionner
#define Constante const
#define DEBUT int main () {
#define FIN return 0;}
#include <iostream>
#define SI if (
#define ALORS ) {
#define FINSI }
#define SINON_SI } else if (
#define SINON } else {
#define Reel float
#define Entier int
#define SAISIR(x) std::cout<<"saisir "#x<<std::endl;std::cin >> x;
#define AFFICHER(x) std::cout<< ""#x" : "<<x<<std::endl;
#define SORTIR(a,b) AFFICHER(a) AFFICHER(b)
DEBUT
  Reel montantClient, CA_entreprise, prixAPayer, tauxRemise, montantRemise;
  // constante signifie que la valeur ne changera pas.
  Constante Entier CA_MIN = 500;
  Constante Reel TAUX_MIN = 0.03;
  Constante Entier CA_MAX = 1500;
  Constante Reel TAUX_MAX = 0.04;

  SAISIR(montantClient)
  SAISIR(CA_entreprise)

  SI CA_entreprise < CA_MIN ALORS
    tauxRemise = 0;
  SINON_SI CA_entreprise < CA_MAX ALORS
    tauxRemise = TAUX_MIN;
  SINON
    tauxRemise = TAUX_MAX;
  FINSI
  AFFICHER(tauxRemise) // non demandé par l'exercice

  montantRemise = tauxRemise * montantClient;
  prixAPayer = montantClient - montantRemise;
  SORTIR(prixAPayer, montantRemise)
FIN
la vie est une fête :)

sophia02030
Membre Naturel
Messages: 37
Enregistré le: 18 Mar 2020, 12:16

Re: Algorithmes

par sophia02030 » 21 Mar 2020, 20:50

Début
Déclarer Réel : Prix HT payé, Chiffre d’affaires HT, Nombre, Taux remise, montant remise

Déclarer Texte : Remise

Déclarer Entier : Cinq cent, taux 3%, mille cinq cent, taux 4%
Cinq cent <— 500
Taux 3% <— 0,03
Mille cinq cent <— 1500
Taux 4% <— 0,04

Entrer Prix HT payé
CA HT

Si CA HT >= 500 et CA HT <= 1500 alors
Remise <— « L’entreprise accorde une remise de 3% »
Taux remise <— Prix HT * 0,03
Fin de si

Si CA > 1500 alors
Remise <— « L’entreprise accorde une remise de 4% »
Taux remise <— Prix HT * 0,04
Fin de si

Sinon
CA HT < 500 alors
Remise <— « L’entreprise n’accorde pas de remise »
Taux remise = 0
Fin de sinon

Montant remise <— Prix HT * taux remise
Prix HT <— Prix HT - montant remise

Sortir Prix HT
Montant remise
Fin

Merci pour ton exemple, je m'en suis un peu inspirée, j'espère que c'est bon ce coup ci ?

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

Re: Algorithmes

par fatal_error » 21 Mar 2020, 20:56

c'est bon pour moi. Ya des trucs mineurs mais c'est du détail et de toute façon pour du pseudo code on s'en fout

N'oublies pas de tenir compte des remarques de lyceen95 et gbzm
la vie est une fête :)

lyceen95
Membre Complexe
Messages: 2263
Enregistré le: 14 Juin 2019, 23:42

Re: Algorithmes

par lyceen95 » 21 Mar 2020, 22:51

Ouais, bof quand même.
Tu as une variable qui s'appelle TauxRemise. Dans cette variable, tu devrais normalement avoir un taux, et rien d'autre. Donc pas ça : Taux remise <— Prix HT * 0,03

Tout à la fin, il y a l'instruction sortir . Ok.
Mais après cette instruction, il y a une ligne qui ne va pas.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

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

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite