home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
forth
/
compiler
/
fpc
/
tutor
/
l2p070
< prev
next >
Wrap
Text File
|
1990-07-15
|
4KB
|
124 lines
╔════════════════════════════════════════════════════╗
║ Lesson 2 Part 070 F-PC 3.5 Tutorial by Jack Brown ║
╚════════════════════════════════════════════════════╝
┌────────────────────┐
│ Lots of Problems! │
└────────────────────┘
╓────────────────╖
║ Problem 2.10 ║
╙────────────────╜
Tank volume and surface area.
Write words .LWH VOLUME and AREA along the lines
of the previous problem except that they take 3 stack items,
length, width, and height. VOLUME computes the volume of the
tank. AREA computes the surface area of the tank. Combine
these into a single word TANK which performs the function
of all three as in PROBLEM - 2.1.
╓────────────────╖
║ Problem 2.11 ║
╙────────────────╜
Rectangle again.
The area and perimeter of a rectangle -----------(X2,Y2)
can be determined from the coordinates | |
of either pair of opposite corners. | |
A = ( X2 - X1 )*( Y2 - Y1) | |
P = 2*(( X2 - X1 )+( Y2 - Y1)) -----------
(X1,Y1)
Write words to find the length, width, area, and perimeter
and then combine them into one one word as in problem 1.
Can any of the work from problem 1 be used here?
Do your words work if you feed them upper left and lower
right coordinates?
╓───────────────╖
║ Problem 2.12 ║
╙───────────────╜
Falling objects.
The height of a falling object above the ground at time t
seconds is given by
height = h0 - v0*t - 16*t*t
where h0 is the initial height in feet
and v0 is the initial velocity in feet per second.
Write a word called HEIGHT that takes initial height
initial velocity and a time from the stack and produces the
following output.
You type: 1000 100 3 HEIGHT ( return )
And see : Initial height is 1000 feet.
Initial velocity is 100 feet per second.
Height after 3 seconds is 412 feet.
Does your solution consist of one long definition?
If it does factor it as we did for TANK_VOLUME
( the 412 above may be wrong!! )
╓────────────────╖
║ Problem 2.13 ║
╙────────────────╜
Find the error in the program below.
\ DISPLAYING A TABLE contains error!!! 09:57JWB01/17/86
\ New word: .R ( n w -- )
\ Print n right justified in a field w wide.
: .ONE ( n -- )
12 SPACES \ Indent table entry.
DUP 8 .R \ Print number.
DUP DUP * 8 .R \ Print square of number.
DUP DUP DUP * * 8 .R ; \ Print cube of number.
: .HEADING ( -- )
CR CR CR 14 SPACES
." NUMBER SQUARE CUBE" ;
: .TABLE ( first last -- )
.HEADING \ ?ENOUGH explain it.
1+ SWAP
?DO CR I .ONE LOOP
CR CR ;
\ *** Hint: .TABLE leaves garbage on the stack. Use Debug to
\ *** find where and fix it so it won't do it any more!
╓───────────────╖
║ Problem 2.14 ║
╙───────────────╜
Make your own Tank Table Program.
a)Modify the previous example so that it gives a table of
volumes and surface areas of cubical tanks. Note: CUBICAL!!!
The new heading should have the form:
SIDE SURFACE AREA VOLUME
feet square feet cubic feet
==== ============ ==========
Entries should be neatly centered under the table headings!!
b)Repeat the above problem for spherical tanks. Heading
should read: RADIUS SURFACE AREA VOLUME etc.
For a sphere V = 4 pi R*R*R/3
S = 4 pi R*R
pi = 3.1416
Hint: to multiply by pi see Brodie or use -
: *PI ( n -- n*pi ) 355 113 */ ;
╓───────────────╖
║ Problem 2.15 ║
╙───────────────╜
What does this program do?
: .ONE ( n -- )
12 SPACES DUP EMIT DUP 4 .R
HEX 4 .R DECIMAL ;
: .HEADING ( -- )
CR CR CR 9 SPACES ." CHAR DEC HEX" ;
: ATABLE ( first last -- )
.HEADING
1+ 256 MIN SWAP 0 MAX
?DO CR I .ONE LOOP ;
: .TABLE ( -- )
16 0 DO I 16 * DUP 15 +
ATABLE KEY DROP
LOOP ;
┌────────────────────────────────────┐
│ Please move to Lesson 2 Part 080 │
└────────────────────────────────────┘