Je me mets au C

Dans ce cas… :stuck_out_tongue:

[quote=“mattotop”]rien. Je ne vois pas ce que tu veux dire par “peut en commander”.
Chaque objet nommé (on dit variable) doit être typée pour être utilisée, c’est tout.[/quote]
Ah, d’accord. En fait, par “peut en commander” je voulais dire “une variable peut-elle dépendre d’une autre ?”… Ca apporte la réponse à ma question, merci ! :smiley:

D’accord, merci. :slightly_smiling:

C’est bien pour ça que j’ai précisé “parfois”. Le cas de figure où il y a un “autrepart” est-il courant ?

Donc c’est de l’a peu près ? Pour connaître la valeur la plus approprié, il faudrait se pencher du côté des ressources utilisées par la machine, si j’ai bien compris ?

Le bonjour est passé. Je suis peut-être furieux mais j’ai toujours voulu me plonger la-dedans.
Qui sait, peut-être vais-je en faire mon métier, puisque tout ce qui touche au PC (enfin aux ordinateurs en général) m’intéresse.
Même si je suis + software que hardware, le matos c’est pas tellement mon truc, moi qui ai râté tant de soudures pour des enceintes que l’on fabriquait en techno.
C’était dégueulasse et ça cour-circuitait. :blush:

C’est bien pour ça que j’ai précisé “parfois”. Le cas de figure où il y a un “autrepart” est-il courant ?[/quote]oui, pour faire propre, il vaut mieux découper au max en petites fonctions qui ne font qu’une chose, et main n’echappe pas à cette règle.
Par ailleurs, tu verras qu’une série de fonctions bien pratiques te reserviront régulièrement, donc tu pourra les mettre dans un fichier à part que tu ‘include’ ras dans plusieyurs de tes projets pour les réutiliser.
C’est ce qu’on appelle la modularité, et si tu va plus loin, tu rentreras alors aussi dans la compilation séparée. [quote=“wavesound”][quote=“mattotop”]Voilà, c’est toi qui evalue si ton int va pouvoir être entre -32767 et +32767, ou si tu as besoin d’un type d’entier plus grand, qui prendra plus d’octets en mêmoire, même si au final il vaut zero.[/quote]Donc c’est de l’a peu près ? Pour connaître la valeur la plus approprié, il faudrait se pencher du côté des ressources utilisées par la machine, si j’ai bien compris ?[/quote]Non. Rien d’approximatif là dedans, tu dois réflechir pour être sûr que tu prends bien la bonne taille AVANT d’implémenter ça dans ton code. Tu peux t’apercevoir à l’usage que tu t’es trompé, mais c’est que tu as mal réflechi avant: ça ne s’évalue pas aprés.
Tu peux aussi décider que par mesure d’économie, ta calculette ne travaillera qu’avec des petits entier, mais il faut dans ce cas que tu vérifies avant de faire l’operation que le resultat de l’operation que tu vas faire n’est pas plus grand que ce que tu peux stocker.
Ca demande un peu de réflexion mathématique simple pour concevoir les tests.[quote=“wavesound”][quote=“mattotop”]Dis bonjour à ton père de ma part et dis lui que son fils est un furieux.[/quote]Le bonjour est passé. Je suis peut-être furieux mais j’ai toujours voulu me plonger la-dedans.
Qui sait, peut-être vais-je en faire mon métier, puisque tout ce qui touche au PC (enfin aux ordinateurs en général) m’intéresse.
Même si je suis + software que hardware, le matos c’est pas tellement mon truc, moi qui ai râté tant de soudures pour des enceintes que l’on fabriquait en techno.
C’était dégueulasse et ça cour-circuitait. :blush:[/quote]Pour info, moi c’est pareil, je n’en ai un peu rien à cirer si c’est un pentium ou un buron machin, s’il y a des nappes grise ou rose, etc…
C’est comme les voitures, je suis infoutu de te donner une marque en en regardant une, tout juste le pays d’origine de la voiture.
On est matèrialiste ou on ne l’est pas.

Je suis la-dessus en ce moment et c’est galère galère, j’ai lu tout le cours du zéro pourtant.

J’arrive pas vraiment à réaliser ça, du coup j’ai jeté un oeil à la correction, et effectivement je n’y aurai pas pensé (enfin, pas à certaines choses).
Ca me fout en rogne. :cry:

Voila la correction.

[code]/*

Plus ou Moins

Réalisé par M@teo21, pour les cours du Site du Zér0
www.siteduzero.com (cours de programmation en C / C++ pour débutants)

Création le : 20/12/2005

*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main ( int argc, char** argv )
{
long nombreMystere = 0, nombreEntre = 0;
const long MAX = 100, MIN = 1;

// Génération du nombre aléatoire

srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

/* La boucle du programme. Elle se répète tant que l'utilisateur
n'a pas trouvé le nombre mystère */

do
{
    // On demande le nombre
    printf("Quel est le nombre ? ");
    scanf("%ld", &nombreEntre);

    // On compare le nombre entré avec le nombre mystère

    if (nombreMystere > nombreEntre)
        printf("C'est plus !\n\n");
    else if (nombreMystere < nombreEntre)
        printf("C'est moins !\n\n");
    else
        printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
} while (nombreEntre != nombreMystere);

system("PAUSE");

}[/code]

c’est pas bien de lire les coorections !
Au moins commente chaque ligne, pour comprendre.

[quote=“debianhadic”]c’est pas bien de lire les coorections !
Au moins commente chaque ligne, pour comprendre.[/quote]
J’avais pas d’autre solution, j’avais vraiment l’impression d’être perdu, comme si je n’avais pas compris le cours, mais pourtant si. Même s’il y a des points que j’ai mieux compris que d’autres.
D’accord, je vais essayer de commenter ça. :wink:

C’est pas que tu n’avais pas compris le cours, c’est que tu n’en avais pas eu, alors qu’il aurait fallu que quelqu’un te fasse un cours général sur 2 trois éléments, dans lesquelles tu aurais pu piocher les bribes de ce dont tu ne savais pas.
Tu ne pouvais pas par exemple inventer la fonction rand ni srand, ni imaginer l’inclusion de time.h si on ne te l’avait pas expliqué ou si tu ne l’avais pas rencontré ailleurs avant. Vois tu ?

Effectivement.

Il faudrait que je voie ça avec mon père.

Il fait quoi ton cher papa ?
C’est pour lui que tu ne travailles pas en cours ? :laughing:

:laughing:

Il est prof de maths à domicile !
Bon, vous allez me dire, pourquoi t’es nul en maths alors.
Ben… :smt010

Il s’est fait viré il y a quelques années, de chez Sony ou Alcatel, je sais plus, en tant que programmeur.

Donc il s’est plongé dans sa seconde passion, les maths.

Il a notamment travaillé sur le programme de tir du char Leclerc pendant ces longues années de pur plaisir, quand il était programmeur. :smt068

Ma mère était prof d’histoire-géo, et ça tombe mal car je suis nul en histoire-géo aussi… :smt091

Continues à programmer, tu sauras aimer les maths et peut être même être bon, vu comment tu manipules déjà les mots.
Pour l’histoire géo, faut bosser, pas de secret. :wink:

Oui, c’est vrai que tout d’un coup les maths ont l’air + intéressantes !

Je pense que je n’en comprenais ni le sens, ni le but. Pourquoi apprendre quelque chose si cela ne sert à rien ?

Si la programmation me prouve le contraire… Je fonce ! :arrow_right:

J’ai commencé à créer ce petit jeu du Plus et du Moins grâce à un onglet par cours sur le site du Zéro.
Comme ça, j’ai toujours mes références au cas où.
J’ai déjà bien avancé. Voila :

[code]#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)

{
long nombreMystere = 0, nombreEntre = 0;
const long MAX = 1000, MIN = 1; //Constantes MAX et MIN

srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

printf("Quel est le nombre ?\n");
scanf("%ld", &nombreEntre);

do
{
if (nombreMystere > nombreEntre)
{
printf("\nNon, le nombre que j'ai choisi est supérieur à celui que vous avez entré !\n");
}
else if (nombreMystere < nombreEntre)
{
printf("\nNon, le nombre que j'ai choisi est inférieur à celui que vous avez entré !\n");
}
else (nombreMystere == nombreEntre)
{
printf("\nBien joué, vous avez trouvé le bon nombre !\n");
}
} while (nombreMystere != nombreEntre);

    return = 0;

}[/code]
Bien-sûr, sans s’aider de la correction, sinon ça ne sert à rien. Je m’aide juste des cours du site du Zéro et tout roule pour le moment (bien que mon père m’est rappellé que je devais créer une boucle - j’avais oublié de le faire, triple buse que je suis !).
J’espère que ça va aller, en tout cas merci pour tous vos conseils. :slightly_smiling:

C’était presque tout faux, mais j’ai rectifié le tir.

Et voila. :slightly_smiling:

[code]/* GNUPlusMinus 1.0.0 (06/07/07)

GNU General Public License 2.0 */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)

{
long nombreMystere = 0, nombreEntre = 0;
const long MAX = 100, MIN = 1;

ral Public License 2.0\n--------------------------------------------------\n\n");
// Fin

// Génération d'un nombre aléatoire
srand(time(NULL));  
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
// Fin

// Le début de la boucle, boucle qui ne s'arrêtera que lors de la saisie du bon nombre
do 
{        
    printf("Quel nombre pensez-vous que j'ai choisi ? ");
    scanf("%ld", &nombreEntre);
    if (nombreMystere > nombreEntre)
    {
        printf("C'est supérieur.\n\n");
    }
    else if (nombreMystere < nombreEntre)
    {
        printf("\nC'est inférieur.\n\n");
    }
    else
    {
        printf("\nC'est exact ! Epatant, vous êtes épatant !\n\n");
    };
} 
while (nombreEntre != nombreMystere);
// Fin

return 0;

}[/code]

Bon, qu’est-ce que je pourrai bien faire après ? :laughing:

  • Je continue le tutoriel du Zéro : les fonctions.

  • J’améliore ma calculatrice en remplaçant, par exemple, les chiffres par les +, -, * et / dans le menu ; je devrai donc inciter l’utilisateur à saisir +, -, * et /.
    C’est une idée de mon père, et il m’a dit que c’était pas de la tarte ! :stuck_out_tongue:
    “Il faut que tu travailles avec les chaînes de caractères” qu’il m’a dit.

  • J’améliore mon petit jeu GNUPlusMinus comme conseillé sur le tutoriel du site du Zéro, en rajoutant le choix d’un niveau de difficulté, le compteur des coups, le nombre de joueurs, demander à l’utilisateur s’il veut faire une autre partie…

  • Je fusionne mes deux programmes (calculatrice et jeu) en un seul, avec un menu permettant de choisir. C’est également une idée de mon père, mais c’est peut-être moins intéressant, bien qu’il m’ai dit que c’était pas si évident que ça dans un même main.

Alors, que faire ? :smiling_imp:

le classique du débutant avancé en c:
un Lode Runner
en.wikipedia.org/wiki/Lode_Runner
fr.wikipedia.org/wiki/Lode_Runner
Pas beaucoup de traitement de chaine, mais ça peut s’aficher en caractères, et ça devrait t’occuper quelques mois.

Je vais voir ça !

Au fait, mieux vaut programmer en IDE ou bien de tout faire en éditeur de texte et de compiler à la main en console ? J’ai pour l’instant fait comme ça sans problèmes…

Comment faire lorsqu’il faudra séparer les sources en plusieurs fichiers, je suppose qu’on peut faire ça en console aussi ?

Chez moi, Emacs affiche des carrés à la place des caractères…
Donc j’utilise gedit, l’éditeur de texte de GNOME.

tu as pris emacs ou emacs-nox ?
Tu as quoi comme locale ?
(résultat de la commande locale )

J’ai pris le paquet emacs, donc emacs21.

Sinon, locale :

LANG=fr_FR.UTF-8 LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8" LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL=
Je suis qu’en français. :wink:

regardes ça, ça peut te servir puisque tu es en utf8, et en particulier la partie sur emacs, mais le reste aussi:
wiki.debian.org/DebFrUTF8

Vais voir ça. :stuck_out_tongue:

Emacs est vraiment si bien qu’on le dit ? Il existe en français ? :stuck_out_tongue: