Convertir un programme C en C++

Fermé
Cyp44 - Modifié le 19 avril 2020 à 16:47
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 - 20 avril 2020 à 19:08
Bonjour tout le monde,
Je débute tout juste dans le domaine de la programmation et j'aimerais passer mon code que j'ai tapé en langage C en C++. En effet, j'essaie de me familiariser avec le C++, c'est pour cela que j'aimerais avoir mon code dans ce nouveau langage pour m'aider à mieux le comprendre.
Voici mon bout de code à convertir :

x1r=-r/2;
x1i=sqrt(fabs(det))/2; 
printf("\n\n2The complex roots for the given polynomial equation are :\n\n %.3lf + %.3lf j and %.3lf -%.3lf j \n\n",x1r,x1i,x1r,x1i);

for(i=n;i>=0;i--)
{ 
        printf("\n\n a[%d] : ",i);
        scanf("%lf",&a[i]);
}
 printf("\nThe entered polynomial is : \n\n");
 for(i=0;i<=n;i++)
 if(a[n-i]>=0)
      printf(" +%.2lfx^%d",a[n-i],n-i);
  else
      printf(" %.2lfx^%d",a[n-i],n-i);



Merci d'avance de votre réponse
Je vous souhaite à tous une excellente journée
Cordialement

18 réponses

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
20 avril 2020 à 09:25
Bonjour Cyp44,


"En effet, j'essaie de me familiariser avec le C++, ………….. "

Dans ce cas, pour démarrer tout de suite avec les bonnes bases, le mieux serait de lire un tuto sur le net, il y en a plein

Ton programme en C++ devrait ressembler à celui en C, mis à part les printf et les include qui sont en tete de code …
0
Premièrement merci de votre réponse.
Oui oui je sais bien et c'est ce que je fais mais j'aimerais vraiment beaucoup avoir ce programme en C++ si cela ne vous dérange pas s'il vous plait.
Car en fait c'est surtout les printf que je n'arrive pas à modifier...

Merci d'avance
Très bonne journée à vous
0
yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474
20 avril 2020 à 09:47
si tu veux te familiariser avec le C++, prends ton temps.
pourquoi aimerais-tu beaucoup avoir rapidement ce programme en C++?
0
Car le programme écrit en C est un programme simple et j'aimerais pouvoir le transformer en C++ afin d'avoir simplement la base de comment afficher et écrire quelque chose à l'écran...
Pouvez simplement me dire au moins comment écrire les 3 printf s'il vous plait ?

Merci d'avance
Bonne journée
0
yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474
20 avril 2020 à 10:12
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
20 avril 2020 à 10:43
Hello Cyp44,

Si je te donne le code tout fait, je ne t'aide pas beaucoup !

Tu ne veux vraiment pas aller sur un tuto ?

Pratiquement tous donnent le fameux exemple "hello world", c'est élémentaire ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Oui je comprend mais moi je fonctionne comme ca, j'aime bien avoir les deux programmes sous les yeux afin de comparer et apprendre comme ceci.
Je regarde pas mal de tuto et oui je le connais bien le "hello world" mais cela m'aiderait beaucoup croyez moi si je pouvais avoir les deux programmes sous les yeux s'il vous plait.

Merci d'avance et très bonne journée
0
yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474
20 avril 2020 à 10:57
ne peux-tu pas comparer deux programmes "hello world", en C et en C++?
0
Si si et je l'ai fait bien évidemment mais par rapport à mon programme que j'ai la il y a plusieurs choses qui ne sont pas comme pour l'exemple de helloword...
J'aimerais simplement les printf pour comparer.
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 20 avril 2020 à 11:03
Ha , tu connais bien l'exemple C++ avec "hello world" ?

Donc tu as déjà l'exemple pour écrire à l'écran qui correspond à printf en C !

Le lien donné plus haut par yg_be est excellent
0
oui je sais q'il faut utiliser cout, mais c'est pour mes printf à moi que j'utilise comme ceux la : printf(" +%.2lfx^%d",a[n-i],n-i);
else
printf(" %.2lfx^%d",a[n-i],n-i);

S'il vous plait si vous pouvez m'aider pour simplement ces 3 printf

Merci beaucoup
0
yg_be Messages postés 22717 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 22 avril 2024 1 474
20 avril 2020 à 11:12
tu gagneras du temps, et tu apprendras, en faisant le travail toi-même, au lieu de mendier ainsi.
je fini par croire qu'il s'agit de la réponse à un exercice...
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
20 avril 2020 à 11:13
Bah, tu remplace printf par cout exactement comme c'est écrit dans l'exemple "hello world"

Ensuite tu testes, si erreur, tu regardes ce qui ne va pas, tu corriges et ainsi de suite :-)

Tu fais un programme juste avec un cout, dès que c'est OK , tu intègre le reste du code

Ca n'est pas très compliqué, moi personnellement je fais toujours comme ça ...
0
Mais non non pas du tout c'est simplement que je fonctionne comme cela. Je compare les deux programmes afin de comprendre.

S'il vous plait
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
20 avril 2020 à 11:19
L'idéal pour apprendre, c'est quand même de partir d'un petit exemple simple, tester, comprendre ce qui se passe, et ensuite étoffer l'exemple avec plus de choses

C'est quand même plus formateur … c'est plus motivant aussi !
0
Oui je comprend ce que vous voulez dire mais honnêtement j'aimerais avoir au moins un exemple d'un des printf simplement pour pouvoir comparer et voir si j'ai juste
S'il vous plait
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
20 avril 2020 à 12:38
L'exemple avec printf, tu en as déjà un:

Si tu lis le petit programme "hello world" qui est dans le lien proposé par yg_be, tu l'as sous les yeux prêt à copier/coller

".... pour pouvoir comparer et voir si j'ai juste"

Moi, pour voir si j'ai juste, comme tu dis, j'exécute le programme, et je vois donc tout de suite si ca marche ou s'il il y a des erreurs ...
0
nah non je ne l'ai pas sous les yeux prêt a copier coller car il n'y a pas avec +%.2lfx^%d",a[n-i],n-i ou d'exemples qui y ressemblent...
J'aimerais simplement les printf s'il vous plait
0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
20 avril 2020 à 13:10
Tiens, là, il y a des exemple de l'instruction cout avec sortie de chaine de caractère suivie d'un nombre entier comme dans tes printf :

http://www.cplusplus.com/doc/tutorial/basic_io/

A toi d'adapter, compiler, exécuter et voir si ca marche, pas avec tout ton programme, mais déjà simplement sur un seul printf ...
0
Merci beaucoup pour votre site, mais est ce que par exemple pour le deuxième Printf de mon programme est ce que c’est : cout << « a(n-i) puissance (n-i) » ?
S’il vous plaît pouvez vous me dire ce qu’il y’a dans les guillemets ?
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
20 avril 2020 à 13:31
Bonjour,

Le problème c'est que tu dis vouloir apprendre le C++, et le C++ n'est absolument pas une adaptation du langage C. C'est qu'ici on est sur des fonctions simples du C qui ont un équivalent en C++, on pourrait donc convertir par des équivalents, mais c'est vraiment perdre du temps sans progresser. Je te donne malgré tout les équivalents de ton code.
      C          |   C++
-----------------+------------------
#include <math>  | #include <cmath>
#include<stdio.h>| #include <iostream>
sqrt()           | std::sqrt()
fabs()           | std::abs()
printf()         | pas une fonction on utilise l'objet std::cout
scanf()          | pas une fonction on utilise l'objet std::cin

Pour la gestion des objets
std::cin
et
std::cout
, c'est la première des notions à apprendre et tu trouveras des tas d'explications partout. Par exemple sur https://en.cppreference.com/w/cpp/io/basic_ostream
Ici tu veux convertir un
printf
"un peu complexe" en une ligne C++. Il te faut donc:
- bien comprendre ce que font les formats du C :
"%.2lf"
,
"%.3lf"
et
"%d"
. Le sais-tu ? Dans le cas contraire tu es bloqué dans ta tentative de conversion qui n'aurait aucun sens!
- trouver l'équivalent en C++. Je te donne une piste : en C++ Il y a la fonction
std::cout.precision(NbChiffre)
qui précise le nombre de chiffres après la virgule à condition d'être en format
std::ios::fixed
ou
std::ios::scientific
.

Mais attention le C++ et le C n'ont rien à voir, dans des cas ultra simples (comme ici) ça peut ressembler. Mais par exemple dit toi qu'on apprend le C en quelque semaines, alors il faut des années pour le C++. Alors choisi un langage, apprends le, puis ensuite passe au suivant (et on conseille souvent d'apprendre le C++ avant le C!)
0
merci beaucoup de votre réponse
A quoi sert le std :: ? nous ne sommes pas obligé d'écrire std mais directement cout non ?
Oui je vois à quoi cela correspond mais printf(" +%.2lfx^%d",a[n-i],n-i) avec le ^ et tout ca je n'arrive vraiment pas en format cout<< ...
Si vous pouviez simplement me donner cet exemple s'il vous plait ?

Merci beaucoup de votre réponse
0
Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
20 avril 2020 à 19:08
Le
std::
ça indique que l'on veut accéder à quelque chose qui est dans la bibliothèque standard, sinon il y avait des techniques pour éviter d'écrire ça, mais c'était pour les codes d'avant 1998. Depuis on doit utiliser
std::
.

Le
^
, ça dit d'afficher un
^
. De même le
+
, ça dit afficher
+
et le
x
ça dit afficher
x
. Par contre le
%.2lf
(placé entre
+
et
x
) ça dit autre chose. C'est une base du C. On ne peut pas à la fois t'expliquer le C, t'expliquer le C++ et t'écrire la conversion à effectuer ça ne correspond absolument pas au titre de ton post qui demande de l'aide pour un portage de C à C++ d'autant que tu précises bien pour m'aider à mieux le comprendre. Comprendre quoi? On t'a donné des pistes pour comprendre.
0