Lumière pour m'éclairé dans la variable prog C

Fermé
acnox - 29 avril 2020 à 15:23
 Reconnu - 29 avril 2020 à 16:01
Bonjour,
j'aimerais avoir une petite lumière en C j'utiliserais une variable pour enregistrer une durée de fonctionnement de pompe qui peut être modifier avec le temps quel genre de variable devrait-je utiliser svp ? merci je sais que cette question peut être amateur mais je bloque souvent pour rien sur certaine chose assez simple ^^ merci a vous

1 réponse

Bonjour,
On parle plutôt de types de variables en C qui est un langage dit typé que de genre.

Les différents types de variables ici:
http://flashq.free.fr/c/ctype.htm

Pas de réponse évidente à votre question puisque ça dépends surtout ce que vous allez faire de cette variable et comment vous l'utilisez.
A moins que vous n'ayez aucun calcul à faire la durée est plutôt un nombre qu'une chaîne de caractères(du texte) ce qui élimine d'office tout les types qui ne sont pas numériques.

Si par exemple vous devez faire vous même des calculs de valeur fréquent(enfin plutôt le programme) pour plus de clarté(pour l'humain qui regarde le programme et l'écrit derrière) il est souvent plus facile d'utiliser un nombre entier exprimant la durée en millisecondes.
Si au contraire vous voulez utiliser la durée telle quelle sans avoir à faire de conversion il faut que vous utilisiez plusieurs variables dans différentes bases mathématiques correspondant aux unités de temps, la base mathématique définit le nombre de valeurs pour passer d'une unité à la valeur supérieure(>9 en base décimale, >1 en base binaire, >15 en hexadécimal(16 valeurs de 0 à F), >59 pour les secondes soit une base 60, >23 pour les jours soit une base 24 etc...)
Dans ce cas il est mieux de passer par l'objet qui est une forme de données au delà d'une variable puisqu'elle comprend(en interne) des variables nommées attributs et des fonctions appelées méthodes.

https://openclassrooms.com/fr/courses/2818931-programmez-en-oriente-objet-avec-c

Donc posez d'abord les besoins d'utilisations de votre donnée afin d'établir quelles variable ou variables seront nécessaires.
Le type permet de justement pas mélanger et utiliser une valeur pour une autre. Exemple donner à une valeur de calcul arithmétique une valeur de texte, une valeur à virgule quant c'est un entier qui est nécessité et inversement.

L'autre question du type est encore plus simple à résoudre puisque elle concerne la taille de la mémoire nécessaire à cette variable, donc selon les ordres de grandeur à utiliser pour a durée le type correspondant doit-être associé.
Il est évident de prévoir plus large pour pas qu'un programme soit en erreur car les valeurs stockées et utilisées (variables) excéderont l'espace (mémoire) qui leur est alloué. L'inverse pouvant toutefois être vrai aussi quoique moins problématique car n'aboutit pas sur une impossibilité du programme:Moins de mémoire est utilisée bien sûr plus rapide le programme fournira un résultat. Ce n'est pas pour ça que c'est bon et un programme assez élaboré(traitant beaucoup de calculs et instructions) qui a une mauvaise gestion de la mémoire en multipliant des nécessités de mémoire inutiles sera juste lent à s'exécuter quand il pourrais être plus rapide sans le superflu de mémoire qu'il va mettre à disposition. Enfin c'est surtout pallié dans les faits par le fait que depuis 1972 date de l'invention de C# les technologies informatique ont des capacités de mémoire nettement plus importantes(pour un ordre de grandeur en 1990 128ko c'était la norme haute quand on parle actuellement de plusieurs Gigaoctets de RAM).

Pour une durée il y a autre chose qui peut être considéré.
On peut avoir simplement une durée de début et une durée de fin(ou plusieurs si on doit prendre en compte des pauses). ça implique donc (au moins) 2 variables et la durée s'exprime en faisant la différence entre une date et heure de début et une date et heure de fin(moins les temps de pauses éventuels si il y a nécessité).

En clair une variable est avant tout l'expression d'une (ou plusieurs) données.
Une donnée est l'expression d'une idée , valeur ou concept réel.
C'est donc à partir de la réalité (les besoins du programme et leur utilisation) que vous devez déterminer la nature de la ou les variables à employer.

Pour déterminer si une donnée est unique ou se divise en plusieurs valeurs vous pouvez vous poser la question si chaque portion de celle ci peut (et à une nécessité) d'être employée de façon unitaire.

Exemple: 12h24min32secondes est une durée.
Votre système aura t'il un besoin quelconque de devoir utiliser la valeur heure, minute ou seconde toute seule. Il y a peu de chances(mais ce n'est pas impossible) et pour l'exprimer il suffit surtout d'utiliser la valeur tronquée.

Dons dans le cadre d'une telle durée sa conversion en une seule donnée indivisible semble plus pratique. La valeur exprimée en millisecondes permettant d'obtenir le nombre d'heures de minutes ou de secondes quand on en a besoin avec la formule:
nombre millisecondes/1000 = nombres de secondes totales
nombre secondes/60 = nombre de minutes totales
nombre de minutes/60 = nombre d'heures totales
nombre d'heures/24 = nombre de jours
etc...(mois et année devant tenir compte des années)

Et bien sûr reporter la valeur précédente dans la base mathématique correspondante(une demi-heure = 30 quand la moitié de est 0.5 en décimal) pour avoir les valeurs derrière la virgule.

Mais selon votre utilisation et la façon dont vous abordez la résolution de votre modèle (algorithme)informatique cela peut-être tout autre chose que d'avoir une variable de type entier.
L'exemple de la différence entre 2 dates début et fin est aussi très commun et me semble beaucoup plus juste pour une durée.
0