Bienvenue sur PEBKAC.fr, le site qui recense les anecdotes où l’on se moque des utilisateurs ne maîtrisant pas l’outil informatique. PEBKAC est un acronyme signifiant « Problem Exists Between Keyboard And Chair ».
Le problème se situe entre la chaise et le clavier : soumettez vos histoires, donnez votre avis !
Ce site n'est pas le site original pebkac.fr. Je publie ici la liste des PEBKAC que j'ai pu sauvegarder avant que le site original ne soit mis hors ligne.
Il y a longtemps, alors que j'étais en BTS IRIS, un autre élève a essayé de me convaincre que, pour une variable booléenne bVar, l'algorithme :

Si bVar=FAUX alors
    bVar=VRAI
FinSi
Si bVar=VRAI alors
    bVar=FAUX
FinSi

était équivalent à l'algorithme :

Si bVar=FAUX alors
    bVar=VRAI
Sinon
    bVar=FAUX
FinSi

Le plus consternant, c'est que nous étions déjà en seconde année et que j'allais devoir faire un projet de développement avec ce… PEBKAC.
PEBKAC #8118 proposé par Youplà le 05/07/2013 | 41 commentaires | 👍🏽 👎🏽 +229
bVar = NON bVar ?
Commentaire #100691 écrit par Millman le 05/07/2013 à 12h36 | 👍🏽 👎🏽
En gros l'algo 1 se résume à :
bVar = FAUX

Et l'algo 2 à :
bVar = NON bVar

Edit: Grillé de qq nanosecondes
Commentaire #100692 écrit par mAn le 05/07/2013 à 12h36 | 👍🏽 👎🏽
C'est l'idée. En fait il ne comprenait pas le rôle de "sinon". Vu qu'on était en début de deuxième année, j'ai cru que c'était une blague au début... Hélas, il était tout à fait sérieux.
Commentaire #100693 écrit par Youplà le 05/07/2013 à 12h47 | 👍🏽 👎🏽
"on était" ... c'était il y a combien d'années ?

J'en déduis que monsieur vend des pèse-légumes Apple (en marque blanche) aujourd'hui ?
Commentaire #100695 écrit par Clapiote le 05/07/2013 à 12h52 | 👍🏽 👎🏽
Pour la petite histoire, c'était même un peu plus moche que ça puisqu'il avait déclaré un entier et non un booléen pour une variable à laquelle ne devait être affecté que 0 ou 1 comme valeur.

On a réellement fait un petit projet de prog. ensemble (je ne sais plus de quoi il s'agissait, mais ça devait être en C ou C++), durant lequel j'ai passé pas mal de temps à revoir certaines bases avec lui. Comme il était sympa et de bonne volonté, ça c'est bien passé au final. ;)
Commentaire #100696 écrit par Youplà le 05/07/2013 à 12h54 | 👍🏽 👎🏽
Ça remonte à... réfléchit longuement ...2005 ou 2006. Voire 2007. Depuis, j'ai perdu contact avec lui, mais il a eu son BTS en fin d'année. Comme tout le monde dans notre section cette année là, même ceux qui n'avaient rien glandé pendant 2 ans et qui avaient un truc bancal non fonctionnel à présenter comme projet de fin d'année (ce qui m'a fait sérieusement réfléchir sur la valeur de mon diplôme...)
Commentaire #100697 écrit par Youplà le 05/07/2013 à 12h58 | 👍🏽 👎🏽
Si c'est du C, le type booléen "n'existe" pas de toute manière. ;)
Commentaire #100699 écrit par mAn le 05/07/2013 à 13h05 | 👍🏽 👎🏽
L'histoire est tellement vieille (et mes notions en C tellement rouillées...) que tu ne me surprends guère. J'ai encore en tête une variable du genre "a" déclarée en tant qu'entier.
Je me souviens du coup des deux valeurs 0 et 1 (c'était probablement un flag quelconque) et de la longue discussion sur la différence entre 2 clauses if successives et le couple if / else.

Bah, dans le doute on va dire que c'était bien du C et qu'il avait en raison d'utiliser un entier.^^
Commentaire #100701 écrit par Youplà le 05/07/2013 à 13h17 | 👍🏽 👎🏽
D'où les 1 et les 0 ;)

Comme en SQL (enfin certain SGBD)
Commentaire #100702 écrit par Shadam le 05/07/2013 à 13h18 | 👍🏽 👎🏽
Le premier algorithme ne fonctionnera pas de toutes façons.

Quand la variable est établie à « FAUX », le premier test se fait et elle passe à « VRAI ».
Le problème, c'est que le deuxième test juste derrière se réalise ensuite ! Puisque la variable est établie à « VRAI », elle repasse aussitôt à l'état « FAUX » !

Un PEBKAC, un vrai.
Commentaire #100730 écrit par 240-185 le 05/07/2013 à 15h11 | 👍🏽 👎🏽
captain?
Commentaire #100731 écrit par Myosotys le 05/07/2013 à 15h19 | 👍🏽 👎🏽
Le principe de base du test "si A alors B sinon C" est qu'il n'exécute que B ou C, mais pas les deux. Il s'agit du deuxième algorithme proposé.

Le premier algorithme va d'abord tester si la variable bVar faut FAUX. Si c'est le cas, elle sera mise à VRAI.
Ensuite, si elle est égale à VRAI, il la met à FAUX. Ce sont deux tests séparés exécutés sucessivement, il n'y pas de "sinon".
Autrement dit, que la variable arrive VRAI ou FAUX au début de l'algorithme, elle finit à FAUX.

s'envole vers d'autres explications obvious
Commentaire #100735 écrit par Captain Obvious le 05/07/2013 à 15h52 | 👍🏽 👎🏽
C'est ce que disait mAn plus haut (http://www.pebkac.fr/pebkac/8118/#comment_100692).

Et c'est la raison pour laquelle j'ai vu le fameux problème : il m'a demandé de l'aide parce que son programme ne marchait pas correctement, et c'est ce petit bout de code qui était en effet en cause. S'en est suivit un grand moment quand j'ai réalisé qu'il ne me faisait pas une blague.
Commentaire #100736 écrit par Youplà le 05/07/2013 à 16h13 | 👍🏽 👎🏽
Merci Captain mais là c'était plus une interrogation pour savoir si "240-185" était le Captain ;)
Commentaire #100737 écrit par Myosotys le 05/07/2013 à 16h19 | 👍🏽 👎🏽
Non, c'est trop simple. ;p
Commentaire #100745 écrit par Youplà le 05/07/2013 à 17h41 | 👍🏽 👎🏽
Si ton algo était la seconde solution t'avais quand même les versions courtes
bvar = not bvar;
ou bvar = (bvar?0:1);
Commentaire #100746 écrit par Loutre le 05/07/2013 à 17h46 | 👍🏽 👎🏽
Le deuxième PEBKAC ici c'est d'utiliser l'opérateur de comparaison pour faire un test sur un booléen ...
Commentaire #100750 écrit par seb le 05/07/2013 à 18h05 | 👍🏽 👎🏽
Bon en même temps ce n'est que du pseudo-code, ça ne fait que rendre ces pseudo algos d'exemple un peu plus lisible.

Mais en cas pratique ça le serait.
Commentaire #100756 écrit par mAn le 05/07/2013 à 18h27 | 👍🏽 👎🏽
Hmm, le C99 n'a pas introduit les booléens par hasard ? On sait jamais hein.
Commentaire #100758 écrit par neeko le 05/07/2013 à 18h34 | 👍🏽 👎🏽
Bon, niveau programmation, j'en suis resté à l'assembleur Z80 et au basic... Mais au vu de ce que vous avez expliqué tout au long du fil, avec l'algorithme 1, quelle que soit la valeur de bVar au départ, on se retrouve de toutes façons avec bVar=Faux, c'est bien ça ?
A priori, si j'ai toujours tout bien compris, le problème de la personne citée comme PEBKAC, c'est qu'elle ne comprend pas le fonctionnement de l'instruction FinSi ? Pour tenir le raisonnement expliqué, elle devait croire que l'exécution du programme s'interrompait à partir du moment ou elle rencontrait FinSi, et donc que ce qui se trouvait au delà du FinSi n'était pas exécuté ?
Commentaire #100775 écrit par Araldwenn le 05/07/2013 à 22h33 | 👍🏽 👎🏽
bVAR = FAUX

Et de 5 lignes gâchées, 5 !
Commentaire #100781 écrit par Skefrep le 05/07/2013 à 23h19 | 👍🏽 👎🏽
Dans un algorithme, étrangement, on tâche de rester clair et simple et pas de viser l'optimisation.
Commentaire #100782 écrit par Skefrep le 05/07/2013 à 23h24 | 👍🏽 👎🏽
@ Loutre : Il était surtout question de lui faire comprendre la différence entre les deux. Ensuite, j'étais plus jeune, j'étais en train d'apprendre, je ne prétend donc pas que je faisais des programmes parfaits non-plus...
Commentaire #100787 écrit par Youplà le 06/07/2013 à 00h40 | 👍🏽 👎🏽
Oui, mAn a très bien résumé la différence entre les deux algos (http://www.pebkac.fr/pebkac/8118/#comment_100692)

Très honnêtement, je me souviens plus du cheminement de sa pensée (si je l'ai compris à l'époque), mais le fait est qu'il imaginait que, d'une façon ou d'une autre, le programme allait "sauter" le second test si le premier était avéré.

PS : j'ai appris les bases de la logique de programmation sur du (GFA) Basic, il n'y a aucune honte à n'avoir pas codé sur un quelconque langage plus récent. Quand à l'assembleur... faut vraiment pas avoir du courage pour se lancer dans de la prog. là dedans ! Mais il me semble que quand c'est bien fait, c'est juste énorme comme c'est stable et rapide.^^ (rapide à l'exécution, pas rapide coder, hein...)
Commentaire #100788 écrit par Youplà le 06/07/2013 à 00h44 | 👍🏽 👎🏽
C'est quoi un BTS IRIS ? C'est pour apprendre à faire pousser les fleurs ?
Commentaire #100802 écrit par Tharkun le 06/07/2013 à 12h03 | 👍🏽 👎🏽
XD

Non, IRIS signifie "Informatique et Réseaux pour l'Industrie et les Services techniques". En fait il s'agit de l'ancien BTS "Informatique Industrielle" qui a évolué pour y mettre une partie réseau. Ils en on profité pour le renommer.

http://fr.wikipedia.org/wiki/Informatique_et_r%C3%A9seaux_pour_l%27ind[...]
Commentaire #100806 écrit par Youplà le 06/07/2013 à 14h48 | 👍🏽 👎🏽
Cher Clapiote, sachez que je vends mes pèse-légumes Apple iScale en marque Inox seulement.
Commentaire #100810 écrit par Mr Nezenmoins le 06/07/2013 à 16h10 | 👍🏽 👎🏽
J'ai quand même l'impression qu'on est nombreux à avoir passé un BTS IRIS (anciennement Informatique Industrielle) ici... (Poke @Clem)
Commentaire #100827 écrit par Skefrep le 06/07/2013 à 22h23 | 👍🏽 👎🏽
Possible d'où mes guillemets. Mais en C89/ANSI tel qu'il est encore enseigné non. :)

Pourquoi se focaliser sur le C ANSI ? Peut être parce qu'il est plus facile de passer de cette norme aux autres et de prendre de bonnes habitudes. J'ai des amis issus d'autres établissements qui ont commence immédiatement par un mélange C99/C++, en y ajoutant les extensiions GNU ou Win... je te raconte pas le cassage de dents dès que tu tombes sur un compilateur plus limité ou une bibliothèque C qui refuse les extensions au C.
Commentaire #100829 écrit par mAn le 07/07/2013 à 14h12 | 👍🏽 👎🏽
Et ça me dérange d'autant plus que les PEBKAC sont toujours aussi nombreux dans ce BTS (je passe en seconde année là...) et ce diplôme perd de sa valeur au vu des personnes qui l'ont/l'auront (4 mois d'absence et ça passe en seconde année quand même Grr)
Commentaire #100830 écrit par GrimTyr le 07/07/2013 à 14h19 | 👍🏽 👎🏽
Je pense que les 2 algo correspondent à Non bVar.
Commentaire #100838 écrit par Hahem le 08/07/2013 à 09h41 | 👍🏽 👎🏽
@Youplà : c'est le jour où tu te dis que tu n'as plus rien à apprendre et que tu fais des programmes parfaits que c'est le début de la fin :)
Commentaire #100840 écrit par mini le 08/07/2013 à 11h23 | 👍🏽 👎🏽
Thé ? Café ? Tarte aux pommes ?
Commentaire #100841 écrit par Sarah le 08/07/2013 à 11h52 | 👍🏽 👎🏽
Le salon de thé à ré-ouvert ?
Commentaire #100842 écrit par Cid2Nice le 08/07/2013 à 11h55 | 👍🏽 👎🏽
Je suis médisante...
Je crois que @Clem (moi aussi je suis nostalgique de la RegEx) a un script qui ajoute des nouveaux PEBKAC dès que l'un de nous ouvre le salon de thé...
Commentaire #100843 écrit par Sarah le 08/07/2013 à 12h34 | 👍🏽 👎🏽
Non, ça semble se confirmer :D
Commentaire #100844 écrit par Cid2Nice le 08/07/2013 à 12h37 | 👍🏽 👎🏽
BTS opticien.
Commentaire #100863 écrit par mini le 08/07/2013 à 13h26 | 👍🏽 👎🏽
Je ne sais pas trop ce que je dois répondre, parce que je ne sais pas si c'est un troll, une blague, ou une théorie très sérieuse.
Commentaire #100885 écrit par Youplà le 08/07/2013 à 14h10 | 👍🏽 👎🏽
On a retrouvé votre binôme. :)

23 ans après sa création, Perdu de Vue sait faire encore des miracles. /o/
Commentaire #100948 écrit par mAn le 08/07/2013 à 23h09 | 👍🏽 👎🏽
Vous auriez des cookies ?
Mais des vrais cookies américains, c'est pour les regarder avec mon prisme.
Commentaire #100949 écrit par mAn le 08/07/2013 à 23h12 | 👍🏽 👎🏽
Effectivement j'ai passé ça aussi :)
Commentaire #100994 écrit par Clem le 09/07/2013 à 10h52 | 👍🏽 👎🏽