Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
Solved

# question about a type in pascal

Posted on 2003-10-24
Medium Priority
167 Views
Hi,
it's a simple question i know but it's the base of all my program
i have to take a random number out of 2, 3, 5 and 7
how do i proceed ???

temp:=Random(2, 3, 5, 7);
doesn't seem to work

a type ??
TYPE
Primes=(2, 3, 5, 7);
a get a message error asking for a type or something like that
"Identifier Expected"

thanks a lot

0
Question by:Elvis1
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 3
• 2

LVL 101

Accepted Solution

mlmcc earned 200 total points
ID: 9619469
I would generate a random number between 1-4 and use that as an index into an array with those values

type
P_array =  array[1..4] of integer;

var
Rand_Index  : integer;
Primes : P_array;

begin
Primes [1] := 2;
Primes [2] := 3;
Primes [3] := 5;
Primes [4] := 7;

randomize;
Rand_index := 4*random +1;

writeln (Primes[Rand_Index]);

end.

mlmcc

0

LVL 17

Expert Comment

ID: 9620211
Good answer, mlmcc. However, I would suggest some minor alterations:

1) use an "P_array = array[0..3] of Integer;".
2) use "Rand_index := Random(4);"

And perhaps the Pascal version used can define arrays of constants like this:

const
Primes : P_array = (2, 3, 5, 7);

Good answer, though. You deserve all credit in my opinion. ;-)
0

LVL 101

Expert Comment

ID: 9621731

Alex:
I grew up with arrays being 1-based so I tend to keep them like that.

Does Random(4) give a number from 0 to 3.999999?

I don't think Pascal allows constant arrays but it might.  Been too long since I used them.

mlmcc
0

LVL 17

Expert Comment

ID: 9627699
mlmcc:
I know, in Basic arrays used to be 1-based. However, when I learned Pascal a couple of decades ago I was told that arrays have user-definable upper and lower bounds. I do prefer to use 0-based arrays, though. Don't know why but it's just a preference...

Random(4) returns either 0, 1, 2 or 3. Nothing more, nothing less. At least in Turbo Pascal and Delphi.

I know Delphi allows constant arrays. I even use them quite often. I'm not sure but I think Turbo Pascal allows constant arrays too. But it's too long ago that I wrote my last TP application.
0

LVL 101

Expert Comment

ID: 9630911
Alex: In VB arrays are 0-based.  I learned in FORTRAN IV.  I used to teach Pascal and we generally used arrays as 1 based.  I know you can set the index to be anything (one of the features of Pascal I really like).

mlmcc

0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It’s time for spooky stories and consuming way too much sugar, including the many treats we’ve whipped for you in the world of tech. Check it out!
Are you looking for the options available for exporting EDB files to PST? You may be confused as they are different in different Exchange versions. Here, I will discuss some options available.
In this episode Don builds upon the troubleshooting techniques by demonstrating how to properly monitor a vSphere deployment to detect problems before they occur. He begins the show using tools found within the vSphere suite as ends the show demonst…
In this video, Percona Director of Solution Engineering Jon Tobin discusses the function and features of Percona Server for MongoDB. How Percona can help Percona can help you determine if Percona Server for MongoDB is the right solution for …
###### Suggested Courses
Course of the Month9 days, 1 hour left to enroll