Showing posts with label INPUT. Show all posts
Showing posts with label INPUT. Show all posts

Saturday, October 11, 2025

RPN Calculators: INPUT vs PROMPT

RPN Calculators: INPUT vs PROMPT


Later RPN keystroke programming calculators are able to display alphabetic messages and store to variables for alphabetic names.


HP 32S, HP 32SII, HP 33S, HP 35S, DM32

HP 41C (all variants), DM41X

HP 42S, DM42, DM42n, Free 42

Single letter variable names

Numeric-named variables only

Both numeric-named variables and alphabetic (and alphanumeric) variable names. Alphabetic and alphanumeric named variables are enclosed in quotes (alpha strings) well stored and recalled and take additional memory.

Can display messages by setting Flag 10 and using the equation feature to type messages

Can display messages and prompts

Can display messages and prompts


Two common ways to cue the user to enter values are the INPUT and PROMPT commands.


The INPUT Command: HP 32 and HP 42S (and Swiss Micros/emulator equivalents)


Note: The INPUT command is not available in the HP 41C’s command set.


General syntax: INPUT var


When an INPUT command is encountered, the screen will display [var]?= on the X stack.


Example:

INPUT R displays R? [previous value stored in R]


HP 32 Family: The variable is a single-letter name or the indirect variable i.

HP 42S Family: A custom alpha variable, a numeric-named variable (i.e. 00, 01, 02, etc.), indirect variables, or the stack levels X, Y, T, Z, or L (last argument).


The INPUT has the double benefit of storing whatever is entered into the variable asked for. INPUT will also show the previously stored value, so we can just accept it by pressing R/S to keep the old value.


Example: Volume of a Cone


HP 32 family

HP 42S family

V01 LBL V

V02 INPUT R

V03 INPUT H

V04 π

V05 RCL R

V06 x^2

V07 ×

V08 RCL H

V09 ×

V10 3

V11 ÷

V12 RTN


No quotes are needed for alphabetic variables.



00 {30-Byte Prgm }

01 LBL “VCONE1”

02 INPUT “R”

03 INPUT “H”

04 PI

05 RCL “R”

06 x↑2

07 ×

08 RCL “H”

09 ×

10 3

11 ÷

12 RTN


We could use variables 00 and 01 (for example) for radius and height, respectively, except the input command prompt will show “R00?” or “R01?” which may not be user-friendly.


The INPUT does not replace the contents of the alpha register.


If we want the alphanumeric/alphanumeric variables (“R”, “H”) to be erased, we could have inserted CLV “R” and CLV “H” at the end, but that will erase the value associated with them.



The PROMPT Command: HP 41C and HP 42S (and Swiss Micros/emulator equivalents)


Note: The PROMPT command is not available on the HP 32S family.


General Syntax:

alpha string”

PROMPT

STO var


The alpha string is displayed until something, usually a numeric value, is entered. Unlike the INPUT command, the PROMPT does not automatically store the entered value into a variable. Therefore, if you want to use the value for future use, a STO (store) command must be used following the prompt.


Let’s take our volume of the cone example again:


HP 41C family

HP 42S family

01 LBL “VCONE2”

02 ^T RADIUS?

03 PROMPT

04 STO 00

05 ^T HEIGHT?

06 PROMPT

07 STO 01

08 PI

09 RCL 00

10 X↗2

11 *

12 RCL 01

13 *

14 3

15 /

16 RTN



R00 = radius

R01 = volume

00 { 40-Byte Prgm }

01 LBL “VCONE2”

02 “RADIUS?”

03 PROMPT

04 STO 00

05 “HEIGHT?”

06 PROMPT

07 STO 01

08 PI

09 RCL 00

10 X↑2

11 ×

12 RCL 01

13 ×

14 3

15 ÷

16 RTN



R00 = radius

R01 = volume


With PROMPT, I like to use the numeric-named memory registers, but we can use alphabetic or alphanumeric registers as well.


HP 32SII/DM32: Simulating PROMPT with Flag 10


Even though the HP 32SII does not have a PROMPT command, we can kind of simulate it by using the equation message feature.


To set flag 10: [ |→ ] [ × ]* (FLAGS), { SF }. [ . ] [ 0 ]

To clear flag 10: [ |→ ] [ × ]* (FLAGS), { CF }. [ . ] [ 0 ]

We have to use the decimal point key in order to access flags beyond 9.

(*HP 35S: [ ←| ] [ ↑ ] (FLAGS))


HP 32SII/33S/35S/DM32


W01 LBL W

W02 SF 10

W03 “=RADIUS”

W04 STO R

W05 “=HEIGHT”

W06 STO H

W07 CF 10


W08 π

W09 RCL R

W10 x^2

W11 ×

W12 RCL H

W13 ×

W14 3

W15 ÷

W16 RTN


Turn message mode on

Enter as an equation =RADIUS

Enter radius and press [R/S]

Enter as an equation =HEIGHT

Enter height and press [R/S]

Turn message mode off, so equations can operate normally



Note: Equations are NOT on the original HP 32S.



I hope you find this helpful.


Eddie


All original content copyright, © 2011-2025. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.


The author does not use AI engines and never will.

Saturday, July 20, 2019

TI Nspire CX II and TI Nspire CX II CAS: User Input in Graphics Mode with getKey

TI Nspire CX II  and TI Nspire CX II CAS:  User Input in Graphics Mode with getKey

Introduction

In graphics mode, the TI Nspire CX II cannot use the Text, Request, or RequestStr.  However, with the use of getKey command, we can have the user interact with the program. 

TI Nspire CX II Program keydemo2

This program is a game where the user stops a spinner in hopes to win money or a car.  Good luck!

Define keydemo2()=
Prgm
:Clear 
:Local l,str,k,n
:l:={"$200","$300","$500","$1000","CAR","Nope."}
:While getKey(0)≠"enter"
:  Clear 
:  UseBuffer 
:© get key continous execution
:  n:=randInt(1,6)
:  SetColor 0,0,0
:  DrawText 50,25,"PRESS enter TO STOP"
:  If n≤5 Then
:    SetColor 0,128,128
:  Else
:    SetColor 255,0,0
:  EndIf
:© use square brackets for elements 
:© we can clear only dynamic areas
:© but it does not look good
:  DrawText 50,50,l[n]
:  PaintBuffer 
:© usebuffer and paintbuffer allows all objects to be displayed at once, ensuring a smooth transition, can also use wait
:EndWhile
:EndPrgm



TI Nspire CX II Program enterdemo

With the use of getKey, the user enters a number in graphics mode.  This can be used as a template. 

Define enterdemo()=
Prgm
:© goal: develop input in graphics mode
:© use float mode
:setMode(1,1)
:Local str,num,k
:str:=""
:© use initial text
:Clear 
:  SetColor 0,0,0
:  DrawText 0,50,"Press [enter] to stop."
:
:
:© main loop: enter the numbers
:Loop
:  Clear 
:  UseBuffer 
:  SetColor 0,0,0
:  DrawText 0,50,"Press [enter] to stop."
:
:  k:=getKey(1)
:  If k="." and inString(str,".")=0 Then
:    str:=str&"."
:  ElseIf k="0" Then
:    str:=str&"0"
:  ElseIf k="1" Then
:    str:=str&"1"
:  ElseIf k="2" Then
:    str:=str&"2"
:  ElseIf k="3" Then
:    str:=str&"3"
:  ElseIf k="4" Then
:    str:=str&"4"
:  ElseIf k="5" Then
:    str:=str&"5"
:  ElseIf k="6" Then
:    str:=str&"6"
:  ElseIf k="7" Then
:    str:=str&"7"
:  ElseIf k="8" Then
:    str:=str&"8"
:  ElseIf k="9" Then
:    str:=str&"9"
:  ElseIf k="−" Then
:    str:=string(−1*expr(str))
:  ElseIf k="del" and dim(str)>0 Then
:    str:=left(str,dim(str)-1)
:
:  ElseIf k="enter" Then
:© "lock" the number and leave
:  SetColor 0,0,0
:  DrawText 0,100,str
:  PaintBuffer 
:    Exit
:  EndIf
:
:SetColor 0,0,255
:DrawText 0,100,str
:PaintBuffer 
:
:EndLoop
:© return number to home
:num:=expr(str)
:Disp num
:EndPrgm



There are two ways the getKey command can be used in graphics mode.

Eddie

All original content copyright, © 2011-2019.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

Tuesday, October 3, 2017

Adventures in Python: Input Requires Declaring Type of Input

Adventures in Python: Input Requires Declaring Type of Input

I work with calculators, and in calculator programming, the Input command usually defaults to numerical input.  That is not the case in Python.  Input, without declaration, defaults in strings.  Strings are nice, but don’t usually do well in mathematical calculation.

Ways to use the Input command:

input(‘prompt’)
Input accepted as a string.  We can also use string(input(‘prompt’)).
int(input(‘prompt’))
Input accepted as integers.
float(input(‘prompt’))
Input accepted as real (floating) numbers.
complex(input(‘prompt’))
Input accepted as complex numbers.  In Python, complex numbers are in the form x + yj (instead of x + yi). 

The prompt is an optional string. 

In the following program, thanks to complex(input()) format, inputs are accepted as complex numbers.  This solves the quadratic equation using the quadratic formula. 

One other note, I use the double asterisk (**) for powers.  Examples:  2**2 = 2^2 = 4,  16**0.5 = √16 = 4.  The double asterisk works on complex numbers, opposed to the math.sqrt function.

# Program 002: Quadratic Equation
# header
# note that all comments start with a hashtag

# header
print("a*x^2 + b*x + c = 0")

# the default format of input is string
# we must use complex to all for complex numbers
# complex numbers are in the format real + imag*j
# where j = sqrt(-1).  j is usally i but it is used
# for Python and electronic engineering
a = complex(input("a: "))
b = complex(input("b: "))
c = complex(input("c: "))

# discriminat
# note that powers y^x are used by double asterisk, like this y**x
d = b**2-4*a*c

# root calculation
root1 = (-b + d**(0.5))/(2*a)
root2 = (-b - d**(0.5))/(2*a)

# display results
print("Discriminant =  ",d)
print("Root 1 = ",root1)
print("Root 2 = ",root2)


Output (I give a = 1+6j, b = -9, c = 4 as inputs):

a*x^2 + b*x + c = 0
a: 1+6j
b: -9
c: 4
Discriminant =   (65-96j)
Root 1 =  (-0.1590249844353114-1.5691249198547j)
Root 2 =  (0.4022682276785546+0.10966546039524058j)

More adventures in Python to come! 

Eddie


This blog is property of Edward Shore, 2017.

Monday, July 3, 2017

Programming Languages: TI-85 vs. TI-84 CE Plus

Programming Languages:  TI-85 vs. TI-84 CE Plus

I purchased a 1995 edition of the TI-85 at a Pasadena City College swap meet.  The TI-85 was my go-to and favorite calculator through high school (1991 – 1995). 

Today, I am going to compare common programming commands between two of my favorite Texas Instrument calculators, the TI-85 and the current TI-84 CE Plus.  The manuals for each calculator were consulted to answer questions.

Arguments in vector brackets [ ] means the argument is optional.

Command
TI-85 (1992 – 1997)
(probably also applies to the TI-86)
Software Version 10.0
TI-84 CE Plus (2016-)
(most of the this applies to TI-84 Plus 2004-present)
Software Version 5.2.2
Variable Names
Up to 8 characters, must begin with a number, no spaces.
All variables are global.
Single letters A through Z, n, θ
All variables are global.
Complex Number display, Rectangular
(X, Y)
X + Yi
Complex Number display, Polar
(R θ)
R e^θi
Graphing Modes
Function, Polar, Parametric, Differential Equation
Function, Polar, Parametric, Recurring Sequences
Number of Colors
0 (monochrome display)
15: blue, red, black, magenta, green, orange, brown, navy, light blue, yellow, white, light gray, medium gray, gray, dark gray (backlit display)
**CE and C versions only
Input
Input by itself displays the graph screen

Input [“prompt string”], varname
Input by itself displays the graph screen

Input  [“prompt string”], variable
Prompt:  asking for and storing multiple values
Prompt var1, var2, var3 ,…
Prompt var1, var2, var3, …
Disp
Disp by itself displays the home screen

Disp var/string, [var/string …]
Disp by itself displays the home screen

Disp var/string, [var/string…]
Pause
Pause [var/string]
Pause [var/string], [time in seconds]
Wait
N/A
Wait time in seconds up to 100
Display the graph screen
DispG
displays the graph screen
DispGraph
displays the graph screen
Display the function table
N/A
DispTable
Output
Outpt(line, col, var/string)
8 lines, 21 columns
Output(row, col, var/string)
10 rows, 26 columns
InpSt
InpSt stores entered text or equations as strings
N/A.  Use Input
If – Then – Else structure
If condition
Then
do if true
[Else
do if false]
End
If condition
Then
do if true
[Else
do if false]
End
For structure
For(var, begin, end, [step])
commands
End
For(var, begin, end, [step])
commands
End
While structure
While condition
do while condition is true
End
While condition
do while condition is true
End
Repeat – Until structure
Repeat condition
do while condition is false
End
Repeat condition
do while condition is false
End
Menu
Menu(nn, string, label…)
Where nn is from 1 to 15
Menu(“title”, “text”, label…)
Up to 9 options
Labels (Lbl/Goto)
Label names can have up to 8 characters.  All labels are local.
A-Z, 0 -99, θ.  All labels are local.
Increment (by 1) and Skip (if greater to value)
IS>(variable, value)
IS>(variable, value)
Decrement (by 1) and Skip (if less than value)
DS<(variable, value)
DS<(variable, value)
Stop program execution
Stop
Stop
Return from a subroutine
Return
Return
Execute a subroutine
Type the name of the program
Call program by pressing [prgm], choosing it from the Program submenu during editing
Clear the graph screen
ClDrw (clear all drawings)
ClrDraw (clear all drawings)
Display text on a graph screen
N/A
TextColor(color) sets the color.
Text([-1], row, col, string)
0-164 row pixel,
0-264 column pixel
-1 is for large text
Draw a temporary function
DrawF f(x)
DrawF f(x), [color]

Draw a temporary inverse function (f^-1(x) = y, x and y are swapped)
DrInv f(x)
DrawInv f(x), [color]
Shading
Shade (lower, upper, left, right)
Shade (lower, upper, [left, right, pattern, pattern resolution, color])
Draw a line
Line(x1, y1, x2, y2)
Line(x1, y1, x2, y2, [0/1, color, line style])
0/1: 0 to erase, 1 to draw
Draw a circle
Circle(x, y, radius)
Circle(x, y, radius, [color, line style])
Draw a Point
Only the TI-84 Plus CE has similar commands for pixels
PtOn(x,y)
PtOff(x,y)
PtChg(x,y)
Pt-On(x,y, [mark, color])
Pt-Off(x,y,[mark])
Pt-Change(x,y,[color])
Convert a value to a string
N/A
eval(expression) → Str#
No complex results
Convert a string to a value
N/A
expr(string)
Convert a string to a graph variable
St>Eq(string, graph variable)
String>Equ(string, graph variable)
Length of a string
lngth string
length(string)
(call from the catalog)
Extract part of a string
sub(string, begin point, length)
sub(string, begin point, length)
(call from the catalog)
Execute Linear Regression analysis (other regressions are similar)
LinR xlist, ylist
LinReg(ax+b) xlist, ylist, [freqlist, Y= variable]
Turn a stat plot on
N/A (stat plots are not available on the TI-85)
PlotsOn [1,2,3]
Turn a stat plot off
N/A (stat plots are not available on the TI-85)
PlotsOff [1,2,3]
Turn graph functions on
FnOn [1 – 99]
FnOn [1-9, 0]
Turn graph functions off
FnOff [1 – 99]
FnOff [1-9, 0]

Notes

As we can see, the programming language of the TI-85/86 family is similar to the TI-84 Plus family, translating the programs should not be difficult.  I believe that stat plots are available on the TI-86, but not the TI-85.

Keep in mind if you have complex numbers, that the complex mode on the TI-84 Plus (a+bi or re^(θi) has to be turned on.  Furthermore, logarithmic, power, exponential, and trigonometric functions for complex numbers return error on the TI-84 Plus (substitute expressions must be used).

(use radians mode)
With z = X + Yi = R*e^(θ*i), X = real(z), Y = imag(z), R = abs(z), θ = arg(z)

z^n = R^n * (cos(n*θ) + sin(n*θ)*i), n is a real number
ln (z) = ln R + θ*i
e^(z) = e^X * cos Y + e^X * sin Y * i
sin(z) = sin X * cosh Y + cos X * sinh Y * i
cos(z) = cos X * cosh Y – sin X * sinh Y * i
sin¯¹ (z) = asin(z) = -i * ln (zi ± √ (1 – z^2)
z1 ^ z2 = e^(z2 * ln z1)

Eddie


This blog is property of Edward Shore, 2017

Trigonometry Reduction Formula and Solving Simple Arcsine and Arccosine Equations

Trigonometry Reduction Formula and Solving Simple Arcsine and Arccosine Equations Some Background and Periodic Reduction Formulas ...