Az ELAN programozási nyelv

Példaprogramok

15. Példaprogramok




15.1. Egy 1 és 50 közötti egész szám prímtényezős felbontását kiíró program


# Az első program beolvas egy 1 és 50 közötti egész számot, és kiírja a szám prímtényezős felbontását: #


program:
INT VAR a;
beolvas;
felbont.
beolvas:
put("Írd be a számot");
REP get (a)
UNTIL a > 0 AND a <= 50
ENDREP.
felbont:
LET primszam = 9;
ROW primszam INT CONST primek :: [2, 3, 5, 7, 11, 13, 17, 19, 23];
INT VAR i;
i := 1;
put("A szám prímfelbontása a következő:");
WHILE a > 1 AND i <= primszam
REP
IF osztja
THEN
a := a DIV primek [i];
put (primek [i])
ELSE i := i + 1
FI
ENDREP;
IF i > primszam
THEN put (a)
FI.
osztja:
a MOD primek [i] = 0.



15.2. Egy új típust - a komplex szám típust - és a hozzá tartozó operátorokat megvalósító program


# A második program egy új típus - a komplex szám - és a hozzá tartozó operátorok, eljárások megvalósítását mutatja be: #


TYPE KOMPLEX = STRUCT (REAL valos, kepzetes);
PROC put (KOMPLEX CONST a):
put (a.valos);
put ("+");
put (a.kepzetes);
put ("*i");
ENDPROC put;
PROC get (KOMPLEX VAR a):
put ("Írd be a valós részt:");
get (a.valos);
put ("Írd be a képzetes részt:");
get (a.kepzetes);
ENDPROC get;
KOMPLEX OP - (KOMPLEX CONST a, b):
KOMPLEX: [a.valos - b.valos, a.kepzetes - b.kepzetes]
ENDOP -;
KOMPLEX OP + (KOMPLEX CONST a, b):
KOMPLEX: [a.valos + b.valos, a.kepzetes + b.kepzetes]
ENDOP +;
KOMPLEX OP * (REAL CONST a, KOMPLEX CONST b):
KOMPLEX: [a * b.valos, a * b.kepzetes]
ENDOP *;
program:
KOMPLEX VAR a, b, c;
get (a);
get (b);
c := a + b;
put (c);
c := a - b;
put (c);
put (3.0 * a).