begin process at 2012 05 28 10:25:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Général

 > 

calculs tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

calculs tableau

vendredi 10 juin 2011 à 14:24:46 | calculs tableau

3463

Salut à tous !! J'ai besoin de votre aide
Voici mon programme :

# include <stdio.h>
# include <stdlib.h>
# include <iostream>
# include <fstream>
# include <string>
# include <math.h>
# include<conio.h>


using namespace std;
//int rechercheDicho(int [], int, int);
void afficheColonne(float [], int); // Fonction pour vérifier le contenu d'une colone
void EnregistrerUneColonne(float[], float[], float[], float[], int); // Un fonction qui enregistre les 4 colonnes


int main()
{
// Déclaration des variables
int hauteur1=0; // hauteur anémomètre 1
int hauteur2=0; // hauteur anémomètre 2
int resultathauteur=0;
int site;
int duree=0; // duree de mesure
int nbredemesures=0;
int nbredemesures2,nbreanemo;


// Programme


printf("\n CHOIX DES ANEMOMETRES");
printf("\n Hauteur anemometre 1 en metres : ");
scanf("%d",&hauteur1);

printf("\n Hauteur anemometre 2 en metres : ");
scanf("%d",&hauteur2);


resultathauteur=abs(hauteur1-hauteur2);
printf("\n La difference de hauteur entre les 2 anemometres est de : %d m ",resultathauteur);


printf("\n \n \n \n CHOIX DU SITE");

printf("\n \nLes differents sites sont : ");
printf("\n - mat1 = 1");
printf("\n - mat2 = 2");
printf("\n - mat3 = 3");
printf("\n - mat4 = 4");
printf("\n - mat5 = 5");
printf("\n - mat6 = 6");
printf("\n \n Choisissez votre site : ");
scanf("%d",&site);

switch(site)
{
case 1 :
printf("\n \n Ce mat possede x anemometres : xm - xm - xm");
break;

etc……..

}

printf("\n \n Veuillez indiquer la duree de mesure en jours : ");
scanf("%d",&duree);
printf("\n \n La duree de mesure selectionnee est de %d jour(s).\n",duree);



nbredemesures=144*duree;
printf("\n \n Il y a %d mesures prises en compte.\n",nbredemesures);




printf("\n \n Combien d'anemometres voulez vous prendre en compte ? ");
scanf("%d",&nbreanemo);
nbredemesures2=nbredemesures*nbreanemo;


printf("\n \n \n \n CALCUL DU COEFFICIENT DE CISAILLEMENT");


double param1, param2, result;
param1=5;
param2=hauteur1/hauteur2;
result=log (param1)/log (param2);
printf("\n \n Alpha = ln(%lf) / ln(%lf) = %lf\n", param1, param2, result );

/*Récupération et lecture du tableau*/

float *INPUT = new float[nbredemesures2];
int nbElementsColonne = (int)(nbredemesures2 / 4);

FILE*ReadInput;

ReadInput=fopen("c:\\Mâts de mesures\\12.txt","r" ) ;

if(ReadInput==0)
{
fprintf(stderr,("\a Erreur ouverture fichier\n "));
exit(-1);
}


for (int i=0 ; i < nbredemesures2; i++)
{
fscanf(ReadInput,"%f", &INPUT[i]);
}


printf("\n\n");
float ligne[4] = {0};

fclose(ReadInput) ;
for (int i=0 ; (i+nbreanemo)<nbredemesures2 ; i+=nbreanemo)
{
for (int j=i; j<i+nbreanemo; j++)
{
printf("\t%f",INPUT[j]);
}
printf ("\n");
}

delete[] INPUT;

/* CALCULS DES COLONNES DU FICHIER TXT*/










/*ENREGISTREMENT DANS UN FICHIER XLS*/

//Les 4 colonnes :
float *colonneA = new float[nbElementsColonne];
float *colonneB = new float[nbElementsColonne];
float *colonneC = new float[nbElementsColonne];
float *colonneD = new float[nbElementsColonne];
// Leurs initialisations
for (int i = 0; i < nbElementsColonne; i++)
{
colonneA[i] = 0;
colonneB[i] = 0;
colonneC[i] = 0;
colonneD[i] = 0;
}

fclose(ReadInput) ;
int index = 0; // Compte le nombre de lignes dans la colonne
for (int i=0 ; (i+nbreanemo)<nbredemesures2 ; i+=nbreanemo) // On prend ligne par ligne
{
for (int j = i; j < i+nbreanemo; j++)
{
printf("\t%f",INPUT[j]); // et on affiche élément par élément

if (j == i)
{
colonneA[index] = INPUT[j]; // Remplis la colonne A à la ligne index, tous les 4 i
}
else if ( j == (i+1))
{
colonneB[index] = INPUT[j]; // Idem pour B mais avec la valeur suivante
}
else if (j == (i+2))
{
colonneC[index] = INPUT[j]; // ...
}
else
{
colonneD[index] = INPUT[j]; //...
}
}
index ++;

printf ("\n");
}

// Affiche le contenu des colonnes pour vérification :
printf ("\nColonne A : \n");
afficheColonne(colonneA, nbElementsColonne);
printf ("\nColonne B : \n");
afficheColonne(colonneB, nbElementsColonne);
printf ("\nColonne C : \n");
afficheColonne(colonneC, nbElementsColonne);
printf ("\nColonne D : \n");
afficheColonne(colonneD, nbElementsColonne);

// Enregistre les colonne avec une fonction (pour pas surcharger le main)
EnregistrerUneColonne(colonneA, colonneB, colonneC, colonneD, nbElementsColonne);

// Supprime les tableaux du tas :
delete[] colonneA;
delete[] colonneB;
delete[] colonneC;
delete[] colonneD;
delete[] INPUT;
}


// Fonction d'affichage :
void afficheColonne(float colonne[], int nombreElements)
{
for (int i=0; i < nombreElements; i++)
{
std::cout << colonne[i] << std::endl;
}
}

// Enregistement :
void EnregistrerUneColonne(float colonneA[], float colonneB[], float colonneC[], float colonneD[], int nbreLignes)
{
// ouvre le fichier en écriture, le crée s'il n'existe pas et remplace le fichier existant

std::ofstream fichier; // Ouvre un fichier façon fstream (ça fait pareil que FILE *)

fichier.open("c://Mâts de Mesures//Fichier_Excel.xls", std::ios::out); // Ouvre le fichier (ou crée) fichierExcel.xls à coté de l'éxecutable, et le vide (par défaut)

if (fichier) // Si y'a pas eu d'erreur au niveau du fichier on continu
{

std::cout << "\n**Enregistrement**\n"; // <- Si ça ne s'affiche dans la console, c'est que le fichier est pas ouvert
// En-tête :
fichier << "<?xml version=\"1.0\"?>\n<Root xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\">\n";
// Remplissage :
for (int i=0; i<nbreLignes; i++)
{
fichier << "\t<row>\n\t\t<ColonneA>";
fichier << colonneA[i];
fichier << "</ColonneA>\n\t\t";
fichier << "<ColonneB>";
fichier << colonneB[i];
fichier << "</ColonneB>\n\t\t";
fichier << "<ColonneC>";
fichier << colonneC[i];
fichier << "</ColonneC>\n\t\t";
fichier << "<ColonneD>";
fichier << colonneD[i];
fichier << "</ColonneD>\n";
fichier << "\t</row>\n";
}
fichier << "</Root>";// Pour finir le fichier en xml correctement

fichier.close(); // Et fermeture
}


printf("\n \n Appuyer sur une touche pour fermer le programme");

getch();
}




En fait, je souhaite faire des calculs entre les différentes colonnes de mon tableau que mon programme affiche. Et jsais pas du tout comment faire. Merci


vendredi 10 juin 2011 à 14:33:41 | Re : calculs tableau

buno

Administrateur CodeS-SourceS
Yop!
C'est quoi qui bloque? Les calculs?


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
mercredi 15 juin 2011 à 15:50:19 | Re : calculs tableau

3463


Salut Buno !
J'ai oublié de poser ma question ^^

En fait je veux faire des calculs entre les différentes colonnes de mon tableau que sort le programme. Des calculs de moyenne, de pentes etc..
En fait mon prog sort un tableau du style : x1 y1 z1
x2 y2 z2
x3 y3 z3.....
Et je veux faire un calcul de pente (y2-y1/...) mais faire une boucle : y3-y2/... puis y4-y3/... etc... Et récupérer toutes ces pentes et faire des moyennes de ces pentes pour pouvoir les réinjecter par la suite sur excel

J'espère avoir était clair. Merci !

mercredi 15 juin 2011 à 15:53:17 | Re : calculs tableau

3463

J'ai déja fait ça mais jpense que c'est de la merde :

# include <stdio.h>
# include <stdlib.h>
# include <iostream>
# include <fstream>
# include <string>
# include <math.h>
# include<conio.h>

using namespace std;

int main()
{
int numerateur, denominateur,occurrence, i, compteur_colonne, compteur_ligne,nombre;
float resultat;
char colonne_numerateur, colonne_denominateur, pourcentage;
int nbcol_matrice = 0, nbligne_matrice = 0;
int matrice[nbcol_matrice][nbligne_matrice];


//Calcul de la pente

printf("Saisir numerateur : ");
scanf("%d",&colonne_numerateur);

printf("Saisir denominateur : ");
scanf("%d",&colonne_denominateur);

for (int i=0 ; i <= nbligne_matrice + 1; i++)
{ numerateur = matrice[colonne_numerateur][i] - matrice[colonne_numerateur][i-1 ];
denominateur = matrice[colonne_denominateur][i] - matrice[colonne_denominateur][i-1];
resultat=numerateur / denominateur;
}

printf("La pente vaut : %f ",resultat);

//Calcul de la moyenne

printf("Saisir nombre: ");
scanf("%d",&nombre);

int compteur_total=0;


for (compteur_colonne = 0; compteur_colonne <= nbcol_matrice - 1; compteur_colonne ++)
{
for(compteur_ligne = 0; compteur_ligne <= nbligne_matrice - 1 ; compteur_ligne ++)
{
if (matrice[compteur_ligne][compteur_colonne] == nombre)
{
occurrence = occurrence + 1;
}
compteur_total = compteur_total + 1;
}
}

pourcentage=occurrence * 100 / compteur_total;

printf("Resultat du pourcentage : %c,pourcentage");

getch();
return 0;
}


mercredi 15 juin 2011 à 16:17:28 | Re : calculs tableau

buno

Administrateur CodeS-SourceS

for (int i=0 ; i <= nbligne_matrice + 1; i++)
{ numerateur = matrice[colonne_numerateur] - matrice[colonne_numerateur][i-1 ];
denominateur = matrice[colonne_denominateur][i] - matrice[colonne_denominateur][i-1];
resultat=numerateur / denominateur;
}

printf("La pente vaut : %f ",resultat);


Attention, ta boucle est mal utilisée, car tu écrases à chaque fois ta variable "resultat" et tu n'affiches que le dernier calcul...
Attention également quand i vaut 0...

Tu devrais avoir un tableau de résultats qui ait autant de cases que de lignes dans ta matrice (-1 peut-être, si je comprends bien) et, dans ta boucle, tu ferais:
Code C/C++ :
...
resultats[i] = numerateur / denominateur;


Du coup, une fois sortie de ta boucle, tu aurais toutes les pentes de ta colonne dans ce tableau.

@+
Buno
----------------------------------------
[i]L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...


Cette discussion est classée dans : fichier, int, printf, include, float


Répondre à ce message

Sujets en rapport avec ce message

Tableau C [ par 3463 ] Salut à tous j'ai vraiment besoin de votre aide !! [code=cpp] # include # include # include # include # include # include # include using nam Dictionnaire de traduction [ par JSG19 ] Salut j'ai un dictionnaire a programmer a chaque fois que je programme soit j'ai le premier mot soit le dernier ou toute la liste de traduction donc génerateur des nombres aléatoire (GLC) [ par adola2003 ] bonjour, j`ai un devoir a remettre la semaine prochaine concernant le génerateur des nombres aléatoires LCG avec F<9 (facteur) I<5 (increment) M (modu erreur de pointeur [ par africanwinners ] Bonsoir j'ai concu un programme c qui permet de lire un fichier,de supprimer les doublons (les doubles) mais il y a des problèmes lors de la lecture d condition type char [ par Adict ] Bonjour voila j'ai un problème :p j'aime faire de petit programme pour m'entrainer et faire des challenges mais la je bloque [^^mad5] en gros j'aime Besoin d'aide-Interface Graphique [ par nissan1 ] Bonjour, s'il vous plait je suis debutant en programmation et j'ai fait un programme en C sous l'IDE codeblocks, qui utilise les elements d'une matri rectification dune code C et/ou aide sur l'algorithme [ par negets ] bonjour, besoin d'aide; j'aimerai dégager l'algorithme de ce code afin de le programmer sous matlab je connais plus rien en C et C++(je commence à lir Probleme reception sur un serveur windows en vc++ [ par alfred ] Salut a tous!!g un probleme dans mon serveur le recv renvoie la valeur -1 et je ne vois pas pouquoi, toute mes socket sont positives le client envois Petit probleme de code en C sur Linux !! [ par UncleShu ] Je voudrais créer un fichier dans le réperoire personnel d'un utilisateur mais mon code ne marche pas !!#include #include #include #define DIR $HOM [C] lecture d'un fichier [ par GazGaz ] lu allalors voila en fait je lis un fichier en c et le probleme c'est que ce fichier est composé de lignes dont la taille exècede largement les 80 car


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,747 sec (3)

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