est ce qu´on peut apprendre le c++ sans avoir rien appris avant?
Connaitres les maths serait déjà un bon début.
C´est possible d´apprendre le C++ directement mais vau mieu commencer par le C : ) enfin bon c´est pas tres difficile a aprendre ^^ ( les bases)
http://perso.wanadoo.fr/mesprog/
oui, commence par le C
" est ce qu´on peut apprendre le c++ sans avoir rien appris avant?"
--> non, apprend a lire lol
sans rigoler : c´est vrai que commencer par le C c´est mieu
en fait c´est les bases du C++ qui apporte en plus les classes et les surchages de fonctions ( le C le permet p-e)
Jean Yves poete :
commencer par le C++, sans commencer par le C :
c´est :
commencer par Broodar, sans commencer par starcraft...
c´est commencer par the warcraft 3 frozen throne, sans commencer par warcraft 3 : reign of chaos...
PS : vive blizzard.
" JeanYvesYves Posté le 30 juin 2003 à 14:19:50
Jean Yves poete :
commencer par le C++, sans commencer par le C :
c´est : "
ce que j´ai fait
Super la carte de visite...
petit correctif : c´est pas ce que j´ai fait, c´est ce que je fait.
Quest-ce qu´elle a ma carte de visite ?
VictorVVV, tu ne le sais peut etre pas, mais ce que tu fais, c´est du C, pas du C++ : )
si, tu mets juste des cout a la place des printf. c´est le seul pied que tu mets dans le C++.
mais cette syntaxe te dit elle quelque chose ?
class truc:public bidule
{
private:
int a;
public:
truc();
truc(int x):a=x; {}
~truc();
int& modify();
virtual plouf(int a,int b)=0;
friend arf(float& x);
ostream operator<<(ostream& k);
int& operator+(const truc&,const truc&);
};
int& truc::modify()
{
return a;
}
etc...
ça, c´est du C++ ! ! ce que tu fais est encore tres procédurale, donc tu fais du C avec des cout...
non, je me suis mis à faire des structures :
/* Not defined on MacOS.9 : -( */
float racar(float A, float J)
{
float i;
float Xj1;
float Xj;
float flag;
float m;
do
{
if(A>=0)
{
if(J<51)
{
Xj=A;
for(i=0;i<J;i++)
{
Xj1=(Xj+(A/Xj))/2;
Xj=Xj1;
m=i+1;
//printf("La %.0f approximation de la racine carree de %.2f est %.4f\n",m,A,Xj1);
}
//printf("la racine carré de %f vaut %f\n",A,Xj1);
flag=1;
}
else
{
//printf("Entrer la precision J\n");
//scanf("%f",&);
return 0;
}
}
else
{
//printf("Entrer une valeur POSITIVE pour A\n");
//scanf("%f",&);
return 0;
}
}
while(flag==0);
return Xj1;
}
float puissance(float x, int y)
{
float valeur = 1;
for ( int i=0; i < y;i++)
{
valeur = valeur*x;
}
return valeur;
}
struct operation
{
float num_un;
float num_de;
char op[100];
char deter[12];
float calcul ( )
{
float resultat = 1;
int resultat2 = 1;
int num_un2;
int num_de2;
if ( strcmp(op,"+")==0) resultat = num_un + num_de;
if ( strcmp(op,"-")==0) resultat = num_un - num_de;
if ( strcmp(op,"*")==0) resultat = num_un * num_de;
if ( strcmp(op,"/")==0) resultat = num_un / num_de;
if ( strcmp(op,":")==0) resultat2 = int(num_un / num_de);
if ( strcmp(op,"modulo")==0)
{
//cout < < " test";
num_un2 = int(num_un);
num_de2 = int(num_de);
resultat = num_un2 % num_de2;
}
if ( strcmp(op,">")==0) resultat = ( num_un > num_de);
if ( strcmp(op,"<")==0) resultat = ( num_un < num_de);
if ( strcmp(op,"puissance")==0)
{
//cout < < " test";
num_de2 = int(num_de);
resultat = puissance(num_un, num_de2);
}
if ( strcmp(op,"racine_carre")==0) resultat = racar(num_un, num_de);
if ( strcmp(op,"cosinus")==0) resultat = cos((num_un / 180.0) * M_PI);
if ( strcmp(op,"sinus")==0) resultat = sin((num_un / 180.0 ) * M_PI);
if ( strcmp(op,"tangeante")==0) resultat = tan((num_un / 180.0) * M_PI);
if ( strcmp(op,"cotangeante")==0) resultat = tan(((90 - num_un) / 180.0) * M_PI);
if ( strcmp(op,"pythagore")==0) resultat = racar(num_un*num_un+num_de*num_de,50 ) ;
if ( strcmp(op,"%")==0) resultat = num_un*(100/num_de);
if ( strcmp(op,"==")==0) resultat = ( num_un == num_de);
if ( resultat)
{
return resultat;
}
return float(resultat2);
}
operation(float numun, float numde, char operation2[2])
{
num_un = numun;
num_de = numde;
//op = operation2;
}
operation(float numun, float numde)
{
num_un = numun; num_de = numde;
}
operation(float numun)
{
num_un = numun;
}
int test()
{
if ( strcmp(op,"+")==0) return 1;
if ( strcmp(op,"-")==0) return 1;
if ( strcmp(op,"*")==0) return 1;
if ( strcmp(op,"/")==0) return 1;
if ( strcmp(op,":")==0) return 1;
if ( strcmp(op,"modulo")==0) return 1;
if ( strcmp(op,">")==0) return 1;
if ( strcmp(op,"<")==0) return 1;
if ( strcmp(op,"puissance")==0) return 1;
if ( strcmp(op,"pythagore")==0) return 1;
if ( strcmp(op,"%")==0) return 1;
if ( strcmp(op,"==")==0) return 1;
if ( strcmp(op,"racine_carre")==0) return 0;
if ( strcmp(op,"cosinus")==0) return 0;
if ( strcmp(op,"sinus")==0) return 0;
if ( strcmp(op,"tangeante")==0) return 0;
if ( strcmp(op,"cotangeante")==0) return 0;
return 2;
}
char determinant()
{
char deter1[12] = " le";
char deter2[12] = " la";
if ( strcmp(op,"cosinus")==0) deter = deter1;
else if ( strcmp(op,"sinus")==0) deter = deter1;
else deter = deter2;
}
};
//int testnombre(char chainombre[])
//{
//int value;
//value = strlen(chainombre);
//int nombre;
//for ( int i = 0;i < value; i++)
//{
//nombre += int(chainombre)*int(puissance(10,(value-i)-1));
//}
//return nombre;
//}
int main(int argc, char *argv[])
{
//char nombre1[12];
//char nombre2[12];
float nombre_un;
float nombre_de;
char peration[100];
while ( 1)
{
cout < < " entrez un nombre : ";
cin > > nombre_un;
cout < < " \nmarquer un operateur : \n+ = +\n- = -\n* = x\n/ = /\n: = / euclidienne\nm = %\n> = > \n< = < \npuissance = puissance\nracine_carre = racine caree\ncosinus = cosinus\nsinus = sinus\ntangeante = tangeante\ncotangeante = cotangeante\npythagore = theoreme de pythagore\n% = pourcentage\n== = ==\nvotre choix : ";
cin > > peration;
//nombre_un = float(testnombre(nombre1));
operation opera(nombre_un);
//operation opera;
opera.op = peration;
if ( opera.test())
{
if ( opera.test() == 1)
{
cout < < " entrez un nombre : ";
cin > > nombre_de;
opera.num_de = nombre_de;
cout < < opera.num_un < < opera.op < < opera.num_de < < " =" < < opera.calcul();
}
else cout < < " erreur";
}
else
{
opera.determinant();
cout < < opera.deter < < " " < < opera.op < < " de " < < opera.num_un < < " = " < < opera.calcul();
}
cout < < " \n\n\n\n\n";
}
system ( "PAUSE");
return 0;
}
struct, c´est du C par excellence.
Et çà :
/* Not defined on MacOS.9 : -( */
float racar(float A, float J)
{
float i;
float Xj1;
float Xj;
float flag;
float m;
do
{
if(A>=0)
{
if(J<51)
{
Xj=A;
for(i=0;i<J;i++)
{
Xj1=(Xj+(A/Xj))/2;
Xj=Xj1;
m=i+1;
//printf("La %.0f approximation de la racine carree de %.2f est %.4f\n",m,A,Xj1);
}
//printf("la racine carré de %f vaut %f\n",A,Xj1);
flag=1;
}
else
{
//printf("Entrer la precision J\n");
//scanf("%f",&);
return 0;
}
}
else
{
//printf("Entrer une valeur POSITIVE pour A\n");
//scanf("%f",&);
return 0;
}
}
while(flag==0);
return Xj1;
}
float puissance(float x, int y)
{
float valeur = 1;
for ( int i=0; i < y;i++)
{
valeur = valeur*x;
}
return valeur;
}
struct operation
{
float num_un;
float num_de;
char op[100];
char deter[12];
float calcul ( )
{
float resultat = 1;
int resultat2 = 1;
int num_un2;
int num_de2;
if ( strcmp(op,"+")==0) resultat = num_un + num_de;
if ( strcmp(op,"-")==0) resultat = num_un - num_de;
if ( strcmp(op,"*")==0) resultat = num_un * num_de;
if ( strcmp(op,"/")==0) resultat = num_un / num_de;
if ( strcmp(op,":")==0) resultat2 = int(num_un / num_de);
if ( strcmp(op,"modulo")==0)
{
//cout < < " test";
num_un2 = int(num_un);
num_de2 = int(num_de);
resultat = num_un2 % num_de2;
}
if ( strcmp(op,">")==0) resultat = ( num_un > num_de);
if ( strcmp(op,"<")==0) resultat = ( num_un < num_de);
if ( strcmp(op,"puissance")==0)
{
//cout < < " test";
num_de2 = int(num_de);
resultat = puissance(num_un, num_de2);
}
if ( strcmp(op,"racine_carre")==0) resultat = racar(num_un, num_de);
if ( strcmp(op,"cosinus")==0) resultat = cos((num_un / 180.0) * M_PI);
if ( strcmp(op,"sinus")==0) resultat = sin((num_un / 180.0 ) * M_PI);
if ( strcmp(op,"tangeante")==0) resultat = tan((num_un / 180.0) * M_PI);
if ( strcmp(op,"cotangeante")==0) resultat = tan(((90 - num_un) / 180.0) * M_PI);
if ( strcmp(op,"pythagore")==0) resultat = racar(num_un*num_un+num_de*num_de,50 ) ;
if ( strcmp(op,"%")==0) resultat = num_un*(100/num_de);
if ( strcmp(op,"==")==0) resultat = ( num_un == num_de);
if ( resultat)
{
return resultat;
}
return float(resultat2);
}
operation(float numun, float numde, char operation2[2])
{
num_un = numun;
num_de = numde;
//op = operation2;
}
operation(float numun, float numde)
{
num_un = numun; num_de = numde;
}
operation(float numun)
{
num_un = numun;
}
int test()
{
if ( strcmp(op,"+")==0) return 1;
if ( strcmp(op,"-")==0) return 1;
if ( strcmp(op,"*")==0) return 1;
if ( strcmp(op,"/")==0) return 1;
if ( strcmp(op,":")==0) return 1;
if ( strcmp(op,"modulo")==0) return 1;
if ( strcmp(op,">")==0) return 1;
if ( strcmp(op,"<")==0) return 1;
if ( strcmp(op,"puissance")==0) return 1;
if ( strcmp(op,"pythagore")==0) return 1;
if ( strcmp(op,"%")==0) return 1;
if ( strcmp(op,"==")==0) return 1;
if ( strcmp(op,"racine_carre")==0) return 0;
if ( strcmp(op,"cosinus")==0) return 0;
if ( strcmp(op,"sinus")==0) return 0;
if ( strcmp(op,"tangeante")==0) return 0;
if ( strcmp(op,"cotangeante")==0) return 0;
return 2;
}
char determinant()
{
char deter1[12] = " le";
char deter2[12] = " la";
if ( strcmp(op,"cosinus")==0) deter = deter1;
else if ( strcmp(op,"sinus")==0) deter = deter1;
else deter = deter2;
}
friend ostream& operator<<(ostream& os, operation oper)
{
if ( oper.test())
{
if ( oper.test() == 1)
{
return os < < oper.num_un < < oper.op < < oper.num_de < < " =" < < oper.calcul();
}
else return os < < " erreur";
}
else
{
oper.determinant();
return os < < oper.deter < < " " < < oper.op < < " de " < < oper.num_un < < " = " < < oper.calcul();
}
}
};
//int testnombre(char chainombre[])
//{
//int value;
//value = strlen(chainombre);
//int nombre;
//for ( int i = 0;i < value; i++)
//{
//nombre += int(chainombre)*int(puissance(10,(value-i)-1));
//}
//return nombre;
//}
int main(int argc, char *argv[])
{
//char nombre1[12];
//char nombre2[12];
float nombre_un;
float nombre_de;
char peration[100];
while ( 1)
{
cout < < " entrez un nombre : ";
cin > > nombre_un;
cout < < " \nmarquer un operateur : \n+ = +\n- = -\n* = x\n/ = /\n: = / euclidienne\nm = %\n> = > \n< = < \npuissance = puissance\nracine_carre = racine caree\ncosinus = cosinus\nsinus = sinus\ntangeante = tangeante\ncotangeante = cotangeante\npythagore = theoreme de pythagore\n% = pourcentage\n== = ==\nvotre choix : ";
cin > > peration;
//nombre_un = float(testnombre(nombre1));
operation opera(nombre_un);
//operation opera;
opera.op = peration;
if ( opera.test() == 1)
{
cout < < " entrez un nombre : ";
cin > > nombre_de;
opera.num_de = nombre_de;
cout < < opera;
}
else cout < < opera;
cout < < " \n\n\n\n\n";
}
system ( "PAUSE");
return 0;
}
ben c´est encore du C, mais faut pas s´enerver ! ! je trouve ça tres bien ce que tu fais ! !
d´ailleurs, moi je programme en C/C++, c´est a dire que je suis a cheval sur les 2.
faut pas dire que le C est nul, loin de la !
enfin bref, voili, ne t´enerve pas, mais a part iostream, ce que tu m´indiques, c´est purement du C.
mais euh ? ? d´un autre coté, ton programme marche ? ?
quand tu fais :
struct truc
{
. ...
float calcul()
{
. ..
}}
ça marche ça ? ??
j´en doute fort ! !!
Ok, mais est-ce que çà c´est du C++ ?
friend ostream& operator<<(ostream& os, operation oper)
{
if ( oper.test())
{
if ( oper.test() == 1)
{
return os < < oper.num_un < < oper.op < < oper.num_de < < " =" < < oper.calcul();
}
else return os < < " erreur";
}
else
{
oper.determinant();
return os < < oper.deter < < " " < < oper.op < < " de " < < oper.num_un < < " = " < < oper.calcul();
}
}
oui il marche, mais c´est peut-être DevC++ qui corrige mes erreurs.
non je ne pence pas qu´un compilo corige les erreur lol surtout dev c++ qui est gratos...
JY² tu jou encore a BW sur bnet? ou a war3? que je te mette ta taule ( lol)
Uhm VictorVVV, ne nous abreuve pas de codes sources qui se ressemblent à chaque fois.
La où JY² essaie d´attirer ton attention, ce n´est pas sur les mots clé, headers, etc . .. : remplacer cout par printf ce n´est pas programmer en C++, il veut simplement te faire comprendre que tu te contente d´écrire des programmes en C enrobé de C++.
La programmation C++ à 100% passe par l´usage des classes et de tous le concepts liés à la programmation orientée objet ( héritage, encapsulation,...).