Langage C

Discutez d'informatique ici !
joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 14 Juin 2014, 17:16

Tu as masquage de varable dans ce genre de code
Code: Tout sélectionner
 void my_fonc(void)
{
  int i = 3;
  printf("Valeur de i avant le block : %d\n", i);
  {
     int i = 2;
     printf("Valeur de i dans le block : %d\n", i);
 }
  printf("Valeur de i apres le block : %d\n", i);
 
}
Un compilo bien réglé doit te signaler le masquage, mais ce n'est pas une erreur c'est simplement dangereux ;



lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 14 Juin 2014, 17:28

Là ,c'est i = 2 qui est masqué , non ?
Le soucis est l'endroit où cette variable est mise (enfin l'indentation parait bizarre ).
Entre guillemets , tu parles de compilo mais mon python ne donne aucun signe d'erreur dans ce cas .

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 14 Juin 2014, 17:32

Non c'est le premier i de la fonction qui est masqué par le i du bloc (le i = 2 du bloc masque le i=3 de la fonction englobante).
L'indentation me parait correcte quant à moi !
EDIT je parle du C, pour le Python je ne connais pas.

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 14 Juin 2014, 17:45

Ok. Donc la masquage de variable se résume à ceci .
En C , comment on fait pour régler ce masquage ?
Il faut déclarer la variable à part (avant ?).....

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 14 Juin 2014, 17:47

lulubibi28 a écrit:En python , ou bien en C , comment on fait pour régler ce masquage ?
Ben, tu ne choisis pas le même nom, c'est tout. :mur:

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 14 Juin 2014, 18:33

joel76 a écrit:Ben, tu ne choisis pas le même nom, c'est tout. :mur:


Donc ceci pourrait expliquer pourquoi une fonction sensée retourner un dico tabulé (mot , saut de lignes, numéro de lignes) puisse retourner un double dico non tabulé juste aprés le premier , non ?
ex :
Code: Tout sélectionner
def dico() :
             ....
             return dico
       dico()
       bingo : 1, 4           
       triton : 2, 6
       .....

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 15 Juin 2014, 01:24

Désolé, ne connaissant pas Python je ne peux pas te répondre.
La construction m'a l'air bizarre mais ....

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 15 Juin 2014, 09:23

J'ai toujours du mal à mettre bien le code sur ce forum , on dirait un soucis de décalage .

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 15 Juin 2014, 11:53

lulubibi28 a écrit:J'ai toujours du mal à mettre bien le code sur ce forum , on dirait un soucis de décalage .


Jamais eu de soucis en faisant de copier/coller depuis sublime texte; peut être que ton édditeur est encodé différemment d'où les décalages...
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 15 Juin 2014, 12:01

Par contre , j'ai lu quelques parts que "scope" et le masquage de variable ont un lien étroit , mais ceci dépend du code bien évidemment ( en rapport avec le langage python qui ressemble au langage C )

En quoi c'est évident que ca dépend du code??

Donc ceci pourrait expliquer pourquoi une fonction sensée retourner un dico tabulé

il n'y a aucune logique apparente dans ton donc.
Déjà ton code est pas valide, mais en plus tu n'illustres en rien un masquage de variable.
la vie est une fête :)

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 15 Juin 2014, 12:16

Je peux pas mettre le code du cours en question *.* .
Tant pis ,j'ai donné un aperçu de code mais de toutes les façons , @fatalerrror : il faut vraiment voir le code sous les yeux pour comprendre le problème (donc c'est foutu :triste: ).

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 15 Juin 2014, 13:44

Je vois pas ce qui t'empêche de mettre le code complet ^^
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 15 Juin 2014, 14:39

Rockleader a écrit:Je vois pas ce qui t'empêche de mettre le code complet ^^



Faut pas sous-estimer les L1 :bad: .Imagines que tu tombes sur un prof parano et maniaque, il va te dire plagiat :hum:
Après ce prof te considère pour un gogole pendant toute l'année :cry:

joel76
Membre Relatif
Messages: 230
Enregistré le: 11 Fév 2013, 15:31

par joel76 » 15 Juin 2014, 15:04

Surtout qu'ils surveillent les forums de programmation.

Cliffe
Membre Rationnel
Messages: 967
Enregistré le: 12 Juin 2012, 13:25

par Cliffe » 15 Juin 2014, 15:17

lulubibi28 a écrit:Faut pas sous-estimer les L1 :bad: .Imagines que tu tombes sur un prof parano et maniaque, il va te dire plagiat :hum:
Après ce prof te considère pour un gogole pendant toute l'année :cry:


Osef de ce que pensent les profs :dodo:

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 15 Juin 2014, 15:29

T'es pas non plus obligé de mettre tout le code mais les grandes lignes et le reste tu remplaces par des commentaires ;)

Enfin moi c'est comme ça que je le vois^^

Sinon t'as les mp ;) Cela dit je connais pas python ou très peu donc ><
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 15 Juin 2014, 19:54

Bonjour,

Pourquoi ne pas passer par un site et renvoyer vers le lien :
http://rextester.com/runcode (par exemple)

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 12 Juil 2014, 09:03

Hello, je sais pas si c'est vraiment le topic idéal pour ça, mais bon après plus de 300 messages who cares :ptdr:


Je voulais simplement vous dire qu'après mes rattrapages j'avais finalement obtenu le nombre de crédit suffisant pour valider ma L2 avec un total de 30 crédit par semestre. Soit 60 à l'année.

C'est en partie grâce à vous qui avez supporté mes questions que vous avez surement dû trouver chiantes plus d'une fois ;)

Au final les matières que je n'ai pas eu, ce n'est pas non plus l'échec total vu que je tournais entre 8 et 9.5 donc tout va bien. Si on fait exception de l'archi arm où là j'ai vraiment merdé ainsi que des structures de données en C ou j'ai pris 2.5 à mes rattrapages...

Ce qui est assez paradoxal remarquez sachant qu'au partiel en tp sur machine dans cette même matière j'ai pris 15...au final je m'estime assez satisfait de cette année, même les matières que je trouvais assez inutiles d'un point de vue personnel m'auront quand même apporté des choses et je pense que c'est là le principal.



Une nouvelle fois merci à vous ;)



Et à l'an prochain pour une L3 qui je pense devrait être axé sur Java et la POO, simple supposition de ma part.
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

lulubibi28
Membre Relatif
Messages: 240
Enregistré le: 10 Nov 2013, 11:18

par lulubibi28 » 13 Juil 2014, 14:53

Je suis presque dans la même situation que la tienne , je dois vraiment apprendre à dribler en Archi :dodo: (en plus de la hantise des erreurs de calcul qui peut énerver à force) .

En revanche , le langage C est très proche de celui de python :we:

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 07:03

par ampholyte » 14 Juil 2014, 10:49

Rockleader a écrit:Hello, je sais pas si c'est vraiment le topic idéal pour ça, mais bon après plus de 300 messages who cares :ptdr:


Je voulais simplement vous dire qu'après mes rattrapages j'avais finalement obtenu le nombre de crédit suffisant pour valider ma L2 avec un total de 30 crédit par semestre. Soit 60 à l'année.

C'est en partie grâce à vous qui avez supporté mes questions que vous avez surement dû trouver chiantes plus d'une fois ;)

Au final les matières que je n'ai pas eu, ce n'est pas non plus l'échec total vu que je tournais entre 8 et 9.5 donc tout va bien. Si on fait exception de l'archi arm où là j'ai vraiment merdé ainsi que des structures de données en C ou j'ai pris 2.5 à mes rattrapages...

Ce qui est assez paradoxal remarquez sachant qu'au partiel en tp sur machine dans cette même matière j'ai pris 15...au final je m'estime assez satisfait de cette année, même les matières que je trouvais assez inutiles d'un point de vue personnel m'auront quand même apporté des choses et je pense que c'est là le principal.



Une nouvelle fois merci à vous ;)



Et à l'an prochain pour une L3 qui je pense devrait être axé sur Java et la POO, simple supposition de ma part.


Félicitation pour ton passage :). Je n'ai jamais vraiment compris qu'elle est le but de faire des "écrits" en programmation (code à trou, ect...).

Je pense que l'informatique est vraiment quelques choses qui devrait être exclusivement noté en pratique (même pour le côté algo, si tu sais faire des listes chainées, tri, graphes, ect...

Lulubibi28 a écrit:En revanche , le langage C est très proche de celui de python

Pratiquant le C quotidiennement et ayant pratiqué le python pendant 2 ans, je ne suis pas vraiment d'accord avec toi.

Évidemment sur un script python simple, on peut facilement s'y retrouver. En revanche dès que l'on passe sur de la conception objet, cela devient assez difficile de trouver une ressemblance au langage C.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite