Je me mets au C

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.

:laughing:

Alors que faire avec le C ?

@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.

@Yoko
très juste ! bah oui c’est énorme :slightly_smiling:, 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.

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.

[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. :laughing:

[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. :laughing:[/quote]
:stuck_out_tongue:

[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 !

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.

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 :wink:

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

Merci pour tout !

La je vais réaliser une calculatrice avec menus, puis je vais apprendre les boucles.

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 ! :smiley:

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.

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.

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

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

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]

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

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

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.

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 ! :laughing:

Edit : Problème résolu ! :blush:
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.