Personal tools
Document Actions

odra.12 sortscan?

by Paul McJones last modified 2019-05-20 16:52

AUTOR: FELIKS KLUZNIAK TREESORT

* * * AUTOR: FELIKS KLUZNIAK * * *.


* * *  TREESORT  * * *.
-AJOP(".",1,"X'(X'X)")!

*TWORZENIE DRZEWA I SORTOWANIE.
+SORTUJ -TWORZENIE(*TREE).

+TWORZENIE(*DRZEWO)-CZYTANIE(*SLOWO) -/
   -UMIESZCZENIE(*SLOWO,*DRZEWO,*NOWEDRZEWO)
   -TWORZENIE(*NOWEDRZEWO).
+TWORZENIE(*DRZEWO) -LIGNE -SORM(" WYNIK SORTOWANIA ")
   -LIGNE -WYPISANIE(*DRZEWO) -LIGNE.

*CZYTANIE SLOWA.

+CZYTANIE(*SLOWO) -SUPP(+(WCZYTANE).NIL) -/-IMPAS.
+CZYTANIE(*ZNAK.*RESZTA) -LUB(*ZNAK)
   -NIEKONIEC(*ZNAK) -/ -CZYTANIE(*RESZTA).
+CZYTANIE(NIL).
+NIEKONIEC(^) -AJOUT(+(WCZYTANE).NIL) -/-IMPAS.
+NIEKONIEC(*ZNAK) -ROWNY(*ZNAK.NIL,",") -/-IMPAS.
+NIEKONIEC(*ZNAK).

+ROWNY(*X,*X).

* UMIESZCZENIE SLOWA W DRZEWIE.

+UMIESZCZENIE(*SLOWO,D(*LEWE,*SLOWO,*PRAWE),
                                   D(*LEWE,*SLOWO,*PRAWE) )-/.
+UMIESZCZENIE(*SLOWO, D(*LEWE,*WIERZCHOLEK,*PRAWE),
            D(*NOWELEWE,*WIERZCHOLEK,*PRAWE) )
   -POPRZEDZA(*SLOWO,*WIERZCHOLEK) -/
   -UMIESZCZENIE(*SLOWO,*LEWE,*NOWELEWE).
+UMIESZCZENIE(*SLOWO,D(*LEWE,*WIERZCHOLEK,*PRAWE),
            D(*LEWE,*WIERZCHOLEK,*NOWEPRAWE) )
   -UMIESZCZENIE(*SLOWO,*PRAWE,*NOWEPRAWE).
+POPRZEDZA(NIL,*SLOWO) -/.
+POPRZEDZA(*ZNAK.*RESZTA1,*ZNAK.*RESZTA2)
   -/ -POPRZEDZA(*RESZTA1,*RESZTA2).
+POPRZEDZA(*ZNAK1.*RESZTA1,*ZNAK2.*RESZTA2)
   -INF(*ZNAK1,*ZNAK2).

* WYPISANIE DRZEWA.

+WYPISANIE(ZMIENNACZYLIKONIECGALEZI) -/.
+WYPISANIE(D(*LEWE,*WIERZCHOLEK,*PRAWE))
   -WYPISANIE(*LEWE) -SORM(*WIERZCHOLEK)
   -SORM(",") -WYPISANIE(*PRAWE).
-SORTUJ!
TO,JEST,TEST,SORTU,Z,DRZEWEM^
-SORTUJ!
A,TO,JESZCZE,JEDNA,PROBA^
-SORTUJ!
LITWO,OJCZYZNO MOJA,TY JESTES JAK ZDROWIE,WIELE CIE TRZEBA CENIC,TEN TYLKO SIE D
OWIE,KTO CIE STRACIL,DZIS PIEKNO TWE W CALEJ OZDOBIE WIDZE,I OPISUJE,BO TESKNIE
PO TOBIE,MATKO SWIETA,CO W OSTREJ,ITP,ITP.,0,1,1984,1410,1797,813,1453,QWE,
I TO BY BYLO NA TYLE^




* ANALIZATOR LEKSYKALNY.
-SOP!
-AJOP(".",1,"X'(X'X)" )!
+SYMBOL(*SYM) -LINIA(NIL)
   -NOWALINIA -IMPAS.
+SYMBOL(*SYM) -LINIA(*L)
   -SYNTAXE(SSYMB(*SIM).*R,*L) -MODYF(*SYM,*SIM,*R) .
+NOWALINIA
   -LUB(*Z) -CZYTAJ(*Z,*L) -AJOUTP(+(LINIA(*L)).NIL) .
+MODYF(*SYM,NIL,*R) -/ -NOWALINIA -SYMBOL(*SYM) .
+MODYF(*SIM,*SIM,*R) -AJOUTP(+(LINIA(*R)).NIL) .
+CZYTAJ(*Z,*Z.NIL) -ENTFIN -/ .
+CZYTAJ(*Z,*Z.*CD) -LU(*ZZ) -CZYTAJ(*ZZ,*CD) .
+LINIA(NIL) .
%SSYMB(*SYM) == %SPACJE %KOMENT %SYMB(*SYM) %SPACJE .
%SPACJE == #*S -BLANC(*S) -/ %SPACJE .
%SPACJE == .
%KOMENT == #*N #*G -PARG(*N) -ETOILE(*G) -/
           %RESZTKOM %SPACJE %KOMENT .
%KOMENT == .
%RESZTKOM == #*G #*N -ETOILE(*G) -PARD(*N) -/ .
%RESZTKOM == #*Z -/ %RESZTKOM .
%RESZTKOM == -DIAGN("NIEDOKONCZONY KOMENTARZ") .
+DIAGN(*D) -LIGNE -SORM("******   ") -SORM(*D) -SORM("   ******") -LIGNE
   -/(-(SYMBOL(*X))) -AJOUTP(+(LINIA(NIL)).NIL) -IMPAS.
%SYMB(*TEKST) == #' %CIAGZN(*TEKST) -/ .
%SYMB(NIL) == #' -DIAGN("NIEDOKONCZONY TEKST") .
%SYMB(*IDENT) == #*L -LETTRE(*L) -/ %ALFA(*CIAG)
                 -UNIV(*NAZWA,(*L.*CIAG).NIL) -FILTR(*NAZWA,*IDENT) .
%SYMB(NUM(*N)) == %CALK(*ZAPIS) -/ -UNIV(*N,*ZAPIS.NIL) .
%SYMB(OP(*Z)) == #*Z -OP(*Z) -/ .
%SYMB(=) == #: #= -/ .                           *SYMBOL PODSTAWIENIA.
%SYMB(LE) == #< #= -/ .
%SYMB(NE) == #< #> -/ .
%SYMB(LT) == #< -/ .
%SYMB(GE) == #> #= -/ .
%SYMB(GT) == #> -/ .
%SYMB(EQ) == #= -/ .
%SYMB(KL) == #*N #*K -PARG(*N) -POINT(*K) -/ .   *KWADRATOWY LEWY.
%SYMB(NL) == #*N -PARG(*N) -/ .
%SYMB(KP) == #*K #*N -POINT (*K) -PARD(*N) -/ .   *KWADRATOWY PRAWY.
%SYMB(KR) == #*K -POINT(*K)-/ .
%SYMB(SP) == #*S -BLANC(*S) -/ .
%SYMB(PR) == #*P -VIRG(*P) -/ .
%SYMB(NP) == #*N -PARD(*N) -/ .
%SYMB(*SYM) == #*SYM -/ .
%SYMB(NIL) == .
%CIAGZN('.*CD) == #' #' -/ %CIAGZN(*CD) .
%CIAGZN(NIL) == #' -/ .
%CIAGZN(*Z.*CD) == #*Z %CIAGZN(*CD) .
%ALFA(*Z.*CD) == #*Z -ALFANUM(*Z) -/ %ALFA(*CD) .
%ALFA(NIL) == .
+ALFANUM(*Z) -LETTRE(*Z) -/ .
+ALFANUM(*Z) -CHIFFRE(*Z) .
+FILTR(*N,*N) -*N -/ .                           *SLOWO KLUCZOWE.
+FILTR(*N,OP(*N)) -OP(*N) -/ .
+FILTR(*N,ID(*N)) .
%CALK(*ZAPIS) == %ZERA %CYFRY(*ZAPIS) .
%ZERA #*C == #0 %ZERA #*C -CHIFFRE(*C) -/ .
%ZERA == .
%CYFRY(*C.*CD) == #*C -CHIFFRE(*C) %CYFRY(*CD) -/ .
%CYFRY(*C.NIL) == #*C -CHIFFRE(*C) .
+BEGIN.         +CONST.         +DO.            +ELSE.          +END.
+FUNCTION.      +IF.            +PROCEDURE.     +PROGRAM.       +REPEAT.
+THEN.          +TYPE.          +UNTIL.         +VAR.           +WHILE.
+OP(+) -/ .         +OP(-) -/ .         +OP(/) -/ .
+OP(*G) -ETOILE(*G) -/ .
+OP(DIV) -/ .       +OP(MOD) -/ .
+OP(NOT) -/ .       +OP(AND) -/ .       +OP(OR) .
+TEST -PETLA .
+PETLA -SYMBOL(*SYM) -&(*SYM) -IMPAS .
+PETLA -PETLA .
+&(&) -/(-(TEST)) -IMPAS .
+&(*SYM) -SORT(*SYM) -LIGNE .
+AJOUTP(+(LINIA(*X)).NIL) -SUPP(+(LINIA(*Y)).NIL) -AJOUT(+(LINIA(*X)).NIL) .


-TEST!
BEGIN
  CONST X= -077^
  VAR A,B,C,D: INTEGER^
  IF X >S 003 THEN S:=L^
  WHILE Q(.'ABC'.) DO NIL^
  THIS (* IS A TEST*)
END.
&

-TEST!
 A BC (*KLM
 D EFG 'NIEDOKONCZ
&

-TTY!



« December 2024 »
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: