// Logical.&&.Correct.Boolean - 100 // Separating this out since Java and C# require this // // Logical.&&.Correct.Other - 125 // includes Arithmetic, Constant, Assignment, Bitwise expressions returning non-Boolean operands // int operands // char operands // // Logical.&&.Short Circuit.Boolean - 175 // See above about giving credit to other operators // // Logical.&&.Short Circuit.Other - 200 // See above about giving credit to other operators // // Logical.&&.Precedence.Logical - 250 // Vs || and ! // &&-||, ||-&&, // &&-&&-||, &&-||-&&, ||-&&-&&, // &&-!, !-&&, !-&&-! // // Logical.&&.Precedence.Other - 300 // Vs Rel + Arith, Rel + Assignment, Rel + Bitwise // // Logical.&&.Associativity - 350 // Using only relational operators in between // &&-&&, &&-&&-&& // // // Logical.||.Correct.Boolean - 400 // Separating this out since Java and C# require this // // Logical.||.Correct.Other - 425 // includes Arithmetic, Constant, Assignment, Bitwise expressions returning non-Boolean operands // // Logical.||.Short Circuit.Boolean - 475 // See above about giving credit to other operators // // Logical.||.Short Circuit.Other - 500 // See above about giving credit to other operators // // Logical.||.Precedence.Logical - 550 // Vs && and ! // &&-||, ||-&&, // &&-||-||, ||-&&-||, ||-||-&& // ||-!, !-||, !-||-! // // Logical.||.Precedence.Other - 600 // Vs Rel + Arith, Rel + Assignment, Rel + Bitwise // // Logical.||.Associativity - 650 // Using only relational operators in between // ||-||, ||-||-|| // // // Logical.!.Correct.Boolean - 700 // Separating this out since Java and C# require this // // Logical.!.Correct.Other - 725 // includes Arithmetic, Constant, Assignment, Bitwise expressions returning non-Boolean operands // // Logical.!.Precedence.Logical - 775 // &&-!, !-&&, !-&&-! // ||-!, !-||, !-||-! // // Logical.!.Precedence.Other - 800 // Vs Rel + Arith, Rel + Assignment, Rel + Bitwise // // Logical.!.Associativity - 850 // !! // Logical.Parenthesis.Precedence - 900 // Logical.Parenthesis.Associativity - 950 // ------------------------------------------------------------------------ // true && true # 100 Logical.&&.Correct.Boolean > true && true > Type: expression Hardness: 10 # 101 Logical.&&.Correct.Boolean ? Relational.<.{Correct,Precedence} > < && < // 2 < 6 && 6 < 11 > Type: expression Hardness: 20 // true && false # 102 Logical.&&.Correct.Boolean > true && false > Type: expression Hardness: 10 # 103 Logical.&&.Correct.Boolean ? Relational.{<.{Correct,Precedence},>.{Correct,Precedence}} > < && > // 2 < 6 && 2 > 6 > Type: expression Hardness: 20 // TEST QUESTIONS # 105 Logical.&&.Correct.Boolean ? Relational.!=.{Correct,Precedence} > != && != // 2 != 13 && 13 != 7 > Type: expression Hardness: 20 # 106 Logical.&&.Correct.Boolean ? Relational.>.{Correct,Precedence} > > && > // 12 > 3 && 3 > 7 > Type: expression Hardness: 20 // ----------------------------------------------------------------------- // true && true # 125 Logical.&&.Correct.Other > && // 3 && 7 > Type: expression Hardness: 10 # 126 Logical.&&.Correct.Other > + && - // 6 + 3 && 6 - 3 > Type: expression Hardness: 15 // true && false # 127 Logical.&&.Correct.Other > && 0 // 5 && 0 > Type: expression Hardness: 10 # 128 Logical.&&.Correct.Other > 0 - && * 0 // 0 - 3 && 3 * 0 > Type: expression Hardness: 20 # 129 Logical.&&.Correct.Other > / && / // 6 / 3 && 3 / 6 > Type: expression Hardness: 15 # 130 Logical.&&.Correct.Other > % && % // 3 % 6 && 6 % 3 > Type: expression Hardness: 15 // TEST QUESTIONS # 135 Logical.&&.Correct.Other > - && - // 3 - 6 && 6 - 3 > Type: expression Hardness: 20 # 136 Logical.&&.Correct.Other > * && % // 3 * 3 && 3 % 3 > Type: expression Hardness: 15 // -------------------------------------------------------------------- // false && true # 175 Logical.&&.Short Circuit.Boolean > false && true > Type: expression Hardness: 10 # 176 Logical.&&.Short Circuit.Boolean ? Relational.==.{Correct,Precedence} > == && != // 2 == 6 && 6 != 2 > Type: expression Hardness: 20 // false && false # 177 Logical.&&.Short Circuit.Boolean > false && false > Type: expression Hardness: 10 # 178 Logical.&&.Short Circuit.Boolean ? Relational.>.{Correct,Precedence} > > && == // 2 > 6 && 6 == 11 > Type: expression Hardness: 20 # 179 Logical.&&.Short Circuit.Boolean > false && ! false > Type: expression Hardness: 20 // TEST QUESTIONS # 180 Logical.&&.Short Circuit.Boolean ? Relational.<.{Correct,Precedence} > < && != // 7 < 3 && 3 != 9 > Type: expression Hardness: 20 # 181 Logical.&&.Short Circuit.Boolean ? Relational.==.{Correct,Precedence} > == && == // 2 == 13 && 13 == 7 > Type: expression Hardness: 20 // --------------------------------------- // false && true # 200 Logical.&&.Short Circuit.Other > 0 && // 0 && 5 > Type: expression Hardness: 10 # 201 Logical.&&.Short Circuit.Other > - && + // 3 - 3 && 3 + 3 > Type: expression Hardness: 15 // false && false # 202 Logical.&&.Short Circuit.Other > % && / // 3 % 3 && 3 / 12 > Type: expression Hardness: 15 # 203 Logical.&&.Short Circuit.Other > * 0 && 0 / // 3 * 0 && 0 / 3 > Type: expression Hardness: 15 # 204 Logical.&&.Short Circuit.Other > % 1 && 0 - // 3 % 1 && 0 - 3 > Type: expression Hardness: 15 // TEST QUESTIONS # 205 Logical.&&.Short Circuit.Other > * 0 && + 0 // 3 * 0 && 3 + 0 > Type: expression Hardness: 15 # 206 Logical.&&.Short Circuit.Other > / && / // 3 / 6 && 6 / 3 > Type: expression Hardness: 15 // -------------------------------------------------------------------- // Logical.&&.Precedence.Logical - 250 // Vs || and ! // &&-||, ||-&&, // &&-&&-||, &&-||-&&, ||-&&-&&, // &&-!, !-&&, !-&&-! // Simpler expressions involving only boolean constants // a || b && c // ----------- // f || t && * // f || f && sct # 250 Logical.&&.Precedence.Logical > false || true && false > Type: expression Hardness: 25 # 251 Logical.&&.Precedence.Logical > false || false && true > Type: expression Hardness: 25 // a || b && c && d // ---------------- // f || t && t && * // f || t && f && sct // f || f && sct && sct # 252 Logical.&&.Precedence.Logical > false || true && true && false > Type: expression Hardness: 35 // TEST QUESTION # 253 Logical.&&.Precedence.Logical > false || true && false && true > Type: expression Hardness: 35 # 254 Logical.&&.Precedence.Logical > false || false && true && true > Type: expression Hardness: 35 // a && b || c && d // ---------------- // t && f || t && * // t && f || f && sct // f && sct || t && * // f && sct || f && sct // t && t || scf && scf # 255 Logical.&&.Precedence.Logical > true && false || true && true > Type: expression Hardness: 35 # 256 Logical.&&.Precedence.Logical > false && true || true && false > Type: expression Hardness: 35 // TEST QUESTION # 257 Logical.&&.Precedence.Logical > true && false || false && true > Type: expression Hardness: 35 # 258 Logical.&&.Precedence.Logical > false && true || false && true > Type: expression Hardness: 35 # 259 Logical.&&.Precedence.Logical > true && true || false && false > Type: expression Hardness: 35 // Too easy to guess the answer // a && b && c || d // ---------------- // t && t && f || * // t && t && t || scf // t && f && sct || * // f && sct && sct || * # 260 Logical.&&.Precedence.Logical > true && true && false || true > Type: expression Hardness: 35 # 261 Logical.&&.Precedence.Logical > true && true && true || false > Type: expression Hardness: 35 # 262 Logical.&&.Precedence.Logical > true && false && true || false > Type: expression Hardness: 35 # 263 Logical.&&.Precedence.Logical > false && true && true || false > Type: expression Hardness: 35 // Expressions involving relational operators // a && b || c && d // ---------------- // t && f || t && * // t && f || f && sct // t && t || scf && scf // f && sct || t && * // f && sct || f && sct # 264 Logical.&&.Precedence.Logical > < && < || < && < // 6 < 12 && 6 < 3 || 3 < 12 && 3 < 6 > Type: expression Hardness: 40 # 265 Logical.&&.Precedence.Logical > != && == || == && != // 12 != 6 && 6 == 3 || 12 == 6 && 6 != 3 > Type: expression Hardness: 40 # 266 Logical.&&.Precedence.Logical > > && > || > && > // 12 > 6 && 6 > 3 || 3 > 6 && 6 > 12 > Type: expression Hardness: 40 # 267 Logical.&&.Precedence.Logical > > && < || < && > // 3 > 6 && 6 < 12 || 3 < 6 && 6 > 12 > Type: expression Hardness: 40 # 268 Logical.&&.Precedence.Logical > < && < || == && == // 6 < 3 && 3 < 15 || 15 < 3 && 3 < 6 > Type: expression Hardness: 40 // a || b && c && d // ---------------- // f || t && t && * // f || t && f && sct // f || f && sct && sct # 269 Logical.&&.Precedence.Logical > == || != && != && != // 3 == 6 || 3 != 6 && 6 != 12 && 3 != 12 > Type: expression Hardness: 40 # 270 Logical.&&.Precedence.Logical > > || < && < && != // 3 > 6 || 3 < 6 && 12 < 6 && 3 != 12 > Type: expression Hardness: 40 # 271 Logical.&&.Precedence.Logical > < || < && < && true // 12 < 6 || 12 < 3 && 3 < 6 && true > Type: expression Hardness: 40 // Too easy to guess the answer // a && b && c || d // ---------------- // t && t && f || * // t && t && t || scf // t && f && sct || * // f && sct && sct || * # 272 Logical.&&.Precedence.Logical > > && < && == || true // 6 > 3 && 6 < 12 && 3 == 12 || true > Type: expression Hardness: 40 # 273 Logical.&&.Precedence.Logical > > && > && > || false // 12 > 6 && 6 > 3 && 12 > 3 || false > Type: expression Hardness: 40 # 274 Logical.&&.Precedence.Logical > != && < && < || false // 3 != 6 && 6 < 3 && 3 < 12 || false > Type: expression Hardness: 40 # 275 Logical.&&.Precedence.Logical > < && < && < || true // 6 < 3 && 6 < 12 && 3 < 12 || true > Type: expression Hardness: 40 // # 271 // Logical.&&.Precedence.Logical // > // 3 || 7 && 5 // > // Type: expression // Hardness: 30 // // # 272 // Logical.&&.Precedence.Logical // > // 4 || 6 && 0 // > // Type: expression // Hardness: 30 // // # 273 // Logical.&&.Precedence.Logical // > // 5 || 0 && 9 // > // Type: expression // Hardness: 30 // // # 274 // Logical.&&.Precedence.Logical // > // 5 || 0 && 0 // > // Type: expression // Hardness: 30 // // # 275 // Logical.&&.Precedence.Logical // > // 0 || 4 && 8 // > // Type: expression // Hardness: 30 // // # 276 // Logical.&&.Precedence.Logical // > // 0 || 9 && 0 // > // Type: expression // Hardness: 30 // // # 277 // Logical.&&.Precedence.Logical // > // 0 || 0 && 9 // > // Type: expression // Hardness: 30 // -------------------------------------------------------------------- // Logical.&&.Precedence.Other - 300 // Since we already use it against relational operators for Correct, this tests // Vs Rel + Arith, Rel + Assignment, Rel + Bitwise // Design: // true && * - to avoid short circuit // Always lower precedence operator on LHS and higher precedence operator on RHS // Always in a relational expression - to avoid Java/C# errors // No >= or <= operators to avoid accidental incorrect answers # 300 Logical.&&.Precedence.Other > + < && < * // 3 + 4 < 11 && 11 < 3 * 4 > Type: expression Hardness: 35 # 301 Logical.&&.Precedence.Other > - < 0 && / != 0 // 3 - 6 < 0 && 3 / 6 != 0 > Type: expression Hardness: 35 # 302 Logical.&&.Precedence.Other > > + && % == 0 // 16 > 6 + 3 && 6 % 3 == 0 > Type: expression Hardness: 35 # 303 Logical.&&.Precedence.Other > != - && % != 0 // 12 != 6 - 3 && 6 % 3 != 0 > Type: expression Hardness: 35 // TEST QUESTIONS # 305 Logical.&&.Precedence.Other > < + && / >= 1 // 5 < 3 + 6 && 6 / 3 >= 1 > Type: expression Hardness: 35 # 306 Logical.&&.Precedence.Other > - > 0 && > * // 6 - 3 > 0 && 9 > 6 * 3 > Type: expression Hardness: 35 // -------------------------------------------------------------------- // Logical.&&.Associativity - 350 # 350 Logical.&&.Associativity > true && true && false > Type: expression Hardness: 30 # 351 Logical.&&.Associativity > false && true && true > Type: expression Hardness: 30 # 352 Logical.&&.Associativity > true && true && false && true > Type: expression Hardness: 35 # 353 Logical.&&.Associativity > false && true && true && true > Type: expression Hardness: 35 # 354 Logical.&&.Associativity > true && false && true && true > Type: expression Hardness: 35 // TEST QUESTIONS # 355 Logical.&&.Associativity > true && false && true > Type: expression Hardness: 30 # 356 Logical.&&.Associativity > false && true && true && false > Type: expression Hardness: 35 // # 201 // Logical.&&.Associativity // > // 3 && 5 && 7 // > // Type: expression // Hardness: 30 // // # 202 // Logical.&&.Associativity // > // 2 && 6 && 0 // > // Type: expression // Hardness: 30 // // # 203 // Logical.&&.Associativity // > // 5 && 0 && 9 // > // Type: expression // Hardness: 30 // // # 204 // Logical.&&.Associativity // > // 0 && 2 && 4 // > // Type: expression // Hardness: 30 // -------------------------------------------------------------------- // Logical.||.Correct.Boolean - 400 // false || true # 400 Logical.||.Correct.Boolean > false || true > Type: expression Hardness: 10 # 401 Logical.||.Correct.Boolean ? Relational.{==.{Correct,Precedence},!=.{Correct,Precedence}} > == || != // 2 == 6 || 6 != 2 > Type: expression Hardness: 20 // false || false # 402 Logical.||.Correct.Other > false || false > Type: expression Hardness: 10 # 403 Logical.||.Correct.Boolean ? Relational.==.{Correct,Precedence} > == || == // 2 == 13 || 13 == 7 > Type: expression Hardness: 20 // TEST QUESTIONS # 405 Logical.||.Correct.Boolean ? Relational.{>.{Correct,Precedence},!=.{Correct,Precedence}} > > || != // 3 > 7 || 7 != 4 > Type: expression Hardness: 20 # 406 Logical.||.Correct.Boolean ? Relational.{<.{Correct,Precedence},==.{Correct,Precedence}} > < || == // 6 < 2 || 2 == 11 > Type: expression Hardness: 20 // ----------------------------------------------------------------------- // Logical.||.Correct.Other - 425 // false || true # 425 Logical.||.Correct.Other > 0 || // 0 || 5 > Type: expression Hardness: 10 # 426 Logical.||.Correct.Other > - || + // 3 - 3 || 3 + 3 > Type: expression Hardness: 15 // false && false # 427 Logical.||.Correct.Other > % || / // 3 % 3 || 3 / 12 > Type: expression Hardness: 15 # 428 Logical.||.Correct.Other > * 0 || 0 / // 3 * 0 || 0 / 3 > Type: expression Hardness: 15 # 429 Logical.||.Correct.Other > % 1 || - // 3 % 1 || 3 - 6 > Type: expression Hardness: 20 // TEST QUESTIONS # 430 Logical.||.Correct.Other > * 0 || 0 - // 3 * 0 || 0 - 3 > Type: expression Hardness: 20 # 431 Logical.||.Correct.Other > / || / // 3 / 6 || 6 / 3 > Type: expression Hardness: 15 // ----------------------------------------------------------------------- // Logical.||.Short Circuit.Boolean - 475 # 475 Logical.||.Short Circuit.Boolean > true || false && false > Type: expression Hardness: 25 # 476 Logical.||.Short Circuit.Boolean ? Relational.!=.{Correct,Precedence} > != || != // 2 != 13 || 13 != 7 > Type: expression Hardness: 20 # 477 Logical.||.Short Circuit.Boolean ? Relational.>.{Correct,Precedence} > > || < // 6 > 2 || 6 < 2 > Type: expression Hardness: 20 # 478 Logical.||.Short Circuit.Boolean ? Relational.<.{Correct,Precedence} > < || < // 2 < 13 || 13 < 7 > Type: expression Hardness: 20 // true || ! true // This will give credit for Relational.Parenthesis.Precedence, not Logical.Parenthesis.Precedence # 479 Logical.||.Short Circuit.Boolean > < || ! ( < ) // 3 < 6 || ! ( 3 < 12 ) > Type: expression Hardness: 30 # 480 Logical.||.Short Circuit.Boolean > true || false && false || false > Type: expression Hardness: 35 # 481 Logical.||.Short Circuit.Boolean > true || false || false && false > Type: expression Hardness: 35 # 482 Logical.||.Short Circuit.Boolean > false || true || false && false > Type: expression Hardness: 35 # 483 Logical.||.Short Circuit.Boolean > true || false && true && false > Type: expression Hardness: 35 # 484 Logical.||.Short Circuit.Boolean > != || > && > // 3 != 6 || 6 > 12 && 3 > 12 > Type: expression Hardness: 30 # 485 Logical.||.Short Circuit.Boolean > != || > && > && > // 6 != 12 || 3 > 6 && 6 > 12 && 3 > 12 > Type: expression Hardness: 40 // TEST QUESTIONS # 486 Logical.||.Short Circuit.Boolean > true || false && true > Type: expression Hardness: 25 # 487 Logical.||.Short Circuit.Boolean ? Relational.>.{Correct,Precedence} > > || > // 12 > 7 || 7 > 3 > Type: expression Hardness: 20 // These were relocated here as being too easy // true || true # 490 Logical.||.Short Circuit.Boolean > true || true > Type: expression Hardness: 10 // true || false # 491 Logical.||.Short Circuit.Boolean > true || false > Type: expression Hardness: 10 # 492 Logical.||.Short Circuit.Boolean > true || ! true > Type: expression Hardness: 20 // ----------------------------------------------------------------------- // Logical.||.Short Circuit.Other - 500 // true || true # 500 Logical.||.Short Circuit.Other > || // 3 || 7 > Type: expression Hardness: 10 # 501 Logical.||.Short Circuit.Other > - || - // 3 - 6 || 6 - 3 > Type: expression Hardness: 20 // true || false # 502 Logical.||.Short Circuit.Other > || 0 // 5 || 0 > Type: expression Hardness: 10 # 503 Logical.||.Short Circuit.Other > * || % // 3 * 3 || 3 % 3 > Type: expression Hardness: 15 # 504 Logical.||.Short Circuit.Other > / || / // 6 / 3 || 3 / 6 > Type: expression Hardness: 15 # 505 Logical.||.Short Circuit.Other > % || % // 3 % 6 || 6 % 3 > Type: expression Hardness: 15 // TEST QUESTIONS # 506 Logical.||.Short Circuit.Other > + || - // 6 + 3 || 6 - 3 > Type: expression Hardness: 15 # 507 Logical.||.Short Circuit.Other > 0 - || * 0 // 0 - 3 || 3 * 0 > Type: expression Hardness: 20 // ----------------------------------------------------------------------- // Logical.||.Precedence.Logical - 550 // a || b && c || d // ---------------- // t || scf && scf || scf // f || f && sct || * // f || t && f || * // f || t && t || scf # 550 Logical.||.Precedence.Logical > false || false && true || true > Type: expression Hardness: 35 # 551 Logical.||.Precedence.Logical > false || true && true || false > Type: expression Hardness: 35 // a || b || c && d // ---------------- // t || scf || scf && scf // f || t || scf && scf // f || f || f && sct // f || f || t && * # 552 Logical.||.Precedence.Logical > false || false || false && true > Type: expression Hardness: 35 # 553 Logical.||.Precedence.Logical > false || false || true && true > Type: expression Hardness: 35 // a || b && c // ----------- // f || t && * // f || f && sct # 554 Logical.||.Precedence.Logical > == || == && < // 6 == 3 || 6 == 12 && 3 < 12 > Type: expression Hardness: 30 // TEST QUESTIONS # 555 Logical.||.Precedence.Logical > false || true && false || false > Type: expression Hardness: 35 # 556 Logical.||.Precedence.Logical > > || > && != // 3 > 6 || 6 > 3 && 12 != 3 > Type: expression Hardness: 30 // EASIER TO GUESS THE ANSWERS // a && b || c // ----------- // t && t || scf // t && f || * // f && sct || * # 557 Logical.||.Precedence.Logical > true && true || false > Type: expression Hardness: 30 # 558 Logical.||.Precedence.Logical > true && false || true > Type: expression Hardness: 30 # 559 Logical.||.Precedence.Logical > false && true || true > Type: expression Hardness: 30 // a && b || c || d // ----------------- // f && sct || f || * // f && sct || t || scf // t && t || scf || scf // t && f || t || scf // t && f || f || * # 560 Logical.||.Precedence.Logical > false && true || false || true > Type: expression Hardness: 35 # 561 Logical.||.Precedence.Logical > false && true || true || false > Type: expression Hardness: 35 # 562 Logical.||.Precedence.Logical > true && true || false || false > Type: expression Hardness: 35 # 563 Logical.||.Precedence.Logical > true && false || true || false > Type: expression Hardness: 35 # 564 Logical.||.Precedence.Logical > true && false || false || true > Type: expression Hardness: 35 // a && b || c // ----------- // t && t || scf // t && f || * // f && sct || * # 565 Logical.||.Precedence.Logical > < && < || == // 3 < 6 && 6 < 12 || 3 == 12 > Type: expression Hardness: 30 # 566 Logical.||.Precedence.Logical > > && > || != // 6 > 3 && 3 > 12 || 6 != 12 > Type: expression Hardness: 30 # 567 Logical.||.Precedence.Logical > == && < || < // 3 == 6 && 6 < 12 || 3 < 12 > Type: expression Hardness: 30 // ----------------------------------------------------------------------- // a && b || c || d // ----------------- // f && sct || f || * // f && sct || t || scf // t && t || scf || scf // t && f || t || scf // t && f || f || * # 568 Logical.||.Precedence.Logical > == && < || > || != // 3 == 6 && 6 < 12 || 6 > 12 || 3 != 6 > Type: expression Hardness: 40 # 569 Logical.||.Precedence.Logical > > && > || < || < // 3 > 6 && 12 > 6 || 3 < 6 || 12 < 6 > Type: expression Hardness: 40 # 570 Logical.||.Precedence.Logical > < && < || == || == // 3 < 6 && 6 < 12 || 3 == 6 || 6 == 12 > Type: expression Hardness: 40 # 571 Logical.||.Precedence.Logical > > && < || > || == // 12 > 6 && 6 < 3 || 6 > 3 || 6 == 3 > Type: expression Hardness: 40 # 572 Logical.||.Precedence.Logical > != && > || > || > // 3 != 6 && 3 > 6 || 6 > 12 || 3 > 12 > Type: expression Hardness: 40 // a || b && c || d // ---------------- // t || scf && scf || scf // f || f && sct || * // f || t && f || * // f || t && t || scf # 573 Logical.||.Precedence.Logical > < || == && > || == // 3 < 6 || 3 == 6 && 6 > 12 || 6 == 12 > Type: expression Hardness: 40 # 574 Logical.||.Precedence.Logical > < || < && < || == // 12 < 6 || 6 < 3 && 3 < 12 || 3 == 12 > Type: expression Hardness: 40 # 575 Logical.||.Precedence.Logical > == || != && == || != // 3 == 6 || 3 != 6 && 6 == 12 || 6 != 12 > Type: expression Hardness: 40 # 576 Logical.||.Precedence.Logical > > || > && > || > // 3 > 6 || 6 > 3 && 12 > 6 || 6 > 12 > Type: expression Hardness: 40 // a || b || c && d // ---------------- // t || scf || scf && scf // f || t || scf && scf // f || f || f && sct // f || f || t && * # 577 Logical.||.Precedence.Logical > > || > || > && < // 3 > 6 || 6 > 12 || 3 > 12 && 6 < 12 > Type: expression Hardness: 40 # 578 Logical.||.Precedence.Logical > < || < || < && != // 12 < 3 || 12 < 6 || 3 < 6 && 12 != 6 > Type: expression Hardness: 40 // # 211 // Logical.||.Precedence.Logical // > // 2 && 8 || 5 // > // Type: expression // Hardness: 30 // // # 212 // Logical.||.Precedence.Logical // > // 4 && 6 || 0 // > // Type: expression // Hardness: 30 // // # 213 // Logical.||.Precedence.Logical // > // 5 && 0 || 7 // > // Type: expression // Hardness: 30 // // # 214 // Logical.||.Precedence.Logical // > // 0 && 5 || 7 // > // Type: expression // Hardness: 30 // // # 215 // Logical.||.Precedence.Logical // > // 0 && 9 || 0 // > // Type: expression // Hardness: 30 // ----------------------------------------------------------------------- // Logical.||.Precedence.Other - 600 // Since we already use it against relational operators for Correct, this tests // Vs Rel + Arith, Rel + Assignment, Rel + Bitwise // Mostly trying false || * - to avoid short circuit # 600 Logical.||.Precedence.Other > + > || > * // 3 + 4 > 11 || 11 > 3 * 4 > Type: expression Hardness: 35 # 601 Logical.||.Precedence.Other > == - || % != 0 // 12 == 6 - 3 || 6 % 3 != 0 > Type: expression Hardness: 35 # 602 Logical.||.Precedence.Other > - > 0 || 0 == / // 3 - 6 > 0 || 0 == 3 / 6 > Type: expression Hardness: 35 # 603 Logical.||.Precedence.Other > < + || % == 0 // 16 < 6 + 3 || 6 % 3 == 0 > Type: expression Hardness: 35 // TEST QUESTIONS # 605 Logical.||.Precedence.Other > - < 0 || < * // 6 - 3 < 0 || 9 < 6 * 3 > Type: expression Hardness: 35 # 606 Logical.||.Precedence.Other > > + || / > 1 // 5 > 3 + 6 || 6 / 3 > 1 > Type: expression Hardness: 35 // ----------------------------------------------------------------------- // Logical.||.Associativity - 650 # 650 Logical.||.Associativity > true || false || false > Type: expression Hardness: 30 # 651 Logical.||.Associativity > false || false || true > Type: expression Hardness: 30 # 652 Logical.||.Associativity > true || false || false || false > Type: expression Hardness: 30 # 653 Logical.||.Associativity > false || false || true || false > Type: expression Hardness: 30 # 654 Logical.||.Associativity > false || false || false || true > Type: expression Hardness: 30 // TEST QUESTIONS # 655 Logical.||.Associativity > false || true || false > Type: expression Hardness: 30 # 656 Logical.||.Associativity > false || true || false || false > Type: expression Hardness: 30 # 660 Logical.||.Associativity > < || == || > // 3 < 6 || 3 == 6 || 3 > 6 > Type: expression Hardness: 40 # 661 Logical.||.Associativity > == || > || < // 6 == 3 || 6 > 3 || 6 < 3 > Type: expression Hardness: 40 // # 251 // Logical.||.Associativity // > // 3 || 5 || -7 // > // Type: expression // Hardness: 30 // // # 252 // Logical.||.Associativity // > // 2 || 6 || 0 // > // Type: expression // Hardness: 30 // // # 253 // Logical.||.Associativity // > // 5 || 0 || -9 // > // Type: expression // Hardness: 30 // // # 254 // Logical.||.Associativity // > // 6 || 0 || 0 // > // Type: expression // Hardness: 30 // // # 255 // Logical.||.Associativity // > // 0 || 2 || -4 // > // Type: expression // Hardness: 30 // // # 256 // Logical.||.Associativity // > // 0 || 8 || 0 // > // Type: expression // Hardness: 30 // // # 257 // Logical.||.Associativity // > // 0 || 0 || 5 // > // Type: expression // Hardness: 30 // ----------------------------------------------------------------------- // Logical.!.Correct.Boolean - 700 // Separating this out since Java and C# require this // In all the templates, Relational..Parenthesis.Precedence will get credit, not Logical.Parenthesis.Precedence # 700 Logical.!.Correct.Boolean > ! true > Type: expression Hardness: 10 # 701 Logical.!.Correct.Boolean > ! false > Type: expression Hardness: 10 # 702 Logical.!.Correct.Boolean > ! ( > ) // ! ( 6 > 3 ) > Type: expression Hardness: 20 # 703 Logical.!.Correct.Boolean > ! ( < ) // ! ( 3 < 6 ) > Type: expression Hardness: 20 # 704 Logical.!.Correct.Boolean > ! ( != ) // ! ( 3 != 6) > Type: expression Hardness: 20 # 705 Logical.!.Correct.Boolean > ! ( > == true ) // ! ( 6 > 3 == true ) > Type: expression Hardness: 25 # 706 Logical.!.Correct.Boolean > ! ( false == < ) // ! ( false == 3 < 6 ) > Type: expression Hardness: 25 # 707 Logical.!.Correct.Boolean > ! ( false == > ) // ! ( false == 3 > 6 ) > Type: expression Hardness: 25 # 708 Logical.!.Correct.Boolean > ! ( != != true ) // ! ( 3 != 6 != true ) > Type: expression Hardness: 25 # 709 Logical.!.Correct.Boolean > ! ( != != false ) // ! ( 3 != 3 != false ) > Type: expression Hardness: 25 // TEST QUESTIONS # 710 Logical.!.Correct.Boolean > ! ( == ) // ! ( 3 == 6) > Type: expression Hardness: 20 # 711 Logical.!.Correct.Boolean > ! ( < == true ) // ! ( 6 < 3 == true ) > Type: expression Hardness: 25 // ----------------------------------------------------------------------- // Logical.!.Correct.Other - 725 // includes Arithmetic, Constant, Assignment, Bitwise expressions returning non-boolean operands // In all the templates, Arithmetic.Parenthesis.Precedence will get credit, not Logical.Parenthesis.Precedence # 725 Logical.!.Correct.Other > ! // ! 3 > Type: expression Hardness: 10 # 726 Logical.!.Correct.Other > ! 0 > Type: expression Hardness: 10 # 727 Logical.!.Correct.Other > + ! 0 // 3 + ! 0 > Type: expression Hardness: 20 # 728 Logical.!.Correct.Other > * ! // 3 * ! 3 > Type: expression Hardness: 20 # 729 Logical.!.Correct.Other > / ! 0 // 6 / ! 0 > Type: expression Hardness: 20 # 730 Logical.!.Correct.Other > ! % // ! 3 % 6 > Type: expression Hardness: 20 # 731 Logical.!.Correct.Other > * ! 0 // 3 * ! 0 > Type: expression Hardness: 20 # 732 Logical.!.Correct.Other > ! / // ! 6 / 3 > Type: expression Hardness: 20 # 733 Logical.!.Correct.Other > % ! 0 // 3 % ! 0 > Type: expression Hardness: 20 # 734 Logical.!.Correct.Other > ! ( + ) // ! (3 + 3) > Type: expression Hardness: 20 # 735 Logical.!.Correct.Other > ! ( * 0 ) // ! (3 * 0) > Type: expression Hardness: 20 # 736 Logical.!.Correct.Other > ! ( / ) // ! (3 / 6) > Type: expression Hardness: 20 # 737 Logical.!.Correct.Other > ! ( - ) // ! (3 - 6) > Type: expression Hardness: 20 # 738 Logical.!.Correct.Other > ! ( / ) // ! (6 / 3) > Type: expression Hardness: 20 # 739 Logical.!.Correct.Other > ! ( % ) // ! (3 % 3) > Type: expression Hardness: 20 # 740 Logical.!.Correct.Other > ! ( * ) // ! (3 * 3) > Type: expression Hardness: 20 # 741 Logical.!.Correct.Other > ! ( - ) // ! (3 - 3) > Type: expression Hardness: 20 # 742 Logical.!.Correct.Other > ! ( 0 - ) // ! (0 - 3) > Type: expression Hardness: 20 # 743 Logical.!.Correct.Other > ! ( % 1 ) // ! (3 % 1) > Type: expression Hardness: 20 # 744 Logical.!.Correct.Other > ! ( % ) // ! (6 % 3) > Type: expression Hardness: 20 # 745 Logical.!.Correct.Other > ! ( * -1 ) // ! (3 * -1) > Type: expression Hardness: 20 # 746 Logical.!.Correct.Other > ! ( % ) // ! (3 % 6) > Type: expression Hardness: 20 # 750 Logical.!.Correct.Other > ! < // ! 3 < 6 > Type: expression Hardness: 20 # 751 Logical.!.Correct.Other > ! == // ! 3 == 6 > Type: expression Hardness: 20 # 752 Logical.!.Correct.Other > ! != // ! 3 != 6 > Type: expression Hardness: 20 # 753 Logical.!.Correct.Other > true != ! // true != ! 3 > Type: expression Hardness: 20 # 754 Logical.!.Correct.Other > 0 == ! // 0 == ! 5 > Type: expression Hardness: 20 # 755 Logical.!.Correct.Other > true == ! 0 > Type: expression Hardness: 20 # 756 Logical.!.Correct.Other > ! != != true // ! 3 != 6 != true > Type: expression Hardness: 25 # 757 Logical.!.Correct.Other > ! != != false // ! 3 != 3 != false > Type: expression Hardness: 25 // TEST QUESTIONS # 760 Logical.!.Correct.Other > ! - // ! 3 - 3 > Type: expression Hardness: 20 # 761 Logical.!.Correct.Other > ! > // ! 3 > 6 > Type: expression Hardness: 20 // ----------------------------------------------------------------------- // Logical.!.Precedence.Logical - 775 // &&-!, !-&&, !-&&-! // ||-!, !-||, !-||-! // In all the templates, Relational.Parenthesis.Precedence will get credit, not Logical.Parenthesis.Precedence // Interleaved the following 6 cases: // a && !(b) !(a) && b !(a) && !(b) // --------- --------- ------------ // f && sct !(f) && * !(f) && *t // t && * !(t) && sct !(t) && scf // // a || !(b) !(a) || b !(a) || !(b) // --------- --------- ------------ // t || sct !(f) || scf !(f) || sct // f || !(f) !(t) || t !(t) || f # 775 Logical.{!.Precedence.Logical,&&.Precedence.Logical} > ! false && true > Type: expression Hardness: 20 # 776 Logical.{!.Precedence.Logical,||.Precedence.Logical} > ! false || false > Type: expression Hardness: 20 # 777 Logical.{!.Precedence.Logical,&&.Precedence.Logical} > ! false && ! true > Type: expression Hardness: 25 # 778 Logical.{!.Precedence.Logical,||.Precedence.Logical} > false || ! false > Type: expression Hardness: 20 # 779 Logical.{!.Precedence.Logical,&&.Precedence.Logical} > ! true && true > Type: expression Hardness: 20 # 780 Logical.{!.Precedence.Logical,||.Precedence.Logical} > ! true || true > Type: expression Hardness: 20 // These involve short circuiting, hence, more complicated # 781 Logical.{!.Precedence.Logical,||.Precedence.Logical} > ! false || ! true > Type: expression Hardness: 25 # 782 Logical.{!.Precedence.Logical,&&.Precedence.Logical} > ! true && ! false > Type: expression Hardness: 25 // TEST QUESTIONS # 783 Logical.{!.Precedence.Logical,&&.Precedence.Logical} > true && ! false > Type: expression Hardness: 20 # 784 Logical.{!.Precedence.Logical,||.Precedence.Logical} > ! true || ! false > Type: expression Hardness: 25 // Since ! is always followed by parenthesis, this does not as accurately // measure precedence of ! as do the above problems # 785 Logical.{!.Precedence.Logical,&&.Precedence.Logical} > ! ( > ) && < // ! (3 > 6) && 3 < 6 - ! false && true > Type: expression Hardness: 30 # 786 Logical.{!.Precedence.Logical,&&.Precedence.Logical} > ! ( == ) && ! ( < ) // ! ( 3 == 6 ) && ! ( 3 < 6 ) - ! false && ! true > Type: expression Hardness: 35 # 787 Logical.{!.Precedence.Logical,||.{Precedence.Logical,Short Circuit.Boolean}} > ! ( > ) || < // ! ( 6 > 12 ) || 12 < 6 - ! false || false > Type: expression Hardness: 30 # 788 Logical.{!.Precedence.Logical,&&.Precedence.Logical} > < && ! ( < ) // 6 < 12 && ! ( 6 < 3 ) - true && ! false > Type: expression Hardness: 30 # 789 Logical.{!.Precedence.Logical,&&.{Precedence.Logical,Short Circuit.Boolean}} > ! ( < ) && != // ! ( 6 < 12 ) && 6 != 12 - ! true && true > Type: expression Hardness: 30 # 790 Logical.{!.Precedence.Logical,||.Precedence.Logical} > == || ! ( == ) // 3 == 6 || ! ( 6 == 12 ) - false || ! false > Type: expression Hardness: 30 # 791 Logical.{!.Precedence.Logical,||.Precedence.Logical} > ! ( > ) || > // ! ( 12 > 6 ) || 6 > 3 - ! true || true > Type: expression Hardness: 30 # 792 Logical.{!.{Precedence.Logical,Associativity},||.Precedence.Logical} > ! ( > ) || ! ( < ) // ! ( 12 > 6 ) || ! ( 12 < 6 ) - ! true || ! false > Type: expression Hardness: 35 // These involve short circuiting and ! on RHS will not be evaluated # 795 Logical.{!.Precedence.Logical,&&.Precedence.Logical} > < && ! ( < ) // 12 < 6 && ! ( 6 < 3) - false && ! false > Type: expression Hardness: 30 # 796 Logical.{!.Precedence.Logical,||.Precedence.Logical} > ! ( == ) || ! ( != ) // ! ( 3 == 6 ) || ! ( 3 != 6 ) - ! false || ! true > Type: expression Hardness: 35 # 797 Logical.{!.Precedence.Logical,&&.{Precedence.Logical,Short Circuit.Boolean}} > ! ( < ) && ! ( < ) // ! ( 3 < 6 ) && ! ( 12 < 6 ) - ! true && ! false > Type: expression Hardness: 35 // # 221 // Logical.{&&.Precedence,!.Precedence} // > // ! 4 && 4 // > // Type: expression // Hardness: 30 // // # 223 // Logical.{&&.Precedence,!.Precedence} // > // ! 0 && 5 // > // Type: expression // Hardness: 30 // // # 225 // Logical.{&&.Precedence,!.Precedence} // > // ! 5 && 0 // > // Type: expression // Hardness: 30 // // # 222 // Logical.{&&.Precedence,!.Precedence} // > // -9 && ! 9 // > // Type: expression // Hardness: 30 // // # 224 // Logical.{&&.Precedence,!.Precedence} // > // -6 && ! 0 // > // Type: expression // Hardness: 30 // // # 226 // Logical.{&&.Precedence,!.Precedence} // > // ! 4 && ! 6 // > // Type: expression // Hardness: 30 // # 291 // Logical.{||.Precedence,!.Precedence} // > // ! 6 || 6 // > // Type: expression // Hardness: 30 // // # 293 // Logical.{||.Precedence,!.Precedence} // > // ! 0 || 5 // > // Type: expression // Hardness: 30 // // # 295 // Logical.{||.Precedence,!.Precedence} // > // ! 5 || 0 // > // Type: expression // Hardness: 30 // // # 292 // Logical.{||.Precedence,!.Precedence} // > // -9 || ! 9 // > // Type: expression // Hardness: 30 // // # 294 // Logical.{||.Precedence,!.Precedence} // > // -6 || ! 0 // > // Type: expression // Hardness: 30 // // # 296 // Logical.{||.Precedence,!.Precedence} // > // 0 || ! 8 // > // Type: expression // Hardness: 30 // // # 297 // Logical.{||.Precedence,!.Precedence} // > // 0 || ! 0 // > // Type: expression // Hardness: 30 // // # 298 // Logical.{||.Precedence,!.Precedence} // > // ! 4 || ! 0 // > // Type: expression // Hardness: 30 // ----------------------------------------------------------------------- // Logical.!.Precedence.Other - 800 // Since we already use it against relational operators for Correct, this tests // Vs Rel + Arith, Rel + Assignment, Rel + Bitwise # 800 Logical.!.Precedence.Other > > == ! true // 6 > 3 == ! true > Type: expression Hardness: 25 # 801 Logical.!.Precedence.Other > < != ! true // 6 < 3 != ! true > Type: expression Hardness: 25 # 802 Logical.!.Precedence.Other > > != ! false // 3 > 6 != ! false > Type: expression Hardness: 25 # 805 Logical.!.Precedence.Other > + > == ! false // 3 + 6 > 6 == ! false > Type: expression Hardness: 35 # 806 Logical.!.Precedence.Other > - < 0 != ! true // 3 - 6 < 0 != ! true > Type: expression Hardness: 35 # 807 Logical.!.Precedence.Other > / == 0 == ! true // 3 / 6 == 0 == ! true > Type: expression Hardness: 35 # 808 Logical.!.Precedence.Other > % != 0 != ! false // 3 % 6 != 0 != ! false > Type: expression Hardness: 35 # 809 Logical.!.Precedence.Other > / >= 1 == ! true // 6 / 3 >= 1 == ! true > Type: expression Hardness: 35 # 810 Logical.!.Precedence.Other > % <= != ! false // 6 % 3 <= 3 != ! false > Type: expression Hardness: 35 // TEST QUESTIONS # 811 Logical.!.Precedence.Other > < == ! false // 3 < 6 == ! false > Type: expression Hardness: 25 # 812 Logical.!.Precedence.Other > * >= == ! false // 3 * 3 >= 6 == ! false > Type: expression Hardness: 35 # 815 Logical.!.Precedence.Other > * != * == ! true // 3 * 6 != 6 * 3 == ! true > Type: expression Hardness: 45 # 816 Logical.!.Precedence.Other > / < / != ! false // 3 / 6 < 6 / 3 != ! false > Type: expression Hardness: 45 # 817 Logical.!.Precedence.Other > % > % == ! false // 3 % 6 > 6 % 3 == ! false > Type: expression Hardness: 45 // ----------------------------------------------------------------------- // // Logical.!.Associativity - 850 // !! // In all the templates, Relational.Parenthesis.Precedence will get credit, not Logical.Parenthesis.Precedence # 850 Logical.!.Associativity > ! ! true > Type: expression Hardness: 25 # 851 Logical.!.Associativity > ! ! false > Type: expression Hardness: 25 # 852 Logical.!.Associativity > ! ! ( == ) // ! ! ( 3 == 6) > Type: expression Hardness: 30 # 853 Logical.!.Associativity > ! ! ( > ) // ! ! ( 6 > 3 ) > Type: expression Hardness: 30 # 854 Logical.!.Associativity > ! ! ( != ) // ! ! ( 3 != 6) > Type: expression Hardness: 30 # 855 Logical.!.Associativity > ! true != ! false > Type: expression Hardness: 30 # 856 Logical.!.Associativity > ! ( > ) == ! ( > ) // ! ( 6 > 3 ) == ! ( 6 > 12 ) > Type: expression Hardness: 35 # 857 Logical.!.Associativity > ! ( == ) == ! ( != ) // ! ( 3 == 6 ) == ! ( 6 != 12 ) > Type: expression Hardness: 35 # 858 Logical.!.Associativity > ! ( < ) != ! ( < ) // ! ( 12 < 6 ) != ! ( 6 < 3 ) > Type: expression Hardness: 35 // TEST QUESTIONS # 860 Logical.!.Associativity > ! ! ( < ) // ! ! ( 3 < 6 ) > Type: expression Hardness: 30 # 861 Logical.!.Associativity > ! ( < ) == ! ( < ) // ! ( 3 < 6 ) == ! ( 6 < 12 ) > Type: expression Hardness: 35 // -------------------------------------------------------------------------- // 900 // Logical.Parenthesis.Precedence // Patterns: // // a op1 (b op2 c) - op2 < op1 - Due to L->R, will not work /////////////// # 900 Logical.Parenthesis.Precedence > true && (true || false) > Type: expression Hardness: 30 # 901 Logical.Parenthesis.Precedence > true && (false || true) > Type: expression Hardness: 30 # 902 Logical.Parenthesis.Precedence > false || (true || false) > Type: expression Hardness: 30 # 903 Logical.Parenthesis.Precedence > false || (false || true) > Type: expression Hardness: 30 # 904 Logical.Parenthesis.Precedence > true && (false && true) > Type: expression Hardness: 30 # 905 Logical.Parenthesis.Precedence > true && (true && false) > Type: expression Hardness: 30 // a op1 (b op2 c) op3 d - op2 < op3 < op1 ////////////////////////////// // false || (false || false) || true - not as interesting # 910 Logical.{Parenthesis.Precedence,&&.Associativity} > true && (true || false) && true > Type: expression Hardness: 40 # 911 Logical.{Parenthesis.Precedence,&&.Associativity} > true && (false || true) && false > Type: expression Hardness: 40 # 912 Logical.{Parenthesis.Precedence,&&.Associativity} > true && (true || true) && false > Type: expression Hardness: 40 // Integrated pre-test # 913 Logical.{Parenthesis.Precedence,&&.Precedence,||.Precedence} > false || (false || true) && false > Type: expression Hardness: 40 // Integrated post-test # 914 Logical.{Parenthesis.Precedence,&&.Precedence,||.Precedence} > false || (true || false) && true > Type: expression Hardness: 40 # 915 Logical.{Parenthesis.Precedence,&&.Associativity} > true && (true && false) && true > Type: expression Hardness: 40 # 916 Logical.{Parenthesis.Precedence,&&.Associativity} > true && (false && true) && false > Type: expression Hardness: 40 # 917 Logical.{Parenthesis.Precedence,&&.Associativity} > true && (true && true) && false > Type: expression Hardness: 40 // a op1 b op2 (c op3 d) - op3 < op2 < op1 - Same as 2-operator version, not worth it ////// // false || true || (false || true) - short circuited, cannot use // true && true && (false && true) - uninteresting // true && true && (true && false) - uninteresting # 920 Logical.{Parenthesis.Precedence,&&.Associativity} > true && true && (true || false) > Type: expression Hardness: 40 # 921 Logical.{Parenthesis.Precedence,&&.Associativity} > true && true && (false || true) > Type: expression Hardness: 40 # 922 Logical.{Parenthesis.Precedence,&&.Precedence,||.Precedence} > false || true && (true || false) > Type: expression Hardness: 40 # 923 Logical.{Parenthesis.Precedence,&&.Precedence,||.Precedence} > false || true && (false || true) > Type: expression Hardness: 40 # 924 Logical.{Parenthesis.Precedence,&&.Precedence,||.Precedence} > true && false || (true || false) > Type: expression Hardness: 40 # 925 Logical.{Parenthesis.Precedence,&&.Precedence,||.Precedence} > false && false || (false || true) > Type: expression Hardness: 40 # 926 Logical.{Parenthesis.Precedence,||.Associativity} > false || false || (true || false) > Type: expression Hardness: 40 # 927 Logical.{Parenthesis.Precedence,&&.Precedence,||.Precedence} > false || true && (false && true) > Type: expression Hardness: 40 # 928 Logical.{Parenthesis.Precedence,&&.Precedence,||.Precedence} > false || true && (true && false) > Type: expression Hardness: 40 // -------------------------------------------------------------------------- // 950 // Logical.Parenthesis.Associativity // // a op1 ((b op2 c) op3 d) /////////////////////////////// // Derived from a op1 (b op2 c) op3 d problems # 950 Logical.Parenthesis.Associativity > true && ((true || false) && true) > Type: expression Hardness: 40 # 951 Logical.Parenthesis.Associativity > true && ((false || true) && false) > Type: expression Hardness: 40 # 952 Logical.Parenthesis.Associativity > true && ((true || true) && false) > Type: expression Hardness: 40 # 953 Logical.Parenthesis.Associativity > false || ((false || false) || true) > Type: expression Hardness: 40 # 954 Logical.Parenthesis.Associativity > true && ((true && false) && true) > Type: expression Hardness: 40 # 955 Logical.Parenthesis.Associativity > true && ((false && true) && false) > Type: expression Hardness: 40 # 956 Logical.Parenthesis.Associativity > true && ((true && true) && false) > Type: expression Hardness: 40 // (a op1 (b op2 c)) op3 d ////////////////////////////// // Derived from a op1 (b op2 c) op3 d problems # 957 Logical.Parenthesis.Associativity > (false || (false || true)) && false > Type: expression Hardness: 40 # 958 Logical.Parenthesis.Associativity > (false || (true || false)) && true > Type: expression Hardness: 40 // a op1 (b op2 (c op3 d)) /////////////////////////////// // Derived from a op1 b op2 (c op3 d) problems // a op1 b op2 (c op3 d) - op3 < op2 < op1 - Same as 2-operator version, not worth it // false && false || (false || true) - short circuited, will not work with additional () // false || true || (false || true) - short circuited, cannot use // Integrated - pretest # 959 Logical.Parenthesis.Associativity > true && (true && (true || false)) > Type: expression Hardness: 40 // Integrated - post-test # 960 Logical.Parenthesis.Associativity > true && (true && (false || true)) > Type: expression Hardness: 40 # 961 Logical.Parenthesis.Associativity > true && (false || (true || false)) > Type: expression Hardness: 40 # 962 Logical.Parenthesis.Associativity > false || (false || (true || false)) > Type: expression Hardness: 40 # 963 Logical.Parenthesis.Associativity > true && (true && (false && true)) > Type: expression Hardness: 40 # 964 Logical.Parenthesis.Associativity > true && (true && (true && false)) > Type: expression Hardness: 40 // (a op1 b) op2 (c op3 d) ///////////////////////////// // The rest of the combinations - no difference with/out (), or same as problems with one () # 965 Logical.Parenthesis.Associativity > (false || true) && (true || false) > Type: expression Hardness: 40 # 966 Logical.Parenthesis.Associativity > (true || false) && (false || true) > Type: expression Hardness: 40 # 967 Logical.Parenthesis.Associativity > (false || true) && (false && true) > Type: expression Hardness: 40 # 968 Logical.Parenthesis.Associativity > (true || false) && (true && false) > Type: expression Hardness: 40 // Not worth it, too complicated with sc and left to right eval // (a op1 b op2 c) op3 (d op4 e op5 f) /////////////// // // (a op1 b) op2 (c op3 d) op4 (e op5 f) ///////////// // // -------------------------------------------------------------------------- // Templates here are for demonstration purposes // Included at the end so that regular practice does not pick up these templates // Learning about boolean constants // # 90 // Demonstration // > // true == false // > // Type: expression // Hardness: 10 // How to enter multiple underbraces # 90 Demonstration > 2 < 4 == true > Type: expression Hardness: 10 // How to enter short circuit values # 91 Demonstration > false && 4 < 9 > Type: expression Hardness: 15 // How to enter error values # 92 Demonstration > 2 / 0 && 3 < 5 > Type: expression Hardness: 15 // --------------------------------------------------------------------------