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

Mes premiers programme en c++ :bave:

Iliketo
Iliketo
Niveau 10
22 août 2012 à 21:05:47

Chris_27 Bah c'est une sorte de power mais sans les nombre a virgule :hap:
Donc elle calcule la puissance et comme elle ne fait pas que des nombre naturel je ne peut pas avoir des nombre genre -5 alors j'ai fait une condition qui interdit les nombre négatives mais du coup je renvoie quoi dans cette condition :-(
Gleuh Je sais mais je voulais dire je renvoie quoi sur une fonction int si je peut pas utilisé cout :-(

Iliketo
Iliketo
Niveau 10
22 août 2012 à 21:08:20

Oups je pense que je vous ai embrouille :hap:

Pour faire simple par quoi remplacer le cout ?

chris_27
chris_27
Niveau 10
22 août 2012 à 21:11:48

J'ai dis *précisément* :-)))

Ta fonction, elle prend deux entrées, pourquoi ? La valeur de retour c'est un entier, pourquoi ? comment la sortie est-elle reliée à l'entrée ?

Est-ce que c'est ta fonction qui va faire l'affichage ? si oui, quel est l'intérêt de retourner une valeur ?

godrik
godrik
Niveau 30
22 août 2012 à 21:11:52

iLIKEto, c'est a toi de definir le comportement dans une condition d'erreur. Il y a plusieurs facon de traiter le probleme. Soit tu renvoies une valeure fixe, soit tu renvoie n'importe quoi (undefined behavior), soit tu crash l'application (c'est bien fait pour l'utilisateur), soit tu envoie une exception (tu ne sais probablement pas ce que c'est a ce niveau de ton apprentissage)

chris_27
chris_27
Niveau 10
22 août 2012 à 21:12:59

J'oubliais un autre point important :

Les valeurs passées en entrée seront elles modifiées par ta fonction ?

Iliketo
Iliketo
Niveau 10
22 août 2012 à 21:29:03

Ta fonction, elle prend deux entrées, pourquoi ?
:d) Le premier ^le 2 eme
La valeur de retour c'est un entier, pourquoi ?
:d) Personnellement j'ai encore jamais vue a^b = obiwan kenobi :hap:
comment la sortie est-elle reliée à l'entrée ?
:d) J'ai pas trop compris la question mais je pense que la sorti c'est a^b :(
Est-ce que c'est ta fonction qui va faire l'affichage ?si oui, quel est l'intérêt de retourner une valeur ?
:d) Tu viens de me faire comprendre mon erreur merci :hap:
Les valeurs passées en entrée seront elles modifiées par ta fonction ?
:d) Heu oui , tu viens de me faire réaliser l’utilité des const 2 fois merci :hap:

godrik
Grâce a Chris j'ai gérer l'erreur sur la fonction man
:d) http://pastebin.com/pQZ4fZqH
Mais j'avoue que laissé les utilisateur galéré me plais beaucoup plus :hap:

chris_27
chris_27
Niveau 10
22 août 2012 à 21:37:03

« je pense que la sorti c'est a^b » :d) oui, c'est la réponse attendue à la question. :-)

De fait, les questions sur les entrées et la sortie forment un bloc de questions auxquelles il faut répondre d'un seul coup normalement.

« Les valeurs passées en entrée seront elles modifiées par ta fonction ?
:d) Heu oui , tu viens de me faire réaliser l’utilité des const 2 fois merci » :d) haha... c'est précisément à cause de ça que j'ai mis la question dans un deuxième message. Oui... et non. :-)

Ici, tu manipules des types de base. Donc soit tu dois modifier la valeur et dans ce cas il faut passer l'argument par référence (int& par exemple), soit tu ne modifies pas et dans ce cas il faut utiliser le passage par copie (int). Comme il s'agit d'une copie (parce que le type est primitif), que tu mettes const ou pas n'a pas d'incidence. Même si tu modifiais la copie, ça ne changerait pas la valeur que tu donnes à la fonction. :-)

Iliketo
Iliketo
Niveau 10
22 août 2012 à 21:46:11

"soit tu ne modifies pas et dans ce cas il faut utiliser le passage par copie (int). Comme il s'agit d'une copie (parce que le type est primitif), que tu mettes const ou pas n'a pas d'incidence. Même si tu modifiais la copie, ça ne changerait pas la valeur que tu donnes à la fonction. "

le pire dans tous sa c'est que d et g sont des copie et j'ai malgré tous changé les valeur :noel:

je crains qu'il ni y a plus d'espoir je vais acheter une corde et je reviens :hap:

chris_27
chris_27
Niveau 10
22 août 2012 à 21:51:27

« le pire dans tous sa c'est que d et g sont des copie et j'ai malgré tous changé les valeurs » :d) mais c'est valide et sans impact pour la suite. Tu ne veux pas que ta fonction modifie les valeurs initiales, tu as passé les arguments par copie, donc ta fonction ne modifie pas les valeurs initiales.

Après, ce n'est pas très propre. :o))

tbop2
tbop2
Niveau 10
22 août 2012 à 22:00:40

C'est bien tu avances prudement mais sûrement.

Juste encore deux trois trucs à corriger dans l'ordre :

1) Bordel à cul vas tu indenter ton code un jour ou l'autre ?! :D
2) Tu devrais prendre dès maintenant de ne rédiger ton code qu'en anglais.
3) Maintenant que tu connais les fonctions je te conseille de faire une fonction getInt et getFloat qui te permettent de choper l'entrée utilisateur, vérifier si c'est bien le type attendu et retourner le résultat (ou pas).
4) Maintenant que tu es un peu plus à l'aise avec les fonctions essaye de refaire la fonction pow rapide en utilisant la récurrence comme le mentionne la version officielle... (http://fr.wikipedia.org/wiki/Exponentiation_rapide#Algorithme)

Iliketo
Iliketo
Niveau 10
22 août 2012 à 22:01:01

pourquoi sa pas très propre ? :pacg:
Car j'ai laissé la copie et modifier l'original ou bien ?

Après j'ai arrêté le tuto du sdz
donc je dois continué a apprendre les tableaux les pointeur la poo et c'est tous ? je serai prêt a apprendre une ATI genre direct x ( je sais c'est du gros poisson :o)) )

Iliketo
Iliketo
Niveau 10
22 août 2012 à 22:03:58

tbop2 pour l'indentation je vois sa comme un jour lointain .... bon ok le prochain code sera indentai :hap:
2 :d) bonne idée je vais utilisé google translate comme sa je pourrai apprendre :oui:
3 :d) je te promet rien :hap:
4 :d) je fais sa de suite :-)

chris_27
chris_27
Niveau 10
22 août 2012 à 22:09:53

tbop2: ça pue le code::blocks ou équivalent, et l'indentation pue du cul avec cette veine de softs. :(

iLIKEto:
« pourquoi sa pas très propre ? » :d) disons que, en temps normal (et pour éviter les bugs dans des fonctions un peu grosses), on évite de modifier les copies de façon à toujours avoir accès aux valeurs passées en argument. :-)

chris_27
chris_27
Niveau 10
22 août 2012 à 22:12:34

« google translate » :d) nan, ça ça marche pas. Mieux vaut un code en bon français qu'un code en franglais.

tbop2: en vrai, c'est vraiment un niveau au dessus et pas prioritaire la récursivité (point 4). :(

Iliketo
Iliketo
Niveau 10
22 août 2012 à 22:17:52

A ok mais sa reste un peu flou enfin on verra sa avec la pratique :noel:
Et sinon la récurrence c'est quoi a peu près :(
le lien que tu ma donné c'est de l'Exponentiation rapide or il y a déjà l'Exponentiation rapide rapide dans mon code :(

Iliketo
Iliketo
Niveau 10
22 août 2012 à 22:25:14

Genre si il me donne x^8 je dois faire ((x^2)^2)^2 et si il me donne x^6 je dois faire x*((x^2)^2) ? :(

hyrulink2
hyrulink2
Niveau 7
22 août 2012 à 22:25:27

"donc je dois continué a apprendre les tableaux les pointeur la poo et c'est tous"
Je veut pas te décourager mais le C++ ça met des années a apprendre, disons un an pour baragouiner, 2 ans pour être à l'aise et bien plus pour maîtriser. C'est vraiment un travail de patience mais tu semble bien parti, le plus important est de pratiquer.

Sinon après une lecture rapide de ton code plusieurs choses:
1)Je plussoie tbop2 pour l'indentation c'est vraiment horrible à lire
2)Ce n'est pas une exponentiation rapide, tu ne décompose la puissance qu'une fois(ex: pour 2^8 tu fais (2^2)^4 et non ((2^2)^2)^2). De toute façon sans récurrence c'est plutôt délicat une exponentiation rapide.
3)Le "(puissance-1)/2;" a la ligne 26 peut être remplacé par puissance / 2, c'est une division entière.

Iliketo
Iliketo
Niveau 10
22 août 2012 à 22:29:26

x^6 = x^2 * ((x2)^2) désolé mal conté :)
hyrulink2
Oui je sais que c'est long mais j'aimerai bien avoir un programme a suivre :-)

3 :d) heu c'est un nombre impair donc je fais comme ils disent sur le wiki :(

hyrulink2
hyrulink2
Niveau 7
22 août 2012 à 22:29:55

La récurrence c'est très simple: c'est le fait d’appeler la fonction A dans la fonction A elle-même mais il faut une condition d'arrêt.
Exemple pour factiorielle:
!n =
1 si n = 1 ou 0
n * !(n - 1) sinon

En code sa se traduit par:

int fact(int n)
{
return n > 1 ? n * fact(n - 1) : 1;
}

tbop2
tbop2
Niveau 10
22 août 2012 à 22:30:34

"nan, ça ça marche pas. Mieux vaut un code en bon français qu'un code en franglais. "
Ce qui n'est pas faux... Après faut bien se lancer un jour ! Le code c'est pas non plus une dissertation, quand tu connais get et set tu as presques déjà la moitié du vocabulaire nécessaire (lol)

"tbop2: en vrai, c'est vraiment un niveau au dessus et pas prioritaire la récursivité (point 4)."

Je sais tu as bien raison mais iLIKEto a été assez motivé pour comprendre l'algorithme original et le transposer en itératif assez rapidement alors qu'il avait la version récursive devant les yeux... il peut encore nous épater.

Cela dit avant le 4 ya 1, 2 et 3 qui sont tout à fait abordables.

"le lien que tu ma donné c'est de l'Exponentiation rapide or il y a déjà l'Exponentiation rapide rapide dans mon code"
Et tu as interprété ce même lien hier à ta sauce. Regarde la définition.... elle utilise la définition dans la définition. Cela s'appelle la récurrence, si tu traduis littéralement la définition en langage C++ tu vas avoir un algorithme récursif.
En vrai, comme a dit Chris_27 la récursivité c'est quand même un cran au-dessus (quoi que je sais qu'il y en a qui pige ça bizarrement plus intuitivement que l'itératif).

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