Partage
  • Partager sur Facebook
  • Partager sur Twitter

Refonte du cours C

Anonyme
18 mai 2017 à 22:22:53

Socrate n'est pas mignon coïncidence je ne pense pas !

michelbillaud a écrit:

socrate est mortel, les chats sont mortels, ça ne peut pas être une coincidence



  • Partager sur Facebook
  • Partager sur Twitter
8 juillet 2017 à 16:05:57

Salut, je vais faire un tuto pour apprendre à faire une affichage graphique avec SFML sur le C, ça serait bien que tu y jettes un coup d'œil une fois terminé et peut être tu vas l'intégrer au tuto.
  • Partager sur Facebook
  • Partager sur Twitter
Et Dieu dit "que l'informatique soit" et l'informatique fut, et Dieu vit que c'était bon.
18 juillet 2017 à 18:36:17

Bonjour à tous,

j'ai une petite question. Lorsque je réalise les exercices sur les tableaux, le compilateur m'indique certaines fois que je dois entrer des paramètres différents dans ma fonction main :

Je mets : int main(int argc, char *argv[])

Et le compilateur me dit de mettre : int main(int argc, char **argv[])

Pourriez-vous m'éclairer et m'expliquer pourquoi les paramètres changent ?

Merci d'avance.

  • Partager sur Facebook
  • Partager sur Twitter
18 juillet 2017 à 18:41:51

C'est quoi le rapport avec le sujet de ce fil ?

  • Partager sur Facebook
  • Partager sur Twitter

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

18 juillet 2017 à 18:59:13

Je découvre vraiment en retard ce topic.

Il y a eu des actions dans ce sens depuis ?

  • Partager sur Facebook
  • Partager sur Twitter
19 juillet 2017 à 21:31:30

Bonjour,

Je ne vous donnerais pas mon avis sur ce qui manque (ou pas) a ce cours car je suis newbie total (enfin, on est en 2017, je sais installer un logiciel, quoi qu'on en dise ! :-) ).

Par contre, ce cours a quelque chose de fantastique, et je sais de quoi je parle car j'ai enseigné durant 12 ans : c'est sa pédagogie.

M.Nebra a su insuffler de l'humour, un rythme et un langage avec la valeur la plus importante en pédagogie, celle de se mettre au niveau de celui qui reçoit le cours.

"Cours" n'est d'ailleurs par vraiment le terme adapté car cela implique le plus souvent un tête à tête avec son professeur, voire un groupe d'élèves (ou de stagiaires) qui développent une entraide, une dynamique de groupe. Hors là, on est seul devant son écran avec même pas une hotline à appeler :-) (ah si, le forum est là, merci à vous d'ailleurs ).

Tout ça pour dire : "on sait ce qu'on perd, on ne sais pas ce que l'on gagne" comme on dit par chez moi. Donc, perso, je voterais pour éventuellement enrichir ce cours, mais certainement pas pour le ré-ecrire.

Quant à l'aspect "un débutant doit il débuter par C ?", encore une fois, je ne sais pas. La seule chose que je pense avoir compris, c'est que le C est compliqué de par son bas-niveau (ce qui pousse à une certaine logique de langage dans le codage), simple de par les "fautes" qu'il laisse passer (pour ne pas dégoutter tout de suite), encore d'actualité (notamment vers les objets intelligents)  , et constitue une bonne passerelle vers le C++ pour la suite ... Après, je peux me tromper, je débute!

  • Partager sur Facebook
  • Partager sur Twitter
19 juillet 2017 à 21:52:00

Larguez-tout ! a écrit:

M.Nebra a su insuffler de l'humour, un rythme et un langage avec la valeur la plus importante en pédagogie, celle de se mettre au niveau de celui qui reçoit le cours.

Certes mais il ne faut pas que ça implique des inexactitude menant à des choses à ne pas faire. Cf par exemple les allocations de ressources non contrôlées à divers endroits, ce qui est mal car c'est nécessaire en C.

Larguez-tout ! a écrit:

Donc, perso, je voterais pour éventuellement enrichir ce cours, mais certainement pas pour le ré-ecrire.

Quand on s'enfonce dans un cours pour regarder ce qui doit être revu, on commence à tirer sur un fil et on s'aperçoit parfois que c'est l'ensemble qui pose problème. C'est par exemple ce qui s'est passé quand on a fait la review profonde du tutoriel de C++. Au début on pensait qu'il y avait quelque chose à faire avec, la réalité est tout autre, c'est irrémédiablement cassé.

Larguez-tout ! a écrit:

La seule chose que je pense avoir compris, c'est que le C est compliqué (1) de par son bas-niveau ( (2) ce qui pousse à une certaine logique de langage dans le codage), (3) simple de par les "fautes" qu'il laisse passer (pour ne pas dégoutter tout de suite), encore d'actualité (notamment vers les objets intelligents)  , (4) et constitue une bonne passerelle vers le C++ pour la suite ... Après, je peux me tromper, je débute!

(1) Ce point est inhérent au bas niveau mais pas au langage en lui même. Les tâches de bas niveau sont généralement complexes mais le tutoriel n'aborde pas ces éléments.

(2) Malheureusement, et c'est ça qu'on reproche généralement à C (pas que pour l'enseignement, de manière générale), c'est justement le fait qu'il n'y pousse pas du tout. Et ça implique justement qu'on doit faire soi-même cet effort si on veut écrire en C correctement. Et c'est d'autant plus dur que ...

(3) ... justement laisser passer les fautes, ça n'aide personne. Une erreur en C, ce n'est pas un programme qui crashe. C'est un programme qui aura ou pas un comportement erratique, comportement qui pourra apparaître après avoir fait des modifications à mille lieues du bug. Et ça c'est sans compter sur le fait que la norme comprend un paquet de ces situations, très dures à détecter, où le programme va avoir un comportement indéterminé. Et c'est le deuxième reproche qui est fait le plus souvent à ce langage.

Ces trois points induisent le point général suivant : coder en C, ça demande une discipline en acier et un usage de tous les outils qui sont à disposition pour produire du code de qualité, ce que le tutoriel ... n'aborde pas, du tout.

(4) De manière générale, les langages ne sont que très rarement des passerelles vers d'autres langages. Quand on veut apprendre un langage, on en apprend pas un autre avant pour mieux y arriver : on apprend directement le langage voulu. En revanche, ce qu'on constate généralement c'est qu'apprendre C avant C++ rend l'apprentissage de C++ vraiment beaucoup plus difficile parce que certaines choses qui sont habituelles en C et très déconseillées en C++ sont toujours possibles, et il est très dur pour l'apprenant de perdre ses habitudes du C pour faire du C++. L'inverse est plus facile car les choses spécifiques et habituelles en C++ sont très souvent inexistantes en C.

  • Partager sur Facebook
  • Partager sur Twitter

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

19 juillet 2017 à 22:16:03

Larguez-tout ! a écrit:

Par contre, ce cours a quelque chose de fantastique, et je sais de quoi je parle car j'ai enseigné durant 12 ans : c'est sa pédagogie.

M.Nebra a su insuffler de l'humour, un rythme et un langage avec la valeur la plus importante en pédagogie, celle de se mettre au niveau de celui qui reçoit le cours.

[...] Tout ça pour dire : "on sait ce qu'on perd, on ne sais pas ce que l'on gagne" comme on dit par chez moi. Donc, perso, je voterais pour éventuellement enrichir ce cours, mais certainement pas pour le ré-ecrire.

Entièrement d'accord ! Surtout sur le premier point, car plutôt qu'enrichir, je dirais : moderniser (parler du C99 ou du C11, présenter une version récente de la SDL) et corriger (il paraît qu'il y a des erreurs). Il existe plein de cours de C sur Internet, et même un certain nombre en français, mais celui-ci est unique pour sa pédagogie (idem pour le cours de Linux, d'ailleurs), et je trouve que ce serait une perte de le remplacer par un autre cours qui risque de ne pas apporter grand chose par rapport aux autres. (Par contre j'imaginerais bien un deuxième cours, plus « professionnel », qui lui serait complémentaire.)

-
Edité par robun 19 juillet 2017 à 22:17:08

  • Partager sur Facebook
  • Partager sur Twitter
19 juillet 2017 à 23:02:09

Je ne vois pas pourquoi il y a lieu d'une polémique. Ça ne servirait à rien de refaire ce tutoriel, il y en a des tonnes de bon. Alors pourquoi se procurer d'inutiles efforts ( mis-à-part par plaisir ) ( je parle en tant que communauté ) ? Il comporte de mauvaises pratiques, soit. Mais un lecteur, somme toute curieux, se rendra compte de ces procédés condamnables, et s'il souhaite progresser ( ça s'apparente surement à une perdre de temps ), les corrigera de sa conscience ( en lisant d'autres sources ). En tout cas, c'est ce que j'ai fait ( je ne me jette pas des fleurs, loin de là ), l'erreur nous fait progresser et conscientiser quoi de mieux ? Je plussoie que ce n'est pas le meilleur des chemins, mais c'est un des moins pires.

-
Edité par Blender+C 19 juillet 2017 à 23:03:05

  • Partager sur Facebook
  • Partager sur Twitter
Référez-vous aux créateurs ( ou à ceux qui le maintiennent ), parce que, qui connait mieux un objet que ceux qui l'ont façonné ( entretenu ) ?
19 juillet 2017 à 23:17:37

Ben non, le lecteur débutant, qui par définition n'est pas compétent, ne va pas du tout se rendre compte qu'on lui inculque de mauvaises pratiques.

Ce qui caractérise une bonne ou mauvaise pratique, c'est ce que ça donne sur le long terme. Après des années.

Sans compter que ce qu'on voit en premier donne une forte imprégnation, il sera d'autant difficile de changer.

-
Edité par michelbillaud 19 juillet 2017 à 23:19:02

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2017 à 0:25:57

Le C n'est pas un mauvais langage, mais qui demande une grande rigueur.
Laisser de mauvaise habitude (+ effet d'ancrage qui fait qu'il est difficile de se débarrasser d'une première expérience) ou ne pas être rigoureux dans ce qui est enseigné ne peut pas apporté de choses positives au moyen-long terme.

Un lecteur va supposer que ce qui est dit dans un tutoriel est ... vrai et représente une bonne manière de faire. Et quand on débute , on ne peux pas tout remettre en question non plus surtout quand on se sait pas ce qui est vrai et ce qui est faux...


S'il faut faire une refonte, je suis volontaire sur mon temps libre.
Mais je n'ai pas envie de perdre mon temps non plus.

1) Il existe déjà de très bon tuto C
2) C'est horriblement chronophage, surtout au niveau de la rigueur
3) Ce ne sera sûrement pas sur openclassroom (les MOOC, tout ça...), peut être sur zds ou bien devellopez (mais du coup... est-ce toujours utile ?)

-
Edité par neuneutrinos 20 juillet 2017 à 0:27:01

  • Partager sur Facebook
  • Partager sur Twitter
20 juillet 2017 à 8:42:13

Wala.

Et quant à "pourquoi faire ?", la réponse est "parce que tous les débutants viennent ici", donc l'impact du tutoriel est élevé, y compris quand ça va dans le mauvais sens.

  • Partager sur Facebook
  • Partager sur Twitter

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C

3 août 2017 à 14:44:47

Le sujet n'est déjà pas folichon, si vous vous mettez à poster n'importe quoi en prime, ça n'aide pas.

J'ai supprimé toutes les interventions inutiles et j'ai mis un avertissement sur tous les utilisateurs, je serai bien moins clément à l'avenir.

  • Partager sur Facebook
  • Partager sur Twitter

Je ne suis plus modérateur, ne me contactez plus pour des demandes, je n'y répondrai pas.

10 août 2017 à 15:09:45

Bonjour à tous ,

je suis débutant en C , je me permet d'intervenir juste pour dire que j'ai pas mal galéré pour l'installation de la SDL2 car la version utilisé est ancienne sur le tuto . et pas mal de constantes/fonctions sont obsolète à ce jour (ex. SDL_SetVideoMode remplacé par SDL_CreateWindow)

j'ai fait des recherches de long haleine  mais cela aurait pu m'épargner plusieurs heures si rien qu'une petite note sur le cours m'aurait dit

"pour les versions SDL2 veuillez vous débrouiller , ce tuto ne le prend pas en charge" .


Voilà je voulais apporter un point de vue débutant afin que vous vous rendiez compte que quand on arrive on ne sait pas du tout ce qu'est une bibliothèque, que ça diffère en fonction des versions etc ...
 

j'espère que j'ai posté au bon endroit.
Merci à vous si vous tenez en compte mon commentaires !

-
Edité par PseudoSimple 10 août 2017 à 15:10:15

  • Partager sur Facebook
  • Partager sur Twitter
Pourquoi ? Pourquoi ? Pourquoi ?
11 août 2017 à 11:07:06

PseudoSimple a écrit:

Voilà je voulais apporter un point de vue débutant afin que vous vous rendiez compte que quand on arrive on ne sait pas du tout ce qu'est une bibliothèque, que ça diffère en fonction des versions etc ...

j'espère que j'ai posté au bon endroit.
Merci à vous si vous tenez en compte mon commentaires !

Je pense que tout le monde est tout à fait au courant des difficultés auxquelles le débutant doit se confronter.

Le problème est que le cours n'est pas à jour, et que celui qui l'a écrit (qui ne vous lit pas, et à qui le site fait gagner de l'argent) n'a pas l'intention de le mettre à jour.

Et que par ailleurs, produire un cours de C décent et moderne (sans parler de le maintenir ensuite) ça demande un boulot assez conséquent que peu de gens ont envie de faire gratuitement.  Surtout qu'on peut  légitimement se demander (*) si faire un cours de programmation pour débutant basé sur C est une idée très intelligente.

(*) en fait on se le demande pas : chacun sait qu'il existe d'excellents langages pour apprendre à programmer plus rapidement et plus proprement des applications intéressantes qui marchent, et que le savoir-faire acquis est ensuite transférable facilement pour apprendre C, qui est un langage relativement fruste.

-
Edité par michelbillaud 11 août 2017 à 11:10:28

  • Partager sur Facebook
  • Partager sur Twitter
11 août 2017 à 21:41:27

Bonjour ,

mateo21 parti ? ou continue -t-il toujours d'écrire les cours ?.

c'est aussi très trompeur car juste en haut à droite du cours on peut voir Mis à jour le mardi 25 juillet 2017

Merci pour ton avis tout de même, justement tes précisions sur le C devrait être au début du cours afin d'éviter de faire perdre du temps .

  • Partager sur Facebook
  • Partager sur Twitter
Pourquoi ? Pourquoi ? Pourquoi ?
12 août 2017 à 11:04:38

Je n'en sais rien. Je suis un utilisateur de base qui pose des questions et écrit des réponses à ses moments perdus .

Faut dire ca à ceux qui gèrent le site et écrivent/maintiennent des cours.

-
Edité par michelbillaud 12 août 2017 à 16:01:20

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
14 août 2017 à 21:20:21

Un vrai exercice  sur la pratique en partie 2  , parce que donnez moi  la définition d 'un pointeur ,  c 'est un peu léger comme exercice ...
  • Partager sur Facebook
  • Partager sur Twitter
15 août 2017 à 14:39:48

Pas faux, en gardant tout de même cet exercice car il est intéressant (à la limite facultatif  ) et linker les exercices donnés par le forum
  • Partager sur Facebook
  • Partager sur Twitter
Pourquoi ? Pourquoi ? Pourquoi ?
15 août 2017 à 16:53:04

Déjà, ça contient des trucs qui embrouillent. Exemple <<

Où je veux en venir avec tout ça ? Eh bien en fait, je veux vous faire retenir ceci :

  • age: désigne la valeur de la variable ;

  • &age: désigne l'adresse de la variable.

Avec age, l'ordinateur va lire la valeur de la variable en mémoire et vous renvoie cette valeur. Avec &age, votre ordinateur vous dit en revanche à quelle adresse se trouve la variable.

>>

Bin, perdu. "age", c'est pas la valeur, c'est pas l'adresse, c'est le _nom_ de la variable. Quand on écrit age = 2; l'ordinateur ne renvoie pas la valeur.  Le rédacteur confond deux choses, l'évaluation, et l'utilisation comme référence à une donnée (destination d'une affectation).

Plus loin, mêmes embrouilles. Non, on ne "crée" pas un pointeur, on le _déclare_. Non, l'opération * ne permet pas d'obtenir la _variable_ sur laquelle pointe un pointeur, ça donne une référence à la _donnée_ supposée contenue à l'emplacement indiqué par la valeur contenue dans le pointeur.

Quant à la déclaration comme quoi personne n'a jamais compris les pointeurs du premier coup : il parle pour lui, comme excuse pour des explications dont il n'arrive pas à se dépatouiller faute de rigueur (confusion entre variables et données, etc).

-
Edité par michelbillaud 15 août 2017 à 22:08:45

  • Partager sur Facebook
  • Partager sur Twitter
15 août 2017 à 21:15:05

En fait ce serait tout simplement bien si l’article soit ouvert au modification par la communauté comme sur Wikipédia ou Ubuntu-fr . Parce que je sais que rédiger un cours est une tache fastidieuse mais sérieusement ca n'a pas l'air de gêner les éditeurs que là leurs informations soit complètement erroné et obsolète quitte à mener les débutants sur une fausse piste qui ont confiance au site , sans même, au moins ne serait-ce qu'une indication pour dire que le cours est obsolète c'est si compliqué que ça ? parce que là ça entraine perte de temps, de motivation , on ne sait plus ce qui est source fiable on est sincèrement perdu... un petit message marqué sur le cours ne ferais pas de mal.

-
Edité par PseudoSimple 15 août 2017 à 21:19:32

  • Partager sur Facebook
  • Partager sur Twitter
Pourquoi ? Pourquoi ? Pourquoi ?
15 août 2017 à 22:08:24

  • Y peut être un problème de droit d'auteur.
  • non, je ne pense pas que ça les gêne

Et un wiki, j'y crois pas trop. Il y a trop de manières divergentes de présenter les choses, ça serait la guerre.

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
15 août 2017 à 22:23:43

Non mais c 'est clair que c 'est mort  , Openclassroom , c 'est axé web,mobile car c 'est le plus "bankable " suffit de regarder dans les parcours   le seul langage non web ou mobile présent  c 'est python  .

Après  ceci n 'est pas honteux c 'est une société Openclassroom  c 'est fini  le sdz .

-
Edité par Anonyme 15 août 2017 à 22:32:00

  • Partager sur Facebook
  • Partager sur Twitter
15 août 2017 à 22:49:34

d'accord avec vous (en gardant une réserve car je ne suis encore que débutant en C mais je vois que les langages dédié au web/ mobile sont l'avenir et à la mode)
Mais j’espère et je le supplie qu'un contributeur lise nos messages et mettent rien qu'une petite indication "ce cours a été rédigé il y a  5 ans et peut être obsolètes" car j'ai perdu tellement de temps à comprendre et je ne veux pas que d'autre débutant tombe dans le panneau en faisant confiance au cours.

-
Edité par PseudoSimple 15 août 2017 à 22:49:59

  • Partager sur Facebook
  • Partager sur Twitter
Pourquoi ? Pourquoi ? Pourquoi ?
16 août 2017 à 5:47:06

Quelques remarques :

1) Je trouve trompeur de dire que 'age' est le nom de la variable, et non pas la valeur de la variable. Je trouve ça aussi trompeur que de dire le contraire. Dans un calcul (calcul arithmétique ou expression conditionnel), c'est la valeur des variables qui est utilisée. Si j'écris « x = y + z » ou « if ((x && y) || z) », il s'agit bien des valeurs de x, y et z, non pas de leurs noms.

Dans mon esprit, ça marche comme ça :

─ Une variable est une entité abstraite qui modélise une donnée. Elle a un nom, un type, une valeur et une adresse.

─ Selon le contexte, le nom de la variable peut décrire son nom ou sa valeur (à gauche du signe égal, c'est en général son nom ; à droite ou en argument de fonction, c'est en général sa valeur).

> Quand on écrit age = 2; l'ordinateur ne renvoie pas la valeur.

Pourtant « age = 2 » est une expression qui a pour valeur 2.

2) Je ne trouve pas que le cours est obsolète. C'est le C89 et la SDL 1.2 qui sont obsolètes. Le C89 est quand même proche du C moderne (il n'a pas évolué aussi vite que d'autres langages), donc apprendre le C89 n'est pas forcément une mauvaise idée (sauf peut-être dans un but professionnel ?). J'ai suivi ce cours il y a quelques années et je n'ai pas perdu mon temps puisque, pour la première fois, et grâce à ce cours, je me suis senti à l'aise en C (après plusieurs tentatives d'apprendre ce langage). Ce cours a de vraies qualités pédagogiques, et peut-être que sa première qualité est qu'il est la hauteur de gens comme moi (programmeur du dimanche) alors qu'on trouve d'autres cours peut-être plus modernes ou plus rigoureux, mais adaptés à des étudiants ou des professionnels (d'ailleurs ce que je dis rejoint la préface du livre).

Mais je sais que je réagis par rapport à ce qu'était le Site du Zéro, qui avait pour ambition d'encourager les internautes à programmer, et non par rapport à ce qu'est devenu Open Classrooms, qui prétend faire de la formation professionnelle.

Bref, pour moi (mais je l'ai déjà dit) l'urgent est surtout de mettre à jour la partie sur la SDL.

  • Partager sur Facebook
  • Partager sur Twitter
16 août 2017 à 9:50:42

robun a écrit:

Quelques remarques :

1) Je trouve trompeur de dire que 'age' est le nom de la variable, et non pas la valeur de la variable. Je trouve ça aussi trompeur que de dire le contraire. Dans un calcul (calcul arithmétique ou expression conditionnel), c'est la valeur des variables qui est utilisée. Si j'écris « x = y + z » ou « if ((x && y) || z) », il s'agit bien des valeurs de x, y et z, non pas de leurs noms.

Dans mon esprit, ça marche comme ça :

Ben ça marche pas bien dans ton esprit :-). Il y a trois choses à distinguer, le nom, l'emplacement que ça désigne en mémoire (1), et la donnée contenue à cet emplacement.  Quand tu écrit "x = y + z", le nom x désigne l'emplacement où atterrira la somme de la valeur contenue dans l'emplacement désigné par le nom x et celle de y.  Donc le x n'intervient pas en tant que valeur.

Autre objection

 Quand on écrit age = 2; l'ordinateur ne renvoie pas la valeur.

Pourtant « age = 2 » est une expression qui a pour valeur 2.

Je me suis peut être mal exprimé, je corrige "quand on écrit age = 2, l'ordinateur ne renvoie pas la valeur" pour le nom de la variable. (2)

De toute façon, qu'est ce que ça veut dire "renvoyer la valeur" ?   Quand j'écris l'instruction "age = 2;" comme ça l'ordinateur n'exécute aucune action qui transmettrait la valeur de la variable, non la valeur de l'instruction non plus.(3)

La réalité, c'est qu'au niveau du langage, l'affectation a bien une valeur, mais si cette valeur n'est pas utilisée, l'ordinateur ne renvoie rien à personne, et ce n'est pas une bonne idée de le laisser croire à des débutants.

---

(1) en faisant comme si les variables avaient forcément un emplacement en mémoire, ce qui est faux (elles peuvent être contenues dans des registres si elles ont une faible durée de vie, voire éliminées par optimisation), mais c'est une approximation acceptable.

(2) ce dont il était question dans le contexte.

(3) là c'est confusion entre ce qu'on peut écrire et ce qui se passe.



-
Edité par michelbillaud 16 août 2017 à 9:55:28

  • Partager sur Facebook
  • Partager sur Twitter
16 août 2017 à 9:58:41

> Quand tu écrit "x = y + z", le nom x désigne l'emplacement où atterrira la somme de la valeur contenue dans l'emplacement désigné par le nom x et celle de y.  Donc le x n'intervient pas en tant que valeur.
. 
Oui c'est bien ce que je dis ! 'x' peut désigner à la fois le nom de la variable (à gauche du signe égal) ou son contenu (à droite du signe égal). Ici, 'x' est à gauche, c'est le nom. Par contre, ce sont les valeurs valeurs contenues dans 'y' et 'z' qui sont utilisées dans la somme, pas leur nom.

-
Edité par robun 16 août 2017 à 9:59:03

  • Partager sur Facebook
  • Partager sur Twitter
16 août 2017 à 10:14:20

robun a écrit:

> Quand tu écrit "x = y + z", le nom x désigne l'emplacement où atterrira la somme de la valeur contenue dans l'emplacement désigné par le nom x et celle de y.  Donc le x n'intervient pas en tant que valeur.
. 
Oui c'est bien ce que je dis ! 'x' peut désigner à la fois le nom de la variable (à gauche du signe égal) ou son contenu (à droite du signe égal). Ici, 'x' est à gauche, c'est le nom. Par contre, ce sont les valeurs valeurs contenues dans 'y' et 'z' qui sont utilisées dans la somme, pas leur nom.

-
Edité par robun il y a moins de 30s

Bin non ce n'est pas tout à fait ce que tu dis.   x, y, z _sont_ toujours des noms, des identificateurs (ou alors il va falloir se mettre d'accord sur la signification du verbe être). Ils ne sont pas tantot ceci tantot cela. Ces noms désignent des emplacements. et ces emplacements contiennent une donnée.  Quand ils font l'objet d'une évaluation, c'est la donnée qui constitue la valeur (sauf si on évalue &x, auquel cas c'est l'adresse de l'emplacement). Et quand ils sont en "left-value", c'est l'emplacement. Et l'affectation ne met pas quelque chose dans le nom, mais dans l'emplacement.

Mais peu importe. Ce que j'expliquais, c'est que la phrase du cours "age renvoie la valeur de la variable" est une inexactitude, qui oublie bêtement que les variables apparaissent aussi à gauche. Précédée par "je veux que vous reteniez bien ceci", pour faire bon poids.

Sinon, effectivement, les versions successives de C ont forcément un fort air de famille. Donc autant utiliser les facilités des dernières versions, plutot que de se contraindre en se limitant aux vieilleries.

-
Edité par michelbillaud 16 août 2017 à 10:25:16

  • Partager sur Facebook
  • Partager sur Twitter
16 août 2017 à 10:36:21

&robun, je te conseille vraiment de faire du langage d'assemblage ( celui de ton architecture par exemple ) et analyser le code produit. On en apprend beaucoup sur nos illusions.

-
Edité par BecomeDoyouwhattobe 16 août 2017 à 10:37:30

  • Partager sur Facebook
  • Partager sur Twitter
16 août 2017 à 10:49:22

Pas de grosse différence entre vulgarisation et inexactitude...

et cette partie n'est pas la pire au niveau des variables de base...

  • Partager sur Facebook
  • Partager sur Twitter