Langage C

Résolu/Fermé
fadouaa Messages postés 12 Date d'inscription mardi 8 mars 2011 Statut Membre Dernière intervention 22 mars 2011 - Modifié par fadouaa le 22/03/2011 à 22:55
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 23 mars 2011 à 21:58
Bonjour à tous ,



je suis debutante en programmation et je veux conaitre c'est quoi une fonction et c'est quoi un procedure et quel est la difference entre
 void(){ 

et
int void(){ 

?
et comment ecrire une fonction?
Merci d'avance!!!!!

4 réponses

musicetcie Messages postés 391 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 24 mars 2013 97
Modifié par musicetcie le 22/03/2011 à 23:20
Bonjour,

Je vais essayer de répondre à votre question de manière compréhensible et simple.

Tout d'abord : une autre question : Savez-vous ce qu'est une fonction en mathématiques ?!
1
musicetcie Messages postés 391 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 24 mars 2013 97
Modifié par musicetcie le 22/03/2011 à 23:17
Aussi, je rappellerais que
int void()
n'existe pas.
On a :
int NomDeLaFonction(paramètres)
ou :
void NomDeLaProcédure(paramètres)


Une fonction va retourner une valeur (un "int" : un entier), au contraire d'une procédure.

Pour mieux expliquer, je vais essayer de donner un exemple :

Fonction qui ajoute 3 au nombre entré en paramètre (la variable donc)
1 : int PlusTrois ( int x) { 
2 :     x=x+3; 
3 :     return x; 
4 : } 


Ligne par ligne :
1 : On donne le type de fonction (int si la valeur finale est un entier, float si c'est un réel, un nombre décimal, etc.) et le type de variable (ici on choisi un entier).
2 : On dit que x va prendre la valeur x+3 (on ajoute donc 3 à x)
3 : On retourne la valeur finale de x
4 : On finit le programme comme on l'a commencé : avec une accolade.

Ainsi, si dans mon code je fais PlusTrois(3), le programme va comprendre 6... Et me dire que 3 + 3 = 6 (oui, bon, ça on sait le faire hein! Mais ce n'est qu'un exemple !)

En revanche, une procédure ne retourne rien. On peut l'utiliser pour exécuter des tâches puis écrire à l'écran le résultat avec la fonction printf par exemple. Ce qui donnerait :

1 : void PlusTrois ( int x) { 
2 :     printf("La valeur de x est : %d", x); 
3 :     x=x+3; 
4 :     printf("La valeur de x est maintenant : %d", x); 
5 : } 


Mais vu que vous demandez ce qu'est une fonction/procédure, je suppose que les printf et %d, vous ne savez pas encore ce que c'est...

Sachez juste que si vous faites PlusTrois(3), cette fois ça ECRIRA à l'écran :
"La valeur de x est : 3
La valeur de x est maintenant : 6"

Voilà !!

Bonne soirée
1
musicetcie Messages postés 391 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 24 mars 2013 97
22 mars 2011 à 23:17
Un TRES bon site pour apprendre tout ça est : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c

BONNE CHANCE ;-)
0
fadouaa Messages postés 12 Date d'inscription mardi 8 mars 2011 Statut Membre Dernière intervention 22 mars 2011
22 mars 2011 à 22:39
int void() {
ici peut etre int ou float ..........
0
fadouaa Messages postés 12 Date d'inscription mardi 8 mars 2011 Statut Membre Dernière intervention 22 mars 2011
22 mars 2011 à 23:06
ouiiiiiii
0
musicetcie Messages postés 391 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 24 mars 2013 97
Modifié par musicetcie le 22/03/2011 à 23:20
Très bien, alors une fonction en C, est exactement la même chose.
Exemple : je vous ai donné plus bas une fonction int PlusTrois (int x).
Elle correspondrait, en mathématiques, à f : x->x+3 aussi notée f(x)=x+3 tout simplement ! =)
0
fadouaa Messages postés 12 Date d'inscription mardi 8 mars 2011 Statut Membre Dernière intervention 22 mars 2011
22 mars 2011 à 23:31
ahhh ouii cé plus simple merci musicetci
mais quel le role de getch();
0
musicetcie Messages postés 391 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 24 mars 2013 97
23 mars 2011 à 21:27
Bonsoir !

La fonction getch() sert à capturer le clavier.
Cependant, ceci se fait avant même que la touche entrée ne soit pressée par l'utilisateur, c'est
pourquoi le programme n'attendra pas la fin du nombre/expression si tu utilises getch().

Attention à ne pas confondre avec getchar() qui elle attend le caractère de fin de ligne (c'est-à-dire attend que l'on appuie sur entrée ou si tu tapes "\0" appelé EOL) avant de capturer la saisie au clavier.

Donc getch() capture un caractère à la fois ...
et getchar() capture une série de touches incluant le caractère de fin de ligne EOL ou Entrée.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 mars 2011 à 21:51
Bonjour,

@musicetcie,
Non getchar() capture un seul caractère à la fois. A ne pas confondre avec fgets...
0
musicetcie Messages postés 391 Date d'inscription mardi 10 juin 2008 Statut Membre Dernière intervention 24 mars 2013 97
23 mars 2011 à 21:55
pardon, j'ai oublié une partie en effet!
C'est que getchar() enregistre un charactère mais laisse l'utilisateur en taper plusieurs. Disons que ça peut éviter les erreurs dans des codes, par exemple !
Au temps pour moi!!
0