October 3, 2020
Copy-and-paste the following code in the Main method of a new project:
/*
* We have two boolean values: true and false.
* We can use the constant "true" and "false",
* we can also declare constants with the same value,
* but a shorter name:
*/
const bool t = true;
const bool f = false;
Console.WriteLine("Conjonction (and, &&) truth table:"
+ "\n\n\t" + t+ "\t" + f
+ "\n" + t+ "\t" + (t && t)+ "\t" + (t && f)
+ "\n" + f+ "\t" + (f && t)+ "\t" + (f && f)
+ "\n\n*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n");
Console.WriteLine("Negation (not, !) truth table:"
+ "\n\n\t" + t+ "\t" + f
+ "\n\t" + (!t)+ "\t" + (!f)
+ "\n\n*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n");Compile and execute it.
Then, write the code that will display on the screen the truth tables for the binary operators disjunction (or, ||), identity (equality, ==) and difference (inequality, !=).
Normally, using the find-and-replace feature of VS should make this task easy and fast.
If you look at https://docs.microsoft.com/en-us/cpp/c-language/precedence-and-order-of-evaluation, you will see that
! |
is evaluated before |
*, /, and % |
which are evaluated before |
+ and - |
which are evaluated before |
<, >, <=, and >= |
which are evaluated before |
== and != |
which are evaluated before |
&& |
which is evaluated before |
|| |
which comes last. |
and that within those groups, operations are evaluated from left to right.
So that, for instance, ! true || false && 3 * 2 == 6 will be evaluated as
! true || false && 3 * 2 == 6 |
⇒ |
false || false && 3 * 2 == 6 |
false || false && 3 * 2 == 6 |
⇒ | false || false && 6 == 6 |
false || false && 6 == 6 |
⇒ | false || false && true |
false || false && true |
⇒ | false || false |
false || false |
⇒ | false |
Note that an expression like !3 > 2 doesn’t make any sense: C# would try to take the negation of 3, but you can’t negate an integer! Along the same way, an expression like false * true doesn’t make any sense: you can’t multiply booleans! Similarly, 3 % false will cause an error: can you decide why?
Evaluate the following expressions (where t stands for true, and f for false):
t && f || t!t && ff || t && !ff == !t || f!(t || f || t && t)!(t || f) && (t && !f)!t || f && (t && !f)t != !(f || t)For each of the following expression, decide if they are “legal” or not. If they are, give the result of their evaluation.
3 > 22 == 43 >= 2 != f3 > ft && 3 + 5 * 8 == 433 + t != fRead all the instructions in this part before starting to type code. Create a new project, and write portions of code that perform the following:
For each of those questions, write on paper whenever you should use if, if-else, if-else-if or nested conditional structures, and what the condition(s) should be. Once you feel confident, write the code in VS, and then test it intensively: enter all kind of values (positive and odd, negative and even, 0, and remember that 0 is even, etc.) and make sure that what is displayed on the screen is always correct.
Those problems are fairly advanced considering our progresses. Have a look at them, make an attempt, but don’t feel bad if you don’t succeed: simply save them to study before the second exam.
Write a program that
if statement, display on the screen “You guessed correctly” if the number entered by the user is your favorite number.if statement that displays on the screen “Too high!” if the number entered by the user is strictly greater than your favorite number.if statement that displays on the screen “Too low!” if the number entered by the user is strictly lower than your favorite number.if statement that displays on the screen “You found a multiple of my favorite number!” if the number entered by the user is a multiple of your favorite number, but different from it.You can adjust your program so that e.g. if the user enters a number that is at the same time higher and a multiple of your favorite number, only one message is displayed.
You are asked to write a simple program that computes the total price for a group of people to enter a park.
Your program should:
Some tips: