begin process at 2012 05 28 11:52:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

aide SVP


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

aide SVP

samedi 11 juin 2011 à 12:49:21 | aide SVP

baster200x

bonjour,
j'ai un projet qui consiste à intégrer un algorithme dans un outil Open source appelé Multicube explorer (M3explorer); mais je trouve pas les fichier (.c) en revanche j'ai trouvé les fichier header (.h) et les bibliothèque (.so) de cet outil. donc normalement pour intégrer l'algorithme il me faut de créer une bibliothèque pour cet algorithme, et le malheur c'est que les fichier (.so) ne s'ouvre pas et il n'y a pas de logiciel pour les ouvrir, et comme ça je peux pas savoir à quoi ressemble t il un fichier (.so) ... SVP si quelqu'un peut m’orienter alors qu'il n'hésite pas

merci beaucoup
lundi 13 juin 2011 à 11:14:11 | Re : aide SVP

baster200x

cc ; y a quelqu'un
lundi 13 juin 2011 à 11:19:42 | Re : aide SVP

baster200x

j'ai pensé que la solution est peut être de rendre le fichier .c si-dessous un fichier header ... mais le problème est que ne sais pas comment faire pour le la fonction main...es ce que vous pouvez m'aider à résoudre ça

Code C/C++ :
#include <stdio.h>
#include <stdlib.h>


int nbTache = 10;
FILE *fichier, *cache, *temps_access, *puissance_access, *pop, *tempsAg, *puisAg;

void f1(int lig, int col, int ** p, double ** t,double ** tc, double * f, int ** p1);
void f2(int lig, int col, int ** p, double ** c, double ** cc, double * f, int ** p2);
void selection(int lig, int col, int ** p, double * f1, double * f2, int * par1, int * par2, int * ind);
void croisement(int lig, int col, int ** p, int * par1, int * par2, int * enf1, int * enf2, int * ind, double ** t, double ** tc, double ** c, double ** cc);
void mutation(int lig, int col, int ** p, double ** t, double ** tc, double ** c, double ** cc);
double fti(int col, int * individu, double ** t, double ** tc);
double fci(int col, int * individu, double ** c, double ** cc);

int main(int argc, char ** argv)
{
double ** T = new double* [50];
for(int i = 0;i < 50;++i) T[i] = new double[nbTache];

double ** C = new double* [50];
for(int i = 0;i < 50;++i) C[i] = new double[nbTache];

pop = fopen("pop.txt", "r");

fichier = fopen("resultat.txt", "r");
for (int i = 0; i < 50; i++)
for (int j = 0; j < nbTache; j++)
fscanf(fichier, "%lf%lf", &T[i][j], &C[i][j]);

fclose(fichier);

double * Taille = new double [50];
cache = fopen("cache.txt", "r");
for (int h = 0; h < 50; h++) fscanf(cache, "%lf", &Taille[h]);
fclose(cache);

double *Taccess = new double [50];
temps_access = fopen("temps_access.txt", "r");
for (int h = 0; h < 50; h++) fscanf(temps_access, "%lf", &Taccess[h]);
fclose(temps_access);

double * Paccess = new double [50];
puissance_access = fopen("puissance_access.txt", "r");
for (int h = 0; h < 50; h++) fscanf(puissance_access, "%lf", &Paccess[h]);
fclose(puissance_access);

double ** Tc = new double* [50];
for(int i = 0;i < 50;++i) Tc[i] = new double[50];

for (int i = 0; i < 50; i++)
for (int j = 0; j < 50; j++)
{
if (i == j) Tc[i][j] = 0;
else if (Taille[i] < Taille[j]) Tc[i][j] = 0;
else Tc[i][j] = Taccess[i] * (Taille[i] - Taille[j]);
}

double ** Cc = new double* [50];
for(int i = 0;i < 50;++i) Cc[i] = new double[50];

for (int i = 0; i < 50; i++)
for (int j = 0; j < 50; j++)
{
if (i == j) Cc[i][j] = 0;
else if (Taille[i] < Taille[j]) Cc[i][j] = 0;
else Cc[i][j] = Paccess[i] * (Taille[i] - Taille[j]);
}


int ** p = new int* [100];
for(int i = 0;i < 100;++i) p[i] = new int[nbTache];

for (int i = 0; i < 50; i++)
for (int j = 0; j < 50; j++)
p[i][j] = rand();

// Evaluation des individus ou calcul de Fitness
double * Ft = new double [100];
double * Fc = new double [100];
int * par1 = new int [nbTache];
int * par2 = new int [nbTache];
int * enf1 = new int [nbTache];
int * enf2 = new int [nbTache];
int ** p1 = new int* [100];
for(int i = 0;i < 100;++i) p1[i] = new int[nbTache];
int ** p2 = new int* [100];
for(int i = 0;i < 100;++i) p2[i] = new int[nbTache];
int * In = new int [2];

// Evaluation des individus
f1(100, nbTache, p, T, Tc, Ft, p1);
f2(100, nbTache, p, C, Cc, Fc, p2);
selection(100, nbTache, p, Ft, Fc, par1, par2, In);

for (int i = 0; i < 100; i++)
{
printf("%d ", i);

for (int j = 0; j < nbTache; j++) printf("%d ", p[i][j]);
printf("\n");
}

f1(100, nbTache, p, T, Tc, Ft, p1);
f2(100, nbTache, p, C, Cc, Fc, p2);

// Sélection
int k = 0;
int l = 1;

while (k < 500)
{
//nombre de génération
// croisement
croisement(100, nbTache, p, par1, par2, enf1, enf2, In, T, Tc, C, Cc);
// Mutation
mutation(100, nbTache, p, T, Tc, C, Cc);
// pop après reclassement, croisement et mutation

selection(100, nbTache, p, Ft, Fc, par1, par2, In);
//c la j'ai ajoutée une condition qui teste si c la premiere itération alors
//imprimé ou si pair de 10 imprimer aussi car je veux avoir 1 10 20 30 40 50 60 70 80 90 100

if (l % 50 == 0)
{
printf("%d\n", l);
for (int i = 0; i < 100; i++)
{
printf( "%d ", i);

for (int j = 0; j < nbTache; j++)
{
printf("%d ", p[i][j]);
}

printf("\n");

}

f1(100, nbTache, p, T, Tc, Ft, p1);

f2(100, nbTache, p, C, Cc, Fc, p2);
}

k++;
l++;
}

fclose(pop);
}

void f1(int lig, int col, int ** p, double ** t,double ** tc, double * f, int ** p1)
{
double s1, s2;
double * S1 = new double [lig];
double * S2 = new double [lig];

for (int i = 0; i < lig; i++)
{
s1 = 0;

for (int j = 0; j < col; j++)
s1 += t[p[i][j]][j];

S1[i] = s1;
}

for (int i = 0; i < lig; i++)
{
s2 = 0;

for (int j = 0; j < col-1; j++)
s2 += tc[p[i][j]][p[i][j + 1]];

S2[i] = s2;
}

tempsAg = fopen("tempsAg.txt", "w");
printf(" Ft\n");

for (int i = 0; i < lig; i++)
{
f[i] = S1[i] + S2[i];
fprintf(tempsAg, "%lf\n", f[i]);
}

fclose(tempsAg);
}

void f2(int lig, int col, int ** p, double ** c, double ** cc, double * f, int ** p2)
{
double s1, s2;
double * S1 = new double[lig];
double * S2 = new double[lig];

for (int i = 0; i < lig; i++)
{
s1 = 0;
for (int j = 0; j < col; j++) s1 += c[p[i][j]][j];
S1[i] = s1;
}

for (int i = 0; i < lig; i++)
{
s2 = 0;
for (int j = 0; j < col - 1; j++) s2 += cc[p[i][j]][p[i][j + 1]];
S2[i] = s2;
}

puisAg = fopen("puisAg.txt", "w");
printf("Fc\n");

for (int i = 0; i < lig; i++)
{
f[i] = S1[i] + S2[i];
fprintf(puisAg, "%lf\n", f[i]);
printf("%lf\n", f[i]);
}

fclose(puisAg);
}

// Appliquer l'algorithme VEGA pour la selection des individus qui feront
// objet d'un croisement et/ou Mutation
void selection(int lig, int col, int ** p, double * f1, double * f2, int * par1, int * par2, int * ind)
{
// Sous pop 1 les 50 premiers individus sont classés selon F1
double z;
int x;

//Classement selon F1
for (int i = 0; i < ( (lig / 2) - 1); i++)
{
for (int j = i + 1; j < lig / 2; j++) {
if (f1[j] < f1[i]) {
z = f1[i];
f1[i] = f1[j];
f1[j] = z;
for (int h = 0; h < col; h++) {
x = p[i][h];
p[i][h] = p[j][h];
p[j][h] = x;
}

}
}
}

double z1;
int x1; //classement selon F2
for (int i = (lig / 2); i < lig - 1; i++) {
for (int j = i + 1; j < lig; j++) {
if (f2[j] < f2[i]) {
z1 = f2[i];
f2[i] = f2[j];
f2[j] = z1;
for (int h = 0; h < col; h++) {
x1 = p[i][h];
p[i][h] = p[j][h];
p[j][h] = x1;
}

}
}
}

ind[0] = rand() % 50;
ind[1] = rand() % 50;

for (int i = 0; i < lig; i++)
{
if (i == ind[0])
{
for (int j = 0; j < col; j++)
{
par1[j] = p[i][j];
}
}

}
for (int i = 0; i < lig; i++)
{
if (i == ind[1])
{
for (int j = 0; j < col; j++)
{
par2[j] = p[i][j];
}
}
}
}

void croisement(int lig, int col, int ** p, int * par1, int * par2, int * enf1, int * enf2, int * ind, double ** t, double ** tc, double ** c, double ** cc)
{

for (int j = 0; j < col / 2; j++)
{
enf1[j] = par1[j];
enf2[j] = par2[j];
}
for (int j = col / 2; j < col; j++)
{
enf1[j] = par2[j];
enf2[j] = par1[j];
}

if (fti(col, enf1, t, tc) < fti(col, par1, t, tc))
{
for (int j = 0; j < col; j++)
{
p[ind[0]][j] = enf1[j];
}
}

if (fci(col, enf2, c, cc) < fci(col, par2, c, cc))
{
for (int j = 0; j < nbTache; j++)
{
p[ind[1]][j] = enf2[j];
}
}

}

void mutation(int lig, int col, int ** p, double ** t, double ** tc, double ** c, double ** cc)
{
int * mut = new int[lig];
int * mut1 = new int[lig];
int id = rand() % 100;

for (int i = 0; i < lig; i++)
{

if (i == id)
{
for (int j = 0; j < col; j++)
{
mut[j] = p[i][j];
mut1[j] = mut[j];
}
}
}

int id1 = rand() % col;

for (int j = 0; j < col; j++)
{
if (j == id1)
{
mut1[j] = 49 - mut[j];
}
}

if ( (fti(col, mut1, t, tc) < fti(col, mut, t, tc)) && (fti(col, mut1, t, tc) < fti(col, mut, t, tc)))
{
for (int j = 0; j < col; j++)
{
p[id][j] = mut1[j];
}
}

}

double fti(int col, int * individu, double ** t, double ** tc)
{
double s1 = 0, s2 = 0;

for (int j = 0; j < col; j++)
{
s1 += t[individu[j]][j];
// p[i]{j]= N°Configuration [j]=N° de la
// tache
}

for (int j = 0; j < col - 1; j++)
{
s2 += tc[individu[j]][individu[j + 1]];
// p[i]{j]=
// N°Configuration
// [j+1]=N°configuration
// suivante dans la solution
// en cours
}

return s1 + s2;
}

double fci(int col, int * individu, double ** c, double ** cc)
{
double s1 = 0, s2 = 0;

for (int j = 0; j < col; j++)
{
s1 += c[individu[j]][j];
// p[i]{j]= N°Configuration [j]=N° de la
// tache
}

for (int j = 0; j < col - 1; j++)
{
s2 += cc[individu[j]][individu[j + 1]]; // p[i]{j]=
// N°Configuration
// [j+1]=N°configuration
// suivante dans la solution
// en cours
}

return s1 + s2;
} 
lundi 13 juin 2011 à 16:16:47 | Re : aide SVP

TychoBrahe

Salut,

Les fichiers .so sont des bibliothèques dynamiques. C'est du code compilé donc non ça ne s'ouvre pas comme ça. Il est en effet fort possible que tu doives créer toi aussi une bibliothèque dynamique, mais alors :
- tu ne dois pas avoir de main
- tu dois te renseigner sur l'api que le logiciel met à ta disposition
samedi 18 juin 2011 à 12:11:43 | Re : aide SVP

baster200x

Réponse acceptée !
nn je doit créer une class .c et le fichier header .h dès le début et intéger avant l'installation en modifiant le makefile.in de M3explorer.
merci de votre réponse


Cette discussion est classée dans : fichier, aide, algorithme, intégrer, so


Répondre à ce message

Sujets en rapport avec ce message

AIDE programme supprimer un fichier ! SVP [ par nico ] salut à tous,je suis un gros nul en c++ , je viens de telecharger dev-c++ et j'aimerais faire mon premier programe tout simple pour supprimer un fichi aide sur les fichiers [ par dickymoe ] VinceExiste-t-il une fonction permettant de savoir si un fichier existe ?et une autre permettant de savoir si un fichier est vide ?merci besoin d aide [ par backcpp ] voila j aimerais realiser un logiciel tout simple mais je voulais d abord savoir si je ne vise pas trop haut, donc je vous explique et si vous pouviez A L'AIDE !!! [ par arfalchon ] Je voudrais récupérer du texte dans une EditBox (API Win32), puis ensuite l'écrire dans un fichier. Mais je n'arrive pas à obtenir quoi que ce soit, l Aide fichier :) [ par asnow ] Salut a tous :)Voila mon tit code pour ouvrir un fichiervoid Ouverture () {char nomf[20]; printf("Entrez le nom du fichier :"); scanf("%s", nomf Besoin D'aide [ par kazaam ] J'ai comme projet la symetrie horizontale d'un fichier bmp en borland C, je lis le fichier l'entete se fait mais j'arrive pas a ce qu'il fasse la syme Aide .chm [?] [ par crocejf2000 ] Salut,Il y avait dans mon prog un fichier d'aide .hlp mais quand je change le nom et met mon nouveau fichier d'aide .chm ca ne fonctionne pas.Comment chercher une donnée dans un fichier texte !! De l'aide !! [ par nakounet ] Je vous en suplie ! je vais devenir fou si personne ne m'aide !!voilà je suis en train de faire un carnet d'adresse évolué !! là je fais la fonction r besoin d'aide urgente ! [ par thegorre ] Vraiment plus que novice mais veux apprendre tout doux Merci****************************************voila : je resume !cela fait deja 2 semaine que j aide pour ouverture en hexa [ par alphaone ] Svp pouvais vous me faire un prog qui ouvre un fichier en hexa l'enregistre dans un tableau de nombre. et reconstitu le fichier à partir du tableau de


Nos sponsors


Sondage...

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 : 0,983 sec (4)

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