Enregistrement dans tableaux

Enregistrement dans tableaux - Algo - Programmation

Marsh Posté le 08-06-2009 à 09:07:18    

Bonjour,
J'ai un exercice à résoudre, voici ma résolution mais j'aurais besoin de 2-3 conseils:
 
Ex:
 
On ne peut vendre un livre que si le stock est >0. Lorsque l'on vend un livre, son stock diminue de 1 et la caisse augmente du prix de vente.  
Lorsqu'on reprend un livre, son stock augmente de 1 et la caisse diminue du prix de vente. Attention on ne pourra reprendre un livre que si la caisse est assez remplie... Lors de toute manipulation d'argent le cahier de caisse doit être mis à jour, dans le fichier "caisse.txt".  
 
 
Procédure vente_livre()  
Variable num,isbn,titre, auteur,editeur,px_vente,stock, truc en alphanum  
 
Debut  
 
Ecrire "Entrez isbn"  
Lire num  
Ouvrir "livre.txt" sur 1 en lecture  
stock <- 50  
Tant que (non(EOF(fichier livre.txt)))  
Lire fichier (1), truc  
isbn <- mid (truc, 1,20)  
titre <- mid (truc, 21,50)  
auteur <- mid(truc,71,50)  
editeur <- mid(truc,121,50)  
px_vente <- mid(truc,171,6)  
stock<- mid(truc,177,3)  
 
si code <> isbn alors  
Ecrire"Le livre n'existe pas"  
 
sinonsi stock>0 alors  
Ecrire isbn & titre & auteur & editeur & px_vente & stock  
stock <- stock - 1  
finsi
Fin tant que  
Fermer(1)  
 
Fin  
 
Peut-on me dire si le code suivant est juste et comment puis-je enregistrer ses informations dans un tableaux en sachant que je dois réutiliser les informations figurant dans le tableaux par après?  
 
Merci

Reply

Marsh Posté le 08-06-2009 à 09:07:18   

Reply

Marsh Posté le 08-06-2009 à 16:02:48    

Bonjour,
 
Peut-on m'aider svp?  J'aurais absolument besoin de savoir pour pouvoir avancer en tte confiance et surtout pour faire fonctionner le prog. correctement. :)
 
Merci d'avance pour votre aide.

Reply

Marsh Posté le 08-06-2009 à 16:13:12    

Tu utilises une grosse chaine de caractères qui contient toutes les infos du bouquin... [:mlc]
On ne vous a pas appris les bases de données à l'école ou quoi ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-06-2009 à 16:17:59    

Sisi pourquoi tu voudrais que je procède comment? Mais dans le code est juste malgré tout???

Reply

Marsh Posté le 08-06-2009 à 16:43:39    

Zoba a écrit :

Sisi pourquoi tu voudrais que je procède comment?


De la seule façon dite "normale" pour gérer ce genre de cas : une base de données

Zoba a écrit :


Mais dans le code est juste malgré tout???


Ton code est faux car en cas de diminution de stock, tu rajoutes un nouveau bouquin dans ta liste avec le nouveau stock sans virer l'ancien. En plus tu as fais une confusion entre tes variables "num" et "code". Enfin tu décrémentes le stock après avoir inscrit le nouveau bouquin dans ta liste, donc tu auras toujours le même stock.


Message édité par Harkonnen le 08-06-2009 à 16:44:26

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-06-2009 à 16:56:50    

On ne peut vendre un livre que si le stock est >0. Lorsque l'on vend un livre, son stock diminue de 1 et la caisse augmente du prix de vente.  
Lorsqu'on reprend un livre, son stock augmente de 1 et la caisse diminue du prix de vente. Attention on ne pourra reprendre un livre que si la caisse est assez remplie... Lors de toute manipulation d'argent le cahier de caisse doit être mis à jour, dans le fichier "caisse.txt".  
 
 
Procédure vente_livre()  
Variable num,isbn,titre, auteur,editeur,px_vente,stock, truc en alphanum  
 
Debut  
 
Ecrire "Entrez isbn"  
Lire num  
Ouvrir "livre.txt" sur 1 en lecture  
stock <- 50  
Tant que (non(EOF(fichier livre.txt)))  
Lire fichier (1), truc  
isbn <- mid (truc, 1,20)  
titre <- mid (truc, 21,50)  
auteur <- mid(truc,71,50)  
editeur <- mid(truc,121,50)  
px_vente <- mid(truc,171,6)  
stock<- mid(truc,177,3)  
 
si num <> isbn alors  
Ecrire"Le livre n'existe pas"  
 
sinonsi stock>0 alors  
stock <- stock - 1  
Ecrire isbn & titre & auteur & editeur & px_vente & stock  
finsi  
Fin tant que  
Fermer(1)  
 
Fin  
 
Voilà j'ai un peu modifié ce qui effectivement devait être changé!!! :s
Est ce que tu peux m'aider concrètement après mes quelques modifs pour obtenir un code JUSTE?
 
Merci de ton aide

Reply

Marsh Posté le 08-06-2009 à 17:10:03    

C'est mieux, mais tu ne vires toujours pas l'ancien bouquin avec les anciennes infos de stock. Là ce que tu fais, c'est inscrire 2 bouquins identiques avec des stocks différents

 

edit: l'idéal serait de remplacer juste les infos modifiées au lieu de supprimer/recréer, d'où l'utilité d'une base de données


Message édité par Harkonnen le 08-06-2009 à 17:15:54

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-06-2009 à 17:34:04    

Bonjour,
 
Je ne vois pas comment faire malheureusement, je comprends bien ce ke tu veux dire mais je ne vois pas comment procéder.
Aide moi stp :(

Reply

Marsh Posté le 08-06-2009 à 17:47:05    

Ben c'est pas compliqué... Ta variable "truc" contient le bouquin en cours d'utilisation. Si ce bouquin est acheté (donc si son stock est décrémenté), alors tu as le choix entre 2 opérations :
- soit tu supprimes ce bouquin de ton stock, en prenant soin de sauvegarder toutes ses caractéristiques, et tu le recréés avec ses caractéristiques, mais en décrémentant son stock
- soit tu te contentes de mettre à jour son stock dans le fichier, sans le supprimer entièrement.
 
Tu dois faire ça à la fin de ton test, juste après avoir décrémenté le stock


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-06-2009 à 17:58:40    

Là tu touches le point où j'voulais arriver!!!! Je dois effectivement sauvegarder les données dans un tableaux selon moi, mais je ne sais pas justement comment procéder. En vérité je l'ai fais avec un ajout dans fichier mais ce n'est pas la bonne méthode car il s'agit de sauvegarder tt ceci dans un tableaux... Comment procéder alors??

Reply

Marsh Posté le 08-06-2009 à 17:58:40   

Reply

Marsh Posté le 08-06-2009 à 18:04:08    

Je sais que  dans un tableau de deux dimensions(matrice),chaque ligne correspond à un vente(titre ,auteur,editeur,...) .puis je peux  accéder à chaque informations en sachant ces coordonnées ,(je dois utiliser redim). Mais pour la mise en "code" c'est plus compliqué!!!

Reply

Marsh Posté le 08-06-2009 à 18:13:59    

Je te l'ai dit dés le début, ce genre de cas se traite avec une base de données.
Tu peux éventuellement utiliser un fichier texte standard (on appelle ça un fichier plat), mais c'est beaucoup moins souple à utiliser, et ça devient lourdingue quand il faut faire des remplacements, comme c'est le cas ici.
Une autre solution, est d'utiliser un fichier texte au format XML, que tu parseras avec une librairie adéquate.
Mais la base de données est ce qu'il y a de plus adapté. Après, pour l'implémentation, ça dépend du langage que tu utilises


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-06-2009 à 18:20:46    

Pas de langage particulier, il s'agit du code c tout mais dis moi comment procéder le plus simplement du monde stp. Comment le faire via les tableaux si poss. car avec une base de données je vois pas? Merci

Reply

Marsh Posté le 08-06-2009 à 19:36:01    

Les tableaux, c'est du domaine de l'implémentation, là tu en es encore au stade de la conception, ça n'a rien à voir. On t'a demandé d'écrire un algo de sortie de stock d'un bouquin, tu l'as écrit, c'est parfait. Maintenant, tout le coté technique appartient au domaine de l'implémentation, et les tableaux en font partie.
Si ton exo consiste juste à écrire l'algo, alors ton exo est fini.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 08-06-2009 à 21:40:15    

Oui mais l'exercice demande également d'insérer un tableau pour pouvoir sauvegarder les modifications de l'exo...Je pense donc que je dois insérer un tableau (i,j) avec une boucle pour mais je ne sais pas l'écrire.... ça ne sort pas du bic!!!!

Reply

Marsh Posté le 09-06-2009 à 00:40:12    

Il serait temps que sa sorte !!!  
Demain tu me remets les feuilles à 21h35 !!
 
Bien à toi,  
Ton Prof

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed