- Project Runeberg -  Teknisk Tidskrift / Årgång 90. 1960 /
1090

(1871-1962)
Table of Contents / Innehåll | << Previous | Next >>
  Project Runeberg | Catalog | Recent Changes | Donate | Comments? |   

Full resolution (JPEG) - On this page / på denna sida - 1960, H. 40 - Algol 60 — ett internationellt datamaskinsspråk, av Sven Yngvell

scanned image

<< prev. page << föreg. sida <<     >> nästa sida >> next page >>


Below is the raw OCR text from the above scanned image. Do you see an error? Proofread the page now!
Här nedan syns maskintolkade texten från faksimilbilden ovan. Ser du något fel? Korrekturläs sidan nu!

This page has never been proofread. / Denna sida har aldrig korrekturlästs.

Är k mindre än O sättes c = 0. Gäller
exempelvis att

’ a2 + b2

c = < O

om k

>0

= O
<0

, a2 + b2

kan detta uttryckas:
if k>O then c: = a† 2 + b 12 else
if k= O then c: = 0 else c: = l/(a†2 + M 2);
Beräkningsgången i denna sats kan
åskådliggöras genom bilden

Bl sann

B2 sann

† † I

if Bl then SI else if 52 then S2 else S3; S4;

+ † 4_t

B1 falsk

B2 falsk

Si- är den sats som följer efter den villkorliga
satsen.

Repetitionssats

En repetitionssats ("for statement") ger
upphov till att en beräkning upprepas ett antal
gånger, samtidigt som en kontrollvariabel
tillordnas en följd av värden. Exempel:

10

S = 2 ai’ bi
i = l

kan uttryckas med en beräkningssats och en
repetitionssats på följande sätt:
5 := 0;

for i := 1 step 1 until 10 do

S :=S + a[i] x fc[i];

Första gången är i = 1, varvid S — 0 + a, • bu
nästa gång antar i värdet 2, varvid a, • b2
adderas till det tidigare värdet av 5 osv. till och
med att i har uppnått värdet 10, varefter
fort-sättes med den efterföljande satsen.

Tillordning av värden till kontrollvariabeln
kan också göras efter en lista av värden, samt
dessutom göras beroende av ett villkor.
Exempel:

for k : = 3 + n, L, p step 2 + r until N,
t/2 while t<T do–-.

Kontrollvariabeln antar här i tur ocli ordning
värdena 3 + n, L, p, p + 2 + r, p + 4 + 2r,
osv. till och med att värdet N uppnåtts, varefter
k antar värdet y2 så länge t är mindre än T.

Hoppsats

Satserna i ett program genomlöpes i den
ordning som de förekommer i programmet. Denna
genomloppsordning kan avbrytas genom en
hoppsats ("go to statement"). I denna anges
var i programmet beräkningarna skall fortsätta.
Exempel: go to L3;

I programmet skall då förekomma en sats,
vars läge betecknats med L3. Som läge
(’Ta-bel") kan användas dels namn, dels heltal. De
sättes före satserna och åtskiljes från dessa
genom kolon.
Exempel: L3: p := a-uf (2/n + 1);

Väljare

En hoppsats kan också lia formen
go to SYL[k -(- 3];

SYL är här namnet på en väljardeklaration
("switch declaration"), exempelvis:
switch SYL := AA, 24, 7i2, if ny = 5 then B A
else Ut;

Hoppet kommer här att utföras till ett av de
lägen som anges i väljardeklarationen. Vilket
av lägena som åsyftas beror av det aktuella
värdet av uttrycket k + 3, är detta lika med 1 blir
läget AA, är det lika med 2 blir läget 24 osv.
Då k + 3 = 4 blir läget BA om en variabel
ny = 5 annars Ut.

Sammansatt sats

En följd av satser kan sammanföras till en
sammansatt sats ("compound statement")
genom att inneslutas mellan parenteserna bt-gin
och end.
Exempel:

if h 4= 0 then begin pa : = r X q—p\2\
qa := p; go to Hu end
else pa : — qa : = 0;
Den sammansatta satsen är här att betrakta
som en enhet och intar samma ställning som
en enkel sats. Om h är skild från 0 kommer
alltså hela den sammansatta satsen att
genomlöpas.

En sammansatt sats kan innehålla andra
sammansatta satser.

Procedurer

Det händer ofta att en viss beräkning behöver
upprepas ett antal gånger i ett program för
olika värden på en eller flera av storheterna
som ingår i beräkningen. För att undvika att
en kod för denna beräkning skall behöva
utläggas vid varje användningstillfälle, kan
beräkningen utformas som ett delprogram till
vilket man kan göra programhopp medförande
ett antal parametrar, dvs. de variabla
storheterna.

Delprogram av denna typ, procedurer, kan i
Algol 60 definieras genom en
procedurdeklaration.

Exempel: Matrismultiplikation
procedure matrismult (A, B, C, m, n, p);
valuc 771, ti, p;
array A, B, C;
integer m, n, p;

comment A förmatris: m X n, B eftermatris:
n x p, C resultatmatris;
begin

integer i, j, k-,

for i := 1 step 1 until m do
begin for / := 1 step 1 until p do
begin C[i, j] : = 0;
for k := 1 step 1 until n do

C[i, j] := C[i, j] + A[i, k] x B[k, j]

end

end

end

Första delen av procedurdeklarationen fram
till första begin kallas procedurrubriken, den
resterande delen procedurkärnan. I
procedurkärnan ingår de satser som beskriver hur
beräkningen skall utföras. Procedurkärnan kan
även uttryckas i ett annat datamaskinspråk än

1090 TEKNISK TIDSKRIFT 1 960 H. 40

<< prev. page << föreg. sida <<     >> nästa sida >> next page >>


Project Runeberg, Fri Oct 18 15:56:35 2024 (aronsson) (download) << Previous Next >>
https://runeberg.org/tektid/1960/1116.html

Valid HTML 4.0! All our files are DRM-free