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

Tutorials de C++

_[CONKER]_
_[CONKER]_
Niveau 10
30 septembre 2003 à 19:05:12

beuh dsl je sais mm pas ce ke c´est^^
sinon merci lightness, je te pose une kestion si j´ai besoin de toi, je continue dapprendre :)

_[CONKER]_
_[CONKER]_
Niveau 10
01 octobre 2003 à 17:49:21

les gars j´ai une kestion, je m´addresse principalement a lightness mais tlm peut repondre :).
alors voila, dans ton cours ( chapitre fonctions) lightness tu dis:

    • ******************

int ajoute(int nombre1, int nombre2); // prototype de la fonction " ajoute" ( on parle souvent de déclaration)

int main(void)
{

printf("ajout de 500 avec 400: %d\n", ajoute(500, 400)); /* c´est grace au prototype que le compilateur sais ce que veut dire " ajoute" à cet endroit du programme */

return 0;
}

    • *****************

ce ke je comprends pas, c´est comment le compilateur va savoir kil faut additionner 500 et 400 et non pas les multiplier ou autre...?

ou sinon plus bas t´as marké:

    • ******************

int ajoute(int nombre1, int nombre2) // ceci est la définition = l´endroit où a été codée la dite fonction
{
return nombre1 + nombre2;
}

    • **********************

euh je comprends pas ton commentaire..^^

_[CONKER]_
_[CONKER]_
Niveau 10
01 octobre 2003 à 17:52:01

et en dessous tu as marké:

    • ***************

il était aussi possible de ne pas faire de prototype et alors d´écrire le programme comme cela:

  1. include < stdio.h>

int ajoute(int nombre1, int nombre2)
{
return nombre1 + nombre2;
}

int main(void)
{

printf("ajout de 500 avec 400: %d\n", ajoute(500, 400)); /* c´est parce que la fonction a été définie au dessus que le compilateur connais le mot ´ajoute´ */
return 0;
}

    • *************************

or je d´apres ce ke jai compris dans le cours precedent, je croyais ke le prototype etait la 2eme ligne ( int ajoute(int nombre1, int nombre2)
) .

peux tu m´aider stp?

SalaN87
SalaN87
Niveau 8
01 octobre 2003 à 18:36:51

ba t´as pas besoin de prototype quand tu definis ta fonction avant main.
Et le compilo va savoir qu´il faut les additionner a cause de la ligne return nombre1 + nombre2.

En fait il faut juste qu´au moment ou tu appelles ta fonction, le compilo connaisse cette fonction.
Comme en general tu l´appelles dans main, il faut soit que ta fonction soit definie avant main, sinon tu la definis apres main et tu mets le prototype ( avant main)

_[CONKER]_
_[CONKER]_
Niveau 10
01 octobre 2003 à 18:39:25

Comme en general tu l´appelles dans main, il faut soit que ta fonction soit definie avant main, sinon tu la definis apres main et tu mets le prototype ( avant main)

excuse moi j´ai pas compris cette derniere phrase^^

mais sinon, si je met: return nombre1 * nombre2;

il va me les multipliers?

_[CONKER]_
_[CONKER]_
Niveau 10
01 octobre 2003 à 19:28:05

c bon j´ai un peu tout relu, et j´ai compris :)
merci pour l´aide :)

freedix
freedix
Niveau 10
01 octobre 2003 à 19:28:45

Tu appelles la fonction ajoute dans ta fonction main donc soit tu déclare la fonction ajoute directement avant avant ta fonction main ou soit tu crée un prototype de fonction qui indique au compilateur qu´il existe bien la fonction ajoute et quelle est déclarée après la fonction main.

Oui, return sert à retourner ce que tu lui demande. Donc vu que tu as déclaré la fonction la fonction ajoute de type int, cette fonction va obligatoirement retourner un nombre entier. Donc la, tu demande à ta fonction de retourner ce que contient la variable nombre1 multiplié par la variable nombre2. Ca va donc te retourner la multiplication de nombre par nombre2.

En espérant t´avoir aider :)

freedix
freedix
Niveau 10
01 octobre 2003 à 19:29:28

A bin j´arrive encore trop tard :rire2:

_[CONKER]_
_[CONKER]_
Niveau 10
01 octobre 2003 à 19:30:12

et j´aimerais savoir si j´ai vraiment tout compris:

    • ********#include < stdio.h>

void retour(void);

int main(void)
{

printf("salut");
retour();
printf("c´est moi");
retour();

return 0;
}

void retour(void)
{
printf("\n");
}

    • ***********

ici les: retour ( );
vont faire un retour a la ligne? au faites c un peu des racourci?

freedix
freedix
Niveau 10
01 octobre 2003 à 19:34:53

Oui, ça va bien faire des retours à ligne. Hum des raccourcis, je pense pas trop. Lightness a du mettre ce code pour bien faire comprendre les fonctions je pense :)

_[CONKER]_
_[CONKER]_
Niveau 10
01 octobre 2003 à 19:37:01

yeah im the best :cool:
bon continuons :)

_[CONKER]_
_[CONKER]_
Niveau 10
01 octobre 2003 à 19:41:40

une autre ptite kestion^^
si jutilise la fonction dans un bloc situé apres avoir definni la fonction, est ce ke ca va fonctionner ou le bloc en kestion doit absolument etre situé avant la definition? merciiiiii^^

Lightness1024
Lightness1024
Niveau 10
01 octobre 2003 à 21:17:37

freedix > oui :)

tu demandes:

" si jutilise la fonction dans un bloc situé apres avoir definni la fonction, est ce ke ca va fonctionner"

je repond:

oui car la definition de la fonction ( c´est a dire la ou son code complet se situe) est connue du compilateur a partir de cette ligne, donc tous les appels a cette fonction dans les lignes suivantes marcherons.

tu demandes:

" ou le bloc en kestion doit absolument etre situé avant la definition?"

je répond:

en fait, il se trouve que c´est plus conventionnel de mettre les definitions en bas du programme ( parce que ca fait plus beau) mais le mieux encore est de les mettre carrément dans un module a part ( ce que je n´ai pas traité dans ce tutoriel, en revanche tu va acheter prochainnement un livre, les livres sont tres complet pour se genre de choses, et ca sera surement expliqué).
donc la réponse est: non il ne doit pas absolument etre situé en dessous car cela oblige un prototype au dessus et les parresseux n´aiment pas :)

----

le reste:

" mais sinon, si je met: return nombre1 * nombre2;
il va me les multipliers?"

comme la répondu freedix: oui tout a fait.
en revanche ta fonction s´appelleras toujours " ajoute" et pourtant elle fera une multiplication, donc ce n´est pas pratique du tout, et il n´y aura que toi qui pourras utiliser ton programme sans te tromper.

---

un moment tu as dit que tu aurais surement pas compris si tu n´y avais vraiment rien connu en programmation avant ca.

bon en effet c´est un probleme compliqué, il est TRES difficile de faire apprendre la programmation a un veritable débutant, en fait le mieu pour lui c´est d´apprendre un truc et de rien comprendre.
a premiere vu sa parait trop con mais en fait si on pige rien on apprend quand meme inconsciament.
ensuite il fo lire les exemples, modifier, comprendre, faire de minuscules trucs tout simple.
puis relire un cours ( voir le meme ! ) et au 2eme passage il y aura PLEIN de passages ou tu vas te dire " aaaaaaah ooooook ! ! g pigé c comme ca ke ca maaaaarche ! !" et au fur et a mesure faire ca pour chaque étape:

théorie->rien piger
s´exercer->avoir du mal
relire théorie->tout comprendre mieux
re s´exercer->deja mieu
etc...
etc...
etc...

:)

_[CONKER]_
_[CONKER]_
Niveau 10
02 octobre 2003 à 11:27:03

Merci beaucoup pour tes reponses! j´espere ke je t´emmerde pas trop^^
en effet c´est dur de comprendre la programmation au debut comment ca marche etc.. et je pense ke ca doit l´etre encore + de faire comprendre a kkun comment ca marche^^.
pour le livre je l´ai pas encore, je devais l´acheter apres l´ecole a midi mais j´me suis pas reveillé :nonnon: . .^^
j´aurais encore d´autres kestions ( koi? encore??? ben oui^^) si ca vous derange pas^^:
deja une verification: si je fais ca:

    • **********************

int main()
{
int nb;
nb = 5;
nb --;
printf ( "nb apres le -- egal %d\n",nb);
getch ( );
return ( );
}

    • *******************

la le printf va m´afficher le nombre 4 c´est ca? le -- enleve 1 au nombre? et le ++ rajoute 1?

ensuite une kestion:

    • **********************

pour changer la valeur de res, il faut utiliser les pointeurs, et passer l´adresse par copie et modifier le contenu de l´adresse dans la fonction.
cette méthode s´appelle un passage par adresse.
voici un programme qui cette fois-ci fonctionne très bien:

  1. include < stdio.h>

void ajoute(int nb1, int nb2, int* resultat);

int main(void)
{
int res = 0;

ajoute(2, 3, &);

printf("%d\n", res);

return 0;
}

void ajoute(int nb1, int nb2, int* resultat)
{
*resultat = nb1 + nb2;

return; // ce return est facultatif dans un cas ou la fonction est de type void.
}

    • ***********************

ca je comprends pas tres bien, tout d´abord, a cette ligne:

ajoute(2, 3, &);

pk il y a un & devant le res? kes kil fait??

peut etre k´apres je comprendrai mieux :)

j´espere ke vous repondrez^^
merci

SalaN87
SalaN87
Niveau 8
02 octobre 2003 à 13:12:18

i++ est egal a i+1
i-- est egal a i-1

& passe l´adresse de ta variable ( si je ne m´abuse)

_[CONKER]_
_[CONKER]_
Niveau 10
02 octobre 2003 à 13:51:17

et ca sert a koi^^?

_[CONKER]_
_[CONKER]_
Niveau 10
02 octobre 2003 à 14:02:44

aaah c bon j´ai relu le chapitre des pointeurs et c bon :) je crois ke g capté

_[CONKER]_
_[CONKER]_
Niveau 10
02 octobre 2003 à 16:01:31

bon je vien de finnir a l´instant le tuto et j´ai pas capté les 3 derniers chapters:
les classes, les structures et les macros..
donc si kkun pouvait m´expliker, je lui en serait grandement reconnaissant :D^^
mais on fait comment apres pour faire des machin graphikes? vous avez un tuto ossi?

VictorVVV
VictorVVV
Niveau 6
02 octobre 2003 à 16:47:51

Il faut une librairie pour faire du graphique.
http://prografix.games-creators.org

SalaN87
SalaN87
Niveau 8
02 octobre 2003 à 17:31:44

ben les structures c´est simple :
On va faire un exemple c´est toujours plus simple

On definit la structure personne
struct personne
{
char nom[15], prenom [15], ville[15];
int age;
};

void main()
{
struct personne anybody;
printf("Entrez votre nom\n);
scanf("%s", &.nom);
printf("Entrez votre prenom\n");
scanf("%s", &.prenom);
printf("Entrez votre ville\n");
scanf("%s", &.ville);
printf("Entrez votre age");
scanf("%d", &.age");

printf("Vous vous appelez %s %s, vous habitez a %s et vous avez %d ans\n\n", anybody.nom, anybody.prenom, anybody.ville, anybody.age);

}

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