Kello

onko olemassa ns. kelloa jonka saa käyntiin ja pysäytettyä ja sen jälkeen ehtolauseilla tarkastella esim. muuttujia kelloajan perusteella c :ssa?
esim. muuttujaan tulee tavara -> kello päälle!
kun jotain on tapahtunut -> kello kiinni!
Sitten.. Jos kelloaika on esim.
8317
Äänestä

Muut lukivat myös

Vastaukset 8

Vanhimmat

voisihan sitä kokeilla C-tyyliin

#include

/* kello päälle */
time_t alku = time(NULL); /* tämän hetkinen */

/* kello kiinni */
time_t loppu = time(NULL); /* tämän hetkinen */


/* aikaa kului */
double aika = difftim(loppu,alku);

Äänestä
  • Just tuollainen kello pitäisi saada toimiin, mutta ei toimi MS Visualissa tuo sinun malli.. ei tunnista defftimejä yms!
    millä käskyillä tuollaisen kellon saa toimiin visualissa??

    Äänestä

Onko mahdollista tehdä sellainen koodi että muuttujaan tavaran tullessa siilä alkaa juosta aika tai laskuri tai joku muu vastaava! eli jos on kolme muuttujaa niihin tulee tavaraa milloin vain ja aina kun tavara tulee niin aika alkaa juosta.. muuttujasta haetaan tavara ulos tutkimalla tätä aikaa eli, vaikka millä muuttujalla sattuu olemaan aika < 1 min. niin otetaan tavara ulos!
ymmärrättekö? :)
tavallisella kellolla se ei taida pelata koska sehän täytyy ensin sulkea enne kuin aikaa voidaan tutkailla.. mulla sen pitäis mennä niin että juoksevaa "kelloa" tsekattais ja siitä tehtäis päätelmä jatkosta.. siiten kuin tavara otetaan ulos muuttujasta niin samalla se tyhjennetään eli alustetaan ja tietty laskuri/kello sammutetaan ja taas kun uusi tavara tulee tähän muuttujaan niin kello/laskuri lähtisi taas alusta juoksemaan!
jos ymmärrätte idean ja jos tämä jotenkin olisi mahdollista niin olis hieno kuulla neuvoja ja vinkkejä!

Äänestä
  • Mikäs vika tuossa omassa ehdotuksessa oli ?

    time() funktio palauttaa kellonajan koko ajan juoksevasta systeemmin kellosta (sekunnit vuodesta 1970 ;) tai clock() jos tarkkuutta tarvitaan.

    eli alku aika talteen, ja difftime() sen hetkisen kellonajan ja alkuajan välillä. ja jos kelloja on kolme väännä niille omat luokat.

    Äänestä

  • eli GetTickCount() paluttaa windowsin käynnissä olo ajan (muistaakseni) kuitenkin homma toimii näin:

    //muuttujaan ollaan saatu tavaraa
    //otetaan talteen aika
    Start_Time = GetTickCount();

    //muuttujansta ollan viety tavara pois
    //tarkastetaan kuinka kauvan tavara oli //muuttujassa
    End_Time = (GetTickCount()-Start_Time);

    nyt End_Time pitää sisällään sen ajan (millisekunteina) jonka aikaa muuttujassa oli tietoa. joten voidaan tehdä vaikka seuraavanlainen toiminto:

    if (End_Time

    Äänestä

  • -win c- kirjoitti:

    eli GetTickCount() paluttaa windowsin käynnissä olo ajan (muistaakseni) kuitenkin homma toimii näin:

    //muuttujaan ollaan saatu tavaraa
    //otetaan talteen aika
    Start_Time = GetTickCount();

    //muuttujansta ollan viety tavara pois
    //tarkastetaan kuinka kauvan tavara oli //muuttujassa
    End_Time = (GetTickCount()-Start_Time);

    nyt End_Time pitää sisällään sen ajan (millisekunteina) jonka aikaa muuttujassa oli tietoa. joten voidaan tehdä vaikka seuraavanlainen toiminto:

    if (End_Time

    Tuo laskuri pyörähtää ympäri muistaakseni n. 50 päivän jälkeen, eli jos on ollut niin hyvä tuuri että windows on ollut noin kauan pystyssä saadaankin esim.
    Start_Time = 123456789
    End_Time = 123
    jolloinka tuo suora vähennyslasku menee persiilleen, pitää verrata absoluuttista arvoa siis ilman etumerkkiä.


    Hmm... ymmärsiköhän kukaan

    Äänestä

  • Bill Gates kirjoitti:

    Tuo laskuri pyörähtää ympäri muistaakseni n. 50 päivän jälkeen, eli jos on ollut niin hyvä tuuri että windows on ollut noin kauan pystyssä saadaankin esim.
    Start_Time = 123456789
    End_Time = 123
    jolloinka tuo suora vähennyslasku menee persiilleen, pitää verrata absoluuttista arvoa siis ilman etumerkkiä.


    Hmm... ymmärsiköhän kukaan

    Eikös tuo kello nollaannu endtimen jälkeen jos se käynnistetään uudelleen, eli lähtee taas nollasta aika juoksemaan! eli silloin se ei mene ympäri koska tavara ei pysy mun muuttujassa millään edes vuorokautta!

    Äänestä

  • tepa kirjoitti:

    Eikös tuo kello nollaannu endtimen jälkeen jos se käynnistetään uudelleen, eli lähtee taas nollasta aika juoksemaan! eli silloin se ei mene ympäri koska tavara ei pysy mun muuttujassa millään edes vuorokautta!

    Elikkä olet siinä aivan oikeass Bill, että näinhän siinä välttämättä käy.

    Jos nyt Tepalla oli kyse tämän GetTickCount() funktion lukeman kellon nollaantuvuudesta niin se tapahtuu seuraavina "aikoina":

    1. Windowsin sulkeutuessa (käynnistyy uudelleen kun windows jälleen käynnistetään)

    2. Kun windows on ollut päällä 49.7 päivää (johtuen käytetystä 32-bit integer data tyypistä)

    Äänestä

Kommentoi aloitusta


tepa kirjoitti:

onko olemassa ns. kelloa jonka saa käyntiin ja pysäytettyä ja sen jälkeen ehtolauseilla tarkastella esim. muuttujia kelloajan perusteella c :ssa?
esim. muuttujaan tulee tavara -> kello päälle!
kun jotain on tapahtunut -> kello kiinni!
Sitten.. Jos kelloaika on esim.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu