Selittäkääs vähän tarkemmin tätä ehtolauseen evaluointia!
Ehtolauseen evaluointi?
Mitä ihmettä
10918
0Äänestä
Muut lukivat myös
Luetuimmat keskustelut
- Kyllä mulla oli tunteita sua kohtaan,mutta voit syyttää ainoastaan itseäsi, että en tehnyt mitään asian eteen. Se on ihan turhaa sinun miettiä, että miksi.
- Millaisen suhteenOlisit halunnut kaivattusi kanssa
- Tikusta asiaaMistä ihmeestä minä keksin sulle edes jotensakin järkevää asiaa parn lauseen verran... anna joku idea että kehtaan lähestyä. -töistä tuttu mies
- Moikka!!!!!!!!!Miten sun päivä on mennyt? Mä olen miettinyt sua paljon❤️
- Suomi24:n uudistuksia 2026Tervehdys ja hyvää syksyä keskustelijat! 🍂 Suomi24:ää on uudistettu vaiheittain viime kuukausien aikana. Sivuston ulkoasua on selkeytetty ja yhdenmukaistettu. Samalla on tehty kaivattuja korjauksia erityisesti rekister…
- Muutoksen tuuletKoetko, että sinun olisi pitänyt/pitäisi muuttaa itseäsi/elämäntyyliäsi jotenkin, "kelvataksesi" kaivatullesi? Koetko itse, että haluaisit olla "parempi" ihminen kaivattuasi varten? Oletko mahdollisesti muuttunut/muutta…
- Nico Lingman on nousemassa suomalaisjulkkisten kaartiinNico Lingman, 34, on podcastaaja, somevaikuttaja ja entinen Puolustusvoimien upseeri. Lingman on astunut isojen suomalaisten julkkisten joukkoon, sillä hän on mukana uudella Tanssii Tähtien Kanssa -kaudella. Sekä tänään…
- Anonyymipalstan ongelmaJoskus tämä palsta on kyllä melkoinen ihmiskoe. Yksi ihminen yrittää saada yhteyttä yhteen tiettyyn henkilöön ja antaa tunnisteitakin, mutta hetken päästä ketjussa on jo puoli Suomea vastaamassa kuin viesti olisi tarkoi…
- Halisin ja pusisinSinut puhki mies. Kaikki tiedostamattomat surut, vihat ja katkeruudet halisin pois. 🫂
- Do diih.. palsta saanut roimasti uudistuksia .. mielipiteitä..?Eilen näin väläyksen tästä uudesta ulkoasusta ja nyt kummastelenkin toimintaa. Jotakin hyvää ja jotakin huonoa. Pistäkää tähän huomioita uudistuksesta. Sen huomasin että aloituksen otsikon kirjainmäärä on kasvanut huoma…
- Mies, sulla on paljon ihailijoitaTuntuu, että täälläkin iso liuta sinua kaipaamassa.
- vilkaisin kuhmolaisen etusivuaKuhmoon on saatu taas katu päällystetyksi,mutta sitä ei saa ajaa? onko senkin kadunvarressa joku isopalkkainen joka saa oman rauhoitetun kadun,laittakaa ihmeessä ne puomit kumpaankin päähän niin katu kestää kauan,oisiha…
- Vasemmistoliiton kannatus kertoo kuinka osa naisista on tyhmiäeli heikkoälyisiä. Vasliittohan on nykyään naisten puolue, suurin osa kannattajista on naisia. Vuoden 2023 eduskuntavaalien tuloksena naisten osuus oli kaikista puolueista suhteellisesti korkein juuri Vasemmistoliitolla…
- Onki meilläMies kaikki hyvin?
- Kaipaisin sinua lähelleni nyt niin paljonEnemmän kuin koskaan. 😞
- Hyvää yötä MIkävä on vaikkei kai saisi olla😔❤️ -joku-
- Otatko yhteyttäKaivattuusi tänä vuonna?
- Persut nousi kakkospaikalle ohi kokoomuksen - SDP alle 23%Näin tosiaan näyttää, että persujen kannatus nousee hitaasti kohti vaaleja. Se on toki ollut heille tavallista aiemminkin.
- Nainen tiedätkö miksi estin sinutKyse ei ole inhosta tai mistään sellaisesta
- Välillä ahdistaa todella paljonVälillä ahdistaa todella paljon . En pysty missään käymään ja ahdistaa nähdä ihmisiä
Vastaukset 10
Vanhimmat
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...
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.
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
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.
Pyydettiin selittämään ehtolauseen evaluointi, vastattiin totuusarvoisen lausekkeen evaluoinnilla. Saisiko olla myös porkkanoita?
IF THEN
tai
:=
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
Millaisia esimerkkejä esim. opetuksessa käytetään eri evaluointitavoissa?