introduction to basic programming ken r. hall, ph.d. ken r. hall consultants portland, oregon

21
Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Upload: judith-preston

Post on 18-Jan-2016

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Introduction toBASIC Programming

Ken R. Hall, Ph.D.

Ken R. Hall Consultants

Portland, Oregon

Page 2: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Speaker’s Qualifications

• Ken Hall is a PICK/SHIMS consultant and owner of Ken R. Hall Consultants.

• Ken has over 25 years experience developing applications in PICK, Universe, and Unidata.

• Ken is a reseller of IBM U2 (Universe) and Raining Data database products.

• Ken has developed business applications for distributors, retailers, mail order houses, manufacturers, and leasing companies.

Page 3: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Learning Objectives

• As a result of this presentation, you will be able to:– Look at a BASIC program with an editor – Read the statements in a BASIC program– Know where to look for more information

when you don’t understand the program

Page 4: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Presentation Agenda

• Concepts and Terminology• Creating and Viewing

Programs• An Introduction to commonly

used BASIC statements• Where to find more

information about BASIC

Page 5: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

UniVerse Database Concepts

• Multivalue database structure– Accounts and Files– Keys or Item-Ids– Variable length Record Structure

• Each subdivision has a separator character

– Records or Items• Fields or Attributes

– Values within Fields» Subvalues within Values

Page 6: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Terminology of PICK/BASIC

• Statements – a line of BASIC codeCUST.NO = CUSTOMER.REC<1>

• Constants and Literals – things that don’t changeOK.RESPONSE = “YES”

• Assignment Statements – changing valuesNUMBER.PRODS = 0

• Functions – things available from the systemTODAY = DATE()

• Operators – symbols that associate variables– Arithmetic, Logical, or String

+, -, *, /; #, =, GE, LE, LT, GT; :

Page 7: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Creating and Viewing Programs

• Create a File to store programs– CREATE.FILE YOURBP

• Naming a program• Use the Editor, ED or WED, to create/edit a program

– ED YOURBP YOUR.PROGRAM

• Compile the program with BASIC command– BASIC YOURBP YOUR.PROGRAM

• Activate the program with RUN command– RUN YOURBP YOUR.PROGRAM

• Activate the program with CATALOG command– CATALOG YOURBP YOUR.PROGRAM

Page 8: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Fundamental BASIC Statements

• PROMPT• PRINT• CRT or DISPLAY• INPUT• END• STOP• IF … THEN … ELSE• LEN(), ABS(), DATE(),TIME• OPEN• READ• WRITE• GO or GOTO

• * comments for clarity

• * looping• FOR

• NEXT

• LOOP

• UNTIL or WHILE• REPEAT

• * finding records

• SELECT

• READNEXT

Page 9: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Adding Comments for Clarity

• Comment lines start with *, !, or REM– * PROGRAM TO PRINT INVOICES FOR XYZ COMPANY– ! This line is also a comment

• Programs often start with comments that explain the purpose of the program and the author

• Comment lines can be used as spacers for clarity– *– * TODAY is a constant to store the current date– TODAY = DATE()– *

• Comments document modifications to the program

Page 10: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Simple Input of Information

• PROMPT defines the character displayed when user input is requested by the program– * send the colon when input is requested– PROMPT ‘:’

• INPUT requests user input from the keyboard– Puts prompt character at current cursor position– Input is completed by hitting Enter key – INPUT CUSTOMER.NAME

• Input can be positioned and/or formatted– INPUT @(ROW,COL):CUSTOMER.NAME

Page 11: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Output of Data

• PRINT sends data to either screen or printer– Controlled with PRINTER ON or PRINTER OFF

statements– PRINT “This is a test of output”– PRINT CUSTOMER.NAME

• CRT sends data to the screen– CRT YOUR.NAME

• Output can be positioned and/or formatted– PRINT @(ROW,COL):CUSTOMER.NAME “L#25”

Page 12: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Marking the END

• The END statement is used to:– Marks the end of the program

* the last line is belowEND

– Marks the end of a multi-line statementIF DAYS.PAST.DUE > “90” THEN PRINT “OVER 90 DAYS PAST DUE”END

• The STOP statement causes the program to terminate. * the next line exits this program after Q is typed IF DATA.INPUT = ‘Q’ THEN STOP END

Page 13: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Logical Control with IF … THEN

• Single line statement:IF X > “10” THEN PRINT “More than ten” ELSE PRINT “Ten or less”

• Multi-line IF statement:IF X > “10” THEN

PRINT “X is greater than ten”

END ELSE

PRINT “X is ten or less”

END

Page 14: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Logical Control with LOOP

• Single line LOOP statement: X = 0 LOOP X = X + 5 WHILE X < 100 DO PRINT “X is ”: X REPEAT * Go here when X is equal to or greater than 100

• Multi-line LOOP statement: X = 0

LOOP X = X + 5 WHILE X < 100 DO

PRINT “X is ”:X REPEAT

* Go here when X is equal to or greater than 100

Page 15: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

OPEN file and READ data

• Use OPEN to gain acces to a fileOPEN ‘CUSTOMER’ TO CUST.FILE ELSE STOP

• Use READ to read a record from a fileCUST.NO = ‘1023’

READ CUSTOMER.REC CUST.FILE, CUST.NO THEN

CRT CUSTOMER.REC<1> ; * display customer name

END ELSE CRT ‘CUSTOMER ‘:CUST.NO:’ not found’

Page 16: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

WRITE data to a file

• Use WRITE to save data to a recordWRITE CUSTOMER.REC ON CUST.FILE, CUST.NO

• Use WRITEV to save a variable in a field CUST.NO = ‘1023’

CUSTOMER.NAME = “ABC ELECTRIC CO.”

WRITEV CUSTOMER.NAME ON CUST.FILE, CUST.NO, 1

• Corresponding READV reads a field READV CUSTOMER.NAME FROM CUST.FILE, CUST.NO, 1 ELSE

CUSTOMER.NAME = ‘UNKNOWN’ END

Page 17: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Sample BASIC Program

* A simple program that opens a file and reads data PROMPT ''10: CRT 'Enter first file name: ': INPUT F1 IF F1 = '' OR F1 = 'X' OR F1 = "." THEN STOP OPEN F1 TO FILE1 ELSE CRT 'CANNOT open file ':F1 GO 10 END READ TEST.REC FROM FILE1, ‘TEST’ THEN CRT ‘TEST.REC IS ‘:TEST.REC END ELSE CRT ‘TEST IS NOT ON FILE’ END STOP END

Page 18: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

PICK BASIC Book

• Jonathan E. Sisk'sPick/BASIC: A Programmer's Guide

Found on the web at: http://www.jes.com/pb/index.html

Page 19: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

IBM UniVerse Documentation

• To view or get copy of UniVerse BASIC manual, follow the link below:

Found on the web at: http://www-306.ibm.com/software/data/u2/pubs/library/

Click on UniVerse version that you want.Choose “install doc set” to download the entire UV documentation set with installer.

Page 20: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Q&A

Page 21: Introduction to BASIC Programming Ken R. Hall, Ph.D. Ken R. Hall Consultants Portland, Oregon

Thank You!Ken R. Hall

Ken R. Hall Consultants [email protected]

503-702-7841