1. Trang chủ
  2. » Công Nghệ Thông Tin

Lecture Computing for management - Chapter 26

48 52 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 709,62 KB

Nội dung

After studying this chapter you will be able to understand: Learn about control structures; examine relational and logical operators; explore how to form and evaluate logical (boolean) expressions; discover how to use the selection control structures if, if...else, and switch in a program; learn to use the assert function to terminate a program.

Booleans Lecture 26 Summary of previous lecture  In the previous lecture, we have been learnt,  The if statement  The else statement  Cascaded if  Nested if  Switch statement Today’s Topics Boolean  Type int as Boolean  Boolean expressions  Boolean Operators  Precedence  Common mistakes  Boolean  A special “type” with only two values:  false  Used to implement conditions  for  and true selection and looping in an algorithm Boolean expressions  represent statements which are either strictly true or strictly false We still have  to cover Boolean Algebra - History  George Boole, 1815-1864 Initially self-guided studies of languages and philosophy  With 16 assistant teacher at private school  With 20 opened a school and taught himself mathematics  Published in “Cambridge Mathematical Journal” with 24   The Mathematical Analysis of Logic was published in 1847  Casts logical reasoning in the form of algebra    + is OR, * is AND is FALSE, is TRUE An Investigation of the Laws of Thought (1854) extends the algebra Type int as Boolean In C, integers are used as Booleans  Integer value is false  Any non-zero integer value is true  Example: What is the output? #include /* Test some Booleans */ int main() { int whatever = 0; if (whatever) { printf(“Is that true, John?\n”); } else { printf(“No, Jane.\n”); } return 0; } Example: What is the output? #include /* Test some Booleans */ int main() { int whatever = 1; if (whatever) { printf(“Is that true, John?\n”); } else { printf(“No, Jane.\n”); } return 0; } Example: What is the output? #include /* Test some Booleans */ int main() { int whatever = -100; if (whatever) { printf(“Is that true, John?\n”); } else { printf(“No, Jane.\n”); } return 0; } Example: What is the output? #include /* Test some Booleans */ int main() { int whatever = ’A’; if (whatever) { printf(“Is that true, John?\n”); } else { printf(“No, Jane.\n”); } return 0; } Common Mistakes Using = instead of ==  Multiple comparisons  Example: #include /* Another common C error */ int main() { int score; scanf("%d", &score); if ( < score < 48 ) { printf("Fail\n"); } return 0; } boolerr2.c Example: #include /* Another common C error */ int main() { int score; scanf("%d", &score); if ( < score < 48 ) { printf("Fail\n"); } or return 0; } boolerr2.c Example: #include /* Another common C error */ int main() { int score; always scanf("%d", &score); if ( < score < 48 ) { printf("Fail\n"); } or return 0; } boolerr2.c Example: #include /* Another common C error */ int main() { int score; scanf("%d", &score); if ( < score && score < 48 ) { printf("Fail\n"); } return 0; } boolerr2.c True and False as Constants  ‘C’ does not provide constants for TRUE/FALSE (other than and 1)  You can make use of the pre-processor  Use  #define TRUE  #define FALSE whenever you need such constants Exclusive OR  True if “at most one” of two alternatives is true False if neither is true False if both are true!  Define!   A xor B : Do you need brackets? Two out of three…  True if and only if exactly two of A,B,C are true  Define!  Is there a better way? Simplifying & Checking Boolean Expressions   Use Truth Tables A && !B || B && !A A B A xor B 1 0 1 1 A 1 B 0 1 Transform Expressions using Boolean Algebra Axioms of Boolean Algebra   Commutative  (A && B)  (A || B) (B && A) (B || A) Associative A && (B && C) A || (B || C) (A && B) && C (A || B) || C Axioms of Boolean Algebra (cont)   Distributive A && (B || C) (A && B) || (A && C) A || (B && C) (A || B) && (A || C) … plus some “technicalities” De Morgan’s Law  From the axioms of Boolean algebra it follows that:  ! ( A || B ) !A && !B  ! (A && B) !A || !B  You can use all rules above to simplify / verify expressions  Exercise: simplify ! ( A || !B ) && A Conditional Expressions  We can write an expression such that its value depends on a TRUTH value Condition ? Expr2 : Expr3  A ternary operator  For example: int z,a,b; … z = (a>b) ? a : b ; More Examples ch1 = 'a'; ch2 = 'a'; printf("ch1 OR ch2 = %d\n", ch1 || ch2); printf("ch1 AND ch2 = %d\n", ch1 && ch2); // // ch1 = 'd'; ch2 = 'f'; printf("ch1 OR ch2 = %d\n", ch1 || ch2); printf("ch1 AND ch2 = %d\n", ch1 && ch2); // // ch1 = 'a'; ch2 = '\0'; printf("ch1 OR ch2 = %d\n", ch1 || ch2); printf("ch1 AND ch2 = %d\n", ch1 && ch2); // // Summary Boolean  Type int as Boolean  Boolean expressions  Boolean Operators  Precedence  Common mistakes  Some Boolean algebra  ...Summary of previous lecture  In the previous lecture, we have been learnt,  The if statement  The else statement  Cascaded if...  for  and true selection and looping in an algorithm Boolean expressions  represent statements which are either strictly true or strictly false We still have  to cover Boolean Algebra - History... strictly false We still have  to cover Boolean Algebra - History  George Boole, 181 5-1 864 Initially self-guided studies of languages and philosophy  With 16 assistant teacher at private school

Ngày đăng: 30/01/2020, 15:06