Algo-création d'un fichier(orga séquentielle)

Fermé
vioj - 7 avril 2008 à 21:36
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 - 8 avril 2008 à 23:38
Bonjour,

pouvez vous m'aider à faire l'algorithme de création du fichier?

on a :

FICHIER:PRODUITS
ORGANISATION:séquentielle Rubrique de l'article du fichier:
Numéroproduit N° de produit(100 à 999) Quantitéstock Quantité en stock(0 à 99)
Libelléproduit Désignation du produit Catégorieproduit Catégorie du produit(A,B,ou C)
Prixunitaire Prix unitaire (20 à 550)


Desssin d'écran:

CREATION DES PRODUITS
N°produit(100 à 999)
(Fin de saisie, taper<Entrée>): |999|
Désignation:|XXXXX.....XXX|
Prix unitaire: |999|Quantité en stock:|99|
Catégorie(A, B, C): |x|



PROGRAMME:Créationproduits
TYPE Fartproduit de STRUCTURE
Numéro:ENTIER
Désignation:CHAINE DE CARACTERE
Prix:ENTIER, Quantité:ENTIER, Catégorie:CARACTERE
TYPE Fproduits:FICHIER(organisation:SEQUENTIELLE) de Fartproduit
ALGORITHME
VARIABLES Artproduit:Fartproduit
Produits:Fproduits
DEBUT
Et voila,je n'arrive pas à faire ce qui suit...

merci!
A voir également:

3 réponses

cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
8 avril 2008 à 23:38
Bonsoir Vioj,


Rectificatif et précision à propos de la formulation :

         Faire_tant_que le numéro de produit n'est pas valide (numéricité,
             cohérence, présence......)  ET  différent de 999 (fin du traitement)
             Emission d'un message d'anomalie  (positionnement du curseur sur
               la zone écran incriminée)
        - Fin faire_tant_ que

Rectificatif :
Il faut lire "Faire" si le numéro de produit ........ et non pas "Faire_tant_que" (idem pour Fin_faire_tant_que)
pour information cette façon de formuler s'est inscrite, à tort dans une idée de répétition générale et ce contre toute évidence car comme je le mentionne les zones de saisie sont toutes accessibles à chaque itération/interruption. Autant pour moi !

Précision :
De même le (fin de traitement) sous-entend fin du traitement pour l'écran en cours et retour à l'itération principale. Je le précise pour éviter toute confusion bien que la phrase : Emission d'un message ................... soit, à priori éloquente. A noter que j'ai retenu la solution qui consiste à signaler à l'utilisateur une anomalie dès qu'elle est détectée par le programme, dans ce cas tout ou partie des éventuelles autres zones sera contrôlé à la prochaine itération. Une autre technique consiste à contrôler toutes les zones à chaque itération et à marquer (double brillance, couleur (rouge), inverse vidéo,..........) celles qui éventuellement sont en anomalie. Dans ce cas le message se rapporte à la première zone erronée considérée de la gauche vers la droite et du haut vers le bas relativement au dessin d'écran.

Bon courage,
1
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
7 avril 2008 à 23:48
Bonsoir,

CREATION DES PRODUITS
N°produit(100 à 999)
(Fin de saisie, taper<Entrée>): |999|
Désignation:|XXXXX.....XXX|
Prix unitaire: |999|Quantité en stock:|99|
Catégorie(A, B, C): |x|

PROGRAMME:Créationproduits
TYPE Fartproduit de STRUCTURE
Numéro:ENTIER
Désignation:CHAINE DE CARACTERE
Prix:ENTIER, Quantité:ENTIER, Catégorie:CARACTERE
TYPE Fproduits:FICHIER(organisation:SEQUENTIELLE) de Fartproduit
ALGORITHME
VARIABLES Artproduit:Fartproduit
Produits:Fproduits
DEBUT
Et voila,je n'arrive pas à faire ce qui suit...


Je te propose cela à titre de réflexion,
Initialiser les variables (dont numéro de produit = 0)

Ouvrir Fartproduit en extension OUTPUT (traiter le cas 1er fois; création initiale du fichier)
Test de validité de l'opération  (si anomalie message et arrêt du traitement)

- Faire tant que numéro de produit est différent de 999

  Nettoyer ou rafraîchir l'écran (Initialiser les variables écran )
  Afficher le dessin d'écran

(Ici deux possibilités existent ; où les zones écran qui suivent les libellés du 
menu sont toutes directement accessibles en saisie, dans ce cas l'unité de 
communication programme <=> clavier est l'intégralité des zones définies  dans
cet l'écran. Où bien il faut les "dégager une à une en émettant un message
d'invitation à la saisie suivi d'un champ libre pour la saisie. D'après le dessin 
d'écran il semble qu'il s'agit de la première possibilité) 

- Positionner le curseur sur la première zone écran (numéro de produit)

      - Accepter la saisie  (se résoud par l'emploi d'une instruction spécifique
           assurant une interruption (permettant à l'utilisateur d'intervenir en
           saisie) suivie d'une (ré)activation de l'exécution après validation
           (ex: touche ENTER ou autre pressée par l'utilisateur)

        - Faire_tant_que le numéro de produit n'est pas valide (numéricité,
             cohérence, présence......)  ET  différent de 999 (fin du traitement)
             Emission d'un message d'anomalie  (positionnement du curseur sur
               la zone écran incriminée)
        - Fin faire_tant_ que

   - Faire si numéro de produit est différent de 999

        - Faire ......... (idem numéro de produit, sur le principe pour chacune 
                             des zones saisies à contrôler)
              ................
        - Fin faire ..........
        - .................................................
        -  ..................................................
       
(Ici on admet que la validité des zones saisies entraîne automatiquement 
  leur écriture dans le fichier, sans demander à l'utilisateur une "ultime" 
  confirmation. 

      - Ecriture dans Fartproduit des données saisies (à ce niveau elles sont valides)
  
   - Fin faire si    

- Fin Faire tant que 

  Fermer Fartproduit (considérer le cas où le fichier n'a pas pù être créé)
  Test de validité de l'opération  (si anomalie message et arrêt du traitement)

  Message fin du traitement avec interruption (pause) 


0
Merci c'est super gentil ,je suis en train d'étudier cela! ça m'aide beaucoup!!
0