Langage C #17 - piles

  Рет қаралды 159,047

FormationVideo

FormationVideo

Күн бұрын

Пікірлер: 521
@totolerigolo35
@totolerigolo35 4 жыл бұрын
ç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-video
@formation-video 4 жыл бұрын
Ne lâche rien et n'hésite pas à faire des petits programmes de ton côté pour mettre ça en pratique 👍
@sylvainly7766
@sylvainly7766 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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
@mehdi52783
@mehdi52783 7 жыл бұрын
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é.
@youcefkhedim37
@youcefkhedim37 6 жыл бұрын
mon copliateure ne reconé pas tes declaration boolienne vue que j utilise le dev c
@ArmoredCyberNemesis
@ArmoredCyberNemesis 6 жыл бұрын
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-berry
@e-berry 5 жыл бұрын
FILO (First In Last Out) peut fonctionner aussi car Le premier qui rentre sera le dernier qui sort :p
@ulrichnelson3636
@ulrichnelson3636 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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 +---------------------------------------------------------------------------------------------------------------------------------------------+
@luniversdugeek9164
@luniversdugeek9164 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
C'est normal, ça se corse un peu, et ça met en application beaucoup de concepts vus précédemment 👍
@diepvu6045
@diepvu6045 6 жыл бұрын
Oh la la, je m'incline devant ce cours de qualité ! Merci beaucoup !!!
@formation-video
@formation-video 6 жыл бұрын
Merci à toi pour le commentaire :)
@Atomental_Dr.Forest
@Atomental_Dr.Forest 3 жыл бұрын
Merci beaucoup pour ce tuto très clair ! Bonne continuation !
@formation-video
@formation-video 3 жыл бұрын
De rien, à bientôt 👍
@abdoulayebah2652
@abdoulayebah2652 8 ай бұрын
Avec toi, je suis sûr et certain de bien Coder en C ! Explications trop cool et très simple
@formation-video
@formation-video 8 ай бұрын
Merci et bon courage à toi en C
@patpast9739
@patpast9739 5 жыл бұрын
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-video
@formation-video 5 жыл бұрын
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
@ichinosevoid9034
@ichinosevoid9034 5 жыл бұрын
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-video
@formation-video 5 жыл бұрын
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 +---------------------------------------------------------------------------------------------------------------------------------------------+
@jessysaintauret3615
@jessysaintauret3615 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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.
@ericleguen4718
@ericleguen4718 13 күн бұрын
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-video
@formation-video 10 күн бұрын
Bonjour, oui, tu peux. La différence ici est que ton code vérifiera la condition de la boucle.
@armelfiavor
@armelfiavor 10 ай бұрын
merci infiniment pour tout
@formation-video
@formation-video 10 ай бұрын
👍
@armelfiavor
@armelfiavor 10 ай бұрын
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-video
@formation-video 10 ай бұрын
Bonne continuation
@sir_nobody5199
@sir_nobody5199 3 ай бұрын
Superbe vidéo encore une fois! J'ai bien aimé la Structure de player à la fin! CHOUBACCA, sympa comme pseudo Ahahaha XD
@formation-video
@formation-video 3 ай бұрын
👍
@jean-jacqueskonan2488
@jean-jacqueskonan2488 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
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-jacqueskonan2488
@jean-jacqueskonan2488 4 жыл бұрын
@@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-video
@formation-video 4 жыл бұрын
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-jacqueskonan2488
@jean-jacqueskonan2488 4 жыл бұрын
@@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_02
@abdulkabir_02 5 жыл бұрын
Encore une fois merci bien Jason :)
@formation-video
@formation-video 5 жыл бұрын
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_sow2024
@Sow_sow2024 3 жыл бұрын
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-video
@formation-video 3 жыл бұрын
Bonjour, comment ça ouvrir plusieurs fichiers sur la console ?
@bensimplement9455
@bensimplement9455 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
Qu'est-ce que tu ne comprends pas ?
@davidgoldman5144
@davidgoldman5144 5 жыл бұрын
à 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-video
@formation-video 5 жыл бұрын
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_42
@Turkish_coffee_42 4 жыл бұрын
@@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,
@yesno6042
@yesno6042 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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 +---------------------------------------------------------------------------------------------------------------------------------------------+
@sa3don1998
@sa3don1998 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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.
@garagedesexpos54500
@garagedesexpos54500 6 жыл бұрын
Titoonis
@theobdr599
@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
@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
@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
@theobdr599 Жыл бұрын
@@Low_Han ah ouai ok merci
@sa3don1998
@sa3don1998 6 жыл бұрын
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 ?
@sa3don1998
@sa3don1998 6 жыл бұрын
tout comme dans lenght le fait de faire st=st->next cela ne te fais pas perdre la tete de la pile ?
@formation-video
@formation-video 6 жыл бұрын
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 ;)
@sa3don1998
@sa3don1998 6 жыл бұрын
oui mais le fait de deplacer le pointeur ne te fera pas perdre l'adresse de l'element de tete ?
@formation-video
@formation-video 6 жыл бұрын
Non du tout ;)
@massyle5198
@massyle5198 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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_g8759
@baptiste_g8759 2 жыл бұрын
merci beaucoup, toujours aussi utile !
@formation-video
@formation-video 2 жыл бұрын
De rien, bonne suite du cours ✌
@ArmoredCyberNemesis
@ArmoredCyberNemesis 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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 ?
@ArmoredCyberNemesis
@ArmoredCyberNemesis 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
Alors soit ton VS2017 est mal configuré, soit il faut changer d'IDE. Car la syntaxe pour le malloc est évidemment correcte :)
@tirsportifequitation7388
@tirsportifequitation7388 3 жыл бұрын
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-video
@formation-video 3 жыл бұрын
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 🙂
@tirsportifequitation7388
@tirsportifequitation7388 3 жыл бұрын
@@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-video
@formation-video 3 жыл бұрын
Oui, c'est clair, et puis tu ne vas pas endommager ton PC ;)
@tirsportifequitation7388
@tirsportifequitation7388 3 жыл бұрын
@@formation-video génial alors!!
@jerrygerrard2886
@jerrygerrard2886 3 жыл бұрын
Aaaahhhhhhhh, Merci beaucoup!
@formation-video
@formation-video 3 жыл бұрын
De rien ;)
@diepvu6045
@diepvu6045 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
Quelle est l'erreur exacte que t'affiche le terminal ?
@diepvu6045
@diepvu6045 7 жыл бұрын
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à :(
@diepvu6045
@diepvu6045 7 жыл бұрын
Dans mon dossier PILES il y a bien les 2 fichiers .c (et pile.h)
@formation-video
@formation-video 7 жыл бұрын
Et tu as bien encodé tes fichiers en UTF-8 ?
@diepvu6045
@diepvu6045 7 жыл бұрын
Oui j'ai suivi tes instructions de la Première vidéo.
@YannAriell
@YannAriell 3 жыл бұрын
9:16 j'ai pas bien compris le pointeur sur l'élément suivant
@formation-video
@formation-video 3 жыл бұрын
C'est ce qui permet de faire la liaison entre chaque élément de la Pile
@lemondeestloeuvredunenfant4633
@lemondeestloeuvredunenfant4633 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
Je réponds sur ton autre commentaire alors ;)
@massyle5198
@massyle5198 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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 :)
@massyle5198
@massyle5198 7 жыл бұрын
Ah d'accord, donc pour la machine " StackElement" et "*Stack" c'est exactement la même chose, non ?
@formation-video
@formation-video 7 жыл бұрын
Oui, la même structure :)
@massyle5198
@massyle5198 7 жыл бұрын
Voilà c'était pour être sûr, désolé pour la question bête xD. Merci ! :)
@formation-video
@formation-video 7 жыл бұрын
Il n'y a jamais de question bête =)
@Sowghaii
@Sowghaii 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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 :)
@Sowghaii
@Sowghaii 7 жыл бұрын
C'est compris, merci pour votre réponse :)
@formation-video
@formation-video 7 жыл бұрын
De rien ;)
@lagiti834
@lagiti834 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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()
@malix31
@malix31 6 жыл бұрын
Salut pour quoi tu n'as pas utililse la bibliotheque stdbool.h pour declarer le type booleen ? y a til une raison ?
@formation-video
@formation-video 6 жыл бұрын
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 +---------------------------------------------------------------------------------------------------------------------------------------------+
@malix31
@malix31 6 жыл бұрын
Cool merci pour l’information
@formation-video
@formation-video 6 жыл бұрын
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 +---------------------------------------------------------------------------------------------------------------------------------------------+
@zawette
@zawette 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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.
@zawette
@zawette 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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.
@zawette
@zawette 7 жыл бұрын
FormationVidéo c'est compris merci!
@formation-video
@formation-video 7 жыл бұрын
De rien :)
@stevekasongo8823
@stevekasongo8823 5 жыл бұрын
bonjour grand frère, merci pour la formation que le grand Dieu vous bénisse
@formation-video
@formation-video 5 жыл бұрын
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
@axelb7921
@axelb7921 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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.
@axelb7921
@axelb7921 7 жыл бұрын
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
@axelb7921
@axelb7921 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
Ah, bien que ce soit bon enfin de ton côté, bonne continuation :) !
@EnThib
@EnThib 10 ай бұрын
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-video
@formation-video 10 ай бұрын
Regarde comment est définie la structure de la Pile
@EnThib
@EnThib 10 ай бұрын
@@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-video
@formation-video 10 ай бұрын
👍
@barbeblanche1581
@barbeblanche1581 2 жыл бұрын
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-video
@formation-video 2 жыл бұрын
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)
@barbeblanche1581
@barbeblanche1581 2 жыл бұрын
@@formation-video Mais pourquoi lorsque je remplace Stack par StackElement, j'ai une erreur ?
@formation-video
@formation-video 2 жыл бұрын
Si tu as bien regardé. Avec la notation "Stack", pas de pointeur indiqué, mais avec "StackElement", oui
@barbeblanche1581
@barbeblanche1581 2 жыл бұрын
@@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-video
@formation-video 2 жыл бұрын
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-et
@fatal-et 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
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 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@oussamamahmoudi3369
@oussamamahmoudi3369 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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
@oussamamahmoudi3369
@oussamamahmoudi3369 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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 :)
@lianawassouf6970
@lianawassouf6970 6 жыл бұрын
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.
@lianawassouf6970
@lianawassouf6970 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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-afr
@footix-afr 6 жыл бұрын
Salut. J'ai un soucie avec l'allocation dynamique. Je ne vois meme pas les valeurs entrées
@formation-video
@formation-video 6 жыл бұрын
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-afr
@footix-afr 6 жыл бұрын
Ok. Je le de suite
@formation-video
@formation-video 6 жыл бұрын
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-afr
@footix-afr 6 жыл бұрын
J'ai essayer de vous contacter sur switch. Avec le username Nanitelamio
@footix-afr
@footix-afr 6 жыл бұрын
Et su votres site web. Je n'ai pas trouvé un espace appropie pour paster mon code
@Valdez_1er
@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
@formation-video Жыл бұрын
Bonjour, quel moment de la vidéo exactement ?
@yassineabdelmoula1375
@yassineabdelmoula1375 5 жыл бұрын
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-video
@formation-video 5 жыл бұрын
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
@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
@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 😉
@amina6347
@amina6347 7 жыл бұрын
salam, Svp monsieur on peut avoir un exemple sur la pile pleine!? Merci !
@formation-video
@formation-video 7 жыл бұрын
Bonjour, comment ça ?
@amina6347
@amina6347 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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).
@amina6347
@amina6347 7 жыл бұрын
ça c pour les piles à la représentation contigus?
@formation-video
@formation-video 7 жыл бұрын
Oui, le principe même d'une Pile
@Dmoniste64
@Dmoniste64 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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.
@Dmoniste64
@Dmoniste64 7 жыл бұрын
Merci j'ai enfin compris.
@formation-video
@formation-video 7 жыл бұрын
Bien =)
@Joel-mq6ht
@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
@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 👍
@tobidegnon4409
@tobidegnon4409 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
Bonjour, tu as du mal lire le code, car je retourne pourtant bien une pile, en faisant le *return element*.
@tobidegnon4409
@tobidegnon4409 7 жыл бұрын
vous avez fait un return element,je vais essayer alors,mais je comprends quand même pas pourquoi return st ne marche pas
@tobidegnon4409
@tobidegnon4409 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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 :).
@tobidegnon4409
@tobidegnon4409 7 жыл бұрын
merci c'est plus clair maintenant
@fathallahilyes529
@fathallahilyes529 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
Oui, c'est une solution préférable, mais je ne voulais pas compliquer le code ici, donc le exit() fait l'affaire également ;)
@saliha5733
@saliha5733 2 жыл бұрын
Super explication👏👏👏
@formation-video
@formation-video 2 жыл бұрын
🙏
@sekoubatoure603
@sekoubatoure603 8 ай бұрын
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-video
@formation-video 8 ай бұрын
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é.
@sebastiendhellemmes3196
@sebastiendhellemmes3196 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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 +---------------------------------------------------------------------------------------------------------------------------------------------+
@sebastiendhellemmes3196
@sebastiendhellemmes3196 6 жыл бұрын
Merci beaucoup, mon code fonctionne très bien, et vos vidéos sont géniales !
@formation-video
@formation-video 6 жыл бұрын
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 +---------------------------------------------------------------------------------------------------------------------------------------------+
@ericleguen4718
@ericleguen4718 25 күн бұрын
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-video
@formation-video 24 күн бұрын
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
@ericleguen4718
@ericleguen4718 23 күн бұрын
@@formation-video Merci ! Je retourne au combat 😁
@Street_Cyberman
@Street_Cyberman 2 жыл бұрын
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_Cyberman
@Street_Cyberman 2 жыл бұрын
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
@Street_Cyberman
@Street_Cyberman 2 жыл бұрын
pile.c #include #include #include "pile.h" type_pile* pileVierge(void) { return NULL; } //---------------------------------------------------------------- boolean testPileVide (type_pile* element) { if(element == NULL) { return vrai; } return faux; } //---------------------------------------------------------------- type_pile* ajoutElement(type_pile* element_precedant, int x) { type_pile* element_suivant = malloc(sizeof(type_pile)); if(element_suivant == NULL) { printf("Probleme allocation dynamique"); } (*element_suivant).valeur = x; (*element_suivant).next = element_precedant; return &(*element_suivant); }
@Street_Cyberman
@Street_Cyberman 2 жыл бұрын
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
@tassnimtahri47
@tassnimtahri47 2 жыл бұрын
is it possible to add an element in a specific position ??
@formation-video
@formation-video 2 жыл бұрын
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 👍
@hafiiidakhrif3175
@hafiiidakhrif3175 6 жыл бұрын
Avez-vous un site qui contient des exercices en longuage c
@formation-video
@formation-video 6 жыл бұрын
Non, j'en ai sur ma chaîne : kzbin.info/aero/PLrSOXFDHBtfF6lXQpJ4hBha76DsQufiEQ
@hafiiidakhrif3175
@hafiiidakhrif3175 6 жыл бұрын
????
@formation-video
@formation-video 6 жыл бұрын
Sur le lien donné, tu as des vidéos d'exercices en langage C
@phillipeasgb5369
@phillipeasgb5369 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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 ;)
@phillipeasgb5369
@phillipeasgb5369 6 жыл бұрын
ok et quel est l'interet de faire un malloc au niveau de l'ajout d'un element
@phillipeasgb5369
@phillipeasgb5369 6 жыл бұрын
je veux aussi connaitre la difference entre stack et stackelement
@formation-video
@formation-video 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
Stack est l'écriture qui va masquer le pointeur, StackElement celle qui ne le masque pas
@totoboubou3387
@totoboubou3387 6 жыл бұрын
bonjour pourquoi avoir écrit "st" dans vos programmes? que signifie t-il?
@formation-video
@formation-video 6 жыл бұрын
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
@totoboubou3387
@totoboubou3387 6 жыл бұрын
+FormationVidéo merci!
@formation-video
@formation-video 6 жыл бұрын
:)
@phillipeasgb5369
@phillipeasgb5369 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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;
@phillipeasgb5369
@phillipeasgb5369 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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
@phillipeasgb5369
@phillipeasgb5369 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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
@atlanticpopculture8673 Жыл бұрын
Salut y-t-il eu des changements concernant l’affichage de pile ? , ça ne semble pas marcher pour moi
@formation-video
@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
@atlanticpopculture8673 Жыл бұрын
Tu avais bien raison mon erreur était dû au push_stack Plutôt. Merci ✌️
@formation-video
@formation-video Жыл бұрын
Impeccable 👍
@romaincolonnadistria7025
@romaincolonnadistria7025 5 жыл бұрын
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-video
@formation-video 5 жыл бұрын
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_plaisir2018
@youssef_plaisir2018 4 жыл бұрын
bonjour; pourquoi l'or de la définition d'une pile le pointeur *next est de type struct StackElement ?
@formation-video
@formation-video 4 жыл бұрын
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_plaisir2018
@youssef_plaisir2018 4 жыл бұрын
​@@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-video
@formation-video 4 жыл бұрын
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 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@nassiradouma2024
@nassiradouma2024 2 жыл бұрын
gros merci 🥰
@formation-video
@formation-video 2 жыл бұрын
Je t'en prie, bonne continuation en C 👋
@aliyounsi6567
@aliyounsi6567 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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 ?
@aliyounsi6567
@aliyounsi6567 7 жыл бұрын
FormationVidéo ouais !
@formation-video
@formation-video 7 жыл бұрын
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.
@sebastiencoquil9718
@sebastiencoquil9718 3 жыл бұрын
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-video
@formation-video 3 жыл бұрын
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 👍
@sebastiencoquil9718
@sebastiencoquil9718 3 жыл бұрын
@@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-video
@formation-video 3 жыл бұрын
Oui, sinon on ne pourrait pas modifier notre structure de données 😉
@tanraskn8791
@tanraskn8791 3 жыл бұрын
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-video
@formation-video 3 жыл бұрын
Bonjour, rien qu'à l'écrire tu vois la différence, dans la syntaxe. StackElement masque le pointeur là où Stack ne le fait pas.
@tanraskn8791
@tanraskn8791 3 жыл бұрын
@@formation-video MERCI beaucoup 🙂.... merci de votre aide💙
@formation-video
@formation-video 3 жыл бұрын
De rien 👋
@joeldumortier8043
@joeldumortier8043 3 жыл бұрын
@@formation-video Bonjour, pourrais tu expliquer la notion de masquer le pointeur? Qu'est ce que ca veut dire exactement?
@thecrazzxz3383
@thecrazzxz3383 2 жыл бұрын
Pile ce qu'il fallait !
@lamassonnerie5050
@lamassonnerie5050 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
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 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@joeldumortier8043
@joeldumortier8043 3 жыл бұрын
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-video
@formation-video 3 жыл бұрын
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.
@joeldumortier8043
@joeldumortier8043 3 жыл бұрын
@@formation-video ok merci beaucoup pour ta réponse
@formation-video
@formation-video 3 жыл бұрын
De rien 👋
@maelchemeque2258
@maelchemeque2258 3 жыл бұрын
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-video
@formation-video 3 жыл бұрын
Non, la notation Stack* (et pas *Stack) indique un pointeur vers une structure de type Stack
@maelchemeque2258
@maelchemeque2258 3 жыл бұрын
Ah oui en fait on note StackElement * Stack j'avais pas bien compris que la notation était typedef struct StackElement* Stack
@maelchemeque2258
@maelchemeque2258 3 жыл бұрын
Je voulais parler de la notation Stack du coup
@formation-video
@formation-video 3 жыл бұрын
OK 👍
@purplemyself6792
@purplemyself6792 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
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_42
@Turkish_coffee_42 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
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
@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
@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
@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
@formation-video Жыл бұрын
Non, pas si tu déclares un pointeur pointant vers une structure déjà déclarée : pastebin.com/Bgzr3LpD
@ai.aspirations
@ai.aspirations Жыл бұрын
parfait! et merci
@formation-video
@formation-video Жыл бұрын
👍
@yhanmob6122
@yhanmob6122 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
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 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@yhanmob6122
@yhanmob6122 4 жыл бұрын
la programmation modulaire est-elle nécessaire à la création d'une pile????
@formation-video
@formation-video 4 жыл бұрын
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 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@nathannzieleu8282
@nathannzieleu8282 4 жыл бұрын
Stp, ya t il des fonctions pour modifier les positions des donnes dans une pile?
@formation-video
@formation-video 4 жыл бұрын
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 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@nathannzieleu8282
@nathannzieleu8282 4 жыл бұрын
FormationVidéo ok merci
@lemondeestloeuvredunenfant4633
@lemondeestloeuvredunenfant4633 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
Bonjour, je pense que le mieux est de tester par toi-même pour voir :).
@lemondeestloeuvredunenfant4633
@lemondeestloeuvredunenfant4633 7 жыл бұрын
Tu as raison, j'imagine. Merci encore.
@formation-video
@formation-video 7 жыл бұрын
De rien ;) !
@erragragymohamednacer8506
@erragragymohamednacer8506 4 жыл бұрын
svp quand on depile la premiere valeur alors l adresse de toute la pile est detruite ou bien non ??
@formation-video
@formation-video 4 жыл бұрын
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 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@erragragymohamednacer8506
@erragragymohamednacer8506 4 жыл бұрын
@@formation-video ah merci bcp
@nicolaslecas8131
@nicolaslecas8131 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
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 👍
@nicolaslecas8131
@nicolaslecas8131 4 жыл бұрын
@@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-video
@formation-video 4 жыл бұрын
Parce que c'est une notation avec pointeur, donc forcément, si tu l'enlèves... 😉
@lessystemesembarques6403
@lessystemesembarques6403 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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 ;)
@ghadajouini8181
@ghadajouini8181 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
Bonjour, pourrais-tu me montrer le code complet de ta fonction "push_stack" et comment tu appelles celle-ci dans ta fonction main() ?
@ghadajouini8181
@ghadajouini8181 7 жыл бұрын
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-video
@formation-video 7 жыл бұрын
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
@kevinmunto1683
@kevinmunto1683 3 жыл бұрын
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-video
@formation-video 3 жыл бұрын
Bonjour, tu as du mal faire tes imports, ici cette erreur indique qu'il ne trouve pas de fonction appelée "new_stack"
@formation-video
@formation-video 3 жыл бұрын
Si tu passes par un IDE, tu dois ajouter les fichiers depuis l'éditeur, pas à la main
@kevinmunto1683
@kevinmunto1683 3 жыл бұрын
@@formation-video comment faut il faire svp
@formation-video
@formation-video 3 жыл бұрын
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
@kevinmunto1683
@kevinmunto1683 3 жыл бұрын
@@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_G
@Merlin_G 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
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 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@abdoulazizdiallo4513
@abdoulazizdiallo4513 3 жыл бұрын
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-video
@formation-video 3 жыл бұрын
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 😉
@abdoulazizdiallo4513
@abdoulazizdiallo4513 3 жыл бұрын
Ohh oui compris maintenant merci 👍🏻.
@formation-video
@formation-video 3 жыл бұрын
De rien ;)
@best-songslyrics3582
@best-songslyrics3582 4 жыл бұрын
vous etes un heros haha, vous etes super mon frere =D
@formation-video
@formation-video 4 жыл бұрын
🙂 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ◾ 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_
@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-video
@formation-video 5 жыл бұрын
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_
@HB_ 5 жыл бұрын
@@formation-video C'est très claire, un très grand merci
@Mlamise
@Mlamise 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
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 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@paulemarietouwe1964
@paulemarietouwe1964 4 жыл бұрын
Salut comment faire utiliser la recussivité. Merci.
@paulemarietouwe1964
@paulemarietouwe1964 4 жыл бұрын
comment faire sans utiliser la recursivite
@formation-video
@formation-video 4 жыл бұрын
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 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@nakriamine1925
@nakriamine1925 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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
@jarvisjamarjarvisonlamar5151
@jarvisjamarjarvisonlamar5151 4 жыл бұрын
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-video
@formation-video 4 жыл бұрын
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 ◼ ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖
@jarvisjamarjarvisonlamar5151
@jarvisjamarjarvisonlamar5151 4 жыл бұрын
@@formation-video Ahhhhh c'est vrai, merci mec ^^
@ThiernohadyBarry
@ThiernohadyBarry 9 ай бұрын
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-video
@formation-video 9 ай бұрын
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.
@ThiernohadyBarry
@ThiernohadyBarry 9 ай бұрын
@@formation-video D'accord je comprends merci !!
@formation-video
@formation-video 9 ай бұрын
👍
@connexionvitale
@connexionvitale 6 жыл бұрын
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-video
@formation-video 6 жыл бұрын
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 +---------------------------------------------------------------------------------------------------------------------------------------------+
@alecweinhofer2220
@alecweinhofer2220 5 жыл бұрын
Dans la définition d'une pile dans le .h, est-il important de donner 2 noms à la fonction?
@formation-video
@formation-video 5 жыл бұрын
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 +---------------------------------------------------------------------------------------------------------------------------------------------+
@alecweinhofer2220
@alecweinhofer2220 5 жыл бұрын
@@formation-video 8:52 Tu donnes StackElement et *Stack comme nom. Ne peut-on pas juste mettre StackElement?
@formation-video
@formation-video 5 жыл бұрын
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-vq8pg
@IronMan-vq8pg 2 жыл бұрын
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-video
@formation-video 2 жыл бұрын
Non, pas besoin de commencer avec une structure en particulier, étant donné que leur fonctionnement est différent de l'une à l'autre
@IronMan-vq8pg
@IronMan-vq8pg 2 жыл бұрын
@@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-video
@formation-video 2 жыл бұрын
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-vq8pg
@IronMan-vq8pg 2 жыл бұрын
@@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-video
@formation-video 2 жыл бұрын
Oui, il suffit d'adapter la structure de données 👍
@urxul
@urxul 2 жыл бұрын
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-video
@formation-video 2 жыл бұрын
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.
@urxul
@urxul 2 жыл бұрын
@@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-video
@formation-video 2 жыл бұрын
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é 👍
@urxul
@urxul 2 жыл бұрын
@@formation-video ah c'est plus clair maintenant merci beaucoup
@formation-video
@formation-video 2 жыл бұрын
De rien
@AlhussayniToure
@AlhussayniToure 9 ай бұрын
J' aime vraiment les vidéos mais je n'arrive pas à accéder au code laisser en description
@formation-video
@formation-video 9 ай бұрын
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
Langage C #18 - files
34:02
FormationVidéo
Рет қаралды 72 М.
PILES ET FILES
7:34
Infotéo
Рет қаралды 117 М.
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 61 МЛН
The evil clown plays a prank on the angel
00:39
超人夫妇
Рет қаралды 53 МЛН
Langage C #15 - allocation dynamique mémoire
25:03
FormationVidéo
Рет қаралды 156 М.
Langage C #14 - structures et types
33:22
FormationVidéo
Рет қаралды 228 М.
Langage C #12 - tableaux
42:09
FormationVidéo
Рет қаралды 249 М.
Les piles LIFO | les files FIFO | Empiler | Depiler | Enfiler | Defiler
13:30
Langage C #16 - fichiers
37:12
FormationVidéo
Рет қаралды 209 М.
ASD :  Les piles partie 1 (darija)
15:01
Tech for All
Рет қаралды 77 М.
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 61 МЛН