Besoin daide svp

ficatore Messages postés 11 Statut Membre -  
 amigo -
Bonjour,
Bonjour,
jai deux fichier sous forme de tabelau voci leur composition
netmap.txt:switch;n°port;bureau;....adressmac
téléphone.txt:numtel;nompersonne;adresemac

je doit créer un algo qui lorsque nous saississon un numero de bureau nous donne les numerodetel ainsi que les nom des personnes presentent dans ce bureau

on saisit par exempls les numerode bureau I203 et celui ci nous retourne
5526; I203 ;adressemac; jeanpaul dubois

lors de la saisir du bureau le programme doit rechercher si ce bureau existe dan le fichier netmap.txt et si il existe celui ci nous retourne le bureau ladresse mac des tels présents dans le bureau, le programme prend donc ensuite ladresse mac et va rechercher dans le fichiers téléphone.txt a quel numero et quel personne cela correspond

voila si vs avez des questions js suis la car frt je suis vraiment perdu et jai vraiment beaucoup de mal...
merci beaucoup

Saisir le Numéros de bureau.
Recherche dans netmap.txt si le bureau existe et si des adresses Mac sont présentes dans ce bureau si il y en a alors
recherche dans téléphone.txt pour savoir à quel nurémos de tel elle correspondent

Tab netmap: structure
switch: Chaine
numport : entier
bureau : chaine
.....
adressemac :chaine
FINSTRUCTURE

Tab téléphone: structure
numtel:chaine
identité : chaine
adressemac: chaine
.....
FINSTRUCTURE

Var téléphone tableau [1...X] de téléphone
Var netmap tableau [1...X] de netmap

Procédure RECHERCHE(d:netmap [1...X], téléphone[1...X], nom chaine)
Variable i,j :entier
Variable mac,bureau :chaine

Debut
Ouvrir(netmap.txt, L)
Ouvrir(téléphone.txt, L)
Saisir bureau
i <- 1
j <- 1
Tant que j < X et bureau <>netmap[ i ].bureau

j <- j+1

Fintantque

Si bureau = netmap[ j ].bureau alors
mac <- netmap[ j ].mac
Finsi

Tant que i < X et mac <>téléphone[ i ].mac alors
i <- i+1
FinTantQue

Si mac=téléphone[ i ].mac alors
Afficher( téléphone[ i ].numtel, netmap[ j ].bureau)
FinSi

Fermer(netmap.txt)
Fermer(téléphone.txt)
Fin

que pensez vous de cela?

6 réponses

amigo
 
Bonjour,

Dans tes structures il n'y a pas d'élement commun qui permet de faire le lien
entre les enregistements du fichier netmap.txt et ceux du fichier téléphone.txt, le nunéro du bureau par exemple.
C'est comme ça que sont organisées les bases de données en général.

On suppose donc que tes deux fichiers ont exactement le meme nombre d'enregistrements.
L'élément commun sera alors le numéro d'enregistrement (ou nurero de ligne).

Tu n'as pas besoin de "tableau[1...X] de téléphone" ni de "tableau[1...X] de netmap"
a moins que tu ne veuille charger les deux fichiers en mémoire et travailler sur la mémoire.

Procédure RECHERCHE()
Variable bureau1,bureau2 :chaine

Debut
Ouvrir(netmap.txt, L)
Ouvrir(téléphone.txt, L)

{initialiser chaines vide}
bureau1 <- ""
bureau2 <- ""

{saisir bureau1, chaine vide non admise}
Tantque bureau1=""
Saisir bureau1
Fin Tantque

{lire sequentiellement les deux fichiers en parrallèle}
{on arrête de lire les fichier si on a atteint la fin du fichier ou si bureau1=bureau2}
Tant que (non (FinFichier netmap.txt)) ou (non (bureau1=bureau2))
Lire netmap.txt -> netmap
Lire téléphone.txt -> téléphone
bureau2 <- netmap.bureau
Fintantque

Fermer(netmap.txt)
Fermer(téléphone.txt)

Si bureau1 = bureau2 alors
Afficher( téléphone.numtel, netmap.bureau)
sinon
Afficher("Ce bureau n'existe pas")
FinSi

Fin

A+
0
ficatore Messages postés 11 Statut Membre
 
donc si jai bien compris tu ma tout refait mon algo.lol
merci
et tu sur ke le tien fonctionne?ET KE C BIEN SA,
0
ficatore Messages postés 11 Statut Membre
 
donc si jai bien compris tu ma tout refait mon algo.lol
merci
et tu sur ke le tien fonctionne?ET KE C BIEN SA,
0
amigo
 
re Bonjour,

A la syntaxe près, oui ça fonctionne.

Maintenant, tu peux faire l'exo en chargeant les fichiers en mémoire,
à l'execution c'est bien plus rapide, et on ne lit les fichiers qu'une seule fois.

Tu avais bien commencé la première fois.

Ecris une procédure qui lit les fichiers ligne par ligne et qui stocke les données dans
"tableau[1...X] de téléphone" et "tableau[1...X] de netmap", il faut mémoriser le nombres de lignes lues.

Modifie la procédure RECHERCHE() , mais cette fois pointe sur les tableau et non plus sur les fichiers.

Propose moi ta version, je te dirais ce j'en pense.

Salut.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ficatore Messages postés 11 Statut Membre
 
en faite je kroi ke ta pas vraiment compri le principe de cette algo lol!
le but de cette algo et le suivan:saisis du num de bureau dan le fichier netmap une fois ce bureau trouver celui ci nous retourne les dresse mac presente dan ce bureau ensuite nous prenon les dresse mac retourné et nous allon cherhcher dan le fichier téléphone a kel num de teléphone elle corresponde
0
amigo
 
OK, je n'avais pas bien lu l'énoncé

netmap.txt:switch;n°port;bureau;....adressmac
téléphone.txt:numtel;nompersonne;adresemac

On a bien un élément commun dans les deux fichiers : adresemac

Alors voilà le correctif

Procédure RECHERCHE()
Variable bureau1,bureau2, adresse1, adresse2 :chaine

Debut
Ouvrir(netmap.txt, L)
Ouvrir(téléphone.txt, L)

{initialiser chaines vide}
bureau1 <- ""
bureau2 <- ""

{saisir bureau1, chaine vide non admise}
Tantque bureau1=""
Saisir bureau1
Fin Tantque

{lire sequentiellement le fichier netmap.txt}
{on arrête de lire les fichier si on a atteint la fin du fichier ou si bureau1=bureau2}
Tant que (non (FinFichier netmap.txt)) ou (non (bureau1=bureau2))
Lire netmap.txt -> netmap
bureau2 <- netmap.bureau
adresse1 <- netmap.adressemac
Fintantque
Fermer(netmap.txt)

Si bureau1 = bureau2 alors
debut
adresse2 <- ""
{lire sequentiellement le fichier téléphone.txt}
{on arrête de lire les fichier si on a atteint la fin du fichier ou si adresse1=adresse2}
Tant que (non (FinFichier téléphone.txt)) ou (non (adresse1=adresse2))
Lire téléphone.txt -> téléphone
adresse2 <- téléphone.adressemac
Fintantque
Fermer(téléphone.txt)
Afficher(téléphone.numtel, netmap.bureau)
fin
sinon
Afficher("Ce bureau n'existe pas")
FinSi

Fin

Cette fois je crois que c'est bon.
0