Jump to content

super débutant


Recommended Posts

Bonjour, alors voilà je commence dans la programmation en C et j'utilise dev c++ comme programme. je veux juste mettre un simple code pour qu'il affiche hello. Je vous mets se que j'écris dans le compilateur:

#include <cstdlib>

#include <iostream>

using namespace std;

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

{

system("PAUSE");

return EXIT_SUCCESS;

}

#include <stdio.h>

main()

{

printf("hello\n");

return 0;

}

Voilà et mon problème est que lorsque je fais compiler et exécuter il me met une ligne en rouge avec une croit a gauche??qu'el est le probleme?J'utilise un programme pour programmer en c ou pas?merci de m'aider je suis super débutant!

Link to comment
Share on other sites

  • Replies 60
  • Created
  • Last Reply

Oui c'est normal l'invite de commande se ferme directement, pour éviter ca 2 solutions :

- tu ouvres l'invite de commande et tu lance le programme par elle.

- tu met un getc() ; à la fin du programme, ensuite pour qu'il se ferme tu entre une lettre puis enter.

Link to comment
Share on other sites

ça ne marche tjrs pas snif voilà le code

#include <stdio.h>

main()

{

printf("slt\n");

return 0;

}

get char()

il n'y a pas un programme gratuit plus performant pour le c?

Et les points virgules, bon sang! :francais:

Essaie ça:

#include <stdio.h>

int main()

{

printf("slt\n");

getchar();

return 0;

}

Tu ne peux pas appeller une fonction comme ça n'importe où dans ton code. N'importe quel compilateur te dira que c'est faux, même les super chers... :francais:

Il y a peut-être un souci avec le code du dessus. Je n'ai pas de compilo d'installé pour le moment sur ma bécane, mais ça devrait tourner. :francais:

Link to comment
Share on other sites

ouais ça marche c'est super!mais donc si je comprend bien on #include qui est une directive, ensuite main qui lance le programme, printf qui affiche le texte,getchar qui laisse se texte afficher, et return?mais cmt sdaviez)vous que c'était gechar que je devais mettre?et pour le int devant main il sert a quoi?

Link to comment
Share on other sites

ouais ça marche c'est super!mais donc si je comprend bien on #include qui est une directive, ensuite main qui lance le programme, printf qui affiche le texte,getchar qui laisse se texte afficher, et return?mais cmt sdaviez)vous que c'était gechar que je devais mettre?et pour le int devant main il sert a quoi?

Je suis devin. ;)

En fait, le C a ses passages obligés. Petit "cours rapide".

Il existe des fonctions déjà toutes faites en C: afficher quelque chose par exemple (fonction printf). Mais au départ, le compilateur (le machin qui te traduit ton code C en un truc executable [la ferme les puristes... :francais:]) ne sait pas cela.

Il faut donc lui indiquer le prototypage de la fonction, c'est à dire la tête qu'elle a (paramètres, etc). Il y a donc des instructions qui vont être lues et executées avant la compilation par le "pré-processeur". Les instructions du pré-processeur sont celles avec # devant.

Ici, on dit:

#include <stdio.h>

Le préprocesseur comprend qu'il faut inclure à cet endroit du fichier le fichier stdio.h qui est un fichier header .h qui comprend le prototypage des fonctions standard d'entrées/sorties (stdio=>standard input output).

Ensuite, tout programme C commence par une fonction "main" fonction qui est appelée en premier à l'execution. Le prototypage de la fonction varie avec les compilateurs: certains sont plus restrictifs que d'autres.

En général, c'est "int main()" mais j'ai vu aussi des "void main()" qui passaient très bien. Les paramètres du "main" permettent de passer des arguments à l'appel du programme.

Toute fonction est entourée par {} pour la délimiter.

OK, on a donc:

#include <stdio.h>

int main()

{}

Maintenant, que met-on dans la fonction main?

On veut faire afficher un truc? Pas de problème. On sait qu'il faut utiliser printf, fonction d'affichage de C.

On ajoute donc: printf("Salut\n"); (Avec le ";").

Ensuite, pour garder la fenêtre ouverte (la fenêtre qui execute le programme), on rajoute la fonction qui permet de saisir un caractère (l'inverse de printf en gros) qui est la fonction getchar(). Ne pas oublier le ";".

Puis, la coutume (et ici l'obligation si "int" est avant main) dit qu'il faut faire retourner un truc au main.

On lui dit donc: return 0; (pour lui dire de retourner 0).

Voilà. :francais:

Les diverses commandes du langage peuvent être trouvées sur le net.

Link to comment
Share on other sites

ok merci bien pour votre petit cour! le pire c'est que je me suis acheté un livre pour apprendre le langage c mais je ne comprends po bien et ça m'ennuie car j'aimerais faire programmeur plustar :francais:

mais la j'ai encore un probleme:

#include <stdio.h>

int interger_add(int x, int y )

{

int result;

result= x + y;

getchar();

return result;

}

int main()

{

int sum;

sum = integer_add( 5, 12);

printf("5+12 donne%d.\n" sum);

getchar()

return 0;

}

dans se code ques ki a ki ne va pas?il me met use firts integer_add?

C'est super compliqué la programmation n'empeche mais bon je tiens le coup!

Link to comment
Share on other sites

Bon, de tête, je n'ai pas de compilo sous la main:

#include <stdio.h>

int interger_add(int x, int y )

{

int result;

result= x + y;

// getchar(); : Pas besoin ici, le getchar ne sert dans le truc précédent uniquement à empêcher la fenêtre de se refermer à la fin de l'execution.

return result;

}

int main()

{

int sum;

sum = integer_add( 5, 12);

printf("5+12 donne%d.\n", sum); //Manque une virgule

getchar(); //Manque encore le ";"

return 0;

}

La programmation n'est pas compliquée, il faut juste se tenir à des règles dictées par le compilateur. Ca devrait passer.

Si le code ne passe pas, il se peut que j'ai oublié un truc.... :francais:

Link to comment
Share on other sites

Perso, comme c'est ton premier langage je te conseillerai d'abord de lire la theorie du bouquin puis faire les exercices parce que la t'as l'air de vouloir programmer sans support.

Oui, je crois que les bases ne sont pas du tout vues. Oups, je parle comme un prof! :-D

Link to comment
Share on other sites

non mais se qui a c'est que après chaque chapitre de théorie il me propose de faire un exercice pour voir si g compris lol c pas grave

Merci bcp mais je compris absolument pas les renvois de valeur peux tu m'expliquer cela super clairement?

Link to comment
Share on other sites

int interger_add(int x, int y )

Allez j'te mets un gros (énorme ?) indice :ouioui:

Et dis toi bien que la prog c'est de l'apprentissage de syntaxes (les langages de prog) et que quelque soit le langage ces syntaxes sont très rigoureuses. La syntaxe du C étant réputée comme étant une des plus stricte :transpi: . Donc faut être très vigilant au niveau des fautes de frappe...

:reflechis:

Link to comment
Share on other sites

Bah si il essaye un autre langage ça sera le même problème :love:

A part à la fac la plupart des profs enseignent la prog avec le C.

Personnelement je pense que c'est mieux de commencer par du C car :

- Passer du C à un autre langage c'est facile

- Ça donne de bonnes bases pour bien programmer (pour faire des trucs propres quoi !!)

Link to comment
Share on other sites

Allez j'te mets un gros (énorme ?) indice :-D

Et dis toi bien que la prog c'est de l'apprentissage de syntaxes (les langages de prog) et que quelque soit le langage ces syntaxes sont très rigoureuses. La syntaxe du C étant réputée comme étant une des plus stricte ;) . Donc faut être très vigilant au niveau des fautes de frappe...

:-D

:-D

J'étais plus occupé à chercher les ";" et autres que je ne l'ai pas vu celle-là. :D

Pour l'apprentissage, le C est pas mal je trouve. C'est assez chiant au départ, mais il est vrai que quand on connaît le C, le reste est plus simple. :eeek2:

Link to comment
Share on other sites

voilà je voulais juste savoir si vous pouviez m'expliquer un peu les variables, et les aditions a quoi vont-elles me servir plus tard?

Salut, une variable c'est tout simplement le "nom" d'une case mémoire dans la RAM où on va stocker la valeur qui est dans la variable... :incline:

Assez dur à comprendre non? :incline:

Link to comment
Share on other sites

#include <stdio.h>

int integer_add(int x, int y )

{

    int result;

    result= x + y;

    getchar();

    return result;

}

int main()

{

    int sum;

   

    sum = integer_add( 5, 12);

    printf("5+12 donne %d.\n", sum);

    system(pause);

    return 0;

}

Je comprends pas trop ta question :eeek2:

Les variables te servent à stocker des valeurs (ici numérique, mais ça peut aussi être des chaines de caractère, etc).

C'est pratique car ça te permet d'avoir facilement accès à ces valeurs (il suffit d'appeler la variable), de plus les variable ne sont pas fixes (pour pousser un peut le pléonasme je dirais qu'elle peuvent varier :incline:) et elles sont facilement modifiables, tu peux aussi récupérer des valeurs qui seront entrée au clavier par la personne lançant le programme.

Voila un main qui va demander à l'utilisateur d'entrer les 2 nombre à additionner (à vérifier pour la syntaxe qu scanf, j'ai un doute étant donné que j'y ai pas retouché edpuis longtemps :incline:)

int main()
{
   int sum;
   int a;
   int b;
   
   printf("entrez le premier nombre (=> a) :");
   scanf("%d",&a);
   printf("entrez le second nombre (=> b) :");
   scanf("%d",&b);
   
   sum = integer_add(a,b);
   printf("%d+%d donne : %d.\n",a,b, sum);
   system(pause);
   return 0;
}

Quand aux opérations (ici une addition), bah à ce qui parait c'est pratique pour calculer :love:

Pour les opérations de base sur les nombres ( + - * / ) elles font la même chose qu'un élève de primaire: elle calcule le résultat puis le renvois.

Le prog envoi 5 en 1er paramètre de integer_add et 12 en second. Le 1er paramètre est appelé x (ici x=5) et le second y (y=12). L'on fait la somme x+y, donc 5+12 et c'est égal à 17, donc l'on place la valeur 17 dans résult puis on retourne result; dans le main l'on place la valeur retournée -résult donc 17- dans sum, l'on arrive avec sum=17)

edited: réparé l'erreur :yes:

Merci de l'avoir vu :yes:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...