Difference between revisions of "NO/Documentation/BASIC Guide/Working With Variables"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Created page with '{{DISPLAYTITLE:Variabler}} {{NO/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=NO/Documentation/BASIC Guide/Program Overview |NextPage=NO/Docume…')
 
 
(2 intermediate revisions by the same user not shown)
Line 8: Line 8:
 
}}
 
}}
 
__NOTOC__
 
__NOTOC__
Et program bearbeider data.
+
Et program bearbeider data som ligger i maskinens minne.
 
Variabler er navngitte data en kan endre (read-write) og
 
Variabler er navngitte data en kan endre (read-write) og
 
konstanter er faste (read-only) data med navn og uten navn.
 
konstanter er faste (read-only) data med navn og uten navn.
  
 +
===Regneuttrykk===
 +
Et regneuttrykk skrives på formen A = uttrykk.
 +
Først regnes høyresiden ut.  Så legges resultatet inn i A.
 +
Utregning av en omkrets skrives:
 +
<source lang="oobas">
 +
  omkrets = 2 * PI * radius
 +
</source>
 +
I alt er her fire data.  To variabler med navn
 +
"omkrets" og "radius".
 +
"PI" er en navngitt konstant som er deklarert eksplisitt
 +
og gitt verdi et annet sted, og
 +
"2" er en ikke-navngitt konstant (med verdien 2).
 +
 +
===Regning===
 +
En maskin har en prosessor som  kan regne med kun to data av gangen
 +
(to "operander").  Det som skal gjøres indikeres med en "operator",
 +
som pluss (+), minus (-), gange (*) og dele (/).  Det
 +
regnes fra venstre mot høyre, to operander av gangen.
 +
For å regne omkretsen blir først 2*PI utført (resultatet blir
 +
6.28).  Så blir 6.28*radius utført. 
 +
Til sist legges svaret i "omkrets".
 +
Interpreter går så videre til neste uttrykk.
 +
 +
===Navneregler===
 +
Hvis et data skal ha navn gjelder reglene om at navnet
 +
skal ha bokstaver og tall og eventuelt et  underscore (_).
 +
Norske og samiske tegn tillates ikke.
 +
Store og små bokstaver oppfattes likt, slik at navnet
 +
"Omkrets", "omkrets" og "omKRETS" vil gjelde samme data.
 +
 +
===Datatyper===
 
Data vil til enhver til ha en type som bestemmer hvordan
 
Data vil til enhver til ha en type som bestemmer hvordan
 
de skal oppfattes.  Basaltypene er
 
de skal oppfattes.  Basaltypene er
Line 18: Line 49:
 
String (ord og tekst),
 
String (ord og tekst),
 
Boolean (sann/usann).
 
Boolean (sann/usann).
 +
I et regneuttrykk som over (omkrets) må alle data ha samme type.
 +
Fordi konstanten "PI" er et desimaltall, vil interpreteren
 +
konvertere de andre tre til desimaltall.
  
Hvis data skal ha navn gjelder reglene om at navnet
 
skal ha bokstaver og tall og eventuelt et  underscore (_).
 
Norske og samiske tegn tillates ikke.
 
 
===Eksplisitt===
 
===Eksplisitt===
 
Programmet blir tydeligst hvis en eksplisitt deklarerer  
 
Programmet blir tydeligst hvis en eksplisitt deklarerer  
hva slags navn og type de ulike data skal ha.  Dim er
+
hva slags navn og type de ulike data skal ha.  "Dim" er
et direktiv ("dimensjoner") vi bruker til eksplisitt  
+
et direktiv ("dimensjoner") for eksplisitt  
 
deklarasjon, som i:
 
deklarasjon, som i:
 
<source lang="oobas">
 
<source lang="oobas">
Dim skatteprosent as Double
+
Dim omkrets as Double
Dim inntekt as Integer
+
Dim radius as Double
Dim navn as String
+
omkrets = 2 * PI * radius
Dim gift as Boolean
+
 
</source>
 
</source>
I eksemplet blir det laget plass (i minnet) til fire
+
der det fremdeles vil være fire data involvert med samme navn
navngitte variabler:  Ett desimaltall, ett heltall, en streng og en boolsk.
+
og plassbehov. Noen mener at sjansen for feil er lavest med eksplisitt
===Implisitt===
+
deklarering.  For å sikre seg mot implisitte deklarasjoner brukes
Mange synes det er enklest at data deklareres etterhvert
+
et direktiv i starten av programmet,
som de tas i bruk (implisitt) og at datatypen bestemmes
+
og kan varieres, etter hvordan det brukes (typesvakt).
+
{{OOo}} er typesvakt og dynamisk og vil tillate dette.
+
 
+
Noen mener at sjansen for feil er lavest med eksplisitt
+
deklarering.  Man kan med et direktiv sikre seg mot implisitte
+
deklarasjoner:
+
 
<source lang="oobas">
 
<source lang="oobas">
 
Option Explicit
 
Option Explicit
 
</source>
 
</source>
Dette er et direktiv til interpreteren, og
+
slik at interpreter gir feilmelding.
skal skrives i starten av programmet.
+
 
===Variant===
+
Vil en at et navngitt data ikke skal kunne endres
 +
brukes "Const" istedet for "Dim".  Interpreter gir feilmelding
 +
hvis en forsøker å gi verdier til konstantene.  Konstanten "PI"
 +
er eksplisitt deklarert omtrent som
 +
<tt>Const PI as Double = 3.14...</tt>
 +
 
 +
===Variant (dynamisk type)===
 
Et data av variant-type kan anta type etter bruk.   
 
Et data av variant-type kan anta type etter bruk.   
 
<source lang="oobas">
 
<source lang="oobas">
Line 71: Line 100:
 
Dim valuta            ' Currency
 
Dim valuta            ' Currency
 
</source>
 
</source>
 +
 +
I runtime-library ligger en rekke [[NO/Documentation/BASIC_Guide/Conversion_Functions_(Runtime_Library)|funksjoner som konverterer mellom typer]].
 
Datatyper blir mer detaljert beskrevet i neste delkapitel.  
 
Datatyper blir mer detaljert beskrevet i neste delkapitel.  
 
{{InterWiki Languages BasicGuide|articletitle=NO/Documentation/BASIC Guide/Working With Variables}}
 
{{InterWiki Languages BasicGuide|articletitle=NO/Documentation/BASIC Guide/Working With Variables}}
 
{{PDL1}}
 
{{PDL1}}

Latest revision as of 08:31, 15 December 2009

Et program bearbeider data som ligger i maskinens minne. Variabler er navngitte data en kan endre (read-write) og konstanter er faste (read-only) data med navn og uten navn.

Regneuttrykk

Et regneuttrykk skrives på formen A = uttrykk. Først regnes høyresiden ut. Så legges resultatet inn i A. Utregning av en omkrets skrives:

  omkrets = 2 * PI * radius

I alt er her fire data. To variabler med navn "omkrets" og "radius". "PI" er en navngitt konstant som er deklarert eksplisitt og gitt verdi et annet sted, og "2" er en ikke-navngitt konstant (med verdien 2).

Regning

En maskin har en prosessor som kan regne med kun to data av gangen (to "operander"). Det som skal gjøres indikeres med en "operator", som pluss (+), minus (-), gange (*) og dele (/). Det regnes fra venstre mot høyre, to operander av gangen. For å regne omkretsen blir først 2*PI utført (resultatet blir 6.28). Så blir 6.28*radius utført. Til sist legges svaret i "omkrets". Interpreter går så videre til neste uttrykk.

Navneregler

Hvis et data skal ha navn gjelder reglene om at navnet skal ha bokstaver og tall og eventuelt et underscore (_). Norske og samiske tegn tillates ikke. Store og små bokstaver oppfattes likt, slik at navnet "Omkrets", "omkrets" og "omKRETS" vil gjelde samme data.

Datatyper

Data vil til enhver til ha en type som bestemmer hvordan de skal oppfattes. Basaltypene er Integer og Long (heltall), Single og Double (desimaltall), String (ord og tekst), Boolean (sann/usann). I et regneuttrykk som over (omkrets) må alle data ha samme type. Fordi konstanten "PI" er et desimaltall, vil interpreteren konvertere de andre tre til desimaltall.

Eksplisitt

Programmet blir tydeligst hvis en eksplisitt deklarerer hva slags navn og type de ulike data skal ha. "Dim" er et direktiv ("dimensjoner") for eksplisitt deklarasjon, som i:

Dim omkrets as Double
Dim radius as Double
omkrets = 2 * PI * radius

der det fremdeles vil være fire data involvert med samme navn og plassbehov. Noen mener at sjansen for feil er lavest med eksplisitt deklarering. For å sikre seg mot implisitte deklarasjoner brukes et direktiv i starten av programmet,

Option Explicit

slik at interpreter gir feilmelding.

Vil en at et navngitt data ikke skal kunne endres brukes "Const" istedet for "Dim". Interpreter gir feilmelding hvis en forsøker å gi verdier til konstantene. Konstanten "PI" er eksplisitt deklarert omtrent som Const PI as Double = 3.14...

Variant (dynamisk type)

Et data av variant-type kan anta type etter bruk.

Dim ukedag                 ' ingen type angitt
ukedag = "tirsdag"         ' her blir det en streng
ukedag = 2                 ' et heltall (Integer)
ukedag = 2.2               ' et desimaltall (Double)
ukedag = True              ' sannhet (Boolean)

I eksemplet angis ikke type i deklarasjonen av ukedag. Deretter gis den fire verdier med ulik type (de to siste gir lite mening, riktignok).

Hurtigtyping

Eksplisitt type kan angis med typens navn, eller ved et postfix (etterkoding) i navnet:

Dim storInntekt&      ' Long
Dim inntekt%          ' Integer
Dim navn$             ' String
Dim investProsent!    ' Single
Dim skatteprosent#    ' Double
Dim valuta            ' Currency

I runtime-library ligger en rekke funksjoner som konverterer mellom typer. Datatyper blir mer detaljert beskrevet i neste delkapitel.


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools