multi criteria IF statement - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html) +--- Forum: HP Prime (/forum-5.html) +--- Thread: multi criteria IF statement (/thread-17093.html) |
multi criteria IF statement - Amer7 - 06-11-2021 11:06 AM Hello, I'm trying to write a program for directional angle calculation. But my issue are the IF statements. I have to test two variables in 4 different scenarios. example Local y,x,n; IF ( y>0 and x>0) then n:=ATAN( y/x); /// 1' scenario if the y or x is not greater next test IF( y>0 and x<0) then n:=ATAN (y/x)+180; //// 2' scenario IF( y<0 and x<0) then n:=ATAN(y/x)+180; //// 3' scenario IF ( y<0 and x>0) then n:=ATAN(y/x)+360; ///// 4' And i'm not sure how to write it. Code: IF ( y>0) THEN I have tried like that, but i't doesnt give the correct awnser. And also at end of program i have to write END; like 6 times or so. RE: multi criteria IF statement - roadrunner - 06-11-2021 11:37 AM I would probably use a case statement for that task: Code: EXPORT Amer7scode(x,y) -road RE: multi criteria IF statement - Amer7 - 06-11-2021 11:59 AM Thanks, that worked like charm. I wonder where, and how you learn these tricks and expressions. Here is the complete code for Directional Angle - Geodesy - HP Prime Code: EXPORT Directional() RE: multi criteria IF statement - toml_12953 - 06-11-2021 02:04 PM (06-11-2021 11:06 AM)Amer7 Wrote: Hello, Why write a function when one is already built in? look up ARG(X+i*Y) RE: multi criteria IF statement - Liamtoh Resu - 06-11-2021 10:09 PM As a new prime user I appreciate seeing smaller programs even if they replicate built-in functions. I have several questions. 1. How does the program know that the calculator is in degrees mode versus radians? 2. What does "c:=→HMS(n);" mean? It probably has to do with the HMS function which I haven't used yet. 3. What is the english translation for the word "tacke" Thanks. RE: multi criteria IF statement - Dougggg - 06-12-2021 03:05 AM I can answer the 1st 2 1 there is a system varable HAngle you can set to 0 for radian and 1 for degrees, by default it is set in the setup screen or app 2 →HMS() changes a degree to DMS HMS→() changes DMS to degree 3 I dont know RE: multi criteria IF statement - Albert Chan - 06-12-2021 11:53 AM (06-12-2021 03:05 AM)Dougggg Wrote: there is a system varable HAngle you can set to 0 for radian and 1 for degrees, by default it is set in the setup screen or app On HP Prime emulator, HAngle cannot be set to 0 in CAS (Why?) CAS> HAngle := 0 → "HAngle(0) Error: Bad Argument Value" It might be better to use AAngle instead, see http://edspi31415.blogspot.com/2018/02/hp-prime-custom-app-geomcalc.html Code: EXPORT bearing(x,y) // x=north, y=east (06-11-2021 02:04 PM)toml_12953 Wrote: Why write a function when one is already built in? Because there is a bug in ARG ? see https://www.hpmuseum.org/forum/thread-16977.html We can use atan2 instead. Code: EXPORT bearing(x,y) // x=north, y=east RE: multi criteria IF statement - David Hayden - 06-12-2021 02:28 PM Don't forget to handle points on the vertical axis, including the origin. I'll arbitrarily assign 0 to atan(0,0). I haven't had nearly enough coffee yet and I'm not fluent in PPL, but in C++: Code: if (x==0) { RE: multi criteria IF statement - toml_12953 - 06-13-2021 05:35 AM (06-12-2021 11:53 AM)Albert Chan Wrote:(06-12-2021 03:05 AM)Dougggg Wrote: there is a system varable HAngle you can set to 0 for radian and 1 for degrees, by default it is set in the setup screen or app The bug must have been fixed again. I get the proper 45 with all the examples in that thread. RE: multi criteria IF statement - Joe Horn - 06-13-2021 01:10 PM (06-13-2021 05:35 AM)toml_12953 Wrote:(06-12-2021 11:53 AM)Albert Chan Wrote: Because there is a bug in ARG ? Strange... my G2 running firmware 14588 (2021 05 05) still has that bug (namely, arg(3+3.*i) in CAS view returns its answer in radians even when Prime is in Degrees mode). Make sure you're in CAS view, degree mode, and include the decimal point. RE: multi criteria IF statement - toml_12953 - 06-13-2021 03:19 PM (06-13-2021 01:10 PM)Joe Horn Wrote:(06-13-2021 05:35 AM)toml_12953 Wrote: The bug must have been fixed again. I get the proper 45 with all the examples in that thread. I just checked it again. Now it comes up with radians. I was sure I checked the angular mode before but I must not have. Of course in Home mode, it does work properly and that's the mode I always use so I never would have run into this bug. RE: multi criteria IF statement - Liamtoh Resu - 06-16-2021 02:58 AM I found that while in CAS mode the prime allows HAngle to be set to one or two. After an attempt to do HAngle:=0 an error message appears, namely: "HAngle(0) Error: Bad Argument Value" I wonder if this a feature or a bug and if it is causing the problems noted in this thread. It seems that setting AAngle is not affected. Thanks. |