TUTO C - #10 Les fonctions

Поделиться
HTML-код
  • Опубликовано: 4 окт 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

Комментарии • 43

  • @oliviersse918
    @oliviersse918 3 года назад +27

    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 10 месяцев назад +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 2 года назад

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

  • @sorybakaba8324
    @sorybakaba8324 4 года назад +2

    Wallahi vous savez bien expliquer merci bien de votre excellent travail

  • @gameask1508
    @gameask1508 11 месяцев назад +1

    Merci vidéo très clair

  • @koffirichardgadjenou6795
    @koffirichardgadjenou6795 2 года назад

    Tes tutos sont les meilleurs.

  • @dondidax230
    @dondidax230 3 года назад

    J'aime bien la façon dont vous expliquez

  • @incognito3448
    @incognito3448 3 года назад

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

  • @redtonnhooks4538
    @redtonnhooks4538 4 года назад +2

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

  • @carl_ytb
    @carl_ytb 2 года назад

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

  • @EricBrunoTV
    @EricBrunoTV 3 года назад

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

  • @mbaihiwalaBarthélémydjasrabe
    @mbaihiwalaBarthélémydjasrabe 10 месяцев назад

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

  • @rasmanekagambega5087
    @rasmanekagambega5087 Год назад

    Vraiment c'est super bien !!!!!

  • @Mr.Borz_05
    @Mr.Borz_05 7 месяцев назад

    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 4 года назад +1

    Merci de ouf !!!

  • @borunzhou5076
    @borunzhou5076 2 года назад +1

    trop cool

  • @goupil2944
    @goupil2944 4 года назад +1

    Merci beaucoup c'est top

  • @kaf_yt7546
    @kaf_yt7546 3 года назад

    merci beaucoup !

  • @calebprime6111
    @calebprime6111 2 года назад

    Elles sont superbes tes vidéos ! 😄

  • @papamoustaphandongo625
    @papamoustaphandongo625 5 лет назад +4

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

    • @primfxdesign
      @primfxdesign  5 лет назад +1

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

  • @Nico14801
    @Nico14801 4 месяца назад

    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.

  • @2d_haiti
    @2d_haiti 3 года назад

    Merci beaucoup

  • @arsenedydykouadio1520
    @arsenedydykouadio1520 2 года назад

    superbe video mais et les exercice interactifs sur les fonctions

  • @israeltientcheu4617
    @israeltientcheu4617 3 года назад

    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?

  • @Issam-sk5qp
    @Issam-sk5qp 3 года назад +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 4 месяца назад

      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 4 года назад +2

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

    • @mathisvillard6832
      @mathisvillard6832 4 года назад +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.

  • @9chvx
    @9chvx 2 года назад

    prout.... merci

  • @ibrahimfall2673
    @ibrahimfall2673 3 года назад

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

  • @donPEREdone
    @donPEREdone 2 года назад

    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 2 года назад +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 2 года назад

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

  • @adilvideo
    @adilvideo 9 месяцев назад

    utilisation du mot clé goto pour les fonctions !

  • @tomgillet2763
    @tomgillet2763 4 года назад

    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 4 года назад

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

    • @alexraideur7793
      @alexraideur7793 2 года назад

      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 2 года назад

    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 2 года назад +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 2 года назад +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 2 года назад

    C'est trop rapide.