1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Pseudocode problem

  1. Feb 26, 2012 #1
    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”
    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: Feb 26, 2012
  2. jcsd
  3. Feb 26, 2012 #2

    Mark44

    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.
     
  4. Feb 26, 2012 #3
    Oh my gosh I forgot a half of the code...

    I'll edit my previous post and post the whole code.
     
  5. Feb 26, 2012 #4
    A tracetable is a way of testing a pseudocode. But I don't need help witht he tracetable I need help with the pseudocode.
     
  6. Feb 26, 2012 #5

    Mark44

    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”
    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 (Text):

    Declare: Class,: string
    you have an extra comma.
     
  7. Feb 26, 2012 #6
    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?
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Pseudocode problem
  1. Pseudocode check (Replies: 6)

  2. Simple Pseudocode. (Replies: 11)

  3. Pseudocode help (Replies: 0)

Loading...