ça commence à se corser pour moi mais ça reste vraiment intéressant. Très bonne vidéo, vraiment merci de partager tes connaissances avec nous, continue comme ça !
@formation-video4 жыл бұрын
Ne lâche rien et n'hésite pas à faire des petits programmes de ton côté pour mettre ça en pratique 👍
@sylvainly77666 жыл бұрын
Super tutoriel, tes explications sont simples et claires ! On peut facilement regarder la vidéo en 1.25 voir 1.5 sans se perdre ! Merci :)
@formation-video6 жыл бұрын
Oui, voir en accéléré peut se faire sans soucis pour ceux qui comprennent bien le français. Bonne continuation à toi o/ +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@formation-video7 жыл бұрын
Cette séance 17 va nous permettre de découvrir quelques structures de données en langage C. 🔗 Code source d'une Piles (entiers) : bit.ly/2VW5nET 🔗 Code source d'une Pile (joueurs) : bit.ly/30Y3ic0 🔗 Schéma d'une Pile : bit.ly/2O01lH5
@mehdi527837 жыл бұрын
salut, j'ai une question : comment se fait il qu'on peut déclarer une variable de type structure(comme "next") à l'intérieure de la même structure qui la définit ? et ça fonctionne uniquement pour des pointeurs j'ai essayer pour une variable de type int et char ça n'a pas fonctionné.
@youcefkhedim376 жыл бұрын
mon copliateure ne reconé pas tes declaration boolienne vue que j utilise le dev c
@ArmoredCyberNemesis6 жыл бұрын
Coucou Jason, j'ai un problème au niveau de l'énumération / définition de type Bool, les valeurs true et false ne sont pas reconnue par le compilateur de VS 2017. Ce dernier mentionnant : identificateur indéfini. Je ne pense pas que ce soit lié au fait que je code un projet en "Visual" C++ (peut-être différent du C++ conventionnel)
@e-berry5 жыл бұрын
FILO (First In Last Out) peut fonctionner aussi car Le premier qui rentre sera le dernier qui sort :p
@ulrichnelson36366 жыл бұрын
merci infiniment pour ce fameux tutoriel sur la pile. elle me sera très utile . deux choses m'ont vraiment touché sur cette partie . Premièrement, c'est cette façon de subdiviser le programme pour avoir un code plus lisible et plus facile à comprendre. car je me demande bien à quoi aurait ressemblé le code si l'on avait inclue toutes nos fonctions créée dans le fichier (main.c). ahahahaahahah. Enfin j'ai bien pu apprecié l'efficacité sur les pointeurs et pour ma part je pense que c'est l'un des éléments qui fait la puissance de ce langage. Un grand merci JASON bravooooooooooooooooooooooooooooooooooooooooooooo et un grand respect.
@formation-video6 жыл бұрын
Oui, sans les pointeurs, le C perdrait de tout son potentiel, alors il ne faut hésiter à s'en servir à chaque fois que cela est nécessaire, c'est à dire 98% du temps :) +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8/ |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@luniversdugeek91644 жыл бұрын
c'est la premier fois de ma vie que je dois revoir plusieurs fois une vidéo pour comprendre. normalement pour apprendre langage je regarde les vidéo une traite et une seul fois car je n'ai pas le temps.
@formation-video4 жыл бұрын
C'est normal, ça se corse un peu, et ça met en application beaucoup de concepts vus précédemment 👍
@diepvu60456 жыл бұрын
Oh la la, je m'incline devant ce cours de qualité ! Merci beaucoup !!!
@formation-video6 жыл бұрын
Merci à toi pour le commentaire :)
@Atomental_Dr.Forest3 жыл бұрын
Merci beaucoup pour ce tuto très clair ! Bonne continuation !
@formation-video3 жыл бұрын
De rien, à bientôt 👍
@abdoulayebah26528 ай бұрын
Avec toi, je suis sûr et certain de bien Coder en C ! Explications trop cool et très simple
@formation-video8 ай бұрын
Merci et bon courage à toi en C
@patpast97395 жыл бұрын
Bonjour Jason. Alors il y a beaucoup de manipulations que tu fais avec les pointeurs, mais je ne les comprends pas tous. Par exemple à 30:16 lorsque tu crées une fonction print_stack pour afficher la pile dans la console, je vois bien que tu parcours toute la pile avec une boucle while mais l'action que tu fais après le print, le "st = st->next" si j'ai bien compris, ça modifie la pile pointée par st vu que celui-ci est un pointeur? Donc je pense avoir mal compris (puisque la fonction marche), mais pourquoi la pile ne se détruit pas à chaque fois que la fonction fini de s'exécuter?
@formation-video5 жыл бұрын
Bonjour, l'instruction st = st->next permet de déplacer le "curseur" (l'endroit où l'on se situe pour le parcours sur l'élément suivant). En gros, on commence du premier élément (avec lequel on fera nos traitement), puis on passe à l'élément suivant, jusqu'à arriver à la fin (quand st->next vaut NULL). Par ailleurs, la Pile n'a aucune raison d'être détruite puisque nous passons un pointeur vers celle-ci dans nos fonctions. Ce qui sera détruit à la fin de la fonction, c'et le pointeur qui a été créé au départ de celle-ci, pas la structure elle-même 🙂 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 🔵 Rejoindre FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@ichinosevoid90345 жыл бұрын
Bonjour/soir , je ne comprend pas la présence de ce pointeur ici 8:35 , il n’est pas défini et pointe sur rien (tu as dit qu'il pointe sur la pile mais d'où on sait ça), je ne comprend donc pas sa présence et je ne comprend pas non-lus l'utilité de *next (enfin tu l'as dit c'est pour passer a la pile d'en dessous) mais d'où on sait ça, comment ça se fait ?
@formation-video5 жыл бұрын
En fait, je définis une double syntaxe pour ma structure de Pile. En gros, StackElement est une struct Stack, et Stack également. Dans la structure elle-même, chaque élément de la pile doit être lié aux autres (sinon, chaque élément serait isolée et nous n'aurions aucune structure, mais que des variables isolées). Donc, on indique que chaque "maillon" (élément) de la Pile pointe vers un autre élément (sinon NULL). Ce chaînage est nécessaire pour établir la liaison de nos éléments (tu retrouveras le même principe avec une File, une Liste, ou autre...) et permet de parcourir la structure (du premier au dernier élément). +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@jessysaintauret36157 жыл бұрын
Salut à 18:30 tu fais l'allocation dynamique et je me demande pourquoi dans l'argument du sizeof tu utilise * element et non StackElement* , sachant que pour moi StackElement* est un pointeur de type StackElement et * element le déréferencement d'élément. Du coup j'ai comparé le résultat du sizeof(StackElement*) et sizeof(*element) et ce dernier est plus grand en plus si je comprend bien *element retourne ce qui est contenu à cette adresse et à cette adresse il y a une structure de type StackElement sans préciser l'adresse de next ou la valeur de cette élément.
@formation-video7 жыл бұрын
Bonsoir :). En temps normal, tu pourrais remplacer le "*element" du sizeof() non pas par "StackElement*" mais "StackElement" tout court (sans l'étoile). Or, j'ai pris l'habitude de mettre directement le nom du pointeur pour l'allocation plutôt que le type. De cette façon, si je venais un jour à changer le nom du type, je n'aurais pas à toucher aux allocations, c'est tout. Donc, tu peux sans problème faire un *malloc(sizeof(StackElement))* si tu le souhaites.
@ericleguen471813 күн бұрын
Hello!, à 30:30 dans print_stack(Stack st) peut-on se passer du 'return' et coder comme cela ? : void print_stack(Stack st) { if(is_empty_stack(st)) printf("Rien à afficher, la pile est vide. "); while(!is_empty_stack(st)) { printf("[%d] ", st->value); st = st->next; } } Merci ! 😁
@formation-video10 күн бұрын
Bonjour, oui, tu peux. La différence ici est que ton code vérifiera la condition de la boucle.
@armelfiavor10 ай бұрын
merci infiniment pour tout
@formation-video10 ай бұрын
👍
@armelfiavor10 ай бұрын
J'ai clisurle lien mai j'a pas pu télécharger le code source mais grâce à votre explication j'ai pu implémenter correctement le code de A à Z. Encore une fois merci.
@formation-video10 ай бұрын
Bonne continuation
@sir_nobody51993 ай бұрын
Superbe vidéo encore une fois! J'ai bien aimé la Structure de player à la fin! CHOUBACCA, sympa comme pseudo Ahahaha XD
@formation-video3 ай бұрын
👍
@jean-jacqueskonan24884 жыл бұрын
bonsoir monsieur j'ai un problème d'inconpréhension au niveau de la fonction clear_stack à la 25:29 en faisant free(st) pourquoi cela ne vide pas toute la pile puisque la pile c'est st moi j'aurais fais free(element) et j'aurais fais une erreur svp eclairez moi
@formation-video4 жыл бұрын
Parce que si tu regardes bien, on a alloué un espace (malloc) pour chaque élément de la Pile. Il faut donc naturellement libérer (free) chaque élément à son tour. ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@jean-jacqueskonan24884 жыл бұрын
@@formation-video je vois mais je ne sais pas si j'ai pas encore compris mais liberé la pile ( free(stack) ) c'est aussi la libéré de tout ses éléments pourquoi rappeler alors la fonction en retournant stack_element puisqu'il n'en a plus dans le pile
@formation-video4 жыл бұрын
Pour faire simple, tu dois faire autant de free() que tu as fait de malloc(), donc pas qu'un seul 😉 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@jean-jacqueskonan24884 жыл бұрын
@@formation-video je comprend bien ce fait je pense que ne saurais expliquer par écrit ce que je pense il y'aurait-il un moyen de vous joindre svp svp!!!!!!!
@abdulkabir_025 жыл бұрын
Encore une fois merci bien Jason :)
@formation-video5 жыл бұрын
De rien, à bientôt 👍 +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@Sow_sow20243 жыл бұрын
bonjour, comment vous faites pour ouvrir +sieurs fichiers en même temps sur une seule console? j'ai la peine d'ouvrir +sieurs fichiers sur linux.
@formation-video3 жыл бұрын
Bonjour, comment ça ouvrir plusieurs fichiers sur la console ?
@bensimplement94554 жыл бұрын
Bonsoir, J'ai une question au sur la nouvelle structure player car je ne comprends pas. En effet, 45'33" il faut créer un nouveau header pour cette nouvelle structure. Pourquoi? pourtant cette structure est utilisée par l'autre ou plutôt les deux structures forment la pile...
@formation-video4 жыл бұрын
Qu'est-ce que tu ne comprends pas ?
@davidgoldman51445 жыл бұрын
à 9:14 je ne comprends pas la ligne " struct StackElement *next " pourtant j'ai revus et bien compris la vidéo des pointeurs. Je dirais que le pointeur next pointe vers la structure StackElement mais je ne suis absolument pas sur. Peux-tu me corriger stp? Merci d'avance! Et au passage, super vidéo, comme toutes les autres d'ailleurs...
@formation-video5 жыл бұрын
Bonsoir, en fait "next" est un pointeur vers une donnée de type "StackElement". Car un Pile, dans l'implémentation proposée, qu'est-ce que c'est ? - Pile vide = NULL - Stack avec 1 seul élément = Pile - Stack avec 2 éléments = Pile - Stack avec 100 élements = Pile. Donc, pour chaîner chaque élément dans une Pile, le pointeur "next" pointe sur un autre élément de Pile (StackElement), sinon NULL (on est au bout de la Pile). +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@Turkish_coffee_424 жыл бұрын
@@formation-video excusez moi, je ne comprends pas au niveau du pointeur: celui ci est de type stackelement, mais il peut pointer des piles de plusieurs tailles differentes si j'ai bien compris, est ce logique qu'un pointeur d'espace fixe ici 4 bits puisse pointer plusieurs piles de tailles differentes ? merci,
@yesno60426 жыл бұрын
Bonjour , svp dans popstack() vous avez fait un free(st) alors que vous n'avez pas déclaré de tableau dynamique dans cette fonction comment ça se fait ?
@formation-video6 жыл бұрын
Si tu as bien regardé le code, on travaille toujours sur la même Pile, donc celle que tu nous avons créé au départ (en faisant des allocations avec malloc). +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@sa3don19986 жыл бұрын
dans la fonction afficher comme dans length tu as parcouru la pile or dans la notion de pile on a pas le droit de parcourir non ? (on vide plutot la pile dans une autre et on remet )
@formation-video6 жыл бұрын
Non, il est tout à fait possible d'afficher une Pile, que ce soit en remplissant une autre ou en la parcourant. Le principe de la Pile doit surtout respecter le fait que tu ne pourras dépiler que la dernière donnée qui a été empilée. Donc remplissage par le haut.
@garagedesexpos545006 жыл бұрын
Titoonis
@theobdr599 Жыл бұрын
Bonjour il y a un truc que je ne comprends pas dans la fonction servant à afficher la pile. J'ai l'impression que la boucle while vide la pile puisque la condition est "while (!empty_stack(st))" et pourtant quand on demande si la pile contient des elements apres son affichage la réponde et que oui il y a bien 47 et 14 dans la pile.
@formation-video Жыл бұрын
Bonjour, refais-toi l'algorithme dans ta tête (ou en faisant un schéma) en prenant l'ensemble du code de la fonction d'affichage, et tu comprendras 😉
@Low_Han Жыл бұрын
Bonjour, la fonction d'affichage ne modifie pas la pile puisqu'elle ne renvoie rien en retour. Donc si tu demandes grâce à la fonction "is_empty_stack" si ta pile est vide après l'avoir affichée, c'est normal que le programme te dise qu'elle n'est pas vide.
@theobdr599 Жыл бұрын
@@Low_Han ah ouai ok merci
@sa3don19986 жыл бұрын
dans la fonction d'affichage tu fais st=st->next , or c'est un pointeur , cela n'affecte pas la suite (tu perd pas ta tete de pile) apres l'execution de la fonction ? et si on voulait que par exemple notre st a la sortie change on met come entree Stack* st ?
@sa3don19986 жыл бұрын
tout comme dans lenght le fait de faire st=st->next cela ne te fais pas perdre la tete de la pile ?
@formation-video6 жыл бұрын
Le but n'est pas de perdre les données de la Pile, juste de les parcourir de la première à la dernière pour les afficher, ou compter le nombre d'élements. On ne fait donc que déplacer un pointeur sur chaque élément, rien de plus ;)
@sa3don19986 жыл бұрын
oui mais le fait de deplacer le pointeur ne te fera pas perdre l'adresse de l'element de tete ?
@formation-video6 жыл бұрын
Non du tout ;)
@massyle51987 жыл бұрын
Salut, le compilateur me met ça quand je compile : C:\Users\massy\AppData\Local\Temp\cca3OPEP.o:piles.c:(.text+0xf): undefined refe rence to `new_stack' C:\Users\massy\AppData\Local\Temp\cca3OPEP.o:piles.c:(.text+0x33): undefined ref erence to `add_stack' C:\Users\massy\AppData\Local\Temp\cca3OPEP.o:piles.c:(.text+0x47): undefined ref erence to `add_stack' collect2.exe: error: ld returned 1 exit status Pourquoi donc ?
@formation-video7 жыл бұрын
Vérifie que tu as bien fait les includes comme dans la vidéo. Et de bien compiler en faisant -> gcc *.c -o prog
@baptiste_g87592 жыл бұрын
merci beaucoup, toujours aussi utile !
@formation-video2 жыл бұрын
De rien, bonne suite du cours ✌
@ArmoredCyberNemesis6 жыл бұрын
Bonsoir Jason, j'ai un problème avec l'énumération / définition de type Bool, les valeurs true et false ne sont pas reconnue par le compilateur de VS 2017. Ce dernier mentionnant : identificateur indéfini. C'est vraiment curieux car ta manière est censée fonctionner de partout comme tu l'as si bien dit. Je ne pense pas que ce soit par ce que je code un projet Visual C++ (différent du C++ conventionnel)
@formation-video6 жыл бұрын
Bonjour, c'est Visual Studio qui ne doit pas accepter cette syntaxe. L'IDE ne te propose-t-il pas une autre syntaxe ? Ou même de directement utiliser le type bool introduit par la suite en standard dans le langage C ?
@ArmoredCyberNemesis6 жыл бұрын
FormationVidéo Il est en effet possible d'utiliser le type Book sans passer par l'énum mais VS2017 n'aime pas non plus l'alloc mémoire d' *élément, il mais que l'assignation (le égal) pose problème : element = malloc(sizeof(*element)); Merci encore ^^
@formation-video6 жыл бұрын
Alors soit ton VS2017 est mal configuré, soit il faut changer d'IDE. Car la syntaxe pour le malloc est évidemment correcte :)
@tirsportifequitation73883 жыл бұрын
Merci beaucoup pour ces cours sur le langage C! J'ai encore quelques lacunes mais je pense qu'à force de répéter ça ira, en tout cas ta formation m'est très utile et je compte bien continuer!
@formation-video3 жыл бұрын
De rien, et en effet, n'hésite pas à t'exercer, faire des petits programmes, voire des projets, expérimenter, tester ce que tu apprends et voir ce que tu comprends de tout ça à l'arrivée 🙂
@tirsportifequitation73883 жыл бұрын
@@formation-video Oui en plus jusqu'à maintenant je ne faisais que visionner les cours (de peur d'endommager mon pc en cas d'erreur ^^) mais il faudrait que je teste moi même aussi en même temps que le cours ce serait mieux, merci pour ta réponse!
@formation-video3 жыл бұрын
Oui, c'est clair, et puis tu ne vas pas endommager ton PC ;)
@tirsportifequitation73883 жыл бұрын
@@formation-video génial alors!!
@jerrygerrard28863 жыл бұрын
Aaaahhhhhhhh, Merci beaucoup!
@formation-video3 жыл бұрын
De rien ;)
@diepvu60457 жыл бұрын
Salut, quand je compile en tapant gcc *.c -o prg , Windows me retourne une erreur pour "*.c" argument invalide. Je ne comprends pas pourquoi du coup. Merci
@formation-video7 жыл бұрын
Quelle est l'erreur exacte que t'affiche le terminal ?
@diepvu60457 жыл бұрын
sortie de l'écran: Microsoft Windows [version 10.0.16299.125] (c) 2017 Microsoft Corporation. Tous droits réservés. C:\Users\HoangDiep\Desktop\TP_C\Nouveau dossier\PILES>gcc *.c -o prog gcc: error: *.c: Invalid argument gcc: fatal error: no input files compilation terminated. Voilà :(
@diepvu60457 жыл бұрын
Dans mon dossier PILES il y a bien les 2 fichiers .c (et pile.h)
@formation-video7 жыл бұрын
Et tu as bien encodé tes fichiers en UTF-8 ?
@diepvu60457 жыл бұрын
Oui j'ai suivi tes instructions de la Première vidéo.
@YannAriell3 жыл бұрын
9:16 j'ai pas bien compris le pointeur sur l'élément suivant
@formation-video3 жыл бұрын
C'est ce qui permet de faire la liaison entre chaque élément de la Pile
@lemondeestloeuvredunenfant46337 жыл бұрын
Salut. Je ne comprends pas comment tu peux utiliser Stack comme type quand tu définis ta fonction pour créer une nouvelle pile, alors que quand tu as définis ta structure, tu as donné deux noms possibles : StackElement et *Stack, mais pas Stack tout seul. Stack new_stack(void). Je comprends bien qu'il y-a plusieurs d'utiliser un pointeur et que tu peux ne pas mettre l'étoile devant, et dans ce cas tu obtiens non pas la valeur de la variable pointée, mais l'adresse où elle se trouve. Pourtant, ici ce pointeur est le nom d'un type, alors Stack tout seul n'est pas définit comme un nom de type de variable, alors comment se fait-il que tu puisses créer une fonction avec comme Stack comme type de retour ? Merci d'avance si tu peux apporter une réponse.
@formation-video7 жыл бұрын
Je réponds sur ton autre commentaire alors ;)
@massyle51987 жыл бұрын
Bonjour, ce que je n'arrive pas à comprendre, c'est le " *Stack " que tu as ajouté à l'énonciation de la structure de la pile. Tu dis qu'on "cache le pointeur" , ça non plus je comprends pas. Merci d'avance ! :)
@formation-video7 жыл бұрын
Bonsoir, si je ne mettais pas cette syntaxe, il faudrait écrire la structure en faisant : Stack *st (au lieu de Stack st) et d'autres changements dans le code. En le masquant, on évite les erreurs d'oubli de l'étoile par exemple, c'est tout :)
@massyle51987 жыл бұрын
Ah d'accord, donc pour la machine " StackElement" et "*Stack" c'est exactement la même chose, non ?
@formation-video7 жыл бұрын
Oui, la même structure :)
@massyle51987 жыл бұрын
Voilà c'était pour être sûr, désolé pour la question bête xD. Merci ! :)
@formation-video7 жыл бұрын
Il n'y a jamais de question bête =)
@Sowghaii7 жыл бұрын
Bonjour, j'ai une question, je ne comprends pas l'utilité d'une pile si celle-ci est structurée de la même façon qu'une liste. En fait, ce que je veux dire, c'est que la fonction push_stack est la même que insertHead d'une liste chainée d'entier, alors qu'est-ce qui différencie ces 2 méthodes ?
@formation-video7 жыл бұрын
Bonjour, tout dépend de l'implémentation que les gens veulent en faire. Grosso-modo, on a 3 types de structures : Pile : on ajoute des données par l'avant, et on retire par l'avant (la première donnée à avoir été insérée sera la dernière à être retirée). File : on ajoute des données par l'arrière, et on retire de l'avant (la première donnée à avoir été insérée sera la première à être retirée). Liste : plus flexible, elle ne suit pas de contrainte particulière (on peut ajouter/supprimer depuis le début, la fin, et même en plein milieu de la structure). Chaque structure répond donc à des besoins spécifiques :)
@Sowghaii7 жыл бұрын
C'est compris, merci pour votre réponse :)
@formation-video7 жыл бұрын
De rien ;)
@lagiti8346 жыл бұрын
Dans clear_stack(Stack st), je me demande et si on avait placé free(st) avant element= st ->next, est-ce qu'il efface toute les piles.?
@formation-video6 жыл бұрын
Non, ça ne supprimerait que l'élément courant de la Pile (le premier en l'occurence). Oublie pas qu'on a fait un malloc() à chaque fois qu'on ajoute un élément à la Pile. Donc il faut autant de free()
@malix316 жыл бұрын
Salut pour quoi tu n'as pas utililse la bibliotheque stdbool.h pour declarer le type booleen ? y a til une raison ?
@formation-video6 жыл бұрын
Bonjour, parce que sur les anciennes normes, elle n'existait pas, et comme je ne peux pas garantir que les internautes l'auront, en créant le type, je suis sûr que ça fonctionnera chez tout le monde (et ça permet au passage de voir une application de l'énumération) 😉 +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@malix316 жыл бұрын
Cool merci pour l’information
@formation-video6 жыл бұрын
De rien +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@zawette7 жыл бұрын
Salut, je ne comprends pas pourquoi le fichier main.c fonctionne sans include stack.c c'est bien stack.c qui contient la fonction new_stack() n'est ce pas , stack.h ne contient que le prototype de la fonction , de plus stack.c inclus stack.h , pourquoi pas ne pas l'inclure dans main.c au lieu de stack.h merci !
@formation-video7 жыл бұрын
Bonsoir, Un include permet d'ajouter un fichier d'en-tête, et un fichier ".c" n'en est pas un, il s'agit d'un fichier source. Donc, chaque fichier source doit inclure les fichiers d'en-tête et bibliothèques dont il a besoin.
@zawette7 жыл бұрын
Merci pour la réponse rapide ! du coup il suffit d'avoir le fichier stack.c dans le même répertoire que main.c
@formation-video7 жыл бұрын
Voilà. Pour le compilateur, tant qu'il connaît l'existence des fonctions (via le prototype), il saura retrouver celle-ci pour compiler le tout comme il faut et te faire un exécutable fonctionnel :). Ne pas oublier que pour la machine, y'a pas de fonctions en réalité, ce ne sont que des adresses en mémoire, y compris pour les variables.
@zawette7 жыл бұрын
FormationVidéo c'est compris merci!
@formation-video7 жыл бұрын
De rien :)
@stevekasongo88235 жыл бұрын
bonjour grand frère, merci pour la formation que le grand Dieu vous bénisse
@formation-video5 жыл бұрын
Merci à toi 🙂 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@axelb79217 жыл бұрын
Bonjour ! Je voulais savoir pourquoi l'invite de commande marque le message ci-après lorsque que je tente de compiler le programme "piles" ? Je suis sous windows 10, si cela peut bien évidemment aider ^^ Merci de votre compréhension.. C:\Users\blute\AppData\Local\Temp\cc7dOG3Y.o:main.c:(.text+0xf): undefined reference to `new_stack' C:\Users\blute\AppData\Local\Temp\cc7dOG3Y.o:main.c:(.text+0x1f): undefined reference to `is_empty_stack' collect2.exe: error: ld returned 1 exit status
@formation-video7 жыл бұрын
Bonsoir, dans l'archive fournie, tu as les fichiers "stack.c" et "stack.h". Tu peux donc créer un fichier "main.c" avec la fonction main() dedans (comme j'ai fait dans la vidéo). Toujours dans ce fichier, il ne faut pas oublier au début d'ajouter la ligne *#include** "stack.h"* pour inclure le fichier d'en-tête de la Pile, sinon les fonctions ne seront pas trouvées par le compilateur, d'où ton message d'erreur.
@axelb79217 жыл бұрын
Le problème persiste alors que la configuration est telle que tu l'énonce dans ton message... Toujours le même message... Y aurait t-il un autre moyen ? C:\Users\blute\Desktop\Codage\Piles>gcc main.c -o prog C:\Users\blute\AppData\Local\Temp\cctFSDxv.o:main.c:(.text+0xf): undefined reference to `new_stack' C:\Users\blute\AppData\Local\Temp\cctFSDxv.o:main.c:(.text+0x1f): undefined reference to `is_empty_stack' collect2.exe: error: ld returned 1 exit status
@axelb79217 жыл бұрын
Erreur d'étourderie... Je viens de trouver la subtilité ^^ Très bonne soirée PS : Une excellent travail côté réalisation vidéo ainsi qu'une solide pédagogie à en faire trembler certains professeurs ^^ Bonne continuation...
@formation-video7 жыл бұрын
Ah, bien que ce soit bon enfin de ton côté, bonne continuation :) !
@EnThib10 ай бұрын
Petite question, pour les stacks, on reféfini à chaque fois la variable stack pour mettre à jour notre pile mais dans ce cas ne serait-il pas plus opti de passer par l'adresse de la stack et de la manipuler via des pointeurs au lieu de ce passage par valeur ?
@formation-video10 ай бұрын
Regarde comment est définie la structure de la Pile
@EnThib10 ай бұрын
@@formation-video ok je comprend un petit rafraîchissement de mémoire sur les structures et les pointeurs dans les structures n'était pas de trop 😅 Merci pour ta réponse
@formation-video10 ай бұрын
👍
@barbeblanche15812 жыл бұрын
Est ce que *Stack et StackElement, c'est la même chose ? Je comprends pas pourquoi il y en a deux, et pourquoi l'un est un pointeur et pas l'autre ?
@formation-video2 жыл бұрын
Stackement est un alias de Stack, c'est le principe du typedef 👍. C'est juste pour avoir deux nommages et que ce soit plus lisible au niveau du code (si on voit Stack, on pensera à la pile complète, et si on voit StackElement, on pensera à un seul élément d'une pile)
@barbeblanche15812 жыл бұрын
@@formation-video Mais pourquoi lorsque je remplace Stack par StackElement, j'ai une erreur ?
@formation-video2 жыл бұрын
Si tu as bien regardé. Avec la notation "Stack", pas de pointeur indiqué, mais avec "StackElement", oui
@barbeblanche15812 жыл бұрын
@@formation-video donc je met un & devant ? Et sinon, j'ai une question, pourquoi on met un *devant une fonction et c'est quoi la différence ? Merci pour tes réponses.
@formation-video2 жыл бұрын
Non : pastebin.com/hUsmXJDu Si une fonction a comme type de retour int* par exemple, cela veut simplement dire qu'elle renvoie un pointeur sur int (entier).
@fatal-et4 жыл бұрын
Bonjour Jason, J'ai suivi ton programme et au moment de la compilation, j'ai un warning "assignement makes pointer from integer without a cast" à la ligne qui flush la pile dans le main. Cela dit le programme s'execute quand même sans erreur. As-tu une explication de ce warning ? Merci
@formation-video4 жыл бұрын
Bonjour, peux-tu montrer le code ? Car cette erreur risque de poser problème pour l'exécution, il faudrait la corriger ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@oussamamahmoudi33696 жыл бұрын
Prof, a propos d'une fonction de trie d'une pile on va faire la comparaison entre value ET next et on les permutes. C'est possible sur une pile??
@formation-video6 жыл бұрын
Non, pas comme est conçue la structure. Une Pile n'est pas une structure conçue pour faire du tri, car on empile des valeurs par un côté, et on dépile par ce même côté. Si tu veux une structure triée, il faudra plutôt travailler avec une liste
@formation-video6 жыл бұрын
Mais oui sinon, dans le principe, il suffirait de permuter les valeurs de deux maillons de la Pile. Exemple st->value avec st->next->value
@oussamamahmoudi33696 жыл бұрын
FormationVidéo Merci j'ai compris prof, Sinon si j'ai bien compris le pointeur Des piles pointe sur L'element precedent et celui des files pointe sur le prochain non?? Pardon pour le derangement
@formation-video6 жыл бұрын
Non, la Pile et la File utilisent le même système de pointeur vers l'élément suivant. Ce qui change entre les deux, c'est l'ordre d'insertion et suppression d’élément :)
@lianawassouf69706 жыл бұрын
Bonsoir, J'ai commencé par la création du pile mais quand j'ai compilé le code, j'avais toujours deux erreurs le premier : error: expected identifier or '(' before 'float' float decimal et le deuxième : error: expected ':', ',', ';', '}' or '__attribute__' before '{' token { Merci pour me répondre si vous avez une idée des ces erreurs.
@lianawassouf69706 жыл бұрын
c'est réglé, c'était des erreurs des autres fichier c qui sont dans le même dossier. J'ai crée un nouveau dossier et j'ai mis dedans que les fichier du travail sur le pile.
@formation-video6 жыл бұрын
OK, ça ne devait pas être grand chose alors :) +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@footix-afr6 жыл бұрын
Salut. J'ai un soucie avec l'allocation dynamique. Je ne vois meme pas les valeurs entrées
@formation-video6 жыл бұрын
Bonsoir, n'hésite pas à montrer ton code (en t'aidant du site pastebin par exemple) pour voir où tu peux avoir une erreur :) +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@footix-afr6 жыл бұрын
Ok. Je le de suite
@formation-video6 жыл бұрын
D'accord +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@footix-afr6 жыл бұрын
J'ai essayer de vous contacter sur switch. Avec le username Nanitelamio
@footix-afr6 жыл бұрын
Et su votres site web. Je n'ai pas trouvé un espace appropie pour paster mon code
@Valdez_1er Жыл бұрын
Bonjour je comprends pas pourquoi apres avoir par exemple dépiler le 31, puis le 23 le programme dit que la pile est vide pourtant on a encore deux éléments
@formation-video Жыл бұрын
Bonjour, quel moment de la vidéo exactement ?
@yassineabdelmoula13755 жыл бұрын
Salut :) , est ce qu'il est possible que je puisse utiliser le nom de la pile "stackElement" dans les fonction et non pas "stack" , sinon pourquoi ? merci vraiment !
@formation-video5 жыл бұрын
Oui, tu peux bien nommer les choses comme tu le veux et adapter la structure comme tu préfères 🙂 +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@kallax6087 Жыл бұрын
Bonjour, il semblerai qu'il y a une erreur sur le schéma à 25:40, on crée d'abord l'élément contenant la valeur 31, donc le sommet serait plutôt en bas ? En tout cas, j'adore vos vidéos ça m'aide à comprendre beaucoup plus de choses sur le C !
@formation-video Жыл бұрын
Bonjour, non, le sommet de la pile, c'est le dernier élément qui a été ajouté à la pile (et celui qui sera le premier a être dépilé). C'est pour cela qu'il faut vraiment le voir comme une pile d'objets. Le sommet d'une pile n'est jamais l'élément qui se trouve tout en bas de celle-ci 😉
@amina63477 жыл бұрын
salam, Svp monsieur on peut avoir un exemple sur la pile pleine!? Merci !
@formation-video7 жыл бұрын
Bonjour, comment ça ?
@amina63477 жыл бұрын
je veut dire si c'est possible de ns donner un exemple quand il y a une pile pleine ou d'une autre façon, le test d'une pile pleine Pardon pour le dérangement et je vs remercie monsieur :-)
@formation-video7 жыл бұрын
Dans mon code, tu vois que je n'ai pas mis de limite à la Pile. Si tu veux adapter la structure à cela, tu peux utiliser une variable de type "int max_size" en mettant une valeur que tu veux. Ensuite, il te suffira simplement de faire une fonction qui teste à chaque fois si on a atteint la taille max (quand on veut ajouter un élément notamment).
@amina63477 жыл бұрын
ça c pour les piles à la représentation contigus?
@formation-video7 жыл бұрын
Oui, le principe même d'une Pile
@Dmoniste647 жыл бұрын
Salut, j'ai une question.A quoi ça sert de mettre "structure StackElement *next" à l'intérieur de la première structure ?Je ne me souvient pas que tu en ais parlé dans le cour "structure et type".
@formation-video7 жыл бұрын
Pour le maillon suivant de la Pile. Tu as du comprendre qu'une Pile qui n'a qu'un seul élement est aussi une Pile. Donc, elle a une valeur, et un pointeur vers l'élément suivant, et ainsi de suite. Voilà pourquoi on a donc un pointeur vers une Pile dans une Pile.
@Dmoniste647 жыл бұрын
Merci j'ai enfin compris.
@formation-video7 жыл бұрын
Bien =)
@Joel-mq6ht Жыл бұрын
Bonsoir, lorsqu'on crée notre structure pour la pile et que l'on crée une fonction pour retirer un un élément, le return renvoi t'il une adresse d'un élément de structure crée pour la pile ?
@formation-video Жыл бұрын
Bonjour, la fonction pop_stack() renvoie une "Stack", c'est-à-dire la pile moins l'élément qui a été supprimé, comme expliqué dans la vidéo 👍
@tobidegnon44097 жыл бұрын
Il y a une chose que je ne comprend pas le type "stack" qu'on met avant la fonction push_stack c'est le type de retour n'est ce pas,alors pourquoi vous n'avez rien retourner et pourtant ça marche mais quand moi je fait ceci: stack push_stack(stack st,int x) { stackelement* element=(stackelement*)malloc(sizeof(stackelement)); if(element==NULL) { printf("probleme allocation memoire "); exit(1); } element->value=x; element->next=st; return st; } ça ne marche pas alors que je retourne bien la pile st, ça me met que la pile est vide a chaque fois quand j'exécute Merci bien de me répondre
@formation-video7 жыл бұрын
Bonjour, tu as du mal lire le code, car je retourne pourtant bien une pile, en faisant le *return element*.
@tobidegnon44097 жыл бұрын
vous avez fait un return element,je vais essayer alors,mais je comprends quand même pas pourquoi return st ne marche pas
@tobidegnon44097 жыл бұрын
et selon moi on devait retourné la pile st et non element,c'est la raison pour laquelle on fait sta=push_stack(sta,13) la fonction retourne un stack (une pile) alors pourquoi ça marche pas avec st
@formation-video7 жыл бұрын
Relis bien le code de la fonction. On créée une variable element, qui sera la future pile en fait. Sur la première case, on met la valeur passée à la fonction, et à la suite, on met l'ancienne pile. Donc forcément, si tu retournes "st", cette Pile au début est vide donc tu retournes à chaque fois une Pile sur laquelle rien a été ajouté, voilà pourquoi c'est toujours vide. Si le code est pas assez clair pour toi, remplace le nom *element* par *newStack* et tu comprendras mieux :).
@tobidegnon44097 жыл бұрын
merci c'est plus clair maintenant
@fathallahilyes5296 жыл бұрын
vous aurez du utilisé un pointeur pour Player non pas utiliser la structure player directement dans la structure des pille Par exemple dans la minute 52:20 si vous avez utilisé un pointeur ça va pas poser un probleme avec le "NULL "
@formation-video6 жыл бұрын
Oui, c'est une solution préférable, mais je ne voulais pas compliquer le code ici, donc le exit() fait l'affaire également ;)
@saliha57332 жыл бұрын
Super explication👏👏👏
@formation-video2 жыл бұрын
🙏
@sekoubatoure6038 ай бұрын
J'ai finalement compris les piles , par contre j'ai une petite question au niveau de la fonction pop_stack, moi j'ai juste fait return st.next sans faire le free de st, parce que la fonction clear_stack s'occupe de tout après dans main, et cela a fonctionné , est-ce une bonne manière aussi? merci.
@formation-video8 ай бұрын
Non, la fonction pop_stack dépile un élément. Elle doit donc faire son travail de nettoyage de ce qui a été alloué. D'ailleurs, la fonction clear_stack() utilise pop_stack() pour libérer les ressources, ce n'est pas elle qui libère directement ce qui est alloué.
@sebastiendhellemmes31966 жыл бұрын
Bonjour, j'aimerai savoir pourquoi mon programme ne fonctionne pas : main.c : #include #include #include "stack.h" int main(void) { Stack sta = newStack(); //on crée un pointeur nommé "sta" et de type Stack, qui prend la valeur du retour de la fonction newStack() if(isEmptyStack(sta)) printf("La pile est vide. "); else printf("La pile n'est pas vide. "); printStack(sta); sta = pushStack(sta, 14); sta = pushStack(sta, 47); printStack(sta); if(isEmptyStack(sta)) printf("La pile est vide. "); else printf("La pile n'est pas vide. "); sta = clearStack(sta); printStack(sta); if(isEmptyStack(sta)) printf("La pile est vide. "); else printf("La pile n'est pas vide. "); return 0; } stack.c : #include #include #include "stack.h" Stack newStack(void) { return NULL; } Bool isEmptyStack(Stack st) { //si l'adresse st de type Stack est NULL, on retourne true (voir enum du fichier "stack.h") et donc on sort de la fonction, donc, si on ne l'a pas fait, on retournera false (pas besoin de else) if(st == NULL) return true; return false; } Stack pushStack(Stack st, int x) { StackElement *element; element = malloc(sizeof(*element)); //on crée un tableau avec l'allocution dynamique pour notre pile //si l'allocution a échoué, on quite le programme : if(element == NULL) { fprintf(stderr, "Probleme allocation dynamique !!! "); exit(EXIT_FAILURE); } //on met les valeurs en fonction des paramètres de la fonction : element->value = x; element->next = st; return element; } Stack clearStack(Stack st) { StackElement *element; //si la pile est déjà vide, on retourne le retour de newStack : if(isEmptyStack(st)) return newStack(); //on donne à element une valeur en fonction de st, qu'on libère ensuite : element = st->next; free(st); //on retourne le retour de clearStack en fonction de element, donc on va réexecuter la fonction jusqu'à ce que la pile soit vide, auquel cas il retournera le retour newStack() (voir plus haut) : return clearStack(element); } void printStack(Stack st) { if(isEmptyStack(st)) { printf("Rien a afficher, la pile est vide. "); return; //on sort de la fonction sans retourner de valeur car la fonction est de type void } while(!isEmptyStack(st)) { printf("[%d] ", st->value); st = st->next; } } stack.h : #ifndef __STACK__H__ #define __STACK__H__ // --§__création d'un type booléen__§-- typedef enum { false, //0 true //1 }Bool; // --§__définition d'une pile__§-- typedef struct StackElement { int value; struct stackElement *next; }StackElement, *Stack; // --§__prototypes des fonctions__§-- Stack newStack(void); //cette fonction retourne une adresse de type Stack (voir structure) Bool isEmptyStack(Stack st); void printStack(Stack st); Stack pushStack(Stack st, int x); Stack clearStack(Stack st); #endif Merci beaucoup !
@formation-video6 жыл бұрын
Bonjour, pour plus de lisibilité, peux-tu partager ton code via pastebin ? Sinon, relis d'abord ton code, car je vois rapidement pas mal d'erreurs (par exemple dans la structure, tu as noté "stackElement" au lieu de "StackElement". Les minuscules/majuscules sont importantes. +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@sebastiendhellemmes31966 жыл бұрын
Merci beaucoup, mon code fonctionne très bien, et vos vidéos sont géniales !
@formation-video6 жыл бұрын
Parfait 😉 ! +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@ericleguen471825 күн бұрын
Bonjour, si je ne "veux pas" définir la structure avec typedef, mais simplement faire "struct StackElement", comment dois-je ré-écrire la suite du code, pour les deux fonctions new_stack() et is_empty_stack() ? Je m'y perds, c'est encore pour moi un vrai labyrinthe... Juste savoir ça, svp, ré-écrire sans typedef. Merci !
@formation-video24 күн бұрын
Bonjour, justement, "typedef" ne sert pas à définir de structure, mais à définir un alias. Donc, oui, tu peux évidemment faire sans : pastebin.com/2YKJyxPy
@ericleguen471823 күн бұрын
@@formation-video Merci ! Je retourne au combat 😁
@Street_Cyberman2 жыл бұрын
Je me suis arrêté à 20:39 de la vidéo, j'ai essayé de bricoler un code qui créer une piles de 10 éléments en rangeant l'adresse de chaque éléments dans un tableau, puis d'en afficher le contenu, puis de libérer chaque espace réserver (avec malloc) dans le tas (heap). J'ai réussi (enfin je crois, le programme affiche ce que je veux), mais je me suis confronté à une question existentielle. Quelle est la différence entre " StackElement** tab; " et " StackElement* tab[12]; " ??? voir ligne 10 du fichier main.c Avec " StackElement* tab[12] " le code marche, alors qu'avec une suite de " StackElement** tab ", cdt *(tab+i) pour ranger les adresses des struct dedans, ça plante. Je met mes trois fichiers en réponse.
@Street_Cyberman2 жыл бұрын
Main.c #include #include #include "pile.h" int main() { int i; type_pile* save; type_pile* element = pileVierge(); type_pile* adresse_pile[12]; //type_pile** adresse_pile; if(testPileVide(element)) { printf("La pille est vide. "); } else { printf("La Pile a des elements. "); } for(i=0; i(-1); i--) { save = *(adresse_pile+i); printf(" Element[%d] adresse %p valeur %d ", i, (*save).next, (*save).valeur); } putchar(' '); putchar(' '); for(i=0; i
pile.h #ifndef __PILE__H__ #define __PILE__H__ /* Type boolean */ typedef enum { faux, //0 vrai //1 }boolean; /* Définition d'une pile */ typedef struct element_pile { int valeur; struct element_pile* next; //comme le "type_pile*" sauf qu'on doit appeler "struct element_pile" dans la structure. }type_pile; /* Liste des prototypes des fonctions */ type_pile* pileVierge(void); boolean testPileVide (type_pile* element); type_pile* ajoutElement(type_pile* element_precedant, int x); #endif
@tassnimtahri472 жыл бұрын
is it possible to add an element in a specific position ??
@formation-video2 жыл бұрын
No, the stack structure must respect the LIFO (Last In First Out) principle. For the insertion of elements at a specific position, we generally use a list 👍
@hafiiidakhrif31756 жыл бұрын
Avez-vous un site qui contient des exercices en longuage c
@formation-video6 жыл бұрын
Non, j'en ai sur ma chaîne : kzbin.info/aero/PLrSOXFDHBtfF6lXQpJ4hBha76DsQufiEQ
@hafiiidakhrif31756 жыл бұрын
????
@formation-video6 жыл бұрын
Sur le lien donné, tu as des vidéos d'exercices en langage C
@phillipeasgb53696 жыл бұрын
J'aimerais avoir un eclaircicement sur un truck ou deux : Comment on reconnais une pile vide ? , le fait de dire vide ne veut pas dire que ca n'a pas de valeur sinon on aurais dit st->value , j'ai aussi un probleme des structurese et enumeration, ces derniers ne fonctionne pas , et si j'avais envie d'afficher le premier element enregistrer de la pile c'est a dire je fais commet ?
@formation-video6 жыл бұрын
Bonjour, tout dépend de comment tu vas représenter ta structure. Dans mon implémentation, une pile est une Pile qui n'est rien, donc la valeur NULL. Ensuite, le principe de la Pile n'est pas censé permettre de récupérer le premier élément empilé, mais le sommet de celle-ci. Après tu peux créer une fonction pour le faire, mais ta Pile deviendrait plus une sorte de Liste ;)
@phillipeasgb53696 жыл бұрын
ok et quel est l'interet de faire un malloc au niveau de l'ajout d'un element
@phillipeasgb53696 жыл бұрын
je veux aussi connaitre la difference entre stack et stackelement
@formation-video6 жыл бұрын
Et bien d'indiquer à ton ordinateur quelle place il doit réserver en mémoire. Car il sait allouer seul un entier, un caractère, un flottant, mais un élément de Pile, non
@formation-video6 жыл бұрын
Stack est l'écriture qui va masquer le pointeur, StackElement celle qui ne le masque pas
@totoboubou33876 жыл бұрын
bonjour pourquoi avoir écrit "st" dans vos programmes? que signifie t-il?
@formation-video6 жыл бұрын
Bonsoir, "st" est simplement un nom que je donne à ma variable pour représenter la Pile. Mais j'aurais pu évidemment lui donner n'importe quel nom
@totoboubou33876 жыл бұрын
+FormationVidéo merci!
@formation-video6 жыл бұрын
:)
@phillipeasgb53696 жыл бұрын
Bonjour , j'aimerais savoir un truck , tu pourrait bien m'expliquer ce qu'est le pointeur *stack qu"on voit juste apres que la structure a été creer , et j'aimerais savoir quelle est la difference avec stackelement je suis confu et je n'arrive pas a reprendre le code pour ca , pourquoi tu as plus utiliser stack que stackelement , ou quelqu'un pour me repondre
@formation-video6 жыл бұрын
Stack est la manière d'écrire la structure de la Pile en masquant le pointeur tandis que la syntaxe StackElement ne la cache pas. Donc, avec Stack, on fera -> Stack st; Avec StackElement, on fera -> StackElement *st;
@phillipeasgb53696 жыл бұрын
C'est toujours un peu flou , en faite la syntaxe qui nous as permit d'avoir *stack est un peu etrangere a moi , c'est peu etre pour ca , mais si il y a un moyen que je puisse te poser la question inbox
@formation-video6 жыл бұрын
Si tu ne connais pas la syntaxe avec l'étoile, c'est que tu n'as pas vu les vidéos d'avant, notamment la séance 11 sur les pointeurs
@phillipeasgb53696 жыл бұрын
sisi en faite la syntaxe de la structure de donnée en question struct nom_structure { .... }nom_struct, *nom_struct c'est cette syntaxe que j'ai pas trop compris , surtout le nom qui cache un pointeur
@formation-video6 жыл бұрын
Et bien c'est simplement qu'en écrivant nom_struct ou *nom_struct, ça remplacera par la structure que tu as, donc tu peux choisir la syntaxe avec ou sans l'étoile, c'est tout ;)
@atlanticpopculture8673 Жыл бұрын
Salut y-t-il eu des changements concernant l’affichage de pile ? , ça ne semble pas marcher pour moi
@formation-video Жыл бұрын
Bonjour, non, pourquoi y'aurait-il un changement ? Si cela ne fonctionne pas, c'est que tu as une erreur dans ton code.
@atlanticpopculture8673 Жыл бұрын
Tu avais bien raison mon erreur était dû au push_stack Plutôt. Merci ✌️
@formation-video Жыл бұрын
Impeccable 👍
@romaincolonnadistria70255 жыл бұрын
Salut, y'a un petit point que j'arrive pas à éclaircir, pourquoi rajouter "*Stack" a la définition de la struct à la place de "Stack" ? On ne peux pas juste la déclarer comme pointeur à la création seulement comme ca "Stack *stack = ... " ?
@formation-video5 жыл бұрын
Je l'avais expliqué dans les vidéos, c'est une manière de pouvoir employer la structure en masquant le pointeur. Je l'avais fait pour montrer que c'était possible (en faisant différemment sur d'autres structures de données de la formation pour que vous ayez plusieurs exemples d'implémentation). ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ 💙 Si ce n'est pas encore fait, n'hésite pas à t'abonner à la chaîne ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8
@youssef_plaisir20184 жыл бұрын
bonjour; pourquoi l'or de la définition d'une pile le pointeur *next est de type struct StackElement ?
@formation-video4 жыл бұрын
Parce qu'on aurait pas notre structure sinon, où chaque élément est "rattaché" à un autre. ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@youssef_plaisir20184 жыл бұрын
@@formation-video bonjour; j'ai pas bien compris votre réponse; le ptr *next doit contenir une adresse(pourquoi le type struct StackElement et non type int)
@formation-video4 жыл бұрын
Parce que "next" est un pointeur vers StackElement, pas un pointeur sur "int" ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@nassiradouma20242 жыл бұрын
gros merci 🥰
@formation-video2 жыл бұрын
Je t'en prie, bonne continuation en C 👋
@aliyounsi65677 жыл бұрын
Bonjour ! On nous a donné un projet sur les piles et les files : Comment implémenter une pile a l'aide de deux files ? Comment implémenter une file a l'aide de deux piles ? J'ai aucun problème sur tout ce qui concerne le code ! Ce que je comprends pas c'est la présentation (le schéma ) car je vois que c'est inutiles ! Pouvez vous m'expliquer l'implémentation svp ! Cordialement
@formation-video7 жыл бұрын
Coucou, C'est ton projet qui te demande précisément d'implémenter une Pile avec 2 Files, et une File avec 2 Piles ?
@aliyounsi65677 жыл бұрын
FormationVidéo ouais !
@formation-video7 жыл бұрын
C'est étrange ce que l'on te demande sachant que les deux structures ont un fonctionnement complètement différent. Pour une Pile, la dernière valeur insérée est la première que l'on peut retirer. Pour une File, la dernière valeur insérée est la dernière que l'on pourra retirer.
@sebastiencoquil97183 жыл бұрын
Bonjour, j'ai une question par rapport au type des fonctions et au pointeur caché dans la stucture "StackElement" : Est-ce que le fait d'appelé une fonction par "Stack nomDeFonction (param 1, ..)" est en fait une manière de créer un pointeur de fonction ? (afin de renvoyer l'adresse de la fonction et d'éviter de renvoyer l'adresse des éléments de la structure modifié par la fonction via des pointeurs) Merci d'avance pour vos réponses et j'apprécie énormément vos cours qui sont clairs pour la majorité !
@formation-video3 жыл бұрын
Bonjour, cela ne concerne pas les pointeurs de fonction, c'est juste pour avoir un nom simple (ici Stack) pour représenter la structure de notre pile 👍
@sebastiencoquil97183 жыл бұрын
@@formation-video D'accord. Je pense que je commence à comprendre : si on créer une fonction avec "Stack" on demandera de fait à la fonction de retourner non seulement une stack mais avec l'adresse de celle-ci (comme on déclare "*Stack" dans la structure) en plus, est-ce correcte ? Merci pour votre réponse et j'adore vos vidéos même si ce n'est pas toujours évident vous m'aidez & m'apprenez beaucoup !
@formation-video3 жыл бұрын
Oui, sinon on ne pourrait pas modifier notre structure de données 😉
@tanraskn87913 жыл бұрын
salut.... Pouvez vous m'expliquer Si y a-t-il une différence entre stackElement et *stack ou ils ont le même effet ? merci.
@formation-video3 жыл бұрын
Bonjour, rien qu'à l'écrire tu vois la différence, dans la syntaxe. StackElement masque le pointeur là où Stack ne le fait pas.
@tanraskn87913 жыл бұрын
@@formation-video MERCI beaucoup 🙂.... merci de votre aide💙
@formation-video3 жыл бұрын
De rien 👋
@joeldumortier80433 жыл бұрын
@@formation-video Bonjour, pourrais tu expliquer la notion de masquer le pointeur? Qu'est ce que ca veut dire exactement?
@thecrazzxz33832 жыл бұрын
Pile ce qu'il fallait !
@lamassonnerie50504 жыл бұрын
bjr. mrc pour cette vidéo (même si sa fais déjà 2ans). Pour être sur d'avoir bien compris, dans la fonction main, si je fait une initialisation de ma piles en fesant Stack *stack = new_stack(); sa ne marchera pas car stack est déjà un pointeur en fesant Stack stack; ?
@formation-video4 жыл бұрын
Bonjour, le mieux est que tu testes pour voir ce que te donnera le compilateur ;) ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@joeldumortier80433 жыл бұрын
Bonjour. Je suis en train d'apprendre le C et je te remercie pour tes vidéos qui sont très claires. Cependant je dois avouer que, si j'ai regardé les 16 premières vidéos sans soucis de compréhension, je ne comprends pas bien celle-ci.En effet je ne comprends pas , concrètement , à quel moment dois-je organiser mon code comme tu le fais dans la vidéo, en pile....?Je ne sais pas si je suis clair, où s'il y a un truc que j'ai zappé au cours de la formation. Merci d'avance pour ton aide.
@formation-video3 жыл бұрын
Bonjour, à partir de cette séance 17, ce ne sont plus des notions propres au C directement. En gros, tu as appris les notions du langage. Ici ce sont des structures de données (parmi d'autres : graphes, arbres, files, listes) qui sont des structures très utilisées en informatique pour ordonner/trier/hiérarchiser des données. Par exemple, la mémoire virtuelle utilisée par ton programme stocke les variables que tu déclares sur une Pile, qui fonctionne sur ce même principe. En intelligence artificielle, on va retrouver des arbres, pour calculer des itinéraires de graphes, etc.
@joeldumortier80433 жыл бұрын
@@formation-video ok merci beaucoup pour ta réponse
@formation-video3 жыл бұрын
De rien 👋
@maelchemeque22583 жыл бұрын
Si j'ai bien compris la notation *Stack correspond à l'adresse du premier élément de la pile, qu'on peut simplifier par la pile elle même ?
@formation-video3 жыл бұрын
Non, la notation Stack* (et pas *Stack) indique un pointeur vers une structure de type Stack
@maelchemeque22583 жыл бұрын
Ah oui en fait on note StackElement * Stack j'avais pas bien compris que la notation était typedef struct StackElement* Stack
@maelchemeque22583 жыл бұрын
Je voulais parler de la notation Stack du coup
@formation-video3 жыл бұрын
OK 👍
@purplemyself67924 жыл бұрын
Super explication comme toujours .... J'avais très peur de cette leçon mais maintenant je la trouve très simple et je la comprends très bien Merci Jason . j'ai juste une remarque dans ce qui concerne la fonction top_stack dans ce fichier bit.ly/2VW5nET . le problème se pose dans cette ligne : exit(EXIT_FAILURE); : Si on utilise cette ligne, le compilateur va sortir du programme sans exécuter les instructions qui se suivent alors il faut renvoyer un nombre pour que la compilation du programme continue . On peut retourner un entier négatif comme vous l'avez fait dans la vidéo. Bonne continuation ^^
@formation-video4 жыл бұрын
Oui, si on veut être rigoureux, il faut bien gérer les codes de retour des fonctions et traiter cela ensuite dans la fonction main()
@Turkish_coffee_424 жыл бұрын
pourquoi certaines fonctions ne prennent elles pas de double pointeurs, dans cetrains cas, je pense qu'il devrait y avoir des problemes des lors que nous quittons les fonction telle que push stack dans le main non ?
@formation-video4 жыл бұрын
Tout cela vient de la manière dont a été définie la structure de la Pile. En revanche, tu verras que pour d'autres structures, j'ai fait une implémentation différente, histoire de montrer plusieurs manières de faire, et ce que cela change sur la syntaxe 😉 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@franckleuguem9169 Жыл бұрын
Bonsoir jason champagne merci pour la vidéo j'aimerai savoir pourquoi lorsqu'on crée une pile on utilise l'allocation dynamique d'après ce que j'ai compris on utilise l'allocation dynamique lorsqu'on veut utiliser une donnée dont la taille n'est pas connu par notre ordinateur j'ai un problème ici car lorsque qu'on crée un variable de type int on a pas besoin d'allocation mais lorsqu'on veut créer une pile on dit comme l'avez écrit stackelement *element; p = malloc(sizeof(element)); étant donné qu'on a crée la structure stackelement en mettant un typedef est ce que la machine n'a elle pas déjà réservée un espace pour les types stackelement? puisque dans la vidéo sur les structures on entrait les username, hp et mp des Player sans avoir à faire une allocation dynamique
@formation-video Жыл бұрын
Bonjour, avec ces structures de données, nous manipulons des pointeurs vers ces dernières, d'où la nécessité d'allouer l'espace nécessaire, car non, l'ordinateur ne sait pas à l'avance quel espace occupe une Pile 👍 Un exemple simple pour illustrer cela : pastebin.com/KvYK87mE
@franckleuguem9169 Жыл бұрын
@@formation-video ça veut donc dire que dès que l'on utilise un pointeur dont le type est défini par une structure, nous devons automatiquement faire une allocation dynamique?
@formation-video Жыл бұрын
Non, pas si tu déclares un pointeur pointant vers une structure déjà déclarée : pastebin.com/Bgzr3LpD
@ai.aspirations Жыл бұрын
parfait! et merci
@formation-video Жыл бұрын
👍
@yhanmob61224 жыл бұрын
Merci pour la réponse précédente. Et à quel moment parle t-on de l’implémentation de l'assembleur et du compilateur?????
@formation-video4 жыл бұрын
Pas dans ce cours, pas de rapport direct avec le C ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@yhanmob61224 жыл бұрын
la programmation modulaire est-elle nécessaire à la création d'une pile????
@formation-video4 жыл бұрын
Non mais c'est plus propre de ne pas tout mettre dans un seul fichier. On définit les structures, énumérations et prototypes de fonctions dans un fichier d'en-tête. Puis on implémente les fonctions dans un fichier source. ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@nathannzieleu82824 жыл бұрын
Stp, ya t il des fonctions pour modifier les positions des donnes dans une pile?
@formation-video4 жыл бұрын
Ce n'est pas le but d'une Pile normalement, mais si tu tiens vraiment à faire ce genre d'opération, ça se code oui ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@nathannzieleu82824 жыл бұрын
FormationVidéo ok merci
@lemondeestloeuvredunenfant46337 жыл бұрын
Que ce serait-il passer, si au lieu d'utiliser un pointeur, dans la fonction push_stack on faisait çà : StackElement element; element = malloc(sizeof(element)); Pourquoi utiliser un pointeur ici ?
@formation-video7 жыл бұрын
Bonjour, je pense que le mieux est de tester par toi-même pour voir :).
@lemondeestloeuvredunenfant46337 жыл бұрын
Tu as raison, j'imagine. Merci encore.
@formation-video7 жыл бұрын
De rien ;) !
@erragragymohamednacer85064 жыл бұрын
svp quand on depile la premiere valeur alors l adresse de toute la pile est detruite ou bien non ??
@formation-video4 жыл бұрын
Non, tu ne feras que libérer de la mémoire que l'élément qui a été dépilé ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@erragragymohamednacer85064 жыл бұрын
@@formation-video ah merci bcp
@nicolaslecas81314 жыл бұрын
Merci super tuto comme d'hab ! J'ai une question, peut-on changer tous les "StackElement *element" (dans les fonctions pop_stack ou push_stack) par des "Stack element" ? en fait j'ai du mal à comprendre la fin de ta déclaration de structure, quand tu écris "StackElement, *Stack"
@formation-video4 жыл бұрын
Le meilleur moyen de le savoir, c'est de le tester, alors fais et tu verras quel comportement cela engendre au niveau de ton programme 👍
@nicolaslecas81314 жыл бұрын
@@formation-video je viens de verifier et ca marche en faisant ce remplacement, ca me semble plus clair, je l'ecrirai donc comme ca maintenant, merci beaucoup ! (Neanmoins je ne comprends pas l'etoile devant le Stack a la fin de la declaration de la structure, en essayant de l'enlever j'ai des erreurs a la pelle)
@formation-video4 жыл бұрын
Parce que c'est une notation avec pointeur, donc forcément, si tu l'enlèves... 😉
@lessystemesembarques64036 жыл бұрын
Bonjour , Bon travail merci pour vos cours très complet , pourriez vous svp d'expliquer d'avantage les pointeurs sur les structures expliquer par des exemples indépendants , merci
@formation-video6 жыл бұрын
Tout ce qu'il y a à savoir sur les pointeurs est détaillé dans le cours sur les pointeurs : kzbin.info/www/bejne/h6PEXmOLlM94gdU Leur application est la même, que ce soit avec ou sans l'utilisation de structures ;)
@ghadajouini81817 жыл бұрын
Salut , merci pour cette super video . Je travaille avec le code::Blocks et j'ai essayé mais dans le terminal il m'a dit que la pile est toujours vide malgrés que j'ai fais l'ajout des élements à l'aide de la fonction "push_Stack" j'ai pas compris pourquoi malgrés que j'ai fait aucun erreur dans le code .merci de me répondre !
@formation-video7 жыл бұрын
Bonjour, pourrais-tu me montrer le code complet de ta fonction "push_stack" et comment tu appelles celle-ci dans ta fonction main() ?
@ghadajouini81817 жыл бұрын
bonjour , celui ci est la fonction "push_stack" : Stack push_Stack (Stack st , int x ) { StackElement *element ; element = malloc (sizeof(*element)) ; if (element ==NULL) { printf("problème allocation dynamique . "); } element->value=x ; element->next =st ; return element ; } et dans la fonction main : int main(void) { Stack sta=new_Stack() ; print_Stack(sta); printf(" ----------------------------- "); sta = push_Stack(sta,13); sta = push_Stack(sta,26); sta = push_Stack(sta,80); print_Stack(sta); return 0 ; }
@formation-video7 жыл бұрын
OK, et donc avec ce code, l'ajout des éléments n'est pas fait tu me dis ? Tout semble correct pourtant. Vérifie bien en revanche que tout est bon sur le nommage des fonctions, je vois par exemple que tu as mis une majuscule sur le "S" de push_Stack, ou print_Stack, donc vérifier que c'est identique partout :) Après si ton code compile, c'est qu'il n'y a pas d'erreurs
@kevinmunto16833 жыл бұрын
bonjour je n'arrive pas a executer mon programme car lorsque je le compile cela me met undefine reference to 'new_stack' est ce que vous pouvez m'aider svp
@formation-video3 жыл бұрын
Bonjour, tu as du mal faire tes imports, ici cette erreur indique qu'il ne trouve pas de fonction appelée "new_stack"
@formation-video3 жыл бұрын
Si tu passes par un IDE, tu dois ajouter les fichiers depuis l'éditeur, pas à la main
@kevinmunto16833 жыл бұрын
@@formation-video comment faut il faire svp
@formation-video3 жыл бұрын
C'est à toi de savoir utiliser ton éditeur (sinon, il n'a aucun intérêt). Donc cela se fera sans doute via les menus, pour ajouter un nouveau fichier source
@kevinmunto16833 жыл бұрын
@@formation-video Je ne voulais pas perdre de temps ducoup je suis allée sur vs code, cependant, il s'avère que l'IDE ne reconnait pas la bibliothèque stack.h ducoup comment est ce que je peux faire stpp?
@Merlin_G4 жыл бұрын
Dans ton archive d'entiers il manque un ; après int value dans la définition d'une pile et tu as laissé Player dans les paramètres de pushStack Et quand j'inclu stack.h dans mon main ça marche pas alors que quand je fais include stack.c ça marche, je pense que c'est parce que je fais gcc main.c -o prog et que tu fais gcc *.c -o prog du coup j'imagine qu'il pack les 2 .c dans le prog.exe ?
@formation-video4 жыл бұрын
Merci de l'avoir signalé, j'ai mis à jour l'archive et les liens sur la vidéo 👍 Et oui, il faut bien compiler tous les fichiers source, donc -> gcc *.c -o prog (ou éventuellement : gcc stack.c main.c -o prog) ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@abdoulazizdiallo45133 жыл бұрын
Salut Jason, pourquoi dans l'enum l'ordre entre "true" et le "false" est important ? j'ai bcp peiné à retrouver cette erreur. En mettant l'inverse de ce que t'as fait je me retrouve avec un segmentation fault. Et un Grand merci, pour tes vidéos ça m'aide énormément.
@formation-video3 жыл бұрын
Bonjour, parce que par défaut, une énumération est numérotée, en commançant par 0, puis 1, etc. Dans ce cas, si tu viens à attribuer true à 0 et false à 1, je pense que tu comprends le problème que ça entraîne 😉
@abdoulazizdiallo45133 жыл бұрын
Ohh oui compris maintenant merci 👍🏻.
@formation-video3 жыл бұрын
De rien ;)
@best-songslyrics35824 жыл бұрын
vous etes un heros haha, vous etes super mon frere =D
@formation-video4 жыл бұрын
🙂 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@HB_5 жыл бұрын
Pour commencer un grand merciii pour le travail que vous faites. C'est très instructif. Sinon, une question, c'est quoi l’intérêt de donner 2 Alias de noms a la pile ?
@formation-video5 жыл бұрын
Bonsoir, les deux alias sont là pour rendre le code plus lisible ensuite. Comme une Pile n'ayant qu'un seul élément est aussi une Pile, il serait bizarre de dire qu'une Pile contient des Piles. Donc, avec cette syntaxe, ça permet en lisant le code de comprendre qu'une pile (Stack) possède des éléments (StackElement). +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@HB_5 жыл бұрын
@@formation-video C'est très claire, un très grand merci
@Mlamise4 жыл бұрын
quelle est la difference entre la signature stack et StackElement , parce-qu'a un moment dans la vidéo il dit que c'est juste une notation differente " dans le typedef il avait mit a la fin StackElement , *stack " merci de votre aide :D
@formation-video4 жыл бұрын
Tu as une notation qui masque le pointeur, c'est tout. Ce n'est pas obligatoire de procéder comme ça, mais je tenais à le faire pour montrer les possibilités que l'on a avec le "typedef" 😉 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@paulemarietouwe19644 жыл бұрын
Salut comment faire utiliser la recussivité. Merci.
@paulemarietouwe19644 жыл бұрын
comment faire sans utiliser la recursivite
@formation-video4 жыл бұрын
Et bien sans avoir à rappeler la fonction elle-même, avec une simple boucle qui va parcourir la Pile ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@nakriamine19256 жыл бұрын
Vraiment merci beaucoup pour ces explications !! j'ai juste un petite demande : t'a pas une idée sur le jeu de dames ou un exemple d'un projet d'une jeu ...?
@formation-video6 жыл бұрын
Tu peux voir sur la playlist des exercices pour t'entraîner. Il y en aura plusieurs au fur et à mesure et à difficulté croissante : kzbin.info/aero/PLrSOXFDHBtfF6lXQpJ4hBha76DsQufiEQ
@jarvisjamarjarvisonlamar51514 жыл бұрын
Bonjour merci pour la formation just une question pour m'éclaircir les idées un peut plus on aurait pas pu faire : sta = new_stack(); pour vider la pile ? et merci encore
@formation-video4 жыл бұрын
Et que fais-tu de tout ce qui a été alloué en mémoire (et ne sera donc pas libéré = fuite mémoire) ? 😉 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ MERCI DE TON SOUTIEN ! 🔻 ◾ Pas encore abonné(e) ? N'hésite pas à le faire 💙 ◾ Soutenir FormationVidéo : bit.ly/2L0xNXA ◾ Site web : jasonchampagne.fr ◾ Discord : discord.me/jasonchampagne ◾ Twitch : www.twitch.tv/jachampagne ◾ KZbin (personnel) : kzbin.info ◾ Twitter : twitter.com/jachampagne8 ◾ Facebook : facebook.com/jachampagne8 ◾ Instagram : instagram.com/jachampagne8 ◾ Snapchat : www.snapchat.com/add/jachampagne8 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@jarvisjamarjarvisonlamar51514 жыл бұрын
@@formation-video Ahhhhh c'est vrai, merci mec ^^
@ThiernohadyBarry9 ай бұрын
Bonjour j'ai un souci. Enfaite je sais comment créer une pile vérifier si elle est vide ou non ajouter une pile et tout.... Mais mon souci est que j'arrive pas à comprendre pourquoi est-ce que les données s'empilent ? Qu'est-ce qui est à la base de cela ? Est-ce à cause de la structure reccurcive. struct stackelement *next? Ou pas ? J'ai un souci là dessus et je voudrai vraiment éclaircir cela avant d'attaquer les autres structures... Merci de bien m'aider
@formation-video9 ай бұрын
Bonjour, le schéma montré en vidéo explique le fonctionnement : chaque "maillon" de la pile est une structure composée d'une valeur (ici un entier) et d'un pointeur vers l'élément suivant. C'est l'usage du pointeur *next qui assure qui permet aux données de se suivre, et donc, de les empiler dans un ordre précis.
@ThiernohadyBarry9 ай бұрын
@@formation-video D'accord je comprends merci !!
@formation-video9 ай бұрын
👍
@connexionvitale6 жыл бұрын
Je reprends on code pas à pas pour en comprendre la logique, après la création de la fonction qui libère la pile, j'ai 2 erreurs répétées plusieurs fois dans la console : dans le "main" : assigment makes pointer from integer without a cast; par exemple ici : pile1 = ajoute_element_pile(pile1,14); puis, sur toutes mes fonctions, par exemple : sur "pile.c" et "main.c" :multiple definition of "nouvelle_pile" Il me semble que mon code répète bien ton code même s'il y a d'autres noms... ?!
@formation-video6 жыл бұрын
A priori, tu dois avoir des fonctions définies deux fois, et certainement d'autres erreurs dans ton code pour avoir ces messages là. Relis bien ton code, et compare avec le mien pour identifier les erreurs éventuelles ;) +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8/ |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@alecweinhofer22205 жыл бұрын
Dans la définition d'une pile dans le .h, est-il important de donner 2 noms à la fonction?
@formation-video5 жыл бұрын
Comment ça ? +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@alecweinhofer22205 жыл бұрын
@@formation-video 8:52 Tu donnes StackElement et *Stack comme nom. Ne peut-on pas juste mettre StackElement?
@formation-video5 жыл бұрын
Tout dépend de si tu veux masquer ou non le pointeur. Le mieux est de tester par toi-même, et tu verras bien ce que cela donne sur ton code 🙂 +---------------------------------------------------------------------------------------------------------------------------------------------+ |- Jason CHAMPAGNE - jasonchampagne.fr +---------------------------------------------------------------------------------------------------------------------------------------------+ |- COUCOU, TU VEUX : |--- Nous rejoindre sur Discord ? discord.me/jasonchampagne |--- Me voir en direct sur Twitch ? www.twitch.tv/jachampagne |--- T'abonner à mon autre chaîne KZbin ? kzbin.info |--- Me follow sur Twitter ? twitter.com/jachampagne8 |--- Liker la page Facebook ? facebook.com/jachampagne8 |--- Me follow sur Insta ? instagram.com/jachampagne8 |--- M'ajouter sur Snapchat ? www.snapchat.com/add/jachampagne8 +---------------------------------------------------------------------------------------------------------------------------------------------+
@IronMan-vq8pg2 жыл бұрын
Tu avait raison, au début il y a une semaine, je comprenais vraiment pas bien les piles, puis en faisant des schémas de mon côtés pour essayer de comprendre, je comprends mieux, mais d'ailleurs, c'était pas mieux de commencer par les listes chainées avant les piles ? Merci pour tes vidéos !
@formation-video2 жыл бұрын
Non, pas besoin de commencer avec une structure en particulier, étant donné que leur fonctionnement est différent de l'une à l'autre
@IronMan-vq8pg2 жыл бұрын
@@formation-video ah d'accord, en gros celle là est plus simple. Mais une autre question, pour ajouter des éléments à la pile, on peut passer par des pointeurs au lieu d'incrémenter la nouvelle valeur directement à la pile ? En gros, on appelle juste la fonction (void) qui ajoute.
@formation-video2 жыл бұрын
Pas compris, mais c'est ce qui est fait dans la vidéo. Dans une Pile, on ajoute des éléments par "le début". C'est ce que fait la fonction push_stack()
@IronMan-vq8pg2 жыл бұрын
@@formation-video Pour ajouter un élément, toi tu as fait ça : stack = push_stack(stack, x); Est ce qu'on pourrais modifier cette fonction pour juste l'appeler comme ça : push_stack(stack, x);
@formation-video2 жыл бұрын
Oui, il suffit d'adapter la structure de données 👍
@urxul2 жыл бұрын
Super bien explique. au fait est ce que c'etait possible de creer ka pile et ses focntions sans pointeur? SI cest non est est uniquement parce que le passage pas valeur n'aurait pas permis d'agir sur la pile ou il ya d'autres raisons
@formation-video2 жыл бұрын
Non, car ton ordinateur ne sait pas ce qu'est une Pile, ni l'espace que cela a besoin, et on ne connaît pas à l'avance le nombre d'éléments qu'elle aura. Donc : pointeurs et allocations de mémoire dynamiques.
@urxul2 жыл бұрын
@@formation-video oh je vois merci beaucoup pour avoir repondu. C'est aussi pour ca tu as utilise *Stack? Des fois quand tu utlise StackElement tu met * devant element mais quand tu utilise Stack tu ne met rien. est ce que ca veut dire que les deux sont equivalents? j'ai remarque que tu as utulise Stack uniquement avec les focntions aussi et StackElement avec les piles temporaires des fonctions
@formation-video2 жыл бұрын
C'est surtout par rapport aux alias créés à partir de la structure avec typedef. Dans ma définition, j'ai créé deux alias : - le premier pour dire que struct StackElement est équivalent à StackElement - le second pour dire que struct StackElement est équivalent à *Stack Ainsi, dans le premier on doit mentionner le pointeur, dans la seconde, il est masqué 👍
@urxul2 жыл бұрын
@@formation-video ah c'est plus clair maintenant merci beaucoup
@formation-video2 жыл бұрын
De rien
@AlhussayniToure9 ай бұрын
J' aime vraiment les vidéos mais je n'arrive pas à accéder au code laisser en description
@formation-video9 ай бұрын
Via les liens dans la description de la vidéo, tu arrives sur des pages de mon GitHub. Sur celles-ci, tu as sur la droite une icône pour télécharger l'archive : imgur.com/LqiOUki