C'est nécessaire, rien que pour comprendre les problèmes d'arrondis,
comprendre les droits POSIX, etc.
C'est bien plus difficile
de comprendre qu'on affiche une représentation sous forme de caractères
et non un nombre ;)
C'est nécessaire, rien que pour comprendre les problèmes d'arrondis,
comprendre les droits POSIX, etc.
C'est bien plus difficile
de comprendre qu'on affiche une représentation sous forme de caractères
et non un nombre ;)
C'est nécessaire, rien que pour comprendre les problèmes d'arrondis,
comprendre les droits POSIX, etc.
C'est bien plus difficile
de comprendre qu'on affiche une représentation sous forme de caractères
et non un nombre ;)
Après quelques années de recherche, en effet, j'ai finis par
trouver uniquement 5 bouquins
"C Programming -- A modern approach" pour débuter
K&R 2d pour continuer
Harbison & Steele pour consolider
C unsleashe pour en ajouter
La norme....
Le problème des bouquins/tutoriels faciles et faux, c'est
qu'ils sont gentils avec le débutant (c'est facile) mais
qu'il risque de se rendre compte après qu'une partie de ce
qu'il croit juste ne l'est pas.
Comment jugeriez vous un professeur chinois de langue
française qui expliquerait que le français, c'est
facile, et qu'il n'y a que 2 groupes de conjugaisons
des verbes ?
Après quelques années de recherche, en effet, j'ai finis par
trouver uniquement 5 bouquins
"C Programming -- A modern approach" pour débuter
K&R 2d pour continuer
Harbison & Steele pour consolider
C unsleashe pour en ajouter
La norme....
Le problème des bouquins/tutoriels faciles et faux, c'est
qu'ils sont gentils avec le débutant (c'est facile) mais
qu'il risque de se rendre compte après qu'une partie de ce
qu'il croit juste ne l'est pas.
Comment jugeriez vous un professeur chinois de langue
française qui expliquerait que le français, c'est
facile, et qu'il n'y a que 2 groupes de conjugaisons
des verbes ?
Après quelques années de recherche, en effet, j'ai finis par
trouver uniquement 5 bouquins
"C Programming -- A modern approach" pour débuter
K&R 2d pour continuer
Harbison & Steele pour consolider
C unsleashe pour en ajouter
La norme....
Le problème des bouquins/tutoriels faciles et faux, c'est
qu'ils sont gentils avec le débutant (c'est facile) mais
qu'il risque de se rendre compte après qu'une partie de ce
qu'il croit juste ne l'est pas.
Comment jugeriez vous un professeur chinois de langue
française qui expliquerait que le français, c'est
facile, et qu'il n'y a que 2 groupes de conjugaisons
des verbes ?
Voilà, je vais vous laisser sur cette situation. Je continue mon étude avec
les 2 et jusqu'à ce jour, cela fonctionne bien. Je suis aux saisies
formatées de nombres octaux et hexadécimaux.
Les nombres ne sont ni octaux ni hexadécimaux, c'est leur représentation
mathématique qui l'est.
Bon sinon, les saisies formatées en octal et en
hexa !!! mais le débutant s'en fout et ça lui sert à rien pour apprendre
le C, c'est que de la prise de tête,
Voilà, je vais vous laisser sur cette situation. Je continue mon étude avec
les 2 et jusqu'à ce jour, cela fonctionne bien. Je suis aux saisies
formatées de nombres octaux et hexadécimaux.
Les nombres ne sont ni octaux ni hexadécimaux, c'est leur représentation
mathématique qui l'est.
Bon sinon, les saisies formatées en octal et en
hexa !!! mais le débutant s'en fout et ça lui sert à rien pour apprendre
le C, c'est que de la prise de tête,
Voilà, je vais vous laisser sur cette situation. Je continue mon étude avec
les 2 et jusqu'à ce jour, cela fonctionne bien. Je suis aux saisies
formatées de nombres octaux et hexadécimaux.
Les nombres ne sont ni octaux ni hexadécimaux, c'est leur représentation
mathématique qui l'est.
Bon sinon, les saisies formatées en octal et en
hexa !!! mais le débutant s'en fout et ça lui sert à rien pour apprendre
le C, c'est que de la prise de tête,
lorsqu'on souhaite récupérer les informations fournies par l'environnement :
int main(void) /* forme usuelle */
int main(int nbarg, char *argv[]);"
float f= INT_MAX - 7;
Effectivement, ça manque de précautions de contexte mais quand on
s'adresse à des débutants, il faut passer outre ce genre de détail,
lorsqu'on souhaite récupérer les informations fournies par l'environnement :
int main(void) /* forme usuelle */
int main(int nbarg, char *argv[]);"
float f= INT_MAX - 7;
Effectivement, ça manque de précautions de contexte mais quand on
s'adresse à des débutants, il faut passer outre ce genre de détail,
lorsqu'on souhaite récupérer les informations fournies par l'environnement :
int main(void) /* forme usuelle */
int main(int nbarg, char *argv[]);"
float f= INT_MAX - 7;
Effectivement, ça manque de précautions de contexte mais quand on
s'adresse à des débutants, il faut passer outre ce genre de détail,
Justement, le débutant a parfois envie de comprendre, et ce genre
d'exercice est formateur: il faut lire la doc des fonctions de la
bibliothèque, se bagarrer avec les chaines de caractères, plein de
trucs, quoi.
Justement, le débutant a parfois envie de comprendre, et ce genre
d'exercice est formateur: il faut lire la doc des fonctions de la
bibliothèque, se bagarrer avec les chaines de caractères, plein de
trucs, quoi.
Justement, le débutant a parfois envie de comprendre, et ce genre
d'exercice est formateur: il faut lire la doc des fonctions de la
bibliothèque, se bagarrer avec les chaines de caractères, plein de
trucs, quoi.
lorsqu'on souhaite récupérer les informations fournies par l'environnement :
int main(void) /* forme usuelle */
int main(int nbarg, char *argv[]);"
1) la forme canonique est argc.
2) quel rapport avec l'environnement ?
float f= INT_MAX - 7;
Effectivement, ça manque de précautions de contexte mais quand on
s'adresse à des débutants, il faut passer outre ce genre de détail,
Non, c'est justement à des débutants qu'il faut dire dès le
départ qu'il y a, dans le langage C, plein de détails fourbes,
dangeureux, et même chafouins :)
lorsqu'on souhaite récupérer les informations fournies par l'environnement :
int main(void) /* forme usuelle */
int main(int nbarg, char *argv[]);"
1) la forme canonique est argc.
2) quel rapport avec l'environnement ?
float f= INT_MAX - 7;
Effectivement, ça manque de précautions de contexte mais quand on
s'adresse à des débutants, il faut passer outre ce genre de détail,
Non, c'est justement à des débutants qu'il faut dire dès le
départ qu'il y a, dans le langage C, plein de détails fourbes,
dangeureux, et même chafouins :)
lorsqu'on souhaite récupérer les informations fournies par l'environnement :
int main(void) /* forme usuelle */
int main(int nbarg, char *argv[]);"
1) la forme canonique est argc.
2) quel rapport avec l'environnement ?
float f= INT_MAX - 7;
Effectivement, ça manque de précautions de contexte mais quand on
s'adresse à des débutants, il faut passer outre ce genre de détail,
Non, c'est justement à des débutants qu'il faut dire dès le
départ qu'il y a, dans le langage C, plein de détails fourbes,
dangeureux, et même chafouins :)
Mickaël Wolff a écrit :
C'est nécessaire, rien que pour comprendre les problèmes d'arrondis,
Arrondis de flottants ? je vois pas le rapport, explique.
comprendre les droits POSIX, etc.
OK et il y a d'autres situations plus usuelles
Je dis pas que c'est pas utile
mais le vrai débutant lui il va se demander à quoi ça sert, il pourra
pas vraiment comprendre
que beaucoup plus
tard. Donc, inutile de surcharger la barque : "Entities should not be
multiplied beyond necessity".
En tous cas, je me rappelle que quand l'ai vu ça la première fois j'ai
été envahi par un abîme de perplexité : pourquoi diantre représenter les
entiers d'une manière aussi peu commune ? (et là les livres ne
t'expliquent rien).
La question du statut des caractères en C est une des plus
déconcertantes qui soient, tous les livres sont piètres sur cette
question. Là encore, il est assez facile pourtant de faire un exposé
relativement clair au débutant, quitte à lui taire certaines choses.
Mickaël Wolff a écrit :
C'est nécessaire, rien que pour comprendre les problèmes d'arrondis,
Arrondis de flottants ? je vois pas le rapport, explique.
comprendre les droits POSIX, etc.
OK et il y a d'autres situations plus usuelles
Je dis pas que c'est pas utile
mais le vrai débutant lui il va se demander à quoi ça sert, il pourra
pas vraiment comprendre
que beaucoup plus
tard. Donc, inutile de surcharger la barque : "Entities should not be
multiplied beyond necessity".
En tous cas, je me rappelle que quand l'ai vu ça la première fois j'ai
été envahi par un abîme de perplexité : pourquoi diantre représenter les
entiers d'une manière aussi peu commune ? (et là les livres ne
t'expliquent rien).
La question du statut des caractères en C est une des plus
déconcertantes qui soient, tous les livres sont piètres sur cette
question. Là encore, il est assez facile pourtant de faire un exposé
relativement clair au débutant, quitte à lui taire certaines choses.
Mickaël Wolff a écrit :
C'est nécessaire, rien que pour comprendre les problèmes d'arrondis,
Arrondis de flottants ? je vois pas le rapport, explique.
comprendre les droits POSIX, etc.
OK et il y a d'autres situations plus usuelles
Je dis pas que c'est pas utile
mais le vrai débutant lui il va se demander à quoi ça sert, il pourra
pas vraiment comprendre
que beaucoup plus
tard. Donc, inutile de surcharger la barque : "Entities should not be
multiplied beyond necessity".
En tous cas, je me rappelle que quand l'ai vu ça la première fois j'ai
été envahi par un abîme de perplexité : pourquoi diantre représenter les
entiers d'une manière aussi peu commune ? (et là les livres ne
t'expliquent rien).
La question du statut des caractères en C est une des plus
déconcertantes qui soient, tous les livres sont piètres sur cette
question. Là encore, il est assez facile pourtant de faire un exposé
relativement clair au débutant, quitte à lui taire certaines choses.
candide a écrit :Mickaël Wolff a écrit :
C'est nécessaire, rien que pour comprendre les problèmes d'arrondis,
Arrondis de flottants ? je vois pas le rapport, explique.
En fait je faisais allusion aux nombres réels décimaux qui n'ont qu'un
équivalent transcendant binaire. Lorsque j'ai recopié mon premier
programme dans ma TI-80, qui était un programme en Pascal permettant de
calculer les résultats d'une équation du second degré, je ne comprenais
pas pourquoi le programme comparait à 1e-14 au lieu de 0 :) (et pas de
commentaire pour expliquer pourquoi)
Je dis pas que c'est pas utile mais le vrai débutant lui il va se
demander à quoi ça sert, il pourra pas vraiment comprendre
Ça c'est de la pédagogie.
Si on apprend le C sans savoir qu'un
ordinateur est un calculateur fonctionnant avec des nombres binaires, on
est pas rendu.
Lors de ma formation, ça m'a semblé naturel d'apprendre
le langage de la machine avant d'apprendre des langages humains.
que beaucoup plus tard. Donc, inutile de surcharger la barque :
"Entities should not be multiplied beyond necessity".
Faire 0.1 + 0.6 ça peut arrivé très tôt, ainsi que d'afficher une
adresse contenue dans un pointeur.
Quelle idée d'apprendre tout seul ;)
C'est parce que c'est exposé sans explication. Les IO et les chaînes
de caractères sont toujours bâclées. C'est souvent considéré comme
trivial, alors que ce qui est vraiment trivial, à savoir les pointeurs,
est expliqué dans tout les sens.
candide a écrit :
Mickaël Wolff a écrit :
C'est nécessaire, rien que pour comprendre les problèmes d'arrondis,
Arrondis de flottants ? je vois pas le rapport, explique.
En fait je faisais allusion aux nombres réels décimaux qui n'ont qu'un
équivalent transcendant binaire. Lorsque j'ai recopié mon premier
programme dans ma TI-80, qui était un programme en Pascal permettant de
calculer les résultats d'une équation du second degré, je ne comprenais
pas pourquoi le programme comparait à 1e-14 au lieu de 0 :) (et pas de
commentaire pour expliquer pourquoi)
Je dis pas que c'est pas utile mais le vrai débutant lui il va se
demander à quoi ça sert, il pourra pas vraiment comprendre
Ça c'est de la pédagogie.
Si on apprend le C sans savoir qu'un
ordinateur est un calculateur fonctionnant avec des nombres binaires, on
est pas rendu.
Lors de ma formation, ça m'a semblé naturel d'apprendre
le langage de la machine avant d'apprendre des langages humains.
que beaucoup plus tard. Donc, inutile de surcharger la barque :
"Entities should not be multiplied beyond necessity".
Faire 0.1 + 0.6 ça peut arrivé très tôt, ainsi que d'afficher une
adresse contenue dans un pointeur.
Quelle idée d'apprendre tout seul ;)
C'est parce que c'est exposé sans explication. Les IO et les chaînes
de caractères sont toujours bâclées. C'est souvent considéré comme
trivial, alors que ce qui est vraiment trivial, à savoir les pointeurs,
est expliqué dans tout les sens.
candide a écrit :Mickaël Wolff a écrit :
C'est nécessaire, rien que pour comprendre les problèmes d'arrondis,
Arrondis de flottants ? je vois pas le rapport, explique.
En fait je faisais allusion aux nombres réels décimaux qui n'ont qu'un
équivalent transcendant binaire. Lorsque j'ai recopié mon premier
programme dans ma TI-80, qui était un programme en Pascal permettant de
calculer les résultats d'une équation du second degré, je ne comprenais
pas pourquoi le programme comparait à 1e-14 au lieu de 0 :) (et pas de
commentaire pour expliquer pourquoi)
Je dis pas que c'est pas utile mais le vrai débutant lui il va se
demander à quoi ça sert, il pourra pas vraiment comprendre
Ça c'est de la pédagogie.
Si on apprend le C sans savoir qu'un
ordinateur est un calculateur fonctionnant avec des nombres binaires, on
est pas rendu.
Lors de ma formation, ça m'a semblé naturel d'apprendre
le langage de la machine avant d'apprendre des langages humains.
que beaucoup plus tard. Donc, inutile de surcharger la barque :
"Entities should not be multiplied beyond necessity".
Faire 0.1 + 0.6 ça peut arrivé très tôt, ainsi que d'afficher une
adresse contenue dans un pointeur.
Quelle idée d'apprendre tout seul ;)
C'est parce que c'est exposé sans explication. Les IO et les chaînes
de caractères sont toujours bâclées. C'est souvent considéré comme
trivial, alors que ce qui est vraiment trivial, à savoir les pointeurs,
est expliqué dans tout les sens.
2) quel rapport avec l'environnement ?
Curieuse cette question. C'est l'environnement qui est considéré comme
l'appelant de main() et c'est à lui que main() retourne le int
Non, c'est justement à des débutants qu'il faut dire dès le
départ qu'il y a, dans le langage C, plein de détails fourbes,
dangeureux, et même chafouins :)
Oui, il faut dire qu'il y a des détails (et pas seulement des détails)
comme tu dis mais ne pas donner ces détails.
> Ignorantam sum....
Un attribut du sujet à l'accusatif ? C'est la grammaire latine réformée ?
2) quel rapport avec l'environnement ?
Curieuse cette question. C'est l'environnement qui est considéré comme
l'appelant de main() et c'est à lui que main() retourne le int
Non, c'est justement à des débutants qu'il faut dire dès le
départ qu'il y a, dans le langage C, plein de détails fourbes,
dangeureux, et même chafouins :)
Oui, il faut dire qu'il y a des détails (et pas seulement des détails)
comme tu dis mais ne pas donner ces détails.
> Ignorantam sum....
Un attribut du sujet à l'accusatif ? C'est la grammaire latine réformée ?
2) quel rapport avec l'environnement ?
Curieuse cette question. C'est l'environnement qui est considéré comme
l'appelant de main() et c'est à lui que main() retourne le int
Non, c'est justement à des débutants qu'il faut dire dès le
départ qu'il y a, dans le langage C, plein de détails fourbes,
dangeureux, et même chafouins :)
Oui, il faut dire qu'il y a des détails (et pas seulement des détails)
comme tu dis mais ne pas donner ces détails.
> Ignorantam sum....
Un attribut du sujet à l'accusatif ? C'est la grammaire latine réformée ?
Si le train dans lequel tu te trouves tombe en
panne, t'as pas besoin, en tant que voyageur, de connaitre la nature
exacte de la panne.
Si le train dans lequel tu te trouves tombe en
panne, t'as pas besoin, en tant que voyageur, de connaitre la nature
exacte de la panne.
Si le train dans lequel tu te trouves tombe en
panne, t'as pas besoin, en tant que voyageur, de connaitre la nature
exacte de la panne.