TUTO C - #10 Les fonctions

Sdílet
Vložit
  • čas přidán 7. 09. 2024
  • Jusqu'à présent, nous avons écrit l'intégralité de notre code dans la partie "main" du programme. Pour scinder un peu plus notre code et définir des actions spécifiques que l'on pourra appeler n'importe ou dans la suite de notre code, je vous propose de découvrir les fonctions !
    ✍️ Exercices interactifs de cette vidéo : [Bientôt disponibles]
    💡 Pour me soutenir et accéder à plein d'avantages, découvrez les comptes Premium ! www.primfx.com...
    N'oubliez pas de vous abonner, c'est rapide et sympa !
    -------------------------------------------------------------------------------­----------------
    ► S'abonner : goo.gl/Cfrt1B
    ► Site internet : primfx.com
    ► Me suivre (réseaux sociaux) : social.primfx....
    Musique d'intro: dlvsound.wordp...
    Copyright © PrimFX

Komentáře • 43

  • @oliviersse918
    @oliviersse918 Před 3 lety +25

    p.... heuresement que tu as fait ces vidéos j'ai un prof qui explique très mal ... tes vidéos mon tout fait comprendre ! tu gères !

  • @redouanemaaref
    @redouanemaaref Před 9 měsíci +1

    Merci bcp pour ce tuto
    Je suis unétudiant en L1 tech d'info et c m'a aidé énormement vu que notre prof essaye tjrs de compliquer les choses

  • @naturumauthentica
    @naturumauthentica Před rokem

    Je vous remercie infiniment pour ces cours; le bénéfice pour moi est énorme : que Dieu vous Bénisse richement.

  • @gameask1508
    @gameask1508 Před 10 měsíci +1

    Merci vidéo très clair

  • @sorybakaba8324
    @sorybakaba8324 Před 4 lety +2

    Wallahi vous savez bien expliquer merci bien de votre excellent travail

  • @koffirichardgadjenou6795

    Tes tutos sont les meilleurs.

  • @dondidax230
    @dondidax230 Před 3 lety

    J'aime bien la façon dont vous expliquez

  • @carl_ytb
    @carl_ytb Před 2 lety

    Merci pour votre tuto l'ami,ça m'a aidé énormément.

  • @redtonnhooks4538
    @redtonnhooks4538 Před 4 lety +2

    Vraiment top, sur toute la ligne. Quoique ça peut paraitre un peu vite mais, cest très méthodique. :)
    PS: +1 abonné.

  • @incognito3448
    @incognito3448 Před 3 lety

    vous venez de me sauver la vie... Merci beaucoup

  • @user-vg5ju3lp1u
    @user-vg5ju3lp1u Před 9 měsíci

    merci j'ai compris beaucoup des choses dans ta vidéo

  • @Nico14801
    @Nico14801 Před 3 měsíci

    Les prototypes servent aussi à déclarer la fonction si elle est placée après son appelle, il suffit de finir le prototype par ; et l'affaire est dans le sac, l'appelle peut se faire partout en-dessous du prototype.

  • @EricBrunoTV
    @EricBrunoTV Před 3 lety

    Moi j'ai pas mis un pouce bleu mais tous mes doigts. C'est bien clair ce tuto et bien bref. Merci

  • @rasmanekagambega5087
    @rasmanekagambega5087 Před rokem

    Vraiment c'est super bien !!!!!

  • @mhd_0595
    @mhd_0595 Před 6 měsíci

    Bonjour, merci beaucoup pour ta vidéo, je comprends bien mieux et facilement qu'avec mon cours !
    Je voudrais savoir: est-ce que les exercices sont disponibles ? Et où je peux les trouver stp ? Car je ne vois que "Bientôt disponibles" dans la description de la vidéo.
    Merci d'avance pour ta réponse et continue ton contenu de qualité !

  • @julieletourneur1403
    @julieletourneur1403 Před 3 lety +1

    Merci de ouf !!!

  • @goupil2944
    @goupil2944 Před 4 lety +1

    Merci beaucoup c'est top

  • @calebprime6111
    @calebprime6111 Před 2 lety

    Elles sont superbes tes vidéos ! 😄

  • @borunzhou5076
    @borunzhou5076 Před 2 lety +1

    trop cool

  • @kaf_yt7546
    @kaf_yt7546 Před 2 lety

    merci beaucoup !

  • @arsenedydykouadio1520
    @arsenedydykouadio1520 Před 2 lety

    superbe video mais et les exercice interactifs sur les fonctions

  • @papamoustaphandongo625
    @papamoustaphandongo625 Před 5 lety +4

    merci beaucaup j'adore vos tutos et bonne continuation.
    mais vous ne faites pas de python

    • @primfxdesign
      @primfxdesign  Před 5 lety +1

      Merci ! Je ne fais pas de tutos sur Python pour l'instant, mais un jour, peut-être... 😏😁

  • @2d_haiti
    @2d_haiti Před 3 lety

    Merci beaucoup

  • @9chvx
    @9chvx Před rokem

    prout.... merci

  • @Issam-sk5qp
    @Issam-sk5qp Před 3 lety +2

    Petite question nous notre prof nous oblige a mettre les fonctions que l'on crée en dessous du main sur codblocks et sa marche quand même comment c possible ?

    • @Nico14801
      @Nico14801 Před 3 měsíci

      Avec sa déclaration faite en reprenant le prototype en début de source fini par le caractère ;
      Si la déclaration est faite la fonction peut être utilisée partout en-dessous du prototype.

  • @momomuscu1261
    @momomuscu1261 Před 4 lety +2

    Salut , je ne comprend pas le return 0 , faut-il le mettre à chaque fois ?

    • @mathisvillard6832
      @mathisvillard6832 Před 4 lety +4

      Dans la fonction "main" , il faut toujours mettre le return 0 à la fin ou return EXIT_SUCCESS pour signaler la fin du programme. Par contre, dans les autres fonctions, tu ne retournes généralement pas 0 mais la variable que tu veux retourner.

  • @israeltientcheu4617
    @israeltientcheu4617 Před 3 lety

    Merci beaucoup pour ta vidéo. J'en ai tirer beaucoup d'avantages par rapport a mes autres connaissances. A tu déjà fait en passant un long code bien complexe pour nous?

  • @adilvideo
    @adilvideo Před 8 měsíci

    utilisation du mot clé goto pour les fonctions !

  • @ibrahimfall2673
    @ibrahimfall2673 Před 3 lety

    j'ai un soucis avec mon Vs code, il signal une erreur "void function" c'est du a quoi ?

  • @tomgillet2763
    @tomgillet2763 Před 4 lety

    Bonjour, j ai une question concernant la fonction sur le carré. Dans les paramètres de cette fonction tu mets " int n". Mais à quoi correspond ce "n"? Prck je ne comprends pas pq elle n est pas réutilisé comme variable ou quoi dans la fonction main..

    • @roby47
      @roby47 Před 4 lety

      C'est juste pour donner un nom, elle représente rien.

    • @alexraideur7793
      @alexraideur7793 Před 2 lety

      Quand tu déclares une fonction, ici
      int carre(int n){...}
      tout ce qui se trouve dans les paranthèses sont les arguments qui devront être renseignés lors de l'appel de la fonction. Quand tu définis la fonction, il n'a donc pas de valeur particulière, et est utilisé en tant que variable uniquement afin de définir les instructions et le return.
      Il est uniquement remplacé par une valeur lors de l'appel de la fonction dans le main(), par exemple quand tu écris
      int a = carre(3);
      la fonction sera appelée avec n=3, et toutes les instructions à l'intérieur de la fonction seront executées en remplacant n par 3

  • @donPEREdone
    @donPEREdone Před 2 lety

    Autre point qui me pose problème et que j'ai du mal à assimiler. On colle "n" dans la fonction (choix pas forcément judicieux pour des débutants, puisqu'on utilise
    aussi pour le retour chariot, toute source d'embrouille, même dérisoire est une mauvaise idée quand on enseigne à des débutants, mais bref...). Comment diable le logiciel fait le lien en ce paramètre "n" et notre variable "a". Ok, les variables sont locales et là c'est facile, il n'y en a qu'une. Mais le lien n'a rien d'évident quand on débute. Comment ça se passe quand on a plusieurs variables, qu'est ce qui détermine la distribution des variables dans la fonction ? Disons qu'au lieu d'avoir "a" nous aurions a, b, c et dans la fonction nous aurions x et y (c'est là que je coince en générale et pire encore dans les boucles imbriquées)... Le lien entre les deux n'a rien d'évident d'un coup. Très souvent on a du mal à retrouver les liens entre données du main et données dans la fonction. Quelle est la logique de tout ça. J'ai l'intuition que si je comprends au lieu de recopier bêtement, ça ira nettement mieux après :)

    • @alexraideur7793
      @alexraideur7793 Před 2 lety +1

      Pour ce qui est du "n", c'est juste qu'en général en mathématiques on utilise n comme inconnue pour les nombres entiers, mais dans ce cas tu pourrais le remplacer par une autre lettre (x, y, etc).
      Pour ce qui est du lien entre les variables: quand tu définis ta fonction carre:
      int carre(int n){
      return n*n;
      }
      à ce niveau là, 'n' n'est utilisé que de manière abstraite, il n'a pas encore de valeur. Tu définis juste que quand la fonction sera appelée avec une valeur, elle viendra remplacer 'n' partout où il apparaît dans la fonction.
      Par exemple lors d'un appel de la fonction pour calculer le carré de 3, tu vas rentrer
      resultat = carre(3);
      et le programme va alors appeler la fonction "carre" en remplacement l'entier 'n' par l'entier 3:
      int carre (3){
      return 3*3:
      }
      il va donc retourner le résultat de 3*3=9.
      Ici, on fait resultat=carre(a); donc le programme remplace 'n' par 'a' qu'on a défini avant, de même qu'avec 3.
      Si tu appelles de nouveau la fonction avec b,c,d ou toute autre variable, 'n' sera remplacé par la valeur de cette variable dans la fonction. C'est pareil si la fonction possède plusieurs paramètres (x, y, ...) au lieu de remplacer uniquement n, le programme remplacera tous les paramètres.
      Par exemple ici, quand on fait maximum(50,10) (50 et 10 sont les valeurs de a et b remplacées après le scanf), le programme remplace a par 50 et b par 10 dans la fonction "maximum" pour exécuter les instructions.
      Ici, il n'y a pas d'ambiguïté entre le 'a' défini dans "maximum" et le 'a' défini dans le main() car comme tu le dis, ce sont des variables locales, le a du maximum n'est défini que dans maximum, et le a du main() que dans le main().
      J'espère avoir été clair et avoir répondu à ta question!

  • @helenemuller6668
    @helenemuller6668 Před 2 lety

    Quand j'ai entendu "fonction" j'ai crue que on appelle d'autres fichiers comme en mcfunction !

  • @donPEREdone
    @donPEREdone Před 2 lety

    C'est ça qui est compliqué au départ. "La fonction ne renvoie rien...". Bah... Si, bien sûr. Elle renvoie "bonjour". Sinon pourquoi on s'est fait c... à faire une fonction ? Et là, on est vraiment perplexe. En fait (si j'ai bien compris) ce n'est pas vraiment qu'elle ne "renvoie rien", c'est plutôt que l'instruction "return" ne concerne que des chiffres (int, float, char, etc...). "Bonjour!" n'est pas considéré comme un chiffre, donc ne rentre pas dans le cadre d'une instruction "return". En tout cas, si j'ai bien compris (rien n'est moins sûr) :)

    • @alexraideur7793
      @alexraideur7793 Před 2 lety +1

      En fait, quand on dit qu'un fonction "renvoie" ou "retourne" (return en anglais) une valeur, cela signifie que l'appel à la fonction va permettre de récupérer une valeur.
      Par exemple, je peux définir une fonction qui peut sembler à première vue faire la même chose de trois manières différentes:
      int renvoyer2(){
      return 2;
      }
      Dans ce cas, je vais pouvoir appeler cette fonction dans mon programme comme une instruction seule dans le main(), mais rien ne se passera a priori. Par contre, je peux affecter la valeur de retour de la fonction à une variable:
      int a = renvoyer2(); //dans ce cas, l'entier a va prendre la valeur 2 car c'est le retour de la fonction (return 2;). Je peux ensuite utiliser ce a dans un printf par exemple.
      void renvoyer2(){
      printf("2");
      }
      Dans ce cas-ci, on est dans le même cas qu'avec afficherBonjour(), c'est à dire que si j'appelle la fonction dans le main, "2" va s'afficher dans la console. Par contre étant de type de retour void, la fonction ne renvoie rien, donc je ne peux pas l'affecter à une variable comme dans le cas précédent. Ici, faire int a = renvoyer2(); te mettra une erreur expliquant qu'un type "int" ne peut pas se voir affecter une valeur de type "void" (type de retour de la fonction).
      int renvoyer2(){
      printf("2");
      return 2;
      }
      Dans ce dernier cas, on reprend les deux cas précédents et l'appel à la fonction affichera "2" dans la console (grâce au printf("2")) et renverra également la valeur 2 qui pourra être affectée à une variable.
      Ce n'est donc pas vraiment ici le problème du type de bonjour, mais plutôt l'appel à un printf qui justifie l'absence de retour. Par exemple dans le cas d'un caractère seul, disons 'L':
      On peut déclarer:
      void afficherL(){
      printf("%c",'L');
      } //on appelle la fonction dans le main(), et L s'affiche dans la console
      Sinon, on déclare:
      char afficherL(){
      return 'L';
      }//si on appelle cette fonction dans le main, rien ne se passe (visuellement tout du moins).
      Par contre dans le main on peut déclarer un char et l'afficher, prenant la valeur de retour de la fonction:
      int main(){
      char x = afficherL();
      printf("%c",x); //on a bien L qui s'affiche
      return 0;
      }
      ou alors on peut utiliser le retour de la fonction directement dans le printf en tant que variable:
      int main(){
      printf("%c",afficherL());
      return 0;
      }
      Voilà, j'espère avoir été clair et avoir répondu à ta question!

    • @donPEREdone
      @donPEREdone Před 2 lety +1

      @@alexraideur7793 merci. Je vais le relire plusieurs fois je pense, ah ah ah. Mais globalement j'ai compris le principe, c'est le principal

  • @drytebow4463
    @drytebow4463 Před 2 lety

    C'est trop rapide.