Difference between revisions of "Becomes/fi"

From Free Pascal wiki
Jump to navigationJump to search
(Created page with "{{Becomes}} <div style="float:left; margin: 0 10px 20px 0; padding:40px; font-size:500%; font-family: Georgia; background-color: #f9f9f9; border: 2px solid #777777;">:=</div>...")
 
 
Line 3: Line 3:
 
<div style="float:left; margin: 0 10px 20px 0; padding:40px; font-size:500%; font-family: Georgia; background-color: #f9f9f9; border: 2px solid #777777;">:=</div>
 
<div style="float:left; margin: 0 10px 20px 0; padding:40px; font-size:500%; font-family: Georgia; background-color: #f9f9f9; border: 2px solid #777777;">:=</div>
  
Kirjainyhdistelmä <syntaxhighlight lang="pascal" enclose="none">:=</syntaxhighlight>  jossa on ensin [[Colon|kaksoispiste]] ja heti sen perässä [[Equal|yhtäsuuruusmerkki]],  
+
Kirjainyhdistelmä <syntaxhighlight lang="pascal" inline>:=</syntaxhighlight>  jossa on ensin [[Colon|kaksoispiste]] ja heti sen perässä [[Equal|yhtäsuuruusmerkki]],  
 
Siitä käytetään nimitystä ​​"saa arvokseen" ja sitä käytetään [[Pascal]]issa arvon liittäjänä.
 
Siitä käytetään nimitystä ​​"saa arvokseen" ja sitä käytetään [[Pascal]]issa arvon liittäjänä.
  
 
== Arvon liittäminen ==
 
== Arvon liittäminen ==
  
Hyväksytyissä käytössä  merkkiparin <syntaxhighlight lang="pascal" enclose="none">:=</syntaxhighlight> vasemmalla puolen on yksittäisen
+
Hyväksytyissä käytössä  merkkiparin <syntaxhighlight lang="pascal" inline>:=</syntaxhighlight> vasemmalla puolen on yksittäisen
 
[[Variable/fi|muuttujan]] [[Identifier/fi|tunniste]] ja lauseke, jonka arvo ratkaistaan tiettyyn [[Data type|tietotyyppiin]] on sen oikealla puolen.
 
[[Variable/fi|muuttujan]] [[Identifier/fi|tunniste]] ja lauseke, jonka arvo ratkaistaan tiettyyn [[Data type|tietotyyppiin]] on sen oikealla puolen.
  
Line 32: Line 32:
 
Arvon liittäminen [[subrange types|rajoitettuihin tyyppeihin]] on käsiteltävä varoen.  
 
Arvon liittäminen [[subrange types|rajoitettuihin tyyppeihin]] on käsiteltävä varoen.  
 
[[Compiler/fi|Kääntäjä]] voi antaa vain arvoalueen ulkopuolella olevan virheen ''kiinteästi'' ratkaistaville lausekkeille jotka ei riipu ajonaikaisesta datasta
 
[[Compiler/fi|Kääntäjä]] voi antaa vain arvoalueen ulkopuolella olevan virheen ''kiinteästi'' ratkaistaville lausekkeille jotka ei riipu ajonaikaisesta datasta
Kääntäjän ohjeella [[sRangechecks|<syntaxhighlight lang="pascal" enclose="none">{$rangeChecks}</syntaxhighlight>]] sallitaan ajoaikaiset virheiden luonti.
+
Kääntäjän ohjeella [[sRangechecks|<syntaxhighlight lang="pascal" inline>{$rangeChecks}</syntaxhighlight>]] sallitaan ajoaikaiset virheiden luonti.
  
 
<syntaxhighlight lang="pascal">
 
<syntaxhighlight lang="pascal">
Line 53: Line 53:
 
== Erilaisten tietotyyppien käsittely ==
 
== Erilaisten tietotyyppien käsittely ==
  
Kun yksinkertaiset tietotyypit, kuten [[Integer/fi| kokonaisluvut (<syntaxhighlight lang="pascal" enclose="none">integer</syntaxhighlight>) ]] ja  
+
Kun yksinkertaiset tietotyypit, kuten [[Integer/fi| kokonaisluvut (<syntaxhighlight lang="pascal" inline>integer</syntaxhighlight>) ]] ja  
[[Char| merkit (<syntaxhighlight lang="pascal" enclose="none">char</syntaxhighlight>)]] toteutetaan  
+
[[Char| merkit (<syntaxhighlight lang="pascal" inline>char</syntaxhighlight>)]] toteutetaan  
<syntaxhighlight lang="asm" enclose="none">mov</syntaxhighlight> käskyinä tai vastaavina. Tietotyypit jotka edellyttävät alustusta ja viimeistelyä kuten
+
<syntaxhighlight lang="asm" inline>mov</syntaxhighlight> käskyinä tai vastaavina. Tietotyypit jotka edellyttävät alustusta ja viimeistelyä kuten
[[Ansistring|<syntaxhighlight lang="pascal" enclose="none">ansistring</syntaxhighlight>]] tai [[Class/fi|luokat (<syntaxhighlight lang="pascal" enclose="none">class</syntaxhighlight> )]]
+
[[Ansistring|<syntaxhighlight lang="pascal" inline>ansistring</syntaxhighlight>]] tai [[Class/fi|luokat (<syntaxhighlight lang="pascal" inline>class</syntaxhighlight> )]]
 
  tarvitsevat erityistä huolellisuutta.
 
  tarvitsevat erityistä huolellisuutta.
  
 
Kääntäjä tuottaa asianmukaiset koodin kopiointitiedot seuraaville tietotyypeille.
 
Kääntäjä tuottaa asianmukaiset koodin kopiointitiedot seuraaville tietotyypeille.
  
* [[String|<syntaxhighlight lang="pascal" enclose="none">string</syntaxhighlight>]]
+
* [[String|<syntaxhighlight lang="pascal" inline>string</syntaxhighlight>]]
* [[Object|<syntaxhighlight lang="pascal" enclose="none">object</syntaxhighlight>]]
+
* [[Object|<syntaxhighlight lang="pascal" inline>object</syntaxhighlight>]]
* [[Record|<syntaxhighlight lang="pascal" enclose="none">record</syntaxhighlight>]]
+
* [[Record|<syntaxhighlight lang="pascal" inline>record</syntaxhighlight>]]
  
 
Näiden kaikkia osasia ei tarvitse erikseen toistaa kopioinnissa, kuten joissakin muissa ohjelmointikielissä vaaditaan.
 
Näiden kaikkia osasia ei tarvitse erikseen toistaa kopioinnissa, kuten joissakin muissa ohjelmointikielissä vaaditaan.

Latest revision as of 17:23, 6 August 2022

English (en) suomi (fi) français (fr) русский (ru) 中文(中国大陆)‎ (zh_CN)

:=

Kirjainyhdistelmä := jossa on ensin kaksoispiste ja heti sen perässä yhtäsuuruusmerkki, Siitä käytetään nimitystä ​​"saa arvokseen" ja sitä käytetään Pascalissa arvon liittäjänä.

Arvon liittäminen

Hyväksytyissä käytössä merkkiparin := vasemmalla puolen on yksittäisen muuttujan tunniste ja lauseke, jonka arvo ratkaistaan tiettyyn tietotyyppiin on sen oikealla puolen.

program assignmentDemo(input, output, stderr);

const
	diameter = 6;

var
	n: integer;
	area: real;
	givenName: string;

begin
	n := 42;
	area := pi() * diameter;
	givenName := 'Smith';
	n := 1000 - n div 2;
end.

Arvon liittäminen rajoitettuihin tyyppeihin on käsiteltävä varoen. Kääntäjä voi antaa vain arvoalueen ulkopuolella olevan virheen kiinteästi ratkaistaville lausekkeille jotka ei riipu ajonaikaisesta datasta Kääntäjän ohjeella {$rangeChecks} sallitaan ajoaikaiset virheiden luonti.

program assignmentRange(input, output, stderr);

type
	naturalNumber = 1..high(longword);

var
	n: naturalNumber;

begin
	{$rangechecks on}
	n := 1;           // on OK
	n := -42 + n;     // aiheuttaa RTE 201:n
end.


Erilaisten tietotyyppien käsittely

Kun yksinkertaiset tietotyypit, kuten kokonaisluvut (integer) ja merkit (char) toteutetaan mov käskyinä tai vastaavina. Tietotyypit jotka edellyttävät alustusta ja viimeistelyä kuten ansistring tai luokat (class )

tarvitsevat erityistä huolellisuutta.

Kääntäjä tuottaa asianmukaiset koodin kopiointitiedot seuraaville tietotyypeille.

Näiden kaikkia osasia ei tarvitse erikseen toistaa kopioinnissa, kuten joissakin muissa ohjelmointikielissä vaaditaan.

Valitun syntaksin perustelut

Periaate kahden merkin käyttämisestä "saa arvokseen" toiminnossa yhden merkin sijasta , vaikkapa yhtäsuuruusmerkin = sijasta, on erottaa arvon sijoittaminen ja tasa-arvon vertailu toisistaan. Sillä on juuret matematiikassa, jossa yksi yhtäsuuruusmerkki luetaan tasa-arvon ilmaisuksi.

Jossain muissa ohjelmointikielissä kuin Pascal:ssa on sallittua kirjoittaa

n = m = x;

Tämän koodin rivin semantiikka vaihtelee jokaisen ohjelmointikielen välillä. Esimerkiksi Fortranissa ja Basicissa tämä rivi tarkoittaa "Vertaa arvoja m ja x , ja jos ne ovat yhtäsuuret niin n saa arvon true muuten false." Sen sijaan C-ohjelmointikieli antaa m:lle arvon x ja sen jälkeen n:lle m:n arvon, jolloin molemmilla n:llä ja m:llä on arvo x . Tällainen koodi on ollut yleinen virheenlähde, mutta kääntäjät nykyään jopa antavat varoituksia, kun he kohtaavat useampia sijoituksia yhdellä rivillä.

Pascalissa edellä oleva koodirivi on virheellinen. Toimimattomat lauseet eivät ole sallittuja, eli jotain on silloin tehtävä .


navigation bar: topic: Pascal symbols
single characters

+ (plus)  •  - (minus)  •  * (asterisk)  •  / (slash)
= (equal)  •  > (greater than)  •  < (less than)
. (period)  •  : (colon)  •  ; (semi colon)
^ (hat)  •  @ (at)
$ (dollar sign)  •  & (ampersand)  •  # (hash)
' (single quote)

character pairs

<> (not equal)  •  <= (less than or equal)  •  := (becomes)  •  >= (greater than or equal)

 •  >< (symmetric difference)  •  // (double slash)