BASIC FUN: Computer Games, Puzzles, and Problems Children Can Write [1 ed.] 0380806061

MORE BASIC THAN ABC KIDS! Write your own computer games! PARENTS! Your kids can show you how! TEACHERS! Use this book

221 97 19MB

English Pages 176 [180] Year 1982

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
Introduction
1. PRINT: How the Computer Speaks
1. Poem
2. Flag
3. Love
4. Face
5. Stellar
6. Space
7. KNOCK KNOCK
8. Riddles
2. LET: Adding 2 and 2
1. Recycle
2. Baby Sister
3. Paper Route
4. Retirement
5. Moon
6. Pizza
7. Swim Team
8. Inheritance
9. Sleep-over
3. GOTO: Showing the Way
1. Stars
2. Counting
3. Power
4. Hunt
5. Gambler
6. Family Tree
4. INPUT: Talking to the Computer
1. Conversion
2. The Silicon Valley Game
3. The Great Magician
4. Batting Averages
5. Year 2000
6. Averages
7. Savings Account
8. Mileage
9. Recipe
5. STRINGS: Using Words with the Computer
1. Nonsense
2. A Man from Peru
3. A Young Lady Named Maude
4. Race
5. Rhyme
6. Names
7. Author
6. IF...THEN: How the Computer Makes Decisions
1. Tax
2. Foreign Currency
3. Mystery Code
4. Ten Speed
5. Time Difference
6. Interior Decorating
7. Driver's Test
8. Spelling
9. You Are a Detective
7. FUNCTIONS (INT, RND, ABS): Doing Complex Things the Easy Way
1. Soccer
2. Shell Game
3. Dice Game
4. Number Guessing Game
5. Number Sequences
6. How Warm Is Your Heart?
7. War
8. FOR...NEXT: The Computer Repeats Itself
1. Fancy Counting
2. Blast Off
3. Pinball
4. Paper, Rock, Scissors
5. Ring the Bell
9. FANCY PRINTING (TAB): Writing It Your Way
1. Rectangle
2. Design-a-Scarf
3. HIHO
4. Lifeguard
5. Shape
6. Party
7. Fleet
8. Award
10. SUBSCRIPTS: Where to Store Your Information
1. Most Valuable Player
2. Bank Statement
3. Pascal's Triangle
4. Sea Battle
11. SUBROUTINES: How the Pros Do It
1. Birthday
2. Math Quiz
3. Tennis
12. GAMES: Now You Can Do Your Own Thing
1. Ski Weekend
2. Backpack
Appendix A
Recommend Papers

BASIC FUN: Computer Games, Puzzles, and Problems Children Can Write [1 ed.]
 0380806061

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

Thank

You!

E

SUSAN DRAKE LIPSCOMB and MARGARET ANN ZUANICH have a unique combination of skills that contributed to the creation of BASIC FUN. Margaret Zuanich’s experience

in the

computer

field

has

included

everything

from

pro-

gramming to management consulting. She earned her Master’s Degree in Business and is now involved in computer systems training. Susan Lipscomb holds a Master’s Degree in Education and has spent fourteen years in the area of language and learning disabilities. They both live in Palo Alto, Califor-

nia.

Avon Books are available at special quantity discounts for bulk purchases for sales promotions, premiums, fund raising or educational use. Special books, or book excerpts, can also be created to fit specific needs. For details write or telephone the office of the Director of Special Markets, Avon

Books,

Dept. FP, 1790 Broadway,

New York, New York 10019, 212-399-1357.

BASIE FUN "7a

FLARE

IN

snes

PUZZLES, AND PROBLEMS CHILDREN CAN URITE Susan Drake Lipscomb and Margaret Ann Zuanich

AN AVON oa

BOOK

BASIC FUN: COMPUTER GAMES, PUZZLES, AND PROBLEMS. CHILDREN CAN WRITE is an original publication of Avon Books. This work has never before appeared in book form. 6th grade reading level has been determined by using the Fry Readability Scale. Front cover photograph shows Apple® computer. Apple is a registered trademark of Apple Computer, Book design by Joyce Kubat.

Inc.

AVON BOOKS A division of The Hearst Corporation 1790 Broadway New York, New York 10019 Copyright © 1982 by Susan Drake Lipscomb and Margaret Ann Zuanich

Published by arrangement with the authors Library of Congress Catalog Card Number: 82-4057 ISBN: 0-380-80606-1 All rights reserved. which includes the right to reproduce this book or portions thereof in any form whatsoever except as provided by the U.S. Copyright Law. For information address Avon Books First Camelot Printing, July, 1982 Library of Congress Cataloging in Publication Data Lipscomb, Susan Drake BASIC fun (An Avon Camelot book)

Summary: Introduces the fundamentals of computer programming using the BASIC programming language. Includes descriptions and listings of programs de-

signed to amuse and challenge users

1. Games—Computer programs — Juvenile literature 2. Games—Data

3.

Basic

digital

processing—Juvenile

(Computer

program

computers—Programming.

literature

language)—Juvenile 2.

Basic

literature.

(Computer

3. Games—Computer programs. 4. Computers] IL Title, Ill, Title: BA-S.LC. fun GV1469 2.L57 794 82-4057 ISBN 0-380-80606-1 AACR2

1. Zuanich,

CAMELOT TRADEMARK REG U S. PAT OFF, AND IN OTHER COUNTRIES. MARCA REGISTRADA. HECHO ENU

Printed is the DON

10

U.S.A 9

8

S A

[1.

program

Electronic language).

Margaret Ann

We are indebted to the Palo Alto Unified School District Computer Services and the students and staff at Loma Vista Elementary School.

TABLE OF CONTENTS Introduction

11

ONAGRWNH

PRINT: How the Computer Speaks Problems . Poem 14 . Flag 15 . Love 16 Face 17 . Stellar 18 Space 19

. KNOCK KNOCK . Riddles 22

21

WBDNADOARWNHH

LET: Adding 2 and 2 Problems . Recycle 24 . Baby Sister 26 . Paper Route 27 . Retirement 28 . Moon 29

. Pizza

13

23

30

. Swim Team . Inheritance . Sleep-over

31 32 33

GOTO: Showing the Way Problems 1. Stars 36 2. Counting 38 3. Power 39 4. Hunt 40 5. Gambler 42 6. Family Tree 44

35

TABLE OF CONTENTS

* 7

INPUT: Talking to the Computer Problems . Conversion 47 . Silicon Valley Game 48 . The Great Magician 50 . Batting Averages 52

OWNDNARPWNHH

4

. Year 2000 . . . .

46

54

Averages 55 Savings Account Mileage 58 Recipe 60

56

5

STRINGS: Using Words with the Computer 62 Problems 1. Nonsense 63 2. A Man from Peru 64 3. A Young Lady Named Maude 4. Race 66 5. Rhyme 68 6. Names 70 7. Author val

6

IF.

ODNDUPWNHH

..THEN: How the Computer Makes Decisions 73 Problems . Tax 74 . Foreign Currency 76 . Mystery Code 78 . Ten Speed 79 . Time Differences 81 . Interior Decorating 83 . Diver’s Test 85 . Spelling 87 . You Are a Detective 89

8 + BASIC FUN

FUNCTIONS (INT, RND, ABS): Doing Complex Things the Easy Way 92 Problems . Soccer 93 . Shell Game 95 . Dice Game 97 . Number Guessing Game 100 . Number Sequences 103 . How Warm Is Your Heart? 105

NOOBRWNH

7

8

. War

FOR.

. . NEXT: The Computer Repeats Itself 110 Problems 1. Fancy Counting 111

2. Blast Off 3. Pinball

9

107

112 113 ©

4. Paper, Rock,

Scissors

5. Ring the Bell

118

115

FANCY PRINTING (TAB): Writing It Your Way 121 Problems 1. Rectangle 122 2. Design-a-Scarf 124

10

3. HIHO

126

4. Lifeguard 5. Shape

129

127

6. Party

131

7. Fleet 8. Award

133 135

SUBSCRIPTS: Where to Store Your Information 137 TABLE OF CONTENTS

* 9

Problems 1. Most Valuable Player 138 2. Bank Statement 141 3. Pascal’s Triangle 143 4. Sea Battle 145 11

SUBROUTINES: How the Pros Do It Problems 1. Birthday 150 2. Math Quiz 153 3. Tennis 157

12

GAMES: Now You Can Do Your Own Thing 163 Problems 1. Ski Weekend 164 2. Backpack 170 Appendix A

10 * BASIC FUN

175

149

INTRODUCTION Are you getting bored with running packaged computer games? You can design your own once you learn how to communicate with the computer. BASIC Fun shows step-bystep how you can write computer programs—to solve your own problems, print your own pictures and invent your own

games. Special languages are used to communicate with a computer. For micro-computers, the language is called microBASIC. Each word in this language is called a programming statement. Computer programs are made up of programming statements which tell the computer what you want it to do. BASIC Fun teaches you micro-BASIC by giving you simple programs showing how different programming statements work and where they belong in a program. First you should type and run the programs as they are printed in the book. Then see if you can make the few changes we’ve suggested, or use your own ideas to check your understanding of a programming statement. Finally, try to design your own programs or games just using ours as a guide.

Warning! You should use all the programs within each chapter—or at least read and understand those you don’t use—before moving on to the next chapter. Following chapters build on and expand ideas learned in earlier ones—so work through the programs in the order they appear in the book. Above all, we hope you have as much fun exploring your computer’s posssibilities and inventing programs as we did in writing this book. The programs included in this text can be used on any computer that uses the programming language BASIC. They INTRODUCTION * 11

were written in Applesoft BASIC using the Apple ii Plus and tested on the Atari, Radio Shack TRS-80, Texas Instruments TI-99/4A, Hewlett-Packard HP-2000, IBM Personal Computer and the Osborn. We used a standard version of BASIC which is compatible with all of these computers. However, there are a few areas in which the computers differ. We have indicated in the Computer Notes following relevant programs any changes necessary to use the program on a particular computer. The Appendix contains a more detailed discussion of these differences. Before you begin using the programs, read the Appendix, and if necessary, refer to the Programmer’s reference manual for your computer. In order to make the programs as general as possible, we avoided using certain features included in one version of BASIC but left out in others. Once you become familiar with your own computer, you can add enhancements provided by your particular version of BASIC. If you have trouble making a program work on your computer, we recommend the following steps: 1. Check your program line-by-line against the listing in the book. 2. Make sure you have made the changes for your computer given in the Computer Notes following each program. 3. Check the BASIC manual for your computer for any changes required for your version of BASIC. If you still cannot make a program work on your computer, and think it is a genuine bug, send a description of the problem and a self-addressed, stamped envelope to the publisher. We will respond as quickly as we can to all such correspondence.

12 + BASIC

FUN

PRINT How the Computer Speaks This programming statement allows you to make the computer type out anything you

want

on the screen

ONADAHRWNHH

PROBLEMS . Poem

. Flag . Love . Face

. . . .

Stellar Space KNOCK KNOCK Riddles

or paper.

POEM You can turn your favorite poem whenever

into a computer program. Then,

you want to read your poem,

just run your program.

Here is a poem we wrote. Put this in your computer by typing each line exactly as shown in the Program Listing. Once

you

have our poem

working

on your computer,

try writing

one of your own. SAMPLE RUN ROSES ARE RED VIOLETS ARE BLUE YOU CAN LERRN TO WRITE FOR MOST THINGS YOU DO

PROGRAMS

PROGRAM LISTING 100 110 120 130 140

Note:

PRINT PRINT PRINT PRINT END

“ROSES ARE RED” “YIOLETS ARE BLUE” “YOU CAN LEARN TO WRITE PROGRAMS” “FOR MOST THINGS YOU DO”

Lines 100-130: When this program is run, the computer prints out every letter between the two “ marks on each line. Line 140: last line in computers this text so

14 + BASIC FUN

The end statement tells the computer that it is the the program. This statement is required for some and optional for others. We have included it in the programs can be used on most computers.

FLAG This program draws the American flag. Can you design a your own and write a program that draws your flag?

flag of

SAMPLE RUN SOOO

eee?

eee?

xe@oe?e

POSS

RK KA AAR ARARAKARAAAARRARA A

:

Sia

:

TT NOKIA RICH

HEM

RIKI

x

FROM | esaron +

0

REE IERA RST URRNRRRICRERR DONS

Use

PROGRAM

RADA

LANIER

REAR

LISTING

100

PRINT

“eeeeeooooxx xxx xXXXXXXXXXXXAXAKR RAR

110

PRINT

“eee

120

PRINT

“@

130 140 150

PRINT PRINT PRINT

“ee eee x" “© © © © @XXKXXXXXXXXXKXAXXKXAAAK KARA” “XxX x"

160)

PRINT

“XXXXXXXXXXAXXRXRAAXXAXAARRARAXAARRAAAX ”

170

PRINT

“xX

180)

PRINT

“XXXXXXXxXXXKARAKRAAKKKKAAXA RK AARKARAA RK ”

190 200 210

PRINT PRINT END

“xX x" “XXXXXXXXXXXXAKARARRAAKARARA KAA RAR AKA ”

Note:

©

eo ©

©

xe @XXXXXXXXXXKXKXXXRXAARARRARX ”

x”

Notice on the Program Listing that each line has a number. These tell the computer in what order the lines are to be run. You add a new line between two existing lines by giving the

new

line a number

which

falls between

the existing line

numbers.

PRINT:

How the Computer Speaks * 15

LOVE This program prints a very familiar word. You can do the same thing with your own name or initials. SAMPLE RUN x x x a x x td x XXRX

x x x x % x x

x x R x x x

x %

PROGRAM 110 120 130 140 150 160 170) 180° 190 200

x

PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT END

a x x x x

x x fad x a

teTatatad x x a RARK x a rad XxX

x x x x xx x

LISTING “

a Kx

*

16 * BASIC FUN

aK %

4 « x « *%

x « K a x a4 xa KX «

FACE This program draws a person’s face. See if you can change the expression, or add some hair. “ What happens if you forget a when you are typing a PRINT statement?

SAMPLE RUN

PROGRAM LISTING 130 140 150 160 170 180 190

PRINT PRINT PRINT PRINT PRINT PRINT END

“ “ “ ” “ “

PRINT:

How the Computer Speaks * 17

STELLAR This program draws a very familiar constellation of stars. Try writing a program that draws a different constellation.

SAMPLE RUN

THIS

I5

4 DRAWING

OF

THE

SIG

DIPPER

PROGRAM LISTING

PRINT PRINT " * RINT PRINT PRINT "THIS IS A DRAWING UF THE 816 DIPPER" ENC! Note:

Lines 165 and 166: prints a blank line.

18 * BASIC FUN

The PRINT

statement without any “ ”

SPACE This program

draws a U.S.

rocket ship which blasts off from your

video terminal. See if you can design your own model.

SAMPLE RUN

PROGRAM 100° 110 120 130 140 150 160 170 180 190 200 210 220 230 e440 250 260 270 230

LISTING

PRINT ” PRINT “ PRINT “ PRINT “ PRINT “ PRINT “ PRINT “ PRINT “ PRINT “ PRINT “ PRINT “ PRINT “ PRINT ” FOR I=1 FOR J=1 NEXT J PRINT NEXT I END

an 4 a

oN =

a I Iu I vl Ry el yo! I ea I “ eeoeoeo ooo 70 TO

. ee

o”

15 100

PRINT: How the Computer Speaks * 19

Note:

This program shows you that you can put any number, letter or special character in a PRINT statement. Lines 230-270: These statements make the rocket ship blast

off your video terminal. They are explained further in Chap-

ter 8.

Special credit to Chris Carison

20 + BASIC FUN

KNOCK KNOCK The computer can tell KNOCK KNOCK jokes. Here is one that we like. Can you write a program that tells some of your favorite KNOCK KNOCK jokes?

SAMPLE

RUN

KNOCK

KNOCK

WHO’S

THERE?

AMOS AMOS

WHO?

AMOS

QUITO

BIT

ME?

PROGRAM LISTING 100 110 120 130 140 150 160 170 180 190

PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT END

“KNOCK

KNOCK”

“WHOS

THERE?”

“AMOS” “AMOS

wHO?”

“AMOS

QUITO

BIT

ME?”

PRINT:

How the Computer Speaks * 21

RIDDLES You can put riddles into a computer program too. Here are 3 riddles. See if you can figure out the answers. Write a riddle program of your own using your favorite riddles.

SAMPLE WHICH 1 » 2. 3.

RUN

HMSHERS

60

TO

EACH

OF

THE

FOLLHING

RIOULES?

WHY DIO THE CHICKEN CROSS THE ROAD? WHY DIO THE FARMER CALL HIS PIG INK? WHAT HAPPENS TO DUCKS WHEN THEY FLY UPSIDE

DOWN?

ANSHERS BECAUSE

A BB.

THEY

C.

TO

GET

PROGRAM 164 116) 124 124 144 15@ 164 176 4

HE

GUACK

TO

NEWER

STAYED

IN

HIS

PEN

LF

THE

OTHER

SIDE

LISTING

PRINT “WHICH ANSHERS 60 TO EACH OF THE FOLLHING RIDDLES?" PRINT PRINT “1. HH DIO THE CHICKEN CROSS THE ROAD?" PRINT " WHY DIO THE FARMER CALL HIS PIG INK?" PRINT " HHAT HAPPENS TO OUCKS HHEN THEY FLY UPSIDE OOHN?" PRINT " ---" PRINT PRINT “ANSHERS” PRINT PRINT "A. BECHUSE HE MHEVER STAYED IN HIS PEN" PRINT "B. THEY GUACE LIP" PRINT "C. TO GET TO THE OTHER SIDE" ENO

Special credit to Paul Zuanich

22 + BASIC FUN

LeT Adding 2 and 2 You use this programming statement when you want to tell the computer to do arithmetic.

WONKDUNHWNHH

PROBLEMS

. Recycle . . . . . . . .

Baby Sister Paper Route Retirement Moon Pizza Swim Team Inheritance Sleep-over

RECYCLE You

and two of your friends are collecting aluminum

cans. If you

collect 200 cans, and one friend collects 140 cans and the other 325, how many will you have altogether? This program gives you the answer. How would you change the program if you collected 300 cans? If another friend wanted to join your group, how would you change the program in order to add in the cans this friend collected? You can use this same program to add other things, like test

scores, money you have earned or the number of records you own. SAMPLE

RUN

200

140

+

+

325

=

665

TOTAL

CANS

COLLECTED

PROGRAM LISTING 100 110

LET LET

A=e00 B=140

120

LET

C=325

130 140

LET D=A+B+C PRINT AS" + COLLECTED” END

150

Note:

"SBS"

+

“SC3"

=

“$D5"

TOTAL

CANS

Lines 100-130: A, B, C and D are numeric variables, and they can be set equal to any number or calculation. Line 130: The symbol +

tells the computer to add.

VARIABLE LIST Tells you what the variables in a program are used for. A—Number of cans you collected B—Number of cans one friend collected

C—Number of cans the other friend collected D—Sum

of A, B, and C

24 + BASIC FUN

COMPUTER NOTES

Radio Shack TRS-80 Color BASIC Does not use the word LET. Just leave this word out when entering lines 100-130. For example:

Instead of

LET A=200

A=200 Use Remember to leave out the word LET in all the programs in the rest of the text too.

LET: Adding 2 and 2 + 25

BABY SISTER You are 10 years old now, and your baby sister is 2. How old will your sister be when you are 20? This program tells you. How would you change the program if you were only 8 years old now? What if your sister is older than you, can you still use this program?

SAMPLE RUN IF YOU AND YOUR SISTER YOUR SISTER WILL BE 1e

PROGRAM 100 110 120 130 140 150 160

Note:

ARE 8 WHEN

YEARS YOU ARE

APART 20

IN

AGE

LISTING

LET A=10 LET S=2 LET D=A-S$ LET B=e0-D PRINT “IF YOU AND YOUR SISTER ARE “3D3~ YEARS IN AGE” PRINT “YOUR SISTER WILL BE “3B5~ WHEN YOU ARE END

Lines 120 subtract.

VARIABLE

and

130:

The

symbol -

LIST

A—Your age now S—Your sister’s age now

D—Years difference B—Your sister’s age when you are 20

26 * BASIC FUN

tells the

APART 20.”

computer

to

PAPER ROUTE You need to earn some money for Christmas presents. Your friend suggested that you deliver papers. If you expect to earn $20 a week

and there are 2'/2 months until Christmas, how much money will you have for presents? Use this program to get the answer.

Try changing the number of months or the amount of money you will earn each week. SAMPLE

RUN

IF YOU ERRN $ YOU WILL HAYE

20 $

200

EACH WEEK AFTER

2.5

MONTHS:

PROGRAM LISTING 100 110 120 130 140) 150

LET wW=e0 LET M=e.5 LET T=4emMew PRINT “IF YOU EARN $"5W3" ERCH WEEK” PRINT “YOU WILL HAYE $ "STS" AFTER “3M3" END

Note:

Line 120: The symbol * tells the computer to multiply.

MONTHS”

Line 120: This program uses four weeks in a month to make the calculations easier.

VARIABLE LIST

W—Amount

of money you earn each week

M—Number of months until Christmas T—Total amount of money you will earn

LET: Adding 2 and 2 + 27

RETIREMENT If you want to earn $900,000 before you retire and you can earn $50,000 a year, how many years will you have to work before you can retire? This program gives you the answer. Suppose you want to earn $1,500,000. Can you change the program to give you the right answer?

SAMPLE

RUN

IF YOU EARN $ Soong, PER yOU WILL HAVE TO WORK FOR 18 IN ORDER TO EARN $ 300000,

PROGRAM 100 110 120 130 140 150 160

Note:

YEAF YEARS

LISTING

LET A=900000 LET B=50000. LET C=A’B PRINT “IF YOU EARN $“5B5~ PER YERR” PRINT “YOU WILL HAVE TO WORK FOR “$C3" PRINT “IN ORDER TO ERRN $ “SA END

YEARS”

Line 120: The symbol / tells the computer to divide.

VARIABLE

LIST

A—Total amount you want to earn

B—Amount you can earn each year C—Number of years you must work

28 - BASIC FUN

MOON If you weigh 50 kilograms on Earth, how much would you weigh on the moon? This program can calculate the answer. What if you weigh 45 kilograms? How would you change the program?

SAMPLE RUN I CAN CONVERT YOUR IF YOU WEIGHT SO YOu WILL WEIGHT &.

ERRTH WEIGHT TO YOUR KILOGRAMS ON EARTH ON THE MOON

MOON

UVEIGHT

PROGRAM LISTING 100 110 120 130 140 150 160

Note:

PRINT “I CAN CONVERT YOUR ERRTH WEIGHT TO YOUR MOON WEIGHT” C=1/76 0 M=WeC PRINT “IF YOU WEIGH “$W5” KILOGRAMS ON ERRTH™ PRINT “YOU WILL WEIGH “3m5" ON THE MOON” END

Lines 110-130: M, W and C are called numeric variables, and they can be set equal to any number.

VARIABLE

LIST

C—Conversion factor—Earth to moon weight W—Your weight on Earth

M—Your weight on the moon

LET: Adding 2 and 2 + 29

PIZZA Five of you are going out for pizza and cokes. You know that the

pizza will cost $10 and a coke will cost $1. How

much

money

should you take with you to pay for your share? Use this program

for the answer. Can you change the price of the pizza or the number of friends in this program? What if you want 2 cokes? How would you change the program?

SAMPLE RUN TO PAY YOUR AND BUY AS

PROGRAM

PRINT PRINT END

Note:

Line

VARIABLE

SHARE 1

OF THE $ 10 COKE» YOU WILL

PIZZA NEED $

3

LISTING

“TO PAY YOUR SHARE OF THE $"5P5" “AND BUY A S$"SC3" COKEs YOU WILL

130: The computer

LIST

P—Price of pizza C—Cost of coke F—Number of friends

30 * BASIC FUN

divides first, then adds.

PIZZA" NEED $"5m

SWIM TEAM In your workouts with the swim team, your coach has you swim 30

laps a day. If you swim 4 days a week, how many miles will you swim each week? This program gives you the answer for a pool 25 yards long. Can you change the program so that you can find out how far you swim in a month? What if your pool is only 20 yards long? How would you change the program?

SAMPLE RUN IF YOU SWIM 30 yOU WILL SWIM @

LAPS TOTAL

A LAY FOR 4 OF 1.70455

DAYS

MILES

PROGRAM LISTING 100 110 120 130 140 150 160 170

Note:

LET L=30 LET D=4 LET N=LeD LET Y=Nee5 LET M=Ye3-S2ean PRINT “IF YOU SWIM “SL5" LAPS A PRINT “YOU WILL Swim A TOTAL OF END

DRY FOR “sDs" "sms" MILES"

DAYS”

Line 140: The computer multiplies first, then divides.

VARIABLE LIST L—Number of laps per day D—Number of days per week N—Total number of laps per week Y—Total number of yards per week M—Number of miles per week

LET: Adding 2 and 2 * 31

INHERITANCE You have just received the news that you are to inherit some money

from a distant uncle. You will receive $200 a month until you are 18. If you are 10 now, how much money will you inherit altogether? Use this program to find out. If you were to receive $300 a month, how would you change this program? What if you are only 8 years old?

SAMPLE RUN IF YOU RECEIVE $ YOU WILL PECEIVE

PROGRAM 100) 110 120 130° 140) 150 160

Note:

cOG FOR 3 19200

THE IN

MONTHS

LISTING

LET A200 LET Y=10 LET M=(18-Y)*12 LET T=M*kA PRINT "IF YOU RECEIVE $ "3M; MONTHS" PRINT "YOU WILL RECIEVE END

Line 120: multiply.

VARIABLE

NEXT 96 TOTAL

The

(_ )

";A;" $"3T3;"

tell the computer

LIST

A—Monthly payment Y—Your current age

M—Number of months before you turn 18 T—Total amount you will receive

32 * BASIC FUN

FOR IN

THE

NEXT

TOTAL"

to subtract first, then

SLEEP-OVER You are planning a sleep-over with 5 friends. Your mother told you to buy 2 hot dogs, 3 candy bars and something to read for yourself

and each guest. You also need some soda, and you know that 1 liter of soda is enough for 3 of you. How much food will you buy at the store? Use this program to get the answer.

What if one of your friends cannot eat candy? How would you change the program?

SAMPLE RUN FOR ‘YOU 2

A SLEEP-OVER WITH 5S NEED 12 HOT DOGS, 18 LITERS OF SODA AND 6

FRIENDS CANDY EARS comic BOOKS

PROGRAM LISTING 100 110 120 130 150 160 170 180 190 200 210

Note:

A+1) oR LET F=cA+120C LET G=c¢A+1>-D PRINT “FOR A SLEEP-OVER WITH “3A5" FRIENDS” PRINT “YOU NEED “SES” HOT DOGS: “$F” CANDY BARS” PRINT G3" LITERS OF SODA AND “3A+13" COMIC BOOKS” END

Lines 150, 160 and 170: The (_) first and then multiply or divide.

tell the computer to add

VARIABLE LIST A—Number of guests B—Number of hot dogs per person LET: Adding 2 and 2 + 33

C—Number of candy bars per person D—Number of guests per 1 liter of soda E—Total number of hot dogs needed F—Total number of candy bars needed G—Total number of liters of soda needed

34 + BASIC FUN

GOTO Showing the Way This programming statement allows you to tell the computer which line number to execute next.

This lets you repeat some lines in your program over and over.

aAnRWNH

PROBLEMS . Stars . Counting . Power Hunt . Gambler

. Family Tree

STARS Write this program for your star-gazing friends. when you are tired of seeing stars. Create

your

own

universe

or message

Hit the break key

by substituting your

own

lines.

SAMPLE

RUN

°

oe

oo

. °

°

°

. °

°

°

o

° o

.

ooo

o

ooo

o °

o

° oo

° .

@

° oo

ZEEING

° °

°

=TARS?

oo

°

° °

o

o

°

° .

°

ooo

°

ooo

°

PROGRAM

LISTING

REMeeTHI® PRINT " PRINT PRINT

“eo “

PRINT

“o

PRINT



PRINT



PRINT

~

PRINT

~

PRINT

°

"

PRINT " PRINT " 6O0TO 105 ENE

36 + BASIC FUN

PROGRAM °

If

FOR

2 TARR

° eo



.

GAZERSee oo

°

se

-

Py

ooo

°

a

o

°

.

” rag

oo

SEEING

2TARS

ooo -

° @

o

Note:

Line 100: REM is a “remark” statement that appears in the listing but will not print when the program is run. It’s the programmer’s way of storing information for future reference. Line 160: GOTO 105 tells the computer to return to line 105 and run through the program again.

Special credit to Felicia Lo.

GOTO:

Showing the Way * 37

COUNTING This program counts by 2’s. Hit your computer’s break key to stop the program. See if you can change it to count by 5’s.

SAMPLE CAN

COUNT

BY

2

on

pr

I

RUN

PROGRAM 100) 110 115) 120 125 1300 Note:

LISTING

PRINT “I CAN COUNT LET ASO LET A=A+2 PRINT A 560TO 115 END

BY 2"

Line 110: Starts A at zero. Line 115: Adds 2 more to A each time the computer returns to that line.

Line 125: Tells the computer to return to line 115 and run through the program again.

38 » BASIC FUN

POWER This program prints all the powers of 2. Use your computer’s break key to stop the counting. Can you change it to print all the powers of 3 or 4?

SAMPLE RUN IT

CAN

SHOW

YOU

ALL

THE

POWERS

OF

2

PROGRAM LISTING 100 110 115) 120 125 130 135

Note:

PRINT “I CAN LET Bee LET A=B PRINT A LET A=BeR GOTO 120 END

SHOW

YOU

ALL

THE

POWERS

OF

2”

Can you tell what the computer is doing in line 125? Notice that the variable A is on both sides of the = sign.

VARIABLE LIST B—Number starting with A—Result of calculation

GOTO:

Showing the Way * 39

HUNT This program is a scrambled adventure. Thanks to the GOTO statement, the computer can unscramble and print out the adventure in a flash. Can you beat the computer? Design a scrambled program of your

own for your friends to try. SAMPLE RUN YOU ARE ON RAN EXPEDITION SEARCHING FOR THE LOST ARK. A FRIEND SHOWS YOU A LONG LOST MAP AND “X~ MARKS THE Spot WHERE IT WAS BURIED. yYOU SEE THE “X° ON THE MAP. IT IS BY THE TEMPLE OF THE ANCIENT SUN GOD. YOUR CREW STARTS DIGGING. THEY UNCOVER A PIT FULL OF SNAKESs BUT THE ARK IS THERE?! YOU ENTER THE PIT WITH ROPES» AVOIDING THE SNAKES» AND SECURE THE ROPES TO THE ARK. A HELICOPTER SAFELY HOISTS IT GUTs BUT THERE ARE NO ROPES LEFT FOR YOU. TOUGH LUCK?! THINK OF YOUR OWN SOLUTION.

PROGRAM LISTING 100 110 120 130 140) 150 160 170 180 190 200 210 220 230

PRINT “YOU ARE ON AN EXPEDITION SEARCHING FOR THE LOST ARK.” GOTO 260 PRINT “YOUR CREW STARTS DIGGING.” GOTO een PRINT “AND SECURE THE ROPES TO THE ARK. A HELICOPTER SAFELY” GOTO 280 PRINT “WHERE IT WAS BURIED.” «=GOTO 240 PRINT “TOUGH LUCK?! THINk OF YOUR OWN SOLUTION.” GOTO 340 PRINT "IS THERE?!” GOTO 300 PRINT “THEY UNCOVER A PIT FULL OF SNAKES> BUT THE ARK” GOTO 200

40 + BASIC FUN

240 250 260 270 e380 290 300 310 320 330 340

PRINT “YOU SEE THE “xX* ON THE MAP. IT IS BY THE TEMPLE OF THE” GoTo 320 PRINT “A FRIEND SHOWS YOU A LONG LOST MAP AND “x” MARKS THE SPOT” GOTO 160 PRINT “HOISTS IT OUT» BUT THERE ARE NO ROPES LEFT FoR vou.” GoTo 1980 PRINT “YOU ENTER THE PIT WITH ROPES» AYOIDING THE SNAKES» “ GOTO 140 PRINT “ANCIENT SUN GOD.“ GOTO 120 END

GOTO:

Showing the Way ¢ 41

GAMBLER If you bet $2 at the blackjack tables at 2 to 1 odds and let your winnings ride, how quickly would your money grow? This program tells you. Use your computer’s break key to stop the program. How would you change the program if you wanted to start with a

$5 bet? RUN

THIS PROGRAM TRBLE WILL GROW IF RIDE

SHOWS YOU

aw & tote

ROUND

YOU KEEP

HOW

A

WINNING

$2

BET

AND

AT LET

THE

BLACKJACK

YOUR

WINNINGS

WINNINGS ba) 12.5 31.25 78.13 195.31 488.25 1220.7 3051.76 APAAABBAAA

SAMPLE

PROGRAM LISTING 100 105 110 115 120 125 130 135 140

145 150 155

PRINT "THIS PROGRAM SHOWS YOU HOW A $2 BET AT THE BLACKJACK TABLE" PRINT "WILL GROW IF YOU KEEP WINNING AND LET YOUR WINNINGS RIDE" PRINT LET A=2 LET B=0 PRINT " ROUND WINNINGS" LET A=A+A+A/2 LET B=B+1 LET C=INT(AK100+.5)/100

PRINT " GOTO 130 END

42 - BASIC FUN

"SB"

$"3C

Note:

Line 140: This formula rounds your winnings to the nearest cent.

Line 145: A; ora, is required in a PRINT STATEMENT between a numeric variable and the quotation marks. A ; uses fewer spaces than a , . However, the spacing varies among computers so you may have to experiment with yours.

GOTO:

Showing the Way * 43

FAMILY TREE This program demonstrates how the number of people in your family can increase. Use your computer's break key to stop the program. See what happens if you change the number of children each person has, or the time between generations. Write a similar program to estimate the number of offspring your pet could have

SAMPLE RUN THIS PROGRAM FRMILY CRN INCREASE

SHOWS

HOW

THE

NUMBER

OF

PEOPLE

IN

YOUR

STARTING WITH 2 DESCENDENTS IF EACH PERSON HAS 2 CHILDREN WITH 20 YERRS BETWEEN GENERATIONS YERRS 20 40 60

DESCENDENTS 4 a 16 64 128 256 Sle 12 204 4

PROGRAM 100

LISTING

105) 115) 1200

PRINT “THIS PROGRAM SHOWS IN YOUR FRRILY PRINT “CAN INCREASE” PRINT «~T=en

125)

Y=0

44 + BASIC FUN

HOW

THE

NUMBER

OF

PEOPLE

RINT PRINT PRINT

“STARTING WITH "SAS" DESCENDENTS” “IF ERCH PERSON HAS “5C3" CHILDREN” “WITH “STS "YEARS BETWEEN GENERATIONS”

PRINT



YEARS

PRINT " GOTO 17 END

“SY3"

DESCENDENTS”

o

a

130 135 140 145 150 155 160 165 170 175 190 185 190 195

VARIABLE LIST T—Years between generations A—Number of descendants in first generation C—Number of children per person

GOTO:

Showing the Way * 45

INPUT Talking to the Computer This programming statement allows

you to enter different numbers into your program for the same problem each time it is run.

OMANDOBWNHH

PROBLEMS . Conversion . Silicon Valley Game . The Great Magician . Batting Averages . Year 2000 . Averages

. Savings Account . Mileage . Recipe

CONVERSION Do you know how many centimeters tall you are? Do you know how many centimeters tall your father is? You can use this program to convert inches to centimeters.

You could also use a very similar program to convert pounds to kilograms or gallons to liters. To stop this program, hit the break key instead of entering a

number. SAMPLE RUN CONVERT

INCHES

INCHES 760 152.4

TO CENTIMETERS CENTIMETERS

INCHES 7100 e254 CENTIMETERS

PROGRAM LISTING 100 120

PRINT PRINT

130 140 150) 160 170 180

PRINT “INCHES"S$ INPUT I LET C=lee.54 PRINT C3" CENTIMETERS” GOTO 1e0 END

Note:

“CONVERT

INCHES

TO CENTIMETERS”

Line 140: The INPUT statement allows you to type in differ-

ent numeric values for I each time this statement is run. VARIABLE LIST

I—Inches C—Centimeters

INPUT: Talking to the Computer * 47

SILICON VALLEY GAME If you were a Silicon Valley executive and you spend, how many Mercedes could you buy? You gram to get the answer. To stop the program, hit stead of entering a number. What if you decided to economize and only how would you change this program?

had $200,000 to can use this prothe break key inspend

$100,000,

SAMPLE RUN YOU YOU HOW

ARE A SILICON VALLEY HAVE 20teoo0 DOLLARS MANY CAN YOU BLY?

TYPE IN THE PRICE yOu COULD Buy «6 AND HAVE cond

PROGRAM

EXECUTIVE AND TO SPEND ON MERCEDES

OF

ONE MERCEDES? 20000 MERCEDES DOLLARS LEFT OVER.

LISTING

100° 110

PRINT PRINT

“YOU “YOU

ARE A SILICON VALLEY HAYE 200.000 DOLLARS

120 140)

MERCEDES” PRINT “HOW PRINT

150 160 170)

PRINT “TYPE IN THE INPUT A LET Beeonnon.A

MANY

CAN

YOU

PRICE

"STs" ; GOTO “END

Note:

EXECUTIVE AND” TO SPEND ON

BUY?"

OF

ONE

MERCEDES"$

“SBS” MERCEDES" DOLLARS LEFT OVER.”

140

Line 150: The ; stops the computer from moving to the next line. This keeps the input on the same line as the print.

Line

180: This statement forces B to be a whole number.

Chapter 7 explains how the INT (Integer) function works.

48 + BASIC FUN

VARIABLE LIST

A—Price of one Mercedes B—Number of Mercedes you could buy T—Money you have left over

INPUT: Talking to the Computer + 49

THE GREAT MAGICIAN Teach the computer a magic trick! Think of a number, follow the instructions and this program will guess your number. Don’t be surprised if the computer is right every time. Can you figure out how it does the trick? Can you write a magic trick of your own?

SAMPLE

RUN

HI> I AM THE GREAT MAGICIAN. THINK OF A ONUMBER> ANSWER MY GUESTION AND TI WILL TRY TO GUESS YOUR NUMBER. Oks THINK OF A NUMBERBUT DON’T TELL

ME

YET.

NOW» TREE YOUR NUMBER AND ADD Ss. MULTIPLY THE RESULT BY 3 AND THEN SUBTRACT MULTIPLY THIS RESULT RY & AND THEN ADD 4. WHAT DO yOU HAVE ‘OUR NUMBER If 10

PROGRAM

&.

LISTING

100 110° 120° 120 140)

REM@eNUMBER GUESSING GAMEoe PRINT “HIs I AM THE GREAT MAGICIAN.” PRINT “THINK OF A NUMBER: ANSWER MY QUESTION” PRINT “AND I WILL TRY TO SUESS YOUR NUMBER.” PRINT “Oks THINK OF A NUMBERBUT DON’T TELL ME

150)

PRINT

160

PRINT "NOW TAKE YOUR NUMBER AND ADD RESULT BY 5.” PRINT “NOW MULTIPLY BY d+ DIVIDE BY SUBTRACT 1." PRINT “WHAT DO YOU HAYES INPUT B LET C=¢B+1-5S)e5-805-3 PRINT “YOUR NUMBER IS "Ss END

170° 130 190 200 210 220

Note:

3. S

DIVIDE AND

ADD

YET.”

THE 5.

Line 200: The computer does calculations with numeric variables. This is called a numeric expression.

50 + BASIC FUN

VARIABLE LIST B—Result of calculations C—Number to guess

INPUT: Talking to the Computer * 51

BATTING AVERAGES This program calculates batting averages. You could use it to help your coach pick the players for your All Star team.

SAMPLE RUN CALCULATE

A

PLAYER’S

BATTING

AYERAGE

NUMBER OF TIMES AT BAT? 30 NUMBER OF HITS 76 NUMBER OF WALK S712 YOUR BATTING AYERAGE 18 3.323332 NUMBER OF TIMES AT BAT715 NUMBER OF HIT NUMBER OF WALK S70 YOUR BATTING AVERAGE If.

PROGRAM LISTING PRINT

“CALCULATE

A PLAYER’S

PRINT

“NUMBER

OF

TIMES

INPUT

B

PRINT INPUT

“NUMBER H

OF

HITS"3

PRINT

“NUMBER

OF

WALES'S

LET ASH- «B-W? PRINT “YOUR BATTING 6O0TO END

Note:

AT

AYERASE

BATTING

AVERAGE”

BATS

IS

"3A

120

Notice that this program uses 3 different input statements.

52 * BASIC FUN

VARIABLE LIST

B—Number of times at bat H—Number of hits W—Number of walks A—Batting average

INPUT: Talking to the Computer * 53

YEAR 2000 How old will you be in the year 2000? How old will your best friend be? You can use this program to find out. How would you change this program if you wanted to know your age in the year 2025?

SAMPLE RUN FIND

OUT

HOW

OLD

YOU

WILL

BE

IN THE YEAR

HOW OLD ARE YOU NOW71e2 WHAT YEAR If IT NOW?71952 IN THE YEAR 2000. YOU WILL

BE

30

HOW OLD ARE YOU NOW? Ss WHAT YEAR If IT NOW?71922 IN THE YEAR 20s YOU WILL

BE

53

PROGRAM 100

eood

LISTING

PRINT

“FIND

QUT

HOW

OLD

YOU

WILL

BE

IN

THE

eoog"

PRINT PRINT “HOW OLD ARE YOU NOW"s INPUT A PRINT “WHAT YERR If IT NOW" s INPUT ¥ FEMeenOW CALCULATE THE NUMBER OF YEARS LET T=e000-7+A PRINT “IN THE YEAR 200s YOU WILL BE “$T 6O0TO 1e0 END

VARIABLE

LIST

A—Your age now Y—Current year

T—Your age in the year 2000

54 + BASIC FUN

YEAR

AVERAGES This program calculates the average of 5 numbers. You can use it to calculate test averages, the average age of 5 of your friends, or the average temperature over 5 days. Can you think of other uses for

this program? What if you need the average of 6 numbers? Can you change this program to calculate your answers?

SAMPLE RUN CALCULATE INPUT THE

THE AVERAGE OF FIVE NUMBERS NUMBERS LIKE THIS 1sé2324s5

NUMBERS 7105203 30+40950 AVERAGE IS 30

PROGRAM LISTING 100 110 120 130 140 150 160 170) 180

Note:

PRINT “CALCULATE THE AYERAGE OF FIVE NUMBERS” PRINT “INPUT THE NUMBERS LIKE THIS 192s394:5" PRINT PRINT “NUMBERS"$ INPUT A> B>C>DsE LET T=(A+B+C+D+E>“5 PRINT “AVERAGE IS “sT PRINT END

Line 150: The (_)

tell the computer to add all 5 numbers to-

gether before dividing. Line 140: Notice that you can put in more than 1 number in an INPUT statement.

VARIABLE LIST

T—Average of 5 numbers

INPUT: Talking to the Computer * 55

SAVINGS ACCOUNT Suppose your grandmother gives you some money to save for your college education.

If you put it in the bank at the current interest

rate, how much money will you have when you are ready to start college? You can change the interest rate or the original amount, how much money you have.

and see

SAMPLE KUN FIND OUT HOW ACCOUNT

YOUR

MONEY

WILL

GROW

IN

YOUR

SAYINGS

ORIGINAL AMOUNT?7100 NUMBER OF YEARS7S YEARLY INTEREST RATE CIN AFTER 5 YEARS, YOU

DECIMAL) 7.055 WILL HAYE 130.7

DOLLARS

ORIGINAL AMOUNT? 200 NUMBER OF YEARS710 YEARLY INTEREST RATE CIN AFTER 10 YEARS» YOU

DECIMAL) 7.15 WILL HAYE 309.11

DOLLARS

PROGRAM LISTING 100

PRINT

“FIND

SAYINGS

OUT

HOW

YOUR

120 120) 140

PRINT PRINT INPUT

150

PRINT

“NUMBER

OF

160 170

INPUT PRINT

N “YERRLY

INTEREST

180 190

INPUT I LET T=Reci+I>

200 210

LET T=INT9 7100 PRINT “AFTER “3N5" YEARSs DOLLARS” PRINT 60TO 120 END

220 230 240

MONEY

WILL

GROW

IN

YOUR

ACCOUNT™ “ORIGINAL A

56 - BASIC FUN

AMOUNT" S$

YERRS” RATECIN

DECIMAL?“S$

eo YOU

WILL

HAVE

“Ss Ts"

Note:

Line 190: The symbol ** tells the computer to raise a number to a power, ie. LETX = 2° *4 tells the computer to raise 2 to the 4th power. Please note—your computer may use a

different

symbol.

Refer

to

your

BASIC

manual

under

exponentiation to find out what your computer uses.

Line 200: This statement rounds the dollar amount to the nearest cent.

VARIABLE

LIST

A—Original amount of money N—Number of years to save

I—Yearly interest rate T—Amount of money you have for college

INPUT:

Talking to the Computer * 57

MILEAGE You are planning on taking a driving vacation with your parents. Your father wants to know how long it will take to get to your destination and how much money gas will cost. You can use this program to get the answers. Can you add to the program to include food and lodging expenses for your trip? What would you change if you wanted to use this program for a trip on a plane or train?

SAMPLE RUN TAKING A YACATION 7 USE THIS PROGRAM CALCULATE YOUR DRIVING TIME AND COST OF GASOLINE MILES TO TRAVEL7500 MILES PER GALLON715 PRICE PER GALLON71.30 MILES PER HOUR7SS IT WILL TAKE 9.09091 DOLLARS.

HOURS

AND

TO

COST

43.3333

PROGRAM LISTING 100 110 120 130) 140 150 160 170 180 190 200 210 e220) 230 240 e50

PRINT “TAKING A YACATION 7 USE THIS PROGRAM TO" PRINT “CALCULATE YOUR DRIVING TIME AND” PRINT “COST OF GASOLINE” PRINT PRINT “MILES TO TRAVEL"$ INPUT M PRINT “MILES PER GALLONS =INPUT A PRINT “PRICE PER GALLON’S INPUT P PRINT “MILES PER HOURS INPUT $ LET T=m/s LET C= (MADoP PRINT “IT WILL TAKE “3T3" HOURS AND COST “$C3" DOLLARS." END

58 * BASIC FUN

VARIABLE LIST

M—Miles to travel A—Miles per gallon P—Price per gallon S—Miles per hour

T—Number of hours to reach destination C—Total cost of gasoline

INPUT: Talking to the Computer + 59

RECIPE The computer can also help you out in the kitchen. Suppose you need to increase the size of your favorite recipe in order to feed a large crowd. This program converts the amount of ingredients you will need. Use this program to make a recipe smaller also.

SAMPLE RUN THIS PROGRAM ALTERS YOUR FAVORITE RECIPE. NUMBER THE RECIPE ORIGINALLY SERVED74 NUMBER NEW RECIPE TO SERWE7S NOW INPUT THE ORIGINAL GUANTITY OF ERCH INGREDIENT CIN DECIMAL?72 NEW GUANTITY 4 INGREDIENT CIN DECIMAL? 7.5 NEW GUANTITY 1 INGREDIENT *©IN DECIMAL? NEW GUANTITY 2.2

71.4

PROGRAM LISTING 100 110 120° 130 140° 150 160 170 200 210 220 230

Note:

PRINT “THIS PROGRAM ALTERS YOUR FAYORITE RECIPE.” PRINT “NUMBER THE RECIPE ORIGINALLY SERVED"$ INPUT F PRINT “NUMBER NEW RECIPE TO SERWE™S INPUT N PRINT “NOW INPUT THE ORIGINAL QUANTITY OF ERCH” PRINT “INGREDIENT CIN DECIMAL?“3 INPUT I PRINT “NEW QUANTITY “S1ecN-F> PRINT GOTO 1460 END

Line 200: A numeric expression can be used in a PRINT statement. The computer just prints the result of the calculation.

60 + BASIC FUN

_ VARIABLE

LIST

F—Number of people recipe originally served N—Number of people the new recipe is to serve I—Original quantity of an ingredient

INPUT: Talking to the Computer * 61

STRINGS Using Words with the Computer A string variable contains letters or words instead of numbers. You can print strings, combine them to

form words or sentences and input strings just as you can numbers.

NDOBPWNHH

PROBLEMS . Nonsense . A Man From Peru . A Young Lady Named Maude . Race

. Rhyme . Names . Author

NONSENSE This program prints out

a message.

Can you see where each word

is stored in the program? -Can you write a scrambled message of your own? Which lines in the program must you change?

SAMPLE RUN DID YOU THINK

THIS

WOULD

PRINT

NONSENSE?

PROGRAM LISTING 100 DIM AS(10)+BSC10) 5C$ 010) -DSC10)-ESC1 0) sFSC10] 110 LET “SENSE?” 120 LET DID yOu TH" 130 LET “INK THIS * 140 150 160 170) 180

Note:

LET “INT NON” LET "LD PR” LET FS="WOL" PRINT BSSCSSFSFESs DSS AS END

Line 100: This is a dimension (DIM) statement. If you want a string variable to have more than one letter in it, you must use the DIM statement to save the spaces. In this case, A$ can have 10 letters, B$ can have 10 letters, etc.

Lines 110-160: A$, B$, etc., are used to store letters in the program. These variables are called string variables. The tells the computer this is a string variable.

COMPUTER

$

NOTES

TI-BASIC Do not use the DIM statement for string variables; the computer saves space automatically. Therefore, take out the string variables in the DIM statements in all the programs in this text. See Appendix A for a more detailed explanation.

STRINGS:

Using Words with the Computer * 63

A MAN FROM PERU You can write a limerick like this one yourself. Just substitute your own words for A$, B$ and C$. If you have another limerick you like better, try putting it on the computer.

SAMPLE RUN THERE WAS AN OLD MAN FROM PERU WHO DRERMED HE WAS EATING HIS SHOE HE WOKE UP IN THE NIGHT» WITH A TERRIBLE TO FIND OUT IT WAS PERFECTLY TRUE.

FRIGHT

PROGRAM LISTING 100) 110 120° 120° 140 150 160 170) 130

Note:

DIM A$C10)-BS(10)-C$(10) LET AS=" LET 6LET PRINT “THERE WAS AN OLD MAN FROM “$RS PRINT “WHO DREAMED HE WAS EATING HIS “SES PRINT “HE WOKE UP IN THE NIGHT» WITH A TERRIBLE FRIGHT” PRINT “TO FIND QUT IT WAS PERFECTLY “S8C$5"." END

Lines 140-170: You can use the string variables A$, B$ and C$ in a PRINT statement just as you used the numeric variables.

64 » BASIC FUN

A YOUNG LADY NAMED MAUDE Here is another limerick. Input your own strings for your original version. It is easier to do it with this program, because the program asks you for each word.

SAMPLE RUN THIS PROGRAM WRITES AR LIMERICK INPUT 3 WORDS THAT RHYME FIRST WORD?7MAUDE SECOND WORD7BROAD THIRD WORD?70 LORD THERE WAS RA YOUNG LADY NAMED MAUDE WHOSE FRAME WAS EXCEEDINGLY BROAD TO EAT AT THE TABLEs SHE SCARCELY WAS BUT OUT IN THE PANTRYs O LORD

ABLE

PROGRAM LISTING 100 110 120 130 140 150 160 170) 180 190) 200 210 220 230 240 eso

Note:

DIM AS$(25]>BS$(25] >C$le5) PRINT “THIS PROGRAM WRITES A LIMERICK” PRINT “INPUT 3 WORDS THAT RHYME” PRINT “FIRST WORD" INPUT AS PRINT “SECOND WORD"S INPUT BS PRINT “THIRD WORD": INPUT C$ PRINT PRINT PRINT “THERE WAS A YOUNG LADY NAMED “SRS PRINT “WHOSE FRAME WAS EXCEEDINGLY "3 BS PRINT “TO EAT AT THE TABLEs SHE SCARCELY PRINT “BUT OUT IN THE PANTRYs “ END

Lines

140,

160,

180: The

INPUT

WAS

ABLE”

statement works for string

variables as well as for numeric variables.

STRINGS:

Using Words with the Computer + 65

RACE This program tells the story of a crazy race using names, a noun and an adjective that you choose. Can you change the program to broadcast a game or tell a story? SAMPLE RUN

remeron)

WELCOME NEED NEED NEED NEED NEED

TO A A A A AN

THE

=CRAMBLED

SWEEPSTAKES?

PLURAL NOUNTHUNCHBACK © NAME?TIM CONWAY SECOND NAME7ZETEVYE MARTIN THIRD NAME7ALAN ALLA ADJECTIVE ?7FANTAETIC

ALL RIGHTs THE RACE I ABOUT TO BEGIN? THIS IS YOUR ANNOUNCER SPEAKING. THE HUNCHBACKS ARE AT THE STARTING GATE... AND THEY “RE OFF? STEVE MARTIN If IN THE LEAD. ALAN ALDARA IS NEXT> TRAILED BY TIM CONWAY. THE HUNCHBACKS ARE COMING INTO THE 2TRETCH. ALAN ALDARA 12 AHEAD AND STEVE MARTIN AND TIM CONWAY ARE MOVING UP. IT’ GOING TO BE CLOSE FOLKS... AND... STEVE MARTIN CROSSES THE WIRE FIRSTES? WHAT

A

FANTASTIC

PROGRAM 150) 160° 170) 180 200 205 210 220 230 240 e250

DAY

AT

THE

TRACK?

LISTING

DIM A$[25)>B$le5) >C$l25)]+>D$ (25) -E$(25) PRINT PRINT “WELCOME TO THE SCRAMBLED SWEEPSTAKES?” PRINT PRINT “I NEED A PLURAL NOUN"S INPUT AS PRINT “I NEED A NAME"S INPUT BS PRINT “I NEED A SECOND NAME"S INPUT CS PRINT “I NEED A THIRD NAME”?

66 + BASIC FUN

260 350 360 370 380 390 400 410 420 430 440 450 460 465 470 480 490 Soo

INPUT ps PRINT “I NEED AN RDJECTIVE”$ INPUT es PRINT THE RACE IS ABOUT TO BEGIN?” PRINT “ALL RIGHT» PRINT “THIS IS YOUR ANNQUNCER SPEAKING.“ PRINT “THE "3AS5" ARE AT THE STARTING GATE..." PRINT “AND THEY’RE OFF?™ PRINT IS IN THE LEAD. “$DS$s" IS NEXT> TRAILED” PRINT CS“ PRINT “BY “3BS3"." PRINT “THE "$AS3" ARE COMING INTO THE STRETCH.” PRINT DS3." IS AHERD AND “3CS5" AND “3 BS” RRE MOWING up.” PRINT “IT’S GOING TO BE CLOSE FOLKS... AND..." PRINT C83" CROSSES THE WIRE FIRST?22~ PRINT PRINT “WHAT A “SES5" DAY AT THE TRACK?” END

VARIABLE LIST

A$—Plural noun B$—First name C$—Second name D$—Third name E$—Adjective

STRINGS:

Using Words with the Computer + 67

RHYME Your teacher told you to write a poem, and you are struggling with words to rhyme with your lines. Use this program to test out various possibilities. Can

you change

it to handle

words

starting with digraphs(th, wh)

or blends(st, tr)?

SAMPLE RUN TEST RHYMING FOSSIBILITIES WHAT WORD ARE YOU RHYMING? ?CAT NEW FIRST LETTER?H HAT NEW BAT

FIRST

LETTER?B

NEW SAT

FIRST

LETTER?S

PROGRAM 100 110

WITH

THIS

FROGRAM

LISTING

DIM Z$(10),X#$(10),D$(1) PRINT “TEST RHYMING FOSSIBILITIES WITH PROGRAM" PRINT "WHAT WORD ARE YOU RHYMING?" XS

INPUT

Z%

=

MIDS

PRINT

"NEW

THIS

(2%,2) FIRST

LETTER";

INFUT DS PRINT D#; xX PRINT GOTO 145 END

Note:

Line 140: This statement puts Z$ into X$ starting with the second letter of Z$. The

string function

MID$

string. The format is MID$

68 + BASIC FUN

allows you to take out part of a (string,n,m) where:

string—the name of the string variable n—the position of the first letter to use m—number of letters to use, m is not required if you want to use the entire string.

VARIABLE LIST Z$—Contains word trying to rhyme D$—Contains the letter input to make a new word X$—Contains the letters in Z$ starting with the second letter

COMPUTER NOTES HP-2000 BASIC

\

Replace line 140 with:

Atari BASIC

140 LET X$ = Z$(2)

TI-BASIC

Not suitable for the Tl. See Appendix A.

STRINGS:

Using Words with the Computer + 69

NAMES This program makes up a child’s name by combining a first name and a last name. What names can you come up with? Use a similar program to make up names for your soccer team or

club. Try changing the program so you can use it for compound words.

SAMPLE RUN USE THIS PROGRAM IF PARENT’S WITH NAMED THEIR THE CHILD’S

TO EXPERIMENT WITH NAMES A LAST NAME OF 7WAHL

CHILD 7BRICK FULL NAME WOULD

BE

BRICK

WAHL

PROGRAM LISTING 100 110 120 130 140 150 160 170 180 190

DIM ASC15]»B$(15) PRINT “USE THIS PROGRAM TO EXPERIMENT PRINT “IF PARENTS WITH A LAST NAME OF INPUT AS PRINT PRINT “NAMED THEIR CHILD “5 INPUT BS PRINT “THE CHILD’S FULL NAME WOULD BE GOTO 140 END

VARIABLE LIST A$—Parents’ last name B$—Child’s first name

70 * BASIC FUN

WITH “5

“$BS3"

NAMES”

“$

AUTHOR Change the words in a sentence to alter the message or improve your writing style. Change line 110 if you want to start with a different message.

You can only have 30 characters in variable A$. What happens if you try to use more than 30? How would you change the program

if you wanted more than 30? SAMPLE RUN SHERRI IS A PRETTY WHAT WITH LYN WHAT WITH LYN WHAT WITH LYN

GIRL

WORD DO YOU WANT TO WHAT ?LYN IS A PRETTY GIRL WORD DO YOU WANT TO WHAT?SMART IS A SMART GIRL WORD DO YOU WANT TO WHAT ?PERSON IS A SMART FERSON

CHANGE?SHERRI

CHANGE?PRETTY

CHANGE?GIRL

PROGRAM LISTING 100) 110 120 130 140 150 160 170 180 182 185 190 200 210 220 230 240 250 260 270

DIM AS$(30), BS (39) ,C#(10) ,DS(10) LET AS = " SHERRI IS A PRETTY GIRL" PRINT AS PRINT "WHAT WORD DO YOU WANT TO CHANGE"; INPUT CS REM *x CREATE A NEW STRING PRINT "WITH WHAT"; INPUT D& REM ¥XFIND FIRST FOSITION IN AS OF CE LET F = LEN (C#) LET A = LEN (AS) FOR H=1T0A IF MID® (AS,B,F) = C$ THEN 240 NEXT B PRINT C$" NOT IN",AS,"TRY AGAIN" GOTO 130 LET HS = AS AS = LEFTS (B$,BR - 1) + DS + MIDS GOTO 120 END

STRINGS:

(B$,B

+

F)

Using Words with the Computer * 71

Note:

Line 182: The LEN (length) statement determines the actual length of the string in A$. In this case, A is set equal to the actual length of A$.

Line 200: This statement determines the starting position of the word C$ in the sentence A$. Line 250:

This statement changes

A$ by replacing the old

word C$ with the new word D$. The string function LEFT$ allows you to use only the first part of a string variable (the left-most letters). The format is LEFT$(string, n) where: string—name of the string variable n—number of letters to use.

VARIABLE LIST

A$—Expression starting with B$—Temporary

variable used to hold expression in A$ while

changes are made C$—Word D$—Word

replacing adding

A—Length of A$ F—Length of C$ B—Starting position of C$ in A$

COMPUTER HP-2000

NOTES

BASIC

Replace lines 190-210 with:

190 LET B=POS(A$,C$) Replace line 250 with:

250 LET A$(B,B+D) = D$ 255 LET A$(B+D+1) = B$ (B+F+1) The

POS

(position)

function

determines

the

starting position of the word C$ in the sen-

Atari BASIC TI-BASIC

}

72 + BASIC FUN

tence A$. The format is POS(string1,string2) where: stringl—name of string containing string2 Not suitable for use with these versions of BASIC

IF. . . THEN How the Computer Makes Decisions This programming statement

makes the computer decide which line number to execute next.

WOMONDNAHPWNH

PROBLEMS . Tax . Foreign Currency

. Mystery Code . . . .

Ten Speed Time Differences Interior Decorating Driver’s Test

. Spelling . You Are a Detective

TAX Sales tax is added to the price of most things you buy. In order to be sure you take enough money with you, use this program to find out exactly how much money you need to buy that rocket you’ve been looking at. Or, any other item you are thinking of buying. Your parents may find it useful too.

This program uses a tax of .065¢. If you live in a different state, the tax might be different. Can you change the program for a different tax rate?

SAMPLE RUN T WILL FIGURE OUT HOb mt AND ADD IT TO YOUR PURC INPUT “O° TO STOP.

PRICE OF ITEM?4.98 vOUR ITEM WILL COET PRICE OF ITEM716 YOUR ITEM WILL © PRICE OF ITEM72. YOUR ITEM WILL

$

TAX

WILL BE CHARGED ON AN JUST INPUT THE PRICE.

5.3

PROGRAM LISTING 100

120) 130 140) 150 160 170) 130° 190

PRINT “I WILL FIGURE OUT HOW MUCH TAX WILL BE CHARGED ON AN ITEM" PRINT “AND ADD IT TO YOUR PURCHASE. JUST INPUT THE PRICE.” PRINT “INPUT “O° TO TOP.” PRINT PRINT “PRICE OF ITEM"S INPUT P IF P=0 THEN 200 LET P=Pe, H6é5+P PRINT “YOUR ITEM WILL COST $"$ INT (Pe100+.597100 GOTO 140

eno

END

110°

74 * BASIC FUN

ITEM

Note:

Line 160: This program uses another way to stop. If the input is equal to zero, then the program skips to line 200 and ends.

VARIABLE LIST

P—Price of an item Special credit to Slaton Lipscomb

IF . . . THEN:

How the Computer Makes Decisions * 75

FOREIGN CURRENCY Are you planning a vacation to a foreign country? You may have to change U.S. dollars into foreign currency. Do you know what the exchange rate will be? If you do, you can use this program to convert the U.S. dollar amount to foreign currency. Can you write a program that converts foreign currency into U.S. dollars?

SAMPLE RUN THIS PROGRAM CURRENCY INPUT A OO TO INPUT INPUT 100

THE I

OUR

DOLLAR

TO

ANY

FOREIGN

PROGRAM

DOLLAR AMOUNT? e500 UW.5. DOLLARS EOUAL

THE DOLLAR AMOUNT? S23 U.2. DOLLARS EQUAL Se.

PROGRAM 100

STOP

CONVERT

THE FOREIGN EGUIYALENT OF THE DOLLAR AMOUNT? 100 U.2. DOLLARS EQUAL 99.82

INPUT

INPUT S32

CAN

A

DOLLAR. IN

2495.5

FOREIGN

IN

IN

9982 CURRENCY

FOREIGN

FOREIGN

CURRENCY

CURRENCY

LISTING

PRINT “THIS PROGRAM CAN CONVERT OUR DOLLAR TO ANY FOREIGN CURRENCY PRINT “INPUT A oO TO TOP PROGRAM” PRINT PRINT “INPUT THE FOREIGN EGUIVALENT OF A DOLLARS INPUT F PRINT “INPUT THE DOLLAR AMOLINTs INPUT [ IF D=t} THEN 160 LET N=FeLl PRINT DS "U2. DOLLARS EQUAL “SINT ON@100+.59 71008" IN FOREIGN CURRENCY" PRINT

GOTO

125

END

76 * BASIC FUN

Note:

Line 135: This is called an IF . . . THEN statement. If the condition is true, the program goes to the line given. Otherwise, the program goes to the next line.

VARIABLE

LIST

F—Foreign equivalent of U.S. dollar D—The dollar amount N—Foreign currency

IF . . . THEN:

How the Computer Makes Decisions * 77

MYSTERY CODE In order to finish this program, you have to decipher a secret message while the program is running. Can you write a mystery code program like this one and let your friends try to solve it?

SAMPLE RUN YOU ARE A BRITISH DIPLOMAT BEING HELD CAPTIVE BY A TERRORIST GROUP. SOMEONE JUET SLIPPED YOU A SECRET MESSAGE. DECODE IT AND YOU CAN ESCAPE. HURRY THE TERRORISTS ARE RETURNING! HINT-CROES OUT WORDS THAT PHYME THE CODE IS....... PIATRMATEFATSPATSCATLBATERAT 7A KEY IS UNDER THE BOOK

PROGRAM 100 110°

LISTING

DIM Asti) PRINT “YOU BY

TYATTHATEZATRNATA

A

ARE

TERRORIST

A

BRITISH

DIPLOMAT

BEING

120) 130

PRINT PRINT

140 150 160 170)

TERRORISTS ARE RETURNING!” PRINT “HINT-CROSS OUT WORDS THAT RHYME” PRINT “THE CODE IS......." PRINT PRINT “PSATRMATEFATSPATSCATLBATERATTYAT

130 190 200 210

INPUT AS IF AS="A" THEN PRINT “@e*e*BRANG GOTO 230

e220

PRINT

230

END

Note:

HELD

CAPTIVE

GROUP.”

“SOMEONE JUST SLIPPED YOU A SECRET MESSAGE. “DECODE IT AND YOU CAN ESCAPE. HURRY THE

“KEY

IS

ect BANG UNDER

THEY THE

SHOT

THATEZATRNATAR™

YOUeee”

BOOK”

Line 190: Notice that a string variable can be used in an IF . . . THEN statement too.

78 * BASIC FUN



TEN SPEED The computer can help you save toward a goal. This program calculates the time it will take you to save for a ten speed bicycle.

If you

change

values for the

interest rate,

the total amount

needed, and the monthly amount, you can use the program to calculate how long it will take to save for a vacation, for college, or anything else you want.

SAMPLE RUN yOU HAVE DECIDED TO SAVE FOR A NEW TEN SPEED IF THE BANK PAYS 5S 172-% INTEREST COMPOUNDED MONTHLY HOW LONG WILL IT TAKE TO SAYE FOR YOUR TEN SPEED? THIS PROGRAM WILL GIYE YOU THE ANSWER HOW HOW

MUCH MUCH

WILL YOUR BIKE CAN YOU SAYE A

FOR YOUR $ 193.95 A MONTHs YOU CAN HAYE $ 185.45

COST?7133.95 MONTH?T1S TEN

SPEED: IN

12

SAYING

$

15

MONTHS.

PROGRAM LISTING 100 105 110 115 120 125) 1230 135) 140 145 150 155 160 165 170) 175°

PRINT “YOU HAVE DECIDED TO SAYE FOR A NEW TEN SPEED” PRINT “IF THE BANK PRYS 5 172 % INTEREST COMPOUNDED MONTHLY” PRINT “HOW LONG WILL IT TAKE TO SAYE FOR YOUR TEN SPEED?” . PRINT “THIS PROGRAM WILL GIVE YOU THE ANSWER” PRINT PRINT “HOW MUCH WILL YOUR BIKE COST"$ INPUT A LET R=.055 PRINT “HOW MUCH CRN YOU SAYE A MONTHS INPUT M LET T=0 LET N=0 LET N=N+1 LET T=T+M LET T=Te#c1+k-12) IF T>AR THEN 185

IF . . . THEN:

How the Computer Makes Decisions * 79

180

GOTO

185) 190

PRINT PRINT “FOR ® MONTH: ”

195

PRINT “YOU CAN “S$N5 “MONTHS, “ END

200)

Note:

160

YOUR

$

“3A3“

HAYE

$

TEN

SPEED»

SAVING

“SINT (Te1004+.5>71003"

$

“SMe” IN

Line 175: The symbol > means greater than. This IF. . . THEN statement stops the program as soon as T, the total saved,

is greater than A, the amount

VARIABLE LIST

A—Amount needed for purchase R—Current interest rate M—Monthly savings T—Total earnings N—Number of months

80 » BASIC FUN

needed.

TIME DIFFERENCES If you live on the West Coast and you want to call your cousin in Boston, you might want to know what time it is in Boston. This program lets you convert from your time to the time anywhere else in

the world. How

would

you change

the program

if you lived in New

York

and wanted to call a friend in Seattle? SAMPLE RUN I CAN TELL JUST INPUT HIT “0” TO

YOU WHAT TIME IT THIS INFORMATION STOP.

IS

ANYWHERE

YOUR TIME IN HOURS7S THE TIME DIFFERENCE IN THEIR TIME IS 11

HOURS?

YOUR TIME IN HOURS?73 THE TIME DIFFERENCE IN THEIR TIME IS 5

HOURS?7-3

IN

THE

WORLD

id

o*“cLack

“CLOCK

PROGRAM LISTING 100 105 110 115 120) 130 132 135 140 145 150 155 160 165 170 175

PRINT "I CAN TELL YOU WHAT TIME IT IS IN THE WORLD" ANYWHERE PRINT "JUST INPUT THIS INFORMATION" PRINT "HIT *0? TO STOP." PRINT PRINT "YOUR TIME IN HOURS"; INPUT T IF T=0 THEN 175 PRINT "THE TIME DIFFERENCE IN HOURS"; INPUT D LET N=T+D IF N BS(1) PRINT “TRY TO FIGURE OUT THE MISSING THIS WORD” PRINT PRINT “C_ROM_7" PRINT “THE FIRST LETTER IS"$ INPUT AS IF AS="H" THEN 180 GOTO e40 PRINT “RIGHT - “5 PRINT “THE SECOND LETTER IS"$ INPUT BS IF BS="E" THEN 260 PRINT “WRONG - TRY AGAIN" GOTO 190 PRINT “WRONG: TRY AGAIN” GOTO 140 PRINT “RIGHT» YOU SPELLED CHROME” END

IF . . . THEN:

LETTERS

IN

How the Computer Makes Decisions * 87

Note:

Line 160: If you input “H” then the computer goes to line 180; otherwise it drops down to line 170.

88 * BASIC FUN

YOU ARE A DETECTIVE Each time you run through this program,

you can have a

different

adventure. Watch out though, only one path is correct. You

can write your own

mystery programs too. Just think of a

story and use the IF . . . THEN statements to send your detective on different adventures.

SAMPLE RUN YOU ARE A DETECTIVE. YOU RECEIVE A CALL FROM MF. DREW. HE ASKS YOU TO COME OVER. HE BELIEVES HIS LIFE IS IN DANGER. IF YOU DECIDE TO GO TO-HIS HOUSE TYPE YES. IF YOU DECLINE TYPE NO. FYES MR. DREW MEETS YOU AT HIS HOUSE. HE TELLS YOU HE SUSPECTS HIS WIFE IS TRYING TO KILL HIM. HE ASKS YOU TO STAY FOR DINNER $O YOU CAN MEET HER AS WELL AS HIS NIECE LUCY AND A FRIEND DR. QUIMBY. IF YOU ACCEPT HIS INVITATION TYPE MDREW IF YOu DECIDE TO GO HOME TO WATCH YOUR FAVORITE TY SHOW SAYING YOULL CALL MR. DREW IN THE MORNING TYPE CALL ?MDREW MRS. DREWs A RATHER PLUMP PLEASANT WOMAN IS VERY GRACIOUS AT DINNER. AFTER DINNER MR. DREW OFFERS HIS GUESTS A GLASS OF BRANDY. SINCE YOU DECLINE YOU DECIDE TO STROLL AROUND THE GARDEN. SUDDENLY vYOU HEAR A CRASH FOLLOWED BY A SCREAM? YOU RUSH IN TO FIND MR. DREW HAS BEEN POISONED? THE POLICE ARE CALLED. BEFORE THEY ARRIVE - YOU DECIDE TO INTERVIEW THE WITNESSES. IF YOU CHOOSE TO SPEAK TO THEM AS A GROUP, TYPE GROUP. IF YOU INTERVIEW THEM INDIVIDUALLY TYPC ONE. 7ONE DURING YOUR INTERROGATION OF MR. DREW S NIECEs SHE MAKES A FATAL SLIP. You DISCOVER SHE HAD THE OPPORTUNITY TO PUT ARSENIC IN MR.DREW’S BRANDY BECAUSE SHE WANTED HER INHERITANCE MONEY NOW? WITH IF . . . THEN:

How the Computer Makes Decisions + 89

THE POLICE COOPERATION SHE IS ARRESTED AND CHARGED WITH HIS MURDER. GREAT GOING? MRS. DREW REWARDS YOU HANDSOMLY?

PROGRAM LISTING 60 100 110 120 130 150 160 165 170) 180 190 195 200 210 220 230 240) 260 e270 2280 290 292 294 296 297 298 300 310 320 330 340 400 410 420 430 440 450 460 465 470 475

DIM X$(10]>57$(10]52$(10) PRINT “YOU ARE A DETECTIVE. YOU RECEIVE A CALL” PRINT “FROM MR. DREW. HE ASKS YOU TO COME” PRINT “OVER. HE BELIEVES HIS LIFE IS IN DANGER." PRINT “IF YOU DECIDE TO GO TO HIS HOUSE TYPE YES.” PRINT “IF YOU DECLINE TYPE NO.” INPUT x$ IF X$="YES" THEN 200 6IF X NO” THEN 300 PRINT “I NEED A YES OR NO ANSWER. TRY AGAIN.” GOTO 160 REMee DECIDE TO MEET MR DREW. PRINT “MR, DREW MEETS YOU AT HIS HOUSE. HE TELLS" PRINT “YOU HE SUSPECTS HIS WIFE IS TRYING TO” PRINT "KILL HIM. HE ASKS YOU TO STAY FOR” PRINT “DINNER SO YOU CAN MEET HER AS WELL” PRINT “AS HIS NIECE LUCY AND A FRIEND DR. QUIMBY.” PRINT “IF YOU ACCEPT HIS INVITATION TYPE MDREW” PRINT “IF YOU DECIDE TO GO HOME TO WATCH YOUR” PRINT “FAYORITE TY SHOW SAYING YOU“LL CALL” PRINT “MR. DREW IN THE MORNING TYPE CALL” INPUT Y$ “MDREW" THEN 400 CALL” THEN Soo I NEED A MDREW OR CALL - TRY AGAIN.” GOTO e9¢e PRINT “YOU OBVIOUSLY RREN“T VERY INTERESTED” PRINT “IN KEEPING UP YOUR BUSINESS. SOON" PRINT “YOU ARE FORCED TO FIND ANOTHER JOB.” PRINT “BETTER LUCK NEXT TIME!” GOTO 999 REM*eDECIDE TO STAY FOR DINNER PRINT “MRS. DREWs A RATHER PLUMP PLEASANT WOMAN” PRINT “IS VERY GRACIOUS AT DINNER. AFTER DINNER” PRINT “MR. DREW OFFERS HIS GUESTS A GLASS OF” PRINT “BRANDY. SINCE YOU DECLINE YOU DECIDE” PRINT “TO STROLL AROUND THE GARDEN. SUDDENLY” PRINT “YOU HERR A CRASH FOLLOWED BY A SCREAM?” PRINT “YOU RUSH IN TO FIND MR. DREW HAS BEEN “ PRINT “POISONED? THE POLICE ARE CALLED. BEFORE” PRINT “THEY ARRIVE - YOU DECIDE TO INTERWIEW THE WITNESSES.“

90 - BASIC FUN

476 480 490

PRINT PRINT PRINT

“IF YOU CHOOSE TO “THEM AS A GROUPs “IF YOU INTERVIEW

491 492 493 494 495 499 Soo S10 seo 530 540

INPUT

2$ “GROUP” THEN 600 “ONE” THEN 700 “I NEED A GROUP OR

550 560 600 605 610 620 630 640 699 700 710 7eo 730 740 750 760 770 780 790 999

Note:

SPEAK TO” TYPE GROUP.” THEM INDIVIDUALLY

ONE

-

TRY

TYPE

AGAIN.”

REM@eDIDN’T STAY FOR DINNER PRINT “YOU CALL THE DREW’S HOUSE IN THE MORNING." PRINT “THE POLICE ANSWER THE PHONE. MR. DREW" PRINT “WAS MURDERED LAST NIGHT. HE WAS POISONED” PRINT “AT DINNER. YOU ARE WANTED AS A WITNESS” PRINT “BUT YOUR DETECTIVE SERWICES ARE NOT REQUIRED.“ PRINT “TOO BADE” GOTO 999 REM@e*INTERVIEW THE GROUP PRINT “WHEN YOU INTERVIEW THE GROUPs YOU FIND” PRINT “OUT NOTHING USEFUL. ‘YOU ARE FORCED” PRINT “TO TURN THE CASE OVER TO THE POLICE” PRINT “WHEN THEY ARRIVE. OUT OF LUCK?” 6oTd 9399 REMeeINTERVIEW INDIVIDUALLY PRINT “DURING YOUR INTERROGATION OF MR. DREW*S” PRINT "NIECE» SHE MAKES A FATAL SLIP.” PRINT “YOU DISCOVER SHE HAD THE OPPORTUNITY” PRINT “TO PUT ARSENIC IN MR.DREWS “ PRINT “BRANDY BECAUSE SHE WANTED” PRINT “HER INHERITANCE MONEY NOW? WITH" PRINT “THE POLICE COOPERATION SHE IS“ PRINT “ARRESTED AND CHARGED WITH HIS" PRINT “MURDER. GREAT GOING? MRS. DREW” PRINT “REWARDS YOU HANDSOMLY? ~ END

Line 165: Notice that you THEN statements too.

IF . . . THEN:

can

use words

in your

IF...

.

How the Computer Makes Decisions * 91

FUNCTIONS (INT, RAND, ABS) Doing Complex Things the Easy Way Functions are programs built-in to the computer that you can use to make it easy for you to do complicated operations in your own programs.

The functions you need for games are: INT Integer function—Changes any decimal number to a whole number.

INT (6.15) = 6 RND_

Random function— Generates random numbers from 0 to 1.

ABS

Absolute value function— Eliminates the minus sign in a negative number.

ABS(-

10) = 10

NAOHRWNH

PROBLEMS . . . . . . .

Soccer Shell Game Dice Game Number Guessing Game Number Sequences How Warm Is Your Heart? War

SOCCER One of the rules of AYSO

(American Youth Soccer Organization)

soccer is that everyone on the team must play at least 2 quarters. If all 15 players show up for a game, it is difficult to have everyone play an equal amount of time. This program can help you out. It calculates the number of quarters everyone can play, depending on how many show up for the game. How can you change the program for your basketball team? Alter the program to tell you how many innings everyone can play on your Little League team.

SAMPLE RUN T WILL FIND OUT HOW MANY GUARTERS EACH MEMBER OF THE TEAM CAN PLAY NUMBER OF PLAYERS FOR THIS GAME7T15

EVERYONE PLAYS 2 WHILE 14 PLAYERS

QUARTERS WILL PLAY

3

GUARTERS

PROGRAM LISTING 100° 105 110° 115) 120 125 127 128 135 140) 145) 150 155 160

PRINT “I WILL FIND QUT HOW MANY QUARTERS” PRINT “ERCH MEMBER OF THE TEAM CAN PLAY" PRINT “NUMBER OF PLAYERS FOR THIS GAME"S INPUT N LET P=1104 4 THEN 155 LET A=INTCAD LET Q=P-Ren PRINT “EWERYONE PLAYS “SAS” GUARTERS PRINT “WHILE "S03" PLAYERS WILL PLAY “SA+13" GUARTERS” GOTO 160 PRINT “EVERYONE NEEDS TO PLAY 4 GUARTERS” END

FUNCTIONS:

Doing Complex Things the Easy Way + 93

Note:

Line 125: The INT function forces the result of P/N to be a whole number, or integer. It cuts off any fractions without rounding. ex. INT(3.25)

INT(3.95) )

3 =3

VARIABLE LIST N—Number of players at this game P—Total number of quarters available for the game A—Number of quarters needed for everyone to play Q—Extra quarters some players can play

94 + BASIC FUN

SHELL GAME In this game, you play the original carnival shell game with the computer. Needless to say, this computer’s “hand” is definitely quicker than your eye! Design your own slight of hand game or have your friends guess a prize behind door number 1, 2, or 3.

SAMPLE RUN READY TO PLAY THE SHELL GAME? SEE IF YOU CAN GUE WHICH CUP HAE Ok PLACE YOUR RET?E5 WHICH CUP HAS THE BEAN 1 2 OR 37 73 YOU ARE RIGHT? YOU WON $ 50 YOUR TOTAL WINNING? ARE $ SO WANT TO TRY AGAINTY Ok PLACE YOUR BET7eE5 WHICH CUP HAS THE BEAN 1 2 OR 3? re ‘YOU ARE RIGHT? yOu wON $ 50 YOUR TOTAL WINNINGS ARE $ 100 WANT TO TRY AGAIN? Ok PLACE YOUR BET?25 WHICH CUP HAS THE BEAN 1 2 OR 27 71 I FOOLED YOU THE BEAN WAS IN CUP 2 SORRY . . . YOU LOST $ 25 YOUR TOTAL WINNINGS ARE $ 75 WANT TO TRY AGRINZN

THE

BEAN

PROGRAM LISTING 100 105 110 115 120 125 130 135

DIM ASCII PRINT “READY TO PLAY THE SHELL GAME?” PRINT “SEE IF YOU CAN GUESS WHICH CUP HAS LET T=0 PRINT “Ok PLACE YOUR BET"S INPUT B LET R=INTCRND¢1) ©3+1> PRINT “WHICH CUP HAS THE BEAN 1 2 OR 37" FUNCTIONS:

THE

BERN”

Doing Complex Things the Easy Way * 95

140 145 150 155 160 165 170 175 130 185 190 195 200 205 210 215 e220

Note:

INPUT A IF A=R THEN 155 GOTO 185 PRINT “YOU ARE RIGHT?” LET B=Bee LET T=T+B PRINT “YOU WON $ “3B PRINT “YOUR TOTAL WINNINGS ARE 6oTO ens PRINT “I FOOLED YOU. THE BEAN T=T-B PRINT “SORRY...YOU LOST $ “3B PRINT “YOUR TOTAL WINNINGS ARE PRINT “WANT TO TRY AGRIN™S INPUT AS IF AS="Y" END

THEN

“3T WAS $

IN

CUP

“sR

“3T

120

Line 130: This statement gets a random number from 1 to 3. The RND(0) function gives a number from 0 to .9999. Try calculating this expression yourself using different random numbers. This is called playing computer. If you want a number from 1 to 6, just change the 3 toa 6.

VARIABLE LIST T—Total winnings B—Bet R—Cup with the bean A—Your guess of the cup

COMPUTER

NOTES

The format for the RND function varies with each computer. Appendix A for the proper format for your computer.

96 - BASIC FUN

See

DICE GAME This program pretends that the computer can throw dice. The person playing the game starts with some money, then wins or loses

depending on the throw of the dice as follows: Original amount

Dice throw

of money is:

6 or 12 8 or9 7orll

Tripled Doubled Lost

All others

No change

Try changing the betting odds for the game.

SAMPLE READY

RUN TO

PLAY

THE

DICE

WHAT IS YOUR BET?710 DICE THROW IS 5 NO CHANGE YOUR TOTAL WINNINGS AGRINTY WHAT IS YOUR BET?725 DICE THROW IS 7 you LOST! YOUR TOTAL WINNINGS AGAIN?TY WHAT IS YOUR BET725 DICE THROW Is 7 vou LOST! YOUR TOTAL WINNINGS AGARINTY

ARE

GAME?

0

ARE-25

ARE-S0

WHAT IS YOUR BET750 DICE THROW IS 3 YOU WIN? YOU DOUBLED YOUR BET? YOUR TOTAL WINNINGS ARE SO AGAINTY

FUNCTIONS:

Doing Complex Things the Easy Way * 97

WHAT IS YOUR BET?10 DICE THROW 12 5 NO CHANGE YOUR TOTAL WINNING? AGAINZN

PROGRAM

ARE

SO

LISTING

DIM

ASC1)

LET

T=0

PRINT “PEADY TO PLAY THE PRINT PRINT “WHAT I= YOUR BETS INFLT ™ LET A=INTCRND 11 e6415 LET B=INTCRND 1: @6+19 LET C=A+B PRINT “DICE THROW If “SC THEN 195

DICE

GAME?"

THEN e210 THEN 225 11 THEN e25 “NO CHANGE”

PRINT

“YOU

WIN!

YOU

TRIPLED

YOUR

BET!"

GOTO 240 LET M=mMec PRINT “YOU

WIN?

YOU

DOUBLED

YOUR

BET!”

LET

GOTO

PRINT

M=mez

e4n

“YOU

LOST?”

LET T=T-" 607TO e245

LET

PRINT

T=T+m

“YOUR

TOTAL

PRINT “AGAIN? INPLIT AS IF AS="Y" THEN END

Note:

WINNINGS

ARE

115

Lines 130, 135: These statements work as if the computer was rolling the dice. They set the numeric variables A and B to a random number between 1 and 6.

98 - BASIC FUN

VARIABLE LIST M—Your bet A—Die throw #1

B—Die throw #2 C—Total of both dice T—Total winnings

FUNCTIONS:

Doing Complex Things the Easy Way * 99

NUMBER GUESSING GAME In this game the computer picks a number from 1 to 100, then 2 players try to guess the number. The player closest to the number wins 10 points.

What if the number was from 1 to 200? What would you change? SAMPLE RUN WELCOME TO THE NUMBER GUESSING GAME THIS If A GAME FOR TWO PLAYERS THE COMPUTER PICKS A NUMBER FROM 1 TO 100 EACH PLAYER GUESSES A NUMBER THE PLAYER CLOSEST TO THE CORRECT NUMBER GETS A PLAYER GETS 50 POINTS IF THE PLAYER GUESSES Ok INPUT YOUR GUESS? PLAYER 1 PLAYER 2770 PLAYER & WIN? THE COMPLITER’® NUMBER THE 2CORE It - PLAYER PLAYER AGAIN? Ok INPUT YOUR GUES= PLAYER 1750

PLAYER

WAS 64 1 0 2 10

27100

PLAYER 1 WINE THE COMPLITER’S IS SCORE THE

NUMBER PLAYER PLAYER

WAS 51 1 10 2 10

AGAIN? Qk INPUT YOUR GUESS PLAYER 1720 PLAYER e780 PLAYER 1 WINS THE COMPLITER’® NUMBER THE SCORE IS - PLAYER PLAYER

WHE 4c 1 20 2 10

100 + BASIC FUN

10 POINTS THE NUMBER

PROGRAM LISTING 100 105 110 115 120 125 130 135 140 145 150 155 160

DIM AS[1) PRINT “WELCOME TO THE NUMBER GUESSING GAME” PRINT “THIS If A GAME FOR TWO PLAYERS” PRINT “THE COMPLITER PICKS A NUMBER FROM 1 TO 100" PRINT “EACH PLAYER Ul ES A NUMBER” LET $=0 LET iM PRINT “THE PLAYER CLOSEST TO THE CORRECT NLUMBEF GETS 10 POINTS” PRINT “A PLAYER GETS S50 POINTS IF THE PLAYER GUESSES THE NUMBER” PRINT PRINT “Ok INPUT YOUR GUESS" PRINT “PLAYER 15 INPUT FP PRINT “PLAYER 2s INPUT N R=INTCRAD C13 1+.

IF Bs 1

7 THE 3

11 NEXT 9

OU 3

WERE

RIGHT» 10 17

YOU

WERE

RIGHTs

=HOULD

40

15 NUMBER er

ao

a

19 I3 1

CONGRATULATION 24 21

CONGRATULATION:

PROGRAM LISTING 100 105

110 115 120 125 130 135 140

PRINT “THIS PROGRAM PRINTS A PRINT “SEE IF YOU CAN FIGURE NUMBER £HOULD BE”

OF NUMBERS” THE NEXT

NTCRND CL» @c+1> NTCPND 1) eS413 INT CRAD (12 10412 INT CRNDID C13 @3412 : x s=1

THEN

145 150 155 160

REMee THIS N=AeC oo I GOTO 170 REMee THIS

165

N=A+l eR

170) 175

SEGUENCE OUT WHAT

I=1+1 IF I>S

THEN

12

AN

APITHMETRIC

SEQUENCE

190

FUNCTIONS:

Doing Complex Things the Easy Way * 103

BE

177 180 185 190 195 200 205 210 215 220

LET N=INT(N) PRINT N; GOTO 140 INPUT M IF M=N THEN 210 PRINT "SORRY, THE NEXT GOTO 110 PRINT "YOU WERE RIGHT, GOTO 110 END

Note:

Line 150: The computer calculates a geometric sequence.

NUMBER

IS

":N

CONGRATULATIONS!"

Line 165: The computer calculates an arithmetic sequence.

VARIABLE LIST S—Determines the type of sequence S=1 arithmetic sequence

S = 2 geometric sequence A—For arithmetic sequence —first number For geometric sequence— multiplier B—For arithmetic sequence—common difference C—For geometric sequence—common ratio M—Next number in sequence

104 » BASIC FUN

HOW WARM IS YOUR HEART? How warm is your heart? Use this program to find out. You type in a number from 1 to 5 and the computer decides how warm you really are. Don’t be surprised if the computer changes its mind. After

all, computers don’t know everything. You can add responses of your own to this program. Try writing a program of your own that evaluates someone’s personality or athletic ability.

SAMPLE RUN TO SEE HOW WARM TYPE

RA NUMBER

YOUR

FROM

HEART

1S

TO

5

2 HEART IS A NUMBER

ON FIRE?? FROM 1 70

5

2 HEART IS A NUMBER

IN THE FROM 1

NORTH 70 5

POLE?

2 HERRT

IN

NORTH

POLE?

IS

1

THE

PROGRAM LISTING 100 105 110 115 leo 125 130 135 140 145 150 155 160 165 170 175 180 185

PRINT PRINT

“TO SEE “TYPE A

INPUT

N

IF

N>S

THEN

HOW WARM YOUR NUMBER FROM 1

HEART TO 5“

IS”

NORTH

FOLE?”

105

S=INTCRND C1) 2) @(-2) +1

R=INT CRND (1) #541) T=N+S or

IF

T>1

PRINT

GoTo IF

T>2

THEN “YOUR

150 HEART

THEN

HEART

PRINT “YOUR GOTO 105

HEART

IF

T>4

IN

THE

IS

IN

A

IS

THAWING

IS

STARTING

165

PRINT “YOUR GOTO 105 IF T>3 THEN

PRINT

IS

105

THEN “YOUR

DEEP

FREEZE?”

180 OUT?”

195 HEART

FUNCTIONS:

TO

GLOW!”

Doing Complex Things the Easy Way + 105

1390

6oTO 105 PRINT “YOUR 60TO 105 END

195 eon 205

Note:

HEART

IS

ON

FIRES?™~

Line 120: Pretend that you are the computer, and try to calculate what value S can have when this statement is run.

VARIABLE LIST N—

R— S

T

Number input Random number 1 to 5 Determines if random number is added the number input Determines which response is printed

106 * BASIC

FUN

to or subtracted from

WAR Play the card game WAR with the computer. You and the computer each start with 26 cards. When it is your turn, input a number from 1 to 5. If you match with the computer, you have a BATTLE. Input a 1 or 2 to decide the outcome. If you pick the same number as the computer, you win. If it is different, the computer wins. The winner of the BATTLE gets all of the opponent's cards since the last BATTLE. The WAR is won when one of you gets more than 42

cards. Good Luck! Can you write games?

a program

that plays one

of your favorite card

SAMPLE RUN WELCOME TO THE GAME WAR WE EACH START WITH 26 CARDS NUMBERED 1-5 WHEN IT IS YOUR TURN - INPLIT YOUR CARD?1 COMPUTERS CARD 1 THIS IS WAR. PICK A TOSS WAS A 1 YOU WIN 1 CARDS YOUR CARD?2 COMPUTERS CARD 4 YOUR CRRD?S COMPUTERS CARD 4 YOUR CARD?2 COMPUTERS CHRD 4 YOUR CARD?4 COMPUTERS CARD 1 YOUR CARD?1 COMPUTERS CARD 4 YOUR CARD?4 COMPUTERS CARD 2 vYOUR CARD?3 COMPUTERS CARD 4 YOUR CRRDTe COMPUTERS CARD 2 THIS IS WAR. PICK A TOSS WAS A 1 YOU WIN 3 CARDS

1

OR

271

OR

271

1

FUNCTIONS:

A

NUMBER

1

-

5

Doing Complex Things the Easy Way + 107

PROGRAM LISTING DIM ASC1) PRINT “WELCOME TO THE GAME WAR” PRINT “WE ERCH START WITH 26 CARDS” PRINT “NUMBERED 1-5" PRINT “WHEN IT IS YOUR TURN - INPUT REMeeCOMPUTERS CARDS LET T=e6 REMeeYvOUR CARDS LET S$=e6 LET U=0 LET Y=0 PRINT PRINT “YOUR CARDS INPUT N LET V=V41 C=INT CRND C1) o54+15 PRINT “COMPUTER’S CARD “SC LET

NUMBER

U=Li+1

IF C=N THEN 220 IF UST THEN e210 REMee USED ALL CARDS IN LET o IF ¥ THEN 160 LET a 6OTO 160 REMeeHH A MATCHeo PRINT “THIS IS WAR. PICK INPUT P R=INT CRND C1) @c+1> PRINT “TOSS WA IF R=P THEN cat PRINT “I WIN

PILE

A

IF T>42@ THEN GOTO 145 PRINT

A

“YOU

WIN

"SUS"

CARDS”

LET 2=4+u LET -u IF £942 THEN 310 GOTO 145 REMeerLATER WINS GHMEoo PRINT OU WIN GAME” 60TO u FEMeeCOMPLTER WINtee PRINT “I WIN GAME” PRINT “I HAVE PRINT “YOU HAVE

108 + BASIC FUN

1



OR

TURN

2"s

PILE

OVER

1

-

5"

340 345)

PRINT PRINT

350 355 360 365 370

INPUT IF AS= THEN 105 PRINT PRINT “BETTER LUCK END

Note:

“TRY

AGAINGY7No"5

NEXT

TIME?”

Line 175: This statement randomly assigns a number from 1 to 5 to the numeric variable C. This is how a programmer makes the computer play games. Lines 125, 135: Notice how the REM statement is used to identify variables. This makes it easier to change or fix a program later.

VARIABLE LIST T—Number of cards the computer has S—Number of cards the player has U—Nunmber of cards computer has turned up V—Number of cards the player has turned up C—Computer’s number (1-5) N—Player’s number (1-5) P—Player’s guess during a battle (1-2) R—Random number determining winner of a battle

FUNCTIONS:

Doing Complex Things the Easy Way * 109

FOR... NEXT The Computer Repeats Itself The FOR. . . NEXT statements allow you to tell the computer to repeat some |

lines in your program as many times

as you want. In every FOR. . . NEXT loop, the FOR statement is the

| beginning point of the loop and | the NEXT statement is always the | last statement in the loop. |

| PROBLEMS | 1. Fancy Counting | 2. Blast Off | 3. Pinball || 4. Paper, Rock, Scissors

5. Ring the Bell

FANCY COUNTING This program counts by fives. It is very similar to one in Chapter 3, but this one uses a new programming technique. Which program do you like better? Can you change this program to count by 2’s or by 10’s? SAMPLE RUN THIS

PROGRAM

COUNTS

BY

FIYES

-

WATCH

So

HOW DID YOU LIKE THAT? PROGRAM LISTING 100 110 120 130 140) 150

Note:

PRINT “THI® PROGRAM COUNTS BY FIYES FOR I=5 TO 50 2TEP 5S PRINT I NEXT I PRINT “HOW DID VOU LIKE THAT?” END

Lines 110-130: computer

This is called

executes

lines

110,

a FOR 120,

-

WATCH”

. . . NEXT and

130

and

loop. The then

goes

back to 110 and starts over. Each time line 110 is executed,

the variable I is increased by 5. When | is greater than 50 the’ computer skips around the loop and goes to line 140.

FOR

. . . NEXT:

The Computer Repeats Itself + 111

BLAST OFF This program counts backward from 10 to 1 and then Blasts Off! You can change the count-down sequence by changing line 30.

SAMPLE RUN HELLOs I AM HERE IS THE 10 9 i} 7

PERDY COUNT

TO BLAST DOWN

OFF

6

5

4

3 e 1 LAST

OFF

PROGRAM LISTING 10 20 #0 40)

PRINT “HELLOs I AM PRINT “HERE IS THE FOR I=10 TO 1 STEP PRINT I

So 60) 7Q

NEXT I PRINT “BLAST END

Note:

READY COUNT -1

TO BLAST DOWN”

OFF”

OFF"

Line 30: The FOR . . . NEXT statement can also use a minus step like this one. Then the computer stops the loop when! = 1.

112 + BASIC FUN

PINBALL The computer can play Pinball too. this game is 50; see how well you do. if your terminal has a bell. Try changing the characters (the during the game. You might use

The highest possible score in This game makes some noise letters or numbers) displayed names or nouns instead of

numbers. Try changing the program so the player has to pay a quarter to play, and then keep track of the total amount of money the player spends.

SAMPLE RUN TYPE

A

NUMBER

TO

START YOUR eoTwhee

BALL

OFF?74 oor IYEoo ooSl Xoo

ooTWOoe

oF lVEoe @oTHREEoo eos lXoo oF OURee

eos

Xoo

ooTWOee

YOUR YOUR

SCORE TOTAL

IS 41 SCORE IS

41

PROGRAM LISTING 100) 105 110) 115) 120 125 130) 135) 140 145 150 155) 160

«=DIM AS$C1) T=0 PRINT “TYPE A NUMBER TO START YOUR INPUT A S=0 FOR I=1 TO 10 R=INTCRND¢1) 641) S=S+R IF R>1 THEN 155 PRINT TABCRO10> »CHRS C7) » “eeDNEeo" GOTO 2e0 IF R>2@ THEN 170 PRINT TAB CRO10 sCHRS (7) »s “eoTWwOee” FOR

BALL

OFF"$

. . . NEXT: The Computer Repeats Itself * 113

SOTO

een

IF R>2 THEN 185 PRINT TAB SR@1 0 sCHRS 17) +" e*THREEOo" 60TO0 @en IF R>4 THEN & sCHRS (7). "eof OLIFoe” PRINT TARCRe1

6oTO

een

IF P>S THEN 215 PRINT THE CR@10) sCHRS

(7).

“oF

LVE oo"

PRINT TAB fR@1 i) sCHRS (7). NEXT I PRINT “YOUR SCOPE ITi"+2

“O*l

Xoo”

SOTO

een

TH=T+8 PRINT PRINT ” INPUT ASF IF AS="" END

Note:

SCORE THEN

Line 145: CHR$(7)

I2"+T

110

rings a bell on your terminal.

Line 150: You can use a GOTO end of the loop.

statement to jump to the

Line 125, 220: Notice how many lines of code are included in this

VARIABLE

FOR.

. . NEXT loop.

LIST

T—Total score S—Game score R—Points for each round

114 + BASIC FUN

PAPER, ROCK, SCISSORS You can play this game with your computer. Remember . . . rock breaks scissors, scissors cut paper and paper covers rock. Try changing the program so the computer keeps score.

SAMPLE RUN FLAY THE GAME —- FAFER, ROCK, SCISSORS MAKE YOUR CHOICE AND THEN TYFE IN R FOR ROCK, S FOR SCISSORS, F FOR PAFER TYPE X TO STOP OR YOU WIN ** COMPUTER HAD S Ss COMPUTER WON ** COMPUTER HAD R 2S WE MATCHED PR YOU WIN ** COMPUTER HAD S oS YOU WIN ** COMPUTER HAD F PF YOU WIN ** COMPUTER HAD R 2x

PROGRAM 1900 105 110 115 120 125 130 135 140 145 150 155 160 165 170

WITH

THE

COMPUTER

LISTING

DIM H$(4),A8(1) LET BS = "FSRX" FRINT "PLAY THE GAME - FAFER, ROCK, SCISSORS — WITH THE COMPUTER" PRINT "MAKE YOUR CHOICE AND THEN TYPE IN" PRINT "R FOR ROCK, S FOR SCISSORS, F FOR FAFER" PRINT "TYPE X TO STOF" LET C = INT ( RND (1) * 3 + 1) INPUT At REM **FIND OUT WHAT LETTER WAS TYFED IN FOR I= 1704 IF AS = MIDS (B%,1,1) THEN 170 NEXT I PRINT "I NEED A R,S,P,X PLEASE" GOTO 135 IF I = 4 THEN 250

FOR

. . . NEXT: The Computer Repeats Itself + 115

175 180 185 1990 195 200 205 210 215 220 225 230 235 240 245 250

Note:

REM **GOT A MATCH IF C = I THEN 240 REM **GOT P,R OR R,P IF C + I = 4 THEN 225 IF C > I THEN 210 PRINT “YOU WIN ** COMPUTER HAD "; MID$ GOTO 130 PRINT "COMPUTER WON ** COMPUTER HAD "3; GOTO 130 REM **FLAY WON IF C > I THEN 200 REM **xCOMPUTER WON GOTO 210 PRINT "WE MATCHED" GOTO 130 END

(B,C,1) MID$

(B$,C,1)

Lines 145-155: These statements translate the input character into a number which the program can use. Lines 160-165: This “error routine” is needed in case the input character is wrong.

VARIABLE LIST C—Computer’s choice I—Player’s choice in numeric A$—Character input by player COMPUTER HP-2000

NOTES

BASIC

Replace line 150 with:

150 IF A$=B$(I,1) THEN

170

Replace line 200 with:

200 PRINT “YOU HAD ”; B$(C,C)

WIN

**

COMPUTER

Replace line 210 with:

210 PRINT “COMPUTER PUTER HAD ”; B$(C,C)

116 * BASIC FUN

WON

** COM-

Atari-BASIC

Replace line 150 with:

150 IF A$=BS$(I,I) THEN 170 Replace line 200 with:

200 PRINT “YOU HAD ”, B$(C,C)

WIN

** COMPUTER

Replace line 210 with:

210 PRINT “COMPUTER PUTER HAD ”; B$(C,C) TI-BASIC

WON

** COM-

Replace line 150 with:

150 IF A$ = SEG$ (B$,I,1) THEN 170 Replace line 200 with:

200 PRINT “YOU WIN HAD ”; SEG$(B$,C,1)

**

COMPUTER

Replace line 210 with:

210 PRINT “COMPUTER WON PUTER HAD ”; SEG$(B$,C,1)

FOR

** COM-

. . . NEXT: The Computer Repeats Itself * 117

RING THE BELL Now is your chance to see how strong you are. In this game you are trying to ring the bell by hitting the platform with a sledgehammer—all pretend of course! The computer tells you how well you do. Try changing the game by adding carnival prizes after a certain

number of points. SAMPLE RUN YOU

ARE TRYING TO WIN THE STRONG MAN CONTEST AT THE OCAL CARNIVAL YOU ARE GOING TO SWING THE SLEDGE HAMMER AND TRY TO RING THE BELL TO SWING, TYFE A LETTER FROM A-Z THIS WILL COST YOU .25 - FUT YOUR QUARTER ON THE TERMINAL NOW YOU YOUR YOU THIS

MARE YOUR SWING?TE CAN HARDLY FICK UF - TOTAL SCORE 1S HAVE SPENT $.25 WILL COST YOU

THE

NOW MAKE YOUR SWING?A YOUR 90 YEAR OLD AUNT COULD HAVE SCORED 3 YOUR TOTAL SCORE IS 5 YOU HAVE SFENT $.5 THIS WILL COST YOU .25 - FUT YOUR QUARTER ON

THE

TERMINAL

190 1905 110° 115

QUARTER

2

TERMINAL

TO

YOUR

SCORED

THE

PROGRAM

FUT

YOU

ON

NOW MARE YOUR SWINGTF YOU MOVED THE WEIGHT UF YOUR TOTAL SCORE IS YOU HAYE SFENT #.75

-

HAMMER, 2

4 9

LISTING

DIM AS(1),BS¢(8) LET B& = "BCPOUVIR" FPRINI "YOU GRE TRYING TO WIN THE STRONG MAN CONTEST AT THE LOCAL CARNIVAL” PRINT "YUU ARE GOING 10 SWING THE SLEDGE HAMMER AND TRY TG RING THE BELL"

118 + BASIC FUN

12 125 130 135

145 150

PRINT "TO SWING, TYFE A LETTER FROM A~-Z" LET T=0 LET B oO PRINT "THIS WILL COST YOU .25 - FUT YOUR QUARTER ON THE TERMINAL" PRINT PRINT "NOW MAKE YOUR SWING"; INFUT A LET R= 8B + .25 REM *xCHECK FOR INPUT EQUAL TG ONE OF CHARACTERS IN BS FOR I= 1708 IF AS = MIDS (B$,1,1) THEN 175 NEXT I GOTO 185 LET C = INT ((I + 1) / @) GOTO 190 LET C=0 LET D = INT ¢ RND (1) &* 6 + 1) LETS =C+D ON S GOTO 210, 220, 250, 239, 240, 260,270 GOTO 280 PRINT "BETTER EAT YOUR WHEATIES, YOU ONLY SCORED 1" GOTO O PRINT "YOU CAN HARDLY PICK UF THE HAMMER, YOU SCORED 2" GOTO 300 FRINT "YOU MOVED THE WEIGHT UF TO 4" GoTo a PRINT "YOU SCORED A S - YOU MUST BE FRACTICING GOTO Te) YOUR 90 YEAR OLD AUNT COULD HAVE SCORED 3"

GOTO 300 PRINT CHRS (7) FRINT "CONGRATULATIONS! ! YOU RANG PRINT "YOU GET 8 FGINTS!!" LET T=T+S5S PRINT "YOUR TOTAL SCORE IS ",T PRINT "YOU HAVE SFENT $"3B GOTO 135 END

FOR

THE

BELL!!"

. . . NEXT: The Computer Repeats Itself * 119

Note:

Lines 155-180:

If the letter entered by the player is one of

the 8 letters stored in B$, this routine adds a bonus to the player’s score. Line 200: This GOTO

statement replaces 7 single GOTO’s. It

is very useful when a variable such as S can have many different values.

VARIABLE LIST T—Player’s total score B—Amc:nt player has spent A$—Input character B$—Contains a list of letters that add a bonus to the player’s score

D—Random number (1-6) C—Bonus point if player enters one of the letters in B$

S—Player’s score for this game COMPUTER NOTES

HP-2000 BASIC

The multiple GOTO

on line 200 has a differ-

ent format on the HP-200. with:

200 GOTO S OF 240, 260, 270

210,

Replace

220,

line 200

250,

Replace line 160 with:

160 IF A$ =B$ Atari BASIC

(I, I) THEN 175

Replace line 160 with:

160 IF A$=BS$(I,1) THEN 175 TI-BASIC

Replace line 160 with:

160 IF A$ = SEG$ (B$,1,1) THEN 175

120 * BASIC

FUN

230,

FANCY PRINTING (TAB) Writing It Your Way This function makes it easy for you to draw designs with the computer. It works like the tab key ona typewriter. It tells the computer to move a certain number of spaces across

the line and then print. You can use numbers,

variables or numeric

expressions inside the (_

ONaDORWNH

PROBLEMS . Rectangle . Design-a-Scarf

. HIHO . . . . .

Lifeguard Shape Party Fleet Award

).

RECTANGLE You can use the computer to draw lots of shapes. This program draws a rectangle. Use different numbers for the height and width and see what your rectangle looks like. Try writing a program that draws a triangle.

SAMPLE RUN THIS

PROGRAM

TYPE IN 710.20

DRAWS

HEIGHTs

° ° ° ° ° ° ° °

1 1 1 1 1 1 € é 2 2

Note:

RECTANGLE

° ° ° ° ° . ° °

PROGRAM 100

A

WIDTH

LISTING

PRINT “THIS PROGRAM DRAWS A RECTANGLE” PRINT “TYPE IN HEIGHTs WIDTH" INPUT Held FOr I=1 TO WwW PRINT “-"S NEXT I PRINT FOF I=1 TO H-2 PRINT “eS TAB CWA-135 "0" NEXT I FOR I=1 TO WwW PRINT “-"i NEXT I END

Line 140: The ; tells the computer to remain on the same print line. Try changing the ; toa , and see what happens.

122 + BASIC FUN

Line 180: This TAB function tells the computer to print the next * in column (W-1).

VARIABLE LIST H—Height of rectangle W—Width of rectangle

COMPUTER NOTES Atari BASIC Does not have the TAB function. Appendix A describes a method of converting these programs for the Atari.

FANCY

PRINTING:

Writing It Your Way * 123

DESIGN-A-SCARF Use your own initials to design a scarf. You can using this program. Notice that it is very similar to a rectangle. Try using something besides your initials for the What must you change if you want to use 4 design?

find a nice design the one that made design. characters in your

SAMPLE RUN DESIGN A INITIALS FMAZ

SCARF

I IT T I I I I I I I I I IMAZ I IT MAZ I I MAZ I

WITH

YOUR

INITIALS

MRAZ

I I af I I 1 J I I I I I I I I I I I

MAZ MAZ MAZ MAZ MAZ

DONE

PROGRAM LISTING

nh >

GIN [#30 PRINT "DESIGN A SCARF PRINT “INITIAL: INPUT I% LET H LET on

164 114 126 128 146 154)

124 + BASIC FUN

WITH

YOUR

INITIALS"

166 17@ 186 198 20@ 216 226 23@ 24@ 256 268 276 286 2396

FOR I =1TOH PRINT "-"s NEXT I PRINT FOR I = 1 70H - 2 STEP 2 PRINT “I"G LET R = INT ¢ RND (1) # CH PRINT TABC Rosl$s TABC H PRINT "I"s TABC H - 195"I" NEXT I FOR I =1T0H =PRINT "-"; NEXT I END

- 693 4+ 1 i3s"I"

VARIABLE LIST I—Characters to use in design H—Height of scarf outline

W—Width of scarf outline R—Column to print design

FANCY

PRINTING:

Writing It Your Way * 125

HIHO The TAB function helps make interesting patterns like this one. Can you write a program that prints WIN in the shape of a V?

SAMPLE RUN WATCH

WHAT

PROGRAM 100) 110° 120

I CAN

MAKE

LISTING

PRINT “WATCH WHAT PRINT PRINT FOR k=1 TO 3 PRINT TAB CKO S “HI"S

FOR

PRINT NEXT END

k=11

TO

20

I

CAN

MAKE”

TAR CO0-K3

5 "HO"

TABCE(-k> 3 "HOS TABCK? 3s "HI"

Kk

126 * BASIC FUN

LIFEGUARD You can have some fun with the TAB function too. In this game, you hear a swimmer calling for help and you try to throw him a life ring. If you hit him, you can save him—otherwise—it is Davy dones’s locker for him. Change the program so it only gives you four tries to save the swimmer.

SAMPLE RUN YOU MISSED: TRY AGAIN? WHERE YOU WANT IT TO LAND?S ia) HELP YOU MISSED: TRY FIAINE WHERE YOU WANT IT TO LANDS HELP O YOU MISSED: TRY AGAIN! WHERE YOU WANT IT TO LAND? 3 QO HELP YOU MISSED» TRY AGAIN? WHERE YOU WANT IT TO LANDS THANKS? YOU SAVED My LIFE?

PROGRAM LISTING 100° 110) 120 130 140 150 160 170) 1809 190 200 210 220 230 240

PRINT SE THIS PROGRAM TO HELP A DROWNING PRINT QO THROW THE LIFE RING: INPLIT 1-10" PRINT “WHERE YOU WANT IT TO LANDS LET X=INT¢CRND C139 e10+1> INPUT © IF S=x% THEN 230 IF S>% THEN 190 PRINT TABCS)$"O"3 TAB CX) § “HELP” =GOTO eon PRINT TARCX>$ “HELPS TABCS) $ “0” PRINT PRINT “YOU MISSED» TRY AGAIN?” GOTO 1e0 PRINT “THANKS! YOU SAYED My LIFE!” «END

FANCY

PRINTING:

SWIMMER”

Writing It Your Way * 127

VARIABLE LIST S—Column

where life ring is thrown

X—Column where swimmer is located

128 + BASIC FUN

SHAPE You can make 3-dimensional shapes like this one. The secret for success is to be very careful to count out each space. Once you understand how this program works, modify it to make a shape of your own.

SAMPLE RUN FAMILIAR

SHAPE

ooo

°

ere

*

eo @ e+reooreeeoeoe

°

°

°

° ¢

eooeoeoee

°

Ff YERY

°

°

PRINTS

eo ooo

ee

PROGRAM

°

THIS

PROGRAM LISTING 100 110 120 130 140

PRINT “THIS PROGRAM PRINTS A YERY PRINT TABCIS>3"¢@ FOR $=1 T0 6 PRINT TABC1S-S23"e"3 TAB CIS+ 994 "0" NEXT § FANCY

PRINTING:

FAMILIAR

SHAPE”

Writing It Your Way * 129

150 160 170 190 190 200 210 220 230 24) 250 Note:

FOR T=5 TO 1 STEP PRINT TAB(9)$"e"S TAB(2193"@ NEXT T FOR U=1 TO 8 PRINT TABS) $e" 3 NEXT U FOR ¥=5 TO 1 STEP PRINT TABCIS-¥) 3" NEXT Y PRINT TABCIS)3 "0" END Notice that each FOR tion of the cube.

130 + BASIC FUN

-1 TAB CIS-T)$ "@"3 TABCIS+T) 3 "05 TAB CIS? $"e"3 TABCZ193 "0" -1 e"3 TAB CIS) $e" 3 TAB CIS +9) 3 "0"

. . . NEXT

loop prints a different sec-

PARTY Use this program to print party invitations for your next party. This one asks for your name, date and time of the party and your

address. Try making an invitation of your own.

SAMPLE RUN MAKE UP YOUR OWN PARTY INVITATIONS YOUR NAME7BECKY YOUR ADDRESS745e25 ELMWOOD DRIVE DAY OF THE PARTY?MAY 20 TIME OF THE PARTY?1200 PLM. O.k. HERE IS YOUR INVITATION

PLEASE

To

COME

my

BIRTHDAY

PARTY

DATE: TIME: PLACE:

BY

MAY 30 1:00 PLM. 4525 ELMWOOD

DRIVE

BECKY

PROGRAM LISTING

100 110) 120 120 140) 150

DIM ASC25)]-BSC25) -C$l25) -DSlz5) PRINT “MAKE UP YOUR OWN PARTY INVITATIONS” PRINT “YOUR NAME"S INPUT DS PRINT “YOUR ADDRESS” INPUT AS FANCY PRINTING:

Writing It Your Way * 131

PRINT INPUT PRINT INPUT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT PRINT END

“DAY OF THE PARTY'S BS “TIME OF THE PARTY"S cs “O.K. HERE IS YOUR INVITATION"

TAR C15) 3 "PLEASE TAB (18)

“To

TABC14>3

"BIRTHDAY

TAB CIS) TABCIS TABCL

TABC1S)

132 * BASIC FUN

COME”

my"

§ "DATES

PARTY”

FLEET Watch this fleet of rocket ships blast off from your video terminal. Try adding your own ships to this fleet.

SAMPLE WATCH

RUN THIS

FLEET

II I] II mma

OF

ROCKET

SHIPS

BLAST

OFF?

II Il II —--*

PROGRAM LISTING 100 105 106 107 108 109° 110 120 125 130) 135 140 150 160 170 180 190 200 210

PRINT “WATCH THIS FLEET OF ROCKET SHIPS BLAST PRINT PRINT PRINT PRINT PRINT LET R=INTCRND C1) e20+2> PRINT TABCRD$"*"S TABCR+15) $ FOR I=1 TO 3 PRINT TABCR-1)3"I I“5TABCR+1495"I 1" NEXT I PRINT TABCR-2)5"7___s"3 TAB CR+1395 "7___s" FOR J=1 TO 15 FOR I=1 TO 100 «NEXT I PRINT NEXT J GOTO 110 END

FANCY

PRINTING:

OFF?"

Writing It Your Way * 133

Note:

Lines 150-190: These statements blast off your video screen. Lines 160-170: what happens.

134 + BASIC FUN

make

Slows the computer

down

the

{ieet of ships so you can see

AWARD Award yourself a certificate of excellence in horseback riding camp. We designed this one for a friend. Once you have this program working, try making up some of

your own. You forms.

can

use a

similar program

to print blank

checks

or club

eeeeeeeeeoeeeoe

DEER

CREEK

CERTIFICATE AWARDED TO

If

CoS

S

SSS

HES HHH

HHH

HHH

HSS

HHH

HHH

HH HHEHHT

HHS

PROGRAM LISTING 100

DIM

110 120

PRINT INPUT

As$Ce5)

130 140

PRINT “eee ee ooo eoeeee” FOR m=1 TO 5

150)

PRINT

“INPUT AS

‘OUR

NAME"S

ee

eee

eee

eeeereoeeoe

“e"sS TARCEO

FANCY

PRINTING:

Writing It Your Way * 135

CHT

HHH

LYN LIPSCOMB FOR SUCCESSFULLY COMPLETING A PROGRAM IN HORSEMANSHIP AND RIDING INSTRUCTION AT HORSE CAMP IN PALO ALTOs CALIFORNIA

HHTHHEH CTH

CAMP

HHH

HHH

THIS

HORSE

HEH

HHH

HHH

HH

OS

INPUT YOUR NAME?LYN LIPSCOMB eooeoeoeoeeoeoeoeoeo eee eee

EHS

SAMPLE RUN

160 170

NEXT M PRINT “@"STABRCE193 "DEER

180

PRINT

“e's

190) 200

PRINT PRINT

“@"3 TABC s"THIS CERTIFICATE IS“3 TABC60)3 "0" “e"S TABCZ6)3 "AWARDED TO"s TABCEDD $ "0"

e210 220

FOR X=1 TO 3 PRINT "“@"3 TABRCEDD Ss "oO"

240 250

PRINT PRINT

220

60 270 eso 290

300 305 310

NEXT

TABC

CREEK

HORSE

CAMP”$ TRB C6035"

“eo

X

“STAB C22) 5 AS3 TAB(60) 3 "oO" “eS TABC11>3 "FOR SUCCESSFULLY

| COMPLETING

A

]

PROGRAM'S TABCE0) 3 "oe" PRINT “e"S TABC1O>3"IN HORSEMANSHIP AND RIDING INSTRUCTION ATS TAB CED "oO" PRINT “e"S TAB C1495 "HORSE CAMP IN PALO ALTO? CALIFORNIA" TABC6O) 3 "eo" FOR m=1 TO 5 PRINT “e@"STABCED? Se"

NEXT M PRINT "“e ®@ ee eereveererereoerereoeoereoeoeveoe ooo e eee o” END

VARIABLE

A$—Name

LIST

to use on the form

136 * BASIC FUN

4

10 SUBSCRIPTS Where to Store Your Information You can store more than one number in a numeric variable by using subscripts. A subscripted variable is written A(3), where A is the variable name and the number inside the ( ) is the subscript. The subscript determines which of the numbers stored in the variables to use. For example: if you have 3 numbers in A, then A(1) is the first number, A(2) is the second, etc. You can input, print, and do calculations with subscripted variables just as with other numeric variables.

PROBLEMS 1. Most Valuable Player 2. Bank Statement 3. Pascal’s Triangle 4. Sea Battle

MOST VALUABLE PLAYER Help your coach pick the most valuable player on your soccer team. You rate each of the best 6 players in 3 categories, and this program calculates a MVP score. Can you fix this program so it can use more than 6 players? Can you change the program to add another rating category?

SAMPLE RUN THIS FROGRAM HELFS YOU FIND THE MOST VALUABLE FLAYER ON YOUR SOCCER TEAM RATE EACH OF THE 6 FLAYERS YOU THINK ARE THE ON THE FOLLOWING CATEGORIES 1 - 5(S BEST) SOCCER SKILLS ATTITUDE ATHLETIC ABILITY THE COMPUTER WILL CALCULATE A MYF SCORE

BEST

FLAYER

FLAYER PLAYER PLAYER THE RATINGS PLAYER 1 2 3 4 ie] 6

ARE

SKILL 1 2 1 4 2 =

AS

FOLLOWS

ATTITUDE 2 ze) i] 3 3 3

ABILITY 3 s i] 4 4 4

MVF 11 18 18 23 17 26

PROGRAM LISTING 95 100 110 120 130

DIM S(6),A(6),6(6),T(6) PRINT "THIS PROGRAM HELPS YOU FIND THE" PRINT "MOST VALUABLE PLAYER ON YOUR SOCCER TEAM" PRINT "RATE EACH OF THE 6 FLAYERS YOU THINK ARE THE BEST" PRINT "ON THE FOLLOWING CATEGORIES 1 - S(S BEST)"

138 + BASIC FUN

140 150 160 170 180) 190 200 210

PRINT PRINT PRINT PRINT PRINT FOR I PRINT INFUT

TAB( 10),"SOCCER SKILLS" TAB( 10),"ATTITUDE” TAR( 10),"ATHLETIC ABILITY" "THE COMPUTER WILL CALCULATE

MVF

SCORE"

=1 1706 "PLAYER "313 S(T),A(1),G(1)

+ "THE

ACI)

RATINGS

320 350

Note:

Line 95:

The

It saves

DIM space

under the same each number.

+

ARE

"FLAYER SKILL = 1706 " " " "sG(I)s" "sTC1) NEXT IT END

too.

A

GCI) AS

2

FOLLOWS"

ATTITUDE

ABILITY

"ssc(Io3"

statement for you

name.

&

"SACT)3"

is used for numeric

to store

Then,

MVF"

you

more

than

one

variables number

use subscripts to get to

Line 210: The ratings for player 1 are put in S(1), A(1) and G(1). The ratings for player 2 are in S(2), etc. Line

240:

Another

name

for a subscripted

variable

is an

array. VARIABLE

LIST

S—Soccer skills ratings A—Attitude ratings

G—Athletic ability ratings T—MVP score COMPUTER

NOTES

The spacing produced by the , (comma) and the ; (semicolon) varies with each version of BASIC. Therefore, this program may not SUBSCRIPTS:

Where to Store Your Information + 139

line up on your computer as shown in the sample output. Experiment with the spaces used in the print statements in order to fix it for your computer.

Atari BASIC

Does not allow subscripted variables in an input statement. To convert, replace line 210 with:

205 206 207 210

140 + BASIC FUN

INPUT X, Y, Z LET S(l)=X LET A(l) =Y LET Gil) =Z

BANK STATEMENT Now you can print your own bank statement. Use this program to show how your money increased (or decreased) during the last few months.

SAMPLE RUN BANKER*S PROGRAM - PRINTS A BANE STATEMENT INPUT BEGINNING BALANCE? 100 INPUT TOTAL NUMBER OF DEFOSITS AND WITHDRAWALS?4 NOW INPUT EACH DEFOSIT OR WITHDRAWAL WITHDRAWALS ARE (—) AMOUNT 1 fs) AMOUNT 27300 AMOUNTS?-S00 AMOUNT 47100

KK

BANE

STATEMENT

BEGINNING

PUNK

#

BALANCE

YOK

$100

AMOUNT

ACCOUNT BALANCE

200 300

Bao

-500 100

ENDING

BALANCE

$200

PROGRAM LISTING 100 110 120 130 140)

DIM T(15),D(14) PRINT "BANKER*S PROGRAM - PRINTS A BANK STATEMENT" PRINT "INPUT BEGINNING BALANCE"; INPUT A PRINT "INPUT TOTAL NUMBER OF DEFOSITS AND WITHDRAWALS";

SUBSCRIPTS:

Where to Store Your Information » 141

150 160 170 180 190 200 210 220 230 240 250 260 261 270 280 281 290 300 301 310 320 323 330 340 350 360 361 370 380

Note:

INPUT N PRINT "NOW INPUT EACH DEPOSIT OR WITHDRAWAL" PRINT "WITHDRAWLS ARE (-)" FOR I = 1 TON PRINT "AMOUNT";13 INPUT D(I) NEXT I T(1) = A FOR I= 1 TON T(I +1 ) = TCI) + DCI) NEXT I PRINT PRINT PRINT TAB(9) 3 "*xKK BANK STATEMENT sO" PRINT PRINT PRINT TAB(13); "BEGINNING BALANCE $";3A PRINT PRINT PRINT "#", "AMOUNT", "ACCOUNT" PRINT TAB(29):; "BALANCE" PRINT FOR I = 1 TON PRINT I,D(1),T(I+1) NEXT I PRINT PRINT PRINT TAB(15); "ENDING BALANCE #"3;T(N + 1) END

Line 240: Try playing computer, and do this calculation yourself. Why does the program store the result in T (I+ 1)?

VARIABLE

LIST

A—Beginning balance D—Deposits/withdrawals T—Running balance

COMPUTER

NOTES

Atari-BASIC

Replace line 200 with: 200 Input X

205 Dil) =X 142 » BASIC FUN

PASCAL'S TRIANGLE The numbers in this program have an interesting relationship. Can you figure out what it is? This is called Pascal’s triangle, named after

the mathematician numbers.

who

invented

this interesting arrangement

of

SAMPLE RUN HERE

IS

PASCAL’S

TRIANGLE

1 4

1 3 10

2 6

1 3 10

1 4

1 5

1

1

PROGRAM LISTING 100 110) 120 130 140) 150 160 170 180 190 200 205 210 220 240 250 e60 270 280 290 300 316

PRINT “HERE IS PASCAL“S TRIANGLE” DIM Ef10.10) LET M=35 REMeePUT NUMBERS INTO ARRAY LET ECis1)=0 LET N=6 FOR R=e TON ECRs1]=1 FOR TO R-1 ELCRs ECR-155-1] +E (R-1+5] NEXT & ECR»sR]=1 NEXT R REMeenNOW PRINT TRIANGLE FOR I=1 TON PRINT TABCM-¢I-1) e695 FOR J=1 TO 1 PRINT ECIsJ15" 3 NEXT J PRINT NEXT I END

SUBSCRIPTS:

Where to Store Your Information + 143

Note:

Line 190: This statement calculates each row of numbers. Notice that you can add together numbers in the same array. Line 110:

The array E has 2 subscripts. This is called a 2 di-

mensional array. A 2 dimensional array has rows and columns. In this case, the array E has 10 rows and 10 columns. VARIABLE LIST E—Contains the numbers for Pascal’s Triangle N—Number of rows to print

144 + BASIC FUN

SEA BATTLE In this program you and the Deploy your ships on a 4 x 4 square, and the computer will If this gets too tame for you, increase the size of the grid or

computer play the Sea Battle game. grid with each ship occupying one do the same. Then fire away! see if you can change the program to the number of ships.

SAMPLE RUN BATTLESHIP

WOULD YOU LIKE INSTRUCTIONS ¢Y/ND 7Y YOU HAVE A FLEET OF 6 SHIPS. EACH SHIP IS NUMBERED 1> @> OR 3¢2 OF ERCH NUMBER>. USING A 4 X 4 GRID YOU AND THE COMPUTER FIRE TORPEDOES AT EACH OTHER. WHEN YOU ARE ASKED» INPUT YOUR SHOT SUCH AS es3 STAYING WITHIN 4). WHEN THE COMPUTER SHOOTS; IF IT HITS A SHIPs INPUT WHICH SHIP IT HIT. WHEN THE COMPUTER MISSES» INPUT A 4. THE FIRST ONE TO DESTROY THEIR OPPONENT’S FLEETs WINS. GOOD LUCK???

SHOOTING AT @ 74 I HAVE A SCORE NOW YOU TRY YOU MISSED SHOOTING AT 1 74 I HAVE A SCORE NOW YOU TRY oa

°

°

1 OF 6 INPUT YOUR SHOTT2 +3 OF 6 INPUT YOUR SHOTT1+1 °

E

YOU HIT A 3 YOUR SCORE If 3 SHOOTING AT & se gee ° ° ° o E I HAVE A SCORE OF 32 NOW YOU TRY - INPUT ‘YOUR yOu MISSED SHOOTING AT 3 21

ia}

a

m

°

°

°

o

fe)

N

6

°

«

°

°

SUBSCRIPTS:

SHOTTese

Where to Store Your Information * 145

*4 I HAVE A SCORE OF 3 NOW VOU TRY — INPUT YOUR ° ° ° YOU HIT A 1 YOUR SCOPE If

PROGRAM

°

BE

HOT?

ie}

Qa

4

LISTING

Dim ust) REMeeTHI® PROGRAM SIMULATES A GAME OF BATTLESHIPoo PRINT TABRC27> “BATTLESHIP” PRINT PRINT PRINT PRINT “WOULD YOU LIKE INSTRUCTIONS c¥- No "Ss

INFLT

150 155 160 165 170) 175

US

IF US="N" THEN 205 PRINT “YOU HAYE A FLEET OF 6 SHIPS. ERCH SHIP IS NUMBERED 15” USING A 4 X 4 GRID® OF 3¢2 OF EACH NUMBER). “2s PRINT AT EACH TORPEDOES FIRE “YOU AND THE COMPUTER PRINT OTHER. ~ AS SHOTCSUCH YOUR INPUT YOU ARE ASKED. “WHEN PRINT PRINT IF" PRINT

“STAYING

WITHIN

“IT

A

HITS

SHIP:

49.

WHEN

INPUT

THE

WHICH

WHEN THE COMPLITER™ THE FIRST A 4. INPUT “MISSESs PRINT THEIR OPPONENT’2” PRINT “FLEETs WINS. GOOD LUCKI 22” PRINT PRINT PRINT PEMe@esET ZIZE OF GRILee DIM Cl4s4]+P (4:4) Dim Tle) PEMeelET ARRAYS TO CEROoe For I=1 TO 4

146 + BASIC FUN

COMPUTER

SHOOTS»

SHIP

IT

HIT.

ONE

TO

DESTROY

REMeesET L TO SIZE OF GRITeo L=4 mM=0 REMeeSET UP COMPLITER’S SHIPS FOR TO 2 FOR I=1 TO 3 R=INTCRAD 19 L941 NTCRND C19 oL 3 +1 CCRsS]=1 NEXT I NEXT J REMeeSET COMPLITER’S TARGEToo M=M+1 IF M>LeL THEN 465 R=INT CRND C13 L941 S=INTCRND 19 L341 IF PCRsS]>0 THEN 320 PRINT HOOTING AT INPUT H PCRs S]=H IF H=4 THEN 280

PRINT ad

“o ad

°

°

o

ON

Eg

L

*

L

GRIDee

A

N

6

°

is}

m

hd

Sn

TC1J=TC1]+H IF TC1}>11 THEN 465 PRINT “I HAYE A SCORE OF “#TC1) PRINT “NOW YOU TRY - INPUT YOUR

SHOTS

INPUT Pe IF CCRs: 5 THEN 415 IF CCRsS]>0 THEN 425 PRINT “YOU MISSen” GOTO 3

PRINT

6oTO

SPLASH!

PRINT

ALREADY

SHOT

THERE?!

B

ie}

CHES ¢7>

PRINT Ad

YOU

3e0 “o ad

°

°

°

a

PRINT “YOU HIT A “SC CRs 2) TC2]=T C2] +C (RS) PRINT “YOUR SCORE IS “#TCel CRs $]=5 IF Tl2]>11 THEN 465 60TO 320 PRINT TABR‘23: “GAME OVER” IF Tl2]>TC1] THEN 485 PRINT GOTO 4 PRINT PRINT

PCOMPLITER fyOu

WIN



WIN?

SUBSCRIPTS:

Where to Store Your Information * 147

495 sog 505 510 S15

PRINT PRINT PRINT “WANT A NEW FLEET INPUT US IF US="Y" THEN 115

S20 S25 S30 535

PRINT PRINT PRINT END

Note:

“BETTER

Line 130: statement

When gives

LUCK

NEXT

AND

A

NEW

GAME CY~ND

“5

TIME?”

the instructions to a game are long, this the player the option of skipping the

instructions.

Line 205: C and P are called 2 dimensional arrays. These arrays look like the grid you use to play this game. Each number occupies one cell in the grid. Line 355: Each time the computer shoots, the result of the shot is put in the player’s array. This keeps the computer from shooting at the same place twice.

VARIABLE

LIST

C—Computer’s ships on the 4 x 4 grid P—Player’s ships on the 4 x 4 grid T—Score for each side

148 + BASIC FUN

1] SUBROUTINES How

the Pros Do It

Subroutines are small programs that

a larger program uses over and over. Instead of including them every time you need them, they only appear once near the end of a program. A GOSUB statement in the large program tells the computer to leave that program and go to the subroutine. When

the subroutine is finished, a

RETURN statement tells the computer to go back to where it came from in the main program. PROBLEMS 1. Birthday 2. Math

Quiz

3. Tennis

BIRTHDAY How many days before your birthday? How many days between now and Christmas? This program can tell you. It converts each date into a Julian date and then calculates the difference. The Julian date is the number of days since some predetermined date, and in this program, that date is 1960. Notice that the program has to add extra days for leap years.

SAMPLE RUN WEE THIS PROGRAM BIRTHDAY

INPUT TODAY’? YEAR 71931 MONTHS

1-129

TO

FIND

DATE

AS

YOUR

NEXT

OUT

HOW

MANY

DAYS

UNTIL

YOUR

FOLLOWS

711

DAY ?4 INPUT DATE OF EAR? 1° MONTH «1-129 74 DAY? 1 THERE ARE 147 AGAIN

DAYS

BIRTHDAY

UNTIL

YOUR

BIRTHDAY

Ee

INPUT DATE OF YOUR NEXT BIRTHDAY TEAR 713281 MONTH© 1-123 711 DAS 0 THERE APE 26 DAYS UNTIL YOUR BIRTHDAY AGAIN 7N

PROGRAM

110° 115

LISTING

DIM ASC) De) PRINT “USE THI? PROGRAM TO FIND OUT HOW UNTIL YOUR BIRTHDA PRINT “INPUT TODAY’ 2 DATE AE FOLLOWS” GOLUB 195 BOSUB

e7t

PEMeNOmM BOSUE

MANY

FIND 310

c=T

150 + BASIC FUN

OUT

HOW

MANY

DATS

SINCE

1960

DAYS

140°

PRINT

“INPUT

DATE

1550 160 165 170

N=T-C PRINT PRINT INPUT

“THERE ARE “AGAIN” AS

D=TO

OF

YOUR

"SNS"

DAYS

NUMBER

255 260 265 270 275) 280)

RETURN REMee SUBROUTINE REMee TERR MONTH PRINT INPUT PRINT “MONTH(1-122"5

285 e290)

INPUT PRINT

M™ “DAY"S

295

INPUT

A

300 305

RETURN REMe@e

310 315)

REMe*e CALCULATES T=Y¥-1960

320 32S)

L=INTCT~4) T=¢(T-L) e365+Le366

330

FOR

335 340 345 350 355 360

T=T+DCI) NEXT I REMee ADD T=T+A RETURN END

Note:

I=1

NEXT

BIRTHDAY"

UNTIL

OF

DAYS

AND

YOUR

IN

EACH

BIRTHDAY”

MONTH

DAY

SUBROUTINE

TO

NUMBER

OF

DAYS

SINCE

1960

M-1

IN

DAYS

OF

THIS

MONTH

Line 115: This GOSUB statement tells the computer to execute statement number 195 next. SUBROUTINES:

How the Pros Do It * 151

Line 255: The RETURN

statement tells the computer to go

back and execute the line after the GOSUB statement. Subroutines are useful when you want to do the same calculation with different numbers. Lines 315-320: This statement figures out how years since 1960. Lines 330-340:

Add

many

in all the days of each month

leap of the

current year.

Lines 195-250: Since the number of days in each month won't change, it is easier to put these values into the program. Otherwise, you would have to input them every time.

VARIABLE LIST D—Array containing the number of days for each month in the year Y—Year M—Month A—Day

T—Number of days since 1960 for today’s date C—Number of days since 1960 for next birthday N—Number of days between T and C L—Number of leap years since 1960

152 + BASIC FUN

MATH QUIZ Here is a chance to test your math skills on the computer. You can do addition, subtraction, multiplication and division. The computer gives you the problem, and you input the answer. Can you change this program so it keeps track of the number of

correct answers? SAMPLE RUN INPUT MATH OPERATION + ADDITION - SUBTRACTION @ MULTIPLICATION * DIVISION “

YOU

WANT

TO

TRY

STOP

TO CHANGE OPERATION: TYPE INPUT OPERATION 2YMBOL?+

INPUT

LIMITS

OF

YOUR

INPUT

NUMBER

OF

INCORRECT

+

=7s

bal

YOU THAT

ARE

2

~1

AE

A

ANSWER

NUMBERS? PES

RIGHT

IS

é€

TRIES

MEOL?INPUT LIMITS OF YOUR NUMBERS?1+10 INPUT NUMBER OF INCORRECT RESPONSES 6 -1 =75 YOU ARE RIGHT 2-1 >

~Ss

="

INPUT OPERATION

MEOL?#

PROGRAM LISTING 100 105 110 115 120

DIM 0%(10),AS(1) LET O$="+-%/X" PRINT "INPUT MATH OPERATION PRINT "+ ADDITION" PRINT "- SUBTRACTION"

YOU

SUBROUTINES:

WANT

TO

TRY"

How the Pros Do It + 153

PRINT "x MULTIPLICATION” PRINT "/ DIVISION" PRINT"X STOP" PRINT "TO CHANGE OPERATIONS TYPE -1 AS AN ANSWER” PRINT "INPUT OPERATION SYMBOL "35 INFUT AS REM xxkxFIND OUT WHAT OPERATION NUMBER GOSUB S05 PRINT "INPUT LIMITS OF YOUR NUMBERS (L,H)" INPUT J,k PRINT" INPUT NUMBER OF INCORRECT RESPONSES"; INPUT T REM ¥*xGET 2 RANDOM NUMBERS M AND N GOSUB 370 1=0 ON A GOTO 210,245,285, 325 REM *xkkADDITIONK&AX L=M+N PRINT Mp "+ " 3 N53 " = "G INPUT PF IF P«O THEN 145 IF P=L THEN 435 GOSUBR 455 GOTO 220 REM **k SUET L=M-N PRINT Mp" - "She" = "3 INFUT FP IF Pio THEN 145 IF FP=L THEN 425 GOSUB 455 GOTO 260 REM ** MULT L=M4N

PRINT Mp" # INPUT F IF P*O THEN IF F=L THEN GOSUB 455 GOTO 200 REM *x DIV L=M/N PRINT M3" / INPUT F IF E®=T THEN PRINT

"SNS"

"3

=

"

145 435

"gNe"u 305

IF

W=6

THEN

250

IF IF

FO F=L

THEN THEN

145 425

154° BASIC FUN

=

355 360 365 370 375 380 385 390 395 400 405 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 S00 505 510 SiS 520 S25 S30 S35 540

Note:

GOSUB 455 GOTO 300 REM *x*xSUBROUTINE REM **KFINDS 2 RANDOM NUMBERS WITHIN THE LIMITS OF J & K M=INT(RND (1) #K +1) IF M O THEN 485 s=0 M=M+S PRINT "YOU MADE ";S;" MILES TODAY" PRINT “YOU HIKED "3M;"MILES TOTAL" IF M = = 50 THEN 720 D=D-1 F< oF = 2 IF Fo +1 = D THEN 540 IF G = © THEN S25 Get GOTO S35 FRINT "YOU RAN OUT OF FOOD" GOTO 705 PRINT "YOU ARE RUNNING LOW ON FOOD - BETTER SFEED UF TOMORROW" IF S + 6 THEN 585 PRINT "YGU HIFED LESS THAN 7 MILES TODAY" PRINT "YGU MUST MARE A DRY CAMF AND DRINK FROM YOUR CANTEEN" IF Wo» © THEN S75 FRINT "WHOOPS — YOU DON’T HAVE ANY WATER IN YOUR CANTEEN!!" IF —E = 1 THEN 79S FRINT "YOU HAVE TO GET WATER TOMORROW OR YOU LOSE” ES f w= 9 GOTG 385 2Ww = 1 FE

FO

LET R = INT ¢ RND (1) * & + 1) ON RF GOTO 595, 610,640,649, 640,640 PRINT "BEAR CARRIES OFF YOUR FACK CANTEEN"

-

LEAVES

YOUR

Fo GoTo 155 FRINT “SQUIRRELS GET INTO YOUR FACE - EAT 2 DAYS Or FOOD" FHrF-2 GOTO 155 PRINT "YOU SLEFT WELL ~ READY FOR A GOOD DAY OF HIE ING" GOTO 155 FRINT "YOU ARE IN A 50 MILE CROSS-COUNTRY BACKPACK RACE

GAMES:

Now You Can Do Your Own Thing * 173

655 660

FRINT "¥OU START WITH S DAYS GF FOOD AND 1 DAY OF WATER" PRINT "YOU CHOOSE YOUR HIFING SFEED EACH DAY AS FOLLOWS" PRINT " 1 - HIKE LESS THAN 10 MILES" PRINT " 2 - HIKE 10 MILES" FRING “ 3 - HIFE MORE THAN 10 MILES" FRINT " 4 - STAY IN CAMP" PRINT "“YQU LOSE AND HAVE TQ RADIO FOR HELF IF" PRINT “YOU GO WITHOUT WATER FOR 2 DAYS" PRINT "OR YOUR FOOD SUFFLY IS LOW FOR 2 DAYS" GOTO 120 FEM

*#HAVE

TO

DROF

OUT

OF

FRINT "RADIO FOR HELP, YOU GOTO 765 REM kx*YOU REACH THE FINISH

PRINT "CONGRATULATIGNS'' LINE! '"

730

R=

INT

€(

RND

35h = R * 10 740 IF R > 0 THEN

745 750 755 760 765 770 775 780

Note:

(1)

&

RACE

AREN*T

GOING

LINE

YOU REACHED

TO

MAKE

THE FINISH

3)

755

PRINT "YOU WON ~- FIRST PLACE!!" GOTO 765 PRINT "THERE ARE "3Ri" HIKERS AHEAD PRINT "BETTER LUCK NEXT TIME" PRINT "WANT TO TRY AGAIN"; INFUT A& IF AS = "Y" THEN 100 END

Notice that different things can fast the hiker chooses to travel.

happen

OF

YOU"

depending

on how

VARIABLE LIST F W D M S T J E

—Days of food left — starts with 5 —Water in canteen — starts with 1 —Days left to hike —Total miles traveled —Miles traveled during the current day —Flag used to control options, if T>0, program specifies speed —Hiking speed input —Set to 1 if player runs out of water. If player is out of water for 2 days in a row, forces player to radio for help. G —Set to 1 if player runs out of food. Forces player to radio for help if player is out of food for 2 days in a row. 174 » BASIC FUN

IT

APPENDIX A Differences Between the Versions of BASIC

BREAK KEY Every computer has a break—or program interrupt—key. However, some use a different name, or require a combination of keys. Use the programmer’s reference manual included with your computer to determine what it uses. In this text, we have adopted the convention of referring to this key as the break key.

RANDOM

NUMBER

this function

FUNCTION varies.

The

(RND)

Apple,

The format for

HP-2000,

Atari,

Os-

born and IBM use RND(1), the TRS-80 uses RND(0), and the TI uses RND. The Osborn and IBM computers also require the statement RANDOMIZE in the beginning of the program in order to get a different series of random numbers each time the program is run. PRINT

statement

spacing version such as columns puter as

using

, (comma)

or

; (semicolon)

The

produced by the , and the ; varies with each of BASIC. Therefore, some of the programs, MVP in Chapter 10, which print a heading and of numbers, may not line up on your comshown in the sample output. Experiment with

your own

computer to determine the proper spacing.

IBM BASICA, Osborn CBASIC, BASIC-Plus and Altair Extended Basic These versions of BASIC allow string arrays. The programs in this text use standard BASIC which does not have string arrays. In order to run these programs, leave out the string variables in the DIM statements. APPENDIX

A * 175

Atari-

Does not have a TAB function. You BASIC convert programs that use this function as follows: a) replace TAB(10);“*” -withPRINT “(10 spaces)”;“*” ~ b) replace TAB(W);“*” -with-

can

FOR I=1TO W-1 PRINT “”; NEXT I PRINT “*” Does not allow use of DIM statement with string TI-BASIC variables. In order to run the programs in this text, simply eliminate the string variables in the DIM statement in each program. —Does not have string functions needed in order to combine strings. Therefore, the following programs in Chapter 5 cannot be run on the TI:

RHYME AUTHOR Radio

Does not use the Shack—TRS-80 Color BASIC Therefore, leave ts. statemen word LET in assignment statements. For these entering this word out when example: Instead of: LETA=B + 1 A=B+1 Use:

The format for the. multiple GOTO HP-2000 BASIC statement is different from the one used in the programs in this text. Instead of: ON X GOTO line *,line*,..etc GOTO X OF line#,line*,..etc Use:

176 * BASIC FUN

MORE BASIC THAN AEC KIDS! Write your own computer games! PARENTS! Your kids can show you how!

TEACHERS! classes!

Use this book as a text for programming ;*s

There’s so much you can do on a complUter—once you know how. This easy-to-follow guide can serve as an introduction to any computer which uses the BASIC programming language. BASIC FUN Regins with the most simple programs for beginners and progresses to more difficult programs for expert programmers. There's everything from drawing a rocket ship that blasts off your video terminal to figuring out time differences around the world, and calculating your favorite ballplayer’s batting average to teaching your computer a magic trick. These programs are for anytime, anywhere —home and school—and anybody who's ever been interested, curious, or fascinated by computers.

80606 AVON