Re : Algo Caisse de magasin

Ces forums sont actuellement fermés. Vous ne pouvez donc plus y poster de messages. Les sujets existants sont toutefois conservés pour historique.

Sujet en cours de lecture : Algo Caisse de magasin par | (Haut de page) |


Re : Algo Caisse de magasin

Tian Envoyé le : 23/11/2004 à 7:49
Bonjour,
Marc a dit :

J'ai presque fini un programme d'algo concernant une caisse de supermarché mais j'ai un petit probleme conçernant la monnaie à rendre. Je dois calculer celle-ci selon la disponibilité de la caisse.
Afin d'eviter de dupliquer beaucoup de code comme ici, il vaut mieux utiliser des tableaux. Voici le pseudo-code commente (je ne connais pas les conventions de notations que vous utilisez car cela peut varier beaucoup)tab_valeur := [100, 50, 20, 10, 5, 2, 1];
tab_caisse := [C, D, E, F, G, H, I];  // Ici ce sont les valeurs entrees par l'utilisateur
tab_monnaie := [0, 0, 0, 0, 0, 0, 0]; // La monnaie a rendre

nbr_element := 7 //Le nombre de valeurs differentes de monnaie, c'est a dire le nombre d'element dans chacun des tableaux precedents

index := 0; //L'index courant dans les tableaux

Monnaie:=SommeDonnee-MontantAchat;

while (index < nbr_element) and (Monnaie > 0) do
begin
  valeur_courante := tab_valeur[index];
  while (Monnaie >= valeur_courante) and (tab_caise[index] >= 1) do
  begin
    tab_caisse[index] := tab_caisse[index]-1; //suppression d'une unite de la valeur courante
    Monnaie := Monnaie - valeur_courante; //suppression de la valeur courante de la somme a rendre
    tab_monnaie[index] := tab_monnaie[index]+1; //incrémentation pour savoir le nombre d'element de la valeur courante a render
  end;
  index := index+1;
end;
Ca devrait fonctionner. Pour verifier que c'est le cas, le mieux serait de le coder dans un langage donne. Mais si ce n'est pas possible, il faut prendre un papier et simuler le comportement du programme en notant les differentes valeurs que prennent les variables (et surtout verifier les conditions d'arret des boucles).  

Réponses...


Date serveur : 20/02/2012 à 1:56
Les heures sont affichées en GMT +1 (Heure d'hiver)