Ehtolauseen evaluointi?

Mitä ihmettä

Selittäkääs vähän tarkemmin tätä ehtolauseen evaluointia!

10

917

Äänestä

    Vastaukset 10

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • false=not true

      Eli en tiedä mitä tarkalleen haet tuolla kysymyksellä, mutta luulen että kysymys on boolean algeprasta, eli en osaa nyt hahmottaa miten tämä juuri Delphiin liittyy, eli jos jotain pientä lisätietoo sais siitä mitä tarkaan ottaen haet.

      Yleisesti ehtolauseen evaluionti tarkoittaa sitä että ehtolausetta tarkasttellaan matematiikan sääntöjen mukaan, kunnes lopputulos on varma, eri operandien kohdalla eri tavalla, mutta lopputulos joka tapauksessa on "Tosi" tai "epätosi",
      yleensä evaluoitava lause kirjoitetaan siten että ensimmäinen ehto on se ehto joka saattaa jo "toivottavasti" riittää lopputuloksen tietämiseen, jotta ei tuhlata prosessori aikaa, jolloin nopeutetaan ohjelman suoritusta.

      Delphissä tämä lauseke voidaan esittää eri tavoin, mutta lopputulos on aina tosi tai epätosi.

      Eli kerron kyllä tarkemmin mutta vähän tarkennusta kysymykseen...

      • abc kysyjä

        Mitä hyötyä on siitä että evaluoidaan kaikki?


      • Delphiguru
        abc kysyjä kirjoitti:

        Mitä hyötyä on siitä että evaluoidaan kaikki?

        Mikäli evaluoinnin *ainoa* tarkoitus on selvittää boolean -lausekkeen arvo, niin tuo "short-circuit evaluointi" on nopeampi koska lopettaa heti, kun lausekkeen arvo on selvillä ja myös joustavampi koska sen avulla voi esim:

        var

        P : PInteger;

        begin
        // koodia ...

        if assigned(P) AND (P^ >= 5) then ShowMessage ('kokonaisluku P:n osoittamassa muistiosoitteessa on arvoltaan vähintään 5.');

        end;

        Jos evaluoitaisiin kaikki, tuo aiheuttaisi virhetilanteen jos P = NIL.

        Tuota "evaluoidaan kaikki" käytetään yleensä vain silloin, kun siihen on erityinen syy, joita on 2 mahdollista, ja jälkimmäinen on erittäin harvinainen:

        1. Kun boolean -lausekkeessa on sellainen funktiokutsu, että ko. funktiolla on sivuvaikutus, ja ko. sivuvaikutuksen halutaan tapahtuvan aina

        2. Kun jostain erityisestä syystä halutaan, että evaluointi kestää aina vakion suoritusajan riippumatta siitä, että mahdollisesti jo 1. booleanarvon evaluoinnin jälkeen lopputulos jo tiedettäisiin.


    • Delphiguru

      Delphissä:

      1. Paina F1

      2. paina "Ohjeen aiheet"

      3. kirjoita "complete Boolean evaluation" (1. sanan alkuosan "compl" kirjoittaminen riittää; tuplaklikkaa sitten hiirellä "complete Boolean evaluation")

      4. Lue Delphin oma opaste aiheesta.

      eli siis
      {$B-}
      tilassa Delphi takaa, että boolean -lauseke evaluoidaan vasemmalta oikealle, ja evaluointi lopetetaan heti, kun lopputulos on selvä.

      Eli esimerkiksi:

      var
      St1 : String;

      k : Integer;

      begin
      if (k = 1, muussa tapauksessa saadaan poikkeus !

      huom2: JOS boolean -lausekkeessa on käytetty variant -tyyppiä, niin lauseke evaluoidaan aina kokonaan, eikä em . päde !

      Tämän voi kuitenkin näppärästi kiertää sisäkkäisillä aliohjelmilla:




      var
      St1 : String;
      v : Variant;

      k : Integer;

      function VariantOK:BOOLEAN;
      begin

      Result := NOT ( VarIsEmpty(v) or VarIsNull(v) );


      end;


      begin
      if VariantOK AND (k

    • Moikka vaan

      Pascal:ssa ohjelmoija valitsee (useimmista kielistä poiketen) kumpaa tapaa boolean-lauseke evaluoidaan.
      Tapa valitaan kääntäjän ohjeella {$BOOLEVAL ON} tai {$B }.

      Eli valinta voi olla tämäntapainen

      {$BOOLEVAL ON}
      ...suoritettava boolean ehto ...
      {$BOOLEVAL OFF}


      Kääntäjän ohje {$BOOLEVAL ON} tai {$B } kertoo että koko lause evaluoidaan.
      Vastaavasti kääntäjän ohje {$BOOLEVAL OFF} tai {$B-} kertoo että evaluoidaan vain
      niin kauan kuin tarvitaan tietoa lopputuloksen saamiseksi.

      • jätkät selittää ihan muuta

        Pyydettiin selittämään ehtolauseen evaluointi, vastattiin totuusarvoisen lausekkeen evaluoinnilla. Saisiko olla myös porkkanoita?


      • ...
        jätkät selittää ihan muuta kirjoitti:

        Pyydettiin selittämään ehtolauseen evaluointi, vastattiin totuusarvoisen lausekkeen evaluoinnilla. Saisiko olla myös porkkanoita?

        IF THEN
        tai
        :=


      • porkkana_ja_punajuuri
        jätkät selittää ihan muuta kirjoitti:

        Pyydettiin selittämään ehtolauseen evaluointi, vastattiin totuusarvoisen lausekkeen evaluoinnilla. Saisiko olla myös porkkanoita?

        Oman koulutuksen/tiedon perusteella ehtolause on vielä tänäpäivänä sama asia kun totuuslauseke, jos tuon meinaat kumota niin rikas persoona olet, mielestäni totuuslauseen vastaus on aina tosi tai epätosi eli ehdollistettuna joko tai ei...
        ELI haluan todella kuulla näkemyksesi totuus/- ja ehtolauseen erosta?!


      • selitystä sitten
        porkkana_ja_punajuuri kirjoitti:

        Oman koulutuksen/tiedon perusteella ehtolause on vielä tänäpäivänä sama asia kun totuuslauseke, jos tuon meinaat kumota niin rikas persoona olet, mielestäni totuuslauseen vastaus on aina tosi tai epätosi eli ehdollistettuna joko tai ei...
        ELI haluan todella kuulla näkemyksesi totuus/- ja ehtolauseen erosta?!

        http://www.tol.oulu.fi/kurssit/okp/Luennot/OKP_Imperatiivinen_Lauseet.html


    • Mun kysymys on

      Millaisia esimerkkejä esim. opetuksessa käytetään eri evaluointitavoissa?

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Anni Ihamäki saa tylyä kommenttia TTK:sta - Erityisesti tämä "vääryys" ärsyttää

      Kaikille ei ole mieleen se, että Anni Ihamäki on mukana uudella Tanssii Tähtien Kanssa -kaudella. Ihamäki saa varsin ty
      Kotimaiset julkkisjuorut
      47
      1459
    2. Päivän Riikka: Pandan suklaatehdas Jyväskylästä Viroon

      Menkää töihin! Viroon! --- Liki sata vuotta kestänyt suklaantuotanto makeisvalmistaja Pandan tehtaalla Vaajakoskella pä
      Maailman menoa
      340
      1242
    3. Tiesitkö? Vappu Pimiän ensimmäinen aviomies ei ole Teemu-rakas

      Vappu Pimiä on tätä nykyä naimisissa Teemu Huuhtasen kanssa. Pimiä on toista kertaa naimisissa, sillä ensimmäinen liitto
      Kotimaiset julkkisjuorut
      33
      1036
    4. Mitä et ole valmis sietämään ihmissuhteissasi ja miksi?

      Aiemmin jo kyseltiin mitkä vaatimukset olivat mielestänne liiallisia. Kyselläänkin nyt sitä, että millaisilla asioilla s
      Sinkut
      325
      1008
    5. Kai mua vähän

      Masentaa tämä kaikki. Tämä koko meidän välinen juttu on niin vaikea… Voitaisiinko molemmat lopettaa tilanteen ruokkimine
      Ikävä
      136
      874
    6. kolme tunnistetta kaivatustasi

      Anna kolme tunnistetta kaivatussasi!
      Ikävä
      55
      856
    7. Älä nyt ylikuormitu vaikka sinusta pidänkin rakas nainen

      Tiedän, että olet minulle oikea. En halua pilata tätä juttua malttamattomuudella, mutta epäilen. Haluan vain olla lähel
      Ikävä
      33
      821
    8. Treffi-ilmoituksia!

      Tähän avaukseen voipi treffeille halukkaat laittaa oman - lyhyen - vapaamuotoisen hakunsa,burneri emaileinee). Tavoitte
      Sinkut
      194
      708
    9. Riittäisikö se

      Että nähtäisiin viikonloppuisin? Naiselta.
      Ikävä
      61
      615
    10. Olenko käsittänyt oikein?

      Tykkäät, mutta et halua mitään (ymmärrän kyllä syyn miksi et).
      Ikävä
      40
      556
    Aihe