Selittäkääs vähän tarkemmin tätä ehtolauseen evaluointia!
Ehtolauseen evaluointi?
10
910
Vastaukset
- 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
Jussi Halla-aho huolissaan Sofia Virrasta
Jussihan on vanha vihreä. Onko tässä kyse alkukesän kiimasta, kun aidan toisella puolella oleva vihreä alkaa kiinnostama103433Julkista rahaa ei tule antaa senttiäkään yksityisille yrityksille
Julkinen raha on meidän yhteistä rahaa, ja se raha on tarkoitettu yhteiseen käyttöön, kuten esimerkiksi tuottamaan palve593279Sofia Virta kadonnut....onko juomassa?
Virran poissaolo eduskunnasta on herättänyt huomiota. Esimerkiksi Ilta-Sanomat kertoi aiemmin, että Virta on ollut tällä442979Vihreiden, SDP:n ja Vasemmistoliiton kannattajista selvästi alle puolet on miehiä
ja silti joku punafeministi valitti kokoomuksen naiskannattajien puutteesta, vaikka siellä on enemmän naisia kuin punavi942848On tiedossa, että venäjämieliset diggaavat diktatuurista venäjää
jossa ei esim. ole sanan- ja lehdistönvapautta. Mutta keitä nämä venäjän palvojat sitten ovat, ei heitä toki paljon ole622688Ensin Henry Novak ja nyt sitten se Irlannin tapaus
jossa mustaihoinen afrikkalainen mieshenkilö puukottaa valkoihoista maassa makaavaa miestä useita kertoa pään alueelle.732648Belfastissa käynnissä kunnon persuilu
Joku random mamu tekee rikoksen, niin sikäläiset naamiopersut kostavat tuhoamalla kantaävestön omaisuutta. Liekö siellä972620Tytti Tuppurainen: Suomen pakolaiskiintiö pitäisi nostaa 10 000 vuodessa
asia on faktaa, noin Tytti sanoi aiemmin. Kun taas Orpon hallitusohjelman mukaisesti Suomen pakolaiskiintiö on pudotettu1132327Islamovasemmistolaisuus - tälläista termiä käytetään
Termi tarkoittaa alunperin äärivasemmiston ja muslimifundamentalistien liittoa, jonka ytimessä oli antisemitismi. Isl552063Joskus tulee niin
Yksinäinen olo. Ei ole tarpeeksi ihmisiä elämässä, jotka tuntuisivat välitttävän aidosti. Jos mä ny saisin sairaskohtauk661971