Ehtolauseen evaluointi?

Mitä ihmettä

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

10

882

    Vastaukset

    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. Petteri Orpo on satusetä

      Väittää että työllisyys on Suomessa samalla tasolla kuin hallituksen aloittaessa kesällä 2023. Fakta on, että työllisi
      Maailman menoa
      130
      3743
    2. Orpo ja Purra, käykää hakemassa oppia Espanjasta

      Espanja on näyttänyt kuinka kova työttömyys nujerretaan ja saadaan maan talous palautettua nousu-uralle. Ei ole häpeä kä
      Maailman menoa
      64
      2639
    3. Porvarimedia: Räsänen vei Lindtmanilta pääministerin paikan

      Lisäksi suomalaiset ovat innostuneet tuhlaaman, koska kuluttavat inflaation verran enemmän rahaa. Eikö porvarimedialla
      Maailman menoa
      34
      2592
    4. Jääkiekon MM:t pitää siirtää MTV:ltä Ylelle

      Persuille ikäviä uutisia taas. . Valtioneuvoston asetuksen mukaan MM-kisat kuuluvat kansallisesti merkittäviin tapahtumi
      Maailman menoa
      75
      2411
    5. Ruotsi laskee jälleen bensaveroa, Riikka irvailee tumput suorana

      Euron bensa oli persujen vaalilupaus, mutta kohta alkaa olla kolmosella alkavia litrahintoja. Meanwhile in Sverige: "
      Maailman menoa
      25
      2283
    6. Olitkin liian hyvää ollaksesi totta nainen

      Ihastuin ja rakastuin, mutta se on minun ongelma. Ei sinun.
      Ikävä
      103
      1370
    7. Kaste pelastaa ihmisen

      Kristittyjen kirkkojen toimittama yksi Kaste on Jumalan tekemä pelastusteko, jossa perisyntiin hengellisesti kuollut ihm
      Kaste
      626
      1255
    8. Elisalla ja MTV:llä lihava riita - MTV:n kanavienlähetykset ovat katkeamassa Elisan asiakkailla

      Kaikkien MTV:n kanavien televisiolähetykset ovat katkeamassa Elisan kaapeli-tv-asiakkailta. https://www.is.fi/digitoday
      Maailman menoa
      144
      1061
    9. Uskon todistus

      Oikean uskovaisen ja nimikristityn erottaa siitä, että Jeesukseen uskova korottaa Jeesusta ja uskoa Häneen, mutta nimik
      Kaste
      261
      1046
    10. Ensin oli armo - sen jälkeen tuli usko

      Me emme ansaitse armoa omalla uskollamme. Armo on ansaitsematonta rakkautta mikä synnyttää meidät uudesti Jumalasta. K
      Luterilaisuus
      400
      1045
    Aihe