[ 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. Et " call ". Comment peut-on l'utiliser ?
Parce que mon but est de me rapprocher le plus possible du language machine(sans utiliser l'assembleur)
. @+
Parce que mon but est de me rapprocher le plus possible du language machine(sans utiliser l'assembleur)
. @+
et quelle est l'erreur dans :
#include <iostream.h> #include <stdlib.h> #include <string.h> char note(float note); int main() { float m=0.0; cout <<"Quelle est votre note?"; cin >>m; cout <<note((float)m); system("PAUSE"); return 0; } char[] note(float note) { if (note==0) { return "C'est nul";break; } if (note>0||note<=10){ return "Ce n'est pas bien du tout";break; } if (note>10||note<15){ return "C'est moyen";break; } if (note>=15||note!=20){ return "C'est très bien";break; } if (note==20) { return "C'est parfait.";break; } }
Salut,
essaie ça
essaie ça
#include <iostream> #include <stdlib.h> // pas besoin #include <string.h> // pas besoin using namespace std; char note(float notes); int main() { float m=0.0; cout <<"Quelle est votre note? "; cin >>m; system("sleep 2"); // 2 sec pour afficher le resultat cout << note(float(m)); return 0; } char note(float notes) { if (notes == 0) { cout << "C'est nul\n"; } if (notes > 0 && notes <= 10){ cout << "Ce n'est pas bien du tout\n"; } if (notes > 10 && notes < 15){ cout << "C'est moyen\n"; } if (notes >= 15 && notes < 20){ cout << "C'est très bien\n"; } if (notes == 20) { cout << "C'est parfait.\n"; } }
Salut,
Lamij, je croi que tu ne repond pas au problème !
et je ne pense pas que ton programme fonctionne, deja note ne retourne rien....
sadaam :
Je te conseil de déclarer :
char* note(float)
et d'implemeter:
char* note( float notes){...}
si ça ne marche pas, essaie avec const char* comme type.
Dans tout les cas, il ne faut pas changer le type d'une fonction entre sa declaration et son implementation.
derniere remarque, tout ce qui est derriere un return n'es jamais executer, tes break ne servent à rien !
derniere chose, dans tes if, fait
if(notes==0)...
if(notes<10)...
if(notes<15)...
sinon, ta boucle s'arrete au deuxième if pour les notes différentes de 0. Voila
Lamij, je croi que tu ne repond pas au problème !
et je ne pense pas que ton programme fonctionne, deja note ne retourne rien....
sadaam :
Je te conseil de déclarer :
char* note(float)
et d'implemeter:
char* note( float notes){...}
si ça ne marche pas, essaie avec const char* comme type.
Dans tout les cas, il ne faut pas changer le type d'une fonction entre sa declaration et son implementation.
derniere remarque, tout ce qui est derriere un return n'es jamais executer, tes break ne servent à rien !
derniere chose, dans tes if, fait
if(notes==0)...
if(notes<10)...
if(notes<15)...
sinon, ta boucle s'arrete au deuxième if pour les notes différentes de 0. Voila
Salut,
Lamij, je croi que tu ne repond pas au problème !
et je ne pense pas que ton programme fonctionne, deja note ne retourne rien....
Toi tu pense, moi je teste. Et tu sais quoi? Le programme fonctionne et j'ai bien repondu à son problème. ( un interval par exemple on le déclare avec quelque chose de genre a >= 0 && a <=10 , c'est à dire a est compris entre 0 et 10, c'étai une correction)
Je te conseil de déclarer :
char* note(float)
et d'implemeter:
char* note( float notes){...} Tu n'as pas remarquer qu'il n'a que 12 ans et à peine il arrive à comprendre la racine carré, Monsieur le Professeur?
sadaam
Je te conseil de déclarer :
Ca sonne un peut à insulte et déconsidération et ce n'est pas gentil de ta part.
En traduction ça donne quelque chose de genre.
Laisse tomber les conneries que t'a dit lamij (c'est lami20j) et écoute moi parce que moi je sais tout.
P.S. A propos c'est SAADAM, je constate que tu lit et tu comprends tout.
SAADAM tu peut tester la variante que je t'ai écrit, et qui n'est pas unique ni la meilleure.
Et en plus si jamais je voudrais récrire ton code moi aussi j'utiliserai peut être une autre façon de le faire.
En revanche c'est vrai pour return, j'ai omis de l'enlever.
Bonne soirée
Lamij, je croi que tu ne repond pas au problème !
et je ne pense pas que ton programme fonctionne, deja note ne retourne rien....
Toi tu pense, moi je teste. Et tu sais quoi? Le programme fonctionne et j'ai bien repondu à son problème. ( un interval par exemple on le déclare avec quelque chose de genre a >= 0 && a <=10 , c'est à dire a est compris entre 0 et 10, c'étai une correction)
Je te conseil de déclarer :
char* note(float)
et d'implemeter:
char* note( float notes){...} Tu n'as pas remarquer qu'il n'a que 12 ans et à peine il arrive à comprendre la racine carré, Monsieur le Professeur?
sadaam
Je te conseil de déclarer :
Ca sonne un peut à insulte et déconsidération et ce n'est pas gentil de ta part.
En traduction ça donne quelque chose de genre.
Laisse tomber les conneries que t'a dit lamij (c'est lami20j) et écoute moi parce que moi je sais tout.
P.S. A propos c'est SAADAM, je constate que tu lit et tu comprends tout.
SAADAM tu peut tester la variante que je t'ai écrit, et qui n'est pas unique ni la meilleure.
Et en plus si jamais je voudrais récrire ton code moi aussi j'utiliserai peut être une autre façon de le faire.
En revanche c'est vrai pour return, j'ai omis de l'enlever.
Bonne soirée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est étonnant que ton programme fonctionne.
moi quand je fait une fonction avec un type (ici char) le compilo me retourne une erreur comme quoi ma fonction ne retourne rien.
saadam avait l'air de vouloir récupérer une chaine de caractère par une fonction. Toi tu donne une fonction qui ne retourne rien. de plus en declarant char note, avec mon compilo la taille de la chaine de caractère est limité à 8. Tu as quoi comme compilo exotique?
Ensuite, un conseil n'es pas insultant. C'est juste un conseil, d'ailleur, si il pose une question sur le forum, c'est pour ça.
Pour les if, ta boucle fonctionne parfaitement lamij20 , un test sur 2 est inutil, c'est tout.
Et je ne sais pas tout, mais comme toi tu as l'air caller, répond à mes post sans réponse. Mais c'est sur, c'est moi facile que de critiquer.
moi quand je fait une fonction avec un type (ici char) le compilo me retourne une erreur comme quoi ma fonction ne retourne rien.
saadam avait l'air de vouloir récupérer une chaine de caractère par une fonction. Toi tu donne une fonction qui ne retourne rien. de plus en declarant char note, avec mon compilo la taille de la chaine de caractère est limité à 8. Tu as quoi comme compilo exotique?
Ensuite, un conseil n'es pas insultant. C'est juste un conseil, d'ailleur, si il pose une question sur le forum, c'est pour ça.
Pour les if, ta boucle fonctionne parfaitement lamij20 , un test sur 2 est inutil, c'est tout.
Et je ne sais pas tout, mais comme toi tu as l'air caller, répond à mes post sans réponse. Mais c'est sur, c'est moi facile que de critiquer.
Salut Char Snipeur,
Ca ne me derrange pas les corrections et les conseils au contraire je les acceptes, mais plutôt la manière de les donner.
moi quand je fait une fonction avec un type (ici char) le compilo me retourne une erreur comme quoi ma fonction ne retourne rien.
Ici tu as raison, de toute façon tu as lu à la fin de mon message En revanche c'est vrai pour return, j'ai omis de l'enlever.
.
Parce que en fait il ne s'agit pas d'une fonction mais d'un apel d'une procédure ( en fait chez moi j'ai utilisé main() pas int main() ), mais comme j'ai fait copier/coller du code du SAADAM tout simplement j'ai oublié de l'enlever.
Dans le cas de SAADAM pas besoin d'une fonction puisque il ne calcule rien du tout. Il veut tout simplement afficher à l'écran le résultat d'une interogation (au moins c'est ça que je vois) donc je crois qu'un apel d'une procédure ç'est suffisant.
Et concernant les if je n'ai fait que modifier l'opérateur || qui est plus approprié pour définir un interval, puisqu'en fait je préfere aussi ta méthode.
if(notes==0)...
if(notes<10)...
if(notes<15)...
Mais pour C'est étonnant que ton programme fonctionne. je dirai plutôt que c'est normal qu'il fonctionne (avec ou sans return - qui ne doit pas être present dans le code vu qu'il ne s'agit pas d'une fonction donc rien à retourner)
Et tout sais trés bien que si on veut on peut parler de ça beaucoup plus mais ça ne vaut pas le coup. On est toujours entrin d'apprendre et de corriger aujourd'hui les erreurs qu'on a fait hier.
Dissons que j'ai mal compris ta demarche.
A+ et bonne soirée
lami20j
Ca ne me derrange pas les corrections et les conseils au contraire je les acceptes, mais plutôt la manière de les donner.
moi quand je fait une fonction avec un type (ici char) le compilo me retourne une erreur comme quoi ma fonction ne retourne rien.
Ici tu as raison, de toute façon tu as lu à la fin de mon message En revanche c'est vrai pour return, j'ai omis de l'enlever.
.
Parce que en fait il ne s'agit pas d'une fonction mais d'un apel d'une procédure ( en fait chez moi j'ai utilisé main() pas int main() ), mais comme j'ai fait copier/coller du code du SAADAM tout simplement j'ai oublié de l'enlever.
Dans le cas de SAADAM pas besoin d'une fonction puisque il ne calcule rien du tout. Il veut tout simplement afficher à l'écran le résultat d'une interogation (au moins c'est ça que je vois) donc je crois qu'un apel d'une procédure ç'est suffisant.
Et concernant les if je n'ai fait que modifier l'opérateur || qui est plus approprié pour définir un interval, puisqu'en fait je préfere aussi ta méthode.
if(notes==0)...
if(notes<10)...
if(notes<15)...
Mais pour C'est étonnant que ton programme fonctionne. je dirai plutôt que c'est normal qu'il fonctionne (avec ou sans return - qui ne doit pas être present dans le code vu qu'il ne s'agit pas d'une fonction donc rien à retourner)
Et tout sais trés bien que si on veut on peut parler de ça beaucoup plus mais ça ne vaut pas le coup. On est toujours entrin d'apprendre et de corriger aujourd'hui les erreurs qu'on a fait hier.
Dissons que j'ai mal compris ta demarche.
A+ et bonne soirée
lami20j
Oulà je crois que tu devrais commencer par faire quelques tutoriels saadam ;o)
const -> paramètre qui reste constant. Typiquement un paramètre de fonction qui n'évolue pas dans cette fonction.
short -> précise que l'entier est de valeur faible. Ca permet de réduire sa taille en mémoire.
using namespace std -> Bon là vu les questions précédentes on va faire simple. Normalement cout, cerr,... ça n'exite pas. Ca appartient à l'environement std et ça s'appelle donc std::cerr, std::cout. En toute rigueur on devrait donc toujours écrire std::cout std::cerr... mais comme c'est un peu lourd on peu utilise run using namespace.
Une procédure est un nom peu adapté au C++, on parle plutôt de fonction.
Quand tu auras appréhendé le concept d'objet tu verras qu'il existe des fonctions particulières, les méthodes... Et encore après tu verras qu'il existe des fonctions et des méthodes template. mais ça c'est pour beaucoup plus tard ;o)
const -> paramètre qui reste constant. Typiquement un paramètre de fonction qui n'évolue pas dans cette fonction.
short -> précise que l'entier est de valeur faible. Ca permet de réduire sa taille en mémoire.
using namespace std -> Bon là vu les questions précédentes on va faire simple. Normalement cout, cerr,... ça n'exite pas. Ca appartient à l'environement std et ça s'appelle donc std::cerr, std::cout. En toute rigueur on devrait donc toujours écrire std::cout std::cerr... mais comme c'est un peu lourd on peu utilise run using namespace.
Une procédure est un nom peu adapté au C++, on parle plutôt de fonction.
#include <iostream> int f(double d){//la fonction prend en paramètre un double et retourne un entier std::cout<<"Mon double vaut"<<d<<std::endl; return 1;//l'entier retourné } int main(){ int mon_entier=0; mon_entier=f(3.5);//f retourne 1, donc mon_entier vaut 1 à la fin de l'instruction return 0; }
Quand tu auras appréhendé le concept d'objet tu verras qu'il existe des fonctions particulières, les méthodes... Et encore après tu verras qu'il existe des fonctions et des méthodes template. mais ça c'est pour beaucoup plus tard ;o)
Merci MamiemanDo mais pour using namespace std il ne me sert à rien car cout,cin,cerr... fonctionnent sans.
Il sert à être standard.
Je mets iostream.h,string.h,stdlib.h et cela me suffit
Tu utilises un syntaxe obsolète et fortement déconseillé. Pas de .h dans le include, sinon ce n'est pas standard. C'est d'ailleurs de par le fait que tu mets le .h que tu n'as pas besoin de using namespace std. Il n'en reste pas moins que c'est très mal.
-->
1) Transforme tes cin cerr cout endl en std::cin std::cout ... std::endl (ou rajoute le using namespace std)
2) Vire le .h de tes include #include <iostream.h> --> #include <iostream.h>
Il sert à être standard.
Je mets iostream.h,string.h,stdlib.h et cela me suffit
Tu utilises un syntaxe obsolète et fortement déconseillé. Pas de .h dans le include, sinon ce n'est pas standard. C'est d'ailleurs de par le fait que tu mets le .h que tu n'as pas besoin de using namespace std. Il n'en reste pas moins que c'est très mal.
-->
1) Transforme tes cin cerr cout endl en std::cin std::cout ... std::endl (ou rajoute le using namespace std)
2) Vire le .h de tes include #include <iostream.h> --> #include <iostream.h>
Je ne pense pas que ça soi la peine de lui prendre la tête avec ça.
Pour commencer, c'est plus leger de ce passer du std::
En plus ce n'es devenu obligatoire qu'avec la version 3 de gcc...
En plus c'est très facile à intégrer dans la suite.
dans ma verions, iostream.h inclue iostream et rajoute des using. Ce qui fait qu'au final ça ne change pas gran chose.
Mais c'est sur que dans la suite il faut s'habituer à utiliser les entete sans .h (même si je n'ai pas encore compris exactement pourquoi)
Pour commencer, c'est plus leger de ce passer du std::
En plus ce n'es devenu obligatoire qu'avec la version 3 de gcc...
En plus c'est très facile à intégrer dans la suite.
dans ma verions, iostream.h inclue iostream et rajoute des using. Ce qui fait qu'au final ça ne change pas gran chose.
Mais c'est sur que dans la suite il faut s'habituer à utiliser les entete sans .h (même si je n'ai pas encore compris exactement pourquoi)