SECOND OPINION
Your Spectrum 19 (Oct.1985)

So, you used to be indecisive, but now you're not so sure, eh?
Fortunately, Chris Somerville has come to your rescue with a
program that'll help you reach some more definite conclusions.

Has anyone seen an executive toy on the
market called a Decision Maker? It's
battery operated and delivers, at the press
of the button, helpful advice in the form
of a randomly generated Yes, No or
Maybe. Without any help from it at all, I
came to my own decision not to buy one.
	Mind you, I still reckon that a
computer can be really useful in helping
in the process of decision-making. That's
why I've written a program that'll help
you arrive at a logical decision in any
situation where multiple choices are
involved and where there are many
factors to be taken into consideration.
What's the next piece of software that
you're going to buy, where are you going
on holiday and should it be the Porsche
or the Roller this year? It's just so hard to
choose - until now!

HOORAY FOR ARRAYS
The first task is to set up two string arrays
to hold the possible Choices and the
Factors that'll affect them. And as we
can't appreciate just how many they'll be
in any given problem, it's fortunate that
on the Speccy we can DIMension the
arrays from within the program, changing
their size as needs be. That means that
although line 160 sets up two temporary
arrays of ten elements, they can grow as
large as you require. It works like this -
the various Choices are lodged in
duplicate, A$(1) = B$(1) and so on, and
a count is kept as you enter each Choice.
If the count reaches the limit of the array,
then one array can be re-DIMensioned to
accommodate additional information,
while all the info you've already entered
is safely held in the duplicate array.
	Eventually, the Choices finish up in a
correctly DIMensioned C$() and then
A$() and B$() are re-used to collect the
Factors which end up in F$(). And don't
worry about muddling up your Factors
and your Choices as you'll be prompted
throughout the program.
	Of course, there's one decision this
program can't make for you - whether
or not to type it in. You're just going to
have to make your own mind up on that
one. But I reckon if you're hesitating,
then you're just the type of person who
needs this very program. Then again, you
could always save yourself the hassle and
buy this month's Digi'T'ape. Oh,
decisions, decisions!

Don't delay the decision - type the listing
in now! It's never too late to call in a
second opinion!

Lines 10-30 These lines ask you to wait a second
while the set-up is taking place and then create a
formula to make sure input is in upper case.
Lines 40-100 These lines contain the data for the
display heading.
Lines 110-140 This section of the program reads in
the data from the previous lines to create the
string Q$.
Lines 150-250 Subroutine which sets up the
temporary arrays prior to the full size of data file
being known.
Lines 260-440 This routine prints the instructions
for the program.
Lines 450-640 This assigns the strength of each
factor and then compares within each other to see
which comes out on top. Notice that alphabetic
characters have been used rather than numeric so
the choices can exceed ten within the limits of
INKEY$.
Lines 650-880 This routine asks you to type in your
preferences to certain factors - from this a
decision can be calculated.
Lines 890-1110 This is the end of the program
where the answers and decisions are all printed
up.

DECISION TIME
Pretty obviously, the computer can't really
make your mind up for you. What it can do is
help you to organise your thoughts by forcing
you to follow a certain logical procedure. And it
does this by breaking down a large complex
analysis into a series of simple decisions.
	As you can see here, you're only ever
presented with the Factors involved in a
decision, in pairs. You're then asked to indicate
their relative importance. Since each Factor is
sequentially compared with every other Factor a
numerical strength can be allocated to each.
This is where the computer scores over the
usual muddled, fuddled human activity that
masquerades as thinking. A good example of
this is those classic compos you'll have seen in
YS, for instance. You know, the ones where you
have to list in order of importance all the
attributes of a particular product. You usually
end up like a mental contortionist as you
compare each attribute with the whole list.
	Now say the attributes were all entered as
Factors in this program, well then you'd only
have to compare each one with one other and
make a decision as to its relative importance.
The end result would be a list automatically in
logical order of importance and most important
of all it would still be firmly based on human
judgement.
	Once you've covered the Factors, it's just a
question of selecting the better Choice of two
when only one Factor is involved.
	Each separate preference is recorded, scored
and modified by the strength, which you've
previously established, of the Factor involved.
Then finally, the Choices are sorted using the
Choice score number array C(). The end result
is displayed in the form of the three best
Choices, and the worst, with the scores given
as a percentage.


--
Another Fine Product transcribed by:
Jim Grimwood (jimg@globalnet.co.uk), Hatfield, England
--
