# Je me mets au C

**URL:** <https://www.debian-fr.org/t/je-me-mets-au-c/8416>\
**Category:** Pause Café\
**Created:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416 "2016-02-20T16:06:38Z")\
**Posts on this page:** 20\
**Page:** 6

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/101 "2016-02-20T16:06:58Z")

</div>

et puisque t’as bien compris le python aussi, je te conseille d’apprendre les deux. tu verras que pour la manipulation de chaines ( ce que tu aimes bien faire ne ce moment ) le C va vite devenir super lourdingue.  
mais bon j’arrete de devenir super lourdingue moi aussi.

sinon à propos de l’utilité:

apprends déjà à faire bien. l’util viendra tout seul avec l’utilité, et le s besoins que tu auras.

c’est vrai que si t’as envie de t’éclater, essayer de faire un tableau de pointeur de fonction qui prennent deux nombres et en retourne un ( l’une additione, l’autre divise, l’autre multiplie, l’autre ce que tu veux )

prend deux nombres, parcourt le tableau dans une boucle “for”, et retourne le resultat de toute les opérations appliquées à ces deux nombres.

tu veras que les pointeurs et les pointeurs de fonctions, c’est d’une toute autre puissance que printf. c’est un peu plus conceptuel.

si tu sais faire ça, alors tu peux te lancer à faire un petit programme utile.  
avant je pense pas que ce soit une bonne idée, parce que meme toi tu t’en resservira pas de ce que tu as ecris.

(ça veut pas dire qu’il faut tout le temps utiliser de tableaux de pointeurs!)  
( et ça veut dire qu’il faut apprendre notament ce qu’est une fonction, puis un pointeur, puis un pointeur de fonction, puis les boucles, les conditions if )

c’est comme le français, difficile d’ecrire un bouquin sans connaitre le passé, le futur, les circontances de temps et de lieu, mais bon sujet-verbe c’est déjà bien.

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/102 "2016-02-20T16:06:59Z")

</div>

😆

Alors que faire avec le C ?

---

<div class="post-metadata">

**Author:** ![Yoko](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/58956e/32.png) [@Yoko](https://www.debian-fr.org/u/Yoko)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/103 "2016-02-20T16:06:59Z")

</div>

@Anoyzthen : C’est un peu énorme ce que tu lui demande, il a pas encore écris de fonctions (ni utilisé de boucles) autres que la fonction main et tu veut lui faire faire des pointeur sur fonction, il a même pas encore vu tout les types de base. Inutile de se presser.

@wavesound : Les programme rigolos et pratiques à faire sont tout ceux qui font du traitement de fichiers textes. Tu n’en a pas encore tout de suite le niveau mais tu peut commencer à t’y intéresser.

---

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/104 "2016-02-20T16:06:59Z")

</div>

@Yoko  
très juste ! bah oui c’est énorme 🙂, mais pour le faire, il doit avoir compris ce qu’est le C. là il nous demande de faire un programme utile en C. c’est un peu énorme ce qu’il nous demande aussi. peut etre meme plus que ce que moi je demande.

certainement pendant que tu me repondais j’avais fait un edit à la dernière ligne precisant qu’il fallait apprendre tous les éléments avant. no soucy.

bon je vous laisse. je m’en vais dans la fôret.

---

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/105 "2016-02-20T16:06:59Z")

</div>

il manquera meme un petit malloc dans l’exemple que j’ai demandé ça se trouve… bon j’arrete mes conneries je vais en retard.

chuss.

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/106 "2016-02-20T16:06:59Z")

</div>

[quote=“wavesound”]  
Vous avez des idées de programmes que je peux créer, et qui seraient un peu utiles ?[/quote]

Voilà, tu viens de découvrir ce qui est le plus difficile ds la programmation : une idée de programme. 😆

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/107 "2016-02-20T16:07:00Z")

</div>

[quote=“ricardo”][quote=“wavesound”]  
Vous avez des idées de programmes que je peux créer, et qui seraient un peu utiles ?[/quote]

Voilà, tu viens de découvrir ce qui est le plus difficile ds la programmation : une idée de programme. 😆[/quote]  
😛

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/108 "2016-02-20T16:07:00Z")

</div>

[quote=“Anoyzthen”]  
c’est comme le français, difficile d’ecrire un bouquin sans connaitre le passé, le futur, les circontances de temps et de lieu, mais bon sujet-verbe c’est déjà bien.[/quote]Belle métaphore !

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/109 "2016-02-20T16:07:00Z")

</div>

Cela dit, Anoyz et yoko t’on répondu sagement, tu verras les programmes ensuite, commence par faire ttes les choses simples et, pour les bien faire, c’est déjà du travail.  
Ttes les opérations, y-compris les pourcentages dont tu te serviras souvent.  
Cherche les méthode d’incrémentation : machin = machin +1, etc  
Les boucles comme il t’a été dit et rien que là, il y a à apprendre (if, for, while, etc)  
ttes les mises en forme de texte car il n’y a pas que la programmation mathématique mais aussi le “rendu visuel”.  
Fais-toi une entête de base et ne t’attarde pas trop sur le bla-bla (code écrit en truc par machin), ça sera pour quand tu auras écrit un prog que tu voudras communiquer aux autres.

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/110 "2016-02-20T16:07:00Z")

</div>

Les programmes de base :

- Hello world
- Demander ton nom, puis afficher Bonjour + ton nom
- Faire sélectionner un nombre au hasard entre 0 et 1000, et programmer une interface qui t’indiques + petit ou + grand en un nombre de coup limité.
- Indiquer si le nombre rentré est un nombre premier ou pas
- Rechercher les plus petits diviseurs commun d’un nombre.  
Maintenant plus corsé …
- Afficher dans un tableau le résultat d’une requete SQL

Avec ça normalement tu auras déjà bien dégrossis tes problèmes 😉

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/111 "2016-02-20T16:07:00Z")

</div>

Et pourquoi pas faire un tableur complet, pendant que tu y es. 😒  
Chaque chose en son tps !

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/112 "2016-02-20T16:07:00Z")

</div>

Merci pour tout !

La je vais réaliser une calculatrice avec menus, puis je vais apprendre les [boucles](http://www.siteduzero.com/tuto-3-2478-1-les-boucles.html?sesid=7e935a6a853688642bb6a38b5495e3118d43227b&sesmid=-574).

Je finirai tout le tutoriel, pour ensuite réviser un peu tout ça grâce aux idées de programmes de debianhadic !

Hop, j’attaque la calculette !

Pas une seconde à s’ennuyer ! 😃

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/113 "2016-02-20T16:07:01Z")

</div>

Je suis vachement stressé, j’essaie de me remémorer…

[code]#include \<stdio.h\>

int main(int argc, char \*argv[])

{  
long nombre = 0;

```
printf(-----------------------------------------\nBienvenue dans la calculatrice en console ! \n-----------------------------------------\n\n);
printf(Que souhaitez vous effectuer ?\n\n);
printf(1. Addition\n);
printf(2. Soustraction\n);
printf(3. Multiplication\n);
printf(4. Division\n);
scanf("%ld", &nombre);[/code]

```

J’espère au moins que c’est un bon début.

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/114 "2016-02-20T16:07:01Z")

</div>

Si tu rajoutes des " dans tes printf tu éviteras quelques erreurs …  
Vu que tu fais un scanf dans ton source, c’est que tu n’utilises pas argc & argv, donc tu vas avoir des warnings du style argc not use, je vais encore me faire traiter de nom d’oiseau mais void main() te suffiras.

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/115 "2016-02-20T16:07:01Z")

</div>

[quote=“ricardo”]Et pourquoi pas faire un tableur complet, pendant que tu y es. 😒  
Chaque chose en son tps ![/quote]

Ricardo, ce n’est pas son programme de la journée 😉  
Quand tu n’y connais rien, tu en as bien pour un mois (sans aide extérieure)

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/116 "2016-02-20T16:07:01Z")

</div>

Merci.

Work in progress, j’éditerai au fur et à mesure sur ce post et vous me ferez part de vos éventuelles remarques.

[code]#include \<stdio.h\>

int main(int argc, char \*argv[])

{  
long nombre = 0;

```
printf("-----------------------------------------\nBienvenue dans la calculatrice en console ! \n-----------------------------------------\n\n");
printf("Que souhaitez vous effectuer ?\n\n");
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n");
scanf("%ld", &nombre);

printf("\n")

switch (menu)
{
    case 1:
        printf("Vous souhaitez donc effectuer une addition.");
        break
    case 2:
        printf("Vous souhaitez donc effectuer une soustraction.");
        break
    case 3:
        printf("Vous souhaitez donc effectuer une multiplication");
        break
    default:
        print("Opération inconnue. Veuillez relancer le programme et saisir un chiffre valide.");
        break
return 0;

```

}[/code]

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/117 "2016-02-20T16:07:01Z")

</div>

J’ai entendu dire qu’un break ne servait à rien à la fin du switch.

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/118 "2016-02-20T16:07:01Z")

</div>

C’est comme ma grand-mère, sa canne lui sert à rien, elle peut marcher sans, mais avec elle tombe pas 😉

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/119 "2016-02-20T16:07:01Z")

</div>

```auto
Je remplace cette ligne par quoi exactement ? Si je remplace par void main () il m'exige le int lorsque j'essaie de compiler.

La (en conservant le (int) après main, donc), j'ai un problème si j'essaie de compiler, c:33: error: expected declaration or statement at end of input.
```

Je remplace cette ligne par quoi exactement ? Si je remplace par void main () il m’exige le int lorsque j’essaie de compiler.

La (en conservant le (int) après main, donc), j’ai un problème si j’essaie de compiler, c:33: error: expected declaration or statement at end of input.

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:07 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/120 "2016-02-20T16:07:02Z")

</div>

Yahooo ! J’ai réussi pas mal de trucs pour le moment, je crois que j’ai tout corrigé, erreurs de syntaxe et compagnie, sauf une pour laquelle je vous demande encore une fois votre aide.

Tout d’abord, voici le code :

[code]#include \<stdio.h\>

int main(int argc, char \*argv[])

{  
long nombre = 0;

```
printf("-----------------------------------------\nBienvenue dans la calculatrice en console ! \n-----------------------------------------\n\n");
printf("Que souhaitez vous effectuer ?\n\n");
printf("1. Addition\n");
printf("2. Soustraction\n");
printf("3. Multiplication\n");
printf("4. Division\n");
scanf("%ld", &nombre);

printf("\n");

switch (nombre)
{
    case 1:
        printf("Vous souhaitez donc effectuer une addition.");
            long resultat = 0, nombre1 = 0, nombre2 = 0;
            printf("Entrez le premier nombre : ");
            scanf("%ld", &nombre1);
            printf("Entrez le deuxième nombre : ");
            scanf("%ld", &nombre2);
            
            resultat = nombre1 + nombre2;

            printf("%ld + %ld = %ld", nombre1, nombre2, resultat);
        break;
    case 2:
        printf("Vous souhaitez donc effectuer une soustraction.");
        break;
    case 3:
        printf("Vous souhaitez donc effectuer une multiplication.");
        break;
    default:
        print("Opération inconnue. Veuillez relancer le programme et saisir un chiffre valide.");
        break;
}

    return 0;

```

}[/code]

Et ensuite, l’erreur lorsque je tente une compilation :

`/tmp/cckyBXnz.o: In function `main':
work in progress.c:(.text+0x156): undefined reference to `print'
collect2: ld returned 1 exit status`  
Aucune ligne n’est indiquée, un peu flippant comme erreur ! 😆

Edit : Problème résolu ! 😊  
A la dernière ligne default, j’ai écrit “print” et non “printf”. En core toutes mes excuses, mais je ne comprends pas pourquoi la ligne de l’erreur n’a pas été donnée.

[Page précédente](https://www.debian-fr.org/t/je-me-mets-au-c/8416.md?page=5)

[Page suivante](https://www.debian-fr.org/t/je-me-mets-au-c/8416.md?page=7)
