The following pseudocode algorithm attempts to check whether a string is a valid email address. FUNCTION IsValid(InString : STRING) RETURNS BOOLEAN DECLARE Index, Dots, Ats, Others : INTEGER DECLARE NextChar : CHAR DECLARE Valid : BOOLEAN Index <- 1 Dots <- 0 Ats <- 0 Others <- 0 Valid <- TRUE REPEAT NextChar <- MID(InString, Index, 1) CASE OF NextChar '.' : Dots <- Dots + 1 '@' : Ats <- Ats + 1 IF Ats > 1 THEN Valid <- FALSE ENDIF OTHERWISE : Others <- Others + 1 ENDCASE IF Dots > 1 AND Ats = 0 THEN Valid <- FALSE ELSE Index <- Index + 1 ENDIF UNTIL Index > LENGTH(InString) OR Valid = FALSE IF NOT (Dots >= 1 AND Ats = 1 AND Others > 8) THEN Valid <- FALSE ENDIF RETURN Valid ENDFUNCTION
📋 Examiner Report & Trap Analysis
Common mistake: 62% of candidates selected the distractor because they confused... The examiner specifically designed this question to test whether students can differentiate between... To secure full marks, candidates must demonstrate...
🎯 Mark Scheme Breakdown
Award 1 mark for identifying the correct principle. Award 1 mark for showing clear working. Common errors include failing to convert units and misreading the scale. The examiner report notes that only 34% of candidates achieved full marks on this question.
Unlock the Examiner's Analysis
Sign up for free to reveal the full examiner report, trap analysis, and mark scheme breakdown for this question.
Sign Up Free to Unlock →Join thousands of Cambridge students already using Oracle Prep