Kulvietiene_zapolskiene Mokomoji Knyga

35
Vilniaus Gedimino technikos universitetas 5HJLQD.XOYLHWLHQ¡-DQLQD=DSROVNLHQ¡ ,ãSO¡VWLQ¡NRPDQGLQ¡NDOED5(;; Mokomoji knyga Vilnius 2005

Transcript of Kulvietiene_zapolskiene Mokomoji Knyga

Page 1: Kulvietiene_zapolskiene Mokomoji Knyga

Vilniaus Gedimino technikos universitetas

���������������� ������������������

�����������������������������

Mokomoji knyga

Vilnius 2005

Page 2: Kulvietiene_zapolskiene Mokomoji Knyga

������������ ���������������������������������������������� Mokomoji knyga. Vilnius:

Technika, 2005. 36 p.

P���������� ���������� � ��������� ��� �� ����� � ����� ��� � ���������� � ����� �� ���������������������������������������������� ���� ����������������� ��������� �������� ������������ ��� ������ �� ��������s studentams, studijuojant����� ���������

������������������������������������������������������ ���������� ����������� � �������������������� ����� ����� � �������� ������������� � ��������� ���������������� ������������������ �������� ��� ������ � !������� "������ � ���#��� �� ����������� � $������������� � ���� ������� ���������� �������� �������� �� ���#���������%��&� ���������� ���&��'��������� !"()������ ��*(��#����+�,-.�� � � �� ����� �������������� ������� ISBN 9986-05-896-1 /����0�����������1��2� ������, 2005 © VGTU leidykla „Technika“, 2005

Page 3: Kulvietiene_zapolskiene Mokomoji Knyga

3

Turinys ������...........................................................................................................................................................................................4 1. REXX programos pavyzdys ....................................................................................................................................................4 3�������� ����� ��������� ......................................................................................................................................................4 3. Komentarai ..............................................................................................................................................................................5 4��(��������������� ......................................................................................................................................................................5 5. Instrukcijos ..............................................................................................................................................................................5

5.1. Instrukcija EXIT...............................................................................................................................................................5 5.2. Instrukcija SAY................................................................................................................................................................5 5.3. Instrukcija PULL..............................................................................................................................................................6 5.4. Instrukcija PARSE PULL.................................................................................................................................................6

6. Komandos................................................................................................................................................................................7 7. Priskyrimai ..............................................................................................................................................................................7 8. Aritmetika................................................................................................................................................................................8 -��5���� ......................................................................................................................................................................................9 67��8����������������������� �.....................................................................................................................................................9

10.1. Instrukcija IF ... THEN...................................................................................................................................................9 10.2. Instrukcija SELECT .................................................................................................................................................... 10

11. True ir False operatoriai .................................................................................................................................................... 13 12. Loginiai operatoriai (not, and, or) ...................................................................................................................................... 14 13. Ciklai .................................................................................................................................................................................. 14

13.1. Kartotiniai ciklai .......................................................................................................................................................... 14 69�3��8�������������� ........................................................................................................................................................... 16 69�9��8����������������������� ������� ���������:����baigti ci��. ..................................................................................... 18 69�4��;������������������������������������ ........................................................................................................................ 19 13.5. Ciklo nutraukimas su CTRL+BREAK........................................................................................................................ 19

64��!������������������� � .................................................................................................................................................... 20 14.1. ABS (num)................................................................................................................................................................... 20 14.2. ADDRESS () ............................................................................................................................................................... 20 14.3. ARG ([argumentonr[,param]]) .................................................................................................................................... 21 14.4. CHARIN ([šaltinis][,[start][,ilgis]]) ............................................................................................................................ 22 14.5��;<&�=)(�>?������ ��@?�?�����@?������@@A................................................................................................................... 23 14.6. CHARS ([šaltinioid])................................................................................................................................................... 24 64�,��;= %&���>�����6������3?�����@A ............................................................................................................................ 25 64�B��;=%C�8�>������������A ................................................................................................................................................ 26 14.9. COUNTSTR (fragmentas, seka) ................................................................................................................................. 26 14.17��D&(&(E%��>�����?�����@A ...................................................................................................................................... 26 64�66��$CFD�>�����������A .................................................................................................................................................... 27 64�63��1)8(C$E�>������������?�����@A.................................................................................................................................. 27 14.13. LINEIN ([šaltinioid][,line][,kiekis]).......................................................................................................................... 27 14.14. LINEOUT ([šaltinioid][,[seka][, pozicija]]).............................................................................................................. 29 14.15. LINES (eilutesid[, raktas]) ........................................................................................................................................ 30 14.16. STREAM (streamid[,option[,command]]) ................................................................................................................ 31 14.17. SUBWORD (seka[,startas[,ilgis]])............................................................................................................................ 33 64�6B�� &��>����:���6?�����:���3@���A.................................................................................................................................. 34 64�6-�� CF�>����:���6?�����:���3@���A ................................................................................................................................... 34 64�37��8C"F�>����:���A ......................................................................................................................................................... 34

���������� .................................................................................................................................................................................. 34

Page 4: Kulvietiene_zapolskiene Mokomoji Knyga

4

������

REXX (Restruktured Extended Executer) -������ ����������������������� �������� ����������������������� ��������� ���������������������� � �� ���� ���� ����%� ���������������������������������������� ����� ���������������������������������st������������������������������������� � ����

����������6-,-–6-B3�����������Mike Cowlishaw ���CG ��(�������������� ��������� ���� �� �������� �������������������������������������������������išmokstama. Komerciniai ir laisvai platinami jos ���������� ������������������ ����������� ��� ���������������� ����0������� ������������������������������������������������������ ������� ���������>� ������������:����A�

������� �������������� �������������CG �! �� ��������������� �����������������;H���;3����������������6-B7���������������������� �������� ������������������������������ ������������� ���������

��������� ������� ��� ���������������� ��I� !8��!8���=8H3��J��� K�-L��F(��3777���%��MFC�����kitose.

1. REXX programos pavyzdys

������ ���� ���������������������� ����������� �������� ������ ������������; D����������� Tarkime, rinkmenoje 1.CMD yra tekstas: �������������� SAY "Sveikas, as esu REXX!" SAY "Koks tavo vardas?" PULL kas IF kas="" THEN say " Labas, nepazystamasis!" ELSE say "Labas,"kas EXIT !��� ���������������������� ���������� ������ Jei norime prat������ ��������� ��������������������������������>�A� 1������� ������������������ ��� ���� ���� ����������� ��>NA� !���������� ����� ����������������������I

2. �����������������������

REXX programinis vienetas vadinamas pr ��������%� ������������ I • Komentarai, • ������� • Instrukcijos,

!�������������������������� �

Page 5: Kulvietiene_zapolskiene Mokomoji Knyga

5

• OS/2, MS-DOS, WINDOWS arba UNIX komandos, • Priskyrimai (Assignements), • 5�����>Labels), • !�������������� ��

3. Komentarai

0 ������������� ������������������������������ ����������������������0 ������������� ���������������������������������� ���� ��������������I

/ * Cia komentaras */ SAY “ Budekite! ” /* komentaras prasideda vienoje, o baigiasi sekancioje eiluteje */ /* Komentara gali sudaryti keletas eiluciu */

4. ���������������

������������������ ����������������������������������:��I ���� ������������� “ arba kitaip “ "���������������������:������� �����I SAY 'Maryte sake "Jis cia." ' O��� ���������������������������I Maryte sake "Jis cia" "���������� �����������������������C��������� ��������������������������������������������� ����

problemomis: programa,���������������� ��������� ������������������������ ��� ������� ������������ � �� Pvz: SAY " Maryte sake" ""Jis cia"" Programa supras taip : “Maryte sake“, tada ““, paskui Jis cia ir ““. arba SAY "Maryte sake "Jis cia."" Programa supras taip : “Maryte sake “, tada Jis cia ir ““. (������������Jis cia�� ������������������������������������0�����������������������������������������

� ����������������������������������������� ������������1C8����'C&��D��� ��� ��� ���� �����������������������I Maryte sake JIS CIA

5. Instrukcijos

5.1. Instrukcija EXIT

O��� ������������������� ����� �������� EXIT HM������� ����� ��������MH�

5.2. Instrukcija SAY

SAY reiškinys

Page 6: Kulvietiene_zapolskiene Mokomoji Knyga

6

F��� ���������������������������������������������� ��������� Pvz.: SAY 5+6 ”=vienuolika” Ekrane pamatysite: 11= vienuolika

5.3. Instrukcija PULL

PULL v F��� ����������� � ������������������������������ �� Pvz.: /*PULL naudojimas*/ SAY ‘Ivesk failo pavadinima ! ‘ PULL vardas /* informacij�������������������������������� nepriklausomai nuo to, kaip buvo ivesta*/ SAY vardas EXIT

5.4. Instrukcija PARSE PULL

PARSE PULL v, :�����–������������������������� %������������ ���������������������������������������������������� ����������������������������������

������������������������ ������ �� Pvz.: /* PARSE PULL naudojimas */ SAY ‘Tu dar cia?’ SAY ‘Pamiršau tavo varda. Koks jis?’ PARSE PULL: vardas SAY vardas “ , ar eisi i Operaciniu sistemu paskaita ? “ PULL ats IF ats= ‘TAIP’ THEN SAY ‘Tai iki! ‘ IF ats= ‘NE’ THEN SAY ‘ Na, tai ir as neisiu’ EXIT Ekrane matysime:

Page 7: Kulvietiene_zapolskiene Mokomoji Knyga

7

6. Komandos

��LL�� ����� ���������������� ��� �� ��������������� ������� ������ ������� ���� ��������komandos.

Pvz.: /* Komandu panaudojimas*/ SAY „Failo hello.cmd turinio�������������������� TYPE hello.cmd EXIT

7. Priskyrimai

%��������������������������� �������������������������������� Kintamasis = reiškinys 0����� � ��������������������������������������� ��I A,B,C,D,E,F,…………1,2,3,….!?_ 0����� � ���������������������� gramos vykdymo metu. num1=10 num1= num1+3 work =’building 021’ ������������ ����������� ������I LIST = 2 20 40 SAY LIST EXIT Ekrane matysime: 2 20 40 1�����������������������������������������������I SAY list C��������������������� � ������I LIST

Page 8: Kulvietiene_zapolskiene Mokomoji Knyga

8

T����������� ������������������������������� ����� ���������I /*priskyrimai*/ a=4 SAY a b="def" SAY a b EXIT Ekrane matysime:

0��������������������������������� ���8&E���������� ���������������������������������I /* kitas pavyzdys*/ the='NO' SAY Here is the person I want to meet EXIT !�������������� �����������������������I

8. Aritmetika

&������������������ ������ ��� ����������������:���������1�������� �������������� ������������������� �, ��������������������� ��������������������������������=������ �������������� ������������� ���I

+ -��������� - - atimtis, * - daugyba, / - dalyba, // - operacijos rezultatas bus dalybos liekana, % - operacijos rezultatas bus dalybos sveikoji dalis. Pvz.: /*Aritmetikos naudojimas*/ SAY 4+2 /*sudetis */ SAY 7/2 /*dalyba*/ SAY 7//2 /* isskiria liekana */

Page 9: Kulvietiene_zapolskiene Mokomoji Knyga

9

SAY 7%2 /* isskiria sveika dali*/ EXIT Ekrane matysime:

9. �� ����

5����–������ �����������������>IA 5�������� � �������� ������������������ ��� ��� ����� ����������������������������� �����aldymas

komandomis SIGNAL arba CALL iškviesti. Pvz.: IF problem = ‘ yes’ THEN SIGNAL error ... error: SAY ‘ neteisingi duomenys’ EXIT

10. !��������������������"��

10.1. Instrukcija IF ... THEN

IF reiškinys THEN Instrukcija 1 ELSE Instrukcija 2 Ši instru���������������������� ����� ���������������� �(<�F�����������������������������%����������������

���� ���� ����� ����������������� ���8�I IF ats = ‘ yes ‘ THEN SAY ‘ OK! ‘ ELSE SAY ‘ WHY NOT ? ‘ 1�������� �� �������������������������������������������������� ��������������� ��� ���C�����������

grupavimas atliekamas, naudojant operatorinius skliaustus DO…END: DO Instrukcija 1 Instrukcija 2 ... END Pvz.: /* IF- THEN – ELSE -taikymas */

Page 10: Kulvietiene_zapolskiene Mokomoji Knyga

10

SAY “ Ar eisi i diskoteka” PULL ats IF ats =’TAIP’ THEN DO SAY ‘ Gerai, as tave susirasiu’ SAY ‘ Palauk manes.’ END ELSE SAY ‘Kaip nori, as tai eisiu’ EXIT

10.2. Instrukcija SELECT

������������������������������� ��������������1������ ������������J<�F��(<�F���FD��������ais su OTHERWISE.

�FD���� � �8���;(�������������� SELECT WHEN reiškinys 1 THEN instrukcija 1 WHEN reiškinys 2 THEN instrukcija 2 ... WHEN reiškinys n THEN instrukcija n OTHERWISE Instrukcija 1 Instrukcija 2 ... Instrukcija m END '���n , m – bet kokie sveikieji teigiami�����:����� C��������� ��8���;(���������������������� ������������I

Page 11: Kulvietiene_zapolskiene Mokomoji Knyga

11

8���;(����������� ���������������� �������� ���� �����������������D=P�FDI SELECT WHEN reiškinys THEN DO Instrukcija 1 Instrukcija 2 ... END

SELECT

WHEN

Reiškinys

TRUE

FAL

SE

WHEN

Reiškinys

2

TRUE

FAL

SE

OTHERWISE

Instrukcija 1

Instrukcija 2

Instrukcijos

END

THEN

THEN

Instrukcija n Reiškinys

TRUE

FALSE

Page 12: Kulvietiene_zapolskiene Mokomoji Knyga

12

(����������� ��������������� ����� ���������I ��������������������� SAY ' Kelinta siandien savaites diena? ' PULL diena SELECT WHEN diena = 1 THEN SAY ' Susitikimas su Rita 18 val.' WHEN diena =2 THEN SAY " Operaciniu sistemu paskaita " WHEN diena = 3 THEN SAY 'Einu i kino teatra "Vingis"' WHEN diena = 4 THEN SAY " Pasiimti konspekta is Tomo " WHEN diena = 5 THEN SAY " vaziuoju namo " OTHERWISE SAY " Savaitgalis ! " END EXIT

SELECT

WHEN

Reiškinys

TRUE

DO

Instrukcija 1 Instrukcija 2 ...

END

AL

SE

END

Page 13: Kulvietiene_zapolskiene Mokomoji Knyga

13

!���������� �������������������������������������������������������������������I

11. True ir False operatoriai

O��� ���� �������� � � ���� ��������� ����������� ����� ������������ ������� �����������I > - daugiau, < -�������� = - lyginimas arba priskyrimas. =���� ������������I� True = 1 False = 0 Pvz.: 5>3 → 1 2.0=0.02 → 0 322>421 → 0 Galime taip lyginti ir tekstines reikšmes Airmail<airplane → 1 *Q+������������������������– priskyrimo ir lyginimo (santykio). Pvz., jei vykdysime šias instrukcijas: /*Priskyrimo ir lyginimo pavyzdys*/ m=5 /* priskyrimas */ SAY m=5 /* lyginimas */ Ekrane matysime: 1

Page 14: Kulvietiene_zapolskiene Mokomoji Knyga

14

0�������������������� ����������� ���������� ����������I /*Kitas pavyzdys. Nustato, ar teisingas reiškinys */ a = 4 b =2 c = a>b SAY 'Loginis reiskinys' a '>' b 'yra ' c EXIT Ekrane matysime : Loginis reiskinys 4>2 yra 1

12. Loginiai operatoriai (not, and, or)

� ������� ���� ������������ ��� ��� �������������������������������������������6������7�>(���������$���A�� NOT (¬ arba \�A����:�����������(����>6A�⇔$����>7A��������������:���I Pvz.: SAY \ 0 → 1 SAY \ 1 → 0 SAY \ (4=4) → 0 SAY \ 2 → �� ������������������ AND ( & ) Pvz., SAY ( 3 = 3 ) & ( 5 = 5 ) SAY ( 3 = 4 ) & ( 5 = 5 ) OR ( ) arba ( | ) kodas ( 124 ) Pvz.: SAY (A>B)|(C>D) ����������������������6����������������������������������

13. Ciklai

Ciklas –��������� ���������������������������� ��������� ���������:��������������� ��� ��������� � ��ar nevykdomos nurodytos����� ��

;������������������ �������>repetitive loopsA��������������>conditional loops)

13.1. Kartotiniai ciklai

D=�����:���������������� Instrukcija 1 Instrukcija 2 ... END Pvz.: �������� ��������������� ��� DO 5 SAY "Thank you" END EXIT Ekrane matysime:

Page 15: Kulvietiene_zapolskiene Mokomoji Knyga

15

0��� �������������������������� ���������������� ����������������������� ���������� ������� DO n = a to b ( arba DO n = a to b by c) Instrukcija 1 Instrukcija 2 ... END '�� n – ciklo kintamasis, a –���� ������� � ���������������� b –���� ������� � ����������������� c –������� � ������ ���������� Pvz.: /*su ciklo kintamaisiais*/ sum=0 DO n=1 to 7 SAY 'ivesk skaicius' PULL sk sum=sum+sk END SAY 'Tavo skaiciu suma =' sum EXIT !���������� �������, ekrane matysime:

Page 16: Kulvietiene_zapolskiene Mokomoji Knyga

16

13.2. !� ������������

DO WHILE REIŠKINYS Instrukcija 1 Instrukcija 2 ... END '�����CO0CFE8�–� �����������������!���������������������������������������1����������� �������� � ��

������� ������������ ��

Pvz.: /*Ciklas Do While*/ SAY 'Kiek turi pinigu ?' PULL stip isl = 0 SAY 'Tu esi parduotuveje, ivedinek prekiu kainas po viena ' DO WHILE isl<stip /*Šis ciklas bus vykdomas, kol kintamasis ‘isl’ netaps neigiamu*/ SAY 'Kiek kainuoja preke ?' PULL k Isl= isl + k END SAY 'Stop ! Pinigai baigesi' EXIT Ekrane matysime:

DO WHILE

REIŠKINYS

FAL

SE

TRUE

Instrukcija 1 Instrukcija 2 ...

END

Page 17: Kulvietiene_zapolskiene Mokomoji Knyga

17

DO UNTIL –�����������������������������������������������ga tikrinama ciklo pabaigoje.

DO UNTIL

Instrukcija 1 Instrukcija 2 ...

TR

UE

FALSE

END

Reiškinys

Page 18: Kulvietiene_zapolskiene Mokomoji Knyga

18

8�������I DO UNTIL REIŠKINYS Instrukcija 1 Instrukcija 2 ... END

13.3. !� ���������"������������ ����������������#���baigti ����.

!���������������������&!��������������� �������������������������:��� ����� � ���� ������ ��(END).

Pvz.: /*LEAVE panaudojimas */ SAY 'Kiek turi pinigu? ' PULL suma SAY 'Turi' suma 'Lt.' Isl = 0 DO UNTIL isl>suma SAY 'ivesk prekiu kainas arba zodi "gana", jei daugiau nepirksi.' PULL kaina IF kaina= 'GANA' THEN LEAVE Isl= isl + kaina END SAY 'isleidai' Isl 'Lt.' SAY ' Viskas! ' EXIT !���������� ����������������������I

Page 19: Kulvietiene_zapolskiene Mokomoji Knyga

19

13.4. $���������������%���������"�������

Pvz.: /* DO FOREVER ir LEAVE panaudojimas */ sum = 0 DO FOREVER SAY 'Ivesk skaicius, kuriuos nori susumuoti, arba zodi"stop" '. PULL n IF n= 'STOP' �����!"#��$%&�������������� �������'���� Sum=sum+n END SAY 'Sum =' sum EXIT

13.5. Ciklo nutraukimas su CTRL+BREAK

!����������� ����������� �������� Pvz.: ��%������� ����������� DO UNTIL ats = 'SEZONAS' SAY 'Ivesk slaptazodi' PULL ats END SAY 'Atspejote' EXIT Ekrane matysime:

Page 20: Kulvietiene_zapolskiene Mokomoji Knyga

20

F�������������� ��� ��� �����������������������������;(��RG��&0�

14. &������������'����"��

!���������XX funkcijos -������ ����� ������������:� ��������������������:� ����������������()�F��!��� � ����������������������������� ����� ��������%� ���� ���� ������ ����������� ����C(��������:��� ������ ���������� ����������������������� ������������:���t jas instrukcija CALL.

'����������� ����� ������������LL�$������ ������������������ !������������������� ������ ��� � vykdant priskyrimus bei kitas instrukcijas��1���������� �����������

������ ��� ����������� ������ ���������������

14.1. ABS (num)

Patei��������� �� ��������� ���:� �num���� ��:�������������� :��I num -���������������������������������� ������� � �����������������:���� ��������������� ������ ���������������������������������������%�������������������� ���-�������������

skaitmenys: ABS (-42) → 42 ABS (100) → 100 ABS (4-12) → 8 ABS (-100000002.45) → 100000002 ABS (5987461234657.14) → 5.98746123E+12

14.2. ADDRESS ()

%�� � ����� ��������������������������������������:��� ��� ���� �� ADDRESS () → UNIX /* Ga���MH

Page 21: Kulvietiene_zapolskiene Mokomoji Knyga

21

14.3. ARG ([argumentonr[,param]])

%�� � ���� ���������������� � ��� ����� ���������������������$��������������������������������������������������� �����:�����

Argumentonr����������������������������is�����:�������������� � ��������� ����������������kcijos kvietime. Jei nurodytas tik argumentonr���� ���������� ����������������������������%����jam argumentui priskirtas 1.

Jei argumentonr���������������������������������>�������������������������argumentonr yra didesnis �������������������:���A��������������:����������

Jei param taip pat nurodytas, tuomet funkcija����������� �����������6������7������� ������ ����� ���������������� �� �������� ������������������� �������������������8��� ����������I

[O] (Omitted) -���������������6���������������������������������������������������������0�����������išveda 0.

[E] (Existing) -����������������6�������������������������������������������0������������������7� 1�������:��������I CALL FUNCTION 'This is', 'a', , 'test', , funkcijos &�"��������������� �� �I ARG () → 4�HM��� ���������������������MH ARG (1) → 'This is' ARG (2) → 'a' AGR (3) → ' ' ARG (9) → ' ' /* devintas parametras neegzistuoja*/ ARG (2, 'E') → 1 ARG (2, 'O') → 0 ARG (3, 'E') → 7�HM����:����������������������stas */ ARG (9, 'O') → 1 Pvz.: Tarkime, rinkmenoje ARGUM.CMD turinys yra: ���( ����) ���' �����������*���������� say say argumentu suma sum(1,2,5,7) exit sum: say 'Nurodytu argumentu kiekis' arg() do i=1 to 4 say 'arg('i')' arg(i) end s=arg(1)+arg(2)+arg(3)+arg(4) return s

Page 22: Kulvietiene_zapolskiene Mokomoji Knyga

22

!������������ ����������������I

14.4. CHARIN ([šaltinis][,[start][,ilgis]])

Ši funkcija bendruoju atveju nuskaito simbolius iš šaltinio��������������������������������������� ���������� Parametras šaltinis���� � ���������������� ���������� ������� �����1������������������������ ������

������������������� ����������������������������������������� Parametras start���� � ����� � �������������������� ����� ������������������������%�����������������

start , skaitymas vyksta nuo pirmo dar neperskaityto simbolio. Parametras ilgis nurodo,���������� �������������� ����%�������������������������� ��������������� ��� %����������������������� ����\tmt\file.txt turinys yra ‘Tai yra tekstas’. Tokiu atveju funkcija CHARIN

������s: CHARIN () → 'F' HM�"����MH CHARIN ( , , 6 ) → 'Foobar' HM�"����MH CHARIN ('\tmt\file.txt’, , 6) → 'Tai yr' Pvz.: Tarkime, rinkmenos CHARINAS1.CMD turinys yra: /* CHARIN naudojimo pavyzdys*/ SAY"ivesk failo pavadinima" PULL fail n=chars(fail) SAY faile fail yra n simboliu SAY 'Nuo kelinto simbolio pradesim skaityti?' PULL i SAY 'Kiek simboliu skaitysime?' PULL k simb=charin(fail,i,k) SAY simb Exit Rinkmenoje D.DAT yra tekstas ‘Labas, cia as’ !�������������� �����������������������I

Page 23: Kulvietiene_zapolskiene Mokomoji Knyga

23

14.5. $()�*+��,-���������.- -����.- �����../

G����� �������������������������������������šaltinioid, pradedant pozicija start. Jei šaltinioid��������� ���������������� ��������������������������������������������������������1�����start nenurodytas, ��� ��������� ������ ������������������ ���������� ���������$������������������������������ ���������

CHAROUT (, 'Foobar') → '0' CHAROUT (outdata, 'Foobar') → '0' CHAROUT (outdata, 'Wow', 5) → '0' Pvz.: Tegul rinkmenos CHAROUTAS.CMD turinys yra: /* CHAROUT naudojimas*/ SAY irasymas i faila SAY Iveskite failo pavadinima PULL fail SAY 'Iveskite duomenis' PULL eil z=charout(fail,eil) SAY 'Liko neirasyti' z 'simboliai' SAY 'failo ' fail 'turinys' TYPE fail EXIT !�������������� �������������������sime:

O�� ����������� ������������������������D) &8�D&(��1������������� ���������������� ����������������

�������� ��������������� ������������ ��������� Pvz.: Rinkmenos charout1.cmd turinys:

Page 24: Kulvietiene_zapolskiene Mokomoji Knyga

24

/* CHAROUT naudojimas*/ SAY irasymas i faila SAY Iveskite failo pavadinima PULL fail SAY 'Iveskite duomenis' PULL eil z=charout(fail,eil,4) SAY 'Liko neirasyti' z 'simboliai' SAY 'failo ' fail 'turinys' TYPE fail EXIT !�������������� ������,���� ����������� ��������� ��F&)1&8�D&(����������������������������I

O�� ����������� ������������������F&)1&8�D&(�������� ����������� �������������������avi������������

��������4� ������������������������������ ��������� ����� ������� ����� ���1�������:���� �������������������� ������������������ ���:������������D) &8�D&(���������� ������������������������������� �4�pozicijos:

14.6. CHARS ([šaltinioid])

C���������� �������:�������������� �������šaltinioid������������������������ ������������šaltinioid nenurodytas.

CHARS () → '1' /* more data on def. input stream */ CHARS () → '0' /* EOF for def. input stream*/ CHARS ('outdata') → '94' HM�"����MH Pvz: /* charin ir chars naudojimas*/ Say "ivesk failo pavadinima" pull fail n=chars(fail)

Page 25: Kulvietiene_zapolskiene Mokomoji Knyga

25

SAY 'Faile' fail 'yra' n 'simboliu:' do i=1 to n a=charin(fail,,1) say i "simbolis yra " a say 'Liko dar' chars(fail) say end exit Vykdydami������ �����������������������I

14.7. $*01)���,����2 ����3- ����./

Ši funkcija palygins dvi eilutes �� ��+ bei �� ��,�������������������������:��������������7������� ��������� ����������������������������� � ������������ �� ��������������������������������1������������������� � ���� ���������������������������� ����� �� ���� ���� ��������� ����� ���������� �� ������� �������������� ����������������������� �������� ���1������� �������� ������������������� ������������ ����������

COMPARE ('FooBar', 'Foobar') → '4' COMPARE ('Foobar', 'Foobar') → '0' COMPARE ('Foobarrr', 'Fooba') → '6' COMPARE ('Foobarrr', 'Fooba', 'r') → '0'

Page 26: Kulvietiene_zapolskiene Mokomoji Knyga

26

14.8. $*1��!�,���� ������/

Išveda eilut�������������� �kiekis������������ ���� �����Kiekis�������������������������������������:�����(���� ������� �������� �������������

COPIES('Foo', 3) → 'FooFooFoo' COPIES('*', 16) → '****************' COPIES('Bar ', 2) → 'Bar Bar ' COPIES(' ', 10000) → ' '

14.9. COUNTSTR (fragmentas, seka)

Išveda nurodyto fragmento fragmentas��������������������seka������� COUNTSTR(' ', ' ') → 0 COUNTSTR('a', 'abcdef ') → 1 COUNTSTR(0, 0) → 1 COUNTSTR('a', 'def ') → 0 COUNTSTR('a ', ' ') → 0 COUNTSTR(' ', 'def ') → 0 COUNTSTR('abc ', 'abcdef ') → 1 COUNTSTR('abcdefg ', 'abcdef ') → 0 COUNTSTR('abc ', 'abcdefabccdabcd ') → 3

14.10. 4)�)�51��,����- �����./

8����������������������������������� ���������� ���S�� ��������S��C��������������TF) T������������������� ����������������:�����0�����������������T;<&�T��1������ ���������������������������������������������������nurodyto tipo. tipas����������S6S������S7S������� ������ �� ������������������ ��� ��� ���������"��� ��������� �tipas���������:

A – (AlphanumericA������������ �������������������� ����>����� �� ����H�������� �� ��������A����skaitmenys.

B – (BinaryA������������ �����������������������������7����6� L – (LowerA������������ ���������� �� ����������������� M – (MixedA������������ ��������������������>����� �� ����H�������� �� �A� N – (NumericA������������ ��������������������:���� S – (SymbolicA������������ ����������������������� ����–�����������������������������U��V������������ U – (UpperA������������ ���������� �� ����������������� W – (WholeA������������ ���������������:����������������������������������������69�7���������������

����:����������� ������69�R6��������������������:������������������������������� ����������697����H������.� X - (Hexadecimal) eilut������� ��������� �������������� ������������������&-$�>����� �� ����H�������� �� �A�

ir skaitmenys 0-9. DATATYPE (' - 1.35E-5 ') → 'NUM' DATATYPE (' 1E999999999 ') → 'CHAR' DATATYPE (' 1E9999999999 ') → 'CHAR' DATATYPE (' !@#a&#$(*%` ') → 'CHAR' DATATYPE ('FooBar', 'A') → '1' DATATYPE ('Foo Bar', 'A') → '0' DATATYPE ('010010111101', 'B') → '1' DATATYPE ('0100 1011 1101', 'B') → '0' DATATYPE('foobar', 'L') → '1' DATATYPE ('FooBar', 'M') → '1' DATATYPE ('A_simbolis?', 'S')

Page 27: Kulvietiene_zapolskiene Mokomoji Knyga

27

14.11. FIND ,���� '��6�/

���������� ������� ���� �� �������� ��*��-���������� ��� �������������������� ��� ����������������� ����� ����������������� �����1�����������������������������7�

FIND(‘Labas, cia as’,’cia as’) → 2

14.12. �+!��75�,���� ������- ����./

Formu ����������������� ��� ����������ilgis���� ������������������� �� ������������ ��� ����������� ��, ir ������ ��� �������������������������� ���������

Parametras simb ��� � ����� �������� ������������������������ ������1���simb nenurodytas, tai bus tarpai. JUSTIFY (‘Ten javai linguoja’, 14) → ‘Ten javai’ JUSTIFY (‘Ten javai linguoja’, 20) → ‘Ten javai linguoja’ JUSTIFY (‘Ten javai linguoja’, 20,’+’) → ‘Ten++javai++linguoja’

14.13. LINEIN ([šaltinioid][,line][,kiekis])

"����������������������������������� ��šaltinioid����������������� ������� ��������� ������šaltinioid nenurodytas.

Parametras line���� � ������������������������������������������������������� ����1���line nenurodytas, skaitoma pirm ����������������������

Parametras kiekis���������������������6������7����������6�>�������� �������� �������������������� ���kiekis ����� �����A�������������������������������������������7�� � ����������������������:����������O�� �������������buvo nurodyta line, atliekamas skaitymo pozicijos nustatymas ties nurodyta eilute.

1������������� ��� �šaltinioid��������� ��������������������������������� ���( ��������������� ������������ ���� ����������������������������,������������������� ������������������

Pvz.: Tarkime, rinkmenos D.DAT turinys yra: Pirmos eilutes duomenys Antros eilutes duomenys Trecios eilutes duomenys Rinkmenos LINEIN.CMD turinys yra: /* ivedimas is failo eilutemis*/ SAY'Iveskite egzistuojancio failo pavadinima' PULL file eil=LINEIN(file,3,1) /* 3-cia eilute*/ SAY eil /* skaitymo pozicionavimas ties 1-ma eilute*/ SAY LINEIN(file,1,0) SAY LINEIN(file) exit !�������������� �����������������������I�

Page 28: Kulvietiene_zapolskiene Mokomoji Knyga

28

Pvz.: Rinkmenos duom.txt turinys:

LINEIN.CMD rinkmenos turinys yra: /*LINEIN naudojimas*/ SAY SAY 'Isvedu trecia, po to antra eilutes.' SAY SAY LINEIN(duom.txt,3,1) SAY LINEIN(duom.txt,2) SAY SAY 'Isvedu pirma eilute su treciu parametru lygiu 0.' SAY LINEIN(duom.txt,1,0) SAY SAY 'O dabar visas is eiles.' SAY DO n=1 TO 4 SAY LINEIN(duom.txt) END SAY SAY 'Ivesk norimo paziureti failo varda.' SAY 'Kad programa butu vykdoma toliau, uzdaryk iskviesta faila.' LINEIN() SAY SAY 'Ir vel trecia eilute.' SAY LINEIn(duom.txt,3) EXIT !���������� ����� ����������������������I

Page 29: Kulvietiene_zapolskiene Mokomoji Knyga

29

14.14. LINEOUT ([šaltinioid][,[seka][, pozicija]])

Ši funkcija���������������������� �����šaltinioid�>����� �� �����A�������� ���� �������������:���seka. Jeigu pozicija nenurodyta, o sukurta šaltinioid rinkmena dar �������:������� ������a����� �����������������0���šaltinioid���������:������� ������������ ��������������������������

1����� ���������� ����������������������šaltinioid�����:��������������:������������� ������������ �������� ������������������� ��������������:� ��������������������� ���0��� ���������� �������������������šaltinioid ���������������:������� ������������ �������������:���������

Kai šaltinioid ����� ���������� ��������������������������>�������������A� 1������� ������������������������������������������������������������7��1��������� ����� ���������:���

�����������������������������������������������6� Pvz.: /*LINEOUT naudojimas*/ y=LINEOUT(,'isvedama i ekrana eilute') /* nenurodytas saltinis, todel eilute bus isvesta i ekrana*/ SAY LINEOUT(duom.txt,'111111111') /*Irasoma pirma eilute*/ SAY LINEOUT(duom.txt,'222222222') /*Irasoma antra eilute*/ SAY LINEOUT(duom.txt,'333333333') /*Irasoma trecia eilute*/ SAY LINEOUT(duom.txt,'444444444',2) /* Perrasoma antra eilute ir istrinamos visos zemiau esancios eilutes*/ SAY LINEOUT(duom.txt,'555555555') /*Irasoma trecia eilute*/ SAY LINEOUT(duom.txt,'sesta',6) /* Nors pozicija nurodyta 6, irasoma ketvirta eilute*/ EXIT Pro������������������������� ���L������� ������������� � ����I

Page 30: Kulvietiene_zapolskiene Mokomoji Knyga

30

%� ��������������������������� ������������� ��I

14.15. LINES (eilutesid[, raktas])

Ši funkcija išveda rinkmenoje, nurodytoje eilutesid, ����:������:�������:������������������� ��������������� ��������������������:���

Funkcija turi du raktus: [C] -�������:�� ������ ��������������������������������:��������������������������������������������

����:���� [N] – rodo,����������� ��������������������������������:����������������������6������7��Rezultatas 1, kai

yra,����7������������O������������������������������� Pvz.: /*LINES naudojimas*/ d = 'c:\sendisk\regina\darbinis\d.txt' SAY SAY "Failo pirmos eilutes turinys" SAY SAY LINEIN(d,1) SAY n=LINES(d,c) SAY "Faile liko nenuskaitytu" n "eil." SAY SAY "Failo likusiu eiluciu turinys:" SAY Do WHILE LINES(d) > 0 line = LINEIN(d) SAY line END EXIT ������� ������� ����� �����������������������������I

Page 31: Kulvietiene_zapolskiene Mokomoji Knyga

31

!���������� ����������������������I

14.16. STREAM (streamid[,option[,command]])

Ši funkcija skirta operacijoms su srautais (rinkmenomis). streamid����������� ������ ������ ��������,���������������������rinkmenos pavadinimas. option���� � ���������������� �������I [C] –������������������� ��������������������� ������������:����������������command, kuris nurodo, kokia

� �������������������� ����0 ���� ���������������� ��� �������� ������� ��������������"CF&������� ��� [D] -�������������� ����� ��� �streamid�������� ������� [S] -�������������� �streamid������ ������������- ERROR, NOTREADY, READY arba UNKNOWN. command���� � �� ����:���� �������������������� ������ � �����������I [READ] –������� ��������������t���&��������� ���� ������������������� ������� ������������ ������

skaitymo operacijos. Komandos READ vietoje galima naudoti OPEF���&D�� ������ [WRITE] –������� ��������������ti���� ���� �� �������� ��������������� ������� ����1�����������

������ ��������������������!��� ��� ���� ��J�C(������������ ���=%�F�J�C(��� ������ [APPEND] –������� ��������������ti, pozicionavimas - rinkmenos pabaigoje. Vietoj jos galima naudoti

=%�F�J�C(��&%%�FD�� ������ [CREATE] – atidaro �������� rašyt��� ���� �� �����rinkmenos���������!��� ��� ���� ��;��&(��������

���� ���=%�F�J�C(����%�&;��� ������ [CLOSE] –������ ��������>��������A� [READABLE] –���������6����������������������������������������������������������7� [WRITEABLE] –���������6���������������������������������������������������������������7� [QUERY] –������������ ��������������� ���������������1������ ����������������������� ������������

���:����������0 �������������� �������komandas: EXISTS –���������������� ��� ��������� ��������������� SIZE –���������������� ����������� �����

Page 32: Kulvietiene_zapolskiene Mokomoji Knyga

32

DATETIME –������������ ��� ��������� ������������� ��������� ���������������� ����u MM-DD-YY HH:MM:SS.

[OPEN] –������� ������������� �������e�������1����e����������� �����������������������������=%�F�G=(<����������������������� �������� ����������� ���������� ���� �� ������������ ����������0�����������I

READ – skaitymas, pozicija –�������� ��������� WRITE – rašymas, pozicija – rinkmenos pabaiga. WRITE APPEND – rašymas, pozicija – rinkmenos pabaiga. WRITE REPLACE – rašymas, pozicija –�������� ��������� 8����������� ������������������������8(��& ���������������������?6@. Pvz.: /*STREAM naudojimas*/ say say d = 'c:\sendisk\regina\darbinis\duom.txt' IF STREAM(d,'c','QUERY EXISTS') = "" /* Ar egzistuoja? */ THEN SAY d 'failas bus sukurtas' ELSE DO SAY d 'failas egzistuoja. ' SAY 'Jis bus istrintas ir vel sukurtas' 'erase ' d END CALL LINEOUT( d, 'REXX YRA PUIKU') CALL LINEOUT( d, 'AS MEGSTU REXX') CALL LINEOUT( d, 'AS NAUDOJU REXX VISOSE SAVO PROGRAMUOSE') CALL STREAM d,'C','CLOSE'/*Jei noriu toliau dirbti su d failu, reikia ji uzdaryti */ SAY SAY "Naujai sukurto failo turinys" /*Do While LINES(d) > 0*/ /*arba*/ DO i=1 UNTIL LINES(d)==0 l = LINEIN(d) SAY say l end CALL STREAM d,'C','CLOSE' SAY SAY SAY "ivesk norimo redaguoti failo varda" LINEIN() EXIT !���������� ����������������������I

Page 33: Kulvietiene_zapolskiene Mokomoji Knyga

33

14.17. SUBWORD (seka[,startas[,ilgis]])

O�������������������������� ������ �������:� ������ ��� ����� �����sekoje, pradedant nuo start >���������������������������������������������:���A��1���� ilgis >���������������������������������������������:���A�����nurodytas, išrenka ilgis�� ����� ������ ������ ���������:����%��������������ilgis���������������������� ��

(��������������������� ������������������� ��������������� ��I

8�����������LL���������� Pvz.: /* dvieju tiesiniu lygciu sistema ir darbas su failais */ say 'spresim lygciu sistema:' say 'ax+by=c' say 'dx+ey=f' echo. say n=chars(duom.txt) e1=charin(duom.txt,,n) say 'radau koeficientus' say e1 say say 'spausk bet koki klavisa' say 'pause>nul' d=subword(e1,1,1)*subword(e1,5,1)-subword(e1,2,1)*subword(e1,4,1)

Page 34: Kulvietiene_zapolskiene Mokomoji Knyga

34

if d\=0 then signal testi do say 'determinantas =o, sprendinys neapibreztas' signal pab end testi: dx=subword(e1,3,1)*subword(e1,5,1)-subword(e1,6,1)*subword(e1,2,1) dy=subword(e1,1,1)*subword(e1,6,1)-subword(e1,4,1)*subword(e1,3,1) say 'd='d 'dx='dx 'dy='dy say say 'x=dx/d y=dy/d' say ax=dx/d; ay=dy/d say "x="ax "y="ay pab: exit !���������� ����� ����������������������I

14.18. 0)��,����#��2- ����#��3.���/

C������� �����:�������� ������������:�������� ������������������������

14.19. MIN (skai#��2- ����#��3.���/

C������� �����:�������� ������������:�������� �����������������������

14.20. !�89�,����#��/

Išveda -6��7��6������� ������ �� ���������:�����������������������������, ar teigiamas.

:���������

1. Christensen A. The Regina REXX Interpreter. Norvegan Institute of Technology University of Trondhein. 2000. 176 p.

2. Regina REXX. http://regina-rexx.sourceforge.net 3. WIKIPEDIA. The Free Encyclopedia. http://en.wikipedia.org/wiki/REXX 4. The REXX Language Association. http://www.rexxla.org

Page 35: Kulvietiene_zapolskiene Mokomoji Knyga

35

���������������� ������������������ �;1:�!��9���*0)94�9���):<)����� Mokomoji knyga ������ ������0��������� 2005 10 03. 4,5 apsk. leid. l. Leido Vilniaus Gedimino technikos universiteto leidykla „Technika“, 8������� ����66���(-10223 Vilnius-40