home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _239cab536b7918c429d4eed92839de3e < prev    next >
Text File  |  2000-03-15  |  5KB  |  234 lines

  1. <HTML>
  2. <HEAD><TITLE>PerlScript sample:  RPN Calculator</TITLE></HEAD>
  3. <BODY BGCOLOR="#FFFFFF" TOPMARGIN=8>
  4.  
  5. <!-- 
  6.     ActiveState PerlScript sample 
  7.     PerlScript:  The coolest way to program custom web solutions. 
  8. -->
  9.  
  10. <TABLE CELLPADDING=0 BORDER=3 CELLSPACING=0>
  11. <TR VALIGN=TOP ><TD>
  12. <A NAME="TOP"><IMG SRC="PSBWlogo.gif" WIDTH=400 HEIGHT=48 ALT="The power of PerlScript!" BORDER=2></A><P>
  13. </TD></TR></TABLE>
  14. <HR>
  15.  
  16. <FONT FACE=ARIAL SIZE=3> <!-- global default -->
  17.  
  18. <SCRIPT LANGUAGE="PerlScript">
  19. $flagNewNum = 1;
  20. @stack = 0;
  21.  
  22. sub NumPressed($)
  23. {
  24.     my $num = $_[0];
  25.     my $Keypad = $window->document->Keypad;
  26.     if ($flagNewNum) {
  27.            $flagNewNum = 0;
  28.         push @stack, $Keypad->Readout->{'Value'};
  29.         $Keypad->Readout->{'Value'} = $num;
  30.     } else {
  31.         $Keypad->Readout->{'Value'} .= $num;
  32.     }
  33. }
  34.  
  35. sub Decimal_onClick()
  36. {
  37.     my $Keypad = $window->document->Keypad;
  38.     if ($flagNewNum) {
  39.            $flagNewNum = 0;
  40.         $Keypad->Readout->{'Value'} = "0.";
  41.     } else {
  42.         $_ = $Keypad->Readout->{'Value'};
  43.         $Keypad->Readout->{'Value'} = $_ . '.' if (/\./);
  44.     }
  45. }
  46. sub Decimal_onclick()
  47. {
  48.     Decimal_onClick()
  49. }
  50.  
  51. sub Plus_onClick()
  52. {
  53.     $flagNewNum = 1;
  54.     $window->document->Keypad->Readout->{'Value'} += pop @stack;
  55. }
  56. sub Plus_onclick()
  57. {
  58.     Plus_onClick()
  59. }
  60.  
  61. sub Minus_onClick()
  62. {
  63.     my $Keypad = $window->document->Keypad;
  64.     $flagNewNum = 1;
  65.     $Keypad->Readout->{'Value'} = 
  66.         (pop @stack) - $Keypad->Readout->{'Value'};
  67. }
  68.  
  69. sub Minus_onclick()
  70. {
  71.     Minus_onClick()
  72. }
  73.  
  74. sub Multiply_onClick()
  75. {
  76.     $flagNewNum = 1;
  77.     $window->document->Keypad->Readout->{'Value'} *= pop @stack;
  78. }
  79.  
  80. sub Multiply_onclick()
  81. {
  82.     Multiply_onClick()
  83. }
  84.  
  85. sub Divide_onClick()
  86. {
  87.     my $Keypad = $window->document->Keypad;
  88.     $flagNewNum = 1;
  89.     $Keypad->Readout->{'Value'} = 
  90.         (pop @stack) / $Keypad->Readout->{'Value'};
  91. }
  92.  
  93. sub Divide_onclick()
  94. {
  95.     Divide_onClick()
  96. }
  97.  
  98. sub SquareRoot_onClick()
  99. {
  100.     my $Keypad = $window->document->Keypad;
  101.     $flagNewNum = 1;
  102.     $Keypad->Readout->{'Value'} = 
  103.         sqrt($Keypad->Readout->{'Value'});
  104. }
  105.  
  106. sub SquareRoot_onclick()
  107. {
  108.     SquareRoot_onClick()
  109. }
  110.  
  111. sub Square_onClick()
  112. {
  113.     my $Keypad = $window->document->Keypad;
  114.     $flagNewNum = 1;
  115.     $Keypad->Readout->{'Value'} = 
  116.         $Keypad->Readout->{'Value'} * $Keypad->Readout->{'Value'};
  117. }
  118.  
  119. sub Square_onclick()
  120. {
  121.     Square_onClick()
  122. }
  123.  
  124. sub Neg_onClick()
  125. {
  126.     my $Keypad = $window->document->Keypad;
  127.     $Keypad->Readout->{'Value'} = 
  128.         -($Keypad->Readout->{'Value'});
  129. }
  130.  
  131. sub Neg_onclick()
  132. {
  133.     Neg_onClick()
  134. }
  135.  
  136. sub Percent_onClick()
  137. {
  138.     my $Keypad = $window->document->Keypad;
  139.     $flagNewNum = 1;
  140.     $Keypad->Readout->{'Value'} = ($Keypad->Readout->{'Value'}) / 100;
  141. }
  142.  
  143. sub Percent_onclick()
  144. {
  145.     Percent_onClick()
  146. }
  147.  
  148. sub Enter_onClick()
  149. {
  150.     my $Keypad = $window->document->Keypad;
  151.     $flagNewNum = 1;
  152.     push @stack, $Keypad->Readout->{'Value'};
  153. }
  154.  
  155. sub Enter_onclick()
  156. {
  157.     Enter_onClick()
  158. }
  159.  
  160. </SCRIPT>
  161.  
  162.  
  163. <form action="" Name="Keypad">
  164. <TABLE>
  165. <B>
  166. <TABLE BORDER=2 WIDTH=50 HEIGHT=60 CELLPADDING=1 CELLSPACING=5>
  167. <CAPTION ALIGN=top>
  168.     <b>RPN Calculator</b><p>
  169.     
  170. </CAPTION>
  171. <TR>
  172.     <TD COLSPAN=3 ALIGN=MIDDLE><INPUT NAME="ReadOut" TYPE="Text" SIZE=24 VALUE="0" WIDTH=100%></TD>
  173.     <TD></TD>
  174.     <TD><INPUT NAME="Square" TYPE="Button" VALUE="  sqr  " ></TD>
  175.     <TD><INPUT NAME="SquareRoot" TYPE="Button" VALUE="  sqrt " ></TD>
  176. </TR>
  177. <TR>
  178.     <TD><INPUT NAME="Seven" TYPE="Button" VALUE="  7  " onClick="NumPressed(7);"></TD>
  179.     <TD><INPUT NAME="Eight" TYPE="Button" VALUE="  8  " onClick="NumPressed(8);"></TD>
  180.     <TD><INPUT NAME="Nine" TYPE="Button" VALUE="  9  " onClick="NumPressed(9);"></TD>
  181.     <TD></TD>
  182.     <TD><INPUT NAME="Neg" TYPE="Button" VALUE=" +/- " ></TD>
  183.     <TD><INPUT NAME="Percent" TYPE="Button" VALUE="  % " ></TD>
  184. </TR>
  185.  
  186. <TR>
  187.     <TD><INPUT NAME="Four" TYPE="Button" VALUE="  4  " onClick="NumPressed(4);"></TD>
  188.     <TD><INPUT NAME="Five" TYPE="Button" VALUE="  5  " onClick="NumPressed(5);"></TD>
  189.     <TD><INPUT NAME="Six" TYPE="Button" VALUE="  6  " onClick="NumPressed(6);"></TD>
  190.     <TD></TD>
  191.     <TD ALIGN=MIDDLE><INPUT NAME="Plus" TYPE="Button" VALUE="  +  " ></TD>
  192.     <TD ALIGN=MIDDLE><INPUT NAME="Minus" TYPE="Button" VALUE="   -   " ></TD>
  193. </TR>
  194. <TR>
  195.     <TD><INPUT NAME="One" TYPE="Button" VALUE="  1  " onClick="NumPressed(1);"></TD>
  196.     <TD><INPUT NAME="Two" TYPE="Button" VALUE="  2  " onClick="NumPressed(2);"></TD>
  197.     <TD><INPUT NAME="Three" TYPE="Button" VALUE="  3  " onClick="NumPressed(3);"></TD>
  198.     <TD></TD>
  199.     <TD ALIGN=MIDDLE><INPUT NAME="Multiply" TYPE="Button" VALUE="  *  " ></TD>
  200.     <TD ALIGN=MIDDLE><INPUT NAME="Divide" TYPE="Button" VALUE="   /   " ></TD>
  201. </TR>
  202. <TR>
  203.     <TD><INPUT NAME="Zero" TYPE="Button" VALUE="  0  " onClick="NumPressed(0);"></TD>
  204.     <TD><INPUT NAME="Decimal" TYPE="Button" VALUE="   .  " ></TD>
  205.     <TD COLSPAN=3></TD>
  206.     <TD><INPUT NAME="Enter" TYPE="Button" VALUE="Enter"></TD>
  207. </TR>
  208. </TABLE>
  209. </TABLE>
  210. </B>
  211. </FORM>
  212. <BR><BR>
  213. </FONT>
  214. <HR>
  215. <FONT SIZE=2>
  216. If this sample doesn't work, download <A HREF="http://www.microsoft.com/ie">Internet Explorer 3.0</A> now.
  217. </FONT>
  218. <TABLE BORDER=0 CELLPADDING=3 CELLSPACING=0 width=600>
  219. <TR VALIGN=TOP>
  220.     <TD ALIGN=RIGHT>
  221.     <FONT FACE="Arial, Helvetica" SIZE="1">
  222.     <B>Best experienced with<BR> 
  223.     <A HREF="http://www.microsoft.com/ie" TARGET="_top"><img src="ie_animated.gif" width="88" height="31" border="0" alt="Microsoft Internet Explorer" vspace="5"></a>
  224.     <BR>Click here to start.</B>
  225.     </FONT></TD>
  226. </TR>
  227. </TABLE>
  228.  
  229. </BODY>
  230. </HTML>
  231.  
  232.  
  233.  
  234.