Embed
Email

Programming

Document Sample

Shared by: Kerala g
Categories
Tags
Stats
views:
6
posted:
12/4/2011
language:
English
pages:
33
Picnic Point High School

Computing Studies

Year 10









Programming

Student Booklet









Programming 1

Picnic Point High School

Programming

Introduction

Computers are tools that we use to solve problems. Some problems might be able to be

solved by using programs written by someone else.



These notes were written with the help of a program called a word processor. A team of

people at Microsoft wrote a program called WORD, which solves the problem of producing

neat, written documents. MYOB is a program, written by a team of people, to solve the

problem of keeping track of a business’s finances. Computer games are written by people to

solve the problem of entertaining the players.



Other problems might be too small, or too specific to one

person/business type, so that there is no market to make it

profitable for a professional programmer to write a program as a

solution. In these cases the user needs to write their own

program. This unit is devoted to teaching you how to program

computers to do what you want.



Problem Solving

Since a program is the solution to somebody’s problem, before you can write the program

you need to be able to solve the problem. This usually isn’t as difficult as it sounds.



There are three main steps involved in producing the solution to a problem. They are:

 Define the problem – you can’t solve a problem you don’t understand. You should find

out:

o The Outputs – what does the user want the program to produce?

o The Inputs – what information is needed to produce those outputs?

o The Processes – how are the inputs turned into outputs?

 Write the solution as an algorithm – an algorithm is like a recipe: it lists the steps

involved in accomplishing a task. Each step must be short enough so that it can be easily

carried out and must be performed in a particular order (sequence). The usual order is

Input, Process, Output.

 Check the algorithm – This step is the most important but is the step most often

forgotten. A desk check is used by the programmer to make sure the algorithm is correct.

A correct algorithm can be turned into a program that works. Problem solved!



Now that you can describe the steps that have to be performed in the correct sequence to

accomplish the task, all that is left to do now is:

 Code the algorithm in a programming language – like BASIC, Pascal or C++

 Check the program – to check that there are no syntax errors, typing errors or steps

from the algorithm accidentally omitted (left out).

 Document the program – documenting your program is really done right throughout the

program development, from the time you list the outputs to when you deliver the final

program. Documenting the program helps other programmers to understand how it works

and makes it easier to maintain the program (modify it to meet changed demands from

the users).





The six steps above are the steps involved in The Program Development Cycle.



2

Copy the following notes into your workbook.

Programming

Computer programs are written by people to solve a problem using a computer.

There are six steps involved in the Program Development Cycle. They are:

 Define the problem – you can’t solve a problem you don’t understand. You should find

out:

o The Outputs – what does the user want the program to produce?

o The Inputs – what information is needed to produce those outputs?

o The Processes – how are the inputs turned into outputs?

 Write the solution as an algorithm – an algorithm is like a recipe: it lists the steps

involved in accomplishing a task. Each step must be short enough so that it can be easily

carried out and must be performed in a particular order (sequence). The usual order is

Input, Process, Output.

 Check the algorithm – This step is the most important but is the step most often

forgotten. A desk check is used by the programmer to make sure the algorithm is correct.

A correct algorithm can be turned into a program that works. Problem solved!

 Code the algorithm in a programming language – like BASIC, Pascal or C++

 Check the program – to check that there are no syntax errors, typing errors or steps

from the algorithm accidentally omitted (left out).

 Document the program – documenting your program is really done right throughout the

program development, from the time you list the outputs to when you deliver the final

program. Documenting the program helps other programmers to understand how it works

and makes it easier to maintain the program (modify it to meet changed demands from

the users).



Paste this example into your workbook then work

through it.

Problem 1

Acme Garden Supplies sells instant lawn for $15 per square metre and charges $20 for

delivery. A program is required to compute the charge for customers purchasing lawn.

1) Define the Problem

Outputs – the charge to the customer – let’s call this LawnCost

Inputs – the number of square metres of lawn purchased – let’s call this LawnAmt

The Process – LawnCost = LawnAmt * 15 + 20



In the planning it is important to decide the variables needed to solve the problem. In

this case, the variables are LawnAmt and LawnCost. The names are descriptive and

help to describe the process, which helps the documentation.









Programming 3

Picnic Point High School

2) Write the Solution as an Algorithm

Often all this step requires is to rearrange the information above into the correct order

(Input, process, output).

Usually…

BEGIN Algorithms start with a “BEGIN” and

INPUT LawnAmt finish with an “END”

LET LawnCost = LawnAmt * 15 + 20 Key words are in capitals.

PRINT LawnCost Variable names are mixed case.

END



3) Check the Algorithm

Since this is a very simple problem using

only sequenced steps, we only need one

set of test data to do our desk check.

Choose some made up input data that

will give an answer that you know. For

this problem we’ll use a LawnAmt of 10

square metres – mainly because I can

multiply by 10. From the original

question, I calculate that 10m2 will cost $170. Now we use a desk check table on the

algorithm to see if it gives the same output.



LawnAmt Start by drawing a table showing every variable used

LawnCost and include a spot for output.

Output



LawnAmt 10 Now work through the algorithm. The first line (after

LawnCost BEGIN) is INPUT LawnAmt, so we put the value we

Output have chosen for LawnAmt into the table.



LawnAmt 10 The next line tells us to calculate a value for LawnCost.

LawnCost 170 Since LawnAmt in the table is 10, LawnCost is

Output 10*15+20 or 170. Write this value in the table next to

LawnCost.



LawnAmt 10 The next line is PRINT LawnCost. Print is a word that is

LawnCost 170 used when we want output, so in the table we write the

Output 170 value of LawnCost next to output.



The next line is END so we are finished. The output is what we expected so this

algorithm appears correct!



4) Code the Algorithm in a Programming Language

We are going to use BASIC (Beginners All purpose Instruction Code) for this

program.

The following BASIC program has been written from the algorithm



PRINT “This program calculates the cost of lawn”

PRINT “Enter the number of square metres of lawn”

INPUT LawnAmt

LET LawnCost = LawnAmt * 15 + 20

PRINT “The cost is “; LawnCost



4

END

A BASIC Program

 When the BASIC program is inspected carefully, it is possible to understand

the way the computer will process the problem. A program consists of a

number of lines of code arranged in the correct order. The code contains the

instructions the computer will follow.

 The words that are contained in the program are special statements that are

recognised by the computer. The statement PRINT causes the computer to

show the message contained within the quotes to be displayed on the screen.

 When the INPUT statement is processed the computer waits for the user to

enter a value which is then stored in the memory location named LawnAmt

 After LawnAmt has been stored, the LET statement causes the computer to

perform the necessary calculation the find LawnCost. It is not necessary to

include the key word LET and this line can be written as:

LawnCost = LawnAmt * 15 + 20

 The final PRINT statement causes the message followed by the value for

LawnCost to be printed on the screen. The value of LawnCost is shown

because this part of the message was not contained within the quotes.

 To signal the end of the program the END statement is used.



Login to your computer.

Start QBASIC from the menu. When QBASIC has been loaded, you will

get a dialog box – press the escape key (Esc) to erase it then type in the

program above, pressing enter at the end of every line.



When you have finished typing in the program, choose File, SaveAs and save your

file as MOWING on your H: drive.



5) Run the Program

Select Run, Start from the menu and enter a lawn amount

of 10. If it works, go on to the next step, if not, welcome

to the world of debugging! – check your typing carefully.



6) Document the Program

There are several ways to document you program. REM statements are remark

statements that are used to explain parts of the program code. A single apostrophe

can also be used instead of the key word REM. Remarks are ignored by the computer

during processing but help make the code readable



Modify your program by adding the following lines at the beginning.

REM *************************************************

REM * *

REM * A Program to Calculate the Cost of Lawn *

REM * for ACME Garden Supplies *

REM * Written by: Your Name on: Today’s Date *

REM * Last Modified by: Your Name on: Today’s Date *

REM * *

REM *************************************************



Save the program (Alt, F, S) then exit QBASIC (Alt, F, X)





Programming 5

Picnic Point High School

To print a listing of your program you need to open the file in Word and print it from

there. The hard copy listing is another form of documentation.



Load Word and choose File, Open from the menu. Change the “Files of Type” list

box to “All Files (*.*)”. Navigate to where you saved your program and open it.

Since your program includes your name you won’t need to add a footer. Print the

listing.



Paste the listing into your workbook and complete

the following exercises.

Exercise 1.1

Brian’s Curtains charge $13 per metre of material and a fixed charge of $25 when making

curtains for customers. A program is to be created to perform the calculations for the shop

owner. First the number of metres of material is needed. The cost can then be calculated by

multiplying this by 13 and adding 25.

a) Copy and complete the following algorithm for this problem.

BEGIN

INPUT MatLength

TotalCost = * 13 +

PRINT

END



b) Copy and complete the following QBASIC program to perform this task.

PRINT “This program calculates the cost of curtains.”

PRINT “Enter the number of metres of material required”

INPUT .............

LET TotalCost = ................

PRINT “The total cost is $”;.............

END



Exercise 1.2

Clive’s Hardware Shop sells nails by the gram and each gram contains 24 nails. Many

customers like to know how many nails they are receiving when they make a purchase.

a) Copy and complete the following algorithm for this problem.

BEGIN

INPUT ……………

……….. = ………………

PRINT ………………..

END



b) Copy and complete the following QBASIC program to perform this task.

PRINT ..............

PRINT ..............

INPUT ..............

....................

PRINT ..............

END









6

Exercise 1.3

An Insurance company pays its employees a salary of $200 per week plus $15 per hour for

every hour worked during the week.

a) Design a program which will calculate the amount of pay owed to employees.

b) Write a program to perform this task.



Exercise 1.4

A contractor who erects fences charges his customers $14 for materials and $9 per metre to

erect the fence. He wants a computer program to help calculate his accounts. Design and

write a program which could be used for this purpose.





Copy the following notes into your workbook.



More Sequence Programming

Using a simple sequence of steps it is possible to construct a range of very useful programs.

Problem 2

A used car company pays its sales team a weekly wage of $300 plus 5% commission on all

sales made. A program is needed which will enable the manager to calculate the weekly

salary for his employees.

1) Define the Problem

The question only asks for salary but it would be more useful to have the name of the

employee so that the salary and name can be printed together.

Output – EmployeeName, Salary

Input – EmployeeName, SalesMade

Process – Salary = SalesMade * 5 / 100 + 300

2) Write the Solution as an Algorithm

BEGIN

INPUT EmployeeName, SalesMade

Salary = SalesMade * 5 / 100 + 300

PRINT EmployeeName, Salary

END

3) Check the Algorithm

Use test data of Bob who sold $10,000 worth of cars. He should earn $800.

EmployeeName Bob

SalesMade 10000

Salary 800

Output Bob, 800

4) Code the Algorithm in a Programming Language

A BASIC program that could be created from this algorithm appears below:



Login to your computer.

Start QBASIC from the menu. When QBASIC has been loaded, you will

get a dialog box – press the escape key (Esc) to erase it then type in the

program above, pressing enter at the end of every line.



Type the program in carefully and when you have finished typing in the program,

choose File, SaveAs and save your file as Salary on your H: drive. Print a listing for

your notes.



Programming 7

Picnic Point High School

PRINT “A program which calculates salary”

PRINT

INPUT “What is the employee’s name”; EmployeeName$

PRINT “What is the value of sales for “; EmployeeName$;

INPUT SalesMade

Salary = SalesMade * 5 / 100 + 300

PRINT

PRINT “The salary for “; EmployeeName$, “is $”; Salary

END



There are several variations in the BASIC code to that of the previous example. Read

through the code carefully and observe the following differences.



 A new form of memory storage is required for non-numeric data. The $ after the

variable name indicates that the value will be stored as a string of characters rather

than numbers.

 The lines which contain PRINT alone will print a blank line on the screen. This is

useful for making the screen easy to read and follow.

 The INPUT statement for EmployeeName$ prints the prompt and accepts input in the

one statement. This is the way we will be using the INPUT statement in future.

 The prompt in the INPUT statement cannot contain a variable so the print is required

to have the employee’s name before the SalesMade input. The semicolon on the end

of this line stops the display going to a new line.

 In the line where the salary is printed there are some punctuation marks. The

semicolon leaves no space between the information while the comma leaves a larger

space.

5) Run the Program

Select Run, Start from the menu and enter an employee name of Bob with 10000

worth of sales. If it works, go on to the next step, if not, welcome to the world of

debugging! – check your typing carefully.

6) Document the Program

Modify your program by adding the remark lines.

REM *************************************************

REM * *

REM * A Program to Calculate a Salary *

REM * Written by: Your Name on: Today’s Date *

REM * Last Modified by: Your Name on: Today’s Date *

REM * *

REM *************************************************

PRINT “A program which calculates salary”

PRINT

REM ******** Data Input ********

INPUT “What is the employee’s name”; EmployeeName$

PRINT “What is the value of sales for “; EmployeeName$;

INPUT SalesMade

REM ******** Salary Calculation ********

Salary = SalesMade * 5 / 100 + 300

PRINT

PRINT “The salary for “; EmployeeName$, “is $”; Salary

END







8

Paste the listing into your workbook and complete

the following exercises.

Exercise 2.1

Some athletics records were recorded in feet and inches. A program is needed to take the

measurements in feet and inches and convert them to metres. There are 2.54cm to the inch,

100cm to the metre and 12 inches to the foot.

a) Copy and complete the following algorithm for this problem.

BEGIN

INPUT NoFeet, NoInches

TotalInches = ...........* 12 + .............

TotalMetres = ................ * .................. / ..........

PRINT ................

END

b) Copy and complete the following program.

REM .............................

REM .............................

PRINT ..........................

PRINT

REM .......................

INPUT “How many feet”; ............

INPUT “.......................”; NoInches

REM .......................

TotalInches = ...........* 12 + .............

TotalMetres = ................ * .................. /

..........

REM .......................

PRINT “..........................”; TotalMetres; “m”

Exercise 2.2

Devon Milk Supplies delivers milk to its customers and produces monthly accounts. The

products sold are milk for $1.15 per bottle and cream for $1.70 per carton. A program is

required to create the customer accounts.

a) Copy and complete the following algorithm for this problem.

BEGIN

INPUT CustName, CustAddress

INPUT ..........., ............

Cost = .....................................

PRINT ..................

PRINT ..................

PRINT ..................

END

b) Write a BASIC program for the above.

Exercise 2.3

When people travel overseas they need to change their money from Australian currency.

Plan and Write a program that will allow the bank teller to enter an amount of money in

Australian dollars together with the current exchange rate. The program should print out the

amount of foreign currency which the customer should receive.



Did you know that QBASIC comes with all Microsoft operating systems

since MS-DOS 5.0? For Windows 95, 98, ME, NT or 2000 you’ll find it

on the CD in a directory called OLDDOS. Copy the program and help

files to your hard drive to install it.

Paste the following notes into your workbook

and complete the exercises in your workbook.

Programming 9

Picnic Point High School

Good Programming Practice



You should practise good When writing the code for computer programs,

programming practice every there are many different variations that are

time you program possible in the coding stage. Even if two

programs appear to perform the same tasks,

there are some ways you can determine the better

piece of computer code. The following are some

guidelines which can be used when creating the code for

programs.



1. Choose variable names that are meaningful. For

example, P = H * R is harder to understand than

Pay = HoursWorked * Rate

2. The messages to the user should be clear and accurate.

When a user has to enter data it should be clear what

type of information they need to enter. Put in a

message that tells the user the purpose of the program.

3. When results are given they should be presented in a clear fashion with appropriate

explanations.

4. When parts of the code are different or difficult to follow, they should be explained with

a comment (REM).

5. The program should be tested carefully to make sure that it gives the correct answer in all

cases.









Exercise 3.1

The following program changes miles to kilometres. Make any changes that you consider

would help to make this a better program.

PRINT “A conversion program”

INPUT “Miles”; M

K = M * 1.609

PRINT K

END

Exercise 3.2

Sound travels at the rate of 340 metres per second in air. A program is required which will

calculate how far sound will travel in a given amount of time is the time is given in hours

and minutes. Copy and complete the following algorithm then write the program required to

perform the task outlined.

BEGIN

INPUT .........................

TotalMinutes = .............................

Distance = .....................................

PRINT ...........................................

END









10

Exercise 3.3

Poly-Finish is a paint which can be applied to driveways to renew their surface. It needs to

be applied carefully, 1 litre for every 5 square metres of driveway. It costs $24.50 per litre.

Jones’s Hardware, which sells Poly-Finish, wishes to have a computer program to assist in

the calculation of the amount of product required and the cost. Poly-Finish is only sold in

whole litres, so your program will need to round up to the next whole litre.



Once you calculate the number of litres that will be used the following line will round up to a

whole litre:

Cans = INT(LitresNeeded + 0.999)



INT( ) is a QBASIC function that finds the integer, or whole number, part of a value. INT(6),

INT(6.1) and INT(6.9) would all be 6, as the whole number part in each case is 6. By adding

almost, but not quite 1 to the number of litres and then finding the integer part has the effect

of rounding up.

INT(6 + 0.999), or INT(6.999) is equal to 6 however INT(6.2 + 0.999) or INT(7.199) which

is 7, similarly INT(6.9 + 0.999) or INT(7.899) is 7



Work through the Program Development Cycle for this problem. Make sure your output

shows both the amount of Poly-Finish required as well as the cost for the number of cans

needed.

Exercise 3.4

The City Car Park charges clients $0.02 for every minute a car is parked. A program is

required to assist the attendants in calculating the charge for each driver.

Design and write a program which will accept the time a car entered the car park together

with the time which it departed. The program must calculate the number of minutes the car

was parked and the parking fee owed.









Exercise 3.5

Ace Video Hire is a shop which hires out videos for $3 per day. The manager would like to

have a computer program to assist in the running of the shop. The program he requires must

accept the customer’s name and address together with the name of the film and the number

of days it is to be hired. The program is then needed to calculate the cost of hiring and to

print an account in the following form.



----------------------------------------------------

Ace Video Hire



NAME Brian Pearce ADDRESS 2 Hill St, Cecil Hills

FILM Rambo NO OF DAYS 3 COST $9



----------------------------------------------------



Design and write a program to perform this task.









Programming 11

Picnic Point High School

Computer Arithmetic

Login to your computer.

Start QBASIC from the menu. When QBASIC has been loaded, you will get a

dialog box – press the escape key (Esc) to erase it.



For this exercise the immediate window will be used. It is the narrow strip at the bottom

of the screen. The cursor will probably be in the larger window above it, which is called the editing

(or view) window. If necessary, move the cursor down to the immediate window by pressing F6.



The word PRINT followed by a calculation instructs QBASIC to do the calculation and show the

result in the output window. The output window can become cluttered. The command CLS is used to

clear the screen.



No instruction will be carried out until is pressed.



At the bottom of the output window you will see how to get back to the immediate window because it

has an instruction at the bottom telling you to press any key to return.



To calculate the sum, difference, product and quotient of 8 and 4 you would use:

1 PRINT 8+4 2 PRINT 8-4

3 PRINT 8*4 4 PRINT 8/4



Your answers would be 1. 12 2. 4 3. 32 4. 2 (since * means multiply and / means divide

(also ^ means to the power of so 4^2=16 (42) \ means integer quotient and MOD gives the remainder

after division so 100 \ 15 = 6 and 100 MOD 15 = 10 ie 100/15 = 6 remainder 10))

If the cursor is not in the immediate window then press F6.

Type CLS and press .

Press any key to return from the output window.

Type PRINT 8+4 and press .

Read the number 12 on the output window to verify that the computer can add up.

Press any key to return from the output window.



Order of Operations

Is 6/3*2+1 equal to 5 or 2?

The computer uses the same order of operations as you should and your calculator does. You may use

this memory prompt (since you can't take your calculators into the exam)

I Inner brackets

Boldly Brackets

Explain Exponentiation

My Dear Multiplication and Division

Aunt Sally Addition and Subtraction

Loves Rats Left to Right

Or you can use BODMAS if you already know it.



Calculate the answers to the following. AFTER you have written YOUR (calculated in your head or

on paper) answers then, and only then, check them with the computer.

1) 7-3-2 2) 5-2+1 3) 4*5/2

4) 16/4/2 5) 5*3-2 6) 9-6/3

7) 3+4*2 8) 9-3^2 9) 2*4+6^2

10) 9-6^2/6 11) 2^0 12) 25^0.5

13) 5*(3-2) 14) (9-6)/3 15) 25^(1/2)

16) (16/4)/2 17) 16/(4/2) 18) 2*(4+6)^2

19) (2*4)+6^2 20) (2*4+6)^2 21) SQR(25)*2+1

22) 7 \ 2 (note the \ not /) 23) 7 MOD 2 24) 7 MOD SQR(1+2*4)





12

Copy the following notes into your workbook.



Constants and Variables

To keep track of specific data and to allocate a spot in computer memory for that data, names

are given to quantities. These names are usually one word and should describe the item. Eg

PayRate, Number1.



A variable is a means by which values may be stored in the memory of a computer. The

value held in a variable may change during a program

eg Counter = Counter + 1

Constants stay fixed through the program execution

eg Payrate = 10 or Pi = 3.142



I = P * R is not as easily recognisable as Interest = Principal * Rate



Although rate may not change (it is a constant) it should not be kept as

Interest = Principal * 0.1

since the program would be hard to maintain. If the rate changed you would need to search

through the whole program looking for 0.1 and change it if it was rate and not something

else.



QBASIC Variables

In QBASIC the variable name you use shows what sort of data can be stored in it. All string

type data (that is letters or other special characters) should be enclosed in quotes or have a

variable name with $ as the last character. eg:

Address$ = “2 Harold St” Part1$= “butter” Part2$ = “fly”



String variables can be added as strings eg Both$ = Part1$ + Part2$ and the strings are

concatenated. (both$ = “butterfly”)



Anything that you want to treat as numbers has no $ on the end of it’s name. eg:

Pay = 250 Position = Counter + 1 The_Answer = 7 * 6



You can not mix the two types of variables. (numeric and string) If there is a $ on one side of

the equals sign (=) then there should be quotes on the other “” i.e. no $ no “”.







Exercise 4.1

The following operations result in errors - state why.



Number = “42” .....................................................................................................

Answer$ = 50 – 8 .....................................................................................................

Help = “NRMA” .....................................................................................................

Result = “8 + 6” .....................................................................................................

Pay = $250 .....................................................................................................









Programming 13

Picnic Point High School

A First Look at Loops

Every problem we have looked at so far has executed sequentially from

the first line to the last. In many problems that are solved by computer

there are a number of steps that need to be repeated. Computer languages

have special commands that allow the program execution to loop and repeat some lines a

number of times.



Many of the programs written so far would be more useful if they kept repeating. Imagine

working out the fee for 100 cars in the car park or converting 50 records! If you didn’t have

to press a key to get back to the interpreter and then run the program again it would be much

quicker.



Let’s look at the problem of averaging a set of numbers.



1) Define the Problem

Output – Average

Input – 10 numbers

Process – Add all the numbers together and divide by the number of numbers (10)



2) Write the Solution as an Algorithm

First try...

BEGIN

INPUT Number1, Number2, Number3, Number4, Number5

INPUT Number6, Number7, Number8, Number9, Number10

Sum = Number1 + Number2 + Number3 + Number4 + Number5

Sum = Sum + Number6 + Number7 + Number8 + Number9 + Number10

Average = Sum / 10

PRINT Average

END



Well, this works but it was tedious to type out. I’m glad it wasn’t 100 numbers!



Second try...

BEGIN

Note how these lines

NoOfNumbers = 10

are indented? It is

Sum = 0 easy to see which lines

FOR Counter = 1 TO NoOfNumbers are repeated.

INPUT Number

Sum = Sum + Number

NEXT Counter

Average = Sum / NoOfNumbers

PRINT Average

END



This program has more lines, but less typing and if I wanted to average 100 numbers

all I have to do is change NoOfNumbers to 100 in the first line. I have used a

FOR/NEXT loop to add the numbers together.



The line Sum = Sum + Number looks up the value of Sum from memory and the

value of Number from memory, adds them together and stores the result in the

memory location for Sum.



14

3) Check the Algorithm

The Powerpoint presentation called For-Next-

Deskcheck shows you graphically how this

deskcheck is done. Load it now and work through

it.



Copy the algorithm and deskcheck into your

workbook under the heading “Counted Loops”.



4) Code the Algorithm in a Programming Language



CLS

NoOfNumbers = 10

PRINT “A program which averages “; NoOfNumbers; “ numbers”

PRINT

Sum = 0 Note that these three

FOR Counter = 1 TO NoOfNumbers lines inside the loop are

PRINT “What is number “; Counter; indented. This makes the

INPUT Number program easier to read.

Sum = Sum + Number

NEXT Counter

Average = Sum / NoOfNumbers

PRINT “The average of those “; NoOfNumbers; “ is “; Average

END



Note:

 the use of a constant for the number of numbers to be averaged. This makes

the program easier to maintain. If the client wants to average 100 numbers

this program can be modified to do it with a single keystroke. If the user

decides to change the number of numbers each time the program is run then

an INPUT statement can be used to get the value of NoOfNumbers.

 the use of the PRINT statement before the INPUT of each number. The

prompt that is part of the INPUT does not allow the use of variables so we

have to use a PRINT statement to show on the screen which number to enter.



5) Run the Program

Load QBASIC and type in the above program. Use

the test data to confirm it works as expected.





Print a listing for your workbook.

6) Document the Program

Add the standard REMs at the start of your

program and for data input and output. Print a

listing for your book and highlight the loop









Programming 15

Picnic Point High School

Copy the following notes into your workbook filling

in the blanks as you go.

Counted Loops

Every problem before the one above has e_ _ _ _ _ _ _ s_ _ _ _ _ _ _ _ _ _ _ from the first

line to the last. In many _ _ _ _ _ _ _ _ that are solved by _ _ _ _ _ _ _ _ there are a number

of steps that need to be r_ _ _ _ _ _ _. Computer languages _ _ _ _ special commands that

allow the program _ _ _ _ _ _ _ _ _ to loop and _ _ _ _ _ _ some lines a number of times.

Problems which have loops are said to involve iteration.



In QBASIC you can use _ _ _ / _ _ _ _ loops to r_ _ _ _ _ lines of code a certain number of

times. We can write a_ _ _ _ _ _ _ _ _ with FOR/NEXT _ _ _ _ _ as well. Some computer

languages don’t have _ _ _ / _ _ _ _ loops, but there two other types of loops we can use.



The p_ _ _ _ _ _ above uses the v_ _ _ _ _ _ _ Counter to control the number of times the

loop is _ _ _ _ _ _ _ _. Counter starts at 1 and goes up by one each time the loop is done.

When _ _ _ _ _ _ _ becomes bigger _ _ _ _ the sentinal value held in the variable

NoOfNumbers the loop is not done again and program ex_ _ _ _ _ _ _ continues at the line

after the NEXT s_ _ _ _ _ _ _ _.



Complete the following exercises in your workbook.

Exercise 5.1

Copy these program lines and state their purpose.

FOR Number = 1 TO 12

PRINT Number; “ x 7 = “; Number * 7

NEXT Number

The purpose of this program is to ...



Exercise 5.2

Complete this program fragment which produces a table of the cost for cans of drink.

PRINT put a heading for the table here

FOR NoOfCans = 1 TO 24

PRINT NoOfCans, ________ * 1.2

NEXT ________



Exercise 5.4

Enter and run this program then add appropriate comments and paste the listing into your

workbook. Note the new statements READ/DATA instead of keyboard INPUT.



READ NoOfItems

PRINT “Canteen Price List”

PRINT “ Price”

FOR Item = 1 to NoOfItems

READ Product$, Price

PRINT Product$, Price

NEXT Item

END

DATA 5, soft drinks, 1.20, sport drinks, 2.50, pies, 2, hot dogs, 1.5

DATA tea/coffee, 1









16

More Loops

The counted loops we have done so far would not be able to easily cope with a

situation where the number of items to be processed was not known. Take the

car park problem – the attendant will not know at the beginning of the day

how many cars s/he will have to process. We need another type of loop.



The pre-test or WHILE loop can be used in every situation where a loop is

required. To read 10 scores and average them we could use:

Sum = 0

FOR Counter = 1 TO 10

INPUT Score

Sum = Sum + Score

NEXT Counter

Average = Sum / 10

Or we could use:

Sum = 0

Counter = 0

WHILE Counter 0 variable that controls the loop is

Counter =Counter + 1 acted on in these three places or an

endless loop may result.

Sum = Sum + Score

INPUT Score

END WHILE

Average = Sum / Counter



The deskcheck table for the numbers 3 and 5 (average 4) is given below. The –1 value ends

the loop and is not processed.

Variable Value

Sum 0 3 8

Counter 0 1 2

Score 3 5 -1

Average 4

A WHILE structure

 tests the condition

 if the condition is true, then the statements between the WHILE and the END WHILE are

done once

 the condition is then retested, if it is true the statements are done again, if it is false control

passes to the next statement after the END WHILE.





Programming 17

Picnic Point High School

Copy the following notes into your workbook.



Pre-test or WHILE Loops

Some algorithms require a test before the task is performed or repeated. This is described as

a pre-test or WHILE loop. The repetition (loop) is performed only while the test criteria is

true. Each time, coming into the loop, the condition is tested. If it is found true, then the

process is performed, then the condition is tested again, and so on. When the condition is no

longer true the flow of control goes to the line after the loop.



A condition to be tested must have a true/false answer such as “Counter

‘ZZZ’” ( means not equal to) or “Tim_Tams_left”. The last example shows the use of a

boolean variable. Boolean variables are either true or false, so you ask “Are there Tim Tams

left?” or “Did you catch and fish” not is “CaughtFish equal to true?” Not having conditions

that result in a true or false answer is a common error by students.



The general structure of a WHILE loop for algorithms and programs is shown below.

Algorithm Code

WHILE condition WHILE condition

Process Process

END WHILE WEND

Specific examples of WHILE loops are given below.

INPUT EmployeeNumber INPUT “Employee Number”; EmpNo

WHILE EmployeeNumber 0 WHILE EmployeeNumber 0

INPUT Hours INPUT “How many hours worked”; Hours

Pay = Hours * Rate Pay = Hours * Rate

PRINT Pay PRINT “Pay them “; Pay

INPUT EmployeeNumber INPUT “Employee Number”; EmpNo

END WHILE WEND

Counter = 1 Counter = 1

WHILE Counter T WHILE Code$ “T”

INPUT Price INPUT “How much”;Price

Total = Total + Price Total = Total + Price

INPUT Code INPUT “Please enter the code “, Code$

END WHILE END WHILE

PRINT Total PRINT “Total of the purchases is “; Total

Enter the above code examples and modify as requested below.

Paste the resulting listings in your workbook.

Exercise 6.1

In example 1 make the Rate $10.50 per hour. In example 2 write an INPUT

statement for TableNo.

Exercise 6.2

In example 3 what happens if t (lower case t) is entered instead of T? Use

WHILE UCASE$(Code$) “T” and try entering t again. What does UCASE$() do?







18

Pseudocode and Flowcharts

While you understand

Get two numbers

add the numbers together

print the sum

it is not formal enough for programmers, particularly for more complex problems. Get the

two numbers from where? What is a sum?



There are several ways to describe the algorithm more formally, such as pseudocode,

flowchart and Nassi-Schneiderman Diagrams.



See handout - Comparison of Algorithm Description Methods



An algorithm is like a recipe: it lists the steps involved in accomplishing a task. An algorithm

must

 be lucid, precise and unambiguous;

 give the correct solution in all cases; and

 eventually end.



Since teams of people write most programs, algorithms must be described in a standard way

so people can work efficiently with others. The two standard ways of describing algorithms

that we will use are pseudocode and flowchart.



So far we have used pseudocode exclusively. The reason for this is that it is easy to convert

the algorithm to code and because it is too easy to make mistakes with flowchart. Flowcharts

are also difficult and time consuming to draw without a flowchart program such as Visio on

your computer. Pseudocode can be entered in any word processor.



You have probably noticed that we have used very specific words in our pseudocode. These

pseudocode key words have been in capitals and variables have been mixed case. Not all

authors use the same capitalisation and not all authors use the same key word. While we

have used INPUT at all times for data input some books may use get, read or even enter. For

output we have used PRINT but you may also see display or write.



Mathematical processes are another area where you may see differences in the way

algorithms are presented:

add exam_score to total_score means Total_score = Total_score + Exam_score

SET total_students to zero means Total_students = 0 and:

increment counter means Counter = Counter + 1



Programming languages have specific syntax. Everything has to be letter perfect for the

computer to interpret our code correctly but algorithms are written for people and only

follow general guidelines. If the logic is correct, small differences in the format of the

algorithm do not matter.









Programming 19

Picnic Point High School

Comparison of Algorithm Description Methods Handout

Flowchart Pseudocode

BEGIN BEGIN

GET number1, number2

Get number1, LET Sum = number1 + number2

number2 PRINT Sum

END

Sum = number1 +

number2 Nassi-Schneiderman Diagram

Get number1, number2

Print Sum Sum = number1 + number2

print Sum

END







As you can see for such a simple problem there isn't much difference but as the examples

below show, with more complex problems the difference is a little clearer.



Pseudocode Flowchart



BEGIN

SET total_score to zero

SET total_students to zero

READ name, exam_score

WHILE exam_score NOT 999

add 1 to total_students

PRINT name, exam_score

add exam_score to total_score

READ name, exam_score

END WHILE

IF total_students NOT zero THEN

average_score=total_score/total_students

PRINT average_score

END IF

END



Nassi-Schneiderman Diagram









20

Flowcharts

Flowcharts are a method of representing algorithms using diagrams. They showing

operations in boxes connected by lines and arrows that graphically show the flow of control

in an algorithm.

Flowchart Elements

Flowcharts are made up of the following box types connected by lines with arrowheads

indicating the flow. Arrowheads are only needed where the flow is not top to bottom or left

to right. The elements below should be thought of as the characters of flowcharts. Just as

ordinary characters must be put together in certain ways to produce well-formed words, and

words must be put together in certain ways to produce well-structured sentences, these

flowchart elements must be connected in certain ways to form accepted structures and the

structures connected in certain ways to form well-structured algorithms.









The flowcharting structures for

sequence, repetition and selection, are

given here. These structures should be

treated like Lego blocks. Each process

box may be replaced by any of the

structures but it has to be joined only

by the top and bottom connectors.



It is considered good practice for a

single flowchart on stay on one page.

If a flowchart does not fit on one page,

use subprograms on different pages.

Subprograms on separate pages are

easier to read than using a connector to

join flowcharts over more than one

page.



Many flowcharts written by students

seem to work but can’t be programmed

because they haven’t followed the

structures given here. Avoid

flowcharts unless absolutely necessary.









Programming 21

Picnic Point High School

And More Loops

Log in to your computer and try the following

code fragments.



Paste listings into your workbook and write down the output that was

produced then correct the programs and paste the new listings into your book too.



Exercise 7.1

REM An infinite loop

REM press the control and break keys together to stop it

Counter = 1

WHILE Counter (7 * 24) OR Hours Counter * Number

COLOR 20

PRINT “Extra practice needed”

COLOR 7

Number = INT(RND*12)+1

PRINT “What is “; Counter; “ times “; Number;

INPUT Answer

WEND

NEXT Table





22

And Even More Loops!



Copy the following notes into your workbook.

REPEAT/UNITL Loops

In a WHILE loop (a pre test loop) a group of statements are repeated while a certain

condition is met. The REPEAT - UNTIL or POST TEST LOOP is similar in that a group of

statements are repeated. However, where the while structure tests the condition at the

beginning of the loop the repeat - until structure tests the condition at the end of the loop.

This means that the statements within the loop will be executed once before the condition is

tested. If the condition is false the statements will be repeated until the condition becomes

true.



The format for the REPEAT - UNTIL structure is:

Pseudocode QBASIC Code

REPEAT DO

Statement Statement

Statement Statement

 

 

 

UNTIL condition is true LOOP UNTIL condition is true



You can see that REPEAT - UNTIL makes the decision at the end of the loop: the statements

are executed once before the condition is tested. The QBASIC code uses different key words

to the pseudocode. The QBASIC help file lists many different ways to loop but stick to the

ways you have been shown.



There are two things that should be considered when using REPEAT - UNTIL loops:

1. There is no need for a priming read as there is in a WHILE loop. One read statement at

the beginning of the loop is sufficient. This does mean that the terminating condition is

usually processed - which may cause errors.

2. REPEAT loops repeat while the condition is false so WHILE number 99 is equivalent

to REPEAT ... UNTIL number = 99. When the condition becomes true the loop is not

repeated.



NOTE: If = is false and



REPEAT loops are used less frequently because if the condition controlling the loop is a

terminal value rather than a counter, an IF statement needs to be included to prevent

processing the terminating value.



The difference between the loops can be illustrated with Tim Tams.

WHILE there are Tim Tams left REPEAT

Eat a Tim Tam Eat a Tim Tam

END WHILE UNTIL there are no Tim Tams left



Both algorithms work, unless you live in a house with no Tim Tams to start with! At that

time the post-test algorithm crashes as you try to eat a non-existent biscuit.





Programming 23

Picnic Point High School

Login to your computer and start QBASIC.

Type in and complete the following code

fragments. Paste the listings, with

appropriate comments, in your book.

Exercise 8.1

Counter = 1

WHILE Counter __

END



Exercise 8.2

PRINT “Enter the following set of number pairs”

PRINT “1,1 3,0 0,4 0,0”

REPEAT

INPUT “Enter two numbers “, Number1, Number2

Sum = _______ + ________

PRINT Sum

UNTIL Number1 = 0 and Number2 = 0

PRINT “now enter the same set of numbers for the WHILE loop”

INPUT “Enter two numbers “, Number1, Number2

WHILE NOT (number1 = 0 AND number2 = 0)

Sum = _______ + _______

PRINT Sum

INPUT “Enter two numbers “, Number1, Number2

WEND



Exercise 8.3

INPUT “Enter the student’s name”; Student$

WHILE UCASE$(Student$) “ZZZ”

Exam = 1

Total = 0

WHILE ____ 99 time and interest exists.



2) Write the Solution as an Algorithm

BEGIN

INPUT HourIn

WHILE HourIn 99

INPUT MinuteIn, HourOut, MinuteOut

TimeIn = HourIn * 60 + MinuteIn

TimeOut = HourOut * 60 + MinuteOut

MinutesParked = TimeOut – TimeIn

Fee = MinutesParked * 0.02

Fee = INT(Fee * 20+0.5)/20

PRINT MinutesParked, Fee

INPUT HourIn

END WHILE

END



3) Check the Algorithm

Deskcheck with in: 8:30 out: 18:40 (minutes in 610, Fee $12.20), in: 5:00 out: 5:01 (1

min, Fee 0) and in: 5:00 out: 5:02 (2 mins, Fee $0.05), 99

HourIn 8 5 5 99

MinuteIn 30 0 0

HourOut 18 5 5

MinuteOut 40 1 2

TimeIn 510 300 300

TimeOut 1120 301 301

MinutesParked 610 1 2

Fee 12.2 12.2 0.02 0 0.04 0.05

Output 610 12.2 1 0 2 0.05

The output is what was expected for the input given so the algorithm is correct.









Programming 25

Picnic Point High School

4) Code the Algorithm in a Programming Language

PRINT “City Car Park”

PRINT

INPUT “Enter the hour the car entered (99 to end)”, HourIn

WHILE HourIn 99

INPUT “Now the minutes ”, MinuteIn

PRINT

PRINT “The current time is “; Time$

INPUT “What hour are they leaving”; HourOut,

INPUT “Now the minutes “, MinuteOut

TimeIn = HourIn * 60 + MinuteIn

TimeOut = HourOut * 60 + MinuteOut

MinutesParked = TimeOut – TimeIn

Fee = MinutesParked * 0.02

Fee = INT(Fee * 20+0.5)/20

PRINT “The car was parked for “; MinutesParked

PRINT USING “Please pay $$##.##”; Fee

PRINT

PRINT “Press any key to continue”

WHILE INKEY$ = “”

REM *** This loop waits till they’re ready

WEND

CLS

INPUT “Enter the hour the car entered (99 to end)”, HourIn

WEND

END

5) Run the Program

Load QBASIC and type in the above program. Use

the test data to confirm it works as expected.





Print a listing for your workbook.

6) Document the Program

Add the standard REMs at the start of your

program and for data input and output. Print a

listing for your book.









26

Try this Tricky Quick Quiz. If you can answer the

questions marked * you should do SDD!

Exercise 9.1

1 Which of the following is not a valid loop condition?

a. WHILE A 0

b. WHILE B 0 AND C = 0

b. WHILE B = 10 OR B 0 OR D = 1 AND C C

d. A B OR B > C) AND C = 3

f. A = B OR 2 * B – 1 = C



5 Explain what is wrong with each of the following statements. The error may be a

syntax error or the statement may serve no useful purpose.

a. WHILE A$ = OK

b. * WHILE B * B “Y” OR D$ “N”

e. * LOOP UNTIL E 0

f. * WHILE F > 10 AND F 8

END



Write a program for each of the problems below...

8 Mr Getrichquik has agreed to work for you for one cent a day on the

condition that you double his wage every day. On his second day you

will pay him 2c and on his third day 4c etc. Show how much Mr

Getrichquik will be paid over the next four months.

(4 months * 4 weeks * 5 days).



9* A list of numbers is to be typed at the keyboard. After each number other than 0 is

typed, the program should display how many numbers have been entered and the sum

of all numbers entered to that time. When the user enters 0, the average of the values

should be displayed and the program should end

10* As above but after the average has been displayed the user should have the choice to

enter another set of numbers.

11* Two numbers are to be typed. If the sum of the two numbers is greater than 42, the

program should display the message “The sum is greater than 42” and stop. If the

sum is not greater than 42, the program should increase the first number by 10 and

decrease the second number by 3. These new values should then be displayed and

their sum checked again. The program should repeat this process until the message is

displayed.









28

Making Choices

The Problem: Write a program to calculate pay. Adults get $15/hour while the Juniors get

$10/hour. The pay needs to be calculated depending on the worker's classification.



1) Define the Problem

Output: Pay

Inputs: Hours, Classification (Adult or Junior)

Process: if the classification is adult use the higher rate else use the lower rate,

Pay = Rate * Hours



2) Write the Solution as an Algorithm

BEGIN

INPUT Class, Hours

IF Class = adult THEN

Rate = 15

ELSE

Rate = 10

ENDIF

Pay = Rate* Hours

PRINT Pay

END



3) Check the Algorithm

We need at least two sets of data to

check if this algorithm works correctly.

We need one set for adult workers and

one set for junior workers. Lets use an

adult working 10 hours ($150) and a

junior working 5 hours ($50).





Class Adult Junior

Hours 10 5

Rate 15 10

Pay 150 50

Output 150 50



See the Powerpoint presentation called Selection Deskcheck to see how this was

done.



4) Code the Algorithm in a Programming Language

PRINT “Program to calculate the pay”

INPUT “Is the worker an Adult or a Junior (A/J); Class$

INPUT “How many hours did they work”; Hours

IF Class$ = “A” THEN

Rate = 15

ELSE

RATE = 10

ENDIF

Programming 29

Picnic Point High School

Pay = Rate * Hours

PRINT “The worker receives $”; Pay; “ pay this week.”

END









30

Note: The above program has a few usability problems, but works for all reasonable inputs

and produces the correct answer. The issues are:

 An unexpected input of “a” instead of “A” will cause the program to use the junior

rate. In fact any input other than “A” will cause the junior rate to be used.

 There is no check of the number of hours they enter.

 There is no formatting of the pay in the output.



5) Run the Program

Load QBASIC and type in the above program. Use

the test data to confirm it works as expected.





Print a listing for your workbook.

6) Document the Program

Add the standard REMs at the start of your

program and for data input and output. Validate

the inputs and format the output. Print a new

listing for your workbook and highlight the

selection.

Hint (page 26 Q3, page 25)





According to Grace M Hopper, one summer day

in 1945, the Mark 1 computer stopped working.

Computer personnel found a moth inside the

machine. They removed the offending bug, and

the computer was fine. From then on, any

mysterious problem or glitch was said to be a

bug.



Who was Grace Hopper? A true programming

pioneer. She graduated from Yale and joined the

US Naval Reserve in 1943. She was assigned to

the Bureau of Ordinance Computation Project at

Harvard, where she learned to program the first

large-scale digital computer, the Mark 1.



In 1948 she joined a private company and

became senior programmer on the team that

created the first commercial large-scale

computer, UNIVAC 1. In the 1950s she co-

authored the programming language COBOL.



She was promoted to the rank of Rear Admiral in

the Naval Reserve and died in 1992 aged 85.









Programming 31

Picnic Point High School

Copy the following notes and diagrams into your

workbook.



Selection (Binary)

The ability of a computer to compare two pieces of data and select one of two alternative

actions gives us the binary selection control structure. This allows us to make decisions

about what should happen next and allows for things such as negatives and different rates or

messages.



In pseudocode, the selection is represented by the keywords IF, THEN, ELSE, and ENDIF:

eg

IF student is part_time THEN

add 1 to part_time_count

ELSE

add 1 to full_time_count

ENDIF



or more generally



if nothing needs to be done in the false case

the ELSE may be omitted:

IF condition is true THEN

statement(s) in true case IF condition is true THEN

ELSE statement(s) in true case

statement(s) in false case ENDIF

ENDIF



In flowcharts a decision diamond is used.









Or more generally









Complete the following exercises in your workbook.



32

Handout Exercise



Write flowchart and pseudocode solutions to the following decisions



1) have enough money to go to the movies

2) old enough to get a learner's permit

3) set a tax rate of 30% to income above $4567 else no tax

4) The M5 has two types of toll gate: manual, where change is given and automatic where no

change is given and the driver has to have the correct coins. Show the decision which

needs to be made about which type of gate to go through.

5) Decide if number 2 is zero before dividing number 1 by it.



Code the solution to problem 3





Assessment

Write a program to allow the user to play a number guessing game.









Programming 33

Picnic Point High School



Related docs
Other docs by Kerala g
union-budget-2012-13-highlights
Views: 81  |  Downloads: 0
notification M.Tech_05-03-09
Views: 56  |  Downloads: 0
India_Customs Regulation 1
Views: 52  |  Downloads: 0
CE Notification 39-2011-12.9.2011
Views: 50  |  Downloads: 0
STATISTICS
Views: 69  |  Downloads: 0
A Hero (R.K. Narayan)
Views: 87  |  Downloads: 6
RRBPatna-Info-HN
Views: 98  |  Downloads: 0
RRB-Notice-Para
Views: 100  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!