CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

(POO) C++ : exos pour s'initier

gulius44
gulius44
Niveau 9
04 mars 2006 à 18:06:31

Voilà, j´apprend depuis peu le C/C++. Là en C++, je suis en plein ds le chapitre Classes et surchage d´opérateurs. Mais bon que de la théorie ... ça permet pas de bien assimiler les choses.

J´aimerais donc savoir, si vous n´auriez pas quelques exercices à développer autour de ces deux thèmes (sachant j´ai vue les chaines C et C++ donc des exos, en incorporant tout ça :) :p ) ....

Ca serait bien sympatique à vous.
Merci d´avance.

delf__ar
delf__ar
Niveau 7
04 mars 2006 à 18:18:41

y a plein d´exos sur http://france-ioi.org

gulius44
gulius44
Niveau 9
04 mars 2006 à 18:25:41

Pas bête, j´y avait pas pensé.
Menfin, tous leurs exos ne nécéssitent pas des structures telque les classes ....
J´vais quand même voir.

Merchi bien

godrik
godrik
Niveau 30
04 mars 2006 à 18:44:13

faire une classe Complexe et redéfinir toutes les opéarations arithmétiques dessus.
tu peux aussi faire une classe Entier non borné et redéfinir les opérateurs dessus également...

dnob700
dnob700
Niveau 10
04 mars 2006 à 18:59:55

pour voir pas mal de mécanisme de la POO, tu peut pousser l´idée plus loin en faisant une classe de réel, puis une classe de complexe qui en hérite (ou qui hérite au moins de l´interface, les fonctions peuvent être virtuelles), puis une classe de matrice qui peut prendre en paramètre template ou bien la classe de réel, ou bien celle de complexe...

gulius44
gulius44
Niveau 9
04 mars 2006 à 19:44:09

Rooooo la classe Complexe, ça me plait bien. Vait esseyer d´implémanter ça, enfin à mon niveau. Mais bonne idée.

Thx

gulius44
gulius44
Niveau 9
04 mars 2006 à 19:45:34

Avec la classe Reel parent, ça englobe des concepts de POO en plus ... A voir.

gulius44
gulius44
Niveau 9
04 mars 2006 à 19:46:18

Avec la classe Reel parent, ça englobe des concepts de POO en plus ... A voir.

JeanYvesYves
JeanYvesYves
Niveau 10
05 mars 2006 à 23:36:10

tu as aussi la classe "fraction" dans le meme genre que la classe "complexe" :)

Egalement la classe "vecteur" avec produit scalaire, produit vectoriel, multiplication par réels, etc etc !!

JeanYvesYves
JeanYvesYves
Niveau 10
05 mars 2006 à 23:41:02

Tiens, exercice explicite.

Implémente une classe Fraction, de façon a ce qu´on puisse l´utiliser comme ça :

int main()
{
Fraction a(5,3); // crée un 5/3
Fraction b(3,12); // simplifiable !
Fraction c = a + b;
cout << c << endl; // que ça affiche 19/12 :)
return 0;
}

Autre exemple, classe vecteur :

int main()
{
Vecteur a(1,0,1);
Vecteur b(1,1,0);
Vecteur c = a + b;
cout << c << endl; // que ça affiche (2,1,1)
return 0;
}

Voila de bon petits exemples bien concrets :)

gulius44
gulius44
Niveau 9
06 mars 2006 à 22:00:05

Ouai ouai .... ce sont des exercices intéréssants. Je n´est pas encore commencer, rentrée oblige ....
Je vais voir la classe complexe dans un premier temps (ou peut-être vecteur en fait), mais la classe fraction, elle est développée ds le livre dans lequelle j´apprend, ... donc ... Néanmoins, elle est bien intéréssente à implémenté.

gulius44
gulius44
Niveau 9
08 mars 2006 à 13:34:48

Pour la classe Complexe, quels genres d´opérations dois-je implémenter ?

Les opérations d´addition, de multiplication, de soustraction, de division entre deux, voir plusieurs complexes.

Mais aussi, j´avais pensé à calculer l´image d´un complexe par la/les transformation(s) par un autre/plusieurs nombre(s) complexe(s).

Donc ça ferait :

Complexe a(x1,y1), b(x2,y2);
Complexe c;
c = a+b+a;
c = a*b;
c = a*a-b; etc ....

c = a.transform(b); // Transformation de b par a;

A la limite, un test d´égalité avec l´opérateur ==.
Par exemple i²==-1 renverait true.
On peut aussi impléménter dans une méthode qui simplifie le complexe (i*i*i = -i, etc ...)

Mais à ça doit-être plus compliqué à implémenter ?

kufa
kufa
Niveau 9
08 mars 2006 à 13:54:40

Ben non, pas a partir du moment ou tu implementes correctement la multiplication:
Complexe i(0,1);
Complexe c = i*i; // (-1,0)
Complexe Complexe::operator*( const Complexe& c ) const
{
return Complexe( x*c.x - y*c.y, x*c.y+y*c.x );
}

JeanYvesYves
JeanYvesYves
Niveau 10
08 mars 2006 à 14:20:13

Tout a fait, et avec cette multiplication formelle, ça te simplifiera toujours ton complexe en lui donnant la forme a+ib.
La gestion du i² = -1 a été faite avant !

Je m´explique :
de façon formelle :

(a+ib)*(c+id) = a*c + ibc + ida + i²db
Formellement, tu simplifie et utilise i²=-1:
= a*c + i(bc+da) - db

et tu as bien une forme a+ib de nouveau. Le compilo n´est meme pas au courant que i² = -1. Il sait juste que multiplier, ça donne ça : le résultat est maché...

A partir de la, il va tout faire marcher aux petits oignons !

gulius44
gulius44
Niveau 9
09 mars 2006 à 19:17:33

Voui en plus ça va de soit ... j´avais pas réfléchis, mais oui, forcément.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment