Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SYSTÈME DE TRI ET COMPTAGE


Information sur la source

Catégorie :Maths & Algorithmes Classé sous : tri, comptage Niveau : Débutant Date de création : 14/02/2006 Vu : 4 383

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


Description

Voici un exercice donné en première année de DUT Mesures Physiques. Il est assez basique mais donne un moyen simple de réaliser un tri. Pour l'algorythme de comptage je suis pas sur qu'il soit vraiment optimal. Mais bon vu que c'est mon premier code C...
Petite précision il à été testé avec le compilateur gcc sous linux (débian).
 

Source

  • /* 10 02 2006 Tri et Comptage */
  • /* Auteur : William POTTIER */
  • #include <stdio.h>
  • main()
  • {
  • /* Variables générale */
  • int k, N, j, kmini, kmaxi;
  • double mini, notes[3001];
  • /* Variables de comptages */
  • int comptage[3001], i;
  • double note;
  • /* Acquisition de N */
  • printf(" Recherche d'un minimum");
  • printf(" Nombre total de notes a saisir ? ");
  • scanf("%d",&N);
  • /* Acquisition des notes */
  • printf("Entrez les notes:\n");
  • for(k=0;k<N;k++)
  • {
  • printf("Note %d: ",k+1);
  • scanf("%lf", &notes[k]);
  • }
  • /* On mets une ligne de séparation */
  • printf("===========================================\n");
  • /* Tri */
  • for(j=0; j<(N-1); j++)
  • {
  • mini = notes[j];
  • kmini = j;
  • for(k=j+1; k < N; k++)
  • {
  • if(mini > notes[k])
  • {
  • mini = notes[k];
  • kmini = k;
  • }
  • }
  • notes[kmini] = notes[j];
  • notes[j] = mini;
  • }
  • /* Comptage */
  • i=0;
  • kmaxi = N-1;
  • for(k=notes[0]; k < notes[kmaxi]+1; k++)
  • {
  • for(j = 0; j < N; j++)
  • {
  • if(notes[j] == k)
  • {
  • comptage[i] = comptage[i] + 1;
  • }
  • }
  • i++;
  • }
  • /* Affichage des notes triées */
  • printf("Note(s) triée(s) :\n");
  • note = notes[0];
  • for(k = 0; k < (notes[kmaxi] - notes[0] + 1) ; k++)
  • {
  • printf("%lf (%d)\n", note, comptage[k]);
  • note++;
  • }
  • /* Fin du programe */
  • printf("*******************************************\n");
  • printf("*** Merci d'avoir utilisé ce programme! ***\n");
  • printf("*******************************************\n");
  • }
/* 10 02 2006 Tri et Comptage */ 
/* Auteur : William POTTIER */
#include <stdio.h>

main()
{
	/* Variables générale */
	int k, N, j, kmini, kmaxi;
	double mini, notes[3001];
	/* Variables de comptages */
	int comptage[3001], i;
	double note;
	
	
	/* Acquisition de N */
	printf(" Recherche d'un minimum");
	printf(" Nombre total de notes a saisir ? ");
	scanf("%d",&N);
	
	/* Acquisition des notes */
	printf("Entrez les notes:\n");
	for(k=0;k<N;k++)
	{
		printf("Note %d: ",k+1);
		scanf("%lf", &notes[k]);
	}
	/* On mets une ligne de séparation */
	printf("===========================================\n");
	
	/* Tri */
	for(j=0; j<(N-1); j++)
	{
		mini = notes[j];
		kmini = j;
		
		for(k=j+1; k < N; k++)
		{
			if(mini > notes[k])
			{
				mini = notes[k];
				kmini = k;
			}

		}

		notes[kmini] = notes[j];
		notes[j] = mini;

		
	}

	/* Comptage */
	i=0;
	kmaxi = N-1;
	for(k=notes[0]; k < notes[kmaxi]+1; k++)
	{
		for(j = 0; j < N; j++)
		{
			if(notes[j] == k)
			{
			comptage[i] = comptage[i] + 1;
			}
		}
		i++;
	}
	
	
	/* Affichage des notes triées */
	printf("Note(s) triée(s) :\n");
	note = notes[0];
	for(k = 0; k < (notes[kmaxi] - notes[0] + 1) ; k++)
	{
		printf("%lf (%d)\n", note, comptage[k]);
		note++;
	}	
	
	/* Fin du programe */
	printf("*******************************************\n");
	printf("*** Merci d'avoir utilisé ce programme! ***\n");
	printf("*******************************************\n");
}

Conclusion

Je suis ouvert à toutes remarques et suggestion pour progresser alors n'hésitez pas.
 

Commentaires et avis

signaler à un administrateur
Commentaire de wxccxw le 14/02/2006 12:42:38

c'est pas mal et bien penser
mais pour des trucs tel que

#    printf("*******************************************\n");
#     printf("*** Merci d'avoir utilisé ce programme! ***\n");
#     printf("*******************************************\n");

tu pourai faire un seul printf :) enfin la je chipote :) je te met 8/10

signaler à un administrateur
Commentaire de chris223 le 14/02/2006 13:48:42

Feliciations

signaler à un administrateur
Commentaire de said78vf le 21/02/2006 16:07:17

ton programme est bien mais pas optimisé comme tu l'a dis par exemple tu déclare un tableau de 3001 notes d'ou un certain gaspillage de mémoire : la solution serait de créer un tableau de taille variable soit en utilisant l'allocation dynamique de mémoire soit les listes chainées  et aussi revoir l'algorithme de tri. je posterai le mien ce soir si j'ai le tps. autrement rien à dire : excellente indentation , on relis très bien ce programme, très propre. je te met aussi 8/10 car tu précise que c'est ton premier code en C. Continue comme ça!

signaler à un administrateur
Commentaire de wizad le 27/02/2006 17:26:36

pour le tableau je sais pas comment faire mieux : on en est pas encore au tableau de taille variable en cours.
Pour l'algorythme de tri c'est le mieux que j'ai trouvé pendant l'amphi ^^.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

tri par comptage et tri de dijkstra. urgent!!! et au secours!!! [ par magicoz ] Bonjour, j'aurais voulu avoir de l'aide pour les tris par comptage et dijkstra.Je ne comprend pas le principe.Est-ce que quelqu'un peut m'expliquer et a l'aide!!!!?!? programme equivalent au DIR de Dos [ par rouxc ] Ce programme doitpermettre de lister des fichiers en parcourant les sous-répertoires avecquelques options de tri pour la sélection et l'affichage des Help :: Tri-Fusion itératif !! [ par daarkon666 ] Salut !! Je planche actuellement sur une version itérative du Tri-Fusion, et y a un pb : je ne vois pas comment écrire la fonction fusion qui se charg Pb de tri et taille de tableaux [ par daarkon666 ] Salut !!Je viens de terminer le tri/fusion itératif (et d'autres algos de tri, pr un projet info de fac) en C, et je suis soumis à un pb auss ibien so j'utilise qsort pour le tri mais il faut créer des fonctions globales [ par djmix73 ] Comment fait on pour créer des fonctions globale avec visual c++6 pour quel se mette dans le dossier globale? qsort, explications SVP! [ par benji86446 ] Salut, je débute en C++, et je voudrais avoir les informations nécessaires pour faire fonctionner le tri recursif avec qsort. Voila le principe de mon Recherche tri d'un tableau d'adresse objet [ par rtnode ] Bonjour à tous,je soumets un problème qui me semble à priori trés banal mais dont je n'ai pas trouvé de bonne solution.Dans nombre de cas, je dispose problème tri d'une liste d'objet ! [ par tomsawyerbelgique ] Bonjour, j'aimerais savoir comment on fait pour surdéfinir un foncteur de tri de liste d'objet. C'est objet sont des pointeurs sur une structure et la comptage d'affluence client en fonction des horaires [ par Bart293 ] Bonjour a tous!!! je suis en BTS informatique et réseau et je chercher a concevoir un petit prog afin de compter l'affluence des clients dans un petit Tri Tas avec arbre P-aire [ par LiGrAnD ] bonjour, j'ai besoin de programmer un tri par tas generaliser aux arbres p-aire et non pas binaire comme habituellement.pourriez vous m'aider car la j


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.