Other Programming Languages
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsProgramming Languages - MoreOther Programming Languages

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
1200+ fellow developers rate and compare features of the top IDEs, like Visual Studio, Eclipse, RAD, Delphi and others, across 13 categories. Enjoy this FREE Download of the IDE User Satisfaction Study by Evans Data Corporation. Download Now!
  #1  
Old February 13th, 2007, 02:46 PM
mit111 mit111 is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Sep 2004
Posts: 4 mit111 User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 56 m 35 sec
Reputation 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.

Reply With Quote
  #2  
Old February 13th, 2007, 07:33 PM
Schol-R-LEA's Avatar
Schol-R-LEA Schol-R-LEA is offline
Commie Mutant Traitor
Dev Shed Beginner (1000 - 1499 posts)
 
Join Date: Jun 2004
Location: The People's Republic of Berkeley
Posts: 1,082 Schol-R-LEA User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Schol-R-LEA User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Schol-R-LEA User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Schol-R-LEA User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Schol-R-LEA User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Schol-R-LEA User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Schol-R-LEA User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Schol-R-LEA User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Schol-R-LEA User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Schol-R-LEA User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Schol-R-LEA User rank is Lieutenant Colonel (40000 - 50000 Reputation Level) 
Time spent in forums: 3 Weeks 4 Days 10 h 16 m 50 sec
Reputation Power: 446
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:
Original - Pascal Code
  1. 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 ShortUnderstanding the C/C++ Preprocessor
Taming PythonA 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

Reply With Quote
  #3  
Old February 13th, 2007, 07:56 PM
Scorpions4ever's Avatar
Scorpions4ever Scorpions4ever is offline
Banned ;)
Dev Shed God 5th Plane (7000 - 7499 posts)
 
Join Date: Nov 2001
Location: Glendale, Los Angeles County, California, USA
Posts: 7,442 Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level)Scorpions4ever User rank is Major General (70000 - 90000 Reputation Level) 
Time spent in forums: 1 Month 1 h 43 m 50 sec
Reputation Power: 797
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

Puzzle of the Month solved by sizeablegrin, etienne141 and L7Sqr, superior C/C++ programmers of the month

Reply With Quote
  #4  
Old February 14th, 2007, 03:33 AM
mit111 mit111 is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Sep 2004
Posts: 4 mit111 User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 56 m 35 sec
Reputation Power: 0
Thanks guys, I will have a little mess around and see what comes up.

Reply With Quote
Reply

Viewing: Dev Shed ForumsProgramming Languages - MoreOther Programming Languages > Pascal problems.


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 5 hosted by Hostway