// ------------------------------------------------------------------------ // Relational operators - 1 operator // ---------- // For Integer operands, Real operands, Character Operands, Mixed operands // Correctness // LessThan, GreaterThan // small op large, large op small, equal op equal // LessEquals, GreaterEquals // small op large, large op small, equal op equal // Equals, NotEquals // integers, reals // small op large, large op small, equal op equal // integers, boolean // small op large, large op small, equal op equal // // Integer operands # 101 Relational.<.Correct > < // 3 < 7 > Type: expression Hardness: 10 # 102 Relational.<.Correct > < // 9 < 4 > Type: expression Hardness: 10 # 103 Relational.<.Correct > 4 < 4 > Type: expression Hardness: 10 # 104 Relational.>.Correct > 4 > 6 > Type: expression Hardness: 10 # 105 Relational.>.Correct > 7 > 5 > Type: expression Hardness: 10 # 106 Relational.>.Correct > 6 > 6 > Type: expression Hardness: 10 # 107 Relational.<=.Correct > 4 <= 9 > Type: expression Hardness: 10 # 108 Relational.<=.Correct > 7 <= 3 > Type: expression Hardness: 10 # 109 Relational.<=.Correct > 7 <= 7 > Type: expression Hardness: 10 # 110 Relational.>=.Correct > 5 >= 6 > Type: expression Hardness: 10 # 111 Relational.>=.Correct > 6 >= 3 > Type: expression Hardness: 10 # 112 Relational.>=.Correct > 5 >= 5 > Type: expression Hardness: 10 # 113 Relational.==.Correct > 2 == 9 > Type: expression Hardness: 10 # 114 Relational.==.Correct > 8 == 4 > Type: expression Hardness: 10 # 115 Relational.==.Correct > 8 == 8 > Type: expression Hardness: 10 # 116 Relational.!=.Correct > 3 != 5 > Type: expression Hardness: 10 # 117 Relational.!=.Correct > 7 != 4 > Type: expression Hardness: 10 # 118 Relational.!=.Correct > 9 != 9 > Type: expression Hardness: 10 // Real operands # 121 Relational.<.Correct > 3.5 < 7.2 > Type: expression Hardness: 10 # 122 Relational.<.Correct > 9.2 < 4.5 > Type: expression Hardness: 10 # 123 Relational.<.Correct > 4.0 < 4.0 > Type: expression Hardness: 10 # 124 Relational.>.Correct > 4.6 > 6.4 > Type: expression Hardness: 10 # 125 Relational.>.Correct > 7.5 > 5.3 > Type: expression Hardness: 10 # 126 Relational.>.Correct > 6.0 > 6.0 > Type: expression Hardness: 10 # 127 Relational.<=.Correct > 4.4 <= 9.9 > Type: expression Hardness: 10 # 128 Relational.<=.Correct > 7.3 <= 3.6 > Type: expression Hardness: 10 # 128 Relational.<=.Correct > 7.0 <= 7.0 > Type: expression Hardness: 10 # 130 Relational.>=.Correct > 5.2 >= 6.8 > Type: expression Hardness: 10 # 131 Relational.>=.Correct > 6.5 >= 6.25 > Type: expression Hardness: 10 # 132 Relational.>=.Correct > 5.0 >= 5.0 > Type: expression Hardness: 10 # 133 Relational.==.Correct > 2.9 == 9.2 > Type: expression Hardness: 10 # 134 Relational.==.Correct > 8.5 == 4.8 > Type: expression Hardness: 10 # 135 Relational.==.Correct > 8.0 == 8.0 > Type: expression Hardness: 10 # 136 Relational.!=.Correct > 3.6 != 6.3 > Type: expression Hardness: 10 # 137 Relational.!=.Correct > 7.3 != 4.6 > Type: expression Hardness: 10 # 138 Relational.!=.Correct > 9.0 != 9.0 > Type: expression Hardness: 10 // Character operands // within lower case, within upper case, between lower and upper case, digits # 141 Relational.<.Correct > 'a' < 'e' > Type: expression Hardness: 20 # 142 Relational.<.Correct > 'm' < 'c' > Type: expression Hardness: 20 # 143 Relational.<.Correct > 'A' < 'A' > Type: expression Hardness: 20 # 144 Relational.>.Correct > 'd' > 'f' > Type: expression Hardness: 20 # 145 Relational.>.Correct > 'z' > 'a' > Type: expression Hardness: 20 # 146 Relational.>.Correct > 'P' > 'P' > Type: expression Hardness: 20 # 147 Relational.<=.Correct > 'G' <= 'Q' > Type: expression Hardness: 20 # 148 Relational.<=.Correct > 'R' <= 'H' > Type: expression Hardness: 20 # 149 Relational.<=.Correct > 'L' <= 'L' > Type: expression Hardness: 20 # 150 Relational.>=.Correct > 'J' >= 'K' > Type: expression Hardness: 20 # 151 Relational.>=.Correct > 'r' >= 'p' > Type: expression Hardness: 20 # 152 Relational.>=.Correct > 'j' >= 'j' > Type: expression Hardness: 20 # 153 Relational.==.Correct > 't' == 'w' > Type: expression Hardness: 20 # 154 Relational.==.Correct > 's' == 'c' > Type: expression Hardness: 20 # 155 Relational.==.Correct > 'J' == 'J' > Type: expression Hardness: 20 # 156 Relational.!=.Correct > 'e' != 'r' > Type: expression Hardness: 20 # 157 Relational.!=.Correct > 'W' != 'M' > Type: expression Hardness: 20 # 158 Relational.!=.Correct > 'v' != 'v' > Type: expression Hardness: 20 // lower and upper case # 161 Relational.<.Correct > 'Z' < 'a' > Type: expression Hardness: 25 # 162 Relational.<.Correct > 'b' < 'X' > Type: expression Hardness: 25 # 163 Relational.>.Correct > 'P' > 'd' > Type: expression Hardness: 25 # 164 Relational.>.Correct > 'f' > 'M' > Type: expression Hardness: 25 # 165 Relational.<=.Correct > 'R' <= 'k' > Type: expression Hardness: 25 # 166 Relational.<=.Correct > 'p' <= 'W' > Type: expression Hardness: 25 # 167 Relational.>=.Correct > 'S' >= 'g' > Type: expression Hardness: 25 # 168 Relational.>=.Correct > 'k' >= 'N' > Type: expression Hardness: 25 # 169 Relational.==.Correct > 'a' == 'A' > Type: expression Hardness: 25 # 170 Relational.==.Correct > 'P' == 'p' > Type: expression Hardness: 25 # 171 Relational.!=.Correct > 'e' != 'E' > Type: expression Hardness: 25 # 172 Relational.!=.Correct > 'H' != 'h' > Type: expression Hardness: 25 // digit characters # 181 Relational.<.Correct > '1' < '7' > Type: expression Hardness: 25 # 182 Relational.<.Correct > '6' < '4' > Type: expression Hardness: 25 # 183 Relational.>.Correct > '3' > '5' > Type: expression Hardness: 25 # 184 Relational.>.Correct > '7' > '4' > Type: expression Hardness: 25 # 185 Relational.<=.Correct > '3' <= '5' > Type: expression Hardness: 25 # 186 Relational.<=.Correct > '7' <= '5' > Type: expression Hardness: 25 # 187 Relational.>=.Correct > '2' >= '8' > Type: expression Hardness: 25 # 188 Relational.>=.Correct > '6' >= '4' > Type: expression Hardness: 25 # 189 Relational.==.Correct > '3' == '6' > Type: expression Hardness: 25 # 190 Relational.==.Correct > '5' == '5' > Type: expression Hardness: 25 # 191 Relational.!=.Correct > '7' != '6' > Type: expression Hardness: 25 # 192 Relational.!=.Correct > '1' != '1' > Type: expression Hardness: 25 // Mixed operands int-real, int-char // (other combinations - int-bool, real-char, real-bool, char-bool undesirable) // int-real # 201 Relational.<.Correct > 9 < 4.5 > Type: expression Hardness: 10 # 202 Relational.<.Correct > 4 < 4.0 > Type: expression Hardness: 10 # 203 Relational.>.Correct > 13.5 > 13 > Type: expression Hardness: 10 # 204 Relational.>.Correct > 7 > 7.0 > Type: expression Hardness: 10 # 205 Relational.<=.Correct > 8.7 <= 8 > Type: expression Hardness: 10 # 206 Relational.<=.Correct > 11 <= 11.0 > Type: expression Hardness: 10 # 207 Relational.>=.Correct > 6 >= 6.9 > Type: expression Hardness: 10 # 208 Relational.>=.Correct > 9.0 >= 9 > Type: expression Hardness: 10 # 209 Relational.==.Correct > 14 == 14.0 > Type: expression Hardness: 10 # 210 Relational.==.Correct > 7.5 == 5.7 > Type: expression Hardness: 10 # 211 Relational.!=.Correct > 7.3 != 7 > Type: expression Hardness: 10 # 212 Relational.!=.Correct > 6 != 6.0 > Type: expression Hardness: 10 // int-char # 221 Relational.<.Correct > '4' < 4 > Type: expression Hardness: 10 # 222 Relational.<.Correct > 7 < '7' > Type: expression Hardness: 10 # 223 Relational.>.Correct > '6' > 6 > Type: expression Hardness: 10 # 224 Relational.>.Correct > 1 > '1' > Type: expression Hardness: 10 # 225 Relational.==.Correct > '5' == 5 > Type: expression Hardness: 10 # 226 Relational.!=.Correct > 9 != '9' > Type: expression Hardness: 10 // All negative numbers # 231 Relational.<.Correct > -5 < -3 > Type: expression Hardness: 20 # 232 Relational.<.Correct > -3.3 < -9.9 > Type: expression Hardness: 20 # 233 Relational.<.Correct > -13 < 1 > Type: expression Hardness: 20 # 236 Relational.>.Correct > -8 > -4 > Type: expression Hardness: 20 # 237 Relational.>.Correct > -4.5 > -9 > Type: expression Hardness: 20 # 238 Relational.>.Correct > -7 > 0 > Type: expression Hardness: 20 # 241 Relational.<=.Correct > -3.5 <= -5 > Type: expression Hardness: 20 # 242 Relational.<=.Correct > -9.8 <= -6.5 > Type: expression Hardness: 20 # 243 Relational.<=.Correct > -6 <= 0 > Type: expression Hardness: 20 # 244 Relational.<=.Correct > 6 <= -6 > Type: expression Hardness: 20 # 246 Relational.>=.Correct > -8 >= -9 > Type: expression Hardness: 20 # 247 Relational.>=.Correct > -7 >= -3 > Type: expression Hardness: 20 # 248 Relational.>=.Correct > 4 >= -4 > Type: expression Hardness: 20 # 249 Relational.>=.Correct > -7 >= 0 > Type: expression Hardness: 20 # 251 Relational.==.Correct > 5 == -5 > Type: expression Hardness: 20 # 252 Relational.==.Correct > 5.9 == -9.5 > Type: expression Hardness: 20 # 253 Relational.==.Correct > -10 == 0 > Type: expression Hardness: 20 # 256 Relational.!=.Correct > 1.0 != -1 > Type: expression Hardness: 20 # 257 Relational.!=.Correct > -9 != 9 > Type: expression Hardness: 20 # 258 Relational.!=.Correct > -3 != 0 > Type: expression Hardness: 20 // ---------------------------------------------------------------------- // Precedence // {LessThan, GreaterThan, LessEquals, GreaterEquals} Vs {Equals, NotEquals} # 301 Relational.{<.Precedence,==.Precedence} > 5 < 9 == false > Type: expression Hardness: 20 # 302 Relational.{<.Precedence,==.Precedence} > 11 < 8 == false > Type: expression Hardness: 20 # 303 Relational.{<.Precedence,!=.Precedence} > 7 < 3 != true > Type: expression Hardness: 20 # 304 Relational.{<.Precedence,!=.Precedence} > 4 < 8 != true > Type: expression Hardness: 20 # 305 Relational.{<=.Precedence,==.Precedence} > 6 <= 6 == true > Type: expression Hardness: 20 # 306 Relational.{<=.Precedence,==.Precedence} > 4 <= 4 == false > Type: expression Hardness: 20 # 307 Relational.{<=.Precedence,!=.Precedence} > 5.7 <= 7.5 != false > Type: expression Hardness: 20 # 308 Relational.{<=.Precedence,!=.Precedence} > 8.2 <= 2.8 != false > Type: expression Hardness: 20 # 309 Relational.{>.Precedence,==.Precedence} > 9 > 13 == true > Type: expression Hardness: 20 # 310 Relational.{>.Precedence,==.Precedence} > 9 > 4 == true > Type: expression Hardness: 20 # 311 Relational.{>.Precedence,!=.Precedence} > 7.3 > 3.7 != false > Type: expression Hardness: 20 # 312 Relational.{>.Precedence,!=.Precedence} > 4.8 > 8.4 != false > Type: expression Hardness: 20 # 313 Relational.{>=.Precedence,==.Precedence} > 9 >= 8.1 == false > Type: expression Hardness: 20 # 314 Relational.{>=.Precedence,==.Precedence} > 3.6 >= 6.3 == false > Type: expression Hardness: 20 # 315 Relational.{>=.Precedence,!=.Precedence} > 7 >= 7.0 != true > Type: expression Hardness: 20 # 316 Relational.{>=.Precedence,!=.Precedence} > 8.0 >= 8 != false > Type: expression Hardness: 20 // // Associativity // LessThan, GreaterThan // small op medium op large, large op medium op small, // small op large op medium, medium op large op small, // large op small op medium, medium op small op large, // equal op equal op equal, equal op equal op true/false // LessEquals, GreaterEquals // small op medium op large, large op medium op small, // small op large op medium, medium op large op small, // large op small op medium, medium op small op large, // equal op equal op equal, equal op equal op true/false // Equals, NotEquals // small op medium op large, large op medium op small, // small op large op medium, medium op large op small, // large op small op medium, medium op small op large, // equal op equal op equal, equal op equal op true/false # 321 Relational.<.Associativity > 8 < 4 < 1 > Type: expression Hardness: 20 # 322 Relational.<.Associativity > 9 < 3 < 5 > Type: expression Hardness: 20 # 323 Relational.{<.Associativity,<=.Associativity} > 3 < 5 <= 1 > Type: expression Hardness: 20 # 324 Relational.{<.Associativity,>.Associativity} > 4.5 < 5.4 > 3 > Type: expression Hardness: 20 # 325 Relational.{<.Associativity,>=.Associativity} > 3 < 9 >= 5 > Type: expression Hardness: 20 # 331 Relational.>.Associativity > 9 > 5 > 3 > Type: expression Hardness: 20 # 332 Relational.{>.Associativity,>=.Associativity} > 3 > 7 >= -1 > Type: expression Hardness: 20 # 333 Relational.{>.Associativity,<.Associativity} > 4 > 8 < 6 > Type: expression Hardness: 20 # 334 Relational.{>.Associativity,<=.Associativity} > 9 > 5 <= 7 > Type: expression Hardness: 20 # 341 Relational.<=.Associativity > 9 <= 5 <= 3 > Type: expression Hardness: 20 # 342 Relational.<=.Associativity > 0 <= 0 <= 0 > Type: expression Hardness: 20 # 343 Relational.<=.Associativity > 4 <= 4 <= 1 > Type: expression Hardness: 20 # 351 Relational.{<=.Associativity,<.Associativity} > 6 <= 6 < 2 > Type: expression Hardness: 20 # 352 Relational.{<=.Associativity,>.Associativity} > 2 <= 8 > 4 > Type: expression Hardness: 20 # 353 Relational.{<=.Associativity,>=.Associativity} > 3 <= 6 >= 1 > Type: expression Hardness: 20 # 354 Relational.{<=.Associativity,>=.Associativity} > 6 <= 3 >= 0 > Type: expression Hardness: 20 # 361 Relational.>=.Associativity > 7 >= 7 >= 1 > Type: expression Hardness: 20 # 362 Relational.>=.Associativity > 9.5 >= 5.25 >= 3 > Type: expression Hardness: 20 # 363 Relational.>=.Associativity > 4 >= 4 >= 4 > Type: expression Hardness: 20 # 366 Relational.{>=.Associativity,<.Associativity} > 5 >= 9 < 1 > Type: expression Hardness: 20 # 371 Relational.{>=.Associativity,<=.Associativity} > -5 >= -9 <= 0 > Type: expression Hardness: 20 # 372 Relational.{>=.Associativity,<=.Associativity} > 3 >= 8 <= 0 > Type: expression Hardness: 20 # 373 Relational.{>=.Associativity,>.Associativity} > 6 >= 4 > 1 > Type: expression Hardness: 20 # 374 Relational.{>=.Associativity,>.Associativity} > 5 >= 5 > 4 > Type: expression Hardness: 20 # 381 Relational.==.Associativity > 9 == 3 == 0 > Type: expression Hardness: 20 # 382 Relational.==.Associativity > 4 == 4 == 1 > Type: expression Hardness: 20 # 383 Relational.==.Associativity > 7 == 4 == false > Type: expression Hardness: 20 # 384 Relational.==.Associativity > 9 == 9 == true > Type: expression Hardness: 20 # 391 Relational.{==.Associativity,!=.Associativity} > 7 == 4 != 1 > Type: expression Hardness: 20 # 392 Relational.{==.Associativity,!=.Associativity} > 5 == 5 != 0 > Type: expression Hardness: 20 # 393 Relational.{==.Associativity,!=.Associativity} > 6 == 3 != true > Type: expression Hardness: 20 # 394 Relational.{==.Associativity,!=.Associativity} > 6 == 6 != false > Type: expression Hardness: 20 # 401 Relational.!=.Associativity > 3 != 9 != 0 > Type: expression Hardness: 20 # 402 Relational.!=.Associativity > 1 != 1 != 1 > Type: expression Hardness: 20 # 403 Relational.!=.Associativity > 5 != 9 != false > Type: expression Hardness: 20 # 404 Relational.!=.Associativity > 7 != 7 != true > Type: expression Hardness: 20 # 411 Relational.{!=.Associativity,==.Associativity} > 2 != 7 == 0 > Type: expression Hardness: 20 # 412 Relational.{!=.Associativity,==.Associativity} > 3 != 3 == 1 > Type: expression Hardness: 20 # 413 Relational.{!=.Associativity,==.Associativity} > 3 != 5 == false > Type: expression Hardness: 20 # 414 Relational.{!=.Associativity,==.Associativity} > 9 != 9 == true > Type: expression Hardness: 20