[ c++ problème ]
SAADAM
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
sichoud -
sichoud -
bonjour. Je voudrais savoir comment on marque le puissance en c++. Et aussi où est l'erreur dans
#include <iostream.h> #include <stdlib.h> int aleat(float n1,float n2); int aleat(float n1,float n2,float n3) { float m = n1*n2*n3 / n1 - (n2 + n3) - n1; cout << m; return 1; } int main(int argc,char* args) { float tab[3]; int indextab; while (tab[indextab]) { indextab++; } for(int i;i <= indextab;i++) { cout << "Entrez nombre : "; cin >> tab[i]; } aleat(tab[1],tab[2],tab[3]); return 1; }
30 réponses
salut, while(tab[index]) -> risque d'etre vrai pendant un bon moment, car les parties de la mémoire qui st allouées a ton programme ont pu etre utilisé par d'autres programmes et par conséquent ne sont pas forcément vide. Je ne sais pas ce que tu veux faire, mais ds tous les cas le fonctionnement de ton programme risqe d'etre tres aléatoire.
salut,
Pour la puissance inclu <math.h> dans ton prog et pour utilisé la puissance:
pow(nombre, indice)
ex: 3² -> pow(3,2)
Ensuite pour ton pb, index tab n'est pas initialisé, tjr initialisé les variables d'incrémentation sinon elle savent pas d'ou commencé à s'incrémenté donc tu obtient de la m..de! Ensuite ta boucle for inclu la dans ton while...et tu m'en dira des nouvelles!
Tcho
Pour la puissance inclu <math.h> dans ton prog et pour utilisé la puissance:
pow(nombre, indice)
ex: 3² -> pow(3,2)
Ensuite pour ton pb, index tab n'est pas initialisé, tjr initialisé les variables d'incrémentation sinon elle savent pas d'ou commencé à s'incrémenté donc tu obtient de la m..de! Ensuite ta boucle for inclu la dans ton while...et tu m'en dira des nouvelles!
Tcho
Re salu,
En fait après mur réflexion ton while sert strictement à rien, essaie ça dans ton main:
int main(blablabla)
{
for(int i;i <= indextab;i++)
{
cout << "Entrez nombre : ";
cin >> tab[i];
}
aleat(tab[1],tab[2],tab[3]);
return 1;
}
Mais je comprend pas vraiment se ke tu veux faire, explike ce à koi tu veux arriver et je t'aiderai.
En fait après mur réflexion ton while sert strictement à rien, essaie ça dans ton main:
int main(blablabla)
{
for(int i;i <= indextab;i++)
{
cout << "Entrez nombre : ";
cin >> tab[i];
}
aleat(tab[1],tab[2],tab[3]);
return 1;
}
Mais je comprend pas vraiment se ke tu veux faire, explike ce à koi tu veux arriver et je t'aiderai.
Salut
Je vous rapel quand même qu'en C les tableau commencent à 0 ! alors float tab[3]; si on apel tab[3] ça depasse la taille du tableaux.
la boucle While risque fort de faire aussi une erreur de segmentation.
ensuite pour la puissance, pour completer, si T est un type primitif, le proto de la fonction est :
T pow(T nombre,T puissance);
ainsi pow(3.1,2) renvoie un warning car 3.1 est float et 2 est int.
Je vous rapel quand même qu'en C les tableau commencent à 0 ! alors float tab[3]; si on apel tab[3] ça depasse la taille du tableaux.
la boucle While risque fort de faire aussi une erreur de segmentation.
ensuite pour la puissance, pour completer, si T est un type primitif, le proto de la fonction est :
T pow(T nombre,T puissance);
ainsi pow(3.1,2) renvoie un warning car 3.1 est float et 2 est int.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Je vois que tu manipules des tableaux, donc je suppose que tu as lu un peu.
Tu trouves de la documentation ici : http://www.developpez.com/cours/
Pour la racine (carré) je suppose regarde ici :
http://emmanuel-remy.developpez.com/C++/Instructions/TP.htm
lami20j
Je vois que tu manipules des tableaux, donc je suppose que tu as lu un peu.
Tu trouves de la documentation ici : http://www.developpez.com/cours/
Pour la racine (carré) je suppose regarde ici :
http://emmanuel-remy.developpez.com/C++/Instructions/TP.htm
lami20j
Euh merci mais dsl, j'ai 12 ans et je ne comprend dificilement les formules mathématiques. Je les comprend certes(je lis des ouvrages de phisyque) mais c'esst dur. Et pour les autre puissances ? Merci.
Euh merci mais dsl, j'ai 12 ans et je ne comprend dificilement les formules mathématiques. Je les comprend certes(je lis des ouvrages de phisyque) mais c'esst dur. Et pour les autre puissances ? Merci.
a vi, en effet, alors ça va être plus dur...
donc, les racine...
tu sais que racine carré de 2 est le nombre solution de l'équation x²=2
racine cubique de 2 de l'équation x^3=2 (^ represente la puissance)
et l'on peut ecrire racine de 2 : 2^(1/2), racine cubique de 2 : 2^(1/3)
voila, si tu n'as pas compris la logique, je veux bien essayer de mieu m'expliquer.
pour resumer ecri racine de x : pow(x,0.5)
il exite aussi la fronction :
double sqrt(double x){return pow(x,0.5);}
donc, les racine...
tu sais que racine carré de 2 est le nombre solution de l'équation x²=2
racine cubique de 2 de l'équation x^3=2 (^ represente la puissance)
et l'on peut ecrire racine de 2 : 2^(1/2), racine cubique de 2 : 2^(1/3)
voila, si tu n'as pas compris la logique, je veux bien essayer de mieu m'expliquer.
pour resumer ecri racine de x : pow(x,0.5)
il exite aussi la fronction :
double sqrt(double x){return pow(x,0.5);}
... Bonjour ...
Est-ce que quelqu'un pourrait meut dire à quoi sert " unsigned ", ou tout autre mots-clés dans les déclaration de variable ?
... Merci ...
Est-ce que quelqu'un pourrait meut dire à quoi sert " unsigned ", ou tout autre mots-clés dans les déclaration de variable ?
... Merci ...
en fait le unsigned sert pour déclarer des variables non signées.
par exemple en déclarant un int la valeur pourra etre de -32768 à 32767, alors qu'en mettant unsigned int, le tout passe en positif, et tu pourras avoir des valeurs entre 0 et 65535.
par exemple en déclarant un int la valeur pourra etre de -32768 à 32767, alors qu'en mettant unsigned int, le tout passe en positif, et tu pourras avoir des valeurs entre 0 et 65535.
Bonsoir SAADAM,
unsigned veut dire non signé.
Prenons le cas de la variable entier.
En codage binaire ( dans l'exemple sur 16 bits) on a ça dans le cas signé (le 1er bit à gauche c'est pour le signe 0 pour + et 1 pour -):
Nombres positives
Dans le cas unsigned (non signé) on a
Exemple :
unsigned veut dire non signé.
Prenons le cas de la variable entier.
val min val max int i - -2147483648 +2147483647 unsigned int i 0 2 puissance 32 -1 = 4294967295
En codage binaire ( dans l'exemple sur 16 bits) on a ça dans le cas signé (le 1er bit à gauche c'est pour le signe 0 pour + et 1 pour -):
Nombres positives
0 111111111111111 pour + 32767 --------------------------- 0 000000000000010 pour + 2 0 000000000000001 pour + 1 0 000000000000000 pour 0 Nombres negatives 1 111111111111111 pour - 1 1 111111111111110 pour - 2 1 1111111111111101 pour -3 ---------------------------- 1 000000000000000 pour - 32768
Dans le cas unsigned (non signé) on a
1111111111111111 pour + 65535 -------------------------- 1000000000000000 pour + 32768 0111111111111111 pour + 32767 --------------------------- 0111111111111111 pour + 1 0000000000000000 pour + 0
Exemple :
# include <stdio.h> main() { int i; /*entier signé*/ unsigned int j; /*entier nonsigné*/ i = -1; j = i; printf("%d\n",i); printf("%u\n",j); /*%u c'est pour afficher le format non signé*/ }
ok désolé .moi j'utilise %d pour les int voire unsigned int mais apres je prend l'instruction "cout" qui m'affiche ce que je veux.
au fait tu as un proc 64 bits??? juste pour savoir
au fait tu as un proc 64 bits??? juste pour savoir
non, donc c'est pour ça je crois.
pas besoin d'être désolé, tu as trés bien fait de le dire.
En fait c'est pour SAADAM
Euh merci mais dsl, j'ai 12 ans
a+
pas besoin d'être désolé, tu as trés bien fait de le dire.
En fait c'est pour SAADAM
Euh merci mais dsl, j'ai 12 ans
a+
Salut. Quelqu'un pourrait-il me donner un exemple d'utilisation de " switch " ? Parce que les information de mon manuel sont confuses.
merci
merci
par exemple tu veux choisir une tache a faire en fonction de l'info rentrée au clavier, par exemple en rentrant '1' j'execute une tache, en rentrant '2',une autre tache et ainsi de suite.
pour l'exemple ca se presente a peu pres comme ca:
touche=getch;
switch(touche)
{
case '1' : tache1(); ( tu peux mettre autant
d'instructions que tu veux)
printf("erreur"); -> c'est un exemple
case '2' : tache();
............. ->represente d'autres instructions
.............
..............
.
.
. ->d'autres choix possible
.
.
}
pour l'exemple ca se presente a peu pres comme ca:
touche=getch;
switch(touche)
{
case '1' : tache1(); ( tu peux mettre autant
d'instructions que tu veux)
printf("erreur"); -> c'est un exemple
case '2' : tache();
............. ->represente d'autres instructions
.............
..............
.
.
. ->d'autres choix possible
.
.
}
bonjour,
un switch est un équivalent de plus if imbriqués! il a l'avantage de rendre bcp plus lisible ton code
ex :
switch( val ou exp)
{
case a: // si val ou exp est égal à a alors
instructions //on fait les instructions
break; //on sort du swith
case b: //si val ou exp est égal à b alors
instructions //on fait les instructions
break; //on sort du swith
...
...
default: //dans le cas ou val ou exp n'est égal à aucun des case
//précédent alors
instructions //on fait les instructions par défault
break; //on sort du swith
//default est un cas optionnel t pa obligé de le mettre
}
val doit être un entier ou un char (car un char est un entier représenté par son code acsii
exp doit retourner un scalaire
voila bon courage!!
un switch est un équivalent de plus if imbriqués! il a l'avantage de rendre bcp plus lisible ton code
ex :
switch( val ou exp)
{
case a: // si val ou exp est égal à a alors
instructions //on fait les instructions
break; //on sort du swith
case b: //si val ou exp est égal à b alors
instructions //on fait les instructions
break; //on sort du swith
...
...
default: //dans le cas ou val ou exp n'est égal à aucun des case
//précédent alors
instructions //on fait les instructions par défault
break; //on sort du swith
//default est un cas optionnel t pa obligé de le mettre
}
val doit être un entier ou un char (car un char est un entier représenté par son code acsii
exp doit retourner un scalaire
voila bon courage!!