Algorithme programme

Fermé
cochemotagnard Messages postés 2 Date d'inscription dimanche 11 mai 2008 Statut Membre Dernière intervention 24 février 2009 - 11 mai 2008 à 20:11
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 - 12 mai 2008 à 17:59
Bonjour,
cela fait bientot deux jours que je suis entrain d'essayer de faire l'agorithme d un programme que jai terminer en langage c mais je ni arrive pas.
Voici la fonction:
void rechercher()
{
int Z;
int i,b,u;
char a[TAILLE_MAX];
i = 0;
u = 1;

while (u != 0)
{
system("CLS");
printf("----------------------------------------------------------------\n");
printf("| |\n");
printf("| RECHERCHER |\n");
printf("| |\n");
printf("----------------------------------------------------------------\n");
printf("\n\n\n");
printf("\nRechercher un client a partir de son:\n");
printf("I: Identifiant\n");
printf("E: Entreprise\n");
printf("N: Nom Contact\n");
printf("\nS: Sortie\n");
printf("\n\n\nChoix:");
//printf("\n\t\tChoix <I,E,N,S>:\n");




fflush(stdin);
Z = getchar();

switch(Z)
{
case'I': case'i':

for (i = 0 ; i < nombreClient ; i++)
{
printf("Le client %d a pour identifiant:%s\n",i,listClient[i].idClient);
}
printf("\n");
printf("----------------------------------------------------------------\n");
printf("| Saisir l'identifiant du client. |\n");
printf("----------------------------------------------------------------\n");
printf("\n\n");
printf(".Identifiant:");
fflush(stdin);
scanf("%s",a);

for (i = 0 ; i < nombreClient ; i++)
{
if(strcmp(a,listClient[i].idClient ) == 0)
{
printf("\n");
printf(" Vous recherchez le client:%d\n",i);
printf("\n");
printf(".Identifiant:%s\n",listClient[i].idClient);
printf(".Entreprise:%s\n",listClient[i].nomEntr);
printf(".Adresse:%s %s %s %s\n",listClient[i].adClient.numRue, listClient[i].adClient.nomRue, listClient[i].adClient.codePostal, listClient[i].adClient.ville);
printf(".Nom contact:%s\n",listClient[i].nomContact);
printf(".Prenom:%s\n",listClient[i].prenomContact);
printf(".Mail:%s\n",listClient[i].mailContact);
printf(".Telephone:%s\n",listClient[i].telContact);
printf("\n");
system("PAUSE");
break;
}
}
break;

case 'E': case 'e':

for (i = 0 ; i < nombreClient ; i++)
{
printf("Le client %d est dans l'entreprise:%s\n",i,listClient[i].nomEntr);
}
printf("\n");
printf("----------------------------------------------------------------\n");
printf("| Saisir le nom de l'entreprise. |\n");
printf("----------------------------------------------------------------\n");
printf("\n\n");
printf(".Entreprise:");
fflush(stdin);
scanf("%s",a);

for (i = 0 ; i < nombreClient ; i++)
{
if(strcmp(a,listClient[i].nomEntr ) == 0)
{
printf("\n");
printf(" Vous recherchez le client:%d\n",i);
printf("\n");
printf(".Identifiant:%s\n",listClient[i].idClient);
printf(".Entreprise:%s\n",listClient[i].nomEntr);
printf(".Adresse:%s %s %s %s\n",listClient[i].adClient.numRue, listClient[i].adClient.nomRue, listClient[i].adClient.codePostal, listClient[i].adClient.ville);
printf(".Nom contact:%s\n",listClient[i].nomContact);
printf(".Prenom:%s\n",listClient[i].prenomContact);
printf(".Mail:%s\n",listClient[i].mailContact);
printf(".Telephone:%s\n",listClient[i].telContact);
printf("\n");
system("PAUSE");
break;
}
}
break;

case 'N': case 'n':
printf("Nombre de client:%d\n",nombreClient);

for (i = 0 ; i < nombreClient ; i++)
{
printf("Le client %d a pour nom:%s\n",i,listClient[i].nomContact);
}
printf("\n");
printf("----------------------------------------------------------------\n");
printf("| Saisir le nom du client. |\n");
printf("----------------------------------------------------------------\n");
printf("\n\n");
printf(".Nom:");
fflush(stdin);
scanf("%s",a);


for (i = 0 ; i < nombreClient ; i++)
{
if(strcmp(a,listClient[i].nomContact ) == 0)
{
printf("\n");
printf(" Vous recherchez le client:%d\n",i);
printf("\n");
printf(".Identifiant:%s\n",listClient[i].idClient);
printf(".Entreprise:%s\n",listClient[i].nomEntr);
printf(".Adresse:%s %s %s %s\n",listClient[i].adClient.numRue, listClient[i].adClient.nomRue, listClient[i].adClient.codePostal, listClient[i].adClient.ville);
printf(".Nom contact:%s\n",listClient[i].nomContact);
printf(".Prenom:%s\n",listClient[i].prenomContact);
printf(".Mail:%s\n",listClient[i].mailContact);
printf(".Telephone:%s\n",listClient[i].telContact);
printf("\n");
system("PAUSE");
break;
}
else
{
printf("niker"); //ATTTTTEEEENNNNNTTTTIIIIOOOOONNNNNN
}
}
break;

case 's': case 'S':

printf("----------------------------------------------------------------\n");
printf("| Voulez-vous vraiment sortir? |\n");
printf("----------------------------------------------------------------\n");
printf("\n\n");
printf("0: Non\n");
printf("1: Oui\n");
printf("\n\n\nChoix:");
//printf("\n\t\tChoix <0,1>:\n");
scanf("%d",&b);

if(b == 1)
{
u = 0;
}
break;

default:
break;
}
}

}

voila merci beaucoup si quelqu un pouvais me montrer avec celle ci pour que je fasse les autres
ca serai vrt gentil
merci beaucoup

5 réponses

daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
11 mai 2008 à 20:35
ta liste client est un parametre global ?
0
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
11 mai 2008 à 20:46
je ne vois pas ce quipeut bugger, voici ton code un peu modifier, attention ta listeClient doit etre en parametre global, ainsi que nombreClient et TAILLE_MAX:

void afficherClient(int i){

	printf("\n"); 
	printf(" Vous recherchez le client:%d\n",i); 
	printf("\n"); 
	printf(".Identifiant:%s\n",listClient[i].idClient); 
	printf(".Entreprise:%s\n",listClient[i].nomEntr); 
	printf(".Adresse:%s %s %s %s\n",listClient[i].adClient.numRue, listClient[i].adClient.nomRue, listClient[i].adClient.codePostal, listClient[i].adClient.ville); 
	printf(".Nom contact:%s\n",listClient[i].nomContact); 
	printf(".Prenom:%s\n",listClient[i].prenomContact); 
	printf(".Mail:%s\n",listClient[i].mailContact); 
	printf(".Telephone:%s\n",listClient[i].telContact); 
	printf("\n");


}


void rechercher() 
{ 
	int Z; 
	int i,b,u; 
	char a[TAILLE_MAX]; 
	i = 0; 
	u = 1;

	int sortie = 0; 

	while (u != 0) 
	{ 
		system("CLS"); 
		printf("----------------------------------------------------------------\n"); 
		printf("| |\n"); 
		printf("| RECHERCHER |\n"); 
		printf("| |\n"); 
		printf("----------------------------------------------------------------\n"); 
		printf("\n\n\n"); 
		printf("\nRechercher un client a partir de son:\n"); 
		printf("I: Identifiant\n"); 
		printf("E: Entreprise\n"); 
		printf("N: Nom Contact\n"); 
		printf("\nS: Sortie\n"); 
		printf("\n\n\nChoix:"); 
		//printf("\n\t\tChoix <I,E,N,S>:\n"); 


		fflush(stdin); 
		Z = getchar(); 

		switch(Z){
 
			case'I': case'i': 

					for (i = 0 ; i < nombreClient ; i++) 
					{ 
						printf("Le client %d a pour identifiant:%s\n",i,listClient[i].idClient); 
					} 
					printf("\n"); 
					printf("----------------------------------------------------------------\n"); 
					printf("| Saisir l'identifiant du client. |\n"); 
					printf("----------------------------------------------------------------\n"); 
					printf("\n\n"); 
					printf(".Identifiant:"); 
					fflush(stdin); 
					scanf("%s",a); 

					i = 0;
					while( (i < nombreClient) && !sortie)
					{ 
						if(strcmp(a,listClient[i].idClient ) == 0) 
						{ 
							afficherClient(i);
							sortie = 1;
						}

					} 
					break; 

			case 'E': case 'e': 

					for (i = 0 ; i < nombreClient ; i++) 
					{ 
						printf("Le client %d est dans l'entreprise:%s\n",i,listClient[i].nomEntr); 
					} 
					printf("\n"); 
					printf("----------------------------------------------------------------\n"); 
					printf("| Saisir le nom de l'entreprise. |\n"); 
					printf("----------------------------------------------------------------\n"); 
					printf("\n\n"); 
					printf(".Entreprise:"); 
					fflush(stdin); 
					scanf("%s",a); 

					i = 0;
					while( (i < nombreClient) && !sortie)
					{ 
						if(strcmp(a,listClient[i].idClient ) == 0) 
						{ 
							afficherClient(i);
							sortie = 1;
						}

					}
					break; 


			case 'N': case 'n': 
					printf("Nombre de client:%d\n",nombreClient); 

					for (i = 0 ; i < nombreClient ; i++) 
					{ 
						printf("Le client %d a pour nom:%s\n",i,listClient[i].nomContact); 
					} 
					printf("\n"); 
					printf("----------------------------------------------------------------\n"); 
					printf("| Saisir le nom du client. |\n"); 
					printf("----------------------------------------------------------------\n"); 
					printf("\n\n"); 
					printf(".Nom:"); 
					fflush(stdin); 
					scanf("%s",a); 

					i = 0;
					while( (i < nombreClient) && !sortie)
					{ 
						if(strcmp(a,listClient[i].idClient ) == 0) 
						{ 
							afficherClient(i);
							sortie = 1;
						}

					}
					break;


			case 's': case 'S': 

					printf("----------------------------------------------------------------\n"); 
					printf("| Voulez-vous vraiment sortir? |\n"); 
					printf("----------------------------------------------------------------\n"); 
					printf("\n\n"); 
					printf("0: Non\n"); 
					printf("1: Oui\n"); 
					printf("\n\n\nChoix:"); 
					//printf("\n\t\tChoix <0,1>:\n"); 
					scanf("%d",&b); 

					if(b == 1) 
					{ 
						u = 0; 
					} 
					break; 

			default: 
				break; 
		} 
	} 

} 
0
cochemotagnard
11 mai 2008 à 20:59
merci beaucoup vachement sympa
je lai placer dans mon programme et cest mieu sinon oui cest un parametre global
mais ce que je cherche surtout a faire cest lagorithme de cette fonction je ni arrive pas du tout.
et je cherche quelqun pour faire l algorithme de cette fonction histoire de me montrer parce que je dois le faire
pour trois autre fonctions encore.
merci beaucoup a vous
0
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
12 mai 2008 à 10:01
je ne comprend pas trop ce que tu veux dire par algorithme, chez moi c'est une suite d'instructions permettant de résoudre un probleme et l'algorithme que tu utilises dans ce programme est bidon car c'est une boucle dans la quelle à chaque tour tu demande quoi faire à l'utilisateur,

peut me redire ce que tu veux ?

cherche tu la complexité de ton algorithme ? si tel est le cas c'est linéaire car c'est l'utilisateur qui doit chercher quel client il veut voir afficher donc en O(1), car tu connait l'indice auquel il se situe.

je t'écoute pour la suite
0
cochemotagnard
12 mai 2008 à 17:01
Voila
ce qui nous ai demande cest de faire lalgorithme. Lagorithme cest un language qui permet au personne ayant aucune connaissance dans le domaine de la prgrammation de comprendre ce programme.
Lalgorithme ce fait a base de afficher ; a<--valeur de.... enfin je sais plus excactement donc je cherche quelqun pour maider a faire les algo des fonctions de ce programme
merci beaucoup.
0

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

Posez votre question
daronmaster Messages postés 326 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 11 mai 2009 44
12 mai 2008 à 17:59
et bien dans ce genre :

tant que "utilisateur veut continuer" faire

    choix <- choisir le type de recherche d'un client

    si choix == (i ou I) alors

        faire ...

    sinon
      si choix == (n ou N) alors

           faire ...

      sinon
        si choix == (s ou S) alors

             quitter;
        fin_de_si
      fin_de_si
     fin_de_si

fin de tant que



il te fallait un truc de ce genre ? je t'ai laissé les ... à remplir, mais reste simple si c'est ce qui était demandé, du genre "saisir l'identifiant" ou afficher la liste des clients, etc

bon courage

Cdlt
0