éternel débutant en C pour mon plaisir, je me permets de venir vous
demander quelques éclaircissements sur une situation que je n'arrive pas
à comprendre :
J'utilise le cours en ligne spécial "grand débutant" du "site du zéro" :
<http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html>
Je réalise les exercices du cours dans deux environnements différents :
- sous windows vista avec l'IDE visual C++ 2008 express
- sous linux ubuntu 9.04 avec gcc
J'ai écrit un programme dans le cadre des exercices proposés sur les
tableaux par ce cours en ligne. Le fichier en question peut être
téléchargé ici :
< http://dl.free.fr/to7PFReLM/tableau.c>
Ce qui m'étonne, c'est que j'arrive à compiler sans difficulté ce code
sous Linux, et que le programme se comporte exactement comme je le
souhaite. Par contre, sous Windows, impossible de compiler, l'IDE me
renvoie 42 erreurs et 31 avertissements !!! La plupart des erreurs
semblent être liées aux variables. Par exemple :
"erreur de syntaxe : absence de ';' avant 'type'"
"identificateur non déclaré"
Or, j'ai beau lire et relire mon code, les variables me sembles toutes
déclarées correctement et il ne manque à mon sens pas de ";" en fin
d'instructions. De plus, comme je le disais au début, le même code se
compile sans aucune erreur sous Linux ...
Alors, comment expliquer que deux compilateurs réagissent aussi
différemment, et où et mon erreur ?
Merci par avance du temps que vous pourrez me consacrer,
Par contre tu as supprimé le prototypage des fonctions pour les décla rer avant main(). Or, j'avais cru comprendre que c'était une bonne habitude à prendre pour quand j'aurais à écrire des programmes modulaires .. . Est-ce aussi pour un problème de respect de la norme ?
Non. C'est simplement que dans un programme 'monobloc' (un seul fichier source), c'est inutile. Si ça ne l'est pas, c'est qu'il y a un appel récursif entre des fonctions (volontaire ou non : a() appelle b () qui appelle a()...). Comme les conséquences peuvent être désastreuses, ce n'est pas un luxe d'en être prévenu... Si on sépar e d'office tous les prototypes, comme tu l'avais fait, on ne vois pas apparaitre ce problème potentiel.
Le prototypage séparé est par contre indispensable quand on fait de la compilation séparée. Les prototypes sont alors placés dans un fichier d'interface (xxx.h) qui est inclus dans le ou les fichiers d'implémentation (xxx.c) et dans tous les fichiers qui utilisent des définitions ou des prototypes de xxx.
On 7 sep, 18:42, YannicK <yannhuitcen...@yahoopointfr.invalid> wrote:
Par contre tu as supprimé le prototypage des fonctions pour les décla rer
avant main(). Or, j'avais cru comprendre que c'était une bonne habitude
à prendre pour quand j'aurais à écrire des programmes modulaires .. .
Est-ce aussi pour un problème de respect de la norme ?
Non. C'est simplement que dans un programme 'monobloc' (un seul
fichier source), c'est inutile. Si ça ne l'est pas, c'est qu'il y a un
appel récursif entre des fonctions (volontaire ou non : a() appelle b
() qui appelle a()...). Comme les conséquences peuvent être
désastreuses, ce n'est pas un luxe d'en être prévenu... Si on sépar e
d'office tous les prototypes, comme tu l'avais fait, on ne vois pas
apparaitre ce problème potentiel.
Le prototypage séparé est par contre indispensable quand on fait de la
compilation séparée. Les prototypes sont alors placés dans un fichier
d'interface (xxx.h) qui est inclus dans le ou les fichiers
d'implémentation (xxx.c) et dans tous les fichiers qui utilisent des
définitions ou des prototypes de xxx.
Par contre tu as supprimé le prototypage des fonctions pour les décla rer avant main(). Or, j'avais cru comprendre que c'était une bonne habitude à prendre pour quand j'aurais à écrire des programmes modulaires .. . Est-ce aussi pour un problème de respect de la norme ?
Non. C'est simplement que dans un programme 'monobloc' (un seul fichier source), c'est inutile. Si ça ne l'est pas, c'est qu'il y a un appel récursif entre des fonctions (volontaire ou non : a() appelle b () qui appelle a()...). Comme les conséquences peuvent être désastreuses, ce n'est pas un luxe d'en être prévenu... Si on sépar e d'office tous les prototypes, comme tu l'avais fait, on ne vois pas apparaitre ce problème potentiel.
Le prototypage séparé est par contre indispensable quand on fait de la compilation séparée. Les prototypes sont alors placés dans un fichier d'interface (xxx.h) qui est inclus dans le ou les fichiers d'implémentation (xxx.c) et dans tous les fichiers qui utilisent des définitions ou des prototypes de xxx.
-ed-
On 7 sep, 14:06, zwim wrote:
Le Mon, 7 Sep 2009 01:13:15 -0700 (PDT) Au fait à propos de ce codage : > [instructions ...]
> { > int tableau3[4] = { 1, 3, 237, 511 }; > printf ("Le tableau No 3 contient les valeurs suivantes : n "); > affiche_tableau (tableau3, 4); > printf ("Je remets a zero toutes les valeurs superieures a >500n"); > maximumTableau (tableau3, 4, 500); > printf ("Le tableau No 3 contient les valeurs suivantes : n "); > affiche_tableau (tableau3, 4); > }
> [instructions ...]
j'ai une question sur l'évolution de la taille de la pile.
J'avais remarqué dans le passé que le fait d'utiliser un nouveau contexte comme ceci au milieu des instructions d'une fonction augmentait parfois sensiblement l'utilisation de la stack dédiée à la fonction.
Ça dépend de l'implémentation. Le langage C ne dit rien sur le sujet. Il dit simplement que c'est possible. L'efficacité du code produit ne dépend pas de la définition du langage C.
On 7 sep, 14:06, zwim <zwim@f_ree.fr> wrote:
Le Mon, 7 Sep 2009 01:13:15 -0700 (PDT)
Au fait à propos de ce codage :
> [instructions ...]
> {
> int tableau3[4] = { 1, 3, 237, 511 };
> printf ("Le tableau No 3 contient les valeurs suivantes : n ");
> affiche_tableau (tableau3, 4);
> printf ("Je remets a zero toutes les valeurs superieures a
>500n");
> maximumTableau (tableau3, 4, 500);
> printf ("Le tableau No 3 contient les valeurs suivantes : n ");
> affiche_tableau (tableau3, 4);
> }
> [instructions ...]
j'ai une question sur l'évolution de la taille de la pile.
J'avais remarqué dans le passé que le fait d'utiliser un nouveau
contexte comme ceci au milieu des instructions d'une fonction
augmentait parfois sensiblement l'utilisation de la stack dédiée à la
fonction.
Ça dépend de l'implémentation. Le langage C ne dit rien sur le sujet.
Il dit simplement que c'est possible. L'efficacité du code produit ne
dépend pas de la définition du langage C.
Le Mon, 7 Sep 2009 01:13:15 -0700 (PDT) Au fait à propos de ce codage : > [instructions ...]
> { > int tableau3[4] = { 1, 3, 237, 511 }; > printf ("Le tableau No 3 contient les valeurs suivantes : n "); > affiche_tableau (tableau3, 4); > printf ("Je remets a zero toutes les valeurs superieures a >500n"); > maximumTableau (tableau3, 4, 500); > printf ("Le tableau No 3 contient les valeurs suivantes : n "); > affiche_tableau (tableau3, 4); > }
> [instructions ...]
j'ai une question sur l'évolution de la taille de la pile.
J'avais remarqué dans le passé que le fait d'utiliser un nouveau contexte comme ceci au milieu des instructions d'une fonction augmentait parfois sensiblement l'utilisation de la stack dédiée à la fonction.
Ça dépend de l'implémentation. Le langage C ne dit rien sur le sujet. Il dit simplement que c'est possible. L'efficacité du code produit ne dépend pas de la définition du langage C.
bpascal123
Bonjour
J'ai testé code (lien du premier post) sous Windows avec le compilateur djgpp et ça fonctionne très bien sans modif. J'en conclu que Visual Express doit être plus exigeant que djgpp. Jusqu'à présent , je faisais l'expérience du contraire, ce qui passe dans un environnement windows ne passait pas forcément dans linux. Comme toi, je compile aussi sous ubuntu.
Tu dis être "éternel débutant en C". J'ai commencé à apprendre le C il y a 4-5 mois.
Je serais curieux de savoir combien d'heure tu as consacré à l'apprentissage pour arriver à faire ce programme ? Je suppose que ce code est le fruit de tes connaissances sans avoir vu la solution officielle.
De mon côté, je n'ai pas encore approché les fonctions ni les pointeurs, tout mon code est contenu dans main. Je suppose que je n'ai pas pris une bonne habitude et que ça va me demander un peu de temps. Je me forme avec :
http://www.ltam.lu/Tutoriel_Ansi_C/
Il y a quelques années, j'ai essayé de faire tout les exercices de ce site :
http://www.pise.info/algo/codage.htm
pour comprendre un petit peu les bases de la programmation.
Je ne sais pas encore combien de temps je dois investir sur le C pour arriver à un niveau convenable mais la réponse me fait peur.
Vos conseils sont bienvenus.
Pascal
Bonjour
J'ai testé code (lien du premier post) sous Windows avec le
compilateur djgpp et ça fonctionne très bien sans modif. J'en conclu
que Visual Express doit être plus exigeant que djgpp. Jusqu'à présent ,
je faisais l'expérience du contraire, ce qui passe dans un
environnement windows ne passait pas forcément dans linux. Comme toi,
je compile aussi sous ubuntu.
Tu dis être "éternel débutant en C". J'ai commencé à apprendre le C il
y a 4-5 mois.
Je serais curieux de savoir combien d'heure tu as consacré à
l'apprentissage pour arriver à faire ce programme ? Je suppose que ce
code est le fruit de tes connaissances sans avoir vu la solution
officielle.
De mon côté, je n'ai pas encore approché les fonctions ni les
pointeurs, tout mon code est contenu dans main. Je suppose que je n'ai
pas pris une bonne habitude et que ça va me demander un peu de temps.
Je me forme avec :
http://www.ltam.lu/Tutoriel_Ansi_C/
Il y a quelques années, j'ai essayé de faire tout les exercices de ce
site :
http://www.pise.info/algo/codage.htm
pour comprendre un petit peu les bases de la programmation.
Je ne sais pas encore combien de temps je dois investir sur le C pour
arriver à un niveau convenable mais la réponse me fait peur.
J'ai testé code (lien du premier post) sous Windows avec le compilateur djgpp et ça fonctionne très bien sans modif. J'en conclu que Visual Express doit être plus exigeant que djgpp. Jusqu'à présent , je faisais l'expérience du contraire, ce qui passe dans un environnement windows ne passait pas forcément dans linux. Comme toi, je compile aussi sous ubuntu.
Tu dis être "éternel débutant en C". J'ai commencé à apprendre le C il y a 4-5 mois.
Je serais curieux de savoir combien d'heure tu as consacré à l'apprentissage pour arriver à faire ce programme ? Je suppose que ce code est le fruit de tes connaissances sans avoir vu la solution officielle.
De mon côté, je n'ai pas encore approché les fonctions ni les pointeurs, tout mon code est contenu dans main. Je suppose que je n'ai pas pris une bonne habitude et que ça va me demander un peu de temps. Je me forme avec :
http://www.ltam.lu/Tutoriel_Ansi_C/
Il y a quelques années, j'ai essayé de faire tout les exercices de ce site :
http://www.pise.info/algo/codage.htm
pour comprendre un petit peu les bases de la programmation.
Je ne sais pas encore combien de temps je dois investir sur le C pour arriver à un niveau convenable mais la réponse me fait peur.
Vos conseils sont bienvenus.
Pascal
Marc Boyer
Le 09-09-2009, a écrit :
Bonjour
[SNIP]
Je ne sais pas encore combien de temps je dois investir sur le C pour arriver à un niveau convenable mais la réponse me fait peur.
Comme disais je crois Antoine Leca une fois, l'informatique est le seul domaine où l'on fait croire aux gens qu'en lisant un bouquin, il auront le niveau d'un professionel débutant. Un IUT d'informatique, c'est 2 ans de formation. On arrive à faire des formations condensées en 1 an pour des gens ayant déjà une expérience professionnelle. Et on pourrait longtemps discuter sur la question "le diplomé d'IUT moyen a-t-il un niveau convenable en C?"
Marc Boyer -- En prenant aux 10% des francais les plus riches 12% de leurs revenus, on pourrait doubler les revenus des 10% les plus pauvres. http://www.inegalites.fr/spip.php?article1&id_mot0
Le 09-09-2009, bpascal123@googlemail.com <bpascal123@googlemail.com> a écrit :
Bonjour
[SNIP]
Je ne sais pas encore combien de temps je dois investir sur le C pour
arriver à un niveau convenable mais la réponse me fait peur.
Comme disais je crois Antoine Leca une fois, l'informatique est
le seul domaine où l'on fait croire aux gens qu'en lisant un bouquin,
il auront le niveau d'un professionel débutant.
Un IUT d'informatique, c'est 2 ans de formation. On arrive à faire
des formations condensées en 1 an pour des gens ayant déjà une
expérience professionnelle.
Et on pourrait longtemps discuter sur la question "le diplomé
d'IUT moyen a-t-il un niveau convenable en C?"
Marc Boyer
--
En prenant aux 10% des francais les plus riches 12% de leurs revenus,
on pourrait doubler les revenus des 10% les plus pauvres.
http://www.inegalites.fr/spip.php?article1&id_mot0
Je ne sais pas encore combien de temps je dois investir sur le C pour arriver à un niveau convenable mais la réponse me fait peur.
Comme disais je crois Antoine Leca une fois, l'informatique est le seul domaine où l'on fait croire aux gens qu'en lisant un bouquin, il auront le niveau d'un professionel débutant. Un IUT d'informatique, c'est 2 ans de formation. On arrive à faire des formations condensées en 1 an pour des gens ayant déjà une expérience professionnelle. Et on pourrait longtemps discuter sur la question "le diplomé d'IUT moyen a-t-il un niveau convenable en C?"
Marc Boyer -- En prenant aux 10% des francais les plus riches 12% de leurs revenus, on pourrait doubler les revenus des 10% les plus pauvres. http://www.inegalites.fr/spip.php?article1&id_mot0
YannicK
a écrit :
Bonjour
J'ai testé code (lien du premier post) sous Windows avec le compilateur djgpp et ça fonctionne très bien sans modif. J'en conclu que Visual Express doit être plus exigeant que djgpp. Jusqu'à présent, je faisais l'expérience du contraire, ce qui passe dans un environnement windows ne passait pas forcément dans linux. Comme toi, je compile aussi sous ubuntu.
Tu dis être "éternel débutant en C". J'ai commencé à apprendre le C il y a 4-5 mois.
Je serais curieux de savoir combien d'heure tu as consacré à l'apprentissage pour arriver à faire ce programme ? Je suppose que ce code est le fruit de tes connaissances sans avoir vu la solution officielle.
De mon côté, je n'ai pas encore approché les fonctions ni les pointeurs, tout mon code est contenu dans main. Je suppose que je n'ai pas pris une bonne habitude et que ça va me demander un peu de temps. Je me forme avec :
http://www.ltam.lu/Tutoriel_Ansi_C/
Il y a quelques années, j'ai essayé de faire tout les exercices de ce site :
http://www.pise.info/algo/codage.htm
pour comprendre un petit peu les bases de la programmation.
Je ne sais pas encore combien de temps je dois investir sur le C pour arriver à un niveau convenable mais la réponse me fait peur.
Vos conseils sont bienvenus.
Pascal
Bonjour,
Comme me l'ont expliqué les contributeurs de ce forum, le problème de compilation avec visual c++ 2008 venait du fait que mon code ne respectait pas complètement la norme C89, mais reprenait aussi des techniques de programmation prévues par la norme C99 ... alors, on peut voir le verre à moitié vide ou à moitié plein :
- Soit (pour une fois) Microsoft sait implémenter de manière correcte une norme - Soit les outils libres de programmation on 10 ans d'avance sur les outils propriétaires ;-)
Je crois que djgpp est un dérivé de GCC (les professionnels du C confirmeront ou infirmeront) donc, cela parait logique qu'il puisse compiler un code qui reprenne des éléments de la norme C99 ...
Je m'intéresse à la programmation en dilettante depuis plusieurs années, donc écrire le code que j'ai posté ne m'a pris qu'une heure ou deux ... Ceci dit, le secret pour maitriser la programmation est la pratique, et malheureusement, mon emploi du temps ne me permet pas de m'entrainer autant que je le souhaiterais :-(
Si tu le peux, pratique le plus possible, et vas voir le cours dont j'indiquais l'adresse dans mon premier message, il est vraiment très accessible pour un débutant !
<ma vie>
j'ai 41 ans et j'ai découvert le monde de l'ordinateur à 15 ans (en 1983) au club informatique de mon collège, sur un "Goupil 2" ... cela ressemblait aux premiers PC, la machine était rouge, avec un écran cathodique monochrome vert, et deux énormes lecteurs de disquettes, un pour le système (C/PM ?), un pour sauvegarder les programmes que les profs de maths nous faisaient développer sur l'interpréteur Basic ... je me souviens de mon désarroi la première fois ou l'on m'a expliqué que :
100 I=I+1
:-)
Maintenant, je suis comptable et je me passionne pour l'informatique de gestion, l'ordinateur est pour moi un loisir et je souhaiterais, pour mon plaisir, arriver à développer une application de comptabilité, éventuellement interfacée avec une base de données type mySql, en C ou en Python ...
J'ai testé code (lien du premier post) sous Windows avec le
compilateur djgpp et ça fonctionne très bien sans modif. J'en conclu
que Visual Express doit être plus exigeant que djgpp. Jusqu'à présent,
je faisais l'expérience du contraire, ce qui passe dans un
environnement windows ne passait pas forcément dans linux. Comme toi,
je compile aussi sous ubuntu.
Tu dis être "éternel débutant en C". J'ai commencé à apprendre le C il
y a 4-5 mois.
Je serais curieux de savoir combien d'heure tu as consacré à
l'apprentissage pour arriver à faire ce programme ? Je suppose que ce
code est le fruit de tes connaissances sans avoir vu la solution
officielle.
De mon côté, je n'ai pas encore approché les fonctions ni les
pointeurs, tout mon code est contenu dans main. Je suppose que je n'ai
pas pris une bonne habitude et que ça va me demander un peu de temps.
Je me forme avec :
http://www.ltam.lu/Tutoriel_Ansi_C/
Il y a quelques années, j'ai essayé de faire tout les exercices de ce
site :
http://www.pise.info/algo/codage.htm
pour comprendre un petit peu les bases de la programmation.
Je ne sais pas encore combien de temps je dois investir sur le C pour
arriver à un niveau convenable mais la réponse me fait peur.
Vos conseils sont bienvenus.
Pascal
Bonjour,
Comme me l'ont expliqué les contributeurs de ce forum, le problème de
compilation avec visual c++ 2008 venait du fait que mon code ne
respectait pas complètement la norme C89, mais reprenait aussi des
techniques de programmation prévues par la norme C99 ... alors, on peut
voir le verre à moitié vide ou à moitié plein :
- Soit (pour une fois) Microsoft sait implémenter de manière correcte
une norme
- Soit les outils libres de programmation on 10 ans d'avance sur les
outils propriétaires ;-)
Je crois que djgpp est un dérivé de GCC (les professionnels du C
confirmeront ou infirmeront) donc, cela parait logique qu'il puisse
compiler un code qui reprenne des éléments de la norme C99 ...
Je m'intéresse à la programmation en dilettante depuis plusieurs années,
donc écrire le code que j'ai posté ne m'a pris qu'une heure ou deux ...
Ceci dit, le secret pour maitriser la programmation est la pratique, et
malheureusement, mon emploi du temps ne me permet pas de m'entrainer
autant que je le souhaiterais :-(
Si tu le peux, pratique le plus possible, et vas voir le cours dont
j'indiquais l'adresse dans mon premier message, il est vraiment très
accessible pour un débutant !
<ma vie>
j'ai 41 ans et j'ai découvert le monde de l'ordinateur à 15 ans (en
1983) au club informatique de mon collège, sur un "Goupil 2" ... cela
ressemblait aux premiers PC, la machine était rouge, avec un écran
cathodique monochrome vert, et deux énormes lecteurs de disquettes, un
pour le système (C/PM ?), un pour sauvegarder les programmes que les
profs de maths nous faisaient développer sur l'interpréteur Basic ... je
me souviens de mon désarroi la première fois ou l'on m'a expliqué que :
100 I=I+1
:-)
Maintenant, je suis comptable et je me passionne pour l'informatique de
gestion, l'ordinateur est pour moi un loisir et je souhaiterais, pour
mon plaisir, arriver à développer une application de comptabilité,
éventuellement interfacée avec une base de données type mySql, en C ou
en Python ...
J'ai testé code (lien du premier post) sous Windows avec le compilateur djgpp et ça fonctionne très bien sans modif. J'en conclu que Visual Express doit être plus exigeant que djgpp. Jusqu'à présent, je faisais l'expérience du contraire, ce qui passe dans un environnement windows ne passait pas forcément dans linux. Comme toi, je compile aussi sous ubuntu.
Tu dis être "éternel débutant en C". J'ai commencé à apprendre le C il y a 4-5 mois.
Je serais curieux de savoir combien d'heure tu as consacré à l'apprentissage pour arriver à faire ce programme ? Je suppose que ce code est le fruit de tes connaissances sans avoir vu la solution officielle.
De mon côté, je n'ai pas encore approché les fonctions ni les pointeurs, tout mon code est contenu dans main. Je suppose que je n'ai pas pris une bonne habitude et que ça va me demander un peu de temps. Je me forme avec :
http://www.ltam.lu/Tutoriel_Ansi_C/
Il y a quelques années, j'ai essayé de faire tout les exercices de ce site :
http://www.pise.info/algo/codage.htm
pour comprendre un petit peu les bases de la programmation.
Je ne sais pas encore combien de temps je dois investir sur le C pour arriver à un niveau convenable mais la réponse me fait peur.
Vos conseils sont bienvenus.
Pascal
Bonjour,
Comme me l'ont expliqué les contributeurs de ce forum, le problème de compilation avec visual c++ 2008 venait du fait que mon code ne respectait pas complètement la norme C89, mais reprenait aussi des techniques de programmation prévues par la norme C99 ... alors, on peut voir le verre à moitié vide ou à moitié plein :
- Soit (pour une fois) Microsoft sait implémenter de manière correcte une norme - Soit les outils libres de programmation on 10 ans d'avance sur les outils propriétaires ;-)
Je crois que djgpp est un dérivé de GCC (les professionnels du C confirmeront ou infirmeront) donc, cela parait logique qu'il puisse compiler un code qui reprenne des éléments de la norme C99 ...
Je m'intéresse à la programmation en dilettante depuis plusieurs années, donc écrire le code que j'ai posté ne m'a pris qu'une heure ou deux ... Ceci dit, le secret pour maitriser la programmation est la pratique, et malheureusement, mon emploi du temps ne me permet pas de m'entrainer autant que je le souhaiterais :-(
Si tu le peux, pratique le plus possible, et vas voir le cours dont j'indiquais l'adresse dans mon premier message, il est vraiment très accessible pour un débutant !
<ma vie>
j'ai 41 ans et j'ai découvert le monde de l'ordinateur à 15 ans (en 1983) au club informatique de mon collège, sur un "Goupil 2" ... cela ressemblait aux premiers PC, la machine était rouge, avec un écran cathodique monochrome vert, et deux énormes lecteurs de disquettes, un pour le système (C/PM ?), un pour sauvegarder les programmes que les profs de maths nous faisaient développer sur l'interpréteur Basic ... je me souviens de mon désarroi la première fois ou l'on m'a expliqué que :
100 I=I+1
:-)
Maintenant, je suis comptable et je me passionne pour l'informatique de gestion, l'ordinateur est pour moi un loisir et je souhaiterais, pour mon plaisir, arriver à développer une application de comptabilité, éventuellement interfacée avec une base de données type mySql, en C ou en Python ...
J'ai 31, je suis comptable alors peut-être que dans 10 ans, je tiendrais le même discours. Pour une passion on ne compte pas...
Seulement, je me demande à partir de quand on commence à travailler avec une interface graphique plutôt que le terminal?
Éric Lévénez
a écrit :
Seulement, je me demande à partir de quand on commence à travailler avec une interface graphique plutôt que le terminal?
Tu veux dire que tu penses que le CLI est inférieur au GUI en terme de programmation ? Le plus dur est de concevoir et coder des algorithme, de gérer les entrées/sorties... Et pour le GUI c'est juste appeler quelques fonctions faites par d'autres, sauf si tu veux faire ton propre GUI.
-- Éric Lévénez FAQ de fclc : <http://www.levenez.com/lang/c/faq/>
bpascal123@googlemail.com a écrit :
Seulement, je me demande à partir de quand on commence à travailler
avec une interface graphique plutôt que le terminal?
Tu veux dire que tu penses que le CLI est inférieur au GUI en terme de
programmation ? Le plus dur est de concevoir et coder des algorithme, de
gérer les entrées/sorties... Et pour le GUI c'est juste appeler quelques
fonctions faites par d'autres, sauf si tu veux faire ton propre GUI.
--
Éric Lévénez
FAQ de fclc : <http://www.levenez.com/lang/c/faq/>
Seulement, je me demande à partir de quand on commence à travailler avec une interface graphique plutôt que le terminal?
Tu veux dire que tu penses que le CLI est inférieur au GUI en terme de programmation ? Le plus dur est de concevoir et coder des algorithme, de gérer les entrées/sorties... Et pour le GUI c'est juste appeler quelques fonctions faites par d'autres, sauf si tu veux faire ton propre GUI.
-- Éric Lévénez FAQ de fclc : <http://www.levenez.com/lang/c/faq/>
bpascal123
Yannick,
Dans ton code, je vois que tu ne fais pas appel aux pointeurs. Est-ce parce que tu as ignoré les pointeurs en apprenant le C ou tu n'en as pas besoin étant donné ce que tu envisages par la suite ; application comptable "grand public" en c, python...?
Pascal
Yannick,
Dans ton code, je vois que tu ne fais pas appel aux pointeurs. Est-ce
parce que tu as ignoré les pointeurs en apprenant le C ou tu n'en as
pas besoin étant donné ce que tu envisages par la suite ; application
comptable "grand public" en c, python...?
Dans ton code, je vois que tu ne fais pas appel aux pointeurs. Est-ce parce que tu as ignoré les pointeurs en apprenant le C ou tu n'en as pas besoin étant donné ce que tu envisages par la suite ; application comptable "grand public" en c, python...?
Pascal
bpascal123
On 9 sep, 23:00, Éric Lévénez wrote:
a écrit :
> Seulement, je me demande à partir de quand on commence à travailler > avec une interface graphique plutôt que le terminal?
Tu veux dire que tu penses que le CLI est inférieur au GUI en terme de programmation ? Le plus dur est de concevoir et coder des algorithme, de gérer les entrées/sorties... Et pour le GUI c'est juste appeler quelq ues fonctions faites par d'autres, sauf si tu veux faire ton propre GUI.
-- Éric Lévénez FAQ de fclc : <http://www.levenez.com/lang/c/faq/>
Je trouve pas que le CLI est inférieur mais le look du CLI n'est pas très joyeux... Je ne dis pas que le CLI n'est pas efficace mais des fois on peut joindre l'utile à l'agréable. C'est pas parce que dans les années 70 et 80 on programmait sur des frigidaires avec un petit écran ou une imprimante ou des écrans monochromes qu'on doit s'infliger la même chose... En php, css, il y a moyen d'avoir un rendu visuel sur une page web...Je suis d'accord, ces langages sont des langages interprétés mais n'y t-il pas des ponts entre langages interprétés et compilés? J'ai vu par hasard sur une page web, qu'il y a la possibilité de copier-coller un code dans une page web et le site se charge de la compilation et le résultat s'affiche dans la page web...
On 9 sep, 23:00, Éric Lévénez <use...@levenez.com> wrote:
bpascal...@googlemail.com a écrit :
> Seulement, je me demande à partir de quand on commence à travailler
> avec une interface graphique plutôt que le terminal?
Tu veux dire que tu penses que le CLI est inférieur au GUI en terme de
programmation ? Le plus dur est de concevoir et coder des algorithme, de
gérer les entrées/sorties... Et pour le GUI c'est juste appeler quelq ues
fonctions faites par d'autres, sauf si tu veux faire ton propre GUI.
--
Éric Lévénez
FAQ de fclc : <http://www.levenez.com/lang/c/faq/>
Je trouve pas que le CLI est inférieur mais le look du CLI n'est pas
très joyeux... Je ne dis pas que le CLI n'est pas efficace mais des
fois on peut joindre l'utile à l'agréable. C'est pas parce que dans
les années 70 et 80 on programmait sur des frigidaires avec un petit
écran ou une imprimante ou des écrans monochromes qu'on doit
s'infliger la même chose...
En php, css, il y a moyen d'avoir un rendu visuel sur une page
web...Je suis d'accord, ces langages sont des langages interprétés
mais n'y t-il pas des ponts entre langages interprétés et compilés?
J'ai vu par hasard sur une page web, qu'il y a la possibilité de
copier-coller un code dans une page web et le site se charge de la
compilation et le résultat s'affiche dans la page web...
> Seulement, je me demande à partir de quand on commence à travailler > avec une interface graphique plutôt que le terminal?
Tu veux dire que tu penses que le CLI est inférieur au GUI en terme de programmation ? Le plus dur est de concevoir et coder des algorithme, de gérer les entrées/sorties... Et pour le GUI c'est juste appeler quelq ues fonctions faites par d'autres, sauf si tu veux faire ton propre GUI.
-- Éric Lévénez FAQ de fclc : <http://www.levenez.com/lang/c/faq/>
Je trouve pas que le CLI est inférieur mais le look du CLI n'est pas très joyeux... Je ne dis pas que le CLI n'est pas efficace mais des fois on peut joindre l'utile à l'agréable. C'est pas parce que dans les années 70 et 80 on programmait sur des frigidaires avec un petit écran ou une imprimante ou des écrans monochromes qu'on doit s'infliger la même chose... En php, css, il y a moyen d'avoir un rendu visuel sur une page web...Je suis d'accord, ces langages sont des langages interprétés mais n'y t-il pas des ponts entre langages interprétés et compilés? J'ai vu par hasard sur une page web, qu'il y a la possibilité de copier-coller un code dans une page web et le site se charge de la compilation et le résultat s'affiche dans la page web...
YannicK
a écrit :
Yannick,
Dans ton code, je vois que tu ne fais pas appel aux pointeurs. Est-ce parce que tu as ignoré les pointeurs en apprenant le C ou tu n'en as pas besoin étant donné ce que tu envisages par la suite ; application comptable "grand public" en c, python...?
Pascal
Si, je fais appel aux pointeus, de manière indirecte puisque les tableaux sont une forme de pointeurs. Regarde le code ci-dessous pour t'en convaincre :
// Prototype de la fonction d'affichage void affiche(int *tableau, int tailleTableau);
int main(int argc, char *argv[]) { int tableau[4] = {10, 15, 3, 7};
// On affiche le contenu du tableau :
affiche(tableau, 4);
return 0; }
void affiche(int *tableau, int tailleTableau) { int i;
for (i = 0 ; i < tailleTableau ; i++) { printf("%dn", tableau[i]); } }
Tu peux voir que dans le prototype et dans la déclaration de la fonction on écrit:
void affiche(int *tableau, int tailleTableau)
par contre, quand on appelle la fonction dans le main(), on écrit :
affiche(tableau, 4);
Comme je le disais dans le premier post qui a ouvert ce fil, je travaille avec le cours du site du zéro :
Je t'engage vivement à suivre ce cours en ligne qui est le plus accessible que j'ai pu voir jusqu'à maintenant, même s'il n'est pas exempt de défaut : il mélange les techniques des deux normes du C, ce qui m'a valu mon premier post ici !
Ceci dit, l'auteur a beaucoup d'humour et introduit les concepts de manière très progressive et très pratique : à la fin du cours on est sensé savoir écrire une application graphique multimédia avec manipulation de la souris ....
Lis le cours, et surtout fais les exercices, et à partir des exercices n'hésite pas à coder tes propres variantes : c'est comme cela qu'on progresse.
Et si vraiment tu vois que tu n'y arrive pas en C, fais comme moi, commence par un langage plus simple comme Python. Tu peux télécharger un interpréteur pour windows ici :
http://www.python.org/
Si tu es sous ubuntu, normalement python est installé par défaut.
Tu trouveras un excellent cours ici, de près de 400 pages :
Python est un langage interprété (et non compilé comme le C) il est plus simple que C au sens ou on n'est pas obligé de typer les variables, de gérer soi-même la mémoire et que les pointeurs n'y existent pas. La manipulation des chaines de caractères est aussi beaucoup plus simple.
Par contre on peut définir des fonctions comme en C, faire de la programmation orientée objet comme en C++, et par défaut l'installation comporte la bibliothèque Tkinter qui permet de développer des applications graphiques en mode fenêtre ... Le cours indiqué ci-dessus explique tout ça de manière très claire ...
Pour moi apprendre le langage C est une finalité pour sa portabilité et son universalité, mais Python est mon "deuxième langage" pour sa simplicité et sa rapidité de développement, et j'ai beaucoup progressé grâce à lui ...
Dans ton code, je vois que tu ne fais pas appel aux pointeurs. Est-ce
parce que tu as ignoré les pointeurs en apprenant le C ou tu n'en as
pas besoin étant donné ce que tu envisages par la suite ; application
comptable "grand public" en c, python...?
Pascal
Si, je fais appel aux pointeus, de manière indirecte puisque les
tableaux sont une forme de pointeurs. Regarde le code ci-dessous pour
t'en convaincre :
// Prototype de la fonction d'affichage
void affiche(int *tableau, int tailleTableau);
int main(int argc, char *argv[])
{
int tableau[4] = {10, 15, 3, 7};
// On affiche le contenu du tableau :
affiche(tableau, 4);
return 0;
}
void affiche(int *tableau, int tailleTableau)
{
int i;
for (i = 0 ; i < tailleTableau ; i++)
{
printf("%dn", tableau[i]);
}
}
Tu peux voir que dans le prototype et dans la déclaration de la fonction
on écrit:
void affiche(int *tableau, int tailleTableau)
par contre, quand on appelle la fonction dans le main(), on écrit :
affiche(tableau, 4);
Comme je le disais dans le premier post qui a ouvert ce fil, je
travaille avec le cours du site du zéro :
Je t'engage vivement à suivre ce cours en ligne qui est le plus
accessible que j'ai pu voir jusqu'à maintenant, même s'il n'est pas
exempt de défaut : il mélange les techniques des deux normes du C, ce
qui m'a valu mon premier post ici !
Ceci dit, l'auteur a beaucoup d'humour et introduit les concepts de
manière très progressive et très pratique : à la fin du cours on est
sensé savoir écrire une application graphique multimédia avec
manipulation de la souris ....
Lis le cours, et surtout fais les exercices, et à partir des exercices
n'hésite pas à coder tes propres variantes : c'est comme cela qu'on
progresse.
Et si vraiment tu vois que tu n'y arrive pas en C, fais comme moi,
commence par un langage plus simple comme Python. Tu peux télécharger un
interpréteur pour windows ici :
http://www.python.org/
Si tu es sous ubuntu, normalement python est installé par défaut.
Tu trouveras un excellent cours ici, de près de 400 pages :
Python est un langage interprété (et non compilé comme le C) il est plus
simple que C au sens ou on n'est pas obligé de typer les variables, de
gérer soi-même la mémoire et que les pointeurs n'y existent pas. La
manipulation des chaines de caractères est aussi beaucoup plus simple.
Par contre on peut définir des fonctions comme en C, faire de la
programmation orientée objet comme en C++, et par défaut l'installation
comporte la bibliothèque Tkinter qui permet de développer des
applications graphiques en mode fenêtre ... Le cours indiqué ci-dessus
explique tout ça de manière très claire ...
Pour moi apprendre le langage C est une finalité pour sa portabilité et
son universalité, mais Python est mon "deuxième langage" pour sa
simplicité et sa rapidité de développement, et j'ai beaucoup progressé
grâce à lui ...
Dans ton code, je vois que tu ne fais pas appel aux pointeurs. Est-ce parce que tu as ignoré les pointeurs en apprenant le C ou tu n'en as pas besoin étant donné ce que tu envisages par la suite ; application comptable "grand public" en c, python...?
Pascal
Si, je fais appel aux pointeus, de manière indirecte puisque les tableaux sont une forme de pointeurs. Regarde le code ci-dessous pour t'en convaincre :
// Prototype de la fonction d'affichage void affiche(int *tableau, int tailleTableau);
int main(int argc, char *argv[]) { int tableau[4] = {10, 15, 3, 7};
// On affiche le contenu du tableau :
affiche(tableau, 4);
return 0; }
void affiche(int *tableau, int tailleTableau) { int i;
for (i = 0 ; i < tailleTableau ; i++) { printf("%dn", tableau[i]); } }
Tu peux voir que dans le prototype et dans la déclaration de la fonction on écrit:
void affiche(int *tableau, int tailleTableau)
par contre, quand on appelle la fonction dans le main(), on écrit :
affiche(tableau, 4);
Comme je le disais dans le premier post qui a ouvert ce fil, je travaille avec le cours du site du zéro :
Je t'engage vivement à suivre ce cours en ligne qui est le plus accessible que j'ai pu voir jusqu'à maintenant, même s'il n'est pas exempt de défaut : il mélange les techniques des deux normes du C, ce qui m'a valu mon premier post ici !
Ceci dit, l'auteur a beaucoup d'humour et introduit les concepts de manière très progressive et très pratique : à la fin du cours on est sensé savoir écrire une application graphique multimédia avec manipulation de la souris ....
Lis le cours, et surtout fais les exercices, et à partir des exercices n'hésite pas à coder tes propres variantes : c'est comme cela qu'on progresse.
Et si vraiment tu vois que tu n'y arrive pas en C, fais comme moi, commence par un langage plus simple comme Python. Tu peux télécharger un interpréteur pour windows ici :
http://www.python.org/
Si tu es sous ubuntu, normalement python est installé par défaut.
Tu trouveras un excellent cours ici, de près de 400 pages :
Python est un langage interprété (et non compilé comme le C) il est plus simple que C au sens ou on n'est pas obligé de typer les variables, de gérer soi-même la mémoire et que les pointeurs n'y existent pas. La manipulation des chaines de caractères est aussi beaucoup plus simple.
Par contre on peut définir des fonctions comme en C, faire de la programmation orientée objet comme en C++, et par défaut l'installation comporte la bibliothèque Tkinter qui permet de développer des applications graphiques en mode fenêtre ... Le cours indiqué ci-dessus explique tout ça de manière très claire ...
Pour moi apprendre le langage C est une finalité pour sa portabilité et son universalité, mais Python est mon "deuxième langage" pour sa simplicité et sa rapidité de développement, et j'ai beaucoup progressé grâce à lui ...