Commencer la programmation en C

(Cliquez-ici pour accéder à la version originale de cette discussion avec couleurs et images)







Posted by: Yuravin

Bonjour à tous,
Je cherche un moyen simple de commencer la programmation en C.
En fait, je cherche un tutoriel assez conçis pour avoir, dans un premier temps, les bases pour ce langage, et ainsi applique la programmation C aux maths... (Ce qui est, semble-t-il, au programme d'informatique en MPSI)
Auriez-vous des pistes, svp ?
merci d'avance a+



Posted by: Patastronch

http://www.siteduzero.com/tuto-3-8-...fd&sesmid=-1238



Posted by: Yuravin

Et n'y a-t-il pas plus court ?
(genre un fichier pdf d'une trentaine de pages)
merci a++



Posted by: Patastronch

Citation:
Posté par Yuravin
Et n'y a-t-il pas plus court ?
(genre un fichier pdf d'une trentaine de pages)
merci a++

Ce tuto doit faire moins de trente pages pour assimiler les bases. Il est d'ailleur si bien fait qu'il parait tres simple.

Si apres tu veux un vrai cours sur le C, c 'est pas a base de 30 pages que ca se reglera.

Dans tous les cas, c'estl e tuto que je file a mes étudiants qui sont a la masse, je n'en ai pas d'autres a te proposer désolé. (enfin je pourrais mais les ayant pas lu ca serait de mauvais gout que de te les conseiller).



Posted by: Yuravin

et sinon les trucs à cette adresse ?
http://c.developpez.com/cours/



Posted by: abcd22

Citation:
Posté par Yuravin
(Ce qui est, semble-t-il, au programme d'informatique en MPSI)

Ce n'est pas du tout au programme de MPSI ni d'aucune autre filière de prépa. En option info MPSI/MP c'est principalement de l'algorithmique, la partie programmation est là surtout pour mettre en oeuvre les algorithmes vus en cours et on peut tout à fait réussir sans avoir touché un ordinateur de sa vie avant. L'informatique des autres filiéres c'est utilisation de logiciels scientifiques (MAPLE souvent) en maths ou physique plus que de la « vraie » informatique, et là encore ça ne sert à rien d'apprendre à programmer avant.
Si tu veux apprendre à programmer en C libre à toi, mais si tu veux le faire uniquement parce que tu penses que ça va te servir en prépa tu perds ton temps.



Posted by: eusebius

Citation:
Posté par abcd22
En option info MPSI/MP c'est principalement de l'algorithmique, la partie programmation est là surtout pour mettre en oeuvre les algorithmes vus en cours

C'est pas CamL qui est au programme en MP option info, pour l'informatique ?



Posted by: Flodelarab

Citation:
Posté par Yuravin
et sinon les trucs à cette adresse ?
http://c.developpez.com/cours/

T'as pas l'air de bien savoir ce que tu veux.

Lance toi.


As tu un objectif particulier ?



Posted by: abcd22

Citation:
Posté par eusebius
C'est pas CamL qui est au programme en MP option info, pour l'informatique ?

CamL ou Pascal au choix du prof, la majorité des lycées utilisent CamL.



Posted by: Yuravin

Citation:
Posté par Flodelarab
T'as pas l'air de bien savoir ce que tu veux.

Lance toi.


As tu un objectif particulier ?


J'ai effectivement un objectif : apprendre le langage C afin de l'appliquer aux maths... C'est pour ma culture générale, puisque je connais déjà le HTML, le CSS et le PHP, je voudrais élargir mais compétences...
Je vous l'accorde, pendant la prépa ça va être difficile...
a+



Posted by: Flodelarab

Citation:
Posté par Yuravin
apprendre le langage C afin de l'appliquer aux maths...

C'est large. Algèbre? Géométrie? Calcul de force brute ? Les 3 mon capitaine ?

Tu vas peut-être dire que je radote mais si tu veux faire des maths, je te conseille fortement Python.

Syntaxe claire, évidente, intuitive (là, pour le coup, le tutoriel de qq pages je l'ai)
Programmation orientée objet (très formateur)
Nombres entiers sans limite (pas d'overflow ou de considération bassement matérielle)
Code réutilisable dans KIG (logiciel libre et gratuit de géométrie que j'utilise pour répondre aux questions posées sur ce forum)
Sous linux, l'emboitement de tes applications avec les appli classiques en ligne de commande (par des pipes). Vraiment sympa.


Evidemment, si tu cherches la performance, le C++ est incomparable. C'est-à-dire véritablement un besoin de faire des milliards de tours de boucles.... très rare



Posted by: Patastronch

Citation:
Posté par Flodelarab
C'est-à-dire véritablement un besoin de faire des milliards de tours de boucles.... très rare


Ca dépend pour qui.



Posted by: Joker62

Le choc avec le C, quand on a codé en HTML, PHP et autre langage de ce genre, c'est que c'est un langage compilé, tandis que ceux que tu as appris auparavant étaient des langages interprétés...

Pour faire du bon C, apprendre les bases, connaître la méthode de génération ( linker, compilation etc... ) et ne pas avoir peur de faire de la console :)



Posted by: Flodelarab

Citation:
Posté par Joker62
HTML, (...) langage de ce genre,

Le HTML n'est pas un langage. C'est de l'hypertexte.



Posted by: abcd22

Citation:
Posté par Flodelarab
Le HTML n'est pas un langage

Si, mais un langage de mise en page, pas un langage de programmation. :-)



Posted by: prody-G

salut

moi aussi je voudrais un petit renseignement s'il vous plaît, vaut-il mieux choisir Java ou C(C++) ? Lequel des deux est le plus simple ?



Posted by: anima

Citation:
Posté par abcd22
Si, mais un langage de mise en page, pas un langage de programmation. :-)

HTML n'est pas un language. XML serait le "markup language" de HTML...



Posted by: Ledescat

Salut anima, tu n'as pas de problèmes d'inondation à Oxford ?



Posted by: Patastronch

Citation:
Posté par anima
HTML n'est pas un language. XML serait le "markup language" de HTML...


Euh, le html est bien un langage hein ... d'ailleurs que veut dire le L de HTML à ton avis ? Après c'est en effet pas un langage de programmation :)



Posted by: Joker62

Et pour la question entre le Java et le C, si on commence par y répondre ça va tous nous mettre en rogne lol :D

Le JAVA c'est quelque chose de spécial, tu dois déjà avoir la machine virtuelle sur l'pc pour l'utiliser. C'est un langage purement OBJET, donc bon t'as des notions difficile à mettre en place ( Je ne sais pas si on parle de polymorphisme en java tout ça tout ça ? )

Donc ça dépend de toi, le C est assez simple, on peut faire beaucoup de chose avec, il y a un petit côté Objet mais bon c'est autre chose qu'un C++/Java, et c'est puissant.

ça dépend de tes envies après.



Posted by: anima

Citation:
Posté par Ledescat
Salut anima, tu n'as pas de problèmes d'inondation à Oxford ?

Je suis en France pour le moment; mais je peux te rassurer, ma mere et ma soeur ont vu de leurs propres yeux les inondations d'Oxford: notre "ancienne" maison (le déméngement date de décembre 2006) est sous les eaux.

Patastronch: un language informatique est défini comme étant une structure permettant de faire plus que d'afficher et de formater des données ou du texte (en excluant le JavaScript, venu bien apres). Exemples: C, VB, Python, TCL etc...
Le HTML, dérivé du XML, n'est qu'une facon de donner et recevoir des données par le biais de ce que les gens ont appelé "pages web". Car apres tout, quelle différence y a-t-il entre ceci:
Citation:
<html xmlns="en"><head><title>Mapage</title></head><b>Donnée 1: valeur 1</b>

ceci:
Citation:
<?xml version="1.0" ?> <page title="Mapage"><donnees><donnee>Valeur</donnee></donnees>

Et enfin ceci:
Citation:
Titre
Donnée 1: Valeur1

Autre que le formatage... Et pourtant, le dernier est un fichier texte, et donc pas un fichier ou structure utilisant un language informatique.



Posted by: Patastronch

Citation:
Posté par anima
Je suis en France pour le moment; mais je peux te rassurer, ma mere et ma soeur ont vu de leurs propres yeux les inondations d'Oxford: notre "ancienne" maison (le déméngement date de décembre 2006) est sous les eaux.

Patastronch: un language informatique est défini comme étant une structure permettant de faire plus que d'afficher et de formater des données ou du texte (en excluant le JavaScript, venu bien apres). Exemples: C, VB, Python, TCL etc...
Le HTML, dérivé du XML, n'est qu'une facon de donner et recevoir des données par le biais de ce que les gens ont appelé "pages web". Car apres tout, quelle différence y a-t-il entre ceci:

ceci:

Et enfin ceci:

Autre que le formatage... Et pourtant, le dernier est un fichier texte, et donc pas un fichier ou structure utilisant un language informatique.


La différence ? une différence de langage justement.

Libre a toi de vouloir redefinir l'informatique. Toujours est il que pour le moment le HTML, XML ainsi que tous les ML (MarkupLanguage) sont des langages.

Ce langage ne fait pas la même chose que du C je te l'accorde. C'est pas un langage de programmation mais de balisage. Ne confond pas "Langage" et "Langage de programmation". Ta définition 'un langage informatique est la définition (quoique tres peu rigoureuse et bien naïve) d'un langage de programmation. Or on est d'accord ce n'est pas un langage de programmation. Un langage n'est rien d'autre qu'un ensemble de règles de grammaires et de mots de vocabulaires. Si dans ton fichier texte il y a des règles de grammaires (ou de syntaxe pour etre plus précis) et des mots de vocabulaire propre a ton "formatage" (i.e des signes associés à une certaine sémantique fixée) alors tu utilises un langage. Même si tu l'as inventé pour un besoin spécifique et que tu es le seul à le connaître. Dans ton dernier exemple tu as des regles de syntaxe (passage a la ligne, nom de la donné précédé du mot ":" qui lui meme prècède la donnée ...) et meme du vocabulaire tel ton ":".

Je n'ai aucune envie de te convaincre puisque le débat est inintéressant, et que je me fou totalement que tu sois d'accord sur un truc aussi dérisoire, mais comme je te l'ai dit tu peux te demander pourquoi y a le mot Language dans XML et HTML. TU peux aussi regarder sur n'importe quel bouquin d'informatique ou site spécialisé (meme wikipedia si tu veux).



Posted by: Flodelarab

L'anglais est un langage.
Le français est un langage.
Les fleurs sont un langage.
Le HTML est un langage.
Le C++ est un langage. Le C++ permet la programmation
Le java est un langage. Le java permet la programmation.


Pour répondre à la question Java/C++, il est clair que PROFESSIONNELLEMENT, vaut bien mieux etre calé en Java qu'en C++.



Posted by: Patastronch

Citation:
Posté par Flodelarab
Les fleurs sont un langage.


Trop vague pour moi la, si tu fait référence aux couleurs des roses ou le sens d'un bouquet selon sa composition quand il est offert alors c'est plus un code qu'un langage (enfin pour ma part, la on touche un domaine ou je suis loin d'etre un spécialiste :) ).

Je différentie un code d'un langage par l'absence de grammaire ( c'est une définition perso je te l'avoue). Ainsi les fleurs sont pour moi un code (uniquement de la sémantique) de meme que le code de la route qui porte bien son nom.


edit : selon wikipedia : un code est une règle pour convertir de l'information (mot, image...) sous une autre forme de représentation.

C'est pas tout a fait la définition que je m'en faisait mais ca s'y rapproche pas mal.



Posted by: anima

Citation:
Posté par Patastronch
Je différentie un code d'un langage par l'absence de grammaire ( c'est une définition perso je te l'avoue). Ainsi les fleurs sont pour moi un code (uniquement de la sémantique) de meme que le code de la route qui porte bien son nom.

Donc si sur la route je colle un panneau sens interdit nanti d'un magnifique sous-panneau "Sauf les 7 jours de la semaine", tu comprendras que c'est juste un sens interdit?
Meme les codes ont leur grammaire; pour reprendre l'exemple des fleurs, les couleurs, parfums et apparences peuvent se conjuguer. Exemple: les lys blancs.

Citation:
edit : selon wikipedia : un code est une règle pour convertir de l'information (mot, image...) sous une autre forme de représentation.

C'est pas tout a fait la définition que je m'en faisait mais ca s'y rapproche pas mal.

C'est la définition qui (chez moi et beaucoup d'autres programmeurs) englobe le XML et tous ses rejetons (HTML, JSON etc...)



Posted by: Patastronch

Citation:
Posté par anima
Donc si sur la route je colle un panneau sens interdit nanti d'un magnifique sous-panneau "Sauf les 7 jours de la semaine", tu comprendras que c'est juste un sens interdit?
Meme les codes ont leur grammaire; pour reprendre l'exemple des fleurs, les couleurs, parfums et apparences peuvent se conjuguer. Exemple: les lys blancs.


C'est la définition de grammaire et de syntaxe qu'il faut revoir la ... a moins que tu tentes a tout prix de faire preuve de mavaise foi ? La grammaire c est pas la conjugaison d'elements mais la position de ceux ci par rapport aux autres pour vulgariser ( et c'est pas encore tout a fait ca non plus).


Citation:
Posté par anima
C'est la définition qui (chez moi et beaucoup d'autres programmeurs) englobe le XML et tous ses rejetons (HTML, JSON etc...)


Bon pas grave pense ce que tu veux. Je ne connais pas un informaticien qui ne considère pas que les ML soient pas des langages et pourtant la ou je travaille y en a un paquet. Et je te le redis une encore une fois, le L de ML c'est language.



Posted by: anima

Citation:
Posté par Patastronch
C'est la définition de grammaire et de syntaxe qu'il faut revoir la ... a moins que tu tentes a tout prix de faire preuve de mavaise foi ? La grammaire c est pas la conjugaison d'elements mais la position de ceux ci par rapport aux autres pour vulgariser ( et c'est pas encore tout a fait ca non plus).

N'est-ce pas les deux? Car apres tout, la position dans le cas de la "grammaire francaise" rendrait la langue rigide: plus d'accords, pour citer l'exemple le plus flagrant (n'est-ce pas la meilleure marque d'une conjugaison de deux éléments, ou plutot de l'influence de l'un sur l'autre?)

Citation:
Bon pas grave pense ce que tu veux. Je ne connais pas un informaticien qui ne considère pas que les ML soient pas des langages et pourtant la ou je travaille y en a un paquet. Et je te le redis une encore une fois, le L de ML c'est language.

Je sais que c'est L de language; je ne comprends juste pas pourquoi oser appeler un systeme sémantique sans regles (ou presque: l'orthographe, plutot que la grammaire du language: balises, chaines, valeurs.) un langage a part entiere, surtout quand on pense (et ca fait 3 fois que je le dis, et 3 fois que c'est mis en arriere-plan) que le HTML est un descendant du XML. Meme si le XML était un langage, HTML ne serait qu'une variante.
(Exemple similaire: TCL a bien donné le langage de scripting des eggdrops; pourtant, on n'appelle pas ce language ESL pour Eggdrop Scripting Language, malgré les petites différences, parce que tout ce qui a été ajouté n'est que des restrictions sur les bind, procédures etc...)

P.S: ce n'est pas de la mauvaise foi, je fais juste appel a mon point de vue personnel.



Posted by: Patastronch

Citation:
Posté par anima
N'est-ce pas les deux? Car apres tout, la position dans le cas de la "grammaire francaise" rendrait la langue rigide: plus d'accords, pour citer l'exemple le plus flagrant (n'est-ce pas la meilleure marque d'une conjugaison de deux éléments, ou plutot de l'influence de l'un sur l'autre?)


Pardon, j'aurais du employer le terme exacte : grammaire formelle. En informatique ( et en linguistique aussi je crois) on parle de grammaire formelle et non de grammaire qui est tres vague.

Citation:
Posté par anima
Je sais que c'est L de language; je ne comprends juste pas pourquoi oser appeler un systeme sémantique sans regles (ou presque: l'orthographe, plutot que la grammaire du language: balises, chaines, valeurs.) un langage a part entiere, surtout quand on pense (et ca fait 3 fois que je le dis, et 3 fois que c'est mis en arriere-plan) que le HTML est un descendant du XML. Meme si le XML était un langage, HTML ne serait qu'une variante.
(Exemple similaire: TCL a bien donné le langage de scripting des eggdrops; pourtant, on n'appelle pas ce language ESL pour Eggdrop Scripting Language, malgré les petites différences, parce que tout ce qui a été ajouté n'est que des restrictions sur les bind, procédures etc...)

P.S: ce n'est pas de la mauvaise foi, je fais juste appel a mon point de vue personnel.


Que le HTML dérive du XML aucune importance sur sa nature de langage au passage.
TU trouves que le HTML et le XML n'ont pas de regles ? tu vas faire plaisir a tes collegue d'oxford qui sont a la base du XML et W3C en disant ca :s Le simple fait que tu ne puisses pas mettre tes mots dans n'importe quel ordre implique qu'il y a des regles de syntaxe. Or si je ne m'abuse , en XML si tu mets une balise fermante avant sa balise ouvrante tu risque d'avoir des petits problemes. Des lors on peut parler de langage puisqu'a ca s'ajoute des mots de vocabulaires (les attributs des balises par exemple).



Posted by: anima

Citation:
Posté par Patastronch
Que le HTML dérive du XML aucune importance sur sa nature de langage au passage.
TU trouves que le HTML et le XML n'ont pas de regles ? tu vas faire plaisir a tes collegue d'oxford qui sont a la base du XML et W3C en disant ca :s Le simple fait que tu ne puisses pas mettre tes mots dans n'importe quel ordre implique qu'il y a des regles de syntaxe. Or si je ne m'abuse , en XML si tu mets une balise fermante avant sa balise ouvrante tu risque d'avoir des petits problemes. Des lors on peut parler de langage puisqu'a ca s'ajoute des mots de vocabulaires (les attributs des balises par exemple).

J'ai bien dit: peu de regles, balises, chaines et valeurs. Quand on lit, on lit en entier.

La seule chose que le XML devrait envier au HTML est la restriction sur les balises; car la seule regle logique du XML est: "ligne de définition XML + balise maitresse" et c'est tout.
Je te rappellerai au passage que le HTML a tellement été estropié par Microsoft avant la prise de pouvoir de W3C qu'on avait du mal a trouver de regles la dedans...



Posted by: Patastronch

Citation:
Posté par anima
J'ai bien dit: peu de regles, balises, chaines et valeurs. Quand on lit, on lit en entier.

La seule chose que le XML devrait envier au HTML est la restriction sur les balises; car la seule regle logique du XML est: "ligne de définition XML + balise maitresse" et c'est tout.
Je te rappellerai au passage que le HTML a tellement été estropié par Microsoft avant la prise de pouvoir de W3C qu'on avait du mal a trouver de regles la dedans...



Non tu as dis sans règles mis a part l'orthographe si je me souviens bien (au passage l'orthographe et la grammaire sont 2 choses bien disjointes). Enfin bon aucune importance. L'idée est la. apres libre à toi de t'accorder sur la définition du langage informatique adopté internationalement ou de te faire tes propres vérités. Ce qui compte c'est que tu sois d'accord avec toi même et que tu te fasse comprendre sans ambiguïté. Mais ne dis pas sur un forum comme une vérité que le XML ( qui dérive de SGML au passage) ou HTML ne sont pas des langages, car ce n'est vrai que dans ta conception de l'informatique.



Posted by: Ledescat

[hors sujet]

Ok alors tout va bien.

[/hors sujet]











-