IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

C'est quoi une "gamme de valeur minimale" de type INT?


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 25
    Points : 18
    Points
    18
    Par défaut C'est quoi une "gamme de valeur minimale" de type INT?
    Bonsoir. Avant tout je m'excuse pour l'avenir car je vais sans doute assiéger ce forum avec une horde de questions "à la con" parceque je ne comprends pas certaines choses qui peuvent sembler évidentes. Je m'excuse.

    J'ai lu ceci sur mes cours de débutant de c:

    int est un type. Ici, il qualifie la valeur retournée par la fonction.

    Le type est une des propriétés qui caractérise une valeur. Elle permet de préciser quelle est la gamme de valeurs possible.

    Ma question est: Que signifie ce charabia? "Valeur retournée par la fonction"? "Gamme de valeurs possibles"?

    En clair, INT, CHAR, FLOAT ET DOUBLE? ça veut dire quoi et ça SERT à quoi?

    Merci d'avance.

    PS: Suis-je sur le bon forum pour ces petites questions?

  2. #2
    Membre du Club Avatar de Array
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 210
    Points : 55
    Points
    55
    Par défaut
    Heuh... Une petite question avant de commencer :

    Comment te forme-tu en C? Parce que, généralement, ils montrent tout cela dès le début. C'est le strict minimum. Je te conseille de rebrousser chemin et de changer de stratégie pour apprendre...

    int, double, float, char, ces mots clés servent à déclarer des variables.

    "int" est le type des entiers.
    "float" c'est pour les nombres à virgule (en simple précision).
    "double" aussi est pour les nombres à virgule, mais en double précision.
    "char" est le type des caractères (un caractère a une valeur numérique).

    Il y en a d'autres, comme "long", "short", mais cela me prendrait trop de temps à t'expliquer.

    Pourquoi deux types pour déclarer des nombres à virgule?
    Parce que les calculs avec des nombres à virgule, dans l'ordinateur, sont effectués en binaire, comme tout le reste, afin que les calculs soient rapides. Cependant, au profit de la rapidité on perd de la précision, donc une division qui, par exemple, serait supposée donner 0.62563 pourrait donner 0.62587, par exemple. Le type "float" prend moins de place dans la mémoire, et donc, bien qu'il soit plus rapide, les résultat sont moins exacts qu'avec "double".


    Pourquoi a-t-on besoin de déclarer les variables avec int, double, etc?
    Parce que, dans la mémoire, un "char" prendra moins de place qu'un "int" qui prendra moins de place qu'un "long int". Donc, cela sert à déterminer la grandeur de la variable selon nos besoins. De plus, les valeurs des double et des float sont interprétés dans la machine. Par exemple, certains bits (il y a 8 bits dans ce chiffre : 10111010) font partie de la partie entière du nombre à virgule et d'autres dont partie de la partie décimale dudit nombre, alors que pour les int, tous les bits de la variable sont consacrés aux entiers.


    Voilà,

    J'espère avoir été d'une quelconque utilité,

    Array

    *****
    P.S.
    Visites ces pages pour plus d'infos :
    http://emmanuel-delahaye.developpez.com/init_c.htm
    http://fr.wikipedia.org/wiki/C_(langage)#Types

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Array Voir le message
    Heuh... Une petite question avant de commencer :

    Comment te forme-tu en C? Parce que, généralement, ils montrent tout cela dès le début. C'est le strict minimum. Je te conseille de rebrousser chemin et de changer de stratégie pour apprendre...

    int, double, float, char, ces mots clés servent à déclarer des variables.

    "int" est le type des entiers.
    "float" c'est pour les nombres à virgule (en simple précision).
    "double" aussi est pour les nombres à virgule, mais en double précision.
    "char" est le type des caractères (un caractère a une valeur numérique).

    Il y en a d'autres, comme "long", "short", mais cela me prendrait trop de temps à t'expliquer.

    Pourquoi deux types pour déclarer des nombres à virgule?
    Parce que les calculs avec des nombres à virgule, dans l'ordinateur, sont effectués en binaire, comme tout le reste, afin que les calculs soient rapides. Cependant, au profit de la rapidité on perd de la précision, donc une division qui, par exemple, serait supposée donner 0.62563 pourrait donner 0.62587, par exemple. Le type "float" prend moins de place dans la mémoire, et donc, bien qu'il soit plus rapide, les résultat sont moins exacts qu'avec "double".

    Voilà,

    J'espère avoir été d'une quelconque utilité,

    Array

    Ben je lis les tutoriels sur C de dévellopez.com.

    Merci pour les réponses. Donc si je comprends bien, la programamtion c'est ordonner à l'ordinateur de faire un certain nombre de calculs mathématiques? Bien. Je l'ignorais, ce n'est pas clairement expliqué dans les tutoriels, mais c'est normal que je ne comprenne rien et que ej m'énerve car je débute completement. Quelqu'un aurait il un lien avec des cours agrémenter d'exercice concrets et faciles pour débuter?

    Merci d'avance.

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par ceroxono Voir le message
    J'ai lu ceci sur mes cours de débutant de c:

    int est un type. Ici, il qualifie la valeur retournée par la fonction.

    Le type est une des propriétés qui caractérise une valeur. Elle permet de préciser quelle est la gamme de valeurs possible.

    Ma question est: Que signifie ce charabia? "Valeur retournée par la fonction"? "Gamme de valeurs possibles"?

    En clair, INT, CHAR, FLOAT ET DOUBLE? ça veut dire quoi et ça SERT à quoi?

    Merci d'avance.

    PS: Suis-je sur le bon forum pour ces petites questions?
    Tu fais référence à ceci :

    http://emmanuel-delahaye.developpez.com/init_c.htm

    Tu remarqueras que dans ce mini tutoriel d'initiation, il y a des liens, notamment sur le mot 'fonction'. Alors tu cliques dessus et tu tombe sur une définition :

    http://emmanuel-delahaye.developpez....c.htm#fonction

    etc.

    Il faut apprendre à naviguer dans un document hyper-texte...
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par ceroxono Voir le message
    Merci pour les réponses. Donc si je comprends bien, la programamtion c'est ordonner à l'ordinateur de faire un certain nombre de calculs mathématiques?
    Ouh là la! Tu n'as absolument aucune notion de programmation et tu te lances dans l'étude du langage C ? Je ne suis pas sûr que ce soit un bon choix, parce que, malgré une apparente simplicité, le langage C est bourré de pièges qui rendent son exécution hasardeuse, d'autant plus qu'il n'a quasiment aucune protection et qu'on se tire une balle dans le pied au moindre écart...

    La programmation, c'est effectivement demander à une machine d'effectuer un certain traitement de données. En fait une fois qu'on a compris le sens de ces 2 mots, toute la suite devient claire.

    Une donnée est une information de nature diverse :
    • état binaire (0 ou 1)
    • valeur numérique (MIN .. MAX)
    • caractère (a-Z, A-Z etc.)
    • texte (séquence de caractères)
    • image (noir et blanc, echelle de gris, couleur, fixe, animée)
    • grandeur analogique lente (température, pression, vitesse, accélération ...)
    • grandeur analogique rapide (son, vidéo, radio, radar, laser ...)
    • etc.

    Un traitement est l'utilisation que l'on va faire d'une donnée.
    • lecture
    • comparaison
    • calcul
    • décision
    • répétition
    • réaction : production d'une donnée nouvelle...
    • etc.

    Il y a un second principe fondateur qui est la notion d'entrée/sortie :

    Tout traitement de données se résume à :



    Troisième principe fondateur : la numérisation.

    En informatique l'unité de donnée est le bit (Binary digIT), c'est à dire une information binaire (qui admet 2 valeurs possibles : 0 et 1). Toutes les données sont traduites en une combinaison de bits.
    • Booléen : 1-bit (0=FAUX 1=VRAI)
    • Caractères : 7 ou 8-bit
    • Valeurs numériques : 8, 16, 32, 64-bit etc.

    Nota : la transformation des données analogiques en données numériques (et inversement) est généralement effectuée par des périphériques spécialisés (carte son, carte vidéo etc.)

    Quelqu'un aurait il un lien avec des cours agrémenter d'exercice concrets et faciles pour débuter?
    Il y a un peu un problème de poule et d'œuf pour démarrer de zéro :
    • la théorie sans pratique est imbuvable
    • la pratique sans théorie est incompréhensible...

    Afin d'augmenter ses chances d'y comprendre quelque chose, je conseille de faire un peu de théorie (wiki, articles simples sur la programmation), et de concrétiser assez vite avec un langage de programmation à la fois
    • simple (d'usage et de mise en œuvre)
    • puissant
    • sûr

    Si on est archi débutant, un langage interprété comme Python (il y a 20 ans, j'aurais dit BASIC...) est sans doute un bon choix, car il fait abstraction des détails complexes, pour permettre de se concentrer sur l'essentiel (et qui ne dépend pas du langage utilisé) :
    • constante
    • valeur
    • variable
    • structure de code
    • structure de données
    • procédure et fonctions
    • bibliothèques de fonctions

    Mais pour aller plus loin, on a besoin d'un langage qui permet d'aller plus loin dans la connaissance du fonctionnement général de la machine (sans entrer dans les détails internes très complexes). Pour ça, je conseille le Pascal, qui, certes, nécessite un environnement de développement un peu plus complexe (compilateur, IDE etc.), mais qui apporte de la rigueur dans la programmation et le respect de la syntaxe. Contrairement à Python qui est très sûr, mais d'une façon laxiste (déclaration automatique des variables etc.), le Pascal a l'avantage de responsabiliser le programmeur. Si on ne suit pas les règles, c'est la claque !

    Il est rare qu'un programme Pascal qui compile fasse crasher la machine (alors qu'en C, le compilateur laisse passer beaucoup d'erreurs de programmation sans rien dire et c'est le drame).

    Le passage du Pascal au C est ensuite assez simple, car les notions de bases sont connues. Il ne reste plus qu'à se concentrer sur les caractéristiques du C, qui en font un outil extrêmement puissant mais tranchant (on a vite fait de se couper un bras...)

    C is a sharp tool ...
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Membre confirmé Avatar de dapounet
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 469
    Points : 567
    Points
    567
    Par défaut
    Citation Envoyé par Array Voir le message
    "char" est le type des caractères (un caractère a une valeur numérique).
    À mon avis il vaut mieux le prendre comme un type entier comme les autres, adapté à contenir des caractères (avec wchar_t). Il ne faut pas chercher trop de logique de ce côté-là (comme souvent en C), par exemple a définition du char est plus proche du byte et les constantes comme 'a' sont de type int.


    Citation Envoyé par Array Voir le message
    Pourquoi deux types pour déclarer des nombres à virgule?
    Parce que les calculs avec des nombres à virgule, dans l'ordinateur, sont effectués en binaire, comme tout le reste, afin que les calculs soient rapides. Cependant, au profit de la rapidité on perd de la précision, donc une division qui, par exemple, serait supposée donner 0.62563 pourrait donner 0.62587, par exemple.
    Le problème serait le même si les nombres étaient représentés dans une autre base, rien qu'entre 0 et 1 il y a une infinité de nombres réels qui ne peuvent pas être tous représentés dans une mémoire d'ordinateur quelque soit sa taille.

    Citation Envoyé par Array Voir le message
    Le type "float" prend moins de place dans la mémoire, et donc, bien qu'il soit plus rapide, les résultat sont moins exacts qu'avec "double".
    En x86 32 bits les deux prennent le même temps, en 64 bits en utilisant SSE je ne sais pas.

    Citation Envoyé par Array Voir le message
    De plus, les valeurs des double et des float sont interprétés dans la machine. Par exemple, certains bits (il y a 8 bits dans ce chiffre : 10111010) font partie de la partie entière du nombre à virgule et d'autres dont partie de la partie décimale dudit nombre, alors que pour les int, tous les bits de la variable sont consacrés aux entiers.
    Ça ressemble plutôt aux nombres à virgule fixe, en virgule flottante il y a une partie (l'exposant) qui permet de choisir dynamiquement combien de bits sont utilisés pour la partie entière et combien pour la partie fractionnaire.
    :wq

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 25
    Points : 18
    Points
    18
    Par défaut
    L'inconvénient c'est que j'entre en formation en alternance de cycle ingénieur l'année prochaine. Il se trouve que les circonstances ont fait que je n'ai traité que la partie maintenance pc/résaux des ordinateurs. JAMAIS de programamtion. Hors dans cette première année ça va se décomposer ainsi: 4 mois pour apprendre html, php, mysql, java, plus quelques autres trucs, et 8 mois en entreprise. 4 mois pour apprendre tout ça autant dire que ça va être méchamment intensif. J'ai 4 mois pour apprendre le langage C d'ici la rentrée car on me dit que c'est la base. Ca me semble un peu juste, surtout si je fais ça tout seul chez moi. Donc, pas le temps d'apprendre autre chose. On m'avait conseillé de commencer par visual basic mais on m'a dit aussi que ça donnait beaucoup de mauvaises habitudes. Autant dire que mes vacances vont être très occupées.

  8. #8
    Membre du Club Avatar de LeBelge63
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 73
    Points : 58
    Points
    58
    Par défaut
    Oubli VB et concentre toi sur le C et le JAVA. En 4 mois c'est pas insurmontable avec du courage et pas mal de café
    Pensez à utiliser

    est ton ami

    La France c'est l'Auvergne avec un petit peu de terre autour !!!

Discussions similaires

  1. [POO] C'est quoi une classe en claire...???
    Par Spack dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 26/01/2009, 15h53
  2. [cURL] La question qui tue : C'est quoi une librairie ?
    Par psychoBob dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 27/05/2006, 00h09
  3. [ireport] c'est quoi une scriptlet ?
    Par titlola dans le forum iReport
    Réponses: 1
    Dernier message: 11/04/2006, 16h24
  4. [GLSL,Cg,....] C'est quoi une CubeMap ?? ;:|
    Par cyber_N dans le forum OpenGL
    Réponses: 5
    Dernier message: 25/01/2006, 09h53
  5. c'est quoi une grande table?
    Par aaronw dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 18/05/2005, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo