# Pseudocode problem

1. Feb 26, 2012

### lionely

Design and execute a trace table that accepts vote data at a polling station in a constituency. Data should include special votes,general(valid) votes and spoilt votes. Votes should be cast for anyone of four parties,DAP,WNA,UPM or PDR.The table should trace the increment of each vote category and determine which party secured the majority of votes. The table should have at least ten iterations and should end when a specific value is entered.

Attempt:

Code (Text):

START
Declare: Class,: string
Party,D_General,W_General,U_General,P_General,D_Spoil,W_Spoil,U_Spoil, P_Spoil, W_Special, U_Special, P_Special, D_Special:integer

PRINT “Enter JNP for Party or Class to Quit”
PRINT “Enter Party”
PRINT “Enter Class of Vote”
WHILE(Party <> “JNP” OR Class <> “JNP”) DO
If (Class = “Special”) THEN
IF (Party = “DAP”)THEN
D_Special =D_Special + 1
ENDIF
IF (Party = “WNA”) THEN
W_Spec ial = W_Special + 1
ENDIF
IF(Party = “UPM”)THEN
U_Special = U_Special + 1
ENDIF
IF(Party= “PDR”)THEN
P_Special = P_Special+1
ENDIF
ENDIF

If (Class = “General”) THEN
IF (Party = “DAP”)THEN
D_ General =D_ General + 1
ENDIF
IF (Party = “WNA”) THEN
W_ General = W_ General + 1
ENDIF
IF(Party = “UPM”)THEN
U_ General = U_ General + 1
ENDIF
IF(Party= “PDR”)THEN
P_ General = P_ General +1
ENDIF
ENDIF

If (Class = “Spoil”) THEN
IF (Party = “DAP”)THEN
D_ Spoil =D_ Spoil + 1
ENDIF
IF (Party = “WNA”) THEN
W_ Spoil = W_ Spoil + 1
ENDIF
IF(Party = “UPM”)THEN
U_ Spoil = U_ Spoil + 1
ENDIF
IF(Party= “PDR”)THEN
P_ Spoil = P_ Spoil +1
ENDIF
ENDIF
ENDwhile

STOp

Please tell me if this is correct.

Last edited by a moderator: Feb 26, 2012
2. Feb 26, 2012

### Staff: Mentor

I don't think this is right, but then again, the problem statement is not clear to me. For example, what is the difference between special votes and general (valid) votes? How can you tell if a vote is spoiled?

What is a trace table? Is that something you use to simulate the execution of the code for a specific input value?

Your pseudocode doesn't give any way for a user to enter a vote.

The problem statement suggests that there should be a loop of some kind, and should do input.
You have an endwhile statement, but there is no while statement.

3. Feb 26, 2012

### lionely

Oh my gosh I forgot a half of the code...

I'll edit my previous post and post the whole code.

4. Feb 26, 2012

### lionely

A tracetable is a way of testing a pseudocode. But I don't need help witht he tracetable I need help with the pseudocode.

5. Feb 26, 2012

### Staff: Mentor

I can see that you put some effort into indenting the various statement, but your indentation was not as good as it could be. I have taken the liberty of indenting your code as I would do it.
Code (Text):

START
Declare: Class,: string
Party,D_General,W_General,U_General,P_General,D_Spoil,W_Spoil,U_Spoil, P_Spoil, W_Special, U_Special, P_Special, D_Special:integer

PRINT “Enter JNP for Party or Class to Quit”
PRINT “Enter Party”
PRINT “Enter Class of Vote”
WHILE(Party <> “JNP” OR Class <> “JNP”) DO
If (Class = “Special”) THEN
IF (Party = “DAP”)THEN
D_Special =D_Special + 1
ENDIF
IF (Party = “WNA”) THEN
W_Spec ial = W_Special + 1
ENDIF
IF(Party = “UPM”)THEN
U_Special = U_Special + 1
ENDIF
IF(Party= “PDR”)THEN
P_Special = P_Special+1
ENDIF
ENDIF

If (Class = “General”) THEN
IF (Party = “DAP”)THEN
D_ General =D_ General + 1
ENDIF
IF (Party = “WNA”) THEN
W_ General = W_ General + 1
ENDIF
IF(Party = “UPM”)THEN
U_ General = U_ General + 1
ENDIF
IF(Party= “PDR”)THEN
P_ General = P_ General +1
ENDIF
ENDIF

If (Class = “Spoil”) THEN
IF (Party = “DAP”)THEN
D_ Spoil =D_ Spoil + 1
ENDIF
IF (Party = “WNA”) THEN
W_ Spoil = W_ Spoil + 1
ENDIF
IF(Party = “UPM”)THEN
U_ Spoil = U_ Spoil + 1
ENDIF
IF(Party= “PDR”)THEN
P_ Spoil = P_ Spoil +1
ENDIF
ENDIF
ENDwhile

STOp

Your logic for exiting the while loop is not correct. The idea is supposed to be that when you enter JNP for party or vote, the loop doesn't run. Suppose you're running this, and are prompted to enter the party, and you type "JNP" and for Class you just press the ENTER key. The expression Party <> "JNP" is false, and the expression Class <> "JNP is true, so the expression Party <> “JNP” OR Class <> “JNP” is (false OR true), which is true, so the loop runs again.

To fix this, change "OR" to "AND".

Also, in this line
Code (Text):

Declare: Class,: string
you have an extra comma.

6. Feb 26, 2012

### lionely

Oh, but the thing is I had a doubt with this pseudocode because if this was a polling station if the special votes were like 200 wouldn't I have to enter somethign 200 times?