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 !

Sujet : ou est l'erreur : boucles imbriquées [ Algorithme / Maths ] (pausecpp)

jeudi 10 juillet 2008 à 16:46:17 | ou est l'erreur : boucles imbriquées

pausecpp

le compilateur ne mentionne aucune "error" ni "warning"
pourtant j'ai fait le programme pour que le valeur de S[N][M] changent!!!
voici le code ( merci pour votre temps)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<math.h>
#define N 5
#define M 8
#define Ls 12



floatalea(floatu,floatv);
floatfonc(float*x,intn);


intmain()
{
srand(2008);
inti,k,count;
floatlanda1,landa2,longeur;
floatY[M][N],S[M][N];
floata[N]={0,1,3,-5,-10},b[N]=
{
10,18,19,11,21};


for(i=0;i<M;i++)
{
for(k=0;k<N;k++)
{
S[i][k]=alea(a[k],b[k]);

}
}
printf("\n\n");

printf("Col1\t\tCol2\t\tCol3\t\tCol4\t\tCol5\n");
for(i=0;i<M;i++)
{
for(k=0;k<N;k++)
{
printf("%f\t",S[i][k]);

}
printf("\n");
}


for(i=0;i<M;i++)
{
for(k=0;k<N;k++)
{
landa1=alea(0,1);
while(count<Ls)
{
Y[i][k]=S[i][k];
landa2=alea(0,1);
if(landa1>0.5)
{
Y[i][k]=Y[i][k]+landa2*longeur;
}
else
{
Y[i][k]=Y[i][k]-landa2*longeur;
}
if(fonc(Y[i],N)<fonc(S[i],N))


{
S[i][k]=Y[i][k];
count=Ls-1;
}
count=count+1;
}
}
}


printf("\n\nCol1\t\tCol2\t\tCol3\t\tCol4\t\tCol5\n");
for(i=0;i<M;i++)
{
for(k=0;k<N;k++)
{
printf("%f\t",S[i][k]);

}
printf("\n");
}



}
floatalea(floatu,floatv)
{
return(float)(u+((float)rand()/RAND_MAX*(v-u)));
}


floatfonc(float*x,intn)
{
inti;
floatval=0.0,t1=0.0,t2=0.0;

for(i=0;i<n;i++)
{
t1+=pow((x[i]-1.0),2.0);
}
for(i=1;i<n;i++)
{
t2+=(x[i]*x[i-1]);
}
val=t1-t2;

returnval;
}


jeudi 10 juillet 2008 à 17:08:21 | Re : ou est l'erreur : boucles imbriquées

buno

Hello,
Problème de parenthèses dans la fonction alea peut-être?
returnu+((float)rand()/RAND_MAX)*(v-u);

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

jeudi 10 juillet 2008 à 17:17:30 | Re : ou est l'erreur : boucles imbriquées

pausecpp

des espaces ont sautés lorsque j'ai poster le code ( exemple "returnval" à la place de "return val" !!)
non ce n'est pas la fonction alea qui pose problème, je soupçonne lol la boucle while et les deux if à l'intérieur.

jeudi 10 juillet 2008 à 17:46:21 | Re : ou est l'erreur : boucles imbriquées

darunia

srand(time(0)); ???

D@runia

jeudi 10 juillet 2008 à 17:57:20 | Re : ou est l'erreur : boucles imbriquées

Pistol_Pete

Salut

En principe il suffit de lire le message d'erreur à savoir ici: "la variable count est utilisée sans avoir été initialisée"

A+
Mon site internet : [ Lien ]


jeudi 10 juillet 2008 à 18:19:56 | Re : ou est l'erreur : boucles imbriquées

SAKingdom

Membre Club
Quel est le problème au fait ? Qu'est-ce que ton code ne fait pas correctement. Cette information nous aiderais probablement bien plus.

Aussi, comme précisé par darunia:
srand(2008);
ne te générera pas une suite très aléatoire de nombre. La même suite sortira d'une exécution du code à l'autre.

C++ (@++)


jeudi 10 juillet 2008 à 18:23:51 | Re : ou est l'erreur : boucles imbriquées

darunia

Mouais, je suis d'accord avec SAKingdom, on propose des solutions mais on est pas forcement sur de nous, tout simplement parce qu'on a pas vraiment compris le souci (enfin pour moi c'est le cas !).

D@runia

jeudi 10 juillet 2008 à 18:26:47 | Re : ou est l'erreur : boucles imbriquées

SAKingdom

Membre Club
Oops j'avais pas vu le message de pete. count n'est, en effet, pas initialisé avant son utilisation dans la boucle
while(count < Ls)

C++ (@++)


jeudi 10 juillet 2008 à 19:30:52 | Re : ou est l'erreur : boucles imbriquées

pausecpp

Bonsoir à tous,
je viens d'initialiser count =1; // rien ne se passe non plus
srand(2008) effectivement je veux avoir la même suite
j'essaie de coder un algorithme mathématique de recherche de la solution minimale d'une fonction donnée :  les S[M][N] est la matrice des coordonnées ( M vecteurs ligne de N coordonées chacun : dans l'espace (x,y,z), un vecteur donné aura trois coordonnées x, y et z ).

initialement je stock les coordonnées d'un vecteur i : S[i][k] dans Y[i][k], ensuite pour un i donné je modifie  Y[i][k] et je calcule fonc(Y[i]) si j'obtient meilleure solution je garde ce vecteur dans S[i].
probleme : à la fin du programme j'obtient les meme valeure initiales de S[i][k] les memes !!!! comme si le block  for{....} ne fait rien : surement une erreur de ma part.




jeudi 10 juillet 2008 à 23:28:23 | Re : ou est l'erreur : boucles imbriquées

SAKingdom

Membre Club
Réponse acceptée !
Et bien, il y a quelque petites choses:

landa1 = alea(0,1);
landa2 = alea(0,1);

J'ignore comment est fait alea mais si ces lignes donnent toujours le même résultat, je n'en vois pas trop l'utilité.

De plus, si landa1 est toujours inférieur à 0.5

if(landa1 > 0.5)

sera toujours faux.

if
(fonc(Y[i],N)<fonc(S[i],N))

Je me trompe ou le tableau Y[i] n'est pas remplit lors de l'appel de la fonction (du moins, tant que que k < N-1) ? Dans ce cas, fonc ne risque t-elle pas de retourner un résultat biaisé ?

C++ (@++)



1 2

Cette discussion est classé dans : count, printf, include, for, float


Répondre à ce message

Sujets en rapport avec ce message

Probleme de compilation avec plusieurs fichier .c [ par adess00 ] Salut Je developpe un jeu et pour pas faire trop fouilli j ai repartie mes fonctions dans diferrents .c qui includent tous un .h ou se trouve mes var besion d' aide [ par ccfacile ] j'ai  fais un programme sur devc++ pour resoudre l'equation matricielle : A*X=B ,  je vois pas ou est elle euruer ? est ce que vous pouvez aidez SVP, algorithme de greedy [ par starbluesky ] <link rel="Fi aidez-moi s'il vous plait !!!!!!!! [ par starbluesky ] Salut a tous! aidez-moi s'il vous plait  !! Je suis un étudiant en mastè HELP [ par alex64100 ] BONOURje doit réaliser un   prog de tri de caractèresvoici mon code#include #include #include #include int main (int argc,  char ar Tableaux et C, aidez-moi! [ par phenix22000 ] Bonsoir à tous,quelqu'un peut-il m'aider pour m'expliquer comment savoir si un tableau contient déjà des éléments si on l'incrémente petit à petit...J Programmation de la commande ls pour un debutant en langage reseaux C [ par ced57350 ] Bonjour, J'ai pour mission de coder la fonction ls avec le maximum d'option. Pour l'instant j'ai réussi a programmer une commande permettant de faire aider moi plz avant le 5 avril [ par riadusse ] voici mon programme de simulation de processus selon la méthode SJFj ai pas compris pourquoi l affichage est très très bizarre voici mon programme en aide sur un prog [ par jsuititidu27 ] Bonjour, j'ai besoin d'un petit coup de main. ceci est un exo qui demande d'écrire un programme de tri de chaines de caractères. J'ai donc écrit le co Langage c : problème avec gets [ par Lens49 ] Bonjour, j'ai besoin d'aide pour débugger un petit programme que j'ai écris en langage c. Je pense que le problème est lié à une méconnaissance de la


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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,437 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é.