IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Le C en 20 h [Livres]


Sujet :

C

  1. #1
    Expert éminent sénior
    Avatar de Lana.Bauer
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    novembre 2012
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : novembre 2012
    Messages : 5 382
    Points : 12 112
    Points
    12 112
    Par défaut Le C en 20 h
    Salut,

    Si vous voulez apprendre le C en 20 h c'est le livre que vous cherchez :

    Cet ouvrage se propose de vous faire découvrir par la pratique toutes les bases essentielles du langage C. Destiné aux débutants, fruit de l'expérience pédagogique d'Eric Berthomier et Daniel Schang, l'ouvrage n'est pourtant pas un manuel comme les autres. Son intérêt est d'être parcouru de A à Z en suivant l'adage : « j'apprends le code en écrivant le code ».

    Testée par de nombreux étudiants qui n'avaient aucune connaissance préalable du Langage C, la méthode développée par les auteurs permet d'effectuer un apprentissage complet en une durée de 20 à 30 heures de travail.
    Bonne lecture !

  2. #2
    Expert confirmé

    Inscrit en
    août 2006
    Messages
    3 882
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 882
    Points : 5 512
    Points
    5 512
    Par défaut
    Soe,

    Le C complet en 20 à 30 heures !

    Les malheureux, ils vont vers de cruelles désillusions.
    "Mon pied droit est jaloux de mon pied gauche.
    Quand l'un avance, l'autre veut le dépasser.
    Et moi, comme un imbécile, je marche !"
    [Raymond Devos]

  3. #3
    Membre éclairé
    Inscrit en
    juillet 2012
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : juillet 2012
    Messages : 231
    Points : 869
    Points
    869
    Par défaut
    Pas forcément.

    Si tu lis correctement la description de l’ouvrage tu vas voir ça :
    Cet ouvrage se propose de vous faire découvrir par la pratique toutes les bases essentielles du langage C.
    Les bases du C ne sont pas terriblement difficile, et il n’y pas de concepts terriblement compliqués dedans (non, les pointeurs ce n’est pas compliqué).
    Donc oui
    un apprentissage complet [de toutes les bases essentielles] en une durée de 20 à 30 heures de travail.
    C’est jouable.
    Par contre une maîtrise du C (connaissance des undefined behavior par exemple), oui ça demande plus de temps et d’expérience.



    Par contre, ils apprennent un prototype de main non standard et ça c’est franchement dommage
    En C
    ce n‘est pas la même chose que
    En C++ ok, mais pas en C.

  4. #4
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2005
    Messages : 5 761
    Points : 13 727
    Points
    13 727
    Par défaut
    Citation Envoyé par grim7reaper Voir le message
    En C
    ce n‘est pas la même chose que
    En C++ ok, mais pas en C.
    Pour l'instant, tout dépend si la déclaration de la fonction fait ou non partie de sa définition :
    Citation Envoyé par n1256 (C99)
    6.7.5.3 Function declarators (including prototypes)
    Constraints
    ....
    14 An identifier list declares only the identifiers of the parameters of the function. An empty list in a function declarator that is part of a definition of that function specifies that the function has no parameters. The empty list in a function declarator that is not part of a definition of that function specifies that no information about the number or types of the parameters is supplied.126)
    La note (126) conduit à une déclaration d'obsolescence.
    La n1570 (C11) reprend les mêmes dispositions.

    Une telle écriture est donc à déconseiller fortement même si elle n'est pas, pour le moment, toujours incorrecte.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    27 289
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 27 289
    Points : 41 227
    Points
    41 227
    Par défaut
    En gros, int main() { ... } est bon, mais int main(); est mauvais?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre éclairé
    Inscrit en
    juillet 2012
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : juillet 2012
    Messages : 231
    Points : 869
    Points
    869
    Par défaut
    Ha, je n’avais pas connaissance de cette différence de sens selon si c’est un prototype ou une définition.
    Pour moi la liste vide signifiait toujours « nombre quelconque de paramètres de types quelconques »
    Je serai plus attentif à ma lecture de la norme la prochaine fois.

    Cela dit, même si la sémantique reste la même que pour int main(void), je ne suis quand même pas sûr que ça soit une définition valide selon le standard pour une fonction main.
    Dans le meilleur des cas c’est valide mais déprécié, donc dans tout les cas à éviter.

  7. #7
    Membre expérimenté
    Avatar de Jarodd
    Profil pro
    Inscrit en
    août 2005
    Messages
    845
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 845
    Points : 1 683
    Points
    1 683
    Par défaut
    J'ai acheté ce bouquin il y a des mois. Je l'ai justement repris il y a 3 semaines. Et je suis loin d'être emballé.

    Je suis développeur (web) depuis 7 ans, donc je pense avoir des bases dans d'autres langages (au moins les opérateurs, les fonctions, les boucles,...). Pourtant j'ai galéré, la syntaxe n'est pas bien expliquée. Comme ça a été dit au dessus, on n'apprend pas forcément avec les bonnes règles de nommage, c'est vraiment dommage car c'est au début qu'il faut apprendre les bons réflexes. Ensuite les exercices ne sont pas forcément très pertinents, il arrive qu'on fasse 3 fois le même chose. Parfois certaines notions (la fonction ceilf() par exemple) est citée comme un cheveu sur la soupe, au milieu d'un paragraphe qui n'a rien à voir. Bref ça manque terriblement de cohérence.

    Quant aux 20h, évidemment on ne sera pas un expert à la fin de la lecture. Néanmoins, pour moi si on veut tenir les 20h c'est juste une lecture survolée, sans tester les exemples. C'est juste une accroche commerciale pour dire qu'on peut aller vite, mais ce n'est pas dans l'intérêt du lecteur. Lire pour lire sans tester et approfondir, ça n'a pas d'intérêt, à part dire "je sais faire du C car j'ai dessiner un sapin avec printf()".

    Je vais aller jusqu'au bout (j'en suis aux pointeurs, notion nouvelle pour moi et je rame un peu), mais je pense acheter un autre bouquin pour parfaire mes bases, car je pense qu'à la fin de celui-ci il me manquera des notions fondamentales. Je peux me tromper, la seconde moitié du livre est peut-être de meilleure qualité que le premier...

  8. #8
    Membre éprouvé

    Homme Profil pro
    Consultant ERP
    Inscrit en
    janvier 2013
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Conseil

    Informations forums :
    Inscription : janvier 2013
    Messages : 370
    Points : 1 197
    Points
    1 197
    Par défaut
    Merci pour ce cours, la démarche pédagogique est plutôt agréable!
    Pour une "descente" du c++ vers le c j'ai trouvé mon bonheur.

    Par contre le chapitre XVI est vraiment en bordel, la section Opérateur ternaire regroupe vraiment les Tableaux de pointeurs...?

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    chercheur en biologie
    Inscrit en
    septembre 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : chercheur en biologie

    Informations forums :
    Inscription : septembre 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut précision sur exercices nº6.x
    Bonjour,
    merci aux auteurs pour le tutoriel, je l'ai trouvé utile.

    J'ai rencontré un problème lors de l'utilisation des boucles while: les instructions sont realisées deux fois parce que la pression de <Entrée> est traitée comme un caractère (je travaille avec Windows). J'ai donc utilisé getchar() deux fois pour "avaler" la pression de la touche <Entrée>.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <stdio.h>
    int main() {
    	int i =0;
    	char c ='\0';
    	printf("Please enter 10 characters and press <Enter> each time\n");
    	while (i < 10) {
    		c = getchar(); getchar(); //second getchar() to eat the newline
    		i++;
    	}
    	return 0;
    }
    Je suis preneur pour une solution plus propre.

    En espérant que cela sera utile à un autre lecteur.

    Jonathan

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo