begin process at 2010 02 10 12:21:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichiers / Disque

 > NOMBRES TRIÉS

NOMBRES TRIÉS


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fichiers / Disque Classé sous :trier, nombres Niveau :Débutant Date de création :03/11/2003 Date de mise à jour :05/11/2003 00:00:45 Vu :2 433

Auteur : catamenia

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Vous entrez des entiers et le programme remet ces entiers dans l'ordre croissant et les affiches. l'entrée de -1000 signifie que vous avez entrez tous les int voulu.

Source

  • /*************************************************************/
  • /* première version avec 2 tableaux */
  • /* 1 pour enregistrer les int et 1 ou les int sont triés par ordre croissant */
  • /*************************************************************/
  • #include <iostream.h>
  • void main()
  • {
  • int tab[50];
  • int tab2[50]; //tableau trié
  • int n = 0;
  • int i = 0;
  • int j = 0;
  • int t = 0; //pour parcourir le tableau
  • int countm = 0; //pour compté le nombre de int < a celui testé
  • int counte = 0; //pour compté le nombre de int = a celui testé
  • //saisie des int
  • cout << "Entrez des int:" << endl;
  • while((tab[n-1] != -1000) && (n < 50))
  • {
  • cin >> tab[n];
  • n++;
  • }//fin du while
  • //rangement des int
  • for( i = 0; i < (n-1); i++) //teste chaque valeur une
  • { //par une a toute les autres
  • while(t < (n-1))
  • {
  • if(tab[i] > tab[t]) //teste si la valeur a testé
  • { //est > a celle que l'on compare
  • countm++;
  • }
  • else
  • {
  • if(tab[i] == tab[t])//teste si la valeur a testé
  • counte++; //est = a celle que l'on compare
  • }
  • t++;
  • }//fin du while(t < (n-1))
  • while(counte >= 1) //au cas ou des valeur soient =
  • {
  • tab2[countm + counte -1] = tab[i];
  • counte--;
  • }//fin du while(counte >= 1)
  • countm = 0;
  • counte = 0;
  • t = 0;
  • }//fin du for
  • //affiche les int dans l'ordre
  • for(j = 0; j < (n-1); j++)
  • cout << tab2[j] << " ";
  • cout << endl;
  • }//fin du main
  • /*********************************************************/
  • /* seconde version mai avec 1 tableau */
  • /* qui enregistre et trie a la fois */
  • /*********************************************************/
  • #include <iostream.h>
  • #include <iomanip.h>
  • void main()
  • {
  • int tab[50];
  • int n = 0;
  • int i = 0;
  • int t = 1;
  • int mem = 0;
  • int cligne = 0;
  • //saisie des int
  • //jusqu'à ce que l'on tape -1000
  • //ou qu'il y ai 50 int
  • cout << "Entrez des int:" << endl;
  • while((tab[n-1] != -1000) && (n < 50))
  • {
  • cin >> tab[n];
  • n++;
  • }//fin du while
  • //teste chaque valeur une par une
  • for( i = 0; i <= (n-1); i++)
  • {
  • //pour eviter de tester le int de quit
  • if(tab[i] != -1000)
  • {
  • t = (i + 1);
  • //compare un int a tous les autres 1 par 1
  • while( (t < n) && (tab[t] != -1000))
  • {
  • //inverse les 2 int comparés si
  • //le premier int est > au second testé
  • if(tab[i] > tab[t])
  • {
  • mem = tab[i];
  • tab[i] = tab[t];
  • tab[t] = mem;
  • }
  • t++;
  • }//fin du while
  • // affiche par ligne de 5 int
  • if(cligne < 5)
  • {
  • cout << setw(10) << tab[i];
  • cligne++;
  • }
  • else
  • {
  • cout << endl << setw(10) << tab[i];
  • cligne = 1;
  • }
  • }//fin du if
  • }//fin du for
  • cout << endl;
  • }
/*************************************************************/
/*                       première version avec 2 tableaux                                 */
/*     1 pour enregistrer les int et 1 ou les int sont triés par ordre croissant  */
/*************************************************************/

#include <iostream.h>

void main()
{
	int tab[50];
	int tab2[50];		//tableau trié
	int n = 0;
	int i = 0;
	int j = 0;
	int t = 0;		//pour parcourir le tableau
	int countm = 0;	//pour compté le nombre de int < a celui testé
	int counte = 0;	//pour compté le nombre de int = a celui testé

	//saisie des int
	cout << "Entrez des int:" << endl;
	while((tab[n-1] != -1000) && (n < 50))
	{
		cin >> tab[n];
		n++;
	}//fin du while
	//rangement des int
	for( i = 0; i < (n-1); i++)		//teste chaque valeur une  
	{								//par une a toute les autres
		while(t < (n-1))
		{
			if(tab[i] > tab[t])		//teste si la valeur a testé 
			{						//est > a celle que l'on compare
				countm++;
			}
			else
			{
				if(tab[i] == tab[t])//teste si la valeur a testé 
					counte++;		//est = a celle que l'on compare
			}
			
			t++;

		}//fin du while(t < (n-1))
		
		while(counte >= 1)		//au cas ou des valeur soient = 
		{
			tab2[countm + counte -1] = tab[i];
			counte--;
		}//fin du while(counte >= 1)

		countm = 0;
		counte = 0;
		t = 0;
		

	}//fin du for
	
	//affiche les int dans l'ordre
	for(j = 0; j < (n-1); j++)
		cout << tab2[j] << " ";
	cout << endl;

}//fin du main

/*********************************************************/
/*                       seconde version mai avec 1 tableau                       */
/*                            qui enregistre et trie a la fois                           */
/*********************************************************/

#include <iostream.h>
#include <iomanip.h>

void main()
{
	int tab[50];
	int n = 0;			
	int i = 0;	
	int t = 1;	
	int mem = 0;
	int cligne = 0;

	//saisie des int
	//jusqu'à ce que l'on tape -1000
	//ou qu'il y ai 50 int
	cout << "Entrez des int:" << endl;
	while((tab[n-1] != -1000) && (n < 50))
	{
		cin >> tab[n];
		n++;
	}//fin du while
	
	//teste chaque valeur une par une 
	for( i = 0; i <= (n-1); i++)		
	{
		//pour eviter de tester le int de quit
		if(tab[i] != -1000)				
		{
			t = (i + 1);
			//compare un int a tous les autres 1 par 1
			while( (t < n) && (tab[t] != -1000))
			{
				//inverse les 2 int comparés si
				//le premier int est > au second testé
				if(tab[i] > tab[t])
				{
					mem = tab[i];
					tab[i] = tab[t];
					tab[t] = mem;
				}

				t++;
			}//fin du while
			// affiche par ligne de 5 int
			if(cligne < 5)
			{
				cout << setw(10) << tab[i];
				cligne++;
			}	
			else
			{
				cout << endl << setw(10) << tab[i];
				cligne = 1;
			}
		}//fin du if
	}//fin du for

	cout << endl;

}

 Conclusion

Dans la version 1 le programme recherche directement la postition de l'entier testé par rapport aux autres et l'écrit dans un tableau.

Dans la version 2 le programme teste les int un par un a tous les autres un par un étalement et si le int testé est suppérieur au second int testé on inverse les 2 int dans le tableau de façon a avoir le plus petit int en premier.


 Sources du même auteur

Source avec Zip GESTION D'UTILISATEUR
Source avec une capture LIGNES EN PYRAMIDE INVERSÉE

 Sources de la même categorie

Source avec Zip Source avec une capture ID3 TAG COVER ALBUM IMAGE par nanonavich
FILEREADER par FrancoisGauthier
Source avec Zip CLASSE AVANCÉE DE LOG, THREAD SAFE ET DIVERSES SURCHARGES par sboli
Source avec Zip Source avec une capture Source .NET (Dotnet) INFILESEEKER par swonder
Source avec Zip Source avec une capture USB DETECTION par abandonware

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) LISTES DES NOMBRES PARFAITS INFERIEURES À N par Trezeguet
Source avec Zip FACTORISATION D'UN NOMBRE EN NOMBRE PREMIER par Tearsofdestiny
Source avec Zip CALCUL DE FACTORIELLES par pabbati
RECHERCHE DES NOMBRES CHANCEUX SELON STANISLAW ULAM par Gueftones
NOMBRES EN LETTRES par blassiou083

Commentaires et avis

Commentaire de gvhecke le 07/11/2003 01:23:45

D'après ton code, on peu deviner que tu débute en c++. Je me trompe ?

T'as du mérite mais ta méthode de tri est assez lourde... Si l'on appliquait ton principe à de grands vecteurs de nombre ca risquerait de prendre pas mal de temps.

Commentaire de catamenia le 09/11/2003 01:13:03

oui je débute, et en cours je fais pas que de la programmation donc on voit pas grand chose. sinon j'aimerai bien que l'on m'indique les meilleur méthode pour trier des nombre. merci

Commentaire de fredodo10 le 09/12/2003 07:55:31

tri bubble  lent mais rapide a mettre en oeuvre facile à comprendre
tri shell     + rapide, un peu plus difficile à comprendre

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Probleme sur un programme qui calcule un pgcd [ par El loco ] Voila j ai un probleme sur le programme suivant, il marche correctement avec une grande serie de nombres mais quand je tape 15 et 32 il me donne un pg class pour manipuler des grands nombres [ par Orkblutt ] Salut,j'aimerai implementer une classe qui me permettrai de manipuler (+,-, /,*,%) des grands nombres (Nb&gt;32bits) mais je ne sais pas du tout comm Cas des tres grds nombres en C [ par unclecrufek ] slt a tousJ'ai un projet de math a realiser en C:convertir des nombres d'une base a une autre.Ce n'est pas bien complique, sauf qu'il faut que j'envis traviller avec de grands nombres [ par alfred289 ] est-ce que quelqu'un aurait une façon simple de travailler avec de très grands nombres ( des miliers de chiffres par exemple) Les nombres aléatoires en C++ (Visual C++ 6.0) [ par Yabo ] Tout d'abord voilà le code :CODE #include &lt;iostream&gt;#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;time.h&gt;using namespace std convertir les nombres en lettres [ par djamine ] salut les amisje cherche un code pour convertir les nombres (1 2 3 .....) en lettres ( un, deux , trois....)l'utilisateur donne le nombre et le progra COMPTER LE NOMBRES D'IMPRESSIONS [ par bilal ] VGTABONJOUR G cherché et essayé et toujour pas trouvé ou je dois attaquer pour faire mon petit soft.enfait je voudrai juste compter le nombre d'impres Nombres dans fichier .txt [ par Franckyom50 ] Salut à tous !J'aimerais savoir comment je peux récupérer une série de nombres qui se trouvent dans un fichier texte, sous cette forme :365221655236-2 trier et classer un tableau de structures [ par requinB ] bonjour;mes amis, je bloque...sur comment trier et classer un tableau de structures...le tableau comprend un estructure article: code en int, libelle trier un tableau par ordre alphabetique [ par sirvincent ] bonjour, je programme sous borland c++ builder v5donc voila j'ai un objet stringGringet quand je clic sur un bouton je souhaite qu'une colone se trie


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales