begin process at 2010 03 21 13:55:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

ou est l'erreur : boucles imbriquées


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

ou est l'erreur : boucles imbriquées

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ée 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...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

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

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