je lutte... [nioubi inside] - C++ - Programmation
Marsh Posté le 23-10-2002 à 21:58:51
Qq suggestions
float puis(float a, float x)
{//fonction puissance
int i;
float r = 1.0f;
for(i = 1; i <= (int)x; i ++) // points virgule dans boucle
{ // virgule possible mais pas ici
r=r*a; // ou moins lisible r *= a;
}
return r;
}
long fact(int x)
{//fonction factorielle
int i;
long r = 1;
for(i = 1; i < x; i ++) // ; pr boucle , sert à séparer dans même "bloc"
{
r = r * i;
}
return r;
}
long comb(int n, int k)
{//fonction combinaison
long r;
r = fact(n)/(fact(k) * fact(n-k));
return r;
}
main()
{//fonction main
int a, b, k, n;
long R = 0;
printf("(a+b)^n" );
scanf("%d %d %d",&a, &b, &n);
for(k = 0; k <= n; k ++)
{
R += comb(n, k) * puis(a, k) * puis(b, n-k);
printf("%ld\n", R);
}
}
*Les float servent pas beaucoup ici.
*Si fact, un long est très utile.
*Si on a une variable int à retourner en float, on fait
return (float)variable_int; (transtypage je crois)
*Dans les for (;, on sépare les "blocs" par ;. On peut mettre aussi des , pour, par exemple faire incrémenter deux variables en même temps
int k, m;
for (k = 0; k < x; k++, m++) // k et m sont incrémentés en "même temps"
Marsh Posté le 23-10-2002 à 22:31:35
merci a vous deux et surtout a carbon_14 qui s'est bien déchire pour sa reponse
j'ai encore kk problemes :
Code :
|
et a part ca tu connais pas un site avec des bons tutoriaux ???
@+
Marsh Posté le 23-10-2002 à 22:36:18
Je l'ai appris y a peu...
Ca force le 1 en float. Je pensais que 1.0 suffisait (le point indiquant que c'est décimal, mais il paraît que 1.0 est double ... ...). 1.0f dit donc que c'est un 1 flottant.
On peut aussi faire (idiot ?) r = (float)1; // le 1 est int
Au début, on fait des tas de maladresses, je connais....
Copier/coller, c'est pratique !!
NB : j'ai pas vérifié la fonction des modules, juste syntaxe.
J'ai rien sous le coude en tutoriel. Ca doit exister. Je suis pas pro => je bricole, rame, rame. Le ouèbe est une grande encyclopédie, le pb étant de trouver ce qu'on aimerait y voir..
Cf fonction Recherche, si y a qq chose à tutoriel.
Marsh Posté le 23-10-2002 à 23:42:20
Code :
|
lol le truc de psychopatz merci quand même...
Marsh Posté le 24-10-2002 à 03:38:28
Code :
|
Le commentaire se met dessus.
Les noms devraient être plus explicites.
double au lieu de float. À moins que tu n'en alloues 10'000'000.
x/exp unsigned int car on ne fait que des puissances entières >=0. Les égalités sur flottants sont dangereuse.
r/val du même type que le retour de fonction.
puis(0,0), cas particulier.
Je te laisse corriger les autres...
main() n'est pas standard.
Seules ces deux formes sont standard:
Code :
|
Chez toi tu fais comme tu veux, mais sur le forum c'est plus chez toi...
Regardes dans la rubrique Bibliolinks pour des liens intéressants.
http://forum.hardware.fr/forum2.php3?post=6305&cat=10
Marsh Posté le 24-10-2002 à 09:00:53
VignoS a écrit a écrit : lol le truc de psychopatz merci quand même... |
Y a eu un topic y a pas longtemps où un pro affirmait qu'on risquait de perdre en précision si on ne met que 1.0 (?).
NB : je me suis déja pas mal cassé les dents sur des problèmes de division par ex d'int par float, ou trucs du genre. On devient "parano".
Dans le futur, le titre du topic sera "je domine...[pro inside]"
Marsh Posté le 25-10-2002 à 01:20:09
c quoi ca ?
<= (int)x; i ++)
le int ?
vous pourriez pas me faire une liste des "int","long",etc
même question pour les "%ld%,"%f"
PS: j'ai un devoir d analyse mathématique a programmer en C demain matin repondez pas trop lentement...
merci
Marsh Posté le 25-10-2002 à 01:24:11
VignoS a écrit a écrit : c quoi ca ? <= (int)x; i ++) le int ? vous pourriez pas me faire une liste des "int","long",etc même question pour les "%ld%,"%f" PS: j'ai un devoir d analyse mathématique a programmer en C demain matin repondez pas trop lentement... merci |
c'est donc que tu dois etre suffisamment avancé pour savoir le faire ... les cours c pas fait pour les chiens, faut y aller !
Marsh Posté le 25-10-2002 à 02:07:50
erf j'en sais bien assez pour faire mon ds, ce que je vous demande c un peu comme du "bonus", pour avoir kk connaissances supplementaires sur des trucs qui sont pas tres clair dans ma tête
Marsh Posté le 25-10-2002 à 04:18:46
Musaran a écrit a écrit :
Le commentaire se met dessus.
Chez toi tu fais comme tu veux, mais sur le forum c'est plus chez toi... |
heink?
skoi sdelire?
fo repondre koi?
oui papa?
Marsh Posté le 27-10-2002 à 00:18:05
J'ai peut-être fait trop court... Ce que je voulais dire:
Lorsqu'on garde du code uniquement pour soi, on est libre d'utiliser tous les trucs pas standards/indéfinis/périmés qu'on veux.
Lorsqu'on publie du code, la politesse veut qu'on respecte un minimum le standard, pour qu'il soit lisible et compilable au plus grand nombre.
Et le "int" implicite a été abandonné depuis longtemps quand même, avec raison.
Pourquoi aurait-on envie de déboguer du code qui foires avant même de compiler on d'entrer dans le main ?
Marsh Posté le 23-10-2002 à 21:27:41
Ca plante aux boucles "for"....
merci