Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1853 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Suivante
Auteur Sujet :

structure if - else (débutant)

n°1297046
Sve@r
Posté le 01-02-2006 à 22:27:41  profilanswer
 

Reprise du message précédent :

gocho a écrit :

Si tu veux le prototype complet c'est meme

Code :
  1. int main (int argc, char * argv[])



Non,le prototype complet c'est

Code :
  1. int main (int argc, char *argv[], char *envp[])

[:aloy]


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
mood
Publicité
Posté le 01-02-2006 à 22:27:41  profilanswer
 

n°1297050
Emmanuel D​elahaye
C is a sharp tool
Posté le 01-02-2006 à 22:35:25  profilanswer
 

Sve@r a écrit :

Non,le prototype complet c'est

Code :
  1. int main (int argc, char *argv[], char *envp[])

[:aloy]


Pas d'accord. le 3ème paramètre, c'est une extension (non standard).
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1297054
Sve@r
Posté le 01-02-2006 à 22:44:52  profilanswer
 

tyler1207 a écrit :

réponse de mon prof : dans un scanf on met trjs un pointeur, quel que soit le type de donnée (%d, %f, %c, %s) mais par contre le seul type de donnée qui nécessite un pointeur hors d'un scanf est le %s.


Pas trop explicatif ton prof. je vais essayer de compléter...
 
Quand on passe une variable à une fonction "fct(i)", il y a recopie du contenu de la variable dans une zone temporaire pour la fonction. Ca s'appelle la "pile". il s'ensuit que si la fonction modifie la variable qu'elle reçoit, elle ne modifie que sa copie. Quand la fonction est finie, la pile disparait.
Le problème, c'est que "scanf" doit faire saisir une valeur et la stocker dans une variable. Mais comment modifier la variable alors qu'elle n'en reçoit qu'une copie ?
Solution: on passe à scanf non pas la variable mais l'adresse de la mémoire où se trouve la variable. La fonction "scanf" recopie cette adresse mais maintenant, elle sait où taper pour modifier la variable.
On nomme cette adresse un "pointeur". Donc on passe toujours à "scanf" un pointeur.
 
Les chaines: Le C ne connait pas la notion de chaine. Il ne connait que le caractère et le tableau. Alors les programmeurs ont décidé qu'une chaine de caractères serait un tableau de caractères terminé par un caractère de valeur particulière. Mais comme en C le nom d'un tableau c'est l'adresse de son premier élément (tous les éléments se suivent en mémoire donc si on a l'adresse du premier, on a les autres), il s'ensuit que quand on manipule des chaines on manipule déjà des pointeurs sans vraiment s'en apercevoir.
 
Voilà...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1297214
skelter
Posté le 02-02-2006 à 10:42:34  profilanswer
 

fais attention, pointeur != adresse, ne confonds pas contenant et contenu, une fonction qui a un argument de type pointeur attend une adresse

n°1297217
Emmanuel D​elahaye
C is a sharp tool
Posté le 02-02-2006 à 10:45:27  profilanswer
 

skelter a écrit :

fais attention, pointeur != adresse, ne confonds pas contenant et contenu, une fonction qui a un argument de type pointeur attend une adresse


Ah, que j'aime lire ça...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1297690
Sve@r
Posté le 02-02-2006 à 18:28:04  profilanswer
 

skelter a écrit :

fais attention, pointeur != adresse, ne confonds pas contenant et contenu, une fonction qui a un argument de type pointeur attend une adresse


Exact, j'ai parlé trop vite. On passe à "scanf" une adresse qu'il ira stocker dans un "pointeur" [:aloy]


Message édité par Sve@r le 02-02-2006 à 18:39:38

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1323525
tyler1207
cowan, basagotia, lenosky...
Posté le 11-03-2006 à 23:35:40  profilanswer
 

je me pose une question quel est l'intéret de faire ça :  
 

Code :
  1. float Val1;
  2.     float Val2;
  3.     float Val3;
  4.     float Val4;
  5.     float Som;
  6.     float Prod;
  7.     float Moy;


 
plutôt que ça
 
 

Code :
  1. float Val1, Val2, Val3, Val4;
  2.     float Som;
  3.     float Prod;
  4.     float Moy;


 
voire même
 

Code :
  1. float Val1, Val2, Val3, Val4, Som, Prod, Moy;


 
clarté ? logique ?  :??:  
 
 


---------------
Website|Like it ?
n°1323533
matafan
Posté le 12-03-2006 à 00:29:16  profilanswer
 

Si t'es payé au nombre de lignes, vaut mieux la première forme.

n°1323535
tyler1207
cowan, basagotia, lenosky...
Posté le 12-03-2006 à 00:33:50  profilanswer
 

:D  
mais encore !


---------------
Website|Like it ?
n°1323545
gocho
Posté le 12-03-2006 à 01:55:39  profilanswer
 

perso je vois pas...pour la lisibilite je vote pour la 3e solution parce que tu vois directement tous tes floats.
Apres selon le nombre de variables, ca peut vite devenir le bordel si tu mets tout en ligne...
Je pense que ca, c'est vraiment lie a l'appreciation du codeur


---------------
Mon feedback
mood
Publicité
Posté le 12-03-2006 à 01:55:39  profilanswer
 

n°1323593
Sve@r
Posté le 12-03-2006 à 11:38:06  profilanswer
 

gocho a écrit :

perso je vois pas...pour la lisibilite je vote pour la 3e solution parce que tu vois directement tous tes floats.
Apres selon le nombre de variables, ca peut vite devenir le bordel si tu mets tout en ligne...
Je pense que ca, c'est vraiment lie a l'appreciation du codeur


 
Personnellement je préfère la première solution. Chaque variable possède sa ligne ce qui permet, en plus, d'y mettre un commentaire indiquant à quoi servira la variable.
Ex:

Code :
  1. float Val1;                                 // Valeur du devoir n° 1
  2. float Val2;                                 // Valeur du devoir n° 2
  3. float Val3;                                 // Valeur du devoir n° 3
  4. float Val4;                                 // Valeur du devoir n° 4
  5. float Som;                                 // Somme de toutes les valeurs
  6. float Prod;                                 // Produit de toutes les valeurs
  7. float Moy;                                 // Moyenne de l'élève


 
Par ailleurs, si un jour une variable change de type et devient "double", on ne fait qu'une modif sur la ligne de la variable. Avec la 3° solution, il faut faire des modifs un peu plus contraignantes (couper la ligne, extraire la variable qui a changé de type, joindre la ligne restante). C'est peut-être pas grand chose mais c'est toujours plus compliqué que de mettre une ligne par variable...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1323599
Emmanuel D​elahaye
C is a sharp tool
Posté le 12-03-2006 à 11:46:42  profilanswer
 

tyler1207 a écrit :

quel est l'intéret de faire ça :  

Code :
  1. float Val1;
  2.     float Val2;
  3.     float Val3;
  4.     float Val4;
  5.     float Som;
  6.     float Prod;
  7.     float Moy;


plutôt que ça

Code :
  1. float Val1, Val2, Val3, Val4, Som, Prod, Moy;


clarté ? logique ?  :??:


 
Plusieurs raisons.

  • Le type des variables peut évoluer.
  • La portée des variables a intérêt à être réduite au minimum. Leur définition pourrait très bien être déplacée.


http://mapage.noos.fr/emdel/notes.htm#portee


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1323611
tyler1207
cowan, basagotia, lenosky...
Posté le 12-03-2006 à 12:06:30  profilanswer
 

ok compris merci  :jap:


---------------
Website|Like it ?
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Débutant...Structure & Actualisation d'un site ? a votre avis ?
clé sympa du registre (debutant)gro gro debutant cherche topic
commande registre windows (debutant ) :)Pblme de connexion à la BDD (gros débutant...)
HYPER DEBUTANT Page Web très très simplifiémodifier le registre windows en batch ( debutant )
Maintien rapide aisée d'une arborescence : quelle structure choisir ?Question de débutant
Plus de sujets relatifs à : structure if - else (débutant)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR