Advertisement
Guest User

es52

a guest
Nov 30th, 2018
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rexx 6.52 KB | None | 0 0
  1. CONSOLE
  2. /* rexx */                                
  3. "CONSPROF SOLDISPLAY(NO) SOLNUM(400)"      
  4. "CONSOLE ACTIVATE"                        
  5. ADDRESS CONSOLE                            
  6. "CART APP001"                              
  7. "DISPLAY IPLINFO"                          
  8. GETCODE = GETMSG("MSG.","SOL","APP001",,30)
  9. ADDRESS TSO                                
  10. "CONSOLE DEACTIVATE"                      
  11. DO I=1 TO MSG.0                            
  12.   SAY MSG.I                                
  13. END                                        
  14.  
  15. EXECIO
  16. /* rexx */                                              
  17. "ALLOC DA('TSOCH32.REXX(KALKULAT)') FI(INDD) SHR REUSE"
  18. "EXECIO * DISKR INDD (STEM LINIA. FINIS"                
  19. DO I=1 TO LINIA.0                                      
  20.   SAY LINIA.I                                          
  21. END                                                    
  22. "FREE FI(INDD)"                                        
  23.  
  24. INTERPRET
  25.  /* rexx */                
  26.  do forever                
  27.    say 'Podaj wiersz REXX:'
  28.    pull inrexx            
  29.    if inrexx='' then exit  
  30.    else interpret inrexx  
  31.  end                      
  32.  
  33. KALKULAT
  34. /* REXX */                                          
  35. say "Podaj dwie liczby"                            
  36. parse pull g f .                                    
  37. if f='' then do                                    
  38.  Say 'Podales 0 lub 1 parametr, a wymagane sa 2'    
  39.  Exit                                              
  40. End                                                
  41. /* czy z wejscia podano liczby */                  
  42. if \(datatype(g,'NUM') & datatype(f,'NUM')) then do
  43.  say 'a lub b nienumeryczne a=' g 'b=' f            
  44.  Exit                                              
  45. End                                                
  46. /* dane ok */ say 'a='g; say 'b='f;                
  47. Say 'a+b=' g+f                                      
  48. Say 'a-b=' g-f                                      
  49. Say 'a*b=' g*f                                      
  50. Say 'a/b=' g/f                                      
  51. Say 'a//b=' g//f                                    
  52. Say 'a%b=' g%f                                      
  53. If f=trunc(f) then                                  
  54.  Say 'a**b=' g**f                                  
  55. Else                                                
  56.  Say 'Potegowanie niewykonalne'                    
  57. Say '+a=' (+g) '-a=' (-g)                          
  58. Say '+b=' (+f) '-b=' (-f);                          
  59. return
  60.  
  61. KONWERT
  62. /* rexx */                                            
  63. "alloc fi(indd) da('tsoch32.memb(output)') old reuse"  
  64. "execio * diskr  indd (stem linia. finis"              
  65. "free fi(indd)"                                        
  66. SAY "PODAJ LINIJKE"                                    
  67. pull string                                            
  68. licz=linia.0+1                                        
  69. linia.0=licz                                          
  70. linia.licz=string                                      
  71. do i=1 to linia.0                                      
  72. say linia.i                                            
  73. end                                                    
  74. "alloc fi(indd) da('tsoch32.memb(output)') old reuse"  
  75. "execio * diskw  indd (stem linia. finis"              
  76. "free fi(indd)"                                        
  77.  
  78. NAJDL
  79. /* rexx */                        
  80. pull str                          
  81. dlug=length(str)                  
  82. maxlen=1                          
  83. maxposi=1                        
  84. char=''                          
  85. do i=1 to dlug                    
  86.   newchar=substr(str,i,1)        
  87.   if char\=newchar then do        
  88.     len=1                        
  89.     char=newchar                  
  90.     posi=i                        
  91.   end                            
  92.   else do                        
  93.     len=len+1                    
  94.     if len>maxlen  then do        
  95.        maxlen=len                
  96.        maxposi=posi              
  97.     end                          
  98.   end                            
  99. end                              
  100. say substr(str,maxposi,maxlen)    
  101.  
  102. PROCED
  103. /* rexx */          
  104. call WYPISZ        
  105. say "po procedurze"
  106. say WYPISZ()        
  107.                    
  108. exit 0              
  109. WYPISZ:            
  110. say "wypisano"      
  111. return "wartosc"    
  112.  
  113. SLOWA
  114. /* rexx */                                    
  115. SLOWA. = 0                                    
  116. say "Podaj slowa:"                            
  117. PULL STR                                      
  118. licznik=0                                    
  119. DO UNTIL LENGTH(STR)=0                        
  120.   ILE=WORDS(STR)                              
  121.   DO I=1 TO ILE                              
  122.     SLOWO=WORD(STR,I)                        
  123.     IF SLOWA.SLOWO.ILOSC=0  THEN DO          
  124.        LICZNIK=LICZNIK+1                      
  125.        SLOWA.LICZNIK.TEXT=SLOWO              
  126.        SLOWA.SLOWO.ILOSC=1                    
  127.     END                                      
  128.     ELSE SLOWA.SLOWO.ILOSC=SLOWA.SLOWO.ILOSC+1
  129.   END                                        
  130.   PULL STR                                    
  131. END                                          
  132. DO I=1 TO LICZNIK                            
  133.   SLOWO=SLOWA.I.TEXT                          
  134.   SAY 'SLOWO='SLOWO                          
  135.   SAY 'ILOSC WYSTAPIEN: 'SLOWA.SLOWO.ILOSC    
  136. END                                          
  137.  
  138. STACK
  139. /* rexx */    
  140. push "raz"    
  141. push "dwa"    
  142. "newstack"    
  143. push "trzy"  
  144. pull a        
  145. say a        
  146. pull a        
  147. say a        
  148. "delstack"    
  149.  
  150. SYSCALL
  151. /* rexx */                                      
  152. call syscalls 'ON'                              
  153. address syscall                                
  154. path='/u/d80ww/students/es52/tsoch32/dlugie.txt'
  155. 'open' path O_rdonly,                          
  156.             000                                
  157. if retval=-1 then                              
  158. do                                              
  159.   say 'cos nie pyklo' errno errnojr            
  160.   return                                        
  161. end                                            
  162. fd=retval                                      
  163. 'read' fd 'bytes 80'                            
  164. if retval=-1 then                              
  165.   say 'nie odczytano' errno errnojr            
  166. else                                            
  167.   say bytes                                    
  168. 'close' fd
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement