// Assignment.Simple.Correct - 100 // Assigment to a variable from a constant, variable, constant expression, expression w. variables // Assignment.Simple.Self Referential - 125 // x = x arithOp value/var/constant expression // Assignment.Simple.Precedence - 150 // Assigment to a variable from an expression: arithmetic, relational, logical, bitwise // Assignment.Simple.Associativity - 175 // Chained assignment to 2 and 3 variables, same vs compound operators // Assignment.Simple.Coercion - 200 // from real to integer, from integer to real // // Assignment.Compound.Correct.Arithmetic - 250 // +=, -=, *=, /= %=: const, var, expression involving same operator, // self-ref last (this is a harder problem, not a new concept // since all compound assignment is self-referential // Assignment.Compound.Correct.Bitwise - 275 // &=, |=, ^=, <<=, >>= // Assignment.Compound.Precedence - 300 // *=, /=, ;/%= w.r.t. +, -, // *=, /=, %=, +=, -= w.r.t. the same operator - if they know compound operators are individual ops // Assignment.Compound.Associativity - 325 // Within compound arithmetic operators, compound and simple operators // Within compound bitwise operators, compound and simple operators // Assignment.Compound.Coercion - 375 // Using arithmetic operators, from real to integer, from integer to real // Using bitwise operators?? // // Assignment.Prefix.Increment.Correct - 400 // Single, Two in an arithmetic/relational expression (not the same variable twice) // Assignment.Prefix.Increment.Precedence - 425 // Single in an arithmetic/relational/other assignment operators // Assignment.Prefix.Increment.Associativity - 450 // W.r.t. itself only - chained/multiple // // Assignment.Prefix.Decrement.Correct - 500 // Single, Two in an arithmetic/relational expression (not the same variable twice) // Assignment.Prefix.Decrement.Precedence - 525 // Single in an arithmetic/relational/other assignment operators // Assignment.Prefix.Decrement.Associativity - 550 // W.r.t. itself only - chained/multiple // // Assignment.Postfix.Increment.Correct - 600 // Single, Two in an arithmetic/relational expression (not the same variable twice) // Assignment.Postfix.Increment.Precedence - 625 // Single in an arithmetic/relational/other assignment operators // Assignment.Postfix.Increment.Associativity - 650 // W.r.t. itself only - chained/multiple // // Assignment.Postfix.Decrement.Correct - 700 // Single, Two in an arithmetic/relational expression (not the same variable twice) // Assignment.Postfix.Decrement.Precedence - 725 // Single in an arithmetic/relational/other assignment operators // Assignment.Postfix.Decrement.Associativity - 750 // W.r.t. itself only - chained/multiple // // Assignment.Parenthesis.Precedence - 800 // to prioritize assignment over arithmetic, relational, operators // Assignment.Parenthesis.Associativity - 850 // // // Move learning objectives as follows: // Assignment.Simple.Multiple - Variable.Assignment.Simple // Assignment.Compound.Multiple - Variable.Assignment.Compound // Assignment.Prefix.Increment.Multiple - Variable.Assignment.Prefix.Increment // Assignment.Prefix.Decrement.Multiple - Variable.Assignment.Prefix.Decrement // Assignment.Postfix.Increment.Multiple - Variable.Assignment.Postfix.Increment // Assignment.Postfix.Decrement.Multiple - Variable.Assignment.Postfix.Decrement // // // ------------------------------------------------------------------------ // DONE // Assignment.Simple.Correct - 100 // Assigment to a variable from a constant // no constant expression - this is about coercion // no variable or variable expression - already assumes understanding of assignment // Don't use negative real numbers, will run into precision problems // Assignment of constant # 100 Assignment.Simple.Correct > {; = ;} > Type: expression Hardness: 10 # 101 Assignment.Simple.Correct > {; = ;} > Type: expression Hardness: 10 # 102 Assignment.Simple.Correct > {; = ;} > Type: expression Hardness: 10 # 103 Assignment.Simple.Correct > {; = ;} > Type: expression Hardness: 10 // Repeated Assignments of constants to a variable # 105 Assignment.Simple.Correct > {; = ; = ;} > Type: expression Hardness: 20 # 106 Assignment.Simple.Correct > {; = ; = ;} > Type: expression Hardness: 20 # 107 Assignment.Simple.Correct > {; = ; = ;} > Type: expression Hardness: 20 # 108 Assignment.Simple.Correct > {; = ; = ;} > Type: expression Hardness: 20 // Assignment of a variable # 110 Assignment.Simple.Correct > {;; = ; = ;} > Type: expression Hardness: 30 # 111 Assignment.Simple.Correct > {;; = ; = ;} > Type: expression Hardness: 30 # 112 Assignment.Simple.Correct > {;; = ; = ;} > Type: expression Hardness: 30 # 113 Assignment.Simple.Correct > {;; = ; = ;} > Type: expression Hardness: 30 // Repeated Assignment, at least one being a variable # 115 Assignment.Simple.Correct > {; = ;; = ; = ;} > Type: expression Hardness: 40 # 116 Assignment.Simple.Correct > {; = ;; = ; = ;} > Type: expression Hardness: 40 # 117 Assignment.Simple.Correct > {; = ;; = ; = ;} > Type: expression Hardness: 40 # 118 Assignment.Simple.Correct > {; = ;; = ; = ;} > Type: expression Hardness: 40 // Assignment with a semantic error # 120 Assignment.Simple.Correct > {;; = ; = ;} > Type: expression Hardness: 50 # 121 Assignment.Simple.Correct > {;; = ; = ;} > Type: expression Hardness: 50 # 122 Assignment.Simple.Correct > {;; = ; = ;} > Type: expression Hardness: 50 # 123 Assignment.Simple.Correct > {;; = ; = ;} > Type: expression Hardness: 50 // ------------------------------------------------------------------------ // DONE // Assignment.Simple.Self Referential - 125 // x = x arithOp value/var/constant expression // x = x arithOp 1 # 125 Assignment.Simple.Self Referential > { = ; = + 1;} > Type: expression Hardness: 20 # 126 Assignment.Simple.Self Referential > { = ; = - 1;} > Type: expression Hardness: 20 # 127 Assignment.Simple.Self Referential > { = ; = * 2;} > Type: expression Hardness: 20 // x = x arithOp Constant # 130 Assignment.Simple.Self Referential > { = ; = + ;} > Type: expression Hardness: 25 # 131 Assignment.Simple.Self Referential > { = ; = - ;} > Type: expression Hardness: 25 # 132 Assignment.Simple.Self Referential > { = ; = * ;} > Type: expression Hardness: 20 // x = x arithOp Variable # 135 Assignment.Simple.Self Referential > { = ; = ; = + ;} > Type: expression Hardness: 30 # 136 Assignment.Simple.Self Referential > { = ; = ; = - ;} > Type: expression Hardness: 30 # 137 Assignment.Simple.Self Referential > { = ; = ; = * ;} > Type: expression Hardness: 30 // x = x arithOp Constant expression # 140 Assignment.Simple.Self Referential > { = ; = + * 2;} > Type: expression Hardness: 40 # 141 Assignment.Simple.Self Referential > { = ; = - * 2;} > Type: expression Hardness: 40 // x = x arithOp Variable expression # 145 Assignment.Simple.Self Referential > { = ; = ; = + * ;} > Type: expression Hardness: 45 # 146 Assignment.Simple.Self Referential > { = ; = ; = - * ;} > Type: expression Hardness: 45 // ------------------------------------------------------------------------ // Assignment.Simple.Precedence - 150 // Assigment to a variable from an expression: arithmetic, relational, logical, bitwise // Constant expressions, expressions with variables // Always use only one other operator, so that we do not test precedence within the other operators // Arithmetic expression, constant expression # 150 Assignment.Simple.Precedence > {; = + ;} > Type: expression Hardness: 20 # 151 Assignment.Simple.Precedence > {; = - ;} > Type: expression Hardness: 20 # 152 Assignment.Simple.Precedence > {; = * ;} > Type: expression Hardness: 20 # 153 Assignment.Simple.Precedence > {; = / ;} > Type: expression Hardness: 20 # 154 Assignment.Simple.Precedence > {; = % ;} > Type: expression Hardness: 20 // Arithmetic expression, variable expression # 155 Assignment.Simple.Precedence > {; = ; = + ;} > Type: expression Hardness: 30 # 156 Assignment.Simple.Precedence > {; = ; = - ;} > Type: expression Hardness: 30 # 157 Assignment.Simple.Precedence > {; = ; = * ;} > Type: expression Hardness: 30 # 158 Assignment.Simple.Precedence > {; = ; = / ;} > Type: expression Hardness: 30 # 159 Assignment.Simple.Precedence > {; = ; = % ;} > Type: expression Hardness: 30 // Relational expression, constant expression // Relational expression, variable expression // Logical expression, constant expression // Logical expression, variable expression // Bitwise expression, constant expression // Bitwise expression, variable expression // ------------------------------------------------------------------------ // DONE // Assignment.Simple.Associativity - 175 // Chained assignment to 2 and 3 variables, same vs compound operators // x = y = constant; x = y = z; x = constant followed by x = y = constant; // Assignment of constant # 175 Assignment.Simple.Associativity > {;; = = ;} > Type: expression Hardness: 20 # 176 Assignment.Simple.Associativity > {;; = = ;} > Type: expression Hardness: 20 # 177 Assignment.Simple.Associativity > {;; = = ;} > Type: expression Hardness: 20 # 178 Assignment.Simple.Associativity > {;; = = ;} > Type: expression Hardness: 20 // Pre-existing value for variables, Assignment of a constant # 180 Assignment.Simple.Associativity > {;; = ; = = ;} > Type: expression Hardness: 30 # 181 Assignment.Simple.Associativity > {;; = ; = = ;} > Type: expression Hardness: 30 # 182 Assignment.Simple.Associativity > {;; = ; = = ;} > Type: expression Hardness: 30 # 183 Assignment.Simple.Associativity > {;; = ; = = ;} > Type: expression Hardness: 30 // Assignment of variable # 185 Assignment.Simple.Associativity > {;;; = ; = = ;} > Type: expression Hardness: 30 # 186 Assignment.Simple.Associativity > {;;; = ; = = ;} > Type: expression Hardness: 30 # 187 Assignment.Simple.Associativity > {;;; = ; = = ;} > Type: expression Hardness: 30 # 188 Assignment.Simple.Associativity > {;;; = ; = = ;} > Type: expression Hardness: 30 // Pre-existing value for variables, Assignment of variable # 190 Assignment.Simple.Associativity > {;;; = ; = ; = = ;} > Type: expression Hardness: 40 # 191 Assignment.Simple.Associativity > {;;; = ; = ; = = ;} > Type: expression Hardness: 40 # 192 Assignment.Simple.Associativity > {;;; = ; = ; = = ;} > Type: expression Hardness: 40 # 193 Assignment.Simple.Associativity > {;;; = ; = ; = = ;} > Type: expression Hardness: 40 // ------------------------------------------------------------------------ // Copy straight from simple assignment and switch data types! // Assignment.Simple.Coercion - 200 // from real to integer, from integer to real # 200 Assignment.Simple.Coercion > {; = ;} > Type: expression Hardness: 20 // Assignment of constant # 100 Assignment.Simple.Coercion > {; = ;} > Type: expression Hardness: 10 # 101 Assignment.Simple.Coercion > {; = ;} > Type: expression Hardness: 10 # 102 Assignment.Simple.Coercion > {; = ;} > Type: expression Hardness: 10 # 103 Assignment.Simple.Coercion > {; = ;} > Type: expression Hardness: 10 // Repeated Assignments of constants to a variable # 105 Assignment.Simple.Coercion > {; = ; = ;} > Type: expression Hardness: 20 # 106 Assignment.Simple.Coercion > {; = ; = ;} > Type: expression Hardness: 20 # 107 Assignment.Simple.Coercion > {; = ; = ;} > Type: expression Hardness: 20 # 108 Assignment.Simple.Coercion > {; = ; = ;} > Type: expression Hardness: 20 // Assignment of a variable # 110 Assignment.Simple.Coercion > {;; = ; = ;} > Type: expression Hardness: 30 # 111 Assignment.Simple.Coercion > {;; = ; = ;} > Type: expression Hardness: 30 // From here onwards # 112 Assignment.Simple.Coercion > {;; = ; = ;} > Type: expression Hardness: 30 # 113 Assignment.Simple.Coercion > {;; = ; = ;} > Type: expression Hardness: 30 // Repeated Assignment, at least one being a variable # 115 Assignment.Simple.Coercion > {; = ;; = ; = ;} > Type: expression Hardness: 40 # 116 Assignment.Simple.Coercion > {; = ;; = ; = ;} > Type: expression Hardness: 40 # 117 Assignment.Simple.Coercion > {; = ;; = ; = ;} > Type: expression Hardness: 40 # 118 Assignment.Simple.Coercion > {; = ;; = ; = ;} > Type: expression Hardness: 40 // Assignment with a semantic error # 120 Assignment.Simple.Coercion > {;; = ; = ;} > Type: expression Hardness: 50 # 121 Assignment.Simple.Coercion > {;; = ; = ;} > Type: expression Hardness: 50 # 122 Assignment.Simple.Coercion > {;; = ; = ;} > Type: expression Hardness: 50 # 123 Assignment.Simple.Coercion > {;; = ; = ;} > Type: expression Hardness: 50 // ------------------------------------------------------------------------ // DONE // Assignment.Compound.Correct.Arithmetic - 250 // +=, -=, *=, /= %=: const, var, // expression involving same operator would still be about precedence // self-ref last (this is a harder problem, not a new concept // since all compound assignment is self-referential // Arithmetic operators, constant # 250 Assignment.Compound.Correct.Arithmetic > { = ; += ;} > Type: expression Hardness: 30 # 251 Assignment.Compound.Correct.Arithmetic > { = ; -= ;} > Type: expression Hardness: 30 # 252 Assignment.Compound.Correct.Arithmetic > { = ; *= ;} > Type: expression Hardness: 30 # 253 Assignment.Compound.Correct.Arithmetic > { = ; /= ;} > Type: expression Hardness: 30 # 254 Assignment.Compound.Correct.Arithmetic > { = ; %= ;} > Type: expression Hardness: 30 // Arithmetic operators, variable # 255 Assignment.Compound.Correct.Arithmetic > { = ; = ; += ;} > Type: expression Hardness: 35 # 256 Assignment.Compound.Correct.Arithmetic > { = ; = ; -= ;} > Type: expression Hardness: 35 # 257 Assignment.Compound.Correct.Arithmetic > { = ; = ; *= ;} > Type: expression Hardness: 35 # 258 Assignment.Compound.Correct.Arithmetic > { = ; = ; /= ;} > Type: expression Hardness: 35 # 259 Assignment.Compound.Correct.Arithmetic > { = ; = ; %= ;} > Type: expression Hardness: 35 // Arithmetic operators, self-referential variable # 260 Assignment.Compound.Correct.Arithmetic > { = ; += ;} > Type: expression Hardness: 60 # 261 Assignment.Compound.Correct.Arithmetic > { = ; -= ;} > Type: expression Hardness: 60 # 262 Assignment.Compound.Correct.Arithmetic > { = ; *= ;} > Type: expression Hardness: 60 # 263 Assignment.Compound.Correct.Arithmetic > { = ; /= ;} > Type: expression Hardness: 60 # 264 Assignment.Compound.Correct.Arithmetic > { = ; %= ;} > Type: expression Hardness: 60 // ------------------------------------------------------------------------ // Assignment.Compound.Correct.Bitwise - 275 // &=, |=, ^=, <<=, >>= // # 275 // Assignment.Compound.Correct.Bitwise // > // {; = ;} // > // Type: expression // Hardness: 30 // ------------------------------------------------------------------------ // DONE // Assignment.Compound.Precedence - 300 // *=, /=, /%= w.r.t. +, -, // *=, /=, %=, +=, -= w.r.t. the same operator - interesting since it violates associativity rules // *= w.r.t. +/- # 300 Assignment.Compound.Precedence > { = ; *= + ;} > Type: expression Hardness: 50 # 301 Assignment.Compound.Precedence > { = ; *= - ;} > Type: expression Hardness: 50 # 302 Assignment.Compound.Precedence > { = ; = ; *= - ;} > Type: expression Hardness: 50 // /= w.r.t. +/- # 303 Assignment.Compound.Precedence > { = ; /= + ;} > Type: expression Hardness: 50 # 304 Assignment.Compound.Precedence > { = ; /= - ;} > Type: expression Hardness: 50 # 305 Assignment.Compound.Precedence > { = ; = ; /= + ;} > Type: expression Hardness: 50 // %= w.r.t. +/- # 306 Assignment.Compound.Precedence > { = ; %= + ;} > Type: expression Hardness: 50 # 307 Assignment.Compound.Precedence > { = ; %= - ;} > Type: expression Hardness: 50 # 308 Assignment.Compound.Precedence > { = ; = ; %= + ;} > Type: expression Hardness: 50 // Arithmetic operators, expression involving same operator # 310 Assignment.Compound.Precedence > { = ; += + ;} > Type: expression Hardness: 40 # 311 Assignment.Compound.Precedence > { = ; = ; -= - ;} > Type: expression Hardness: 40 # 312 Assignment.Compound.Precedence > { = ; = ; *= / ;} > Type: expression Hardness: 40 # 313 Assignment.Compound.Precedence > { = ; = ; /= * ;} > Type: expression Hardness: 40 # 314 Assignment.Compound.Precedence > { = ; %= * ;} > Type: expression Hardness: 40 // Arithmetic operators, self-referential expression involving lower precedence operator // *= w.r.t. +/- # 315 Assignment.Compound.Precedence > { = ; *= + 1;} > Type: expression Hardness: 60 # 316 Assignment.Compound.Precedence > { = ; *= - ;} > Type: expression Hardness: 60 // /= w.r.t. +/- # 317 Assignment.Compound.Precedence > { = ; /= + 1;} > Type: expression Hardness: 60 # 318 Assignment.Compound.Precedence > { = ; /= - 1;} > Type: expression Hardness: 60 // %= w.r.t. +/- # 319 Assignment.Compound.Precedence > { = ; %= + ;} > Type: expression Hardness: 60 # 320 Assignment.Compound.Precedence > { = ; %= - 1;} > Type: expression Hardness: 60 // Arithmetic operators, self-referential expression involving same operator # 321 Assignment.Compound.Precedence > {; = ; += + ;} > Type: expression Hardness: 60 # 322 Assignment.Compound.Precedence > {; = ; -= - ;} > Type: expression Hardness: 60 # 323 Assignment.Compound.Precedence > { = ; *= / ;} > Type: expression Hardness: 60 # 324 Assignment.Compound.Precedence > { = ; /= * ;} > Type: expression Hardness: 60 // # 325 // Assignment.Compound.Precedence // > // { = ; %= * ;} // > // Type: expression // Hardness: 60 // ------------------------------------------------------------------------ // DONE - Arithmetic is done, bitwise is not done // Assignment.Compound.Associativity - 325 // Within compound arithmetic operators, compound and simple operators // all operators with themselves, *=, /= and %= with += and -= // Within compound bitwise operators, compound and simple operators // *=, /=, %= w.r.t. += and -=: counter to precedence of arithmetic operators # 325 Assignment.Compound.Associativity > { = ; = ; *= += ;} > Type: expression Hardness: 60 # 326 Assignment.Compound.Associativity > { = ; = ; /= -= ;} > Type: expression Hardness: 60 # 327 Assignment.Compound.Associativity > { = ; = ; %= += ;} > Type: expression Hardness: 60 # 328 Assignment.Compound.Associativity > { = ; = ; *= -= ;} > Type: expression Hardness: 60 # 329 Assignment.Compound.Associativity > { = ; = ; /= += ;} > Type: expression Hardness: 60 # 330 Assignment.Compound.Associativity > { = ; = ; %= -= ;} > Type: expression Hardness: 60 // Compound arithmetic operator with simple assignment operator and vice versa # 331 Assignment.Compound.Associativity > { = ;; += = ;} > Type: expression Hardness: 40 # 332 Assignment.Compound.Associativity > { = ;; -= = ;} > Type: expression Hardness: 40 # 333 Assignment.Compound.Associativity > { = ;; *= = ;} > Type: expression Hardness: 40 # 334 Assignment.Compound.Associativity > { = ;; /= = ;} > Type: expression Hardness: 40 # 335 Assignment.Compound.Associativity > { = ;; %= = ;} > Type: expression Hardness: 40 # 336 Assignment.Compound.Associativity > {; = ; = += ;} > Type: expression Hardness: 40 # 337 Assignment.Compound.Associativity > {; = ; = -= ;} > Type: expression Hardness: 40 # 338 Assignment.Compound.Associativity > {; = ; = *= ;} > Type: expression Hardness: 40 # 339 Assignment.Compound.Associativity > {; = ; = /= ;} > Type: expression Hardness: 40 # 340 Assignment.Compound.Associativity > {; = ; = %= ;} > Type: expression Hardness: 40 // += and -= w.r.t. each other - counter to associativity of +/- // *=, /= and %= w.r.t. each other - counter to associativity of arithmetic operators # 341 Assignment.Compound.Associativity > { = ; = ; += += ;} > Type: expression Hardness: 50 # 342 Assignment.Compound.Associativity > { = ; = ; += -= ;} > Type: expression Hardness: 50 # 343 Assignment.Compound.Associativity > { = ; = ; -= += ;} > Type: expression Hardness: 50 # 344 Assignment.Compound.Associativity > { = ; = ; -= -= ;} > Type: expression Hardness: 50 # 345 Assignment.Compound.Associativity > { = ; = ; *= *= ;} > Type: expression Hardness: 50 # 346 Assignment.Compound.Associativity > { = ; = ; *= /= ;} > Type: expression Hardness: 50 # 347 Assignment.Compound.Associativity > { = ; = ; *= %= ;} > Type: expression Hardness: 50 # 348 Assignment.Compound.Associativity > { = ; = ; /= *= ;} > Type: expression Hardness: 50 # 349 Assignment.Compound.Associativity > { = ; = ; /= /= ;} > Type: expression Hardness: 50 # 350 Assignment.Compound.Associativity > { = ; = ; /= %= ;} > Type: expression Hardness: 50 # 351 Assignment.Compound.Associativity > { = ; = ; %= *= ;} > Type: expression Hardness: 50 # 352 Assignment.Compound.Associativity > { = ; = ; %= /= ;} > Type: expression Hardness: 50 # 353 Assignment.Compound.Associativity > { = ; = ; %= %= ;} > Type: expression Hardness: 50 // ------------------------------------------------------------------------ // Assignment.Compound.Coercion - 375 // Using arithmetic operators, from real to integer, from integer to real // Using bitwise operators?? // // DO // Arithmetic, int to real // Arithmetic, float to int # 375 Assignment.Compound.Coercion > {; = ;} > Type: expression Hardness: 50 // ------------------------------------------------------------------------ // Assignment.Prefix.Increment.Correct - 400 // Single, Two in an arithmetic/relational expression (not the same variable twice) // DONE # 400 Assignment.Prefix.Increment.Correct > { = ;<+ ;} > Type: expression Hardness: 20 # 401 Assignment.Prefix.Increment.Correct > {; = ;<+ ;} > Type: expression Hardness: 20 // ------------------------------------------------------------------------ // Assignment.Prefix.Increment.Precedence - 425 // Single in an arithmetic/relational/other assignment operators // DONE // Arithmetic: operand op ++ var for *, /, %, +, - // Relational: operand op ++ var for <, >, <=. >= // Assignment: operand op ++ var for =, +=, -=, *=, /=, %= # 425 Assignment.Prefix.Increment.Precedence > { = ; * <+ ;} > Type: expression Hardness: 30 # 426 Assignment.Prefix.Increment.Precedence > { = ; / <+ ;} > Type: expression Hardness: 30 # 427 Assignment.Prefix.Increment.Precedence > { = ; % <+ ;} > Type: expression Hardness: 30 # 428 Assignment.Prefix.Increment.Precedence > { = ; + <+ ;} > Type: expression Hardness: 30 # 429 Assignment.Prefix.Increment.Precedence > { = ; - <+ ;} > Type: expression Hardness: 30 # 430 Assignment.Prefix.Increment.Precedence > { = ; < <+ ;} > Type: expression Hardness: 20 # 431 Assignment.Prefix.Increment.Precedence > { = ; > <+ ;} > Type: expression Hardness: 20 # 432 Assignment.Prefix.Increment.Precedence > { = ; <= <+ ;} > Type: expression Hardness: 25 # 433 Assignment.Prefix.Increment.Precedence > { = ; >= <+ ;} > Type: expression Hardness: 25 # 435 Assignment.Prefix.Increment.Precedence > { = ;; = <+ ;} > Type: expression Hardness: 30 # 436 Assignment.Prefix.Increment.Precedence > { = ; = ; += <+ ;} > Type: expression Hardness: 35 # 437 Assignment.Prefix.Increment.Precedence > { = ; = ; -= <+ ;} > Type: expression Hardness: 35 # 438 Assignment.Prefix.Increment.Precedence > { = ; = ; *= <+ ;} > Type: expression Hardness: 35 # 439 Assignment.Prefix.Increment.Precedence > { = ; = ; /= <+ ;} > Type: expression Hardness: 35 # 440 Assignment.Prefix.Increment.Precedence > { = ; = ; %= <+ ;} > Type: expression Hardness: 35 // ------------------------------------------------------------------------ // Assignment.Prefix.Associativity - 450 // W.r.t. itself only - chained/multiple // DONE # 450 Assignment.Prefix.Associativity > {; = ;<+ <+ ;} > Type: expression Hardness: 30 # 451 Assignment.Prefix.Associativity > {; = ;<- <+ ;} > Type: expression Hardness: 30 # 452 Assignment.Prefix.Associativity > {; = ;<+ <- ;} > Type: expression Hardness: 30 # 453 Assignment.Prefix.Associativity > {; = ;<- <- ;} > Type: expression Hardness: 30 // ------------------------------------------------------------------------ // Assignment.Prefix.Decrement.Correct - 500 // Single, Two in an arithmetic/relational expression (not the same variable twice) // DONE # 500 Assignment.Prefix.Decrement.Correct > { = ;<- ;} > Type: expression Hardness: 20 # 501 Assignment.Prefix.Decrement.Correct > {; = ;<- ;} > Type: expression Hardness: 20 // ------------------------------------------------------------------------ // Assignment.Prefix.Decrement.Precedence - 525 // Single in an arithmetic/relational/other assignment operators // DONE // Arithmetic: operand op ++ var for *, /, %, +, - // Relational: operand op ++ var for <, >, <=. >= // Assignment: operand op ++ var for =, +=, -=, *=, /=, %= # 525 Assignment.Prefix.Decrement.Precedence > { = ; * <- ;} > Type: expression Hardness: 30 # 526 Assignment.Prefix.Decrement.Precedence > { = ; / <- ;} > Type: expression Hardness: 30 # 527 Assignment.Prefix.Decrement.Precedence > { = ; % <- ;} > Type: expression Hardness: 30 # 528 Assignment.Prefix.Decrement.Precedence > { = ; + <- ;} > Type: expression Hardness: 30 # 529 Assignment.Prefix.Decrement.Precedence > { = ; - <- ;} > Type: expression Hardness: 30 # 530 Assignment.Prefix.Decrement.Precedence > { = ; < <- ;} > Type: expression Hardness: 20 # 531 Assignment.Prefix.Decrement.Precedence > { = ; > <- ;} > Type: expression Hardness: 20 # 532 Assignment.Prefix.Decrement.Precedence > { = ; <= <- ;} > Type: expression Hardness: 25 # 533 Assignment.Prefix.Decrement.Precedence > { = ; >= <- ;} > Type: expression Hardness: 25 # 535 Assignment.Prefix.Decrement.Precedence > { = ;; = <- ;} > Type: expression Hardness: 30 # 536 Assignment.Prefix.Decrement.Precedence > { = ; = ; += <- ;} > Type: expression Hardness: 35 # 537 Assignment.Prefix.Decrement.Precedence > { = ; = ; -= <- ;} > Type: expression Hardness: 35 # 538 Assignment.Prefix.Decrement.Precedence > { = ; = ; *= <- ;} > Type: expression Hardness: 35 # 539 Assignment.Prefix.Decrement.Precedence > { = ; = ; /= <- ;} > Type: expression Hardness: 35 # 540 Assignment.Prefix.Decrement.Precedence > { = ; = ; %= <- ;} > Type: expression Hardness: 35 // ------------------------------------------------------------------------ // Assignment.Prefix.Decrement.Associativity - No longer a learning objective // ------------------------------------------------------------------------ // Assignment.Postfix.Increment.Correct - 600 // Single, Two in an arithmetic/relational expression (not the same variable twice) // DONE # 600 Assignment.Postfix.Increment.Correct > { = ; >+;} > Type: expression Hardness: 20 # 601 Assignment.Postfix.Increment.Correct > {; = ; >+;} > Type: expression Hardness: 20 // ------------------------------------------------------------------------ // Assignment.Postfix.Increment.Precedence - 625 // Single in an arithmetic/relational/other assignment operators // DONE // Arithmetic: operand op ++ var for *, /, %, +, - // Relational: operand op ++ var for <, >, <=. >= // Assignment: operand op ++ var for =, +=, -=, *=, /=, %= # 625 Assignment.Postfix.Increment.Precedence > { = ; * >+;} > Type: expression Hardness: 30 # 626 Assignment.Postfix.Increment.Precedence > { = ; / >+;} > Type: expression Hardness: 30 # 627 Assignment.Postfix.Increment.Precedence > { = ; % >+;} > Type: expression Hardness: 30 # 628 Assignment.Postfix.Increment.Precedence > { = ; + >+;} > Type: expression Hardness: 30 # 629 Assignment.Postfix.Increment.Precedence > { = ; - >+;} > Type: expression Hardness: 30 # 630 Assignment.Postfix.Increment.Precedence > { = ; < >+;} > Type: expression Hardness: 20 # 631 Assignment.Postfix.Increment.Precedence > { = ; > >+;} > Type: expression Hardness: 20 # 632 Assignment.Postfix.Increment.Precedence > { = ; <= >+;} > Type: expression Hardness: 25 # 633 Assignment.Postfix.Increment.Precedence > { = ; >= >+;} > Type: expression Hardness: 25 # 635 Assignment.Postfix.Increment.Precedence > { = ;; = >+;} > Type: expression Hardness: 30 # 636 Assignment.Postfix.Increment.Precedence > { = ; = ; += >+;} > Type: expression Hardness: 35 # 637 Assignment.Postfix.Increment.Precedence > { = ; = ; -= >+;} > Type: expression Hardness: 35 # 638 Assignment.Postfix.Increment.Precedence > { = ; = ; *= >+;} > Type: expression Hardness: 35 # 639 Assignment.Postfix.Increment.Precedence > { = ; = ; /= >+;} > Type: expression Hardness: 35 # 640 Assignment.Postfix.Increment.Precedence > { = ; = ; %= >+;} > Type: expression Hardness: 35 // ------------------------------------------------------------------------ // Assignment.Postfix.Increment.Associativity - No longer a learning objective // ------------------------------------------------------------------------ // Assignment.Postfix.Decrement.Correct - 700 // Single, Two in an arithmetic/relational expression (not the same variable twice) // DONE # 700 Assignment.Postfix.Decrement.Correct > { = ; >-;} > Type: expression Hardness: 20 # 701 Assignment.Postfix.Decrement.Correct > {; = ; >-;} > Type: expression Hardness: 20 // ------------------------------------------------------------------------ // Assignment.Postfix.Decrement.Precedence - 725 // Single in an arithmetic/relational/other assignment operators // DONE // Arithmetic: operand op ++ var for *, /, %, +, - // Relational: operand op ++ var for <, >, <=. >= // Assignment: operand op ++ var for =, +=, -=, *=, /=, %= # 725 Assignment.Postfix.Decrement.Precedence > { = ; * >-;} > Type: expression Hardness: 30 # 726 Assignment.Postfix.Decrement.Precedence > { = ; / >-;} > Type: expression Hardness: 30 # 727 Assignment.Postfix.Decrement.Precedence > { = ; % >-;} > Type: expression Hardness: 30 # 728 Assignment.Postfix.Decrement.Precedence > { = ; + >-;} > Type: expression Hardness: 30 # 729 Assignment.Postfix.Decrement.Precedence > { = ; - >-;} > Type: expression Hardness: 30 # 730 Assignment.Postfix.Decrement.Precedence > { = ; < >-;} > Type: expression Hardness: 20 # 731 Assignment.Postfix.Decrement.Precedence > { = ; > >-;} > Type: expression Hardness: 20 # 732 Assignment.Postfix.Decrement.Precedence > { = ; <= >-;} > Type: expression Hardness: 25 # 733 Assignment.Postfix.Decrement.Precedence > { = ; >= >-;} > Type: expression Hardness: 25 # 735 Assignment.Postfix.Decrement.Precedence > { = ;; = >-;} > Type: expression Hardness: 30 # 736 Assignment.Postfix.Decrement.Precedence > { = ; = ; += >-;} > Type: expression Hardness: 35 # 737 Assignment.Postfix.Decrement.Precedence > { = ; = ; -= >-;} > Type: expression Hardness: 35 # 738 Assignment.Postfix.Decrement.Precedence > { = ; = ; *= >-;} > Type: expression Hardness: 35 # 739 Assignment.Postfix.Decrement.Precedence > { = ; = ; /= >-;} > Type: expression Hardness: 35 # 740 Assignment.Postfix.Decrement.Precedence > { = ; = ; %= >-;} > Type: expression Hardness: 35 // ------------------------------------------------------------------------ // Assignment.Postfix.Decrement.Associativity - No longer a learning objective // ------------------------------------------------------------------------ // Assignment.Parenthesis.Precedence - 800 // to prioritize assignment over arithmetic, relational, operators # 800 Assignment.Parenthesis.Precedence > {; = ;} > Type: expression Hardness: 30 // ------------------------------------------------------------------------ // Assignment.Parenthesis.Associativity - 850 # 850 Assignment.Parenthesis.Associativity > {; = ;} > Type: expression Hardness: 50 // ------------------------------------------------------------------------ // < && < // -------------------------------------------------------------------------- // Templates here are for demonstration purposes // Included at the end so that regular practice does not pick up these templates // 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 // --------------------------------------------------------------------------