Algorithme sur les imprimantes les plus sollicitées
Bonjour à tous, je suis actuellement étudiant et c'est mon premier message.
Je bloque vraiment pour la suite, si quelqu'un pourrait m'aider ça serait super ( pas forcement me pondre l'algo modifié mais me donner des pistes... je sais que c'est simple mais je débute vraiment en algo)
Donc, je réalise un algorithme permettant de faire les statistiques d'un nombre d'imprimantes et du nombre de pages respectivement imprimées par celle ci.
La ou je bloque, c'est que je voudrais maintenant pouvoir afficher le ou les imprimantes les plus sollicitées ( si elles ont le même nombre d'impressions) avec le nombre d'impression respectives juste après, du type:
les imprimantes les plus sollicitées sont: imprimante1(200)
imprimante9(200)
Merci d'avance à ceux qui pourront me filer un coup de main!
Code:
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
|
ALGO: Stat //nom de l'algo
CONST nbenreg = 100 //on supose que le fichier contient 100 lignes
TYPE UneImprimante = STRUCTURE
NomImprimante: CHAINE[30]
CodeImprimante: ENTIER
CodeUtilisateur: ENTIER
date: DATE
heure: HEURE
nbPages: ENTIER
Fin
VAR Timp: TABLEAU[nbenreg] DE UneImprimante //on defini la structure du tableau
i: ENTIER
nbpagesparImprimante: ENTIER
nomImprimanteCourante: CHAINE[30]
nbpagestotal: ENTIER //Cumul des pages imprimées sur toutes les imprimantes
DEBUT
nbpagesparImprimante <--- 0
nbpagestotal <--- 0
i <--- 0 //on se positionne sur le 1er enregistrement
TANTQUE ( i <= nbenreg ) FAIRE
nomImprimanteCourante <--- Timp[i].NomImprimante
TANTQUE ( i <= nbenreg ET nomImprimanteCourante = Timp[i].NomImprimante ) FAIRE
nbPagesParImprimante <--- nbPagesParImprimante + Timp[i].nbpages
i <--- i + 1
FIN TANTQUE
nbPagesTotal <--- nbPagesTotal + nbPagesParImprimante
Afficher ("Nb pages imprimées sur", nomImprimanteCourange, "=", nbpagesParImprimante)
nbPagesParImprimante <--- 0
FIN TANTQUE
Afficher ("Le total de pages imprimées est:", nbpagestotal)
FIN ALGO |
MISE A JOUR - AIDE TJRS DEMANDEE :cry:
J'ai un peu avancé donc je poste le code que j'ai fait, en rouge les modifications.( je suis toujours bloqué )
Code:
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
|
ALGO: Stat //nom de l'algo
CONST nbenreg = 100 //on supose que le fichier contient 100 lignes
nbstat = 100 // on suppose que au maximum il y a 100 imprimantes ( 1 par impression )
TYPE UneImprimante = STRUCTURE
NomImprimante: CHAINE[30]
CodeImprimante: ENTIER
CodeUtilisateur: ENTIER
date: DATE
heure: HEURE
nbPages: ENTIER
Fin
TYPE StatImp = STRUCTURE
nomImp: CHAINE[30]
nbImp: ENTIER
RangImp: ENTIER
Fin
VAR Timp: TABLEAU[nbenreg] DE UneImprimante //on defini la structure du tableau
i: ENTIER
Stats: TABLEAU[nbstat] DE StatImp
j: ENTIER
nbpagesparImprimante: ENTIER
nomImprimanteCourante: CHAINE[30]
nbpagestotal: ENTIER //Cumul des pages imprimées sur toutes les imprimantes
DEBUT
nbpagesparImprimante <--- 0
nbpagestotal <--- 0
i <--- 1 //on se positionne sur le 1er enregistrement
j <--- 1
TANTQUE ( i <= nbenreg ) FAIRE
nomImprimanteCourante <--- Timp[i].NomImprimante
TANTQUE ( i <= nbenreg ET nomImprimanteCourante = Timp[i].NomImprimante ) FAIRE
nbPagesParImprimante <--- nbPagesParImprimante + Timp[i].nbpages
i <--- i + 1
FIN TANTQUE
// On sort de la boucle interne car l'imprimante a changé ou on a dépassé nbenreg.
// On affiche le nombre de pages imprimées sur l'imprimante courante et on met à jour le nombre de pages totales et réinitialise le nombre de page par imprimante
Stats[j].nomImp <--- nomImprimanteCourante
Stats[j].nbImp <--- nbPagesParImprimante
Si Stats[j].nbImp >= Stats[j-1].nbImp ALORS Stats[j].rangImp <--- 1
Stats[J-1].rangImp <--- 0
SINON Stats[J].rangImp <--- 0
FinSi
j <--- j+1
nbPagesTotal <--- nbPagesTotal + nbPagesParImprimante
Afficher ("Nb pages imprimées sur", nomImprimanteCourante, "=", nbpagesParImprimante)
nbPagesParImprimante <--- 0
FIN TANTQUE
Afficher ("Le total de pages imprimées est:", nbpagestotal)
Afficher ( "la / les imprimantes les plus utilisées sont:",) // on affichera ici toutes les imprimantes pour lesquelles Stats[J].rangImp = 1 mais comment ?
FIN ALGO |
MISE A JOUR2 - AIDE TJRS DEMANDEE :cry:
J'ai rajouté le bout de code suivant pour remplir la 1ère ligne du tableau Stats.
Code:
1 2 3 4 5 6 7 8 9 10
|
DEBUT
nbpagesparImprimante <--- 0
nbpagestotal <--- 0
i <--- 1 //on se positionne sur le 1er enregistrement
j <--- 1
Stats[j].nomImp <--- vide
Stats[j].nbImp <--- 0
Stats[j].RangImp <--- 0
j <--- 2 |