Comprendre le Language C ..

Fermé
Antoine - 13 août 2003 à 23:06
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 - 22 avril 2004 à 11:51
'Soir,

J'ai appris l'informatique depuis dos 5.0 sans trop connaitre ce qu'il y avait autour ..
Puis est arriver zindows et depuis 3 ans pour moi est arriver linux.
Je suis a l'aise avec tous ces systemes d'exploitation meme si je suis loin d'en connaitre toutes les ficelles.

Depuis quelques mois j'essaye de comprendre le language C,
avec bouquins, site WEB et script d'exemple et bien sur du bon café dont je terrais la marque.
Mais franchement j'ai vraiement trop de lacune et l'impression d'avoir encore rien compris a ce language.
Ma question en faite est de savoir comment vous vous avez appris, comment vous etes vous motivé, quel sont les choses basic a connaitre de suite pour pouvoir progresser,

J'veux vraiment comprendre les %, variables et tout et tout mais les dictatecls meme ce de ccm ne me font pas avancer ..

Alors messieurs et mesdoiselles, un p'tit saut en arr. pour rememorer tous vos nuits blanches ??

14 réponses

"comment vous vous avez appris, comment vous etes vous motivé, quel sont les choses basic a connaitre de suite pour pouvoir progresser,"

connu dans l'ordre Basic pascal forth C C++

donc j'avais deja des bonnes bases de vue globale des sources
mais y'a langage et langage....

les langages specialises comme forth prolog
les langages courrants comme pascal ou C
les langages plus evolues (integrant la gestion d'objets en particulier) C++ pascal (versions plus recentes)
les langages qui comprennent tout (dumoins plusieurs autre langages a la fois) comme clipper par exemple..

bref le mieux pour progresser a mon avis c'est la serie d'exercices suivants et dans l'ordre :

1- calculer a partir de n'importe quel stock de pieces de monnaie (genere aleatoirement), pour une somme donnee par l'utilisateur le nombre ideale de pieces de chaque type.

en mode texte puis en mode graphique puis enfin avec une garantie de la meilleure solution existante (approche IA).

2- ecrire un programme de calculatrice scientifique limitee aux operations standard et trigonometriques.

en mode texte puis en mode graphique

3- ecrire un programme de tic-tac-toe (morpion) capable de jouer contre lui meme contre l'humain ou 2 humains entre eux.

en mode graphique

4- ecrire un mini langage d'interpretation imadiate du langage naturel (par exemple un programme qui interprete des phrases mathematiques du style : "soit 4 et 5 a additionner puis multiplier par 2, afficher le resultat" )

et ainsi de suite te lancer des minis defis de ce style et au bout d'un moment tu vas trouver des logiques et algorithmes quasi recurante et ca va devenir plus clair....

Moi j'ai appris en club... avec ce genre de defis le premier qui trouvait la solution il payait pas sa tournee la semaine suivante... on s'amusait meme a essayer de refaire les meme programmes pour les rendre plus rapide a l'execution plus petit en stockage et qu'il prennent le moins de memoire possible...

Mais pour progresser pas de secret fait en bouffer du Kg....

Ko devrais je dire...

-------

quand a comprendre la logique d'un langage....hors les langages specialises, quand tu connais un langage procedural (pascal, C, etc...) d'un a l'autre c'est simple de s'y retrouver meme si la syntaxe differe l'esprit est le meme.

bon courrage... et patience....ca va rentrer

PS: n'essayes pas de connaitre les syntaxes par coeur ca sert a rien seul la comprehenssion compte. de toute facon la connaissance totale d'un langage est impossible il faut seulement savoir comprendre et te servir de l'info qui est dans les bouquins...et savoir la retrouver vite.
0
sire Messages postés 3 Date d'inscription lundi 4 août 2003 Statut Membre Dernière intervention 14 août 2003
14 août 2003 à 11:57
salam aleykoum
alors ! Je crois que je vois un peu ton pob , c'est le C qui embete beaucoup de pers coe.ce que je te dis c'est que le C n'est pas du tout compliqué c'est la methode d'apprentissage qui le complique. les % servent seulement à donner un format à la variable que tu veux afficher par ce qu'une meme variable peut donner != valeurs en fonction du format, par exple :
char test;// declaration de test coe variable de type caractère
test='a';//affectation de la valeur a à test
printf(" avec le format caractère test donne %c",test);
valeur renvoyée à l'ecran----->
avec le format caractère test donne a
tandis que
printf(" avec le format entier test donne %d",test);
valeur renvoyée à l'ecran----->
avec le format entier test donne 97
remarque que 97 est code ASCII de a minuscule.
%d ou %i :pour les formats entier
%f ,%e :pour les formats réel
............
tout le reste est simple coe celui ci. si tu a des questions n'hésite pas à me contacter mon mail : intoutall@hotmail.com
0
Reeter Messages postés 120 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 6 décembre 2005
14 août 2003 à 13:16
comment j'ai appris un langage?
dans l'ordre: Pascal, C, C++ en loisir qd g t au lycee
C++, assembleur, Java, perl, scripts shell depuis que je suis en ecole...

Sinon, faut vraiment pas se casser la tete. Le mieux, c'est de trouver des exos simples ous pus complexes (ceux presentes par francois sont supers, c'est clair, mais je pense un peu trop complexes pour un debut (a part le premier peut etre!). Essaie les, et essaie en d'autres, et tu verras, a force ca rentrera!
Le truc c'est qu'il n'y a vraiment pas besoin de savoir plein de trucs, c'est l'experience qui fait rentrer le plus de choses

Amuse toi bine, et bon courage

Reeter
0
merci pour vos reponses ..
il me faut plus de perseverance c'est sur ..
je vais donc relire toutes les docs, decortiquer des script, et a l'avenir poser des questions sur tel ou tel fontion et leur utiliter quand j'en aurais le niveau ..
0
Reeter Messages postés 120 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 6 décembre 2005
14 août 2003 à 16:48
il avut mieux que ca soit TOI qui programme plutot que de lire des scripts deja tout fait.... enfin c'est mon avis! :-))

Bonne chance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tout a fait d'accord avec toi Reeter mais je n'en suis pas encore au stade de savoir faire un script ..

trop de confusion entre les fontions, variables, pointeurs, les entiers, les symboles ..
bref j'arrive pas a comprendre la globaliter du language C ..
D'ou mon engoument a savoir comment d'autres ont reussi ..

aussi faut il bien maitriser l'anglais ? ou juste les notions de l'anglais technique suffise a progresser ???
0
MSDN est une source d'apprentissage trés interessant. Sinon, si tu veux apprendre des techniques de prog en C va faire un tour sur cppfrance.com
thomas7257
0
ok merci pour les liens j'vais aller jeter 2 yeux ..
0
BreTzeL Messages postés 59 Date d'inscription mardi 22 juillet 2003 Statut Membre Dernière intervention 28 juin 2005 24
14 août 2003 à 20:27
Bonjour a tous.
Antoine, ne cherche pas a tout de suite programmer compliqué, commenc par le celebre "hello world", ensuite tu passes a un programme simple et linéaire en introduisant les conditions, les boucles... et apres tu pourras voir ce qu'est une fonction, commencer a faire des fonctions simples (c'est bien apres que tu connaitras les joies du récursif ;) ). Apres viennent les pointeurs, listes chainées, etc. Et enfin tu pourras t'essayer à la POO. Il ne faut surtout pas bruler les etapes, c'est comme ca qu'on se perd.

c'est vrai qu'en C, le simple affichage n'est pas si simple que ca. Comme l'a dit sire, il faut comprendre que c'est une question de format. La connaissance encyclopédique n'est pas obligatoire, alors mon conseil final c'est : lance toi a fond dedans, si tu buttes, cherche, demande, on est la pour ca, mais donne toi des objectifs.

Pour parler de comment j'ai fait moi : j'ai potassé "la bible du programmeur C/C++" et... j'en ai pas retiré grand chose. il y a trop d'informations pour toutes les assimiler. Mais dès que j'ai commencé a réaliser des projets, a programmer, ca rentrait tout de suite. =>> si tu veux apprendre vite, commence tout de suite par une application. le pourquoi vient tout seul après.
0
J'suis tout a fait d'accord avec toi Breztel quand tu dis qu'il ne faut pas bruler les etapes ..
J'ai tendance a trop vouloir trop savoir de suite et de ce fait j'm'embrouille ..

Et c'est vrai aussi que la doc est parfois trop riche, g acheter le livre Langage C de chez micro application de + de 800 pages et je n'en ai compris que quelques lignes ..!
J'ai fait comme tu dis le celebre hello world et je l'ai tellement fait que franchement g comprend ce que g fait ..
la ou ca c'est compliquer c'est quand j'ai appeler les fonctions comme scanf ou la j'ai pas l'impression d'avoir compris ce que je fesais ..
Faire une application pour comprendre je ne demande que ca mais quel est l'appli la + simple, la + basic que tu pourrais me conseiller ?
(comme un agenda, un carnet d'adresse ou un script assez simple)

merci encore pour le temoignage ..
d'autres seront tjs les bienvenus ..!
0
Algorithmes
0
algeria_is_back Messages postés 81 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 1 novembre 2004
23 mars 2004 à 19:44
moi je ne connais pas grand chose et il faut que je m'y mette un chti peu et ba au boulot momo allez bouge
bon d'accord je m'y mets sérieusement

Vous avez joué avec le coeur vous avez gagné nos coeurs 
0
Salut,

Je sais pas trop si ca te servira encore mes conseils parce que ca fait longtemps que tu as écri mais au cas ou :
-J'ai commencé a apprendre le html. Ca te servira pour les bases et tout. Pour cela va sur : www.siteduzero.com et si ca marche pas va sur un moteur de recherche genre google et tape siteduzero. Tu verra les explications sont vraiment claires.
-Ensuite apprends le php sur le meme site.
-Finalement si tu es vraiment motivé apprends le JavaScript et le Java. C'est vraiment compliqué mais bon...

Pour répondre à ta question, on est motivé ou on l'est pas soit tu veux apprendre l'informatiques et ses languages soit tu veux pas !

Voila c'est tout bonne chance !!!
0
Salut,

Je ne désir pas répondre à la question d'Antoine mais bien le questionner. Alors si vous trouver ça inapproprié et bien sautez ce message.

D'abord la première question a te poser, c'est pourquoi le C. Si c'est parce qu'on t'as dit que tout bon programmeur connaît son C, bien tant mieux pour eux, t'es pas obligé de rester 20 ans en arrière d'eux pour leur donner raison. Le C c'est pour les hommes, je n'en doute pas.

Maintenant, si tu veux finir par programmer, l'idée c'est de pas t'écoeurer non plus. En plus d'être long à apprendre, le C c'est long à programmer. Effectivement, t'as un contrôle total sur ce que tu fais. La vrai question est: qu'est-ce que tu veux faire avec. Si c'est pour faire les programmes les plus optimisés et stables possibles, n'hésite pas. Tant qu'à faire y'a l'assembleur... Si tu veux faire des applications plus loin du hardware et bien moi je dis que le C on peut y revenir. Et je ne suis pas tout seul à le dire.

Oui, oui si tu veux finir par faire du bon C++, c'est à ton avantage de faire du C. Sauf que t'imagines le temps que ça va te prendre pour pouvoir lire des gros programmes avec une syntaxe aussi compliquée. Le C++, tu vas commencer ça dans combien de temps? Et puis, si en cour de route tu découvres d'autres langages qui te permettraient d'aller beaucoup plus vite à ce que tu veux faire et qui seraient tout simplement plus moderne, est-ce que tu vas laissé tomber tes mois de dur labeur à apprendre le C pour changer de langage? Première fois non, deuxième non plus mais après avoir vu ce qui se fait en Python, Delphi, C# etc. Tu risques d'en avoir plein ton cul de te prendre la tête pour faire une simple application texte. Les gens, aux dernières nouvelles ont des systèmes d'exploitation multitâches et une souris.

Moi je dis, parce que mes lectures m'ont convaincu, qu'une personne motivée, en 2004, devrait commencer avec du Python. Ce langage est plaisant à coder et puissant parce que sa syntaxe est facile et claire. Il permet d'expliquer les concepts reliés à la programmation moderne sans anéantir le cerveau par une stupide complexité syntaxique. Il est open source, y'a de bons IDE, de bons tutoriaux, c'est orienté objet, emprunte aux langages procéduraux et c'est multi plateforme. Une fois que t'auras couvert les différents concepts et procédures de la programmation moderne, et que t'auras articulé des bons programmes complexes, là tu retourneras au C apprendre une syntaxe et les technicités reliées aux opérations machine.

J'ai fait l'erreur de m'intéresser au C en premier. Dernièrement, j'ai découvert Python et j'ai compris que je devais aider les débutants à tendre vers une nouvelle religion. Si vraiment c'est le C qui t'intéresse, oublie tout ce que j'ai dit, mais ton message m'indique que t'essaie de "comprendre" la programmation et non juste le C.

o_henley

Lien Python important (merci à Sebsauvage):
http://www.python-eggs.org/links.html
0
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
22 avril 2004 à 11:51
salut,

C'est vrai qu'il y a plein de docs qui sont mal faites, par des enarques qui se font mousser avec des termes abscons.
Moi j'ai commencé le c tout seul, sous dos et j'arrêtais pas de rebooter. Sous win2000 ça s'est pas mal arrangé, je peux suivre un programme pas à pas et voir ce que contiennent mes variables avec le pointeur de la souris. En fait, c'est le meilleur moyen de comprendre ce qui se passe vraiment dans un programme.

Le c est le language le plus proche de l'assembleur au niveau des performances, c'est un des rares capable d'ecrire un système d'exploitation (avec. le pascal et l'assembleur)

Pour la complexité syntaxique, je m'excuse o_henley, mais le C
a réduit la syntaxe à sa plus simple expression, et tous les langages qu'il y a eu depuis se basent sur ce système
(parentèses pour les paramètres, accolades pour les fonctions
et structures, ; séparateur [] pour les tableaux) même le pascal l'ada, le perl, le caml et le lisp utilisent ce type de syntaxe à un ou deux détails près.

par contre, pour le c++ il faut avoir vraiment compris ce qu'est l'objet avant d'en faire, et pouvoir utiliser la couche "++ "
Moi j'ai du suivre une formation.
0