Accueil­FAQ­Rechercher­S'enregistrer­Membres­Groupes­Connexion
Poster un nouveau sujet   Répondre au sujetPartager | 
 

 Langage C : Introduction et 1er programme

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
CyberTwister
Admin - .: el creator :.
Admin - .: el creator :.


Nombre de messages: 2887
Age: 25
Programme utilisé (Gm/RmXp/...): Game Maker
Etudes: Eleve gpx (ENP Sens)
Loisirs: Potes , Gamemaker, Xbox, Bob l'eponge , ...
Date d'inscription: 07/02/2005

MessageSujet: Langage C : Introduction et 1er programme   Mer 4 Jan - 14:12

INTRODUCTION :
Le langage C a été mis au point par D.Ritchie et B.W.Kernighan au début des années 70. Leur but était de permettre de développer un langage qui permettrait d'obtenir un système d'exploitation de type UNIX portable. D.Ritchie et B.W.Kernighan se sont inspirés des langages B et BCPL, pour créer un nouveau langage : le langage C.

Différence avec le C++ :
Le C++ est un langage basé sur le langage C, auquel on a rajouté des éléments de telle manière à intégrer le concept objet. C'est Bjarne Stroustrup qui a créé la première version de ce langage, appelé C++.



1er Programme :
Le C étant un langage compiler, il va nous falloir un compilateur : un programme permettant de transformer un script en un fichier éxécutable :
Téléchargez par exemple devC++ : ftp://ftp-developpez.com/c/downloads/compilateurs/devcpp-4.9.9.2_setup.exe

Créez un nouveau projet et isérez ce code :
Code:
#include <stdio.h>

int main(void)
{
  printf("Hello World !\n");
  printf("Appuyez sur [ENTREE] pour continuer.\n");
  getchar();
  return 0;
}


Cliquez sur compiler et executer
Voila :D

Alors, content ? Vous venez de faire votre premier programme en C :D
Voila ce que ça pourrait rendre une fois compilé :
http://cybertwister.jexiste.fr/Database/zone/4%20-%20Autres/C/Exemples/1er_programme_en_C.exe



Comprendre le programme :
- Dans ce programme la fonction principale main() contient une fonction appelée printf() qui a pour but d'afficher le message « Ceci est votre premier programme ». En réalité le compilateur ne connaît pas la fonction printf() bien qu'il s'agisse d'une fonction standard du langage C. Cette fonction est effectivement stockée dans un fichier annexe, contenant une librairie de fonctions, appelé fichier de définition (éventuellement fichier d'en-tête ou fichier header), dont l'extension est .h.
Il s'agit donc de préciser au compilateur dans quel fichier se trouve la définition de la fonction printf()...
Celle-ci se trouve dans le fichier d'en-tête appelé stdio.h.
La désignation stdio signifie Standard Input Output (en français Entrées Sorties standard), c'est-à-dire que ce fichier contient la définition de nombreuses fonctions permettant l'entrée (saisie au clavier, ...) et la sortie (affichage, sortie dans un fichier, ...) de données, dont la fonction printf() fait partie.
L'incorporation de la déclaration de la fonction printf() se fait au moyen de l'instruction #include (que l'on place en début de fichier) suivie des balises < et > contenant le nom de fichier contenant la définition de la fonction. La déclaration include doit se trouver avant toute utilisation des méthodes déclarées, sinon le compilateur générera au minimum un warning.
- Mettez des points virgules à la fin de chaque ligne :
le C interprête les points-virgules comme la fin d'une instruction et il ne tient pas compte des espaces ou des retours à la ligne.
- printf est une fonction qui sert à écrire du texte : elle prend en argument une chaîne de caractère, soit du texte entre guillemets, suivie d'un nombre indéfini de variables. Pour écrire du texte à l'écran, on entre donc "printf", on ouvre des parenthèses et des guillemets, puis on entre le texte, après quoi on referme les guillemets et les parenthèses pour terminer la ligne par un point-virgule.
- le programme se ferme dès que le texte est affiché, et on a pas le temps de voir. Il font donc faire une "pause" une fois le texte affichée. On écrit donc une phrase indiquant qu'il faut appuyer sur une touche pour terminer le programme, puis on entre l'instruction getchar(). Cette instruction attend que l'utilisateur appuie sur une touche : plus tard, nous récupèrerons la valeur de cette touche. Pour l'instant, elle sert juste à faire une pause jusqu'à ce qu'une touche soit pressée. On termine toujours la fonction principale par return 0;, qui sert à indiquer au système que tout s'est déroulé sans problème.


Je connais pas du tout le C et je le découvre en même temps que ce tuto. La plupart des trucs de ce petit tuto sont des bouts de tuto trouvés à droite et gauche sur internet :D
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.Zone-Freegames.com
Angel's Dream
Modérateur Langages Web
Modérateur Langages Web


Masculin Nombre de messages: 2855
Programme utilisé (Gm/RmXp/...): GM-6.1, Notepad ++, Flash MX 2004, Fruity loop
Etudes: Seconde Général
Loisirs: Vivre !
Date d'inscription: 04/11/2005

MessageSujet: Re: Langage C : Introduction et 1er programme   Mer 4 Jan - 15:12

si vous voulez introdruire un chifre avec une variable deux facon :

#include<stdio.h>
#include<math.h>

main()
{int i
float x

printf("introduisez un nombre\n") ;
scanf("%f\n", &x);
printf("le chifre notez est %d", x) ;
}


Normalement ca marche,vous avez apris a introduire un chiffre.
resumon:
\n sert à un saut de ligne.
/* introduit lle commentaire.
*/boucle le commentaire.
scanf sert a introduir un chifrre ou une lettre à une variable.
("%f", &x)indique que le nombre introduit sera declarer en x.
float indique que la variable qui suit est flotante.
voila voila.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jackamikaz
Modérateur GameMaker
Modérateur GameMaker


Masculin Nombre de messages: 992
Age: 20
Programme utilisé (Gm/RmXp/...): GM enregistré, Dev C++
Etudes: Lycée
Loisirs: Programmation
Date d'inscription: 20/02/2005

MessageSujet: Re: Langage C : Introduction et 1er programme   Jeu 5 Jan - 21:00

Oui Blunkoth, et n'oublie pas de préciser que tu as déclaré ( et pas initialisé ) i et x.
Où i est un entier (pour int) et x un flottant (pour float).
Donc tu trompe quand tu dis que scanf declare x avec la valeur tabulée, en fait il lui donne une valeur. Il faut être strict avec le vocabulaire sinon on a tendance à s'y perdre trés rapidement.
Dis moi, à quoi sert i dans ce code?

Pour ma part, je viens de commencer à étudier le C++ (et c'est assez chaud de s'y retrouver) et je viens aussi de commander "le C++ pour les nuls" (en meme temps que Harry Potter 6 et "Nous les dieux" de BW :D ). Je vous dirais ce que je pense du livre si ca vous interesse :)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jackamikaz.free.fr/site.html
Angel's Dream
Modérateur Langages Web
Modérateur Langages Web


Masculin Nombre de messages: 2855
Programme utilisé (Gm/RmXp/...): GM-6.1, Notepad ++, Flash MX 2004, Fruity loop
Etudes: Seconde Général
Loisirs: Vivre !
Date d'inscription: 04/11/2005

MessageSujet: Re: Langage C : Introduction et 1er programme   Ven 6 Jan - 18:01

c'est un programme du livre que j'ai simplifier.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dedoud
Futur maitre absolu
Futur maitre absolu


Masculin Nombre de messages: 868
Age: 16
Programme utilisé (Gm/RmXp/...): GM 6.1/photshop CS/devC++
Etudes: 3eme
Date d'inscription: 17/08/2005

MessageSujet: Re: Langage C : Introduction et 1er programme   Sam 4 Mar - 15:07

pour la fin y'a plus simple:

Citation:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
printf("Hello World !\n");
system("PAUSE");
return 0;
}


En effet la commande system("PAUSE") affiche directement a l'écran "appuyez sur une touche pour continuer" et enfin j'ai changer le début parce que moi j'utilise sa ^^.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
CalintZ
Ptit nouveau
Ptit nouveau


Nombre de messages: 17
Age: 21
Programme utilisé (Gm/RmXp/...): C/C++
Etudes: BAC Scientifique
Loisirs: Programmation
Date d'inscription: 08/06/2006

MessageSujet: Re: Langage C : Introduction et 1er programme   Jeu 8 Juin - 16:57

[ Désolé de poster dans un topic peut-être oublié, mais étant donné qu'il est en post-it, je me permet donc de poster ^^ ]

blunkoth 1er tu as fait une erreur dans ton code :

Code:
#include<stdio.h>
#include<math.h>

main()
{int i
float x

printf("introduisez un nombre\n") ;
scanf("%f\n", &x);
printf("le chifre notez est %d", x) ;
}


Tu as oublié les ';' en fin de déclaration de tes variables, ce qui donne donc:

#include<stdio.h>
#include<math.h>

Code:

int main(int argc, char *argv[])
{
int i;
float x;

printf("introduisez un nombre\n") ;
scanf("%f\n", &x);
printf("le chifre notez est %d", x) ;
}



Pour dedoud, je suis pas exactement sûr, mais il me semble que le:
system("PAUSE")
n'est pas ce qu'il a de plus conseillé, c'est uen commande propre à Windows il me semble ( que l'on me corrige si je me trompe ^_^ ).
Et utiliser getchar() est plus recommandé si on désire porter le code sur un autre OS.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://projet.lamantha.free.fr
dedoud
Futur maitre absolu
Futur maitre absolu


Masculin Nombre de messages: 868
Age: 16
Programme utilisé (Gm/RmXp/...): GM 6.1/photshop CS/devC++
Etudes: 3eme
Date d'inscription: 17/08/2005

MessageSujet: Re: Langage C : Introduction et 1er programme   Ven 9 Juin - 20:02

Ah bon , bah tu m'en apprend une la enfin...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Franky
Connaisseur
Connaisseur


Masculin Nombre de messages: 389
Age: 16
Programme utilisé (Gm/RmXp/...): Bloc Notes
Etudes: 4eme
Date d'inscription: 11/08/2006

MessageSujet: Re: Langage C : Introduction et 1er programme   Ven 25 Aoû - 20:04

non je pense plutôt que le system("PAUSE"); est utilisable sur tous les OS. Il parait que sa marche sous Macintosh et sous Linux!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.ogame.fr
Link/DD
Possedé par Mark Overmars
Possedé par Mark Overmars


Masculin Nombre de messages: 1594
Age: 15
Etudes: Lycée
Loisirs: Programmer
Date d'inscription: 23/11/2006

MessageSujet: Re: Langage C : Introduction et 1er programme   Ven 18 Mai - 11:29

Excuser moi si je remonte un vieux topic mais

system(); permet d'executer une commande interne au PC

ici PAUSE = PAUSE>NUL c'est pareil or cette fonction est une fonction du langage Windows (le batch) donc il ne peut marcher sous les autre OS. J'ai d'ailleur tester sous Linux :
bash: PAUSE: Command not found

Je le découvre maintenant ce getchar() très pratique !
En tout qu'a je vais l'utiliser.

Maintenant une petite question :
Sous Linux, quand je mets return 0; il me marque dans le terminal :

Press ENTER to continue...

Comme si c'était un getchar(), donc je n'en ai pas besoin.
Mais comment faire pour que le programme ce quitte automatiquement ?

***réfléchi***

JE SAIS !

En utilisant une fonction system();
Sous Windows : exit
Sous Mac : exit
Sous Nux : exit
Aucun problème

Mes code se terminerons désormais par :

Code:
getchar();
system("exit");


Sur ce, @+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://tuxrox.no-ip.org/
altor
Timide
Timide


Nombre de messages: 65
Date d'inscription: 25/12/2006

MessageSujet: Re: Langage C : Introduction et 1er programme   Mar 3 Juil - 4:13

je me permet aussi de poster meme si c'est vieux!!!

la commande system("pause") ne peut être utilisé que sous window. Il effectue une commande dos. par exemple, si tu marque system("dir"), ca va afficher tout les programme et répertoires du répertoire courant! :-)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Tishrom
Habitué
Habitué


Masculin Nombre de messages: 285
Age: 14
Programme utilisé (Gm/RmXp/...): PHP/mysql/HTML/
Date d'inscription: 16/12/2006

MessageSujet: Re: Langage C : Introduction et 1er programme   Mar 3 Juil - 15:43

altor a écrit:
je me permet aussi de poster meme si c'est vieux!!!

la commande system("pause") ne peut être utilisé que sous window. Il effectue une commande dos. par exemple, si tu marque system("dir"), ca va afficher tout les programme et répertoires du répertoire courant! :-)


Oui effectivement sa marche (avec un eptit getchar pour y voir).

_________________

"Hadopi restera dans les mémoires, comme cette loi présomptueuse qui aura voulu atteindre l’horizon, rattraper un progrès qui ira toujours plus vite qu’elle". Un député lucide.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 

Langage C : Introduction et 1er programme

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous pouvez répondre aux sujets dans ce forum
Game Maker Zone :: Programmation/Graphisme :: Langages de programmation :: C et C++-
Poster un nouveau sujet   Répondre au sujet