Register to reply

Pseudocode problem

by lionely
Tags: pseudocode
Share this thread:
lionely
#1
Feb26-12, 04:30 PM
P: 523
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:

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.
Phys.Org News Partner Science news on Phys.org
Security CTO to detail Android Fake ID flaw at Black Hat
Huge waves measured for first time in Arctic Ocean
Mysterious molecules in space
Mark44
#2
Feb26-12, 06:04 PM
Mentor
P: 21,215
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.
lionely
#3
Feb26-12, 06:06 PM
P: 523
Oh my gosh I forgot a half of the code...

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

lionely
#4
Feb26-12, 06:08 PM
P: 523
Pseudocode problem

A tracetable is a way of testing a pseudocode. But I don't need help witht he tracetable I need help with the pseudocode.
Mark44
#5
Feb26-12, 06:43 PM
Mentor
P: 21,215
Quote Quote by lionely View Post
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.
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
Declare: Class,: string
you have an extra comma.
lionely
#6
Feb26-12, 06:45 PM
P: 523
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?


Register to reply

Related Discussions
Pseudocode help Engineering, Comp Sci, & Technology Homework 0
Pseudocode help Engineering, Comp Sci, & Technology Homework 26
Pseudocode help Engineering, Comp Sci, & Technology Homework 45