besoin petits programmes avec notion de temps

Le
marioski
bonjour,

je suis débutant en programmation et j'utilise devc++ qui travaille sous =
windows 7 64 bits.
je veux introduire la notion de temps en langage c mais je ne sais comment =
implémenter correctement:

exemple 1:
je voudrais créer un petit programme qui me retourne à chaque temps cho=
isi(1s ou 2s ou autre ms)le résultat d'une fonction,par exemple a=3*i p=
our i(grâce à une boucle for) variant de 0 à 100000.
Alors je sais bien sûr implémenter la fonction,la fonction initiale qui=
me permet d'afficher ce que je veux,mais pas le temps.

exemple 2:
je voudrais afficher avec la même utilisation du temps qu'en 1) différe=
ntes couleurs choisies auparavant dans un petit rond ou carré.Là,je n'a=
i aucune idée de quelle fonction graphique il faut utiliser et dans quell=
e librairie.

merci de votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Xavier Roche
Le #26298540
Le 29/07/2014 20:08, marioski a écrit :
je voudrais créer un petit programme qui me retourne à chaque temps choisi(1s ou 2s ou autre ms)le résultat d'une fonction,par exemple a=3*i pour i(grâce à une boucle for) variant de 0 à 100000.
Alors je sais bien sûr implémenter la fonction,la fonction initiale qui me permet d'afficher ce que je veux,mais pas le temps.



Y a-t-il un intérêt à cela, ou est-ce juste un exercice ? :)

Si la précision est supérieure à la seconde, time() ne suffira pas, et
gettimeofday() sera probablement une option intéressante. (ou sous
Windows GetSystemTimeAsFileTime),

Après, vu le coût de ces fonctions, tester à chaque itération dans la
boucle est probablement trop coûteux, mais pour un premier jet ça
devrait aller.

Ie. quelque chose comme:

static unsigned long GetTimeMicroseconds(void);
...

/* Temps de début*/
const unsigned long start = GetTimeMicroseconds();

/* Temps limite (déclarer nombre_de_microsecondes avant) */
const unsigned long limit = start + nombre_de_microsecondes;

int i;
for(i = 0 ; i < 100000 ; i++) {
const unsigned long now = GetTimeMicroseconds();
mon_calcul = .. un calcul quelconque ici
if (now > limit)
break;
}
return mon_calcul;

Ps: on pourra implémenter un GetTimeMicroseconds():

#ifdef _WIN32 /* Version Windows */

#include static unsigned long GetTimeMicroseconds(void) {
FILETIME fileTime;
GetSystemTimeAsFileTime(&fileTime);
return (((unsigned long) fileTime.dwHighDateTime << 32) |
fileTime.dwLowDateTime) / 10;
}

#else /* Version "POSIX */

#include static unsigned long GetTimeMicroseconds(void) {
struct timeval tv;
gettimeofday(&tv, NULL);
return (unsigned long) tv.tv_sec * 1000000 + tv.tv_usec;
}

#endif
Marc Boyer
Le #26298679
Le 29-07-2014, marioski
bonjour,

je suis débutant en programmation et j'utilise devc++ qui travaille sous windows 7 64 bits.
je veux introduire la notion de temps en langage c mais je ne sais comment implémenter correctement:

exemple 1:
je voudrais créer un petit programme qui me retourne à chaque temps choisi(1s ou 2s ou autre ms)le résultat d'une fonction,par exemple a=3*i pour i(grâce à une boucle for) variant de 0 à 100000.
Alors je sais bien sûr implémenter la fonction,la fonction initiale qui me permet d'afficher ce que je veux,mais pas le temps.



Rapidement, la gestion du temps n'est pas forcément ce qu'il y
a de plus simple pour un programmeur débutant.

En gros, il y a deux méthodes:
- faire une boucle qui passe son temps à lire l'horloge
et qui ne termine que quand la date est atteinte.
On appelle ça une attente active. Par analogie, c'est
attendre face à son horloge.
- faire un appel à une fonction spéciale, un "appel système"
qui "endort" le programme jusqu'à la date demandée.
Par analogie, c'est un minuteur/réveil qui permet
de faire autre chose en attendant.

Tout cela se base sur des fonctions spécifiques au système
d'exploitation, et comme je code jamais sous Win*, je pourrais
pas en dire bcp plus.

Marc Boyer
--
"On est tout surpris, un beau soir, de trouver la satiété où
l'on cherchait le bonheur", [Beaumarchais, Mar. de Figaro, V, 7]
Publicité
Poster une réponse
Anonyme