Design & Execute Trace Table for Polling Station Votes

  • Thread starter Thread starter lionely
  • Start date Start date
AI Thread Summary
The discussion focuses on creating a trace table for vote data at a polling station, including special, general, and spoiled votes for four parties: DAP, WNA, UPM, and PDR. Participants express confusion about the definitions of special and general votes and how to identify spoiled votes. There are issues with the provided pseudocode, particularly regarding user input and the logic for exiting the loop, which should use "AND" instead of "OR." Suggestions include improving indentation and ensuring the code allows for at least ten iterations before stopping based on a specific input. The conversation emphasizes the need for clarity in the problem statement and the pseudocode's structure.
lionely
Messages
574
Reaction score
2
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:
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”
Read Party
PRINT “Enter Class of Vote”
Read Class
	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:
Physics news on Phys.org
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.
The table should have at least ten iterations and should end when a specific value is entered.
You have an endwhile statement, but there is no while statement.
 
Oh my gosh I forgot a half of the code...

I'll edit my previous post and post the whole code.
 
A tracetable is a way of testing a pseudocode. But I don't need help witht he tracetable I need help with the pseudocode.
 
lionely said:
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:
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:
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”
Read Party
PRINT “Enter Class of Vote”
Read Class
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:
Declare: Class,: string
you have an extra comma.
 
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?
 
Back
Top