Difference between revisions of "Div/fi"

From Lazarus wiki
Jump to navigationJump to search
(Created page with "{{div}} <syntaxhighlight lang="pascal" enclose="none">Div</syntaxhighlight> on sellainen jakolasku, jossa murto-osa (jakojäännös) hylätään. Lauseke <syntaxhighlight la...")
 
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
 
{{div}}
 
{{div}}
  
<syntaxhighlight lang="pascal" enclose="none">Div</syntaxhighlight> on sellainen jakolasku, jossa murto-osa (jakojäännös) hylätään.  
+
<syntaxhighlight lang="pascal" inline>Div</syntaxhighlight> on sellainen jakolasku, jossa murto-osa (jakojäännös) hylätään.  
Lauseke <syntaxhighlight lang="pascal" enclose="none">a div b</syntaxhighlight> palauttaa kokonaisluvun kahden kokonaisluvun jakamisen tuloksesta.  
+
Lauseke <syntaxhighlight lang="pascal" inline>a div b</syntaxhighlight> palauttaa kokonaisluvun kahden kokonaisluvun jakamisen tuloksesta.  
Tämä on toisin kuin ilmaisu <syntaxhighlight lang="pascal" enclose="none">a / b</syntaxhighlight>, joka palauttaa [[Real|reaaliluvun]] tuloksena.
+
Tämä on toisin kuin ilmaisu <syntaxhighlight lang="pascal" inline>a / b</syntaxhighlight>, joka palauttaa [[Real|reaaliluvun]] tuloksena.
  
Ilmaisun molemmilla puolilla <syntaxhighlight lang="pascal" enclose="none">div</syntaxhighlight>:n on oltava kokonaisluvullinen tyyppi. Reaalilukutyyppisen operandin käyttäminen <syntaxhighlight lang="pascal" enclose="none">div</syntaxhighlight>in kanssa johtaa käännösaikaiseen virheeseen:  
+
Ilmaisun molemmilla puolilla <syntaxhighlight lang="pascal" inline>div</syntaxhighlight>:n on oltava kokonaisluvullinen tyyppi. Reaalilukutyyppisen operandin käyttäminen <syntaxhighlight lang="pascal" inline>div</syntaxhighlight>in kanssa johtaa käännösaikaiseen virheeseen:  
“Error: Operator is not overloaded: […]”.
+
 
 +
  Error: Operator is not overloaded: […]
  
 
Jos halutaan saada kokonaislukutuloksen reealilukuisella operandilla niin käytä  
 
Jos halutaan saada kokonaislukutuloksen reealilukuisella operandilla niin käytä  
{{Doc|package=RTL|unit=system|identifier=trunc|text=<syntaxhighlight lang="pascal" enclose="none">trunc</syntaxhighlight>}} tai {{Doc|package=RTL|unit=system|identifier=round|text=<syntaxhighlight lang=pacsal" enclose="none">round</syntaxhighlight>}} funktiota [[Slash|<syntaxhighlight lang="pascal" enclose="none">/</syntaxhighlight>&nbsp;operator]] kanssa.
+
{{Doc|package=RTL|unit=system|identifier=trunc|text=<syntaxhighlight lang="pascal" inline>trunc</syntaxhighlight>}} tai {{Doc|package=RTL|unit=system|identifier=round|text=<syntaxhighlight lang="pascal" inline>round</syntaxhighlight>}} funktiota [[Slash|<syntaxhighlight lang="pascal" inline>/</syntaxhighlight>&nbsp;operator]] kanssa.
  
Seuraavassa esimerkissä nähdään, mitä <syntaxhighlight lang="pascal" enclose="none">div</syntaxhighlight> tekee
+
Seuraavassa esimerkissä nähdään, mitä <syntaxhighlight lang="pascal" inline>div</syntaxhighlight> tekee
  
 
<syntaxhighlight lang="pascal" line highlight="15,17">
 
<syntaxhighlight lang="pascal" line highlight="15,17">

Latest revision as of 17:23, 6 August 2022

Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru)

Div on sellainen jakolasku, jossa murto-osa (jakojäännös) hylätään. Lauseke a div b palauttaa kokonaisluvun kahden kokonaisluvun jakamisen tuloksesta. Tämä on toisin kuin ilmaisu a / b, joka palauttaa reaaliluvun tuloksena.

Ilmaisun molemmilla puolilla div:n on oltava kokonaisluvullinen tyyppi. Reaalilukutyyppisen operandin käyttäminen divin kanssa johtaa käännösaikaiseen virheeseen:

 Error: Operator is not overloaded: […]

Jos halutaan saada kokonaislukutuloksen reealilukuisella operandilla niin käytä trunc tai round funktiota / operator kanssa.

Seuraavassa esimerkissä nähdään, mitä div tekee

 1program divDemo(input, output, stderr);
 2
 3var 
 4	i: shortInt;
 5	j: shortInt;
 6	q: qWord;
 7	r: qWord;
 8
 9begin
10	i := 16;
11	j := 3;
12	q := 1000;
13	r := 300;
14	
15 	writeLn(i div j);
16 	writeLn(i / j);
17 	writeLn(q div r);
18 	writeLn(q / r);
19end.

Ulostulona saadaan:

$ ./divDemo
5
 5.3333333333333330E+000
3
 3.3333333333333335E+000

Katso myös

  • mod – jakojäännös (kokonaisluvuista).
  • trunc – katkaisee kokonaisosan reaaliluvusta.
  • round – pyöristää reaaliluvun kokonaisluvuksi.
  • math.divmod – palauttaa molemmat kokonaisosan ja jakojäännöksen.