#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2004
    Posts
    4
    Rep Power
    0

    Pascal problems.


    Hi guys,

    Firstly I would just like to say that I'm not looking for people to do my programming for me just looking for some help and guidance.
    At school we have a project were we have to design a voting system, one part of the voting system is to check that the votes entered are not the same as each other.

    Trying to solve this I used if statements to compare the values.
    Code:
    if value1 = (value2) OR (value3) OR (value4) then
    This seems to partially work when all of the values are the same as each other. But when only 2 values are the same the if statement fails to carry out what it would carry out like it does when all of the values are the same.

    I was just wondering if anyone would know how I could make it compare all of the values but would be able to carry out the if statement even if there are only say 2 out of the 4 values which are the same.

    Thanks a bunch.
  2. #2
  3. Commie Mutant Traitor
    Devshed Intermediate (1500 - 1999 posts)

    Join Date
    Jun 2004
    Location
    Norcross, GA (again)
    Posts
    1,804
    Rep Power
    1569
    Actually, this probably shouldn't have compiled at all. AFAIK, Pascal comparison operators are supposed to only work on logical values, which the second and third clauses wouldn't be unless value3 and value4 are Booleans.

    There really isn't any way to compare a single value to a group of values in Pascal (or most other languages I can think of), at least not for arbitrary values. It is possible to use a set membership in this manner with the union operator if you are checking them against a fixed group of values known at compile time, but in general, comparisons are always one-to-one.

    Without more details of the program (and possibly redesigning some of your data structures), I'd say you'll need to write the whole thing out:

    Pascal Code:
    if (value1 = value2) OR (value1 = value3) OR (value1 = value4) then


    I realize this is a bit of a hassle, but for a small group of comparisons like this, it's not all that problematic.

    As an aside, in most cases you want to use more descriptive variable names than 'valuen' and so on. Names like those are just too easy to confuse with each other. If they really do form a sequence or group, then it probably makes more sense to put them together into an array:

    Code:
    FooArray: array [1..4] or FooType;
    I should add that using an array may make a difference in the code above: it would be possible to use a loop of some sort to structure the test somehow. For the case given that would be overkill, but for longer comparisons against a large group of values, it can be very useful.

    Of course, if the code you gave was just an example, and your actual variable names are more reasonable, feel free to ignore this.
    Rev First Speaker Schol-R-LEA;2 JAM LCF ELF KoR KCO BiWM TGIF
    #define KINSEY (rand() % 7) λ Scheme is the Red Pill
    Scheme in Short Understanding the C/C++ Preprocessor
    Taming Python A Highly Opinionated Review of Programming Languages for the Novice, v1.1

    FOR SALE: One ShapeSystem 2300 CMD, extensively modified for human use. Includes s/w for anthro, transgender, sex-appeal enhance, & Gillian Anderson and Jason D. Poit clone forms. Some wear. $4500 obo. tverres@et.ins.gov
  4. #3
  5. Banned ;)
    Devshed Supreme Being (6500+ posts)

    Join Date
    Nov 2001
    Location
    Woodland Hills, Los Angeles County, California, USA
    Posts
    9,594
    Rep Power
    4207
    You could also use the in operator.
    Code:
    If value1 in [value2, value3, value4] then
    begin
    end

    Comments on this post

    • Schol-R-LEA agrees : I thought that could only be used with compile-time constants. Live and learn, I guess.
    Up the Irons
    What Would Jimi Do? Smash amps. Burn guitar. Take the groupies home.
    "Death Before Dishonour, my Friends!!" - Bruce D ickinson, Iron Maiden Aug 20, 2005 @ OzzFest
    Down with Sharon Osbourne

    "I wouldn't hire a butcher to fix my car. I also wouldn't hire a marketing firm to build my website." - Nilpo
  6. #4
  7. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2004
    Posts
    4
    Rep Power
    0
    Thanks guys, I will have a little mess around and see what comes up.

IMN logo majestic logo threadwatch logo seochat tools logo