begin process at 2012 02 08 22:22:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > STATISTIQUES (MOYENNE, TRI, MÉDIANE, ÉTENDUE)

STATISTIQUES (MOYENNE, TRI, MÉDIANE, ÉTENDUE)


 Information sur la source

Note :
Aucune note
Catégorie :Maths & Algorithmes Niveau :Débutant Date de création :06/06/2002 Date de mise à jour :06/06/2002 21:08:37 Vu :9 009

Auteur : ADN733R

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

 Description

Mon premier prog c++. Je part d'une source d'un bouquin et je l'ai étendue

Source

  • #include <iostream.h>
  • #include <string.h>
  • #include <stdlib.h>
  • void main()
  • {
  • int cnt,sercnt,cnt2[2];
  • int i,c;
  • char buffer[128],buf[5];
  • double *n=NULL;
  • double *blp;
  • double sum=0.0;
  • double min,max,tmp;
  • float result;
  • double med;
  • //cout<<"/033[2J";
  • cout << "\t\tCalculs statistiques\n";
  • cout << "Statistiques sur une liste\n";
  • cout << "Terminer la serie par \"f\"\nLes entrees non numeriques seront considerees comme egales a 0\n\n";
  • cnt=0;
  • do
  • {
  • cout << "Nombre nø "<<cnt+1<<" : ";
  • cin.getline(buffer,128);
  • if (strcmp("f",buffer))
  • {
  • if ((n=(double *) realloc(n,(cnt+1)*sizeof(double)))==NULL)
  • {
  • cout<<"Memoire insuffisante";
  • break;
  • }
  • n[cnt]=atof(buffer);
  • blp=n;
  • cnt++;
  • }
  • } while (buffer[0]!='f');
  • if (cnt>0)
  • {
  • if (n==NULL)
  • n=blp;
  • cout << "\nVous avez saisi : "<<cnt<<" nombre(s)";
  • for(i=0;i<cnt;i++)
  • sum=sum+n[i];
  • cout<<"\nSomme : "<<sum;
  • cout <<"\nMoyenne : "<<sum/cnt;
  • min=n[0];
  • for (i=0;i<cnt;i++)
  • if (min>n[i])
  • min=n[i];
  • max=n[0];
  • for (i=0;i<cnt;i++)
  • if (max<n[i])
  • max=n[i];
  • cout <<"\nMinimum : "<<min;
  • cout <<"\nMaximum : "<<max;
  • cout <<"\nEtendue : "<<max-min;
  • for (i=0;i<cnt;i++)
  • {
  • for (c=0;c<(cnt-1);c++)
  • {
  • if (n[c]>n[c+1])
  • {
  • tmp=n[c+1];
  • n[c+1]=n[c];
  • n[c]=tmp;
  • }
  • }
  • }
  • cout<<"\nNombres tries :\n";
  • for (i=0;i<cnt;i++)
  • cout<<n[i]<<" ";
  • result=float (cnt)/2;
  • i=cnt/2;
  • if (i==result)
  • {
  • //cout<<"\nle nombre d\'entrees est paire";
  • med=float((n[i-1]+n[i])/2);
  • }
  • else
  • {
  • //cout <<"\nle nombre d\'entree est impaire";
  • med=n[i-1];
  • }
  • cout <<"\nMediane : "<<med;
  • cout <<"\n\n";
  • cin.getline(buffer,128);
  • exit(0);
  • }
  • if (n!=NULL)
  • {
  • free(n);
  • }
  • }
#include <iostream.h>
#include <string.h>
#include <stdlib.h>

void main()
{
	int cnt,sercnt,cnt2[2];
	int i,c;
	char buffer[128],buf[5];
	double *n=NULL;
	double *blp;
	double sum=0.0;
	double min,max,tmp;
	float result;
	double med;

	//cout<<"/033[2J";
	cout << "\t\tCalculs statistiques\n";
	cout << "Statistiques sur une liste\n";
		cout << "Terminer la serie par \"f\"\nLes entrees non numeriques seront considerees comme egales a 0\n\n";
		cnt=0;
		do
		{
			cout << "Nombre nø "<<cnt+1<<" : ";
			cin.getline(buffer,128);
			if (strcmp("f",buffer))
			{
				if ((n=(double *) realloc(n,(cnt+1)*sizeof(double)))==NULL)
				{
					cout<<"Memoire insuffisante";
					break;
				}
				n[cnt]=atof(buffer);
				blp=n;
				cnt++;
			}
		} while (buffer[0]!='f');
		if (cnt>0)
		{
			if (n==NULL)
				n=blp;
		cout << "\nVous avez saisi : "<<cnt<<" nombre(s)";
			for(i=0;i<cnt;i++)
				sum=sum+n[i];
			cout<<"\nSomme : "<<sum;
			cout <<"\nMoyenne : "<<sum/cnt;
			min=n[0];
			for (i=0;i<cnt;i++)
				if (min>n[i])
					min=n[i];
			max=n[0];
			for (i=0;i<cnt;i++)
				if (max<n[i])
					max=n[i];
			cout <<"\nMinimum : "<<min;
			cout <<"\nMaximum : "<<max;
			cout <<"\nEtendue : "<<max-min;
			for (i=0;i<cnt;i++)
			{
				for (c=0;c<(cnt-1);c++)
				{
					if (n[c]>n[c+1])
					{
						tmp=n[c+1];
						n[c+1]=n[c];
						n[c]=tmp;
					}
				}
			}
			cout<<"\nNombres tries :\n";
			for (i=0;i<cnt;i++)
				cout<<n[i]<<" ";
			result=float (cnt)/2;
			i=cnt/2;
			if (i==result)
			{
				//cout<<"\nle nombre d\'entrees est paire";
				med=float((n[i-1]+n[i])/2);
			}		
			else
			{
				//cout <<"\nle nombre d\'entree est impaire";
				med=n[i-1];
			}
			cout <<"\nMediane : "<<med; 
			cout <<"\n\n";
			cin.getline(buffer,128);
			exit(0);
		}
		if (n!=NULL)
		{
			free(n);
		}
	}

 Conclusion

Merci de ne pas faire la réflexion "C'est pour quel compilateur?" Démerdez vous. Pour une source de ce niveau, il n'y a pas besoin d'explications de compilateur...Non mais.


 Sources du même auteur

ANIMATION EN MODE TEXTE

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

Commentaires et avis

Commentaire de kjus le 06/06/2002 23:31:03

n[cnt]=atof(buffer);
&gt;&gt; atof ca marche comment ?

sinon, tu connais la diff en malloc() et realloc() que tu utilises ?

Commentaire de GoldenEye le 11/06/2002 16:39:16

1/Attention aux confusions entre les float et les doubles
2/ Même remarque que kjus: realloc n'est pas pertinent ici
3/ Ne laisse pas les informations de debug (style //cout&lt;&lt;"blabla") en commentaires, le code est moins lisible
4/A l'avenir, pourquoi ne pas faire une sortie sous forme d'histogrammes en mode texte ?

Commentaire de ADN733R le 11/06/2002 22:38:46

1/pour les float/double je corrigerai
2/Pour le realloc c'est pas de moi j'ai dit que j'étendais la source mais à mon avis "ils" savent de quoi "ils" parlent dans le bouquin où je l'ai pris s'est leur job... alors...
3/que dire?
4/explique toi
@+

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,201 sec (3)

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