Feet-Inch Calculator
06-22-2018, 01:13 PM
Post: #1
 Eddie W. Shore Senior Member Posts: 1,358 Joined: Dec 2013
Feet-Inch Calculator

Calculate in Feet-Inches

The program FTIN is an arithmetic calculator that calculates in feet-inches and square feet.

At the start of the program, you will be asked to set an accuracy setting for fractions of inches. The options available are 1/2, 1/4, 1/8, 1/16, 1/32, and 1/64. You can change accuracy settings at any time.

Then you will be asked to enter a measurement either in feet-inches (linear) or square feet (area). In feet-inches entry mode, you will enter the feet, whole inches, and fractional components of inches separately (see screen shot below).

When the main menu appears, your current result appears in the title screen of the choose box.

There are eight operations included in FTIN:

1. Add ft-in: Adds a measurement in feet-inch to the displayed value
2. Subtract ft-in: Subtracts a measurement in feet-inch from the displayed value
3. Multiply by scalar: Multiplies measurement by a scalar. Use this to find the total multiple of a feet-inch measurement.
4. Divide by scalar: Works similarly to option 3.
5. Multiply to area: Multiplies two lengths in feet-inch to obtain an area in square feet.
6. Divide from area: Divides an area by a length in feet-inch
7. Square Root from area: Takes the positive square root of a square area. It’s good for a finding a length of a square given its area.
8. Change accuracy settings: Change the accuracy settings for fraction of an inch.

Option 9 is to exit the program.

HP Prime Program FTIN
Code:
 sub1(); sub2(); EXPORT FTIN() BEGIN // 2018-06-21 EWS // initialization LOCAL fx,fy,fz,ch; LOCAL lx,ly,lz,Y,S; LOCAL aflag,str,dh; INPUT({{Y, {2,4,8,16,32,64}}}, "ACCURACY DESIRED","/"); Y:=2^Y; // initial entry CHOOSE(dh,"Initial Units", {"ft-in","ft^2"}); IF dh==1 THEN fx:=sub1(); fz:=fx; aflag:=0; ELSE INPUT(fx,"Enter Area","ft^2:"); fz:=fx; aflag:=1; END; WHILE ch≠9 DO fx:=fz; // string for fz IF aflag==0 THEN lx:=sub2(fx,Y); str:=STRING(lx(1))+" ft "+ STRING(lx(2))+" "+ STRING(lx(3))+" in"; ELSE str:=STRING(fx)+" ft^2"; END; CHOOSE(ch,str, {"Add ft-in", "Subtract ft-in", "Multiply by scalar", "Divide by scalar", "Multiply to area", "Divide from area", "Square Root from area", "Change accuracy settings", "Quit"}); // add ft-in IF ch==1 THEN fy:=sub1(); fz:=fx+fy; lx:=sub2(fx,Y); ly:=sub2(fy,Y); lz:=sub2(fz,Y); PRINT(); PRINT(lx(1)+" ft "+lx(2)+ " "+lx(3)+" in"); PRINT("+"); PRINT(ly(1)+" ft "+ly(2)+ " "+ly(3)+" in"); PRINT("="); PRINT(lz(1)+" ft "+lz(2)+ " "+lz(3)+" in"); WAIT(0); END; // subtract ft-in IF ch==2 THEN fy:=sub1(); fz:=fx-fy; lx:=sub2(fx,Y); ly:=sub2(fy,Y); lz:=sub2(fz,Y); PRINT(); PRINT(lx(1)+" ft "+lx(2)+ " "+lx(3)+" in"); PRINT("-"); PRINT(ly(1)+" ft "+ly(2)+ " "+ly(3)+" in"); PRINT("="); PRINT(lz(1)+" ft "+lz(2)+ " "+lz(3)+" in"); WAIT(0); END; // multiply by scalar IF ch==3 THEN INPUT(S,"Enter Scalar"); fz:=fx*S; lx:=sub2(fx,Y); lz:=sub2(fz,Y); PRINT(); PRINT(lx(1)+" ft "+lx(2)+ " "+lx(3)+" in"); PRINT("*"); PRINT(S); PRINT("="); PRINT(lz(1)+" ft "+lz(2)+ " "+lz(3)+" in"); WAIT(0); END; // divide by scalar IF ch==4 THEN INPUT(S,"Enter Scalar"); fz:=fx/S; lx:=sub2(fx,Y); lz:=sub2(fz,Y); PRINT(); PRINT(lx(1)+" ft "+lx(2)+ " "+lx(3)+" in"); PRINT("/"); PRINT(S); PRINT("="); PRINT(lz(1)+" ft "+lz(2)+ " "+lz(3)+" in"); WAIT(0); END; // multiply to area IF ch==5 THEN fy:=sub1(); fz:=fx*fy; fz:=ROUND(fz,6); lx:=sub2(fx,Y); ly:=sub2(fy,Y); aflag:=1; PRINT(); PRINT(lx(1)+" ft "+lx(2)+ " "+lx(3)+" in"); PRINT("*"); PRINT(ly(1)+" ft "+ly(2)+ " "+ly(3)+" in"); PRINT("="); PRINT(fz+" ft^2"); WAIT(0); END; // divide from area IF ch==6 THEN fy:=sub1(); fz:=fx/fy; ly:=sub2(fy,Y); lz:=sub2(fz,Y); aflag:=0; PRINT(); PRINT(fx+" ft^2"); PRINT("/"); PRINT(ly(1)+" ft "+ly(2)+ " "+ly(3)+" in"); PRINT("="); PRINT(lz(1)+" ft "+lz(2)+ " "+lz(3)+" in"); WAIT(0); END; // square root from area IF ch==7 THEN fz:=√(fx); lz:=sub2(fz,Y); aflag:=0; PRINT(); PRINT("√"+fx+" ft^2"); PRINT("="); PRINT(lz(1)+" ft "+lz(2)+ " "+lz(3)+" in"); WAIT(0); END; // change accruacy settings IF ch==8 THEN INPUT({{Y, {2,4,8,16,32,64}}}, "ACCURACY DESIRED","/"); Y:=2^Y; END; END; END; // feet-inch-fraction entry sub1() BEGIN LOCAL f,i,s,n; INPUT({f,i,s,{n, {2,4,8,16,32,64}}}, "ENTRY", {"Feet: ","Inch: ", "Frac: ","/"}); RETURN f+(i+s/(2^n))/12; END; // convert to feet-inch sub2(x,y) BEGIN LOCAL f,i,s,t; f:=IP(x); i:=IP(FP(x)*12); s:=ROUND(FP(FP(x)*12)*y,0); t:=QPI(s/y); RETURN {f,i,t}; END;
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)